我在 中有三个部分tabular
,我希望onslide1-
它们始终显示。单击一次后,我希望它们only2
显示出来;单击另一次后,在 的位置only2
,我希望它们永远only3-
被替换;单击另一次后,才会出现。代码如下:only2
onslide4-
\documentclass{beamer}
\usetheme{Boadilla}
\usepackage[frenchb]{babel}
\begin{document}
\begin{frame}
\begin{tabular}{ll|ll}
\onslide<1->{
\\\hline onslide1- \\\hline
}
\onslide<2->{
\only<2>{
\\[-2.8ex]
only2\\\vspace{3cm}\\only2
\\\hline
}%
\only<3->{
\\[-2.8ex]
only3-\\\vspace{3cm}\\only3-
\\\hline
}}
\onslide<4->{
\\\hline onslide4- \\\hline
}
\end{tabular}
\end{frame}
问题是,当onslide1-
一开始显示时,它不会让位于稍后出现的only2
或的位置。我尝试添加一个,因为通常会保留位置,但在这里不起作用...有人知道如何解决这个问题吗?only3-
\onslide<2->
\onslide
PS:我意识到下面的代码比以前的代码更简单,但也存在同样的问题:
\begin{frame}
\begin{tabular}{ll|ll}
\onslide<1->{onslide1\\}
\only<2>{only2\\}%
\only<3->{only3-\\}
\onslide<4->{onslide4-\\}
\end{tabular}
\end{frame}
但是,下面的代码没有这个问题。所以看起来这是由于 的位置造成的,但我在初始代码中\\
确实需要。\\\hline
\begin{frame}
\begin{tabular}{ll|ll}
\onslide<1->{onslide1}\\
\only<2>{only2}%
\only<3->{only3-}\\
\onslide<4->{onslide4-}\\
\end{tabular}
\end{frame}
答案1
使用overlayarea
:
\documentclass{beamer}
\usetheme{Boadilla}
\usepackage[frenchb]{babel}
\begin{document}
\begin{frame}
\begin{overlayarea}{7cm}{7cm}
\begin{tabular}{ll|ll}
\onslide<1->{%
\\\hline onslide1- \\\hline
}
\only<2>{%
\\[-2.8ex]
only2\\\vspace{3cm}\\only2
\\\hline
}%
\only<3->{%
\\[-2.8ex]
only3-\\\vspace{3cm}\\only3-
\\\hline
}
\onslide<4->{%
\\\hline onslide4- \\\hline
}
\end{tabular}
\end{overlayarea}
\end{frame}
\end{document}
答案2
尝试用\visible
或\uncover
代替\only
和\onslide
。