How do I insert an image from text in two columns so that the text go around the picture?
Asked
Active
Viewed 1,917 times
5
lockstep
- 250,273
Regis Santos
- 14,463
1 Answers
10
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}

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}

Gonzalo Medina
- 505,128
-
-
-
-
-
1@RegisdaSilva: in that case, I think the most sensible option would be to use the
shapeparpackage. I think that this new requirement might deserve opening a new question. – Gonzalo Medina Nov 12 '11 at 02:12 -
@RegisdaSilva: And answering your question about the circle dimensions, yes I obtained them manually (as I said in my answer). I first placed the circle in its final position and then used
\parshapeto manually produce the desired cutout. – Gonzalo Medina Nov 12 '11 at 02:13
wrapfigshould be able to do this with some "manual intervention". See How to usewrapfigto span multiple columns. – Werner Nov 11 '11 at 03:21