![在 beamer 中重用 TikZ 动画的部分内容](https://linux22.com/image/275049/%E5%9C%A8%20beamer%20%E4%B8%AD%E9%87%8D%E7%94%A8%20TikZ%20%E5%8A%A8%E7%94%BB%E7%9A%84%E9%83%A8%E5%88%86%E5%86%85%E5%AE%B9.png)
我想在 中重复使用动画 TikZ 图形的一部分beamer
。在切换到 TikZ 之前,我使用 IPE 构建了 PDF 动画,并且可以page
在命令中选择特定的 s \includegraphics{}
。要在 TikZ 中执行相同操作,我的方法是在 PDF 中生成独立的 tikz 图形并执行与以前相同的操作。我想知道是否有更智能的方法可以避免需要多个文件。
请注意,该\againframe{}
命令无济于事,因为我想在幻灯片上添加带有重复动画的其他内容。
这是一个简单的例子:
\documentclass{beamer}
\usepackage{tikz}
\tikzset{
invisible/.style={opacity=0},
visible on/.style={alt={#1{}{invisible}}},
alt/.code args={<#1>#2#3}{%
\alt<#1>{\pgfkeysalso{#2}}{\pgfkeysalso{#3}} % \pgfkeysalso doesn't change the path
}}
\begin{document}
\begin{frame}{test}
This is the first frame, which contains an animation:
\begin{tikzpicture}
\node[rectangle](a){A};
\node[rectangle,visible on=<2>] (b) at (0, 2) {B};
\draw[->,visible on=<2>] (a) -- (b);
\end{tikzpicture}
\end{frame}
\begin{frame}{test2}
This is the second frame, which should include the figure from the 1st,
but only the final, i.e. second part of the animation.
% ....?
\end{frame}
\end{document}
答案1
一个非常简单的解决方案是将您的放入tikzpicture
宏定义中并多次调用它:
\newcommand{\myanimation}{\begin{tikzpicture}...your code here}
\begin{frame}{test}
This is the first frame, which contains an animation:
\myanimation
\end{frame}
\begin{frame}{test2}
This is the second frame, which should include the figure from the 1st,
but only the final, i.e. second part of the animation.
\myanimation
\end{frame}
这允许您甚至引入参数,以便您可以在第二个实例中进行细微的变化,例如某些标题发生改变或者您想要安装不同的样式。
另一个不太灵活的解决方案是将tikzpicture
代码放入文件中,并在需要时myanimation.tex
将其包含进来。\input{myanimation}
请注意,这两种解决方案都是beamer
不可知的,并且每次都会插入完整的动画。