Balancing the Two Columns of Text on the Last Page

Patrick W. Daly

This paper describes package balance version 4.3 from 1999/02/23 It is part of the preprint collection of packages

Summary

The stripped version of this file contains the following brief description:

 % In order to balance the columns on a page, \balance must be given
 % somewhere within the first column. To turn off the feature, give
 % \nobalance. One has to look at the unbalanced text first to decide
 % where best to place \balance.

1 Introduction

When a L^{A}TEX document is to be set in two-column mode, one can add twocolumn as an option to \documentstyle (L^{A}TEX 2.09) or to \documentclass (L^{A}TEX 2ε), or one can use the \twocolumn command in the text. In either case, the columns on the last page, or those before a \cleardoublepage command, will be of unequal height. This is because L^{A}TEX views the columns as pages which are just output as pairs, and it no longer knows about the left-hand column when a short right-hand one is finished.

The macros in this package solve this problem by modifying the output routines in two-column mode.

2 Invoking the Package

The macros in this package are included in the main document with the \usepackage command of L^{A}TEX 2ε,

     \documentclass[..,twocolumn,..]{...}
     \usepackage{balance}

There are no L^{A}TEX 2ε options for this package.

Alternatively, the name of the package is added as an option to the \documentstyle command in L^{A}TEX 2.09 compatibility mode, as

     \documentstyle[..,twocolumn,balance..]{...}

3 Usage

Including the balance package as shown above does not activate it immediately. There are a number of reasons for this.

1. It could be that a newer (or much older) version of L^{A}TEX is being used for which the modified \output routines are incompatible; in this case, the new routines must be left inactive.

2. Sometimes the modified output routine does not work well for normal pages, especially with floats (figures and tables) or footnotes.

For these reasons, it is thought better to have the modified output routines left

\balance inactive, and to turn them on only when needed. This is done with the command \balance, which should be issued somewhere in the text of what would be the first column of the last page without balanced columns. If it is issued too late, i.e., in the second column, then a warning message is printed that balancing may not take place.

\nobalance To turn off the balancing routines, call \nobalance. This might be useful where there are many ‘last’ pages, say at the end of book chapters. The \balance command should be given for each page that needs balancing, and then turned off at the end of the second column.

It might well be that \balance can be left on all the time, but one should check the output carefully, and turn it off if need be.

4 An Alternative

Making multicolumn text with Mittelbach’s multicol package is perhaps a better method. It balances automatically, and allows more than just two columns. Never use balance together with multicol!