Beamer:揭示 itemize,因此第一张幻灯片根本不显示任何项目

Beamer:揭示 itemize,因此第一张幻灯片根本不显示任何项目

如何实现使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}

相关内容