将 tex 文档拆分成多个文档是否会提高构建性能

将 tex 文档拆分成多个文档是否会提高构建性能

我经常看到有人提到这一点,例如在几个答案中这里。但我有疑问。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}不同的位置(更高)。

相关内容