我正在尝试编译一个大型文档(博士论文),不使用 编译时没有问题external
,但一旦启用该功能,就会出现问题。到目前为止,我还没有在其他各种类似主题中找到答案。我尝试使用 和 进行编译lualatex
,pdflatex
都-shell-escape
启用了 。文档本身编译得很好,但当它进入图像时出现错误TikZ
。这个错误在我的 Windows 机器上使用 MikTeX 和 Ubuntu 上的 TeX Live 重现,并直接从终端和 TeXmaker 运行。
奇怪的是,使用相同的包列表和语法但仅在 MWE 中包含对文件的调用TikZ
会生成一个成功运行的文档,因此显然我的文档或文件系统本身中存在一些东西阻止它在我编写实际的论文文档时正常工作。
无论如何,.log
从我的实际文档中检查文件会发现以下内容:
! Package tikz Error: Sorry, the system call 'pdflatex -halt-on-error -interact
ion=batchmode -jobname "img/cache/sac-thesis-figure0" "\def\tikzexternalrealjob
{sac-thesis}\input{sac-thesis}"' did NOT result in a usable output file 'img/ca
che/sac-thesis-figure0' (expected one of .pdf:.jpg:.jpeg:.png:). Please verify
that you have enabled system calls. For pdflatex, this is 'pdflatex -shell-esca
pe'. Sometimes it is also named 'write 18' or something like that. Or maybe the
command simply failed? Error messages can be found in 'img/cache/sac-thesis-fi
gure0.log'. If you continue now, I'll try to typeset the picture.
See the tikz package documentation for explanation.
当检查.log
文件中的图形本身时,它以以下错误结束:
\@writefile{toc}{}
! Undefined control sequence.
\pgfmathsetlength ...\pgfmath@onquick #2\pgfmath@
{\begingroup \pgfmath@sele...
l.34 \end{tikzpicture}
作为参考,这是.tikz
我尝试编译的文件。.pdf
引用的是我仅使用 MATLAB 构建的图形,在本例中,我主要在图形上放置注释(尽管TikZ
其中也包含更多数据量大的图片)。您可以诚实地将任何.pdf
图片放在那里进行尝试,这不会改变此处问题的精神。
\begin{tikzpicture}
% Styles
[pointer/.style={thick}]
\node[anchor=south west] (diagram) at (0,0)
{\includegraphics[width=4.5in]{img/ch1/2mode/5DC-2mode.pdf}};
\begin{scope}[x={(diagram.south east)},y={(diagram.north west)}]
% Temporary gridlines
%\draw[step=0.1,gray,ultra thin] (0,0) grid (1,1);
% Wall label
\draw {(0.5,0.08)} node[anchor=center,color=white] {Wall};
% Trapped acoustic wave
\draw {(0.66,0.2)} node[anchor=west,color=red] {Trapped acoustic wave};
% Sonic line
\draw {(0.55,0.29)} node[anchor=west] {Sonic line: $\overbar{M}^2 = 1$, $y = y_a$};
% Inner layer
\draw {(0.05,0.2)} node[anchor=west] {$\overbar{M} > 1$};
% Outer layer
\draw {(0.05,0.4)} node[anchor=west] {$\overbar{M} < 1$};
% U(y)
\draw {(0.45,0.66)} node[anchor=center,color=blue] {$U(y)$};
% y-axis
\draw {(0.24,0.94)} node[anchor=east] {$y$};
\end{scope}
\end{tikzpicture}
老实说,我目前没有任何主意,但我真的很想这么做,externalize
因为我将在文档中加入大量的图表,编译时间会变得难以控制。