Centering a table wider than the text column

LatexCenter

Latex Problem Overview


I'm including a table in my LaTeX document and the centering works fine if the table isn't wider than the text column above it, but when the table is wider, the left side of the table sticks to the left side of the text column, and the additional width of the table is on the right side of the page, how can I center the table?

Latex Solutions


Solution 1 - Latex

I'd recommend trying the chngpage package.

\documentclass{article}

% allows for temporary adjustment of side margins
\usepackage{chngpage}

% provides filler text
\usepackage{lipsum}

% just makes the table prettier (see \toprule, \bottomrule, etc. commands below)
\usepackage{booktabs}

\begin{document}

\lipsum[1]% just a paragraph of filler text

\medskip% adds some space before the table
\begin{adjustwidth}{-1in}{-1in}% adjust the L and R margins by 1 inch
  \begin{tabular}{ll}
    \toprule
    Sequence & Wide column \\
    \midrule
    First & Vestibulum porta ultricies felis. In nec mi. \\
    Second & Nam vestibulum auctor nibh. In eleifend, 
    lacus id tristique ullamcorper, mauris urna convallis elit. \\
    Third & Ut luctus nisi quam lobortis magna. Aenean sit amet odio 
   et sapien rutrum lobortis. \\ 
    Fourth & Integer dictum accumsan purus. Nullam erat ligula,
    dictum sed, feugiat nec, faucibus id, ipsum. \\
    \bottomrule
  \end{tabular}
\end{adjustwidth}
\medskip% adds some space after the table

\noindent\lipsum[2]% just a paragraph of filler text

\end{document}

The documentation for the chngpage package is located at the bottom of the chngpage.sty file. I've pulled out the docs for the adjustwidth environment:

> Within an adjustwidth environment > the left and right margins can be > adjusted. The environment takes one > optional argument and two required > length arguments: > > \begin{adjustwidth}[]{leftmargin}{rightmargin} > > A positive length value will increase the relevant margin > (shortening the text lines) while a > negative length value will decrease > the margin (lengthening text lines). > An empty length argument means no > change to the margin. At the end of > the environment the margins revert to > their original values. > > For example, to extend the text > into the right margin: > > \begin{adjustwidth}{}{-8em} > > Any appearance of the optional > argument (even just []) will cause the > values of the margins to switch > between odd and even pages. > > If the document is being set > twosided it might be advantageous to > have any wider text extending into the > outside margin. This could be done via > the optional argument, as: > > \begin{adjustwidth}[]{}{-8em} > > To have the adjusted text > horizontally centered with respect to > any surrounding text, the margins > should be adjusted equally: > > \begin{adjustwidth}{-4em}{-4em}

Solution 2 - Latex

Latex: Centering table larger than textwidth

Usually, you can center tables with \center. But when the table is longer than the \textwidth, it will be align with the left side margin. You can temporarily adjust the textwidth.

% allows for temporary adjustment of side margins
\usepackage{chngpage}

\begin{table}
    \begin{adjustwidth}{-.5in}{-.5in}  
        \begin{center}
        \begin{tabular}{|c|}
            \hline
And here comes a very long line. And here comes a very long line. And here comes a very long line.  \\
            \hline
        \end{tabular} 

        \caption{This Table is longer than the text width. And its caption is really long, too. This Table is longer than the text width. And its caption is really long, too. This Table is longer than the text width. And its caption is really long, too. This Table is longer than the text width. }
        \label{myTable}
        \end{center}
    \end{adjustwidth}
\end{table}

Solution 3 - Latex

If you're using a \table float, the \begin{adjustwidth} ... \end{adjustwidth} has to be contained inside it.

Solution 4 - Latex

In figures, the figure environment must contain the adjustwidth env.. Furthermore, caption should be left outside of this environment to align with the overall figure's width:

\begin{figure}[h]
  \begin{adjustwidth}{-1in}{-1in}% adjust the L and R margins by 1 inch
    \centering
    \includegraphics[scale=0.44]{res/sth.png}
  \end{adjustwidth}
  \caption{sth}
  \label{fig:sth}
\end{figure}

Solution 5 - Latex

Are you using a multi-column document? I so, consider the table* variant environment.

In a single column environment your options run to:

  • Increase the textwidth. But the default margin were choosen for good ergonomic reasons, so this is to be discouraged beyond a minimal tweaking.

  • Reduce the text size in the table (i.e. \small or even \footnotesize inside the tabular environment). Again, this is less than optimal.

  • Use the rotating package as suggested in the link Stephan202 gave. I used this for a couple of very large tables in my dissertation (with only the p positioning options) and it came out very nicely.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionZequjView Question on Stackoverflow
Solution 1 - LatexgodbykView Answer on Stackoverflow
Solution 2 - Latexuser835611View Answer on Stackoverflow
Solution 3 - Latexdb.View Answer on Stackoverflow
Solution 4 - LatexjuanmirocksView Answer on Stackoverflow
Solution 5 - Latexdmckee --- ex-moderator kittenView Answer on Stackoverflow