# Span a figure or table over 2 columns in a 3-or-more column document

Is it possible to span a float over 2 columns in a 3 (or more) column document obtained by the multicol package?

Something like this, for example:

I know it's easy to span afloat across all columns using the figure* environment; or on 1 column by using the center environment.

But I have absolutely no idea how a crate a float that spans 2 columns in a 3 column document. Or, taking it a step further, a float that has a variable horizontal length, spanning for instance 1.5 or 2.5 columns (i.e. the wrapfig equivalent for multiple columns).

Thanks.

• Does this answer do what you want?
– user121799
Oct 20 '18 at 3:10
• I suppose it does, although I'm not familiar with the flowfram package. Is it a suitable alternative to multicol? Or is it meant to be used solely for the purpose of inserting a float? Oct 20 '18 at 5:06
• Based on the documentation, it doesn't look ideal, however. Oct 20 '18 at 5:14

multicol doesn't support floats but if you don't mind a bit of hand adjustment it's possible to get most arrangements. If you are working on one book for several weeks such hand adjustments are quite feasible, if automatically typesetting thousands of documents an hour from some catalogue database, less so.

Basically let TeX decide where the natural column break is, then force a break at that point and add some space to take the image and caption.

\documentclass{article}

\usepackage{multicol,graphicx,capt-of}

\def\z{\stepcounter{enumi}\Roman{enumi} one two three four five six seven eight nine ten. }

\begin{document}

\begin{multicols}{3}

\z\z\z\z\z\z\z\z\z\z \z\z\z\z\z\z\z\z\z\z
Red Green blue yellow. Red Green blue yel-{\parfillskip0pt\par}

\columnbreak
\vspace*{16\baselineskip}
\noindent
\begin{picture}(0,0)
\put(0,110){\parbox{\dimexpr2\columnwidth+\columnsep}{\centering
\includegraphics[width=\linewidth]{example-image}

\captionof{figure}{an image}}}
\end{picture}%
low.
\z\z\z\z\z\z\z\z\z\z \z\z

Apples oranges ba-{\parfillskip0pt\par}

\columnbreak
\vspace*{16\baselineskip}
\noindent nanas.
\z\z\z\z\z\z\z\z
\z\z\z\z\z\z\z\z\z\z \z\z\z\z\z\z\z\z\z\z
\z\z\z\z\z\z\z\z\z\z \z\z\z\z\z\z\z\z\z\z
\end{multicols}
\end{document}

• Thanks. This works but I'd rather avoid manually breaking columns and such. It surprises me that such an essential package as multicol does not support floats. Oct 20 '18 at 13:50
• @johnymm the multicol doc flags that as often as it can. including mentioning it the abstract below the title on page 1.... Oct 20 '18 at 13:58
• Oh yeah, I'm aware - hence the question. I hope this gets remedied in the future, since it's a fairly common functionality for multi-column documents. Oct 20 '18 at 14:13
• @johnymm It's possible, but quite hard to do and hasn't been added in the 25 or so years that multicol package has been available, so don't hold your breath waiting for it:-) Oct 20 '18 at 14:15
• That's unfortunate, but thanks anyway. Oct 20 '18 at 14:34