# [NTG-context] float/figure and wrapping text

Hans Hagen pragma at wxs.nl
Wed Jan 4 11:44:37 CET 2006

Randolph Bertin wrote:

> I am typesetting books, primarily text and images. My original
> background is Quark/InDesign, but quite recently, I decided to look
> into TeX/LaTeX (LaTeX because that is just what most of the TeX
> references refer to). I first spent some time trying to learn LaTeX
> and although I was able to accomplish a number of my desired goals, I
> began to run into some problems related to maintaining text on a
> baseline grid. When searching for solutions, I came across a reference
> to ConTeXt. My first impressions are that ConTeXt looks great, and
> would handle most of what I would like to accomplish with a nice
> uniform approach. I haven't explored many of the features I will need
> to use, but am trying to read the manuals and listserv archives and
> basically trying things out to see how things function.
>
> So, I am sure I will have a number of questions that will later turn
> out to seem obvious (often the case, I guess for the uninitiated).
> Eventually, I might even be able to answer a couple of questions....
>
> But, to begin, one thing I would like to do for a project I am working
> on is to wrap continuous text around an image (placed on one side of
> the main text body), and I am encountering a little difficulty.
>
> The basic situation in my document is that the figure can float, to be
> inserted at the next available spot, placed at the left or right
> margin, with text above (if there is space), to the side, and below
> (if there is space).
>
> First, it appears that TeX, LaTeX and ConTeXt can only place a figure
> next to text at the beginning of a paragraph. Is this correct?
>
> Second, using ConText, when I use \placefigure, if there is enough
> space on a page, it appears to place it, and wrap text around the
> side. Everything looks fine. But, if there is not enough space
> remaining on the page, the remainder of the page is left blank, and
> then the figure is placed at the beginning of the next page, with text
> wrapped around it. (That is both what I observed, and also I read in
> the "Details" document as the expected behavior). If I use
> \placefloat, if there is not enough space remaining on the page, the
> text will continue printing on the page and the float will be placed
> on the next page, BUT without any text to the side of it.
>
> What I would like is to be able to combine these two behaviors when
> placing a floating figure: If there is enough space on the page, it
> would place the figure there and wrap text around it (as it currently
> does for \placefigure). If there is not enough space, it will 'float'
> the figure and continue with the text on the current page (as it does
> with \placefloat, but not with \placefigure) and insert the figure on
> a subsequent page when there is space, wrapping the text around the
> figure at that point (again as it does with \placefigure, but does not
> seem to do with \placefloat).
>
> Is it possible to do this using a current set of ConTeXt control
> sequences and maybe I am just missing something? If not, is this
> something that can be implemented? (I don't have any experience with
> lower level TeX macro programming). All of what I am looking for is
> already there, but not all in one control sequence.

you can move the graphic with:

\starttext

\hangsidefloat[3] \placefigure[left]{}{} \input zapf \input zapf \input zapf

\movesidefloat[3*line] \placefigure[left]{}{} \input zapf \input zapf
\input zapf

\stoptext

this is still page bound

\movesidefloat[x=10pt,y=-30pt]

also works, as does:

\placefigure[left,3*line]{}{} \input zapf \input zapf \input zapf

and in the next version:

\placefigure[left,3*hang]{}{} \input zapf \input zapf \input zapf

will work as well (i cannot post a patch because i first need to upload
the version with the french interface)

Hans