在 beamer 中重用 TikZ 动画的部分内容

在 beamer 中重用 TikZ 动画的部分内容

我想在 中重复使用动画 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不可知的,并且每次都会插入完整的动画。

相关内容