如何在插入独立文件之前自动编译它们?

如何在插入独立文件之前自动编译它们?

tikz我的文档包含由、、forest等生成的大量图像bussproofs,因此编译花费了太多时间。如果我可以先将图像编译为 PDF,然后直接将它们插入到主文档中,那就更好了。理想情况下,只有当源代码发生更改并且相应的 PDF 不再是最新时,才会编译图像文件。

昨天,我读了外包 TikZ 代码而这个standalone包似乎是解决我耗时的编译问题的完美方法。我standalone为每张图片创建了一个包含单独文件的子文件夹,并将它们包含在我的主文件中\includestandalone。不幸的是,这似乎并没有加快速度。但后来我注意到马丁在他的回答关于上述问题:

也可以将所有 TikZ 文件编译为单个 PDF 并将其包含在文档中。这可以显著加快编译过程(当然,第一个除外)。

是的,所以我实际上必须先编译我的所有图像文件。由于我不想手动编译它们,我开始阅读standalone手动的寻找解决方案,发现有几种输入模式。我认为这mode=buildnew正是我所寻找的,但是当我编译主文件时,没有一个图像文件被编译,我仍然需要等待很长时间才能输出 PDF。buildbuildnew模式也是如此。

我是否误解了这些模式的功能?我的主要问题仍未解决:如何standalone在将文件插入主文档之前自动编译它们?

答案1

这将复制除要替换的一页之外的所有页面。注意:重命名 PDF 文件,以免每次都自动销毁。(另存为文件名)

\documentclass[multi={tikzpicture,wrapper}]{standalone}
\usepackage{tikz}

\newenvironment{wrapper}{\ignorespaces}{\ignorespaces}

\newcommand{\beforepage}[2]% #1=page, #2=standalone filename
{\loop\ifnum\value{page}<#1\relax
   \begin{wrapper}
   \includegraphics[page=\thepage]{#2}%
   \end{wrapper}
 \repeat}

\begin{document}
\beforepage{1}{filename}

\begin{tikzpicture}
  \node[draw]{this is a test \thepage};
\end{tikzpicture}

\beforepage{2}{filename}% last page plus one

\end{document}

您还可以使用它一次添加一页。

相关内容