I really love LaTeX, and learning it and working with is just as much fun as the beauty of the documents it outputs.

But when it comes to figures in LaTeX, sometimes, even when using the '!h' parameter, if the figure is too big then it is moved to the next page, and it fills the space between where it was included and where it appears with other text from the document; sometimes the figures even go to the next section.

So here is my question, does LaTeX know what it is doing? And is it really better this way? Or does this make the document looks less readable and less professional?

  • 2
    The float question comes up a lot. Here's the definitive explanation of how LaTeX handles floats: How to influence the position of float environments like figure and table in LaTeX?. For practical solutions see also Keeping tables/figures close to where they are mentioned. But your question really has no answer: you seem to presuppose in the question that it's not "better", and if someone says "LaTeX does things well", the answer will certainly be opinion based. For this reason I've voted to close your question.
    – Alan Munn
    May 27 '16 at 1:25
  • 1
    Just the contrary. Much more readable and professional. What is the alternative? Jump to next page but left a lot of empty space in the previous page . Have you see this kind of empty spaces in any serious book or journal? If a figure moved a lot from the related text, certainly the document is less readable, but you have the numbered captions and \label{} - \ref{} to make a cross reference, that is the right professional way to solve this. Anyway, if you want a “put it HERE, period” simply do not use a float, or use [H] from float package.
    – Fran
    May 27 '16 at 1:33
  • 2
    The lesson should be not to cram more into the text area than will fit. \usepackage{showframe} or \usepackage[showframe]{geometry} should be SOP while composing a new document. May 27 '16 at 2:47
  • 2
    Note here a few things. First, the need for floats is a peculiarity of fixed page sizes: online documents don't do this (though may use scaled-down images which are hyperlinked to full-sized versions). Second, as @cfr notes some people may prefer non-floating content, particularly if it's small enough to fit 'here' (the LaTeX default doesn't do that). Finally, the only real alternative to some form of float approach (at least for larger figures) is that of Edward Tufte: control the entire typesetting process and rewrite the text such that call-outs are not required and figures always fit!
    – Joseph Wright
    May 27 '16 at 5:58
  • 4
    using h is really your main problem so it's user error, the meaning of h is to not allow t b or p so latex is not allowed to put the figure top of a page or bottom of a page or on a page of its own, that is why it usually gives a warning and changes it to ht to give itself a chance. So really the question should be "does the latex user know what he/she is doing?" latex just does what it is instructed to do. That said it is reasonable to constrain figures to a particular section, but latex doesn't do that by default you need to tell it, eg placeins package. May 27 '16 at 7:04

Browse other questions tagged or ask your own question.