我在我的工作Latex文档中添加了一行“\ cite {test}”作为测试。当我编译bibtex“!bibtex name_of_my_file时,我得到了预期的错误:
警告 - 我没有找到“test”的数据库条目
然后,我删除了该行并再次编译了bibtex,希望能再次使用一个有效的Latex文件。但是,即使使用新的shell,也会发生同样的错误。我无法理解这种行为。逻辑是什么?如何让我的Latex文档再次运行?
[更新信息] 这个问题出乎意料地消失了。我不知道为什么,但它现在有效。你知道奇怪行为的原因吗?
答案 0 :(得分:9)
我认为你正在绊倒LaTex和Bibtex的多次通过性质。如果您查看Step 3 in this discussion,您会看到以下内容:
第一次运行(通过乳胶) 生成一个辅助文件, paper.aux,包含信息 关于引用(和其他类型的 参考文献),参考书目的风格 使用,以及bibtex的名称 数据库。第二轮(通过 bibtex)使用中的信息 辅助文件以及数据 包含在bibtex数据库中 创建一个文件paper.bbl。这个文件 包含一个参考书目环境 用\ bibitem条目格式化 根据参考书目的风格 指定。
所以,我认为您的name_of_my_file.aux
文件仍然包含占位符\cite{test}
。如果删除辅助文件,您应该可以重新开始:
latex name_of_my_file
bibtex name_of_my_file
latex name_of_my_file
latex name_of_my_file
[根据其他信息进行更新] :问题是您的.aux
文件仍然嵌入\cite{}
。第二次运行latex
时,您使用新文件覆盖旧文件。这就是为什么完整的一系列步骤包括初始latex
来电,bibtex
来电和两次后续latex
来电。可以把它想象成一个多遍编译器,它可能更直观。
答案 1 :(得分:3)
您可以查看latexmk,它将为您处理修复点编译。
无论如何,即使您缺少参考书目项,您也应该能够构建文档(pdflatex blah.tex)。相应的引用将在PDF中显示为问号。
答案 2 :(得分:2)
重新运行乳胶以再生辅助文件。
查看this discussion以获取更多信息的指示。基本上,你可能已经把你的引文从.tex文件中删除了,但它仍然存在于一个派生文件中(aux,bbl,等等......)
答案 3 :(得分:1)
检查您的bib文件是否具有扩展名.bib而不是.tex。 如果它是.tex,只需将其更改为.bib即可。 一旦我意外地将它改为tex,通过添加一些引用,并使用“另存为”选项保存它,而不指定bib扩展名。这就是它突然发生的方式。
答案 4 :(得分:0)
删除所有 .aux 和临时文件,使用 latex 重新运行,然后是 bibtex,然后是 latex 两次。