Centering wide tables or figures
17 September 2008 by Stefan Kottwitz
When you want to include an image or a table that’s wider than the text width, you will notice that even when \centering or the center-environment is used this wide object will not be centered in relation to the surrounding text. It will be placed at the left margin but go into the right margin. Its frequently requested that wide figures or tables should overlap at both sides in equal measure.
It can easily achieved by putting the table or picture inside a box, giving the box the width of the text, by the \makebox command. Here is a compilable example, where I’m centering a table having 1.5 times the width of the text:
\documentclass[a4paper,10pt]{article} \usepackage[english]{babel} \usepackage{blindtext} \usepackage{tabularx} \begin{document} \blindtext \bigskip \noindent\makebox[\textwidth]{% \begin{tabularx}{1.5\textwidth}{XX} \blindtext & \blindtext \end{tabularx}} \bigskip \blindtext \end{document}
I’ve used \noindent to suppress the paragraph indentation, otherwise I would get an overfull \hbox. As you may notice there’s no \centering necessary because the width of the box equals \textwidth.
This topic was discussed in the LaTeX Community Forum, on CQF.info and on mrunix.de.
.
This entry was posted on 17 September 2008 at 8:22 PM and is filed under Figures and Tables, Layout. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.




17 September 2008 at 9:57 PM
Thanks for sharing this. I recently stumbled upon the same problem and did not find a good solution. Next time I’ll use this trick.
17 September 2008 at 11:49 PM
That’s pretty interesting. Being a long-time plain TeX user, I would just do an \hbox to\textwidth{\hss … \hss}, but this solution is much more LaTeX-like.
25 September 2008 at 1:39 AM
Hi Kjell, hi Marcin,
thank you for your comments, they’re encouraging me to post some more small tricks and workarounds.
29 March 2009 at 5:46 AM
Thanks. You have make a good job.
5 May 2009 at 4:23 AM
Thanks. I like that. However, it would have been better if you could display what it would look like when you compile it. I have a problem centering a picture even though I used the \centering code; which did not work. How do you put a picture on the left of the frame?
Again thanks
7 May 2009 at 6:15 PM
Hi Some,
here’s a screenshot using the code above:
Concerning your problem please show some code that’s needing correction. Btw. to position a picture freely you could use the textpos package.
1 October 2009 at 8:03 AM
I’m still a beginner with Latex, but this definitely helped. Thanks!
20 October 2009 at 6:27 PM
Thanks for the great post topic.
The example code works fine for me, but not when I try to adapt it for a figure.
Specifically,
\noindent\makebox[\textwidth]{%
\begin{figure}
\includegraphics{mypic}
\end{figure}}
returns “LaTeX Error: Not in outer par mode.” for me.
When I place the figure environment outside of the \makebox command,
\begin{figure}
\noindent\makebox[\textwidth]{%
\includegraphics{mypic}}
\end{figure}
the figure appears, but I am unable to change the width of the image,
\begin{figure}
\noindent\makebox[\textwidth]{%
\includegraphics[width=\textwidth]{mypic}}
\end{figure}
returns the “Not in outer par mode” again. Any ideas what I’m doing incorrectly?
6 December 2009 at 2:00 PM
Dear Sir
I have just seem this site. I have a question about LaTex. Please, I would like to know if the e-mail of :Aaron from 20 October 2009 at 6:27 PM, was answeered, because I have the same problem. Subject:Centering wide tables or figures.
Regards
Leon
7 December 2009 at 10:44 AM
Hi Leon,
you cannot put a figure into a box, because figures are intended to float, but you boxes inside figures are possible. So the second try of Aaron should work.
This example works for me:
Perhaps don’t use a figure environment if you wouldn’t need floating. Captions can be positioned using the caption package, even without a figure environment.
Stefan