Wie verwende ich das Multicols-Paket richtig in Beamer?

Wie verwende ich das Multicols-Paket richtig in Beamer?

Hier ist ein kleines Beispiel.

\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}

Es funktioniert gut, aber ich erhalte immer noch eine Warnung:

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

Mache ich hier etwas falsch? Gibt es eine korrekte Möglichkeit, das Paket mit zu verwenden beamer? Welche anderen Möglichkeiten gibt es, um Text in von einer Spalte zur anderen fließen zu lassen beamer?

Dieser Rahmen sieht gut aus, nicht wahr?

Um dies zu verdeutlichen, gebe ich ein weiteres Beispiel, bei dem es sehr natürlich erscheint, es multicolsanstelle der manuellen Aufteilung des Textes in Spalten zu verwenden:

\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}

Und die Ausgabe istBildbeschreibung hier eingeben

Antwort1

Die Warnung stammt vom *Formular multicols*und besagt, dass es multicolstattdessen verwendet wird. Um die Warnung zu vermeiden, verwenden Sie multicolsnichtmulticols*

\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}

Antwort2

Wenn die mit Sternchen versehene Version von multicolsverwendet wird

sämtliche Leerzeichen werden automatisch in die letzte(n) Spalte(n) gesetzt. […] [A]nstatt der üblichen Anordnung sind die Spalten auf der letzten Seite nicht ausgeglichen.

Im Handbuch, das die Quelle des obigen Zitats ist, wird auch die Warnung erläutert, die Sie sehen:

Wenn wir uns nicht in der Hauptküche befinden, also in einer Art Kiste, funktioniert dieser Ansatz nicht, da wir keine vertikale Größe für die Kiste haben. Daher sollten wir trotzdem darauf achten, dass wir das Gleichgewicht halten.

Sie müssen das also entfernen *oder eine Umgebung bereitstellen, die eine bestimmte vertikale Größe hat (offenbar werden Beamer-Frames nicht als solche erkannt, was möglicherweise damit zusammenhängt, dass ihre Größe ziemlich spät berechnet wird, vgl.Gibt es einen einfachen Befehl für die verfügbare Höhe einer Beamer-Folie?).

Zusätzlich sollte man in diesem Zusammenhang wissen, dass das Beamer-Paket eineeinheimischMechanismus für mehrere Spalten: die columnsund columnUmgebungen.

verwandte Informationen