如何使用 \overprint 来防止“摆动”

如何使用 \overprint 来防止“摆动”

我正在制作演示文稿,想在幻灯片上展示一个陈述(Th. 1)。在下一张幻灯片上,该陈述下方应出现一个证明论据。在框架的第三张幻灯片上,该论据应消失,并应显示类似于 Th. 1 的陈述。

我尝试使用类\overprint中的环境beamer,但block仍然不稳定( 的文档beamer说不应该出现这种情况)。对于itemize命令\overprint确实有效(beamer 叠印并逐项列出)。

我该怎么做才能让 Th. 1 位于三张幻灯片的准确位置上并且没有任何晃动?

梅威瑟:

\documentclass{beamer}
   
\begin{document}
% ----- this works -----
\frame{
\begin{overprint}
\onslide<1>
\begin{itemize}
\item Foo
\item Bar
\end{itemize}
\onslide<2>
\begin{itemize}
\item I replace Foo
\item I replace Bar
\item I am new!
\end{itemize}
\end{overprint}
}

% ----- this does not -----
\begin{frame}{Results}
\begin{overprint}
\onslide<1->{
\begin{block}{Th. 1}
Some statement, given:
\begin{enumerate}[i)]
    \item Foo
    \item Bar
    \item FooBar
\end{enumerate}
\end{block}}
%\vspace*{0.5cm}
\onslide*<2>{
\begin{block}{Lemma}
An Argument for the proof.
\[
E = mc^2.
\]
\end{block}}
\onslide*<3>{
\begin{block}{Th. 2}
Some similar statement, given:
\begin{enumerate}[i)]
    \item Foo
    \item Bar
    \item BarFoo
\end{enumerate}
\end{block}}
\end{overprint}
\end{frame}
\end{document}

答案1

一个简单的解决方法是使用顶部对齐。或者您可以测量最大的块并使用overlayarea

\documentclass{beamer}

\newsavebox{\overprintbox}
   
\begin{document}

\begin{frame}[t]{Results}
\onslide<1->{
\begin{block}{Th. 1}
Some statement, given:
\begin{enumerate}[i)]
    \item Foo
    \item Bar
    \item FooBar
\end{enumerate}
\end{block}}
\begin{overprint}
\onslide*<2>{
\begin{block}{Lemma}
An Argument for the proof.
\[
E = mc^2.
\]
\end{block}}
\onslide*<3>{
\begin{block}{Th. 2}
Some similar statement, given:
\begin{enumerate}[i)]
    \item Foo
    \item Bar
    \item BarFoo
\end{enumerate}
\end{block}}
\end{overprint}
\end{frame}

\begin{frame}{Results}
\sbox\overprintbox{\begin{minipage}[b]{\textwidth}
\begin{block}{Th. 2}
Some similar statement, given:
\begin{enumerate}[i)]
    \item Foo
    \item Bar
    \item BarFoo
\end{enumerate}
\end{block}\vspace*{0pt}\end{minipage}}
\onslide<1->{
\begin{block}{Th. 1}
Some statement, given:
\begin{enumerate}[i)]
    \item Foo
    \item Bar
    \item FooBar
\end{enumerate}
\end{block}}
\begin{overlayarea}{\textwidth}{\dimexpr\ht\overprintbox+5pt}
\onslide*<2>{
\begin{block}{Lemma}
An Argument for the proof.
\[
E = mc^2.
\]
\end{block}}
\onslide*<3>{\usebox\overprintbox}
\end{overlayarea}
\end{frame}

\end{document}

我猜这+5pt是由于工作原理所致beamer,并避免了过度警告。

在此处输入图片描述

相关内容