显然(§5.1.4 beamer 手册),beamer 命令\againframe
被认为是继续框架
在 beamer 中,你可以使用
\againframe
命令“继续”你之前在某处开始的帧,但是其中某些细节已被抑制。
而不是重复在演示文稿中重复两次相同的帧。事实上,使用命令重复相同的帧是可行的,因为它可以编译并在 PDF 中提供所需的输出。但是,这会导致标签重复,从而导致编译时出现警告。如果使用\againframe
继续一个帧,则不会发生这种情况。
梅威瑟:
\documentclass{beamer}
\begin{document}
\begin{frame}<1>[label=test]{A frame}
\begin{itemize}
\item<1> Item
\item<2> Advanced item
\end{itemize}
\end{frame}
\againframe<1-2>{test} % This gives warnings, I repeat overlay 1
%\againframe<2>{test} % This is fine, I continue a frame
\end{document}
现在,一个简单的解决方法是创建两个相同的叠加层,然后在演示的某个点使用一个,在需要重复框架的地方使用另一个,这已经在以下问题的答案中被建议了:这个问题。
但是,如果多次需要这样做和/或在复杂的框架上这样做,就会变得非常烦人。因此,我想知道是否有人有一个聪明的主意来避免标签重新定义。换个问法,如何\repeatframe
定义命令?我想避免的是简单地忽略警告......
我还发现另一个问题关于这个问题,但我不确定这个好的答案中所建议的是否是我能得到的最好的答案,是否是这个问题的真正解决方案。
附言:虽然直接复制框架(复制粘贴)是可行的,但这不是一种选择。每个人都知道,一旦你需要更改该框架,你就必须记住更改其副本……
答案1
如何将要重复的内容移动到其他文件?这样就可以多次输入。如果没有覆盖,甚至可以移动\begin{frame}...\end{frame}
到子文件
\documentclass{beamer}
\begin{document}
\begin{frame}<1>
\input{theframeyouwanttorepeat}
\end{frame}
\begin{frame}
test
\end{frame}
\begin{frame}<2>
\input{theframeyouwanttorepeat}
\end{frame}
\end{document}
和 theframeyouwanttorepeat.tex:
zzz \pause yyy