考虑这个简单的设置:
\documentclass{beamer}
\begin{document}
\begin{frame}
\begin{block}{The One}
\begin{itemize}
\item \only<1>{This is a tall row.}
\only<2>{This one is ganglier.}
\end{itemize}
\end{block}
\begin{block}{The Other}
Just a regular block that should stay where it is.
\end{block}
\end{frame}
\end{document}
现在的问题是,计算出的框高度显然发生了变化(请注意,高行没有“深”字母,而瘦长的行有),并且块的对齐方式不同。这会产生糟糕的幻灯片过渡效果:
我当前的解决办法是增加\phantom{g}
高行。
有没有一种不那么棘手的解决方案,最好是可以全局消除这种影响的解决方案?
注意:这确实不是在没有周围列表的情况下发生!也就是说,如果你有
\begin{block}{The One}
\only<1>{This is a tall row.}
\only<2>{This one is ganglier.}
\end{block}
我们得到:
答案1
这是一个众所周知的(并且有文档记录;参见beamer
文档第 9.5 节)叠加效果,恐怕没有通用的解决方案。两种可能的解决方案是使用\strut
s 代替\item
s 或使用overprint
或overlayarea
环境:
\documentclass{beamer}
\begin{document}
\begin{frame}
\begin{block}{The One}
\begin{itemize}
\item \only<1>{\strut This is a tall row.}
\only<2>{\strut This one is ganglier.}
\end{itemize}
\end{block}
\begin{block}{The Other}
Just a regular block that should stay where it is.
\end{block}
\begin{block}{The One}
\begin{overprint}
\begin{itemize}
\item \only<1>{This is a tall row.}
\only<2>{This one is ganglier.}
\end{itemize}
\end{overprint}
\end{block}
\begin{block}{The Other}
Just a regular block that should stay where it is.
\end{block}
\end{frame}
\end{document}