LaTeX编译参考文献报\href@split未完成等错误求助
LaTeX参考文献编译报错排查修复
报错根因
两个报错存在因果关联,核心触发点是bib文件内的命令语法错误:
- 第一个报错
! Paragraph ended before \href@split was complete.\par:你在期刊类文献的note字段中使用\href命令时不符合语法规则。\href是hyperref宏包提供的链接命令,需要传入两个必填参数,格式为\href{目标URL}{可点击显示的文本},但你的代码中只传入了URL这一个参数,缺少第二个显示文本参数,导致LaTeX解析命令时持续向后查找参数结束位置,直到读到段落结束标记就抛出语法错误。 - 第二个报错
! LaTeX Error: \begin{thebibliography} on input line 1 ended by \end{document}:这是前一个错误引发的连带问题。BibTeX编译生成参考文献列表的.bbl中间文件时,受前序语法错误影响写入中断,没有生成thebibliography环境对应的闭合标签\end{thebibliography},最终LaTeX读到文档末尾时发现环境未闭合,就抛出环境匹配错误。
修复步骤
- 修正bib条目中的错误命令
你可以选择两种写法修复note字段的链接:- 保留
\href写法,补全第二个显示文本参数,示例代码如下:
@article{gan2014longitudinal, title={Longitudinal wave propagation in a rod with variable cross-section}, author={Gan, Chunbiao and Wei, Yimin and Yang, Shixi}, journal={Journal of Sound and Vibration}, volume={333}, number={2}, pages={434--445}, year={2014}, publisher={Elsevier}, note = {Disponível em \href{https://doi.org/10.1016/j.jsv.2013.09.010}{10.1016/j.jsv.2013.09.010}} }- 如果不需要自定义链接显示文本,直接用
\url命令替代\href即可,\url仅需传入URL一个参数,会自动将链接渲染为可点击样式,写法更简洁:
note = {Disponível em \url{https://doi.org/10.1016/j.jsv.2013.09.010}} - 保留
- 清理旧编译缓存
删除编译生成的.aux、.bbl、.blg后缀的中间文件,避免错误的缓存文件影响后续编译结果。 - 按标准顺序重新编译
严格按照以下顺序执行编译,才能正确生成参考文献和引用标记:- 用你文档使用的LaTeX引擎(pdflatex/xelatex/lualatex均可)编译主tex文件
- 调用BibTeX编译主文件,生成规范的参考文献列表
- 再次用LaTeX引擎连续编译两次主文件,同步正文引用标记和参考文献的交叉引用
- 可选优化
\bibliography命令的参数不需要添加.bib后缀,建议将原代码的\bibliography{bibliografia2.bib}修改为\bibliography{bibliografia2},避免部分编译环境出现路径识别问题。你当前的宏包加载顺序(先加载natbib,后加载hyperref)是正确的,不需要调整。
内容的提问来源于stack exchange,提问作者Dufra64
相关产品推荐
相关产品推荐

