描述
我想制作一个动画图表。当我使用动画环境时,数学模式 ( $...$
) 中的内容无法正确显示(看起来像带有_ ^
等的逐字文本)。
平均能量损失
\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)。
包裹有变化吗
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}
}