Tx · LaTeX & TikZ

How to Put Multiple Columns in a CV with LaTeX

Published By the 9to5Science editorial team

At a glance

  1. 1. Choose the layout

    Use multicol for content that can flow between columns; use minipages for separate sections that must stay aligned.

  2. 2. Load the package

    Add \usepackage{multicol} to the preamble of your document.

  3. 3. Set the columns

    Wrap the content in \begin{multicols}{2} and \end{multicols}.

  4. 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: multicols flows 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 \twocolumn as if it were the same feature: The document’s \twocolumn mode changes the layout of the document pages. multicols lets you restrict column formatting to a particular region.
  • Trying to nest the environment inside a box: multicols uses the page output routine and is not suitable inside containers such as minipage or 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

  1. The multicol package — CTAN

Spotted an error? Send a correction. Read how we write and check articles in our editorial policy.