Flowing text around figures

There are several LaTeX packages that purport to do this, but they all have their limitations because the TeX machine isn’t really designed to solve this sort of problem. Piet van Oostrum has conducted a survey of the available packages; he recommends:

floatflt
floatflt is an improved version (for LaTeX 2e) of floatfig.sty, and its syntax is:
\begin{floatingfigure}[options]{width of figure}
  figure contents
\end{floatingfigure}
There is a (more or less similar) floatingtable environment.

The tables or figures can be set left or right, or alternating on even/odd pages in a double-sided document.

The package works with the multicol package, but doesn’t work well in the neighbourhood of list environments (unless you change your LaTeX document).

wrapfig
wrapfig has syntax:
\begin{wrapfigure}[height of figure in lines]{l,r,...}[overhang]{width}
  figure, caption, etc.
\end{wrapfigure}
The syntax of the wraptable environment is similar.

The height may be omitted, in which case it will be calculated from the size of the figure; the package will use the greater of the specified and the actual width. The {l,r,etc.} parameter may also be specified as i(nside) or o(utside) for two-sided documents, and uppercase may be used to indicate that the picture should float. The overhang allows the figure to be moved into the margin. The figure or table will entered into the list of figures or tables if you use the \caption command.

The environments do not work within list environments that end before the figure or table has finished, but can be used in a parbox or minipage, and in twocolumn format.

picins
Picins is part of a large bundle that allows inclusion of pictures (e.g., with shadow boxes, various MSDOS formats, etc.). The command for inserting a picture at the start of a paragraph is:
\parpic(width,height)(x-off,y-off)[Options][Position]{Picture}
Paragraph text
All parameters except the Picture are optional. The picture can be positioned left or right, boxed with a rectangle, oval, shadowbox, dashed box, and a caption can be given which will be included in the list of figures.

Unfortunately (for those of us whose understanding of German is not good), the documentation is in German. Piet van Oostrum has written a summary in English.

All of the above deal insertions at one or other margin; they are able to take advantage of the TeX \parshape primitive that allows you to adjust the margins of the text of a paragraph, by line (Knuth provides an example of such use, with text typeset in a circle, half-overlapping the margin, in chapter 14 of the TeXbook). To place insertions in the middle of a paragraph requires effort of an entirely different sort; the cutwin package does this for you. It requires a set of “part line widths” (two per line), and typesets the “cutout” section of the paragraph line by line. The examples in the package documentation look enticing.

Plain TeX users only have one option: figflow (which doesn’t work in LaTeX). Figflow only offers flowed figures at the start of the paragraph, but it seems perfectly functional. Syntax is

\figflow{‹width›}{‹height›}{‹figure›}
(the user is responsible for having the dimensions correct, and for ensuring the figure fits on the page).
cutwin.sty
cutwin
figflow.tex
figflow
floatflt.sty
floatflt
picins.sty
picins
picins documentation summary
picins-summary
wrapfig.sty
wrapfig

This answer last edited: 2009-06-11