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 problem when a lot of figures are in question. Some figures tend to "fly around", that is, be a paragraph below, although I placed them before that paragraph. I use code:

\begin{figure}[ht]
\begin{center}
\advance\leftskip-3cm
\advance\rightskip-3cm
\includegraphics[keepaspectratio=true,scale=0.6]{slike/visina8}
\caption{}
\label{visina8}
\end{center}\end{figure}

to place my figures. How can I tell latex I REALLY want the figure in that specific place, no matter how much whitespace will be left?

Also, for the same reason I believe, \newpage doesn't work :( I put it before a \subsection, but it remains on current page...

share|improve this question
    
You're asking two questions here. If you still need help on the question about \newpage, please start a new question. –  Juan A. Navarro Jan 10 '11 at 12:06
1  
A tip: you can use backticks ` to mark your inline code as I did in my edit. (Moreover, please don't use introductions like "Hello" in your questions.) –  Hendrik Vogt Jan 10 '11 at 14:08
    
thanks to both of you! –  Marin Jan 11 '11 at 17:18
add comment

2 Answers 2

up vote 129 down vote accepted

The short answer: use the “float” package and then the [H] option for your figure.

\usepackage{float}

...

\begin{figure}[H]
\centering
\includegraphics{slike/visina8}
\caption{Write some caption here}\label{visina8}
\end{figure}

The longer answer: The default behaviour of figures is to float, so that LaTeX can find the best way to arrange them in your document and make it look better. If you have a look, this is how books are often typeset. So, usually the best thing to do is just to let LaTeX do its work and don't try to force the placement of figures at specific locations. This also means that you should avoid using phrases such as “in the following figure:”, which requires the figure to be set a specific location, and use “in Figure~\ref{..}“ instead, taking advantage of LaTeX's cross-references.

If for some reason you really want some particular figure to be placed “HERE”, and not where LaTeX wants to put it, then use the [H] option of the “float” package which basically turns the floating figure into a regular non-float.

Also note that, if you don't want to add a caption to your figure, then you don't need to use the figure environment at all! You can use the \includegraphics command anywhere in your document to insert an image.

share|improve this answer
2  
thanks for noting this! I wasn't aware of the change. H doesn't seem to work without any packages, but does work loading float. Is H from float the same as !h? –  Juan A. Navarro Jan 10 '11 at 12:12
6  
no, [!h] is changed anyway by most documentclasses to [!ht]. And the meaning of h is only: here, if possible, but not absolutely here. The ! allows LaTeX to minimze all counters and lengths which refer to floating environments. –  Herbert Jan 10 '11 at 12:18
1  
thanks, worked for me! I usually let latex place it where it wants, but sometimes i simply need it where I want. –  Marin Jan 11 '11 at 17:16
2  
For documents not intended to be printed, there is no reason to try and save paper, so large areas of whitespace aren't a problem. So it's much better to have the figure breaking the text at the most logical point, rather than floating somewhere else. These awkward conventions will go just like Latin went. –  Evgeni Sergeev Jul 12 '13 at 13:17
5  
I don't think that the usual concerns are about saving space, rather than stylistically trying to find the best place where to place a figure, table, etc. –  Juan A. Navarro Jul 12 '13 at 19:52
show 2 more comments

do not use a floating environment if you do not want it float.

\usepackage{caption}
...
\noindent%
\begin{minipage}{\linewidth}% to keep image and caption on one page
\makebox[\linewidth]{%        to center the image
  \includegraphics[keepaspectratio=true,scale=0.6]{slike/visina8}}
\captionof{figure}{...}\label{visina8}%      only if needed  
\end{minipage}
share|improve this answer
4  
Hi @Herbert - thanks a LOT for this answer! I had never before understood that \begin{figure} is a floating environment - while \begin{minipage} is not! I had a problem with wanting to include an image on bottom of page w/ text, and not even [H] helped; only this! I just replaced minipage for figure - and captionof for caption - and finally got what I wanted!! Thanks a lot again, cheers! –  sdaau Jan 27 '11 at 12:26
1  
Why do you use a \makebox? Doesn’t it look the same without it? –  Tobi Dec 7 '12 at 12:28
3  
@Tobi: if the image is not larger than \textwidth yes, otherwise not! \makebox centers the image independently from its width –  Herbert Dec 7 '12 at 12:46
    
Ahh :-) Thank you! –  Tobi Dec 7 '12 at 19:46
    
This was so super helpful; IMHO this should be the accepted answer as it works more as expected as the currently accepted one. –  user2820379 Jul 6 at 17:31
add comment

protected by Martin Scharrer Mar 27 at 13:41

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.