Department of Engineering

IT Services

LaTeX and multi-column output

The odd package fails in a multi-column setting, but for the most part there shouldn't be too many problems with multi-column output.

Two column output

Most classes take a [twocolumn] option (e.g. \documentclass[twocolumn]{article} is possible). The \onecolumn command switches to single column output and the \twocolumn command switches back, but both commands start a new page.

Putting page-wide items into a two column document can pose problems

  • Figures and tables - See the FAQ entry.

    There are alternative versions of the float environments - in two-column documents, figure* provides a floating page-wide figure (and table* a page-wide table). The "*"ed float environments can only appear at the top of a page, or on a whole page - h or b float placement directives are simply ignored.

    Unfortunately, page-wide equations can only be accommodated inside float environments. You could include them in figure environments, or use the float or ccaption package to define a new float type.

  • Titles and Abstracts - See the FAQ.

In twocolumn mode, \newpage and \pagebreak start a new column whereas \clearpage and \cleardoublepage always start new pages.

In a twocolumn document, the ftnright package puts footnotes only under the right columns.

Switching between different formats - multicol

The multicol package lets you change the number of columns in mid-page and its effect can extend over several pages. The columns on the final page are balanced (equal height) by default.

Here's an example of getting 3-column output.

\begin{multicols}{3}{
Put the text here. Maths, tabulars, pictures etc are all ok (but not
figures and tables). Remember to load in the \texttt{multicol}
package at the top of your document.
}
\end{multicols}

Figures present a problem in a multicol environment. See the multicol hints page for details.

Balancing columns at the end of a document

See the LaTeX FAQ.

Details

The gap between columns is controlled by \columnsep. The width of the column rule is controlled by \columnseprule.