如何实现使beamer
每帧的第一张幻灯片为空(即只显示帧标题)?
假设我有以下框架:
\frame{\frametitle{Title}
\begin{itemize}
\item<1-> A
\item<2-> B
\end{itemize}
}
现在我想要实现在第一张幻灯片上只显示标题,并且已经指定的覆盖层相应地移动一个位置(不改变已经指定的覆盖层编号)。
背景是我已经指定了许多叠加层。手动为所有叠加层编号添加 +1 会很麻烦。因此我想在每一帧开始时告诉 beamer,它应该暂停一张幻灯片,然后再开始使用已经存在的叠加层。
答案1
要手动增加覆盖计数器(您的标题),请使用:
\addtocounter{beamerpauses}{X}
X
帧数是多少...或者
\stepcounter{beamerpauses}
将计数器加 1
例如,您可以像这样进行:
\begin{frame}
\stepcounter{beamerpauses}
\begin{itemize}[<+->]
\item A
\item B
\end{itemize}
\end{frame}
另一种可能性是手动设置覆盖数量:
\begin{frame}
\begin{itemize}
\item<2-> A
\item<3-> B
\end{itemize}
\end{frame}
编辑:似乎也可以使用这种适合您目的的构造:
\begin{frame}
\begin{itemize}[<+(1)->]
\item A
\item B
\end{itemize}
\end{frame}
或这个:
\begin{frame}[<+(1)->]
\begin{itemize}
\item A
\item B
\end{itemize}
\end{frame}
答案2
解决我的问题的一个简单方法:插入一个空白框架:
\frame{\frametitle{Title}
}
\frame{\frametitle{Title}
\begin{itemize}
\item<1-> A
\item<2-> B
\end{itemize}
}
PS:这个答案暗示我的问题不太明智。如果你同意的话请告诉我。然后我可以删除它。
答案3
使用 \only 怎么样?
\begin{frame}{Frame Title}
\only<2->{
\begin{itemize}
\item A
\item B
\end{itemize}
}
\end{frame}
答案4
除了改变覆盖规范的解释之外,还可以考虑改变第一个覆盖帧数。请注意,这几乎肯定不是一个好主意,但我还是将其作为建议提出来。
此外,这会影响所有帧,而不仅仅是一个。可能有些事情我遗漏了,还有其他不良副作用,但我们还是来看看:
\documentclass{beamer}
\usepackage{etoolbox}
\makeatletter
\newcount\beamer@startslidenum
\beamer@startslidenum=0\relax
\patchcmd{\beamer@doseveralframes}{\beamer@slideinframe=1\relax}{\beamer@slideinframe=\beamer@startslidenum}{}{\errmessage{failed to patch}}
\patchcmd{\beamer@dosingleframe}{\beamer@slideinframe=1\relax}{\beamer@slideinframe=\beamer@startslidenum}{}{\errmessage{failed to patch}}
\patchcmd{\beamer@donoframe}{\beamer@slideinframe=1\relax}{\beamer@slideinframe=\beamer@startslidenum}{}{\errmessage{failed to patch}}
\makeatother
\begin{document}
\frame{\frametitle{Title}
\begin{itemize}
\item<1-> A
\item<2-> B
\end{itemize}
}
\end{document}