Latex编写长文档加速编译方法及技巧
Contents
1. 编译器设置
首先,Latex基本编译流程为:
pdflatex main #生成aux文件
bibtex CH1 #生成每个Chapter的bbl文件,
bibtex CH2
#...
pdflatex main #生成交叉引用等索引文件
pdflatex main #生成最后PDF文件
编译过程优化思路
- 在最后一步生成最终PDF文件之前,没有必要频繁生成PDF文件
- 编译过程中,减少向terminal打印所有编译过程log
pdflatex设置
pdflatex在1~5步添加flag:
- -interaciton=batchmode
- -draftmode
最后一步只添加:
-interaction=batchmode
xelatex设置
中文文档较多使用xelatex进行编译 xelatex在1~5步添加flag:
- -interaciton=batchmode
- -no-pdf
最后一步只添加:
-interaction=batchmode
2. 长文档编写技巧
核心思想:分而治之
大致的main.tex文件结构如下
\documentclass{book}
\input{preamble} %%引言区,\usepackage, 设定宏等
\begin{document}
\include{CH1}
\include{CH2}
...
\end{document}
通过\include
命令将不同的Chapter导入,这样的好处有:
- 方便厘清文章结构
- 若撰写书籍,能够很方便地分章节多人协作
- 章节独立修改,不影响其余章节的内容和编译
一些建议
-
在引言区使用
\includeonly{X,XX,XXX}
只对文件列表中的文件才会被实际include进主文档PS1 如果有之前编译过其他未在文件列表中的文档或者完整文档,那么编号、交叉引用等不会变 PS2
\include
前后会有\clearpage
另起新页 -
利用
\input
,功能:直接将内容复制导入到文档之中(即不会强行制造新页),导入文件内容可以以\endinput
结尾类似EOF
-
编写长文档时,往往并不需要实时输出当前文件,更多只需要检查语法是否合法
利用
\usepackage{syntonly}
包并在导言区声明\syntaxonly
,可以之检查语法而不输出PDF文件,可以提高编译速度
最后,根据上述建议,更新后的main.tex大致如下
\documentclass{book}
\input{preamble} %%引言区,\usepackage{syntonly}, 设定宏等
\syntaxonly %声明后,仅检查语法是否正确
\includeonly{CH2} %仅真正编译CH2
\begin{document}
\include{CH1}
\include{CH2}
...
\end{document}
参考: