[Tex/LaTex] Automatic vertical alignment of a single float on a dedicated page

floatsvertical alignment

In my large latex document, I have some figures which take a considerable height of the page (80-95%). Latex puts each of these figures alone on a page, aligned on top. I would like to have each figure aligned vertically to center. Is that possible, and if so, how? 🙂

Best Answer

I'm curious which documentclass you're using, as "normal" behavior (as defined in the LaTeX kernel file latex.ltx) is to center the float vertically on a floats-only page.

If you need to get the float to be centered on a floats-only page, you should add the following instructions to your preamble.

\makeatletter
\setlength{\@fptop}{0pt plus 1fil}
\setlength{\@fpbot}{0pt plus 1fil}
\makeatother

To have the figure/table be aligned at the top, you would delete the plus 1fil after 0pt in the instruction setting the length of the \@fptop variable.

By default, LaTeX will place a large float on a page by itself if the float's height exceeds 50% of the parameter \textheight. To change this threshold to, say, 0.75, you should issue the command \renewcommand\floatpagefraction{0.75}. Happy TeXing!