答案1
multicol
不支持浮动,但如果您不介意手动调整,则可以获得大多数安排。如果您花了数周时间在一本书上工作,这种手动调整是相当可行的,但如果每小时自动排版来自某个目录数据库的数千份文档,就不那么可行了。
基本上让 TeX 决定自然的分栏位置,然后在该点强制分栏并添加一些空间来容纳图像和标题。
\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}