Beamer、beamerposter、blocks 和 multicols

Beamer、beamerposter、blocks 和 multicols

我正在尝试将 Beamer(也称为 Beamerposter)与 一起使用multicols。但不幸的是,当我插入一个块时,该块会跨越整个页面的宽度,而不仅仅是它所在的列。与环境相比columns,块仅跨越它在其中定义的列。但是,我喜欢,multicols因为我喜欢它如何自动将文本换行到下一列,而columns我必须明确指定第一列的内容和第二列的内容。有没有办法解决这个问题——我可以在环境中使用 Beamer 块吗multicols

下面是发生情况的一个例子,底部提供了代码。

在此处输入图片描述

\documentclass{beamer}
\usetheme{Boadilla}

\usepackage{multicol}
\newcommand{\sometext}{
  Here is a bunch of text repeated over and over and over again.
  Here is a bunch of text repeated over and over and over again.
}

\begin{document}
    
    \begin{frame}{With columns}
        \begin{columns}
            \begin{column}{.45\linewidth}
                \textbf{Here the example block only spans one column.}
                \begin{example}
                    \sometext
                \end{example}
            \end{column}
            \begin{column}{.45\linewidth}
                \sometext
            \end{column}
        \end{columns}
    \end{frame}

    \begin{frame}{With multicols}
        \begin{multicols}{2}
            \textbf{Here, the example block spans both columns.}
            \begin{example}
                \sometext
            \end{example}
            \sometext
        \end{multicols}
    \end{frame}
    
\end{document}

任何帮助都值得感激,谢谢!

答案1

我不会multicols和 Beamer 一起使用。它们缺少 Beamer 列的许多优秀功能,无法自定义对齐和覆盖。

如果你确实必须使用它们,你可以使用以下方法来解决问题minipage

\documentclass{beamer}
\usetheme{Boadilla}

\usepackage{multicol}
\usepackage{lipsum}

\begin{document}
    
    \begin{frame}
    \frametitle{With multicols}
        \begin{multicols}{2}
            \textbf{Here, the example block spans both columns.}
            \begin{minipage}{\columnwidth}
            \begin{example}
               \lipsum[2][1-3]
            \end{example}
            \smallskip
            \end{minipage}
            \lipsum[2]
        \end{multicols}
    \end{frame}
    
\end{document}

在此处输入图片描述

或者,您可以加载 tcolorbox 内部 beamer 主题,它用 tcolorboxes 替换普通的 beamer 块:

\documentclass{beamer}
\usetheme{Boadilla}

\usepackage{multicol}
\usepackage{lipsum}
\useinnertheme{tcolorbox}

\begin{document}
    
    \begin{frame}
    \frametitle{With multicols}
        \begin{multicols}{2}
            \textbf{Here, the example block spans both columns.}
            \begin{example}
               \lipsum[2][1-3]
            \end{example}
            \lipsum[2]
        \end{multicols}
    \end{frame}
    
\end{document}

在此处输入图片描述

相关内容