Skip to main content
If you want multiple columns in LaTeX, there are two main options:
  • use the twocolumn document-class option when the whole document should stay in two columns
  • use the multicol package when only part of the document should switch to columns
This guide shows when to use each approach, how to force a column break, and how to control spacing and separator rules.
Quick answer:
\documentclass[twocolumn]{article}
for a full two-column document, or:
\usepackage{multicol}

\begin{multicols}{2}
Your text here
\end{multicols}
for a section that should use two columns.Related topics: Document classes | Headers & footers | Figure positioning

Which Column Method Should You Use?

NeedBest choice
Whole paper in two columnstwocolumn class option
Only one section in columnsmulticol
Manual break to the next column\columnbreak
Adjust gap between columns\columnsep
Add a line between columns\columnseprule

Document Class Columns

Built-in Two-Column Mode

% Two-column mode in document class
\documentclass[twocolumn]{article}
\usepackage{lipsum}

\begin{document}

\title{Two-Column Article}
\author{Author Name}
\maketitle

\section{Introduction}
\lipsum[1-2]

\section{Methods}
\lipsum[3-4]

\section{Results}
\lipsum[5-6]

\end{document}

Column Separation

\documentclass[twocolumn]{article}
\usepackage{lipsum}

% Customize column parameters
\setlength{\columnsep}{30pt}        % Space between columns
\setlength{\columnseprule}{0.5pt}   % Rule between columns
\setlength{\columnwidth}{0.45\textwidth}  % Column width

% Color the rule
\usepackage{xcolor}
\renewcommand{\columnseprulecolor}{\color{gray}}

\begin{document}

\section{Sample Content}
\lipsum[1-4]

\end{document}

The multicol Package

Basic Multi-Column Setup

\documentclass{article}
\usepackage{multicol}
\usepackage{lipsum}

\begin{document}

\section{Introduction}
This text appears in single column.

% Start multi-column environment
\begin{multicols}{3}
\lipsum[1-6]
This text flows across three columns with automatic balancing.
\end{multicols}

Back to single column text.

\section{Two-Column Section}
\begin{multicols}{2}
\lipsum[7-10]
\end{multicols}

\end{document}

Column Rules and Spacing

\documentclass{article}
\usepackage{multicol}
\usepackage{xcolor}
\usepackage{lipsum}

% Global column settings
\setlength{\columnseprule}{1pt}
\renewcommand{\columnseprulecolor}{\color{blue}}
\setlength{\columnsep}{25pt}

\begin{document}

\begin{multicols}{3}
[\section{Three Columns with Rules}
This section demonstrates styled column rules.]

\lipsum[1-4]

\end{multicols}

% Local column settings
\begin{multicols}{2}
[\subsection{Custom Spacing}]
\setlength{\columnseprule}{0.5pt}
\renewcommand{\columnseprulecolor}{\color{red}}

\lipsum[5-8]

\end{multicols}

\end{document}

Advanced Column Control

Unbalanced Columns

\documentclass{article}
\usepackage{multicol}
\usepackage{lipsum}

\begin{document}

% Balanced columns (default)
\begin{multicols}{2}
[\section{Balanced Columns}]
\lipsum[1-3]
\end{multicols}

% Unbalanced columns
\begin{multicols*}{2}
[\section{Unbalanced Columns}]
\lipsum[4-6]
Short content here.

\columnbreak
Much longer content in the second column that continues for many lines and demonstrates unbalanced column layout.
\lipsum[7-8]
\end{multicols*}

\end{document}

Manual Column Breaks

\documentclass{article}
\usepackage{multicol}
\usepackage{lipsum}

\begin{document}

\begin{multicols}{3}
[\section{Manual Column Control}]

First column content.
\lipsum[1]

\columnbreak
Second column starts here.
\lipsum[2]

\columnbreak
Third column content.
\lipsum[3]

\end{multicols}

% Preventing column breaks
\begin{multicols}{2}
[\section{Preventing Breaks}]

\lipsum[4]

\begin{samepage}
This paragraph should not be broken across columns.
It will stay together as one unit.
\end{samepage}

\lipsum[5]

\end{multicols}

\end{document}

Column Spanning Elements

Spanning Headers and Figures

\documentclass{article}
\usepackage{multicol}
\usepackage{graphicx}
\usepackage{lipsum}

\begin{document}

\begin{multicols}{2}
[\section{Document with Spanning Elements}
This section header spans both columns and provides context for the content below.]

\lipsum[1-2]

\end{multicols}

% Figure spanning columns
\begin{figure*}[t]
\centering
\includegraphics[width=0.8\textwidth]{example-image}
\caption{This figure spans the full page width across multiple columns}
\label{fig:spanning}
\end{figure*}

\begin{multicols}{2}

\lipsum[3-4]

% Table spanning columns
\end{multicols}

\begin{table*}[t]
\centering
\begin{tabular}{|c|c|c|c|c|}
\hline
Column 1 & Column 2 & Column 3 & Column 4 & Column 5 \\
\hline
Data & Data & Data & Data & Data \\
\hline
\end{tabular}
\caption{Wide table spanning multiple columns}
\end{table*}

