如何加快 MacOS X 上非常大的文档的 pdflatex 速度?

如何加快 MacOS X 上非常大的文档的 pdflatex 速度?

我想知道如何加快pdflatex编写超过 200 页且包含许多图像的大型文档(论文)(但是所有导入的 PDF 或导入的像素图形,TikZ还没有或类似的东西!)。我当前的 LaTeX 项目有几个源文件,结合了\include.

我读到latexdaemon这似乎能够预编译前言以节省时间。

  • 有没有类似的东西我可以用MacOS X
  • 有没有办法只处理真正改变的事情?(我目前正在同时编辑许多章节,所以\includeonly似乎没有帮助。)

我将其用作TexMakerX编辑器和Skim查看器。
我已配置latexmk为自动执行几次pdflatex运行(请参阅如果 .tex 已发生更改,是否自动启动必要的 pdflatex 运行(MacOS X)?)。

Skim一旦 PDF 文件发生改变,就会自动更新。

答案1

看一看这个描述。这是关于如何自己格式化序言的描述。假设您的源文件是main.tex,那么一切都归结为以下步骤(这些步骤是从链接中复制并由我修改以供自己使用):

  1. 重新安排你的序言,使其静态部分位于任何动态部分之前。序言中的内容可以是“动态的例如,如果您使用\includeonly,您可能希望经常更改其参数,因此它不是静态的。最后,当您发出应该放在前言中的命令时,某些包会读取和写入辅助文件(例如,nomencl使用\makenomenclature)。显然,您必须在每次运行时运行这些命令。

  2. 将前言的静态部分提取到,例如preamble.tex。此时,main.tex不再包含静态部分。它应该以动态部分开头,或者如果您没有任何动态内容,则只需 `\begin{document}。

  3. 执行:

    pdflatex -ini -jobname="preamble" "&pdflatex preamble.tex\dump"
    

在命令行中。您会注意到,在同一目录中生成了一个新的文件 `preamble.fmt,以及其他辅助文件。

  1. 编辑 main.tex 的第一行,使其以 开头%&preamble

  2. 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 文件...

相关内容