Includepdf 导致 pgfplots 外部化出现错误消息

Includepdf 导致 pgfplots 外部化出现错误消息

我有一个文件test.pdf,将其包含在一个包含外部化 pgfplots 图片的文档中。

当我编译以下代码时,出现错误消息Sorry, the system call pdflatex ... did NOT result in a usable file。为了使我的代码正常工作,我首先需要删除该includepdf语句,进行编译(以创建外部化图形),然后使用该includepdf语句再次进行编译。

我认为这是一个错误,或者有没有什么方法可以解决它?

当然,该文件test.pdf与 pgfplots 的外部图片完全独立。

\documentclass{scrbook}

 \usepackage{pgfplots}
 \pgfplotsset{compat=1.8}
 \usepgfplotslibrary[external]
 \tikzexternalize[shell escape=-enable-write18]
 \usepackage{pdfpages}

 \begin{document}
\includepdf{report_test-figure44}

 \begin{tikzpicture}
 \begin{axis}[
 xlabel=Cost,
ylabel=Error]
 \addplot[color=red,mark=x] coordinates {
 (2,-2.8559703)
(3,-3.5301677)
};
\end{axis}
 \end{tikzpicture}

 \end{document} 

答案1

在外部化内容时,可以选择“优化昂贵的命令”。

由于 includepdf 语句与 externalize 无关,我们可以对其进行优化 - 并且您的示例可以编译良好。

更准确地说:我搬家了\usepackage{pdfpages} 外部化调用并将 includepdf 配置为“删除”:

\documentclass{scrbook}

 \usepackage{pgfplots}
 \pgfplotsset{compat=1.8}
 \usepgfplotslibrary[external]
 \usepackage{pdfpages}
 \tikzexternalize[shell escape=-enable-write18,optimize command away=\includepdf]

 \begin{document}
\includepdf{report_test-figure44}

 \begin{tikzpicture}
 \begin{axis}[
 xlabel=Cost,
ylabel=Error]
 \addplot[color=red,mark=x] coordinates {
 (2,-2.8559703)
(3,-3.5301677)
};
\end{axis}
 \end{tikzpicture}

 \end{document} 

看起来效果不错。

答案2

这个问题在文档

提供了一种解决方法,其中包括pdfpages主文档中的包,但不包括在外部化文档中,

\usetikzlibrary{external}

\tikzifexternalizing{%
    % don't include package XYZ here
}{%
    \usepackage{pdfpages}
    \usepackage{vmargin}
    ...
}%

然而,我在不太干净的设置中运行的测试仍然失败。

相关内容