\begin{multicols}{2}

\lipsum[5-6]

\end{multicols}

\end{document}

Inline Spanning Text

\documentclass{article}
\usepackage{multicol}
\usepackage{lipsum}

\begin{document}

\begin{multicols}{3}
[\section{Mixed Column Content}]

\lipsum[1]

\end{multicols}

% Temporary single column for important note
\begin{center}
\fbox{\parbox{0.8\textwidth}{
\textbf{Important Note:} This highlighted text spans across the full width to draw attention to critical information.
}}
\end{center}

\begin{multicols}{3}

\lipsum[2-4]

\end{multicols}

\end{document}

Customizing Column Behavior

Column Width and Balance

\documentclass{article}
\usepackage{multicol}
\usepackage{lipsum}

\begin{document}

% Custom column tolerance
\setlength{\multicolsep}{12pt plus 4pt minus 3pt}
\setlength{\premulticols}{12pt plus 4pt minus 3pt}
\setlength{\postmulticols}{12pt plus 4pt minus 3pt}

\begin{multicols}{2}
[\section{Customized Column Spacing}]

% Custom balance
\raggedcolumns
\lipsum[1-3]

\end{multicols}

% Force balanced columns
\begin{multicols}{3}
[\subsection{Forced Balance}]

\flushcolumns
This content will be balanced across three columns regardless of natural break points.
\lipsum[4-5]

\end{multicols}

\end{document}

Column Penalties

\documentclass{article}
\usepackage{multicol}
\usepackage{lipsum}

% Adjust penalties for better column breaks
\clubpenalty=10000
\widowpenalty=10000
\displaywidowpenalty=10000

\begin{document}

\begin{multicols}{2}
[\section{Optimized Column Breaks}]

% Prevent bad breaks
\interlinepenalty=10000

\lipsum[1]

% Allow breaks here
\penalty-100

\lipsum[2]

% Discourage breaks
\nopagebreak
\lipsum[3]

\end{multicols}

\end{document}

Specialized Column Layouts

Mixed Column Layouts

\documentclass{article}
\usepackage{multicol}
\usepackage{lipsum}

\begin{document}

% Single column introduction
\section{Introduction}
\lipsum[1]

% Two-column main content
\begin{multicols}{2}
[\subsection{Main Content}]
\lipsum[2-4]
\end{multicols}

% Three-column details
\begin{multicols}{3}
[\subsection{Detailed Analysis}]
\lipsum[5-7]
\end{multicols}

% Back to single column
\section{Conclusion}
\lipsum[8]

\end{document}

Asymmetric Columns

\documentclass{article}
\usepackage{paracol}
\usepackage{lipsum}

\begin{document}

\section{Asymmetric Layout}

% Different width columns
\setlength{\columnseprule}{0.4pt}
\columnratio{0.6}

\begin{paracol}{2}

% Main content (60% width)
\lipsum[1-3]

\switchcolumn

% Sidebar content (40% width)
\textbf{Sidebar Notes:}

Key points from the main text:
\begin{itemize}
\item Important observation
\item Critical detail
\item Summary point
\end{itemize}

Additional references and supplementary information.

\end{paracol}

\end{document}

Newsletter and Journal Layouts

Newsletter Style

\documentclass[twocolumn]{article}
\usepackage{multicol}
\usepackage{graphicx}
\usepackage{fancyhdr}
\usepackage{xcolor}

% Newsletter header
\pagestyle{fancy}
\fancyhf{}
\fancyhead[L]{\textbf{\Large COMPANY NEWSLETTER}}
\fancyhead[R]{\textbf{Issue 42 | March 2024}}
\renewcommand{\headrulewidth}{2pt}

% Column customization
\setlength{\columnsep}{20pt}
\setlength{\columnseprule}{0.5pt}

\begin{document}

% Full-width header article
\twocolumn[
\begin{@twocolumnfalse}
\begin{center}
\textbf{\Huge MAJOR ANNOUNCEMENT}\\[10pt]
\textit{\large Company achieves significant milestone in Q1 2024}
\end{center}
\vspace{20pt}
\end{@twocolumnfalse}
]

\section{Lead Story}
This is the main story content that flows in two-column format.

\includegraphics[width=\columnwidth]{example-image}

\section{Secondary News}
Additional news items continue in column format.

\section{Quick Updates}
\begin{itemize}
\item Update 1
\item Update 2  
\item Update 3
\end{itemize}

\end{document}

Academic Journal Style

\documentclass[twocolumn,10pt]{article}
\usepackage{multicol}
\usepackage{abstract}
\usepackage{lipsum}

% Journal formatting
\setlength{\columnsep}{15pt}
\setlength{\columnseprule}{0.3pt}

% Custom abstract
\renewcommand{\abstractnamefont}{\normalfont\bfseries}
\renewcommand{\abstracttextfont}{\normalfont\small\itshape}

\begin{document}

