我在 TikZ 图像中使用动画时遇到问题:
我喜欢用一个图形覆盖另一个图形
\path(fig) node[anchor = north, inner sep=0pt,outer sep=5pt] {
FIGURE1
}
\path(fig) node[anchor = north, inner sep=0pt,outer sep=5pt] {
FIGURE2 over FIGURE1
}
在我使用动画之前,这都可以正常工作:
\path(fig) node[anchor = north, inner sep=0pt,outer sep=5pt] {
\begin{animateinline}[loop,autoplay]{2}
\multiframe{8}{ipic=1+1}{
FIGURE1_\ipic
}
\end{animateinline}
}
\path(fig) node[anchor = north, inner sep=0pt,outer sep=5pt] {
FIGURE2 over FIGURE1
}
第一个 FIGURE1 现在是动画,但 FIGURE2 位于 FIGURE1 下方。使用 pgfonlayer/background 没有帮助。有人有想法吗?
这是一个简单的例子。在第二帧中,动画背景出现,但它应该保留在蓝色块下方。我知道的唯一解决方案是将“animateinline”环境放在整个 tikz 图片周围,但这不是我想要的。
\documentclass{beamer}
\usepackage{animate}
\usepackage{tikz}
\begin{document}
\begin{frame}
\centering
\begin{tikzpicture}
\path (0,0) node[anchor = north] {%
BACKGROUND
};
\path (0,0) node[anchor = north,fill=blue] {%
\color{red}HOLLA DIE WALDFEE OVERLAY
};
\end{tikzpicture}
\end{frame}
\begin{frame}
\centering
\begin{tikzpicture}
\path (0,0) node[anchor = north,fill=green] {%
\begin{animateinline}[loop,autoplay]{2}
\multiframe{8}{inum=1+1}{
\color{green}\bf BACKGROUND \inum
}
\end{animateinline}
};
\path (0,0) node[anchor = north,fill=blue] {%
\color{red}HOLLA DIE WALDFEE OVERLAY
};
\end{tikzpicture}
\end{frame}
\end{document}
答案1
更新
默认情况下,animate
生成的动画以 PDF 形式实现小部件注释(交互区域),位于正常页面内容上方的单独层中。因此,它们始终在前台呈现。
当前[20140923]
版本的 animate 允许使用基于 PDF 图层的替代动画方法(奥卡特s)其内容直接嵌入在页面内容中,从而尊重绘图(或是-)图形对象的顺序。
请注意,默认的基于 Widget 的动画方法通常会随着图形复杂性的增加而表现得更好。
将选项useocg
作为包或命令选项。它允许将动画放置在页面背景中:
\documentclass{beamer}
\usepackage[useocg]{animate}[20140923]
\usepackage{tikz}
\begin{document}
\begin{frame}
\centering
\begin{tikzpicture}
\path (0,0) node[anchor = north,fill=green] {%
\begin{animateinline}[loop,autoplay]{2}
\multiframe{8}{inum=1+1}{
\bf BACKGROUND \inum
}
\end{animateinline}
};
\path (0,0) node[anchor = north,fill=blue,fill opacity=0.8] {%
TEXT TO APPEAR IN THE FOREGROUND
};
\end{tikzpicture}
\end{frame}
\end{document}