Tables below footnotes, is this a good output routine algorithm or a bug?
The normal output routine performed by LaTeX typesets footnotes above bottom floats: the rationale is that bottom floats don't belong to the type block on the same degree that footnotes do. Somebody finds this infelicitous and so the package footmisc provides the bottom
option.
My opinion is that bottom floats should be avoided on pages that also have footnotes: the reader will be confused by two competing objects at the bottom, whatever is their order.
This poses a problem, though: the default positioning argument for floats is, in the standard classes (and also for memoir and the AMS classes) is [tbp]
.
In other words, when a user types \begin{figure}
without providing placement options, h
placement will never be tried, but b
will.
In your example, without the options to the floating environments you'll have this result:
• the placement t
for the figure and the table will not be tried, because we're in a chapter's starting page;
• the b
placement for the figure will be accepted, if the figure doesn't exceed the \bottomfraction
: bottom floats can't occupy more than \bottomfraction
of a page (default 3/10);
• even if the figure is put at the bottom, the table won't, because only \bottomnumber
floats are accepted at the bottom (default 1), pushing the table on the next page.
There is a way out: redefine \fps@figure
and \fps@table
to a value more suitable to your needs, for example
\makeatletter
\renewcommand{\fps@figure}{htp}
\renewcommand{\fps@table}{htp}
\makeatother
and try with explicit placement options only at the final stage of production, when deciding about the fine details of pagination.
You can fix this by the footmisc package.
\usepackage[bottom]{footmisc}
- To answer the question: It is a "feature" (see answer of egreg).
- If I read your question right, you are not completely happy with this. Following the "overkill rule", I therefore give an answer about changing that "feature":
Generally, when floats go to places where one does not want them to go, instead of e.g. [htbp]
as float specifier, one can also use [h]
, [h!]
, [H]
from the float package:
giving floating environments a [H] option which means 'PUT IT HERE' (as opposed to the standard [h] option which means 'You may put it here if you like')
, or command \FloatBarrier
from the picins package.
In case of tables or figures being placed below footnotes, also the stfloats (formerly stkernel) package from the sttools bundle can remedy this "feature" with command \fnbelowfloat
:
\usepackage{stfloats}
\fnbelowfloat % puts footnotes below the bottom floats
as well as the footmisc package with option bottom
(see answer of Thorsten Donig):
\usepackage[bottom]{footmisc}