How to Set Equal Spacing in an enumerate List in multicol
At a glance
- 1. Load both packages
Use enumitem to control list spacing and multicol to create the columns.
- 2. Set list lengths
Set itemsep for the gap between items; set topsep, parsep, and partopsep to control other vertical gaps.
- 3. Check the columns
Compile and adjust the lengths; multicol balances column heights but does not make every item the same height.
To set a consistent gap between numbered items in a multicols environment, use the enumitem package and set the list’s itemsep. You can also control the space before and after the list and the spacing between paragraphs within an item. These settings work inside columns just as they do in ordinary text.
Set the spacing with enumitem
The main lengths to know are:
| Setting | What it controls |
|---|---|
itemsep | Space between consecutive items |
topsep | Space before and after the list |
parsep | Extra space between paragraphs within one item |
partopsep | Extra space added around a list that starts a new paragraph |
For example, itemsep=0.8\baselineskip adds a gap of about 80% of the current line height between items. Use itemsep=0pt for no added gap. The right value depends on the font size and how much of the page the list should occupy.
Worked example
This complete example sets the same item spacing throughout a two-column numbered list. The settings apply to enumerate lists in the document; put them on the enumerate environment instead if you want to change only this list.
\documentclass{article}
\usepackage{enumitem}
\usepackage{multicol}
\setlist[enumerate]{
itemsep=0.8\baselineskip,
topsep=0.4\baselineskip,
parsep=0pt,
partopsep=0pt
}
\begin{document}
\begin{multicols}{2}
\begin{enumerate}
\item First item.
\item Second item.
\item Third item, with a little more text to show that an item can wrap
onto another line in a column.
\item Fourth item.
\item Fifth item.
\item Sixth item.
\end{enumerate}
\end{multicols}
\end{document}
The enumitem package provides \setlist for settings shared by lists. To make the change local, remove the \setlist command and write the options on the list instead:
\begin{enumerate}[itemsep=0.8\baselineskip,topsep=0.4\baselineskip,parsep=0pt]
\item First item.
\item Second item.
\end{enumerate}
The multicols environment handles the column layout and may balance the columns at its end. It does not change the meaning of itemsep: that length remains the added space between list items, even if the list continues in another column.
Consistent gaps are not identical item heights
A fixed itemsep makes the added gap consistent. It does not force the tops of items onto evenly spaced horizontal lines. An item with several wrapped lines occupies more vertical space than a one-line item, so the column will naturally look less uniform when item text has different lengths.
Likewise, multicol balances the amount of material in its columns; it does not guarantee the same number of list items in each column or identical column heights in every layout. If your aim is to spread items evenly from the top to the bottom of a fixed-height area, that is different from setting ordinary list spacing. A fixed itemsep alone cannot ensure that result, especially when item text wraps or the columns are balanced automatically.
Common mistakes
- Changing
\columnsepto fix vertical gaps:\columnsepcontrols the horizontal distance between columns, not the space between list items. - Changing only
topsep: this affects the boundary of the list, not the gaps between its items. Setitemsepfor those. - Ignoring paragraphs within an item: a blank line inside an item creates another paragraph. Set
parsepif that extra paragraph spacing is unwanted. - Expecting wrapped items to take equal space:
itemsepcontrols the gap after an item, not the total height of the item’s text. - Applying a global setting unintentionally:
\setlist[enumerate]{...}affects everyenumeratelist. Use options on one environment for a local adjustment.
References
Spotted an error? Send a correction. Read how we write and check articles in our editorial policy.