How to insert figures in two columns?

In my case the figure disappears.

\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{multicol}
\usepackage{lipsum}
\usepackage{tikz}
\begin{document}
\begin{multicols}{2}
\lipsum[1]

\begin{figure}
\begin{tikzpicture}
\draw circle (1);
\end{tikzpicture}
\caption{Figure in two column}
\end{figure}

\lipsum[2]
\end{multicols}
\end{document}

-

If you want a figure with the width of a single column, and don't need it to float, you can also use the \begin{figure}[H] option of the float package to place it explicitly:

\documentclass[a4paper]{article}
\usepackage{multicol}
\usepackage{lipsum}
\usepackage{tikz}
\usepackage{float}
\begin{document}

\begin{multicols}{1}
\lipsum[1-3]
\begin{figure}[H]
\centering
\begin{tikzpicture}
\draw circle (1);
\end{tikzpicture}
\caption{Figure in two column}
\end{figure}
\lipsum[3-4]
\end{multicols}
\end{document}


-
Thanks Jake!!!! –  Regis da Silva Jul 20 '11 at 16:50

You should get a warning, printed to the .log file:

Package multicol Warning: Floats and marginpars not allowed inside multicols' environment!.

However, you could use figure*`. See section 2.4 Floats inside a multicols environment in the multicol documentation.

Within the multicols environment the usual star float commands are available but their function is somewhat different as in the twocolumn mode of standard LaTeX. Starred floats, e.g., figure*, denote page wide floats that are handled in a similar fashion as normal floats outside the multicols environment. However, they will never show up on the page where they are encountered.

-