我在将 eso-pic 与外部化的 tikz 图形结合使用时遇到了一些麻烦。使用添加到其他文档页面的内容\AddToShipoutPicture*{}
是在 TikZ 图形上绘制的。当 TikZ 图形以内联方式编译时,不会发生这种情况。
以下是导致此错误的最小工作示例(使用 进行编译pdflatex --shell-escape --write18 test.tex
)
\documentclass{article}
\usepackage{eso-pic}
\usepackage{pgfplots}
\usepackage{tikz}
\usetikzlibrary{external}
\pgfrealjobname{test}
\tikzexternalize
\tikzset{external/system call={pdflatex \tikzexternalcheckshellescape -halt-on-error -interaction=batchmode -jobname "\image" "\texsource"}}
\begin{document}
\AddToShipoutPicture*{\put(0,480){\rule{\paperwidth}{2cm}}}
\vfil\null
\newpage
\begin{figure}[h]
\centering
\begin{tikzpicture}[scale=1.5]
\begin{axis}[xmin=0,xmax=5,ymin=0,ymax=3]
\draw [ultra thick,gray] (axis cs:0.5,0.5) to[out=80,in=200] (axis cs:1.5,2);
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}
执行 TikZ externalise 命令时似乎未清除 shipout。有人知道如何清除它才能正确呈现图形吗?
答案1
好的,我发现您可以通过在前言中\AddToShipoutPicture
添加选项来删除外部化的 eso-pic 调用。这似乎现在可以正确生成图形,而无需 eso-pic 发货内容。\tikzset{external/optimize command away=\AddToShipoutPicture}