LaTeX 编译链究竟如何工作?

LaTeX 编译链究竟如何工作?

这可能是一个简单或不合时宜的问题,但我已经遇到了很多文档编译的细微差别,我真的只需要从头开始理解这一点。

有人能向我解释一下标准 LaTeX 编译链/事件链/LaTeX 制作的工作原理吗?我还想知道字体加载在哪里适用,tikz 何时运行,标签如何分配,为什么 pdflatex 比 latex 好等等。

我在网上看到过一些关于 2 * latex、1 * bibtex、1 * latex 的参考资料,但我正在寻找一个图表来向我解释这是如何工作的,或者一个深入解释这一点的参考资料,这样我就可以自己在命令行上调试它,而不是被一个错误消息不足的编辑器所困扰(进程已启动,进程因错误而退出)

这听起来像是一个非常基本的问题,但我需要一个答案——因为尝试解决这个问题导致了将近一天的写作停机时间,如果我有一个可以检查的因果链,希望将来可以避免这种情况。我很抱歉一开始没有通过 CLI 完成所有操作。

答案1

标准 LaTeX‘配方’:

  1. latex <filename>
  2. bibtex <filename>
  3. latex <filename>
  4. latex <filename>

过程如下。第一次运行期间,只有文件.tex。运行期间,LaTeX 将任何引用关键字和\label信息写入.aux文件。然后 BibTeX 读取.aux文件并提取引用,在.bib文件中查找这些引用,并将格式化的参考文献写入.bbl文件。第二次 LaTeX 运行会读取文件.aux以及文件.tex,并能够使用它来解决交叉引用。它还会读取文件.bbl,将参考文献插入输出,并为最终的LaTeX 运行将引用标签(数字、作者日期等)放入输出中。

在某些情况下,生活会变得更加复杂,因为可能需要额外的 LaTeX 或 BibTeX 运行,例如如果有多个参考书目、参考文献中的引文,ETC。因此,支持工具尝试使用多种方法来检测是否需要更多运行。这些方法大致包括 (1) 固定“配方”或 (2) 查找和.aux其他“派生”文件中的更改。

如果你的编辑无法识别运行 BibTeX 的需求(通常情况下可以),那么要么是“配方”损坏了,要么是其使用的脚本缺少辅助文件中的某些内容。具体细节取决于您使用的具体工具。

相关内容