# How to fix a figure at the top or bottom of a column within multicol?

Within the multicol environment I want to be able to fix a figure to be displayed at either the top or bottom of a column (as in a scientific journal).

The figure environment cannot be used in multicol and I've tried using wrapfig and even creating a minipage to do this, but the figure always seems to be placed where it is inserted in the text and therefore must be moved every time an edit is made.

Is there a way to force a figure to be positioned at the top or bottom of a column in multicol?

-
Welcome to TeX.SE! –  cmhughes Dec 29 '12 at 17:22
Would you consider "Switch from multicol to twocolumn" a valid answer? –  yo' Jan 5 '13 at 14:40
@tohecz I want the columns on the final page to be equal length and two column doesn't do this. –  Mike Laury Jan 5 '13 at 17:56
@MikeLaury My experience is that precise balancing of the columns on the final page is often quite problematic (imagine having 3 lines on the last page, how do you balance them?). I therefore prefer manual balancing of the last page, which can be done by issuing \raggedbottom\enlargethispage{-0.2\textheight}, where you modify 0.2 to a value such that the output looks nice. The only real drawback of this method is when you have chapters because then you must do it for each chapter. But who has a twocolumn document with chapters? –  yo' Jan 5 '13 at 18:29

In my opinion, the design of the package multicol does not allow this, and cannot allow this.

I can think of only one other option, and that is using the standard [twocolumn] class option or \twocolumn command. The true problem is then the column balancing on the last page. There are several possible solutions to this problem.

1. Manually balance the columns. This can be done by issuing the following commands in the first column of the last page (the value 0.2 has to be adjusted manually):

\raggedbottom\enlargethispage{-0.2\textheight}

2. Use the package cuted. The following commands ought to be added at the very end of the document. The only issue is that if the last page is almost full, an extra completely empty page might be created. The commands are:

\setlength{\stripsep}{-\baselineskip}\begin{strip}\end{strip}\leavevmode

3. Use the package balance. However, this package is not reliable and corrupts vertical spacing. The usage is simple: issue the command \balance in the first column of the last page.

Or of course, you can wait for the LaTeX3 team to finish the new output routine xor, but this can take some time.

-
Prod Frank: xor can almost certainly do this, we just need to get it to production standard! –  Joseph Wright Jan 5 '13 at 19:42
Thee is also flushend package for balancing. –  Harish Kumar Jan 5 '13 at 22:41
@HarishKumar with its issues similar to balance. –  yo' Jan 5 '13 at 23:21