我有一个框架,用于在 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}