我花了几个小时尝试调试以下问题。我确实设法修复了它,但主要是偶然的。有人能告诉我到底发生了什么吗?
初始设置
我正在使用\usetikzlibrary{external}
。我\input
多次使用同一个文件,这会生成一个pgfplots
图表。有时我想显示次坐标轴,因此此文件看起来如下所示:
\tikzset{external/export next=false} % since I'm running it multiple times
\begin{tikzpicture}
% Primary axis and charts
…
% Optional secondary axis and charts
\ifSecondaryAxis
\begin{axis}
…
\end{axis} % line 58
\fi
\end{tikzpicture}
这给没有该\tikzset{external/export next=false}
指令的以下图片带来了严重的错误。这很难追溯,因为在后来的图形外部化中观察到了破坏代码的影响。例如,我在随机上收到以下错误spiral-pred_dec.tex
:
! Package tikz Error: Sorry, the system call 'pdflatex -shell-escape -halt-on-e rror -interaction=batchmode -jobname "pdf-tikz-figs/spiral-pred_dec" "\def\tikz externalrealjob{main}\input{main}"' did NOT result in a usable output file 'pdf -tikz-figs/spiral-pred_dec' (expected one of .pdf:.jpg:.jpeg:.png:).
注释掉spiral-pred_dec.tex
会导致下图错误,等等。
解决所有问题的(问题来了)是什么axis
在环境周围添加一对花括号,因此得到如下结果:
% Optional secondary axis and charts
\ifSecondaryAxis
{\begin{axis}
…
\end{axis}}
\fi
问题
处理 TeX 条件渲染时,在环境周围添加一对花括号有什么作用?
其他调试信息
) (./ellipse-figs/E23.tex)
! Incomplete \ifx; all text was ignored after line 58.
<inserted text>
\fi
l.131 \input{ellipse-figs/E23}
%
Here is how much of TeX's memory you used:
…
! ==> Fatal error occurred, no output PDF file produced!
并且行58
对应于\end{axis}
第一个代码片段中,行上方的一行\fi
。