如何最好地使用和编译多个 .tex 文件作为同一篇最终文档的一部分?

如何最好地使用和编译多个 .tex 文件作为同一篇最终文档的一部分?

我有一个大型文档,目前由多种.tex文件组成。

看起来mainfile.tex像这样:

%lots of total formatting stuff

\include{Body/chapter1}
\include{Body/chapter2}
%\include{Body/chapter3}
%\include{Body/chapter4}
%etc

然而,这意味着每个组件(即 chapter1、chapter2 等)都不是有效代码。

我希望能够查看单个文件并在查看时进行编译(例如chapter1.tex),在 TeXmaker 中。如果编译成功,那就没问题了mainfile.tex

据我了解,我需要将所有内容合并到一个文件中,或者执行以下任一操作:

  • 告诉 TeXmaker 让我在某处设置“即使不查看也总是编译此文件”选项 - 这样 F1 等功能就可以正常工作,并且总是引用mainfile.tex

或者

  • 将我所有的格式化初始化等移动到一个文件中,我可以将其包含在每个单独组件的前面(并包含某种头球后卫在这?我不知道这个概念在 LaTeX 中是否可行,甚至是否有意义)因此,无论包含它们的顺序如何,相同的整体格式始终包含在文档的开头。

如果可能的话,我强烈希望选择第二种选择,但我不确定如何做到这一点。

答案1

将主文档放在当前编辑窗口中。现在,选择Options > Define Current Document as "Master Document"。这应该可以满足我的要求。现在您将在左侧窗格中看到文档的结构,并且无论您正在编辑哪个子文件,运行编译都会编译您的主文档。

答案2

对于来这里寻找解决方案的人TexWorks,请将其添加到子文档的最顶部:

% !TeX root = path/main_file.tex

然后 TexWork 将排版您的主文档而不是当前打开的文件。

答案3

您可以只处理主文件,但添加

\includeonly{chapter2}

那么将只处理第 2 章。与将其作为完全独立的文档进行处理不同,aux将读取其他章节的文件,因此该章节仍将编号为 2,并且即使在此运行中省略了其他章节,也可以交叉引用其他章节。

答案4

另一种更通用的方法是使用子文件包。在您的文件中,mainfile.tex您放入了与添加包时提到的相同的内容subfiles

\usepackage{subfiles}

然后,在每个页面中chapterXX.tex添加如下内容:

\documentclass[mainfile]{subfiles}


\begin{document}
  file content here ....
\end{document}

这将使您能够独立于主文件执行该文件(即,您不必打开主文件(或项目)来运行该文件)。

(顺便说一句,对于 TexnicCenter 用户,可以通过菜单获得上面提到的与 Texmaker 类似的选项Project。设置项目后,点击F7构建整个项目,或Ctrl+F7构建当前文件。)

相关内容