我经常看到有人提到这一点,例如在几个答案中这里。但我有疑问。LaTeX 引擎 ( latex/pdflatex/xelatex/lualatex
) 是否真的进行增量编译?此外,即使它们进行增量编译,主 tex 文件中包含的任何文件都\input{}
可以重新定义后续包含的文件中使用的宏,那么引擎如何知道何时重新编译部分文件?
答案1
现实生活中的例子:这是我的博士论文的主要文件,我不会解释细节,我只是想展示这个想法。
%% Kommandozeilenaufruf in texmaker
% pdflatex -synctex=1 -interaction=nonstopmode --extra-mem-top=60000000 %.tex|"C:/Program Files/Adobe/Reader 9.0/Reader/AcroRd32.exe" %.pdf
% Vorspann
% ----------------------------------------------
\input{01_Vorspann/Dokumentenklasse.tex}
\input{01_Vorspann/Seitenlayout.tex}
\input{01_Vorspann/WeitereLayoutAnpassungen.tex}
\input{01_Vorspann/Standardpakete.tex}
\input{01_Vorspann/Mathezeugs.tex}
\input{01_Vorspann/GleitumgebungenUndVerzeichnisseAnpassen.tex}
\input{01_Vorspann/KopfUndFusszeile.tex}
\input{01_Vorspann/Schriften_und_Symbole_Typografie.tex}
\input{01_Vorspann/Bibliografie-Zeugs.tex}
\input{01_Vorspann/WeiterePakete.tex}
% % Neu
% % http://tex.stackexchange.com/questions/64188/what-are-good-ways-to-make-pdflatex-output-copy-and-pasteable
% \usepackage{cmap}
% Zum Schluss laden!
\input{01_Vorspann/PDF-Zeugs.tex}
% ----------------------------------------------
% Eigene Einstellungen
% ----------------------------------------------
\input{01_Vorspann/BezeichnungenAnpassen.tex}
\input{01_Vorspann/Styleguide_EigeneBefehle_und_Farbdefinitionen.tex}
\input{01_Vorspann/Trennmuster.tex}
% ----------------------------------------------
\myVersionMitAnmerkungen{off}
% Eigentliches Dokument
% ----------------------------------------------
\begin{document}
% Bookmark-Formatierung initialisieren
\bookmarksetup{style=myBookmarkNormal}
\pagenumbering{Roman}
\input{02_Inhalt/Titelseite.tex}
\cleardoublepage
% Kopf- und Fußzeile einschalten
\pagestyle{scrheadings}
% Römische (xii) Nummerierung
\pagenumbering{roman}
% Zählung beginnt hier ab 1
\setcounter{page}{1}
\input{02_Inhalt/Vorwort.tex}
\input{02_Inhalt/Danksagung.tex}
\input{02_Inhalt/Kurzfassung.tex}
\input{02_Inhalt/Verzeichnisse.tex}
\cleardoublepage
% Arabische (12) Nummerierung
\pagenumbering{arabic}
% Zählung beginnt hier wieder ab 1
\setcounter{page}{1}
\startcontents[chapters]
\input{02_Inhalt/Einleitung.tex}
\startcontents[chapters]
\input{02_Inhalt/StandDerForschung.tex}
\startcontents[chapters]
\input{02_Inhalt/Haptik.tex}
\startcontents[chapters]
\input{02_Inhalt/Statistik.tex}
\startcontents[chapters]
\input{02_Inhalt/Psychophysik.tex}
\startcontents[chapters]
\input{02_Inhalt/Versuchsaufbau.tex}
\startcontents[chapters]
\input{02_Inhalt/Experimente.tex}
% Letzes 'richtiges' Kapitel
% Stopp der Zwischen-TOCs
\stopcontents[chapters]
\input{02_Inhalt/Zusammenfassung.tex}
\input{02_Inhalt/Literaturverzeichnis.tex}
\input{02_Inhalt/Anhang.tex}
\end{document}
% ----------------------------------------------
如果我正在写一章,比如说统计(\input{02_Inhalt/Statistik.tex}
),那么它看起来会像这样:
% \startcontents[chapters]
% \input{02_Inhalt/StandDerForschung.tex}
%
% \startcontents[chapters]
% \input{02_Inhalt/Haptik.tex}
\startcontents[chapters]
\input{02_Inhalt/Statistik.tex}
% \startcontents[chapters]
% \input{02_Inhalt/Psychophysik.tex}
%
% \startcontents[chapters]
% \input{02_Inhalt/Versuchsaufbau.tex}
还有其他解决方案,例如,放在\end{document}
不同的位置(更高)。