如何正确使用 beamer 中的 multicols 包?

如何正确使用 beamer 中的 multicols 包?

这是一个小例子。

\documentclass{beamer}
\usepackage{multicol}
\usepackage{lipsum}
\setlipsumdefault{1-1}
\begin{document}
\begin{frame}
\tiny
\lipsum
\begin{multicols*}{2}
\lipsum
\end{multicols*}{1}
\lipsum
\end{frame}
\end{document}

它运行良好,但我仍然收到警告:

Package multicol Warning: multicols* inside a box does not make sense.
(multicol)                Going to balance anyway on input line 13.

我是不是搞错了什么?有没有正确的方法来使用 包beamer?在 中,还有哪些其他选项可以让文本从一列流到另一列beamer

这个框架看上去不错,不是吗?

multicols为了更清楚地说明这一点,我提供了另一个示例,其中使用而不是手动将文本划分为列似乎非常自然:

\documentclass{beamer}
\usepackage{multicol}\columnseprule 0.4pt\raggedcolumns
\begin{document} \begin{frame}
  The main programming paradigms are:
\begin{multicols*}{2}
  \begin{itemize}
    \item Imperative
    \item Object Oriented
    \item Functional
    \item Logical
    \item Aspect Oriented
    \item Constraints
    \item Parallel
  \end{itemize}
\end{multicols*}
However, there are many multi-paradigm programming languages.
\begin{multicols*}{2}
  \begin{itemize}
    \item Mathematica
    \item Oz
    \item F\#
    \item Visula Basic.Net
    \item C\#
    \item Scala
    \item Object Pascal
  \end{itemize}
\end{multicols*}
\end{frame}\end{document}

输出是在此处输入图片描述

答案1

警告来自表单*multicols*它表示它将改用multicol,因此为了避免警告,multicols请勿使用multicols*

\documentclass{beamer}
\usepackage{multicol}
\usepackage{lipsum}
\setlipsumdefault{1-1}
\begin{document}
\begin{frame}
\tiny
\lipsum
\begin{multicols}{2}
\lipsum
\end{multicols}{1}
\lipsum
\end{frame}
\end{document}

答案2

multicols如果使用带星号的版本

所有空白都会自动放置在最后一列或多列中。[…]与通常的环境不同,最后一页的列不平衡。

该手册是上述引文的来源,它也解释了您所看到的警告:

如果我们不在主厨房,即不在某种盒子里面,那么这种方法将不起作用,因为我们没有盒子的垂直尺寸,所以我们最好警告我们保持平衡。

因此你需要删除*或提供具有某些定义的垂直尺寸的环境(显然,投影仪框架没有被检测到,可能与其尺寸计算得相当晚有关,参见投影仪幻灯片中是否有一个简单的命令可以设置可用高度?)。

另外,应该知道,在这种情况下,beamer 包提供了一个本国的多列机制:columnscolumn环境。

相关内容