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 LaTeX2e) 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.

Height can be omitted, in which case it will be calculated by the package; 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.

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).

figflow.tex
macros/plain/contrib/figflow (or browse the directory); catalogue entry
floatflt.sty
macros/latex/contrib/floatflt (or browse the directory); catalogue entry
picins.sty
macros/latex209/contrib/picins (or browse the directory); catalogue entry
picins documentation summary
macros/latex209/contrib/picins/picins.txt
wrapfig.sty
macros/latex/contrib/wrapfig (or browse the directory); catalogue entry

This answer last edited: 2009-06-11

This question on the Web: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=textflow