pgfplots + animate:不正确的数学模式符号(不需要的逐字)

pgfplots + animate:不正确的数学模式符号(不需要的逐字)

描述

我想制作一个动画图表。当我使用动画环境时,数学模式 ( $...$) 中的内容无法正确显示(看起来像带有_ ^等的逐字文本)。

平均能量损失

\documentclass{article} % standalone article

\usepackage{pgfplots}
\usepackage{animate}
\usepackage{amsmath}

\begin{document}

\section*{Normal Diagram}

\begin{tikzpicture}
    \begin{axis}[
            ymin=0,
            ymax=20,
            xmin=-5,
            xmax=5, 
            xlabel={$\text{test}^1_2$},
                ]
    \addplot[] {x^2};
    \end{axis}
\end{tikzpicture}

\section*{Animated Diagram}

\begin{animateinline}%
[
controls,
% Begin -------------------------------
begin=
{
    \begin{tikzpicture}
        \begin{axis}[
                ymin=0,
                ymax=20,
                xmin=-5,
                xmax=5, 
                xlabel={$\text{test}^1_2$},
        ]       
},
% End -------------------------------
end={
    \end{axis}  
    \end{tikzpicture}   
}
% Loop -------------------------------
]{15} % Frame Rate in Hz
\multiframe{5}{rMyReal=1+0.1}
{
    \addplot[] {\rMyReal*x^2};
}
\end{animateinline}

\end{document}

可视化

问题

更新

这是对埃格尔的回答。谢谢您的帮助。我只是好奇,因为我在 2013 年做过一个动画(基本上是相同的代码),而且它刚刚起作用。这是 PDF(见幻灯片 28 和 29)。

链接:带动画的 PDF

包裹有变化吗animate

在此处输入图片描述

在此处输入图片描述

这是原始代码的屏幕截图(它仍然可以正确编译):

在此处输入图片描述

答案1

是的,animateinline调用“清理宏”,将所有特殊字符(括号和反斜杠除外)更改为可打印字符。

有两种方法可以解决这个问题。

保存箱

\newsavebox{\animatecaption} % in the preamble

\sbox{\animatecaption}{$\text{test}_{1}^{2}$}
\begin{animateinline}
  [
   controls,
   % Begin -------------------------------
   begin=
    {
     \begin{tikzpicture}
        \begin{axis}[
                ymin=0,
                ymax=20,
                xmin=-5,
                xmax=5,
                xlabel={\usebox{\animatecaption}},
        ]
  },
  % End -------------------------------
  end={
    \end{axis}
    \end{tikzpicture}
  }

\scantokens

\begin{animateinline}
  [
   controls,
   % Begin -------------------------------
   begin=
    {
     \begin{tikzpicture}
        \begin{axis}[
                ymin=0,
                ymax=20,
                xmin=-5,
                xmax=5,
                xlabel={\scantokens{$\text{test}^1_2$\noexpand}},
        ]
  },
  % End -------------------------------
  end={
    \end{axis}
    \end{tikzpicture}
  }

输出

在此处输入图片描述

答案2

这是一个错误(已在 [2015/08/18] 版本中修复),请参阅 AlexG 的评论。

这是输出(相同的代码,只是更新了animate包的版本):

在此处输入图片描述

相关内容