Difference between revisions of "Floating Objects"

From ConTeXt wiki
(Added note to double-sided protruding floats section)
m (Fixed)
Line 103: Line 103:
 
\stoptext
 
\stoptext
 
</texcode>
 
</texcode>
 
Note that there may be problems with this approach in versions of ConTeXt
 
MkIV later than February 2011; see the mailing list thread starting
 
[http://www.ntg.nl/pipermail/ntg-context/2011/062003.html here] for details.
 
  
 
== Floats and section headings ==
 
== Floats and section headings ==

Revision as of 20:19, 2 October 2011

< Visuals | Graphics | Using Graphics >

Floats are elements like tables or figures that are placed (and numbered) automatically by TeX. They are so called as they can float around the output pages to a place where TeX thinks they are appropriate (You can influence what TeX thinks as appropriate).

Floats are ConTeXt's "base class" for everything that uses a \place... command (table, figure, own floats).

If you search options of e.g. \placeexternalfigure you must look after \placefloat in the manual! (same for \setup... etc.)

The float types "graphic", "figure", "table" and "intermezzo" are readily defined. If you need more (i.e. if you need another numbering or table of something), you can easily define your own floats with \definefloat.

\placefloat[place][reference]{caption}{some float}

place is one or several (comma separated) of:

preferenceresult
leftleft of text
rightright of text
herepreferably here
topat top of page
bottomat bottom of page
inleftin left margin
inrightin right margin
inmarginin the margin (left or right)
marginin the margin (margin float)
pageon a new (empty) page
oppositeon the left page
alwaysprecedence over stored floats
forceper se here
split(For TABLES only) split tables

(table copied from the manual)

\placefigure and \placetable also accept the same set of options, and allow to create floating figures and captions respectively.

reference

If you don't need to refer to your float, you can leave this parameter out.

Examples

I will explain the examples in terms of \placefigure but the same set of options are also valid for other floats.

  • If you do not want a caption
\placefigure {none} {\externalfigure[figurename]}

or

\placefigure[none] {} {\externalfigure[figurename]}


  • If you do not want the figure to be numbered (but still want the caption)
\placefigure [nonumber] {caption} {\externalfigure[figurename]}
  • Suppose you want the figure to be placed on the right side of the page, a few lines into the paragraph, and want the rest of the paragraph to warp around the figure
\placefigure [right,2*line] {caption} {\externalfigure[figurename]}

or

\placefigure [right,2*hang] {caption} {\externalfigure[figurename]}

This does not want correctly at a page boundary. The line options leaves the space above the figures empty, while the hang option also wraps texts above the figure.

Floats and columns

This special case is discussed here.

Protruding Floats in Double-Sided Documents

If you have a double-sided document with wide outer margins then you might want your figures to protrude into the margin. In a double-sided document you need to tell ConTeXt to decide whether to make the figure protrude to the left or the right. This can be done as follows:

\definefloat[textmarginfigure][textmarginfigures]
\setupfloat[textmarginfigure][location=inner]
\placetextmarginfigure{\externalfigure[figurename]}

The following code gives a full example that can be pasted into live ConTeXt:

\setuppagenumbering [alternative=doublesided]
\setuplayout[location=middle,backspace=2pc, width=20pc]
\definefloat[textmarginfigure][textmarginfigures]
\setupfloat[textmarginfigure][location=inner]
\starttext
\input knuth
\placetextmarginfigure[here]{}{\externalfigure[figurename][width=30pc]}
\input knuth
\placetextmarginfigure[here]{}{\externalfigure[figurename][width=30pc]}
\input knuth
\stoptext

Floats and section headings

By default, section headings don't wrap "around" floating objects. Instead, they will be moved down as far as needed to appear below the float. This behaviour can be controlled using the aligntitle option of the \setupheads or \setuphead commands.

Captions

To change the style of figure(table) captions, use \setupcaptions.

Flushing floats

The command \placefloats outputs all pending floats.