Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I have a fairly large figure in a LaTeX document. This figure is too large for the left and right margin of the document. This results in the figure being placed flush with the left margin, and way beyond the right margin. What I want is to do, is center the figure on the page. Can I do this, e.g. by setting a different left margin for this figure?

share|improve this question

migrated from stackoverflow.com May 29 '12 at 6:33

This question came from our site for professional and enthusiast programmers.

1  
possible duplicate of Center figure that is wider than \textwidth –  Jake May 29 '12 at 6:47
    
Welcome to TeX.sx! Your question was migrated here from Stack Overflow. Please register on this site, too, and make sure that both accounts are associated with each other (by using the same OpenID), otherwise you won't be able to comment on or accept answers or edit your question. –  Werner May 29 '12 at 12:12

7 Answers 7

up vote 44 down vote accepted

If the figure is e.g. 3 inches too wide, add a negative space of half that before the figure:

\hspace*{-1.5in}
\includegraphics{...}
share|improve this answer
\centerline{\includegraphics{...}}

Does this without any hspace trickery.

share|improve this answer
3  
Very clean code, and solves the need-more-width-for-my-graph problem, so worth a try! –  nruth Dec 4 '11 at 2:22
    
Worked good for me - thanks ;) –  Traxdata Apr 20 '12 at 12:04
1  
Excellent, this solved a whole lot more for me! –  dorien Jun 22 '13 at 22:31

If the figure is an external graphics, then do like this:

\begin{figure}
  \begin{center}
   \includegraphics[width=\textwidth]{...}
  \end{center}
\end{figure}

\textwidth will stretch it to full text width. You can specify a coefficient like, for example, 0.75 of the text width:

\includegraphics[width=0.75\textwidth]{...}
share|improve this answer

The above did not work for me as I wanted the figure wider than the caption. Also, I think there is a override by the endfloat package.

This will leave the entire document intact and only alter the figure:

\begin{figure}
    \advance\leftskip-4cm
    \includegraphics[options]{location}
\end{figure}

You could also use:

\advance\rightskip-2cm
share|improve this answer
1  
Your code snippet worked just fine, thank you for the insight ! The hspace command above didn't work in my case. –  Dr1Ku Jun 21 '10 at 20:21

Found a great simple solution to this problem!

\documentclass[a4paper,10pt]{article}
\usepackage{graphicx}
\begin{document}
\begin{figure}
\noindent\makebox[\textwidth]{%
\includegraphics[width=1.4\textwidth]{mypic}}
\end{figure}
\end{document}

I found this solution here: http://texblog.net/latex-archive/layout/centering-figure-table/#comment-875

share|improve this answer

If you are using the memoir class, the solution is to use

\centerfloat

rather than

\centering

in your float. This will prevent you from having to manually set the negative horizontal spacing.

Maybe you're not using memoir. Fair enough. \centerfloat is defined thusly, so you can just make your own:

\newcommand*{\centerfloat}{%
  \parindent \z@
  \leftskip \z@ \@plus 1fil \@minus \textwidth
  \rightskip\leftskip
  \parfillskip \z@skip}
share|improve this answer
    
\centerfloat works great in memoir class –  entropy Mar 21 '13 at 12:02

The automated version of Ian's answer might look like this:

\newlength{\myimageoversize}
\newsavebox{\myimage}
\newcommand{\mycenter}[1]{%
\savebox{\myimage}{#1}
\settowidth{\myimageoversize}{\usebox{\myimage}}
\addtolength{\myimageoversize}{-\textwidth}
\setlength{\leftskip}{-0.5\myimageoversize}
\noindent
\usebox{\myimage}}

\begin{figure}
\mycenter{\includegraphics{...}}
\end{figure}
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.