使用 beamer、tikz、animate 的图例标签中存在错误

使用 beamer、tikz、animate 的图例标签中存在错误

这个小错误让我很困惑。这个示例无法运行,因为编译在包含的行上崩溃了\label{Temp\iIdPic}

\documentclass[11pt]{beamer}
\usepackage[latin1]{inputenc}
\usepackage{animate}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{frame}
\frametitle{mwe}
\begin{animateinline}[]{3}
\multiframe{4}{iIdPic=1+1}{
\begin{tikzpicture}[scale=0.6]
\begin{axis}[ytick=\empty,xmin=0,xmax=5,hide x axis]
\addplot+[mark=none] {3*x+\iIdPic};
\label{Temp\iIdPic}
\end{axis}
\begin{axis}[ytick=\empty,xmin=0,xmax=5,ymin=0,ymax=1,xlabel={Time (s)},%
        legend cell align=left,legend style={at={(axis description cs:1.0,1.05)},anchor=south east}]
\draw[gray,ultra thin] (axis cs:\iIdPic,\pgfkeysvalueof{/pgfplots/ymin}) -- %
        (axis cs:\iIdPic,\pgfkeysvalueof{/pgfplots/ymax});
\addlegendimage{/pgfplots/refstyle=Temp\iIdPic}\addlegendentry{problem}
\end{axis}
\end{tikzpicture}
}
\end{animateinline}
\end{frame}
\end{document}

我想要做的是:制作一个动画,其中灰线穿过图表。崩溃的错误是正确设置图例。如果删除该线\label{Temp\iIdPic},它可以正常编译,但在图例中,标识引用线的线的颜色不正确。


尽管它不能解决问题,但我已将问题缩小到\labelanimateinline环境之间的不兼容。

\documentclass[11pt]{beamer}
\usepackage{animate}
\begin{document}
\begin{frame}
\frametitle{mwe}
\begin{animateinline}[]{3}
    \label{Temp};
\end{animateinline}
\end{frame}
\end{document}

答案1

我与 Christian Feuersanger 就此问题进行了电子邮件交流pgfplots,他给了我一个解决方法。如下所示:

\documentclass[11pt]{beamer}
\usepackage[latin1]{inputenc}
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{animate}

\let\XXXlabel=\label
\begin{document}
\begin{frame}
\frametitle{mwe}
\begin{animateinline}[]{3}
\multiframe{4}{iIdPic=1+1}{
\begin{tikzpicture}[scale=0.6]
\let\label=\XXXlabel
\begin{axis}[ytick=\empty,xmin=0,xmax=5,hide x axis]
\addplot+[mark=none] {3*x+\iIdPic};
\label{Temp\iIdPic}
\end{axis}
\end{tikzpicture}
}
\end{animateinline}
\end{frame}
\end{document}

相关内容