有时我希望框架上的元素逐步变化。我这样做
\only<2>{
...
}
\only<3>{
...
}
ETC。
但是这样会因为包含的内容大小不同而导致框架跳动。如何避免这种情况?
答案1
将您的代码片段包装在overlayarea
环境内。
答案2
beamer
手册第 9.5 节讨论了这个问题动态更改文本或图像,v.3.10 第 85 页。
您需要使用overlayarea
“更灵活但不太用户友好”的环境或overprint
环境。
\begin{overlayarea}{⟨area width⟩}{⟨area height⟩}
⟨environment contents⟩
\end{overlayarea}
\begin{overprint}[⟨area width⟩]
⟨environment contents⟩
\end{overprint}
然后您需要使用\onslide<⟨num⟩>
而不是\only<⟨num⟩>{...}
。数字必须不相交。
例子:
\begin{overprint}
% on every slide (not sure if it is officially supported)
\onslide<1>
% on first slide
\onslide<2>
% on slide two
\onslide<3>
% on slide three
% etc.
\end{overprint}
答案3
发生跳跃的原因是投影机通常将内容垂直置于框架的中心。
实现所有高度内容的恒定起点的一种方法是告诉 beamer 将帧顶部对齐。这可以逐帧进行,方法是
\begin{frame}[t]
或者对整个演示文稿进行全局设置:
\documentclass[t]{beamer}
梅威瑟:
\documentclass{beamer}
\begin{document}
\begin{frame}[t]
\only<1>{abc}
\only<2>{abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc }
\end{frame}
\end{document}
(*)至少对于所有不会溢出可用文本高度的高度。
答案4
使用命令幻像来构建相同大小的元素。
\only<2>{
...
}
\only<2>{
\phantom{xxxx}
}
\only<3>{
xxxx
}