在多幻灯片框架中重复幻灯片的缩放版本、\savebox 和 \usebox?

在多幻灯片框架中重复幻灯片的缩放版本、\savebox 和 \usebox?

我有一个框架,用于在 12 张幻灯片中显示 -diagram tikz。在下一个框架中,我想重复完整图表的缩小版本(幻灯片 12)。我尝试使用\savebox\usebox、的组合\scalebox,但无法使覆盖规范与保存和使用框配合使用。

我想要实现的一个精简示例如下:

\documentclass{beamer}
\usepackage{tikz}
\usepackage{graphicx}
\begin{document}

\newsavebox{\mybox}
\savebox{\mybox}{
\begin{overprint}
\begin{tikzpicture}
\onslide<1->{\node (A) at (0, 0) {Spam};}
\onslide<2->{\node (S) at (1, 1) {Eggs};}
\end{tikzpicture}
\end{overprint}
}

\begin{frame}
\usebox{\mybox} % here, I want to show ALL slides in the frame
\end{frame}

\begin{frame}
\scalebox{2}{\usebox{\mybox}} % here, I want only the LAST slide in the frame
\end{frame}

\end{document}

这似乎只将帧的第一张幻灯片存储到\mybox。但是,我希望将所有幻灯片都存储在第一张幻灯片中,\usebox而只将最后一张幻灯片存储在第二张幻灯片中\usebox

我也尝试过像往常一样编译第一帧,然后执行类似的操作\savebox{\mybox}{\againframe<2>{myframe}},但这导致了错误消息Missing \endgroup inserted.。无论如何,我不想重复整个帧,只想重复tikzpicture

所以,我的问题是:

  • tikzpicture如何重复前一帧的特定覆盖的缩小版本?

答案1

保存框和覆盖机制彼此不兼容。保存框修复了其内容的排版输出,并且不允许此动画。您应该考虑将代码存储到宏中,该宏将被使用两次。作为框,这效率较低,但可以与覆盖配合使用。

仅在第二帧中显示最后一张幻灯片实际上是一个额外的问题。您可以使用的覆盖参数frame仅显示某些覆盖步骤,但这将计入整个帧。虽然在您的最小示例中没有问题,但如果您在缩放图片的帧中使用不同的覆盖材料,那就不好了。在这种情况下,我需要更多关于此的详细信息。

这里有一个主要的例子。请注意,我用宏替换了框。我还在%某些行的末尾添加了一些,以避免出现虚假空格(行尾可以视为空格)。

\documentclass{beamer}
\usepackage{tikz}
\usepackage{graphicx}
\begin{document}

\newcommand{\mypic}{%
\begin{overprint}
\begin{tikzpicture}
\onslide<1->{\node (A) at (0, 0) {Spam};}
\onslide<2->{\node (S) at (1, 1) {Eggs};}
\end{tikzpicture}
\end{overprint}%
}

\begin{frame}
    \mypic
\end{frame}

\begin{frame}<2>
    \scalebox{2}{\mypic} % here, I want only the LAST slide in the frame
\end{frame}

\end{document}

相关内容