How to Put Multiple Columns in a CV with LaTeX
At a glance
- 1. Choose the layout
Use multicol for content that can flow between columns; use minipages for separate sections that must stay aligned.
- 2. Load the package
Add \usepackage{multicol} to the preamble of your document.
- 3. Set the columns
Wrap the content in \begin{multicols}{2} and \end{multicols}.
- 4. Check the result
Compile and adjust the column gap or add a manual column break if needed.
LaTeX’s multicol package is a straightforward way to place flowing content—such as a skills list or selected publications—in two or more columns on a CV page. The important distinction is that multicol fills one column and then continues in the next. It does not create two independent blocks whose rows stay aligned.
Use multicol for flowing content
Load the package in your document preamble, then place the material you want split into columns inside the multicols environment. The number in braces is the number of columns.
Here is a complete, minimal example you can compile. It uses the article class as a simple CV-style layout; the same environment can be used in many other document classes.
\documentclass[10pt,a4paper]{article}
\usepackage[margin=1.8cm]{geometry}
\usepackage{multicol}
\setlength{\parindent}{0pt}
\setlength{\columnsep}{1.2cm}
\begin{document}
\begin{center}
{\LARGE Alex Morgan}\\[4pt]
alex.morgan@example.com \quad | \quad +1 555 0100
\end{center}
\section*{Profile}
Research assistant with experience in data analysis, scientific writing,
and laboratory work.
\section*{Skills}
\begin{multicols}{2}
\begin{itemize}
\item Data analysis
\item Python
\item Statistical modelling
\item Scientific writing
\item Laboratory methods
\item Project coordination
\end{itemize}
\end{multicols}
\section*{Experience}
\textbf{Research Assistant} \hfill 2022--2025\\
Example University\\
Analysed experimental data and prepared reports for research projects.
\end{document}
The \usepackage{multicol} line enables the environment. In \begin{multicols}{2}, the 2 requests two columns; change it to 3 for three columns. The \columnsep length sets the horizontal gap between columns. The heading is outside the environment, so it spans the page width rather than appearing only above the first column.
The example’s skills are a single list. LaTeX places its items in the first column and continues in the second when needed. The package can balance the columns at the end of the environment. If you want content to move to the next column at a particular point, put \columnbreak where the break should occur.
Use a different layout for aligned sections
A CV often has paired information, such as dates in a narrow left area and a role description in a wider right area. That is not flowing text: each date should remain beside its own role. multicol may split the content at an inconvenient point, so use a two-column structure designed for independent blocks instead. For a small, fixed pair of sections, minipage is one option:
\noindent
\begin{minipage}[t]{0.30\textwidth}
\textbf{2022--2025}
\end{minipage}\hfill
\begin{minipage}[t]{0.66\textwidth}
\textbf{Research Assistant}\\
Example University: analysed experimental data and prepared reports.
\end{minipage}
The two widths plus the flexible \hfill space fit within the text width. This creates one pair of blocks; repeat the structure for other entries, or use a CV class or table-based layout if you need many rows with consistent alignment. In a class such as moderncv, first check the class’s own commands and layout guidance rather than assuming every environment can be inserted anywhere.
Common mistakes
- Expecting rows to stay together:
multicolsflows material from one column to the next. Use minipages or another aligned layout for dates and descriptions. - Applying columns to the whole document unintentionally: Put only the intended material between
\begin{multicols}{...}and\end{multicols}. Text outside that environment remains in the normal layout. - Putting a heading inside the columns by accident: Place a full-width heading immediately before the environment. If a heading belongs to one column, place it inside.
- Using
\twocolumnas if it were the same feature: The document’s\twocolumnmode changes the layout of the document pages.multicolslets you restrict column formatting to a particular region. - Trying to nest the environment inside a box:
multicolsuses the page output routine and is not suitable inside containers such asminipageor floating figures. Keep the environment in the document’s main text flow.
For a compact skills section, multicols is usually convenient. For structured CV entries that must line up predictably, choose a layout with separate, controlled columns instead.
References
Spotted an error? Send a correction. Read how we write and check articles in our editorial policy.