Beamer 中柱的稳定垂直对齐

Beamer 中柱的稳定垂直对齐

在 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应垂直居中。

相关内容