Tables and figures have a tendency to surprise, by floating
away from where they were specified to appear. This is in fact
perfectly ordinary document design; any professional typesetting
package will float figures and tables to where they'll fit without
violating the certain typographic rules. Even if you use the
placement specifier h
for `here', the figure or table will not be
printed `here' if doing so would break the rules; the rules themselves
are pretty simple, and are given on page 198, section C.9 of the
LaTeX manual. In the worst case, LaTeX's rules can cause the
floating items to pile up to the extent that you get an error message
saying ``Too many unprocessed floats''; this means that the limited
set of registers in which LaTeX stores floating items is full.
What follows is a simple checklist of things to do to solve these
problems (the checklist talks throughout about figures, but applies
equally well to tables).
tbp
) is reasonable; you should never simply say `h
',
for example, since that says ``if it can't go here, it can't go
anywhere'', and as a result all subsequent floats pile up behind it.
\clearpage
command? If so, do: the backlog of floats is
cleared after a \clearpage
. (Note that the \chapter
command implicitly executes \clearpage
, so you can't float past
the end of a chapter.)
afterpage
package (part of
macros/latex/packages/tools). Its documentation gives as an example the idea
of putting \clearpage
after the current page (where it
will clear the backlog, but not cause an ugly gap in your text), but
also admits that the package is somewhat fragile (though it's improving).