Für Satz in zwei oder mehr Spalten gibt es zwei Hauptwerkzeuge. Das eine ist die Klassenoption twocolumn mit den Befehlen \twocolumn / \onecolumn, die das *ganze Dokument* zweispaltig macht. Das andere ist die Umgebung multicols aus dem Paket multicol, die mitten auf einer Seite beginnen und beliebig viele Spalten setzen kann. Sie wirken ähnlich, verhalten sich aber unterschiedlich: bei der Spaltenzahl, beim Ausgleich der Spaltenhöhen und beim Umgang mit Abbildungen und Tabellen (Floats). Diese Seite erklärt auch, wann welches Werkzeug passt.
Zwei Ansätze
Kurz gesagt: Wenn das ganze Dokument zweispaltig sein soll, etwa wie eine Konferenzarbeit, ist die Option twocolumn der Standardklassen der einfache Weg. Wenn aber nur ein Teil mehrspaltig sein soll, drei oder mehr Spalten nötig sind oder die Spaltenhöhen ausgeglichen werden sollen, passt multicol besser. Die Tabelle gibt einen groben Vergleich.
| Aspekt | twocolumn (Klasse) | multicol-Paket |
|---|---|---|
段数 | nur zwei Spalten | beliebig, 2 bis 10 |
範囲 | ganzes Dokument (oder seitenweise) | nur der umschlossene Bereich; Beginn mitten auf der Seite möglich |
最終ページの段の高さ | nicht ausgeglichen (rechte letzte Spalte oft kurz) | automatisch ausgeglichen |
切り替え時の改ページ | \twocolumn / \onecolumn erzwingen Seitenumbruch | keiner (Wechsel innerhalb derselben Seite) |
フロート(図表) | seitenbreite Floats mit figure* funktionieren | normale Floats nicht unterstützt (siehe unten) |
Das ganze Dokument zweispaltig — twocolumn
Am einfachsten ist es, der Dokumentklasse die Option twocolumn zu geben. Das setzt den gesamten Text zweispaltig; Standard ist onecolumn, also einspaltig. Viele Fachklassen sind intern auf dieser Option aufgebaut.
\documentclass[twocolumn]{article}Wenn die Spaltenzahl im Dokument wechseln soll, rufe im Text \twocolumn und \onecolumn auf. \twocolumn schaltet auf zweispaltig, \onecolumn zurück auf einspaltig. Zwei wichtige Einschränkungen: Erstens beginnen beide Befehle eine neue Seite; der Wechsel erfolgt also nie mitten auf der Seite. Zweitens erzeugt \twocolumn immer nur zwei Spalten, nie drei oder mehr.
\twocolumn hat ein optionales Argument: \twocolumn[⟨einspaltiger Vorspann⟩] setzt dieses Material einspaltig über die volle Breite, bevor der zweispaltige Text beginnt. So entsteht der klassische Artikellook: Titel, Autoren und Abstract über die ganze Breite, darunter der zweispaltige Haupttext.
\documentclass[twocolumn]{article}
\begin{document}
\twocolumn[%
\begin{center}
{\LARGE 論文タイトル}\\[4pt]
著者名 \quad 所属
\end{center}
\vspace{1em}
]
本文はここから 2 段組みで組まれます。……
\end{document}Der Abstand zwischen den beiden Spalten ist \columnsep, die Dicke einer Linie dazwischen \columnseprule. \columnseprule ist standardmäßig 0pt (keine Linie); setze einen positiven Wert, um eine Linie zu zeigen. Auf der letzten Seite gleicht twocolumn die Spaltenhöhen nicht aus, sodass die rechte Spalte deutlich kürzer sein kann. Für Ausgleich ist multicol unten zuständig.
\setlength{\columnsep}{20pt} % 段間を広げる
\setlength{\columnseprule}{0.4pt} % 段間に細い罫線を引くSeitenbreite Abbildungen im Zweispaltensatz
Ein echter Vorteil von twocolumn: Du kannst Abbildungen und Tabellen über die volle Seitenbreite über beide Spalten hinweg setzen. Statt figure oder table verwendest du die Sternumgebungen figure* / table*; der Float überspannt dann beide Spalten. Die Platzierung ist allerdings eingeschränkt: Seitenbreite Floats landen am Seitenanfang, nicht unten.
\documentclass[twocolumn]{article}
\usepackage{graphicx}
\begin{document}
% 1 段ぶんの幅の図(通常のフロート)
\begin{figure}
\centering
\includegraphics[width=\columnwidth]{plot}
\caption{片段に収まる図}
\end{figure}
% 両段にまたがる全幅の図
\begin{figure*}
\centering
\includegraphics[width=\textwidth]{wide-plot}
\caption{ページ全幅の図}
\end{figure*}
\end{document}Wichtig ist hier der Unterschied zwischen \columnwidth und \textwidth. \columnwidth ist die Breite einer Spalte, \textwidth die Breite des gesamten Textblocks (beide Spalten plus Zwischenraum). Für eine einspaltige Grafik nimm width=\columnwidth, für eine seitenbreite width=\textwidth, dann vermeidest du Überläufe.
Beliebig viele ausgeglichene Spalten — multicol
Das Paket multicol von Frank Mittelbach beseitigt die unbequemen Seiten von twocolumn: nur zwei Spalten, ganzes Dokument oder seitenweise, letzte Spalten nicht ausgeglichen. Lade es mit \usepackage{multicol} und umschließe den gewünschten Bereich mit der Umgebung multicols, deren Argument die Spaltenzahl ist.
\usepackage{multicol}
% ...本文中で
\begin{multicols}{3}
ここに書いた本文が 3 段に分かれて組まれます。……
\end{multicols}multicol hat vier Stärken. Erstens kannst du 2 bis 10 Spalten frei wählen. Zweitens werden die Spalten am Ende der Umgebung automatisch ungefähr gleich hoch ausgeglichen. Drittens kann die Umgebung mitten auf einer Seite beginnen, ohne Seitenumbruch wie bei twocolumn. Viertens können multicols-Umgebungen verschachtelt werden.
Wenn vor den Spalten ein Vorspann über alle Spalten hinweg stehen soll, etwa eine Überschrift oder Einleitung, gib nach der Spaltenzahl das optionale Argument [⟨Vorspanntext⟩] an. Nur dieses Material wird über die volle Breite gesetzt und nicht auf Spalten verteilt.
\begin{multicols}{3}[\section{用語集}]
この見出しは 3 段の上に全幅で出ます。\par
以降の本文が 3 段に分かれます。……
\end{multicols}Nach diesem Vorspannargument kann ein weiteres optionales [⟨Länge⟩] folgen. Es gibt den Mindestfreiraum am Seitenende an, der nötig ist, um die Spalten noch zu beginnen, und überschreibt vorübergehend \premulticols. Bleibt weniger Raum, starten die Spalten auf einer neuen Seite. Das verhindert, dass nach einem langen Vorspann ganz unten auf der Seite ungeschickt Spalten beginnen.
Spalten steuern — Umbrüche, Linien und unausgeglichen
Um selbst festzulegen, wo eine Spalte endet, rufe im Text \columnbreak auf. Der aktuelle Spalte wird dort beendet und der Rest in die nächste geschickt (seit Version 1.5u). Neuere Versionen akzeptieren \columnbreak[⟨0–4⟩], wobei 0 schwach und 4 erzwungen bedeutet. Außerdem gibt es \newcolumn, das einen Umbruch erzwingt, die Spalte aber kurz lässt.
Abstand und Linie zwischen Spalten verwenden wie twocolumn \columnsep (Abstand) und \columnseprule (Linienstärke, Standard 0pt). Die Linienfarbe lässt sich über \columnseprulecolor ändern; Standard ist die normale Textfarbe. Setze diese Längen vor Beginn der multicols-Umgebung.
\setlength{\columnsep}{1.5em} % 段間
\setlength{\columnseprule}{0.4pt} % 段間の罫線を表示
\begin{multicols}{2}
左の段の本文。……
\columnbreak % ここで右の段へ送る
右の段の本文。……
\end{multicols}Das normale multicols gleicht die Spalten auf der letzten Seite aus, aber manchmal sollen sie nicht ausgeglichen werden, etwa bei empfindlichem Material oder wenn Text über mehrere Seiten der Reihe nach fließen soll. Dafür gibt es die Sternform multicols* (seit Version 1.5q). Sie lässt die letzten Spalten unausgeglichen und füllt sie nacheinander von links.
Der Float-Kompromiss
Der größte Stolperstein bei multicol: Normale Floats (figure-/table-Umgebungen) und \marginpar können innerhalb von multicols nicht verwendet werden. Laut multicol-Handbuch ist LaTeXs Float-Mechanismus dort teilweise deaktiviert: Ein figure oder table im Inneren verschwindet und erzeugt die Warnung Floats and marginpars not allowed inside ‘multicols’ environment!. Nur seitenweite Stern-Floats wie figure* funktionieren; auch sie werden als volle Seitenbreite behandelt und am Seitenende, nicht in einer Spalte, platziert.
Hier trennen sich die Ansätze. Wenn du Abbildungen in einer Spalte oder Floats innerhalb einzelner Spalten brauchst, ist twocolumn richtig, weil es Floats korrekt behandelt (seitenbreite über figure*). Wenn du dagegen flexible Spaltenzahlen und Ausgleich priorisierst und seitenbreite Abbildungen genügen, nimm multicol. Muss in multicol unbedingt eine kleine Grafik stehen, setze ein nichtfließendes \includegraphics direkt oder nutze ein Umflusspaket wie wrapfig als Ersatz.
Noch ein Punkt: Weil Spalten schmal sind, entstehen im Blocksatz leicht ungleichmäßige Wortabstände. Wenn das stört, setze den Spaltentext flatternd rechts oder kombiniere Silbentrennung und Zeilenumbruch-Feinsteuerung.