[Tex/LaTex] Inserting text in the image between two columns

floatsgraphics

How do I insert an image from text in two columns so that the text go around the picture?enter image description here

Best Answer

As Werner mentioned, the wrapfig package can do this sort of thing; a little example (you can replace the black rectangle with an image or a \parbox containing text, for example):

\documentclass[twocolumn]{article}
\usepackage{wrapfig}

\newcommand\Text{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit,
vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida
mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna.
Donec vehicula augue eu neque. Pellentesque habitant morbi tristique senectus
et netus et malesuada fames ac turpis egestas. Mauris ut leo.}

\begin{document}

\Text\Text\Text
\begin{wrapfigure}[8]{r}[\dimexpr.5\width+.5\columnsep\relax]{6cm}
  \centering
  \rule{5cm}{2.5cm}
\end{wrapfigure}%
\Text\Text\Text\Text\Text Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida
mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna.
Donec vehicula augue eu neque. Pellentesque habitant morbi tristique senectus
et netus et malesuada fames ac turpis egestas. Lorem ipsum 
\begin{wrapfigure}[8]{l}[\dimexpr.5\width+.5\columnsep\relax]{6cm}
\vfill
\end{wrapfigure} 

 \noindent dolor sit amet, consectetuer adipiscing elit. Ut purus elit,
vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida
mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna.
Donec vehicula augue eu neque. Pellentesque habitant morbi tristique senectus
et netus et malesuada fames ac turpis egestas.\Text

\end{document}

enter image description here

The exact instructions on how to produce this type of layout can be found in the file multiple-span.txt.

I don't know a package allowing to easily create circular cutouts (shapepar could be an option but I've never used it), but using the \parshape primitive is possible (with some effort) to manually produce a circular cutout and then use, for example, TikZ to place some material; a little example:

\documentclass[twocolumn]{article}
\usepackage{lipsum}
\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}

\lipsum[1]
\parshape16 0cm \linewidth 
0cm \linewidth 
0cm \linewidth 
0cm \linewidth 
0cm \dimexpr\linewidth-1.1cm\relax
0cm \dimexpr\linewidth-1.6cm\relax
0cm \dimexpr\linewidth-1.9cm\relax
0cm \dimexpr\linewidth-2.15cm\relax
0cm \dimexpr\linewidth-2.25cm\relax
0cm \dimexpr\linewidth-2.27cm\relax
0cm \dimexpr\linewidth-2.25cm\relax
0cm \dimexpr\linewidth-2.15cm\relax
0cm \dimexpr\linewidth-1.9cm\relax
0cm \dimexpr\linewidth-1.6cm\relax
0cm \dimexpr\linewidth-1.1cm\relax
0cm \linewidth
\lipsum[1-3] 
\parshape16 0cm \linewidth 
0cm \linewidth 
0cm \linewidth 
0cm \linewidth 
1.1cm \dimexpr\linewidth-1.1cm\relax
1.6cm \dimexpr\linewidth-1.6cm\relax
1.9cm \dimexpr\linewidth-1.9cm\relax
2.15cm \dimexpr\linewidth-2.15cm\relax
2.25cm \dimexpr\linewidth-2.25cm\relax
2.27cm \dimexpr\linewidth-2.27cm\relax
2.25cm \dimexpr\linewidth-2.25cm\relax
2.15cm \dimexpr\linewidth-2.15cm\relax
1.9cm \dimexpr\linewidth-1.9cm\relax
1.6cm \dimexpr\linewidth-1.6cm\relax
1.1cm \dimexpr\linewidth-1.1cm\relax
0cm \linewidth
\lipsum[1]

\begin{tikzpicture}[remember picture, overlay]
\fill[blue!30] ($(current page.center)+(0,-2.1cm)$) circle [radius=63pt,fill=blue!30];
\end{tikzpicture}

\end{document}

enter image description here

Related Question