在 Beamer 中,我经常使用双列幻灯片布局,左侧是图片,右侧是文本。有时同一张图片会用在多张幻灯片上,右侧的文本会发生变化。我columns
为此使用了 Beamer 环境。
我的问题是,通常两张幻灯片中的图片的垂直对齐方式不一致,从而导致有点烦人的“抖动”。 的各种选项column
似乎都无济于事,而且默认(居中对齐)无论如何都是最合理的。
有没有办法强制图片相对于页面垂直居中,而不管另一列内容的大小?
这里有一个例子——左边的文本(代表一张图片)在框架之间移动了一点。
\documentclass{beamer}
\usepackage{calc}
\begin{document}
\begin{frame}\frametitle{Test frame}
\begin{columns}
\column{.5\textwidth}
A figure
\column{.5\textwidth}
\begin{itemize}
\item Item 1
\item Item 2
\end{itemize}
\end{columns}
\end{frame}
\begin{frame}\frametitle{Test frame 2}
\begin{columns}
\column{.5\textwidth}
A figure
\column{.5\textwidth}
\begin{itemize}
\item Another item 1
\item Another item 2
\item This list is longer
\item Than the previous one
\item was
\end{itemize}
\end{columns}
\end{frame}
\end{document}
答案1
您可以通过在第二列中使用相同高度的迷你页面来修复垂直对齐。以下是经过修改的示例,其中左列稳定:
\documentclass{beamer}
\usepackage{calc}
\begin{document}
\begin{frame}\frametitle{Test frame}
\begin{columns}
\column{.5\textwidth}
A figure
\column{.5\textwidth}
\begin{minipage}[c][.6\textheight][c]{\linewidth}
\begin{itemize}
\item Item 1
\item Item 2
\end{itemize}
\end{minipage}
\end{columns}
\end{frame}
\begin{frame}\frametitle{Test frame 2}
\begin{columns}
\column{.5\textwidth}
A figure
\column{.5\textwidth}
\begin{minipage}[c][.6\textheight][c]{\linewidth}
\begin{itemize}
\item Another item 1
\item Another item 2
\item This list is longer
\item Than the previous one
\item was
\end{itemize}
\end{minipage}
\end{columns}
\end{frame}
\end{document}
答案2
我遇到了类似的问题,发现columns
通过[T]
选项启动环境命令就足够了,
\begin{columns}[T]
对我来说很好用。
答案3
还可以使用选项将列内容垂直居中[c]
。对我来说效果很好。也许这也有助于解决您的问题。
\begin{columns}[c]
答案4
我认为这非常适合环境overprint
。它在不同的幻灯片上排版不同的材料,但将它们全部放在最大幻灯片大小的框中。
\documentclass{beamer}
\usepackage{calc}
\begin{document}
\begin{frame}
\frametitle<1>{Test frame}
\frametitle<2>{Test frame 2}
\begin{columns}
\column{.5\textwidth}
A figure
\column{.5\textwidth}
\begin{overprint}
\onslide<1>
\begin{itemize}
\item Item 1
\item Item 2
\end{itemize}
\onslide<2>
\begin{itemize}
\item Another item 1
\item Another item 2
\item This list is longer
\item Than the previous one
\item was
\end{itemize}
\end{overprint}
\end{columns}
\end{frame}
\end{document}
编辑:不过,我刚刚意识到这会使两个列表都顶部对齐,因此较短的列表可能看起来有点错位。我不确定是否有办法指定内容overprint
应垂直居中。