我正在写关于 Beamer 的论文报告。我需要写一个框架,以便
- 从一些初始文本和图片开始
- 然后添加更多文本
- 保留相同的文本,将图片更改为更大的图片并添加逐项列表
- 向列表中添加另一个元素
目前我有
\documentclass{beamer}
\begin{document}
\begin{frame}
\begin{columns}
\begin{column}{0.5\textwidth}
\onslide <1->
text1\\
\onslide <2->
text2:
\begin{itemize}
\onslide <3-> \item item1
\onslide <4-> \item item2
\end{itemize}
\end{column}
\begin{column}{0.5\textwidth}
\begin{figure}[H]
\resizebox{\textwidth}{!}{%
\only <1,2> {small picture} %pictures are tikz picture on a separate file
\only <3,4> {big picture}
}
\end{figure}
\end{column}
\end{columns}
\end{frame}
\end{document}
该代码的问题在于:
- 幻灯片 1 和 2 上不显示图片,只在幻灯片 3 和 4 上显示
- 由于图片大小不同,切换到大图时,侧面的文字会垂直移动
编辑:更改代码
答案1
\onslide
如果您以非线性方式构建框架,我会避免使用 unscoped 。如果您使用\only<>{...}
etc,则可以更轻松地控制元素的外观。为了避免因图片更改而导致的偏移,您可以使用环境
overlayarea
。只需确保环境的高度(以下示例中为 3 厘米)足以容纳您最高的图片即可如果你使用,
\uncover
你可以避免新文本影响页面布局,因为文本存在于所有覆盖层上,只是一开始不可见beamer 没有浮动机制。指定浮动说明符是没有意义的
[H]
。事实上,如果你的图像没有标题,你实际上并不需要环境,figure
除非你想让图像居中。
\documentclass{beamer}
\begin{document}
\begin{frame}
\begin{columns}
\begin{column}{0.5\textwidth}
\uncover<1->{text1\\}
\uncover<2->{text2:}
\begin{itemize}
\item<3-> item1
\item<4-> item2
\end{itemize}
\end{column}
\begin{column}{0.5\textwidth}
\begin{overlayarea}{\textwidth}{3cm}
\resizebox{\textwidth}{!}{%
\only<1,2>{small picture} %pictures are tikz picture on a separate file
\only<3,4>{big picture}
}
\end{overlayarea}
\end{column}
\end{columns}
\end{frame}
\end{document}