How to Use Breaks with LaTeX’s multicol Package
At a glance
- 1. Identify the break
Decide whether you need to start a new column or merely encourage a page break.
- 2. Use the column command
Inside multicols, use \columnbreak to start the next column at a chosen point.
- 3. Check the layout
Compile and inspect the columns; multicols may balance the final page.
If you want to control where text moves in a LaTeX multicols environment, the key distinction is between a page break and a column break. The command usually meant by “filbreak” is \filbreak; it comes from plain TeX and is not the normal way to move to the next column in multicol.
Use \columnbreak inside the environment to make the text after it start in the next column. The example below shows the basic setup.
What \filbreak is for
In plain TeX, \filbreak is a macro intended to encourage a page break at its location when needed. It uses flexible vertical space and a penalty to influence TeX’s page-breaking decisions. It does not mean “break this column here.” In a LaTeX document, the command may also be undefined unless a package, class, or your own preamble defines it.
The multicol package collects and splits material into columns, so a page-oriented macro such as \filbreak is not a dependable way to control that split. Its effect can depend on the surrounding vertical material and the column-building process. For an intentional column break, use the command provided for that purpose: \columnbreak.
Minimal working example
This complete example uses the multicol package and starts the second paragraph in the next column:
\documentclass{article}
\usepackage{multicol}
\begin{document}
\begin{multicols}{2}
This text appears in the first column. Add enough text here to see how
ordinary paragraphs flow through the columns.
\columnbreak
This text begins in the next column because of the explicit break.
Continue with more text as needed.
\end{multicols}
\end{document}
The package required is multicol. Put \columnbreak inside the multicols environment, at the point where you want the next column to begin. The environment’s closing command, \end{multicols}, finishes the columns; by default, multicols balances the columns on its final page. If balancing produces an unexpected result, check the amount and placement of the text around the forced break.
Choose the command for the job
| Goal | Usual approach |
|---|---|
| Start a new column at a specific point | \columnbreak inside multicols |
| Encourage a page break in ordinary page layout | A page-break command or a page-break penalty, chosen for the desired strength |
| Keep a short block from splitting | Keep the block together, or adjust the page/column layout so it fits |
A forced column break can leave one column shorter than the next. If you do not need an exact break location, let multicol choose the split and balance the final columns automatically.
Common mistakes
- Using
\filbreakas if it meant\columnbreak. The names sound similar, but they serve different purposes. Use\columnbreakfor a column transition. - Putting
\columnbreakoutsidemulticols. It is meant for use in the multi-column environment; outside it, there is nomulticolcolumn to advance to. - Expecting every column to have equal height after a forced break. A forced break constrains where material goes. The package balances the final page where possible, but a chosen break can affect the result.
- Assuming
\filbreakis a standard LaTeX command. It is a plain-TeX macro and may not be defined in a LaTeX document. Defining it manually does not make it a reliable substitute for\columnbreakinmulticols.
For a layout where text should begin at a chosen point in the next column, use \columnbreak; reserve page-breaking tools for page-level decisions.
References
- The multicol package
- The TeXbook, Donald E. Knuth
Spotted an error? Send a correction. Read how we write and check articles in our editorial policy.