5

我在工作的 Latex 文档中添加了一行“\cite{test}”作为测试。当我编译 bibtex “!bibtex name_of_my_file 时,我得到了预期的错误:

警告——我没有找到“测试”的数据库条目

然后,我删除了该行并再次编译了 bibtex,希望再次有一个工作的 Latex 文件。但是,即使使用新的外壳,也会发生相同的错误。我无法理解这种行为。逻辑是什么?我怎样才能让我的 Latex 文档再次工作?

[更新信息] 问题一出现就出人意料地消失了。我不知道为什么,但它现在有效。你知道奇怪行为的原因吗?

4

5 回答 5

10

我认为您正在绊倒 LaTex 和 Bibtex 的多通道性质。如果您查看此讨论中的第 3 步,您将看到以下内容:

第一次运行(通过 latex)生成一个辅助文件 paper.aux,其中包含有关引文(和其他类型的参考)、使用的参考书目样式和 bibtex 数据库名称的信息。第二次运行(通过 bibtex)使用辅助文件中的信息以及 bibtex 数据库中包含的数据来创建文件 paper.bbl。该文件包含一个参考书目环境,其中 \bibitem 条目根据指定的参考书目样式格式化。

所以,我认为正在发生的是你的name_of_my_file.aux文件仍然包含你的 placeholder \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呼叫。把它想象成一个多遍编译器,它可能更直观。

于 2009-04-16T20:27:30.470 回答
3

您可以查看latexmk,它将为您处理修复点编译。

无论如何,即使您缺少参考书目项目,您也应该能够构建文档 (pdflatex blah.tex)。相应的参考文献将在 PDF 中显示为问号。

于 2009-04-16T21:57:20.130 回答
2

重新运行 latex 以重新生成 aux 文件。

查看此讨论以获取更多信息。基本上,您可能已将引用从 .tex 文件中取出,但它仍然存在于派生文件之一中(aux、bbl 等...)

于 2009-04-16T20:26:20.973 回答
1

检查您的围兜文件是否具有扩展名 .bib 而不是 .tex。如果是 .tex,只需将其更改为 .bib 即可。一旦我不小心将它更改为 tex,通过添加一些引用,并使用“另存为”选项保存它,而不指定 bib 扩展名。这就是它突然发生的方式。

于 2012-07-23T19:33:08.753 回答
0

删除所有 .aux 和临时文件,使用乳胶重新运行,然后使用 bibtex,然后使用乳胶两次。

于 2021-01-31T17:05:35.777 回答