The multicols
environment is handy because it let you mix multi-column environments but it doesn't allow adding floats. I am not 100% certain but some time ago I came across a post where wrapfig
package with its wrapfigure environment could be a workaround.
If you are OK to mix images with texts without using floats and workout space by yourself, you could just put each image in the minipage
environment. This idea is not entirely mine. Beware though! It's very likely LaTeX will leave empty space if it can't fit images around page or column edges and you have to rearrange texts to find the most optimal image placement.
The MWE
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{kantlipsum}
\usepackage[english]{babel}
\usepackage{geometry}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{multicol}
%%% Macro just for this MWE to avoid repetitions
% \examplefigure[#1]{#2}{#3}{#4}
%
% #1 a number relative to \linewidth (optional)
% #2 file name e.g. example.eps
% #3 Text for a caption
% #4 Label
\newcommand{\examplefigure}[4][0.65]{%
\vspace{1em}
\noindent\begin{minipage}{\linewidth}%
\makebox[\linewidth]{% For centring figures
\includegraphics[width=#1\linewidth]{#2}}
\captionof{figure}{#3}
\label{#4}
\end{minipage}
\vspace{0.5em}}
\begin{document}
\section{Section 1 (no columns)}
\kant[1]
\section{Section 2 (two columns)}
\begin{multicols}{2}
\kant[2][1-2]
\examplefigure{example.eps}{Figure in columns}{fig:label1}
\kant[2]\par\kant[3]\par\kant[4][1-5]
\examplefigure{example.eps}{Figure in columns}{fig:label2}
\kant[4][1]
\end{multicols}
\section{Section 3 (No columns)}
\kant[5][1-2]
\examplefigure[0.75]{example.eps}{The big figure}{fig:label3}
Reference to figures \ref{fig:label1}, \ref{fig:label2}, and \ref{fig:label3}.
\end{document}
Page 1 |
Page 2 |
 |
 |
multicols
environment doesn't allows to insert floats. why you use it? isn'ttwocolumns
option ofarticle
sufficient?\documentclass[twocolumn]{article}
should gives what you like to achieve. and not usemulticol
package and its environment.