空参考书目

路径、后端、缺失引用、印刷参考书目与参考书目。

空参考书目

症状

您的文档编译时没有出现致命错误,但参考文献部分完全丢失,或者标题下没有任何内容。通常文本中的每个“\cite”同时显示为粗体问号。没有发生任何崩溃,因此没有明显的错误需要追踪,这就是让这个令人沮丧的原因。

为什么会发生

参考书目不是单独由 LaTeX 生成的。 LaTeX 首先将引用的键列表写入辅助文件。单独的后端程序(“bibtex”或“biber”)读取您的“.bib”数据库并格式化匹配的条目。最后,LaTeX 在下一次读取该格式化结果。空的参考书目意味着该管道在某个地方中断:后端从未运行,它运行但找不到数据库,它找到了数据库但没有请求密钥,或者文档使用错误的命令询问结果。

按顺序找出原因

首先,确认数据库文件存在于文档所说的位置。 \bibliography{refs}\addbibresource{refs.bib} 都会查找相对于主文件的 refs.bib,因此位于 bib/ 子文件夹中的文件必须被引用为 bib/refsbib/refs.bib。一条错误的道路会悄然失败。

其次,确保后端实际运行。一次编译是远远不够的;完整的循环是 LaTeX,然后是 bibtexbiber,然后是 LaTeX 两次。 Oleafly 自动运行此循环,但手动构建或配置错误的编辑器工具链可以跳过中间步骤,结果恰恰是一个空的参考列表。

第三,检查是否至少存在一个“\cite”命令。后端仅格式化文档请求的条目,因此没有引用的草稿在设计上仍会得到一个空列表。在早期起草过程中,您可以使用“\nocite{*}”强制输入所有内容,它请求数据库中的每个条目,而不打印文本中的任何内容。

第四,将命令与系统相匹配。经典 BibTeX 文档以 \bibliographystyle{...}\bibliography{refs} 结尾。 biblatex 文档使用 \addbibresource{refs.bib} 在序言中加载数据库,并使用 \printbibliography 打印它。混合两者,例如加载 biblatex 但仍然调用 \bibliography,就会产生这种失败。运行错误的后端也是如此:biblatex 需要“biber”,而向其提供经典的“bibtex”不会产生任何结果。

读取后端自己的日志

后端将其投诉写入文档旁边的“.blg”文件,这就是格式错误的条目、重复的键和“我无法打开数据库文件”消息出现的地方。如果上述步骤看起来正确,但列表仍然为空,则“.blg”日志几乎总是指出真正的罪魁祸首。对于参考书目本身出现后仍然存在的问号,请参阅清除神秘引文标记

返回 日志素养