高效地编译包含许多 TikZ 子文件的主文档

高效地编译包含许多 TikZ 子文件的主文档

article编译具有许多子文件的类的文档的最有效方法是什么TikZ

在主文档中,我添加了\usepackage{standalone}各个\includestandalone子文件。

  1. 添加选项subpreambles = true、并从主文档中sort = true修剪所有前言会更好吗?TikZ

  2. 或者我不应该使用这些选项并保留TikZ.tex文件和子文件中的所有前导码?

哪种方法可以加快编译速度?如果这两种方法都不是真正有效的,我该怎么做?

目前,我的文档有大约 10060页,但编译需要几分钟。我有 30 多个.eps图表和 30 多个TikZ子文件。除了TikZ代码,其他一切都很标准LaTeX

子文件的文档类别standalone带有选项convert = false

另一个导致编译速度变慢的问题是,standalone在编译主文档时会编译所有图片。然而,95% 的图片可能没有任何变化。

主要示例文档:

\documentclass{article}
\usepackage{standalone}
\usepackage{tikz}
\usepackage{float}
\begin{document}
text here
\begin{figure}[H]
  \centering
  \includestandalone{test}
\end{figure}
text here
\end{document}

测试示例文档

\documentclass[convert = false, tikz]{standalone}
\begin{document}
\begin{tikzpicture}
  \draw (0, 0) circle[radius = .35cm];
\end{tikzpicture}
\end{document}

答案1

我使用的建议zeroth 的讨论. 讨论是为了pdflatex

不过,我用赛莱特,我只测试方法特科利Linux x64系统。

这是我让它发挥作用的方法赛莱特编译器:

  1. 在文档序言之后\usepackage{tikz}

    \usepackage{tikz}
      \usetikzlibrary{external}
      \tikzexternalize[figure list=false,prefix=tikz/]
        % make tikz externalize and store in directory "tikz"
      \tikzset{external/system call={xelatex \tikzexternalcheckshellescape 
        -halt-on-error -interaction=batchmode -jobname "\image" "\texsource"}} 
        % to let xelatex work
    

    并使用该命令xelatex -shell-escape xxxxxxx.tex编译外部化的图片。(到目前为止,正常xelatex xxxxxxx.tex命令会返回错误)

  2. 一旦所有独立的 pdf 文件编译完毕,xelatex xxxxxxx.tex就可以正常工作。

这不是完美的方式做 tikz 图形外部化,因为这里的选项无法识别外部化的 pdf 文件是否与新的 tikz 图形相同

相关内容