具有并行支持的 Latex 编译器

具有并行支持的 Latex 编译器

是否有支持书籍并行编译的 latex 编译器?例如,多部分 latex 文档中的章节可以在单独的核心上进行编译,以加快编译速度:

\begin{document}
\pagestyle{plain}
\onehalfspacing
\frontmatter
\include{title}
\include{abstract}

\mainmatter


\include{chapter1}
\include{chapter2}
...
\include{chapterN}

\begin{appendices}
\include{appendices}
\end{appendices}

\backmatter
\bibliographystyle{unsrt}
\bibliography{references}

\end{document}

答案1

可能没有支持并行编译的 latex 编译器。

简短的原因是:LaTeX 排版文档的方式本质上是线性的。如果 LaTeX 并行排版不同的文档部分,则需要在编译时合并它们。但是,要获得与非并行情况相同的结果,您需要对已排版的部分进行编译以正确连接它们(分页符、表格编号等)。因此,您最终的编译时间可能与以前相同或更差。

答案2

例如,页码通常不是独立的。第二章的页码取决于第一章的页码。还可以有参考文献、索引条目……

如果在开始新章节时重置所有相关计数器(pagefiguretableequation、 ...),则可以尝试\include/\includeonly单独编译章节。例如,章节位于单独的文件中,输入方式为\include

% test.tex
\documentclass{...}
...
\begin{document}
\include{chap1}
\include{chap2}
...
\end{document}

\includeonly可以在命令行中给出(-draftmode如下所述):

pdflatex -draftmode '\includeonly{chap1}\input{test}'
pdflatex -draftmode '\includeonly{chap2}\input{test}'
...

在最后一次运行中,完整文档包含所有章节:

pdflatex test

获得包含所有章节的完整输出文件。否则,章节 PDF 的合并将变得非常困难,因为章节间存在引用、书签等...


索引和参考书目通常是独立生成的。因此makeindex/xindybibtex/biber可以在两个并行过程中调用。


-draftmode除最后一次运行外,第一次运行 LaTeX 时使用 可以节省(相当)少许时间。使用选项-draftmode不会写入输出 PDF/DVI 文件,但所有辅助文件(.aux.toc、...)都会照常创建。

相关内容