这个小错误让我很困惑。这个示例无法运行,因为编译在包含的行上崩溃了\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}
,它可以正常编译,但在图例中,标识引用线的线的颜色不正确。
尽管它不能解决问题,但我已将问题缩小到\label
与animateinline
环境之间的不兼容。
\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}