% Single column for title and abstract
\twocolumn[
\begin{@twocolumnfalse}
\title{Research Paper Title: A Comprehensive Study}
\author{Author Name$^1$, Co-Author Name$^2$}
\date{}
\maketitle

\begin{abstract}
This is the abstract of the research paper that spans the full width before the two-column layout begins. It provides a concise summary of the research methodology, findings, and conclusions.
\end{abstract}

\vspace{10pt}
\textbf{Keywords:} LaTeX, typography, academic writing, columns
\vspace{20pt}
\end{@twocolumnfalse}
]

\section{Introduction}
\lipsum[1-2]

\section{Literature Review}
\lipsum[3-4]

\section{Methodology}
\lipsum[5-6]

\section{Results}
\lipsum[7-8]

\begin{table}[h]
\centering
\begin{tabular}{lcc}
\hline
Method & Accuracy & Time \\
\hline
A & 95\% & 10s \\
B & 92\% & 5s \\
\hline
\end{tabular}
\caption{Results comparison}
\end{table}

\section{Discussion}
\lipsum[9-10]

\section{Conclusion}
\lipsum[11]

\end{document}

Troubleshooting Column Issues

Common Problems and Solutions

\documentclass{article}
\usepackage{multicol}
\usepackage{lipsum}

\begin{document}

% Problem: Uneven column heights
% Solution: Use balanced multicols
\begin{multicols}{2}
[\section{Balanced Columns}]
\lipsum[1-3]
\end{multicols}

% Problem: Figures breaking columns badly
% Solution: Use [H] placement or adjust penalties
\begin{multicols}{2}
[\section{Figure Placement}]

\lipsum[4]

% Better figure placement
\begin{figure}[H]
\centering
\includegraphics[width=0.8\columnwidth]{example-image}
\caption{Properly placed figure}
\end{figure}

\lipsum[5]

\end{multicols}

% Problem: Tables too wide for columns
% Solution: Use adjustbox or scale
\begin{multicols}{2}
[\section{Table Fitting}]

\lipsum[6]

\begin{table}[H]
\centering
\resizebox{\columnwidth}{!}{%
\begin{tabular}{cccc}
\hline
A & B & C & D \\
\hline
Data & Data & Data & Data \\
\hline
\end{tabular}
}
\caption{Resized table}
\end{table}

\lipsum[7]

\end{multicols}

\end{document}

Fine-tuning Column Balance

\documentclass{article}
\usepackage{multicol}
\usepackage{lipsum}

\begin{document}

% Adjust column parameters
\setlength{\multicolsep}{6pt plus 2pt minus 1pt}
\setlength{\premulticols}{6pt plus 2pt minus 1pt}  
\setlength{\postmulticols}{6pt plus 2pt minus 1pt}

% Fine-tune balance tolerance
\setcounter{collectmore}{-1}  % More aggressive balancing

\begin{multicols}{3}
[\section{Fine-tuned Columns}]

% Use penalties to control breaks
\lipsum[1]

\penalty-100  % Encourage break here

\lipsum[2]

\penalty10000  % Discourage break here
Short paragraph that should stay together.

\lipsum[3]

\end{multicols}

\end{document}

Best Practices

Column layout guidelines:
  1. Choose appropriate column count - 2-3 columns work best for most content
  2. Consider line length - Aim for 45-75 characters per line
  3. Balance content - Use multicol for automatic balancing
  4. Mind the gaps - Adjust \columnsep for readability
  5. Test thoroughly - Check appearance at different zoom levels
  6. Use spanning elements wisely - Don’t break flow unnecessarily

Professional Column Setup

\documentclass{article}
\usepackage{multicol}
\usepackage{microtype}  % Better typography
\usepackage{lipsum}

% Professional column settings
\setlength{\columnsep}{18pt}
\setlength{\columnseprule}{0.3pt}
\renewcommand{\columnseprulecolor}{\color{gray!50}}

% Improve text flow
\tolerance=1000
\hyphenpenalty=1000
\exhyphenpenalty=1000

\begin{document}

\begin{multicols}{2}
[\section{Professional Layout}
Optimized for readability and professional appearance.]

\lipsum[1-4]

This layout uses professional typography settings to ensure optimal readability across multiple columns.

\end{multicols}

\end{document}

Quick Reference

Essential Commands

CommandPurposeExample
\begin{multicols}{n}Start n-column layout\begin{multicols}{3}
\columnbreakForce column breakInsert between paragraphs
\setlength{\columnsep}{length}Set column separation\setlength{\columnsep}{20pt}
\setlength{\columnseprule}{width}Set rule width\setlength{\columnseprule}{0.5pt}

Column Parameters

ParameterDescriptionTypical Value
\columnsepSpace between columns18pt-25pt
\columnsepruleRule width0pt-1pt
\multicolsepSpace before/after multicols12pt plus 4pt minus 3pt
\premulticolsSpace before multicols12pt plus 4pt minus 3pt
\postmulticolsSpace after multicols12pt plus 4pt minus 3pt

Document Class Options

OptionEffect
twocolumnEnable two-column mode
onecolumnSingle column (default)
landscapeLandscape orientation

Next: Learn about LaTeX counters and numbering for advanced numbering schemes, or explore Headers and footers for page design.