如果存在 tikz 模式,则在图形模式下交叉引用时出错

如果存在 tikz 模式,则在图形模式下交叉引用时出错

使用时出现错误“未定义的控制序列”

\tikzset{external/mode=graphics if exists}

并且标签不存在(它应该产生警告而不是错误,但由于引用在第一次编译中未解析,因此它肯定会在第一次运行中产生错误)

梅威瑟:

\documentclass{article}
\usepackage{subfig}
\usepackage{pgfplots}
\usepackage{tikzscale}
\usepackage{cite}
    \usepgfplotslibrary{external}
    \tikzexternalize
    %\tikzset{external/mode=graphics if exists}

\newcommand{\Eref}[1]{E{ }(\ref{#1})}

\begin{document}
\begin{figure}
  \centering
  \begin{tikzpicture}[]
  \begin{axis}[
    xlabel=$x$,
    ylabel={$f(x) = x^2 - x +4$}
  ]
  \addplot {x^2 - x +4};
  \end{axis}
  \end{tikzpicture}%
  \caption{Caption text}
  %\label{fig:fig1}
\end{figure}

This reference to\Eref{fig:fig1}, fails.

\end{document}

它在当前形式下编译得很好。第一次运行后,如果取消注释\tikzset... ,它会产生错误。在我将 TeX Live 更新到 2014 版本后,发生了这种情况。如果\label在两次运行后进一步取消注释 ... ,它就会运行良好。

PS 我正在使用tikzscale外部 .tikz 文件,尽管在这个 MWE 中我只是复制粘贴了tikzpicture环境(错误仍然存​​在)。

答案1

这是externallib 中的一个错误(似乎是一个回归,可能是在 pgf 3.0.0 中引入的)。

我已经修复了它,它将成为下一个稳定版本的一部分。也许我可以发送一份副本,pgfplots这样它就可以更早地使用。

相关内容