我想知道如何加快pdflatex
编写超过 200 页且包含许多图像的大型文档(论文)(但是所有导入的 PDF 或导入的像素图形,TikZ
还没有或类似的东西!)。我当前的 LaTeX 项目有几个源文件,结合了\include
.
我读到latexdaemon
这似乎能够预编译前言以节省时间。
- 有没有类似的东西我可以用
MacOS X
? - 有没有办法只处理真正改变的事情?(我目前正在同时编辑许多章节,所以
\includeonly
似乎没有帮助。)
我将其用作TexMakerX
编辑器和Skim
查看器。
我已配置latexmk
为自动执行几次pdflatex
运行(请参阅如果 .tex 已发生更改,是否自动启动必要的 pdflatex 运行(MacOS X)?)。
Skim
一旦 PDF 文件发生改变,就会自动更新。
答案1
看一看这个描述。这是关于如何自己格式化序言的描述。假设您的源文件是main.tex
,那么一切都归结为以下步骤(这些步骤是从链接中复制并由我修改以供自己使用):
重新安排你的序言,使其静态部分位于任何动态部分之前。序言中的内容可以是“动态的例如,如果您使用
\includeonly
,您可能希望经常更改其参数,因此它不是静态的。最后,当您发出应该放在前言中的命令时,某些包会读取和写入辅助文件(例如,nomencl
使用\makenomenclature
)。显然,您必须在每次运行时运行这些命令。将前言的静态部分提取到,例如
preamble.tex
。此时,main.tex
不再包含静态部分。它应该以动态部分开头,或者如果您没有任何动态内容,则只需 `\begin{document}。执行:
pdflatex -ini -jobname="preamble" "&pdflatex preamble.tex\dump"
在命令行中。您会注意到,在同一目录中生成了一个新的文件 `preamble.fmt,以及其他辅助文件。
编辑 main.tex 的第一行,使其以 开头
%&preamble
。main.tex
照常执行 latex :pdflatex -shell-escape main.tex
您可能会立即收到有关类文件的错误,或者您可能会注意到 latex 像往常一样完成。但如果您注意了输出,或者检查了日志文件,那么您将看到前言在“瞬间”就得到了处理。此时,欢呼吧!
为了让事情稍微有趣一点,这里有一个修改。首先,将其添加到 的末尾preamble.tex
:
\def\preambleloaded{Precompiled preamble loaded.}
然后,在 `main.tex 的动态前言(\begin{document}
如果没有)之前添加:
\def\ifundefined#1{\expandafter\ifx\csname#1\endcsname\relax} \ifundefined{preambleloaded}
\typeout{PRECOMILED PREAMBLE NOT LOADED}\input{preamble} \else
\typeout{\preambleloaded}
\fi
这个想法是在预编译前导中定义一个宏,并使用它来检测预编译前导是否已加载。如果没有,则将使用 \input{preamble} 将静态前导拉回,您将不会看到任何错误。
另外,如果你正在使用它tikz
来制作图形,请查看external
库。检查Tikz 和 Pgf 手册,第 32 节描述了如何使用它。
答案2
除了最后一次pdflatex
运行之外的所有运行-draftmode
pdflatex -draftmode file
摘自文档:
-draftmode Sets \pdfdraftmode so pdfTeX doesn't write a PDF and doesn't read any included images, thus speeding up execution.
答案3
序言中的设置
\pdfcompresslevel=0
\pdfobjcompresslevel=0
将我(当前版本)论文的编译时间从 2:05 缩短到 1:01(分钟:秒),但也将 pdf 的大小从约 65 MB 增加到 718 MB(七百一十八兆字节)。因此,对于最终的 pdflatex 运行,可能
\pdfminorversion=4% or 5 or 6...
\pdfcompresslevel=9% which is really slooow
\pdfobjcompresslevel=3% maybe reduce to 2; 3 might not be supported by all readers
应该使用。如果您使用版本控制系统对 pdf 进行(未压缩的)备份,您应该考虑如何处理 718 MB 文件...