I have a specific page in which I want to change the float settings, but I do not want to change them globally. Specifically, I would like to increase the \bottomfraction of a page. Is this possible?
1 Answers
There is no predefined mechanism to locally change float parameters for a single page. Basically the current set of float parameter values is saved away at the start of each page by executing the two commands \@floatplacement and/or \@dblfloatplacement.
The definition for \@floatplacement, for example, is
\def\@floatplacement{\global\@topnum\c@topnumber
% Textpage bit, global:
\global\@toproom \topfraction\@colht
\global\@botnum \c@bottomnumber
\global\@botroom \bottomfraction\@colht
\global\@colnum \c@totalnumber
% Floatpage bit, local:
\@fpmin \floatpagefraction\@colht}
So if you locally change, say \bottomfraction and within the scope of that change a new page is started then you value is used to define \@botroom for that page.
The problem, of course, is that pages are started at random places in an asynchronous way, so it is not easy to make such a "local" change in a way that it just affects the next page break. Rather than using a local change, restricted by a group you can define a command that saves the old value and then changes it and a second command that restores it again. This may work a little better in practical terms but doesn't resolve the basic issue that page breaks are asynchonous.
However, having said all this, a probably simpler and more effective way is to simply use the ! specifier on an individual float that you want to place in a position that is normally not allowed by the float parameters --- this is assuming you want to place something, say in the bottom area that is too large, if you want to prevent placement then this approach doesn't work (and the only manual approach is to move the float in the source). See also How to influence the position of float environments like figure and table in LaTeX? for a general discussion of this area and the algorithm.
- 77,146
\usepackage[bottom]{footmisc}you exchange the order. – egreg Oct 25 '13 at 12:15[!b]. – yo' Oct 25 '13 at 14:23