12

I have an image I'd like horizontally centered on the page. Currently, I'm using the following code (which does work) under pdflatex:

\usepackage{float}

...

\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=0.8\textwidth]{PicName}
\end{center}
\caption{Some kind of sane Caption}
\label{fig:picref}
\end{figure}

The references I've found on the ineternet are pretty much split 50-50 on whether the \leavevmode is required there or not. But, I can't find anything that says point blank what it's for.

So, my two-part question: what exactly does \leavevmode do, and do I need it?

lockstep
  • 250,273

1 Answers1

14

\leavevmode is defined this way:

\def\leavevmode{\unhbox\voidb@x}

source2e.pdf comments:

\leavevmode begins a paragraph, if necessary.

I would say, this is not necessary, so you don't need \leavevmode. You could further consider to use \centering instead of \begin{center} ... \end{center} because the latter produces additional vertical space, because it's actually a list environment.

Another source mentioning that it obviously had been used as workaround resp. bugfix: Centering of too wide figure.

In comparing references it may help to look at the dates and the context. I know such reports concerning inclusion of EPS files, which doesn't apply to pdfTeX.

Stefan Kottwitz
  • 231,401
  • 4
    I'd be a bit more definite: really not needed. (I'm working on the paragraph model for LaTeX3 at the moment, and inserting random \leavevmode items will cause all sorts of trouble there!) – Joseph Wright Dec 13 '10 at 20:58
  • Perfect, that was just what I wanted to know, thanks. – Electrons_Ahoy Dec 13 '10 at 21:26
  • And, for the record, after replacing the center environment with \centering and removing \leavevmode, I swear the document renders faster. – Electrons_Ahoy Dec 13 '10 at 21:27
  • 2
    @Electrons: It might compile slightly faster, but render? That seems unlikely. – TH. Dec 14 '10 at 10:16