Pravděpodobně neexistuje žádný kompilátor latexu, který by podporoval paralelní kompilaci.
Krátký důvod je:Způsob, jakým latex vysází dokumenty, je zásadní lineární. Pokud by latex vysázel různé části dokumentu paralelně, musely by být sloučeny při kompilaci. Abyste však dosáhli stejného výsledku jako v neparalelním případě, museli byste nechat provést kompilaci přes již vysázené části, aby byly správně spojeny (zalomení stránek, číslování tabulky atd.). Skončíte tedy pravděpodobně se stejnou dobou kompilace nebo horší než předtím.
Například čísla stránek obvykle nejsou nezávislá. Čísla stránek druhé kapitoly závisí na číslech stránek první. Také zde mohou být odkazy, položky rejstříku, ...
Pokud se na začátku nové kapitoly vynulují všechna relevantní počítadla (page
, figure
, table
, equation
, ...), poté \include
/\includeonly
lze zkusit sestavit kapitoly samostatně. Např. kapitoly jsou v samostatných souborech, vložené pomocí \include
:
% test.tex
\documentclass{...}
...
\begin{document}
\include{chap1}
\include{chap2}
...
\end{document}
\includeonly
lze zadat na příkazovém řádku (-draftmode
je popsán níže):
pdflatex -draftmode '\includeonly{chap1}\input{test}'
pdflatex -draftmode '\includeonly{chap2}\input{test}'
...
a v závěrečných sériích je nastaven kompletní dokument se všemi kapitolami:
pdflatex test
získat kompletní výstupní soubor se všemi kapitolami. Jinak sloučení PDF kapitol není triviální kvůli odkazům mezi kapitolami, záložkám, ...
Rejstřík a bibliografie jsou obvykle generovány nezávisle. Tedy makeindex
/xindy
nebo bibtex
/biber
lze volat ve dvou paralelních procesech.
Použitím -draftmode
lze ušetřit (poměrně) malé množství času pro první spuštění LaTeXu kromě finále. S možností -draftmode
nezapisuje se výstupní soubor PDF/DVI, ale všechny pomocné soubory (.aux
, .toc
, ...) jsou vytvořeny jako obvykle.