我正在尝试将 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}