# Override tendency to avoid filling entire page with floats

I'm working on a two column document, and on one of the pages, I want to fill an entire column with three different floats. But when I use, for instance, h!, ht!, b, b!, t!, etc., on all three of them (or any combination of these), I get two in one column and one in the other. Is there a package or something that fixes this problem.

-

If I want to keep a bunch of figures together, I simply use one figure environment:

\begin{figure}
\includegraphics{foo}
\caption{Foo}
\vspace{5mm}
\includegraphics{bar}
\caption{Baz}
\vspace{5mm}
\includegraphics{bar}
\caption{Baz}
\end{figure}


It looks a bit strange, but it works. You can have multiple \captions in one figure environment.

Now there is no way Latex can place these three figures on different columns or different pages. You can fine-tune \vspaces to your needs.

-
This is sort of tricky because you need to then play with LaTeX's float parameters to prevent it from trying to place the figure on a page of floats or simply failing to place it at all. You can also stick the contents of the figure environment inside a \vbox to\textheight{...} and use \vfill to separate the floats without having to play with manual spacing. –  TH. Sep 25 '10 at 10:38
I like this answer the best. Even though it's a little more hackish than @TH.'s answer, it's much simpler and it works best for me. Thanks to everyone for all of your answers! –  David Hollman Sep 27 '10 at 14:25

Probably the easiest way to handle this is to use the afterpage package along with the float package's H specifier. Here's a complete example.

\documentclass[twocolumn]{article}
\usepackage{afterpage}
\usepackage{float}
\usepackage{lipsum}
\begin{document}
\lipsum
\afterpage{
\begin{figure}[H]
\fbox{Top figure}
\caption{Top figure}
\end{figure}
\vfill
\begin{figure}[H]
\fbox{Middle figure}
\caption{Middle figure}
\end{figure}
\vfill
\begin{figure}[H]
\fbox{Bottom figure}
\caption{Bottom figure}
\end{figure}
\newpage
}
\lipsum
\end{document}


Another option is to use the p float placement specifier outside of the \afterpage. There's no guarantee that those three will appear together with that.

-

In two-column mode, a "column" is equivalent to a "page" in one-column mode. So if you want three floats in one column on their own, simply specify the [p] float option. For example:

\documentclass[twocolumn]{article}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\begin{figure}[p]
\centering
\rule{10em}{10em}
\caption{A black box.}
\end{figure}
\begin{figure}[p]
\centering
\rule{10em}{10em}
\caption{A black box.}
\end{figure}
\begin{figure}[p]
\centering
\rule{10em}{10em}
\caption{A black box.}
\end{figure}
\lipsum
\end{document}

-
I thought about that, but couldn't figure out how to ensure that only those floats would appear on the page and that they would all appear on the page. –  TH. Sep 27 '10 at 23:44
Right, your method is better if you want to ultimately constrain where the floats end up. –  Will Robertson Sep 27 '10 at 23:54

simplest and obvious answer for me...

\clearpage
\begin{figure}
.....
\end{figure}

\vfill

\begin{figure}
.....
\end{figure}

\clearpage


that way the figures will be alone in 1 page, wherever latex will place them the alternative is having 1 figure for all images but still use \clearpage

-