Tx · LaTeX & TikZ

How to Insert a Full-Width Table in a Two-Column LaTeX Document

Published By the 9to5Science editorial team

At a glance

  1. 1. Use a starred float

    Put the table in the table* environment so it can span both columns.

  2. 2. Set the table width

    Use textwidth for the page-wide width; use tabular* if the columns should stretch to fill it.

  3. 3. Choose float placement

    Start with the top option. In standard two-column LaTeX, wide floats usually move to a page top.

  4. 4. Compile and check

    Allow LaTeX another compilation pass so it can settle the table position and references.

In a two-column LaTeX document, an ordinary table float is confined to one column. To make a table span the page’s text area, use the starred form, table*. The table’s content and caption can then extend across both columns.

A wide float is not necessarily placed exactly where its code appears. Standard two-column LaTeX normally places table* floats at the top of a page, so it is often best to define the table shortly before the paragraph that first refers to it and let LaTeX position it.

A complete example

This example creates a two-column article and a table that stretches across the full text width. It uses the booktabs package for the horizontal rules.

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

\begin{document}

Text in the two-column document can introduce the results in Table~\ref{tab:wide}.

\begin{table*}[t]
  \centering
  \caption{Measurements from three experiments}
  \label{tab:wide}
  \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}lrr}
    \toprule
    Experiment & Mean & Standard deviation \\
    \midrule
    A & 12.4 & 0.8 \\
    B & 15.1 & 1.2 \\
    C & 13.7 & 0.9 \\
    \bottomrule
  \end{tabular*}
\end{table*}

More two-column text follows here.

\end{document}

The table* environment makes the float span both columns. \textwidth is the width of the full text block, whereas \columnwidth is only the width of one column. The tabular* environment is assigned the full text width; @{\extracolsep{\fill}} lets LaTeX distribute the extra horizontal space between columns. If your table does not need to fill the page width, a regular tabular inside table* is enough: it will still span the page area, but its contents will keep their natural width.

Put the caption and label inside the float. Place \label after \caption so the reference uses the table’s number. The [t] option requests top placement; it is a preference, not a guarantee.

How placement works

In the standard two-column layout, wide floats have more limited placement options than single-column floats. A table* with [t] may appear at the top of the next page rather than beside the source code. The h option does not make a double-column float appear precisely “here” in standard LaTeX. If the table seems to have disappeared, check later pages before changing the code.

If you need a wide table at the bottom of a page, packages such as stfloats can enable bottom placement in some document setups. Package behavior can depend on the document class and other float-related packages, so check your class’s guidance before adding one. Avoid forcing a float with [H] as a first fix; that option comes from the float package and does not provide a general solution for spanning both columns.

Common mistakes

  • Using table instead of table*: table is a one-column float in two-column mode. Use the star when the float must span both columns.
  • Using \columnwidth for a full-width table: That dimension is only one column wide. Use \textwidth when setting the width of a page-wide table.
  • Expecting the table to stay at the source location: Floats move to satisfy LaTeX’s placement rules. Leave room for the float and adjust its position only when necessary.
  • Making the table wider than the text block: A table* spans both columns, but it does not automatically resize an overly wide tabular. Reduce column padding, use suitable fixed-width columns, or revise the content if it extends beyond \textwidth.
  • Putting a blank paragraph inside the alignment: A blank line within tabular or tabular* can cause errors. Separate rows with \\ and keep paragraph breaks outside the alignment.

If you are using a special class, such as a journal template, follow its instructions for wide floats. Some classes redefine float behavior, and their preferred placement options may differ from the standard article class.

References

  1. LaTeX2e unofficial reference manual: Floats

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