我正在使用beamer
类。在align
环境中,我有两个部分,每个部分有三张幻灯片。第一部分在所有三张幻灯片中都很相似。第二部分在第一张幻灯片中不存在,它出现在第二张幻灯片中,并且它将在第三张幻灯片中发生变化。我想在所有三张幻灯片中保持第一部分的位置固定,并在第二张和第三张幻灯片中将第二部分与第一部分对齐。但是,第一部分的位置从第二张幻灯片变为第三张幻灯片。
使用\only
不起作用并改变第一部分的位置:
\begin{frame}[t]
\frametitle{Example}
\begin{align*}
\uncover<1->A &B\\
A &B\\~\\
\only<2>{C &D}\only<3>{C &DEF\\
C &DEF\\
C &DEF}
\end{align*}
\end{frame}
使用\alt
也会改变位置:
\begin{frame}[t]
\frametitle{Example}
\begin{align*}
\uncover<1->A &B\\
A &B\\~\\
\alt<2>{C &D}{}
\alt<3>{C &DEF\\
C &DEF\\
C &DEF}{}
\end{align*}
\end{frame}
仅使用\uncover
保持第一部分固定:
\begin{frame}[t]
\frametitle{Example}
\begin{align*}
\uncover<1->A &B\\
A &B\\~\\
\uncover<2>{C &D}\\
\uncover<3>{C &DEF\\
C &DEF\\
C &DEF}{}
\end{align*}
\end{frame}
但是,在这个例子中,我的第二部分很小,如果我的第二部分很大,\uncover<3>
则会将我的第二部分置于框架之外。
那么,我该如何解决这个问题? 有没有办法将某些内容写在其他内容上(覆盖)?
答案1
为了避免文本移动,您可以使用来\mathmakebox
确保单元格的宽度在所有覆盖层上都相同:
\documentclass{beamer}
\usepackage{mathtools}
\begin{document}
\begin{frame}[t]
\frametitle{Example}
\begin{align*}
A &B\\
A &B\\~\\
C & \mathmakebox[2cm][l]{\temporal<2>{}{D}{DEF}}\\
\uncover<3->{C} & \uncover<3->{DEF}\\
\uncover<3->{C} & \uncover<3->{DEF}\\
\end{align*}
\end{frame}
\end{document}
(赞@Jasper Habicht提醒我存在\mathmakebox
!)