Changes

Jump to navigation Jump to search
2,833 bytes added ,  12:52, 24 February 2017
example for full page floats without headers
< [[Visuals]] | [[Graphics]] | [[Using Graphics]] | [[Tables_Overview]] >
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).== Introduction ==
Floats Floating Objects (floats) are ConTeXt's "base class" for everything that uses a <tt>\placeplaced (and numbered) automatically.They are placed at an appropriate position determined by the TeX float placement algorithm..</tt> command (table, figure, own floats)The algorithm has a number of options that can influence float placement.
If you search Most options of e.g. <in the manual (such as {{cmd>|placeexternalfigure</cmd> you must look after <}}) are described using the generic {{cmd>|placefloat</cmd> in the manual! (same for <tt>\setup}}...</tt> etc.)
The float types Floats include "graphic", "figure", "table" , and "intermezzo" are readily defined. If you need more (i.e. if you need another numbering or table of something), you Additional floats can easily define your own floats with <be defined using {{cmd>|definefloat</cmd>}}.
<texcode>
<tr><td>page</td><td>on a new (empty) page</td></tr>
<tr bgcolor="#DDDDDD"><td>opposite</td><td>on the left page</td></tr>
<tr><td>90</td><td>orientation (rotation angle), both caption and contents</td></tr><tr bgcolor="#DDDDDD"><td>always</td><td>precedence over stored floats</td></tr><tr><td>force</td><td>per se here</td></tr><tr bgcolor="#DDDDDD"><td>forcesplit</td><td>per se here(For TABLES only) split tables</td></tr>
</table>
(table copied from the manual)
<{{cmd>|placefigure</cmd> }} and <{{cmd>|placetable</cmd> }} also accept the same set of options, and allow to create floating figures and captions respectively.
'''reference'''
== Examples ==
I will explain the examples in terms of <{{cmd>|placefigure</cmd> }} but the same set of options are also valid for other floats.
* If you do not want a caption
 
<texcode>
\placefigure[none] {} {\externalfigure[figurename]}
</texcode>
 
 
* If you do not want the figure to be numbered (but still want the caption)
 
<texcode>
\placefigure [nonumber] {caption} {\externalfigure[figurename]}
</texcode>
 
* 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 wrap around the figure
 
<texcode>
\placefigure [right,2*line] {caption} {\externalfigure[figurename]}
</texcode>
 
or
 
<texcode>
\placefigure [right,2*hang] {caption} {\externalfigure[figurename]}
</texcode>
 
This does not work correctly at a page boundary. The <tt>line</tt> option leaves the space above the figures empty, while the <tt>hang</tt> option also wraps texts above the figure.
 
==Floats and columns==
 
This special case is discussed [[Columns#Floats_and_other_limitations_of_columns|here]].
 
==Floats on empty pages==
 
There’s a way to switch off page headings at full page floats:
 
<texcode>
\placefigure startplacefigure[title=Cow,location={nonepage,high,header} {] \externalfigure{figurename}}[cow.pdf]\stopplacefigure
</texcode>
==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 orthe right. This can be done as follows:
<texcode>
\placefiguredefinefloat[nonetextmarginfigure] {} [textmarginfigures]\setupfloat[textmarginfigure][location=inner]\placetextmarginfigure{\externalfigure{[figurename}]}
</texcode>
The following code gives a full example that can be pasted into live ConTeXt:
* If you do not want the figure to be numbered (but still want the caption)<texcode>\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</texcode>
==Landscape Floats in a Portrait Document==
Wide tables, for example, can be turned and most likely will need to be put on a separate page.
<texcode>
\placefigure startplacetable [nonumber] location={page,90},title=Table caption} {] \bTABLE [textwidth=\textheight] put a wide table here... \eTABLE\externalfigure{figurename}}stopplacetable
</texcode>
Both the table caption and the contents will be rotated, but not the page header and footer which remain "upright". Notice that one must set the TABLE textwidth to {{cmd|textheight}} in order for the table macros to fit properly.
 
== 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 <tt>aligntitle</tt> option of the {{cmd|setupheads}} or {{cmd|setuphead}} commands.
 
== Captions ==
To change the style of figure(table) captions, use {{cmd|setupcaptions}}.
* Suppose you want the figure to be placed on To use a different (e.g. abbreviated) caption in the right side list of the pagefloats, a few lines into the paragraph, and want the rest of the paragraph to warp around the figureyou can do:
<texcode>
\placefigure defineselector[caption][rightmax=2,n=2*line] \starttext\setupselector[caption][n=1]\completelistoffigures\setupselector[caption][n=2]\placefigure[][]{\select{caption} {\externalfigureShort caption for list} {figurenameA rather longer caption which will appear below the figure itself}} {This is the content of the actual figure}\stoptext
</texcode>
or Or in more recent (circa November 2011 and later) versions of ConTeXt:
<texcode>
\placefigure startplacefigure[righttitle={A rather long caption},2*hang] list={A short caption} {]This is the content of the actual figure\externalfigure{figurename}}stopplacefigure
</texcode>
This does not want correctly at a page boundary. == Flushing floats == The <tt>line</tt> options leaves the space above the figures empty, while the <tt>hang</tt> option also wraps texts above the figurecommand {{cmd|placefloats}} outputs all pending floats.

Navigation menu