There are two ways to get columns in LaTeX. The twocolumn class option sets the whole document in two columns, the way most conference templates do. The multicol package lets you switch between one, two or more columns on the same page.
Short answer
For a whole document, use \documentclass[twocolumn]{article}. For part of a page, load multicol and wrap the text in \begin{multicols}{2} ... \end{multicols}. Normal floating figures do not work inside multicols; use figure* or a non-floating figure.
The whole document in two columns
\documentclass[twocolumn]{article}
\title{A Two-Column Paper}
\author{A. Author}
\begin{document}
\maketitle
\section{Introduction}
Text flows down the left column, then the right.
\end{document}To put a full-width abstract under the title, pass both to the optional argument of \twocolumn. Everything in the brackets is set across the page before the columns start:
\documentclass[twocolumn]{article}
\title{A Two-Column Paper}
\author{A. Author}
\begin{document}
\twocolumn[
\begin{@twocolumnfalse}
\maketitle
\begin{abstract}
A full-width abstract.
\end{abstract}
\end{@twocolumnfalse}
]
\section{Introduction}
Text in two columns.
\end{document}If the journal provides a class (IEEEtran, the ACM acmart class, and others), use its own commands instead; they handle the title block for you. \onecolumn and \twocolumn switch layout mid-document, but each starts a new page.
Columns for part of a page with multicol
multicol balances the columns at the end of the environment, so a short list or a section can sit in columns on an otherwise normal page:
\documentclass{article}
\usepackage{multicol}
\setlength{\columnsep}{1cm}
\setlength{\columnseprule}{0.4pt}
\begin{document}
This paragraph spans the full width.
\begin{multicols}{3}
This text is set in three columns with a 1\,cm gap and a thin rule
between them.
\columnbreak
This starts the second column.
\end{multicols}
Back to full width.
\end{document}\columnbreakforces the next text into the next column.\columnsepsets the gap and\columnsepruledraws a vertical line.multicols*(with a star) fills each column before starting the next instead of balancing them. It only works in the main text, not inside boxes.
Figures and tables in columns
In a twocolumn document, figure and table fit one column, and figure* and table* span both. Starred floats can only go at the top of a page (or the bottom, with the stfloats package).
Inside multicols, ordinary floats are not allowed. LaTeX does not stop with an error; it prints the warning "Floats and marginpars not allowed inside multicols environment" and the figure is lost. Use a non-floating figure instead, either with the float package and the [H] option, or a \captionof from the caption package:
\documentclass{article}
\usepackage{multicol}
\usepackage{float}
\begin{document}
\begin{multicols}{2}
Some text.
\begin{figure}[H]
\centering
\rule{0.8\linewidth}{2cm}
\caption{A figure that stays in its column.}
\end{figure}
More text.
\end{multicols}
\end{document}Replace the \rule with your \includegraphics[width=\linewidth]{file} (graphicx package). Use \linewidth, not \textwidth, so the image fits the column.
Columns of different widths
multicol makes equal columns. For a narrow sidebar beside a wide column, put two minipage environments side by side (their widths should add up to slightly less than \textwidth), or use the paracol package for text that runs in parallel across pages, such as a translation.
Frequently Asked Questions
How do I make two columns in LaTeX?
Use \documentclass[twocolumn]{article} for the whole document, or the multicol package with \begin{multicols}{2} for part of it.
Why did my figure disappear inside multicols?
Floats are not allowed inside multicols and are dropped with a warning. Use \begin{figure}[H] with the float package, or figure* outside the environment.
How do I force a column break?
Use \columnbreak inside multicols. In a twocolumn document, \newpage moves to the next column.
More LaTeX Guides
Written by Dr. Meng Zhao
Physician-Scientist · Founder, LabCat AI
MD · Former Neurosurgeon · Medical AI Researcher
Dr. Meng Zhao is a former neurosurgeon turned medical-AI researcher. After years in the operating room, he moved into applied AI for clinical workflows and now leads LabCat AI, a medical-AI company working on decision support and research tooling for clinicians. He built Journal Metrics as a free resource for researchers who need reliable journal metrics without paid database subscriptions.
Related Articles
LaTeX Page Numbering: Roman Numerals, Page X of Y, and Removing Page Numbers
How to change page numbering in LaTeX: switch between roman and arabic numerals, start at any number, move the number, show "Page X of Y", and remove the number from the title page.
7 min readLaTeXLaTeX Footnotes: Add, Reuse and Customize Footnotes (Including in Tables)
How to use footnotes in LaTeX: \footnote, footnotes in tables and minipages, referring to the same footnote twice, symbols instead of numbers, unnumbered notes and endnotes.
7 min readLaTeXLaTeX Hyperlinks with hyperref: \href, \url, Link Colors and Internal Links
How to add hyperlinks in LaTeX with hyperref: \href and \url, email links, links to sections and pages, colored links instead of boxes, breaking long URLs, and PDF metadata.
7 min read