Pdflatex 不读取 TEX 根行,如何解决?

Pdflatex 不读取 TEX 根行,如何解决?

我有一个main.tex文件,其中包含几个章节,放在一个子文件夹中,如下所示:每个章节的 tex 文件在文件顶部\include{chapters/chapter01} 都有一行。当我在文件上运行 pdflatex 时,一切顺利:% !TEX root = ../main.texmain.tex

pdflatex --interaction=nonstopmode --shell-escape main.tex

但是,如果我运行相同的命令,chapter01.tex它会因找不到而出现错误并停止\begin{document}。以下命令无法编译:

pdflatex --interaction=nonstopmode --shell-escape chapters/chapter01.tex  

cd chapters
pdflatex --interaction=nonstopmode --shell-escape chapter01.tex

显然 pdflatex 忽略了 TEX 根线。

有没有办法让 pdflatex 识别有一个根文件?

答案1

% !TEX root行是针对你的编辑器的,与 TeX 本身无关。这种特殊形式的“魔法注释”源自编辑器TeXShop,虽然现在其他一些编辑器也能理解它们,但 TeX 本身却不会注意到它们。因此,要使用这种方法,您必须使用编辑器/IDE,并且要能理解您正在使用的“魔法注释”的类型。

答案2

更新:抱歉,我读你的问题有点太快了。起初我以为你问的是 LaTeXing 插件。然而:

当使用 Sublime Text 和 LaTeXing 时,你需要一个稍微不同的指令语句:

% -*- root: file_location -*-

当使用 LaTeXTools 时,该语句应该是正确的。从LaTeXTools github 文档

支持多文件文档,如下所示。如果当前文件的第一行由文本组成%!TEX root = <master file name>,则对指定的主文件而不是当前文件调用 tex 及其相关函数。注意:唯一会自动保存的文件是当前文件。此外,主文件名必须具有 .tex 扩展名,否则将无法识别。

还支持项目文件;这需要记录下来。

我推荐 LaTeXing。它可以免费试用,而且我认为它的维护速度比 LaTeXTools 更好

相关内容