summaryrefslogtreecommitdiff
path: root/doc/context/sources/general/manuals/columnsets/columnsets.tex
diff options
context:
space:
mode:
Diffstat (limited to 'doc/context/sources/general/manuals/columnsets/columnsets.tex')
-rw-r--r--doc/context/sources/general/manuals/columnsets/columnsets.tex886
1 files changed, 886 insertions, 0 deletions
diff --git a/doc/context/sources/general/manuals/columnsets/columnsets.tex b/doc/context/sources/general/manuals/columnsets/columnsets.tex
new file mode 100644
index 000000000..0cb95229d
--- /dev/null
+++ b/doc/context/sources/general/manuals/columnsets/columnsets.tex
@@ -0,0 +1,886 @@
+% author : Hans Hagen
+% copyright : PRAGMA ADE & ConTeXt Development Team
+% license : Creative Commons Attribution ShareAlike 4.0 International
+% reference : pragma-ade.nl | contextgarden.net | texlive (related) distributions
+% origin : the ConTeXt distribution
+%
+% comment : Because this manual is distributed with TeX distributions it comes with a rather
+% liberal license. We try to adapt these documents to upgrades in the (sub)systems
+% that they describe. Using parts of the content otherwise can therefore conflict
+% with existing functionality and we cannot be held responsible for that. Many of
+% the manuals contain characteristic graphics and personal notes or examples that
+% make no sense when used out-of-context.
+%
+% comment : Some chapters might have been published in TugBoat, the NTG Maps, the ConTeXt
+% Group journal or otherwise. Thanks to the editors for corrections. Also thanks
+% to users for testing, feedback and corrections.
+
+\dontcomplain
+
+\definepagebreak[mine][yes]
+
+% A complete otf optima pack is too expensive for this (I only have the
+% type one set).
+%
+% \usetypescriptfile
+% [type-ghz]
+%
+% \usetypescript
+% [sans]
+% [optima-nova]
+%
+% \setupbodyfont
+% [optima-nova,11pt]
+%
+% \definefont[QuiteLarge][SansBold sa 3]
+% \definefont[NotSoLarge][SansBold sa 1.5]
+%
+% So we could use:
+%
+% \setupbodyfont
+% [pagella,11pt]
+%
+% \definefont[QuiteLarge][Bold sa 2.50]
+% \definefont[NotSoLarge][Bold sa 1.25]
+%
+% But this one has a matching sans:
+
+\setupbodyfont
+ [dejavu,11pt]
+
+\definefont[QuiteLarge][SansBold sa 2.50]
+\definefont[NotSoLarge][SansBold sa 1.25]
+
+\setuplayout
+ [backspace=.1\paperwidth,
+ topspace=.025\paperheight,
+ header=0.025\paperheight,
+ footer=0.025\paperheight,
+ headerdistance=0.025\paperheight,
+ footerdistance=0.025\paperheight,
+ width=middle,
+ height=middle]
+
+\setuppagenumbering
+ [alternative=doublesided,
+ location=]
+
+\setupwhitespace
+ [line]
+
+\setupblank
+ [line]
+
+\setuptyping
+ [blank=halfline]
+
+\startsetups [pagenumber]
+ \hbox to .2\paperwidth {
+ \hss
+ Page \pagenumber
+ \hss
+ }
+\stopsetups
+
+\setupfooter [before=\vfill,after=\vfill,style=\bf,color=color-4]
+\setupheader [before=\vfill,after=\vfill,style=\bf,color=color-4]
+
+\setupfootertexts [] [\setups{pagenumber}]
+\setupheadertexts [] [\setups{chapterhead}]
+
+\startsetups [chapterhead]
+ \hbox to .2\paperwidth {
+ \hss
+ \getmarking[chapter]
+ \hss
+ }
+\stopsetups
+
+\setuphead
+ [chapter]
+ [header=empty]
+
+\definecolor[color-1][.5(red,green)]
+\definecolor[color-2][.5(green,blue)]
+\definecolor[color-3][.5(blue,red)]
+\definecolor[color-4][.5(white,black)]
+\definecolor[color-5][.5(white,color-4)]
+\definecolor[color-6][.2(white,color-4)]
+
+\startuseMPgraphic{page}
+StartPage ;
+ path p ;
+ numeric n; n := PageNumber ;
+ numeric w; w := bbwidth(Page) ;
+ numeric h; h := bbheight(Page) ;
+ def DrawBit (expr bit, dx, dy) =
+ path p ; p := unitsquare xyscaled(w/5,h/40) shifted (dx*w/10,dy*(h-h/40)) ;
+ if n div bit > 0 :
+ n := n - (n div bit)*bit ;
+ fill p withcolor \MPcolor{color-1} ;
+ else :
+ fill p withcolor \MPcolor{color-2} ;
+ fi ;
+ enddef ;
+ DrawBit(32,7,1) ;
+ DrawBit(16,4,1) ;
+ DrawBit( 8,1,1) ;
+ DrawBit( 4,7,0) ;
+ DrawBit( 2,4,0) ;
+ DrawBit( 1,1,0) ;
+StopPage ;
+\stopuseMPgraphic
+
+\startuniqueMPgraphic{frame}
+ fill OverlayBox withcolor \MPcolor{color-5} ;
+\stopuniqueMPgraphic
+
+\startuniqueMPgraphic{contrast}
+ fill OverlayBox withcolor \MPcolor{color-4} ;
+\stopuniqueMPgraphic
+
+\defineoverlay[page] [\useMPgraphic{page}]
+\defineoverlay[frame] [\useMPgraphic{frame}]
+\defineoverlay[contrast][\useMPgraphic{contrast}]
+
+\setupexternalfigures
+ [background=frame]
+
+\definecombination
+ [sixpages]
+ [%inbetween=\blank,
+ style=mono,
+ distance=.5\bodyfontsize,
+ width=\textwidth]
+
+\definecombination
+ [fourpages]
+ [%inbetween=\blank,
+ style=mono,
+ distance=.5\bodyfontsize,
+ width=\textwidth]
+
+\definecombination
+ [twopages]
+ [style=mono]
+
+\definemeasure[twopages] [\dimexpr\dimexpr\textwidth-3 \bodyfontsize\relax/4\relax]
+\definemeasure[fourpages] [\dimexpr\dimexpr\textwidth-3 \bodyfontsize\relax/4\relax]
+\definemeasure[eightpages][\dimexpr\dimexpr\textwidth-3 \bodyfontsize\relax/4\relax]
+\definemeasure[sixpages] [\dimexpr\dimexpr\textwidth-2.5\bodyfontsize\relax/6\relax]
+
+\starttexdefinition unexpanded OnePage #1
+ \startlinecorrection[blank]
+ \startcombination[twopages][1*1]
+ {\typesetfile[#1.tex][page=1,lines=15]} {1}
+ \stopcombination
+ \stoplinecorrection
+\stoptexdefinition
+
+\starttexdefinition unexpanded OneSpread #1
+ \startlinecorrection[blank]
+ \startcombination[twopages][1*1]
+ {\typesetfile[#1.tex][page=2,lines=15]} {2}
+ \stopcombination
+ \stoplinecorrection
+\stoptexdefinition
+
+\starttexdefinition unexpanded TwoPages #1
+ \startlinecorrection[blank]
+ \startcombination[twopages][2*1]
+ {\typesetfile[#1.tex][page=1,width=\measure{twopages}]} {1}
+ {\typesetfile[#1.tex][page=2,width=\measure{twopages}]} {2}
+ \stopcombination
+ \stoplinecorrection
+\stoptexdefinition
+
+\starttexdefinition unexpanded TwoSpread #1
+ \startlinecorrection[blank]
+ \startcombination[twopages][2*1]
+ {\typesetfile[#1.tex][page=2,width=\measure{twopages}]} {2}
+ {\typesetfile[#1.tex][page=3,width=\measure{twopages}]} {3}
+ \stopcombination
+ \stoplinecorrection
+\stoptexdefinition
+
+\starttexdefinition unexpanded FourPages #1
+ \startlinecorrection[blank]
+ \startcombination[fourpages][4*1]
+ {\typesetfile[#1.tex][page=1,width=\measure{fourpages}]} {1}
+ {\typesetfile[#1.tex][page=2,width=\measure{fourpages}]} {2}
+ {\typesetfile[#1.tex][page=3,width=\measure{fourpages}]} {3}
+ {\typesetfile[#1.tex][page=4,width=\measure{fourpages}]} {4}
+ \stopcombination
+ \stoplinecorrection
+\stoptexdefinition
+
+\starttexdefinition unexpanded FourSpread #1
+ \startlinecorrection[blank]
+ \startcombination[fourpages][4*1]
+ {\typesetfile[#1.tex][page=2,width=\measure{fourpages}]} {2}
+ {\typesetfile[#1.tex][page=3,width=\measure{fourpages}]} {3}
+ {\typesetfile[#1.tex][page=4,width=\measure{fourpages}]} {4}
+ {\typesetfile[#1.tex][page=5,width=\measure{fourpages}]} {5}
+ \stopcombination
+ \stoplinecorrection
+\stoptexdefinition
+
+\starttexdefinition unexpanded SixPages #1
+ \startlinecorrection[blank]
+ \startcombination[sixpages][6*1]
+ {\typesetfile[#1.tex][page=1,width=\measure{sixpages}]} {1}
+ {\typesetfile[#1.tex][page=2,width=\measure{sixpages}]} {2}
+ {\typesetfile[#1.tex][page=3,width=\measure{sixpages}]} {3}
+ {\typesetfile[#1.tex][page=4,width=\measure{sixpages}]} {4}
+ {\typesetfile[#1.tex][page=5,width=\measure{sixpages}]} {5}
+ {\typesetfile[#1.tex][page=6,width=\measure{sixpages}]} {6}
+ \stopcombination
+ \stoplinecorrection
+\stoptexdefinition
+
+\starttexdefinition unexpanded SixSpread #1
+ \startlinecorrection[blank]
+ \startcombination[sixpages][6*1]
+ {\typesetfile[#1.tex][page=2,width=\measure{sixpages}]} {2}
+ {\typesetfile[#1.tex][page=3,width=\measure{sixpages}]} {3}
+ {\typesetfile[#1.tex][page=4,width=\measure{sixpages}]} {4}
+ {\typesetfile[#1.tex][page=5,width=\measure{sixpages}]} {5}
+ {\typesetfile[#1.tex][page=6,width=\measure{sixpages}]} {6}
+ {\typesetfile[#1.tex][page=7,width=\measure{sixpages}]} {7}
+ \stopcombination
+ \stoplinecorrection
+\stoptexdefinition
+
+\starttexdefinition unexpanded EightPages #1
+ \startlinecorrection[blank]
+ \startcombination[fourpages][4*2]
+ {\typesetfile[#1.tex][page=1,width=\measure{eightpages}]} {#1 / 1}
+ {\typesetfile[#1.tex][page=2,width=\measure{eightpages}]} {#1 / 2}
+ {\typesetfile[#1.tex][page=3,width=\measure{eightpages}]} {#1 / 3}
+ {\typesetfile[#1.tex][page=4,width=\measure{eightpages}]} {#1 / 4}
+ {\typesetfile[#1.tex][page=5,width=\measure{eightpages}]} {#1 / 5}
+ {\typesetfile[#1.tex][page=6,width=\measure{eightpages}]} {#1 / 6}
+ {\typesetfile[#1.tex][page=7,width=\measure{eightpages}]} {#1 / 7}
+ {\typesetfile[#1.tex][page=8,width=\measure{eightpages}]} {#1 / 8}
+ \stopcombination
+ \stoplinecorrection
+\stoptexdefinition
+
+\starttexdefinition unexpanded EightSpread #1
+ \startlinecorrection[blank]
+ \startcombination[fourpages][4*2]
+ {\typesetfile[#1.tex][page=2,width=\measure{eightpages}]} {#1 / 2}
+ {\typesetfile[#1.tex][page=3,width=\measure{eightpages}]} {#1 / 3}
+ {\typesetfile[#1.tex][page=4,width=\measure{eightpages}]} {#1 / 4}
+ {\typesetfile[#1.tex][page=5,width=\measure{eightpages}]} {#1 / 5}
+ {\typesetfile[#1.tex][page=6,width=\measure{eightpages}]} {#1 / 6}
+ {\typesetfile[#1.tex][page=7,width=\measure{eightpages}]} {#1 / 7}
+ {\typesetfile[#1.tex][page=8,width=\measure{eightpages}]} {#1 / 8}
+ {\typesetfile[#1.tex][page=9,width=\measure{eightpages}]} {#1 / 9}
+ \stopcombination
+ \stoplinecorrection
+\stoptexdefinition
+
+\setuphead
+ [chapter]
+ [style=\QuiteLarge,
+ color=color-3,
+ number=no]
+
+\setuplist
+ [chapter]
+ [command=\MyListCommand,
+ alternative=command]
+
+\starttexdefinition unexpanded MyListCommand #1#2#3
+ \snaptogrid
+ [line,-line]\vbox {
+ \tfb
+ \setstrut
+ \strut#2
+ \quad#3
+ }
+\stoptexdefinition
+
+\setupmargindata
+ [style=\tttf,
+ color=color-3]
+
+\starttexdefinition unexpanded ShowFile #1
+ \margintext
+ {\cldcontext{string.match("#1","\letterpercent d+")}}
+ \typefile
+ [range={environment}]
+ {#1}
+\stoptexdefinition
+
+% \typefile[range=4] {...}
+% \typefile[range={=}]{...} % start after comment lines
+
+\starttexdefinition unexpanded ShowEnvironmentFile #1
+ \margintext
+ {\cldcontext{string.match("#1","\letterpercent d+")}}
+ \typefile
+ [range={=startenvironment}]
+ {#1}
+\stoptexdefinition
+
+\startdocument
+
+\startMPpage
+StartPage ;
+ path p ; numeric w, h, d ; picture q ;
+ if true :
+ q := image(draw textext.urt("\ssbf COLUMNS") withcolor \MPcolor{color-6}) ;
+ else :
+ q := image(draw textext.urt("\ssbf COLUMNSETS") withcolor \MPcolor{color-6}) ;
+ fi ;
+ w := bbwidth(Page) ;
+ h := bbheight(Page) ;
+ d := h/100 ;
+ fill Page withcolor \MPcolor{color-1} ;
+ p := Page xysized (w,d) ;
+ for i := 5d step 2d until h-5d :
+ fill p shifted (0,i) withcolor \MPcolor{color-2} ;
+ endfor
+ p := Page xysized(w/10,h) ;
+ for i = 0, .3, .6, .9 :
+ fill p shifted (i*w,0) withcolor \MPcolor{color-1} withtransparency(1,.75) ;
+ endfor ;
+ def do_it(expr sz, sh) =
+ p := Page xysized sz ;
+ fill p shifted sh withcolor \MPcolor{color-3} withtransparency(1,.5) ;
+ draw q xysized (bbwidth(p),bbheight(p)) shifted sh ;
+ enddef ;
+ if true :
+ do_it ((2w/10,17d),(.1w,20d)) ;
+ do_it ((2w/10,15d),(.1w,56d)) ;
+ do_it ((2w/10,21d),(.4w,66d)) ;
+ do_it ((2w/10,13d),(.7w,38d)) ;
+ do_it ((5w/10,13d),(.4w,13d)) ;
+ draw textext.urt("\ssbf Hans Hagen")
+ xysized (5w/10,5d)
+ shifted (.4w,6d)
+ withcolor \MPcolor{color-5} ;
+ else :
+ do_it ((2w/10,17d),(.1w,15d)) ;
+ do_it ((2w/10,15d),(.1w,51d)) ;
+ do_it ((2w/10,21d),(.4w,61d)) ;
+ do_it ((2w/10,13d),(.7w,31d)) ;
+ do_it ((5w/10,13d),(.4w, 7d)) ;
+ fi ;
+StopPage ;
+\stopMPpage
+
+\page[empty] \setuppagenumber[number=1]
+
+\setupbackgrounds
+ [page]
+ [background=page]
+
+\starttitle[title=Contents]
+
+ \placelist[chapter]
+
+\stoptitle
+
+\startchapter[title=Introduction]
+
+This manual introduces {\em column sets}, one of the output routines of \CONTEXT.
+Although column sets are mainly meant for typesetting journals in a
+semi||automated way, you can also use them for books. We assume that the user is
+familiar with \CONTEXT\ and only discuss the commands that are related to column
+sets.
+
+This mechanism performs okay but it needs to be used with care: an occasional
+manual intervention is needed to get optimal results. After all, we're operating
+in the area where normally click and point desktop publishing is used.
+
+{\bf For the moment you need to load the new code with: \type{\usemodule[newcolumnsets]}}
+
+\startlines
+Hans Hagen
+PRAGMA ADE
+Hasselt, 2003\endash2016
+\stoplines
+
+\stopchapter
+
+\startchapter[title=Basics]
+
+As soon as enough content is collected to build a page, \TEX\ will invoke the
+output routine. This is not a fixed piece of code, but a collection of macro
+calls. The default output routine is a meant for typesetting a single column, as
+in this document. A multi||column output routine is available as well. This
+routine mixes well with the single column one, and is activated by:
+
+\starttyping
+\startcolumns
+some text ...
+\stopcolumns
+\stoptyping
+
+In \MKIV\ a new mixed column mechanism has been introduced that will be
+developped further and eventually replace the old multi column handler. In \MKII\
+there is also a columnset mechanism that can be used to construct complex multi
+column pages. In \MKIV\ this gets replaced by grid columns. All these multi
+column mechanisms have in common that the output routine is more complex because
+now a page is in fact a collection of pages wrapped onto one. Each column is
+(from \TEX's perspective) similar to a one narrow column page. Here we focus on
+columnsets (page grids).
+
+There are some limitations to what you can do with this kind of multi columns,
+which is why we have a third routine at out disposal: {\em column sets}. This
+routine can be used for rather complex layouts with graphics all over the place,
+and text spanning columns or even spreads. There are of course some shortcomings,
+which we will discuss later.
+
+In the examples that follow we use the following style to set up the layout. The
+number in the margin serves a reference to the file where this snippet of \TEX\
+is stored.
+
+\ShowEnvironmentFile{columnsets-000}
+
+\page[mine]
+
+Before we will demonstrate more complex layouts, we will introduce a few
+features. In the next series of examples we use fake text. You can enlarge the
+pages in your viewer if you want to see more detail.
+
+\FourSpread{columnsets-001}
+
+These pages were typeset with the following code:
+
+\ShowFile{columnsets-001}
+
+We will showmost examples on a spread, so we don't show a first page. On a
+spread like above we number columns from~1 to~4, which in practice means that in
+this case columns starting on right page start with column~3!
+
+\SixPages{columnsets-001}
+
+\page[mine]
+
+The number of columns is not fixed to two. You can even have a different number
+of columns on left and right pages.
+
+\FourSpread{columnsets-002}
+
+This time the input is:
+
+\ShowFile{columnsets-002}
+
+Again, we started on a right page but showed the spreads. You can see it from the
+positioning of the header texts.
+
+\SixPages{columnsets-002}
+
+\page[mine]
+
+In order to get the balancing you want, you can manually influence the height of
+a column.
+
+\FourSpread{columnsets-003}
+
+When you set the number of column lines to a positive value, that will be the
+number of lines. A negative value will be subtracted from the maximum number of
+lines.
+
+\ShowFile{columnsets-003}
+
+\page[mine]
+
+In articles you may want to let the introduction span multiple columns. A column
+span is defined independent of a column set and shows up as follows:
+
+\FourSpread{columnsets-004}
+
+Here we've given the span a background so that it stands out.
+
+\ShowFile{columnsets-004}
+
+\page[mine]
+
+A column span can be positioned like any graphic. Later we will discuss the
+placement options in more detail, for the moment all you need to know is that
+\type {btlr} tells \CONTEXT\ to place the graphic in the left bottom of the the
+text area.
+
+\FourSpread{columnsets-005}
+
+Here we pass the \type {default} placement as parameter to the span, but you can
+also set it at definition time. We use a brute force simple column splitter to
+fake columns inside the span.
+
+\ShowFile{columnsets-005}
+
+\page[mine]
+
+You are not limited to one column span. In this sense a span is like a graphic:
+as long as there is room, it will be placed where you want it to be placed. The
+main difference between a span and a graphic is that a span expects text and
+tries to align the baselines with the rest of the text. In many ways a column
+span behaves like a framed text.
+
+\FourSpread{columnsets-006}
+
+This time we flushed one of the spans from bottom to top, starting at the right
+edge: \type {btrl}.
+
+\ShowFile{columnsets-006}
+
+\page[mine]
+
+Column spans are treated like graphics, which means that they will float if
+needed. In the process, the width is limited to the available space, which in
+some cases may lead to a smaller span than you may expect. Think of a column
+span, calculated (and prepared) in the last column and ending up on the next page
+in the first column, where a broader span would have been possible.
+
+\FourSpread{columnsets-007}
+
+\ShowFile{columnsets-007}
+
+\stopchapter
+
+\startchapter[title=Graphics]
+
+Most documents have graphics, and therefore column sets can contain them. The
+main thing that you have to keep in mind when placing graphics, is that column
+sets are based on grids. Therefore spacing around graphics is also grid based.
+
+\FourSpread{columnsets-101}
+
+\ShowFile{columnsets-101}
+
+\page[mine]
+
+You can tell \CONTEXT\ where it should place the graphic, but this will only be
+honored when there is still place.
+
+\EightSpread{columnsets-102}
+
+The prefered location is passed as a four character directive:
+
+\ShowFile{columnsets-102}
+
+\page[mine]
+
+The following directives are available:
+
+\starttabulate[|lT|p|]
+\NC btlr \NC flush from bottom to top and left to right \NC \NR
+\NC btrl \NC flush from bottom to top and right to left \NC \NR
+\NC tblr \NC flush from top to bottom and left to right \NC \NR
+\NC tbrl \NC flush from top to bottom and right to left \NC \NR
+\NC lrbt \NC flush from left to right and bottom to top \NC \NR
+\NC lrtb \NC flush from left to right and top to bottom \NC \NR
+\NC rlbt \NC flush from right to left and bottom to top \NC \NR
+\NC rltb \NC flush from right to left and top to bottom \NC \NR
+\NC here \NC try to place the graphic here \NC \NR
+\NC fixd \NC force the graphic here and don't float \NC \NR
+\NC fxtb:c*r \NC place the graphic at (c,r) or lower if needed \NC \NR
+\NC fxbt:c*r \NC place the graphic at (c,r) or higher if needed \NC \NR
+\NC tops \NC place the graphic at the top of the page \NC \NR
+\NC bots \NC place the graphic at the bottom of the page \NC \NR
+\NC page \NC place the graphic at a separate page \NC \NR
+\stoptabulate
+
+In the next example we show the directional locations:
+
+\OneSpread{columnsets-103}
+
+\ShowFile{columnsets-103}
+
+\stopchapter
+
+\startchapter[title=Areas]
+
+So far we have seen texts and graphics that span multiple columns using span
+commands and floats placement commands. We have also seen that you can define a
+different number of columns for left and right pages. Now that we have arrives at
+column areas you will see how we can span information over not only a page but
+also over pages in a spread.
+
+\FourSpread{columnsets-201}
+
+Being a framed text, by default an area is aligned at the baseline. You can lower
+an area by setting the \type {location} to \type {depth}.
+
+\ShowFile{columnsets-201}
+
+\page[mine]
+
+You can position areas on the left, right or next page or on both pages. When you
+set \type {state} to \type {repeat}, an area is repeated, otherwise it is only
+placed once.
+
+\FourSpread{columnsets-202}
+
+Here we just repeat the areas. Normally this only make sense when the content is
+worth repeating.
+
+\ShowFile{columnsets-202}
+
+\page[mine]
+
+Areas can span a spread, as is demonstrated in the next example.
+
+\FourSpread{columnsets-203}
+
+\ShowFile{columnsets-203}
+
+\page[mine]
+
+An application of a spread area is a title. In the next example we show two
+spread pages.
+
+\FourSpread{columnsets-204}
+
+Watch how we explicitly go to a left page.
+
+\ShowFile{columnsets-204}
+
+\page[mine]
+
+The \type {\GapText} macro is an experimental fun macro and is used to make sure
+that we don't end up with a clipped character.
+
+\startlinecorrection[blank]
+\startcombination
+ {\scale[width=.4\textwidth]{\clip
+ [nx=2,ny=6,x=2,y=2]
+ {\typesetfile[columnsets-204.tex][page=2]}}}
+ {left page}
+ {\scale[width=.4\textwidth]{\clip
+ [nx=2,ny=6,x=1,y=2]
+ {\typesetfile[columnsets-204.tex][page=3]}}}
+ {right page}
+\stopcombination
+\stoplinecorrection
+
+This is a typical example of the kind of optimizations that are needed when you
+make documents of styles with text that spans a spread. In the next clip we
+visualize the gap.
+
+\startlinecorrection[blank]
+\startcombination
+ {\scale[width=.4\textwidth]{\clip
+ [nx=2,ny=6,x=2,y=2]
+ {\typesetfile[columnsets-205.tex][page=2]}}}
+ {left page}
+ {\scale[width=.4\textwidth]{\clip
+ [nx=2,ny=6,x=1,y=2]
+ {\typesetfile[columnsets-205.tex][page=3]}}}
+ {right page}
+\stopcombination
+\stoplinecorrection
+
+At some moment you may want to set up an area in advance as we have done in the
+following example.
+
+\FourSpread{columnsets-206}
+
+The \type {page} key is used to specify the page in the column set that the area
+should go into. Column set pages start numbering at~1. The \type {fixed} stands
+for left or right, whatever comes first.
+
+\ShowFile{columnsets-206}
+
+\stopchapter
+
+\startchapter[title=Columns]
+
+You can use \type {\page} to go to a new page in a column set. Likewise you can
+use \type {\column} to force a column break.
+
+\FourPages{columnsets-301}
+
+This example demonstrates that you can supply \type {\column} with explicit
+directives.
+
+\ShowFile{columnsets-301}
+
+You can use \type {\column[page]} as an alternative for \type {\page}.
+
+\stopchapter
+
+\startchapter[title=Details]
+
+This chapter will cover a couple of cosmetic details of column sets. {\em Some
+features need to be improved, especially in combination with areas, graphics and
+alike. We will also provide side floats etc.}
+
+\FourSpread{columnsets-401}
+
+You can set the distance between columns for each pair of columns. {\em Todo:
+left and right page distances and margins.}
+
+\ShowFile{columnsets-401}
+
+\page[mine]
+
+When you can the distance of the first column as well. This creates a margin.
+
+\FourSpread{columnsets-402}
+
+This time we used equal distances:
+
+\ShowFile{columnsets-402}
+
+\page[mine]
+
+The width of columns is normally calculated automatically, but you can also set
+the width explicitly:
+
+\FourSpread{columnsets-403}
+
+In code:
+
+\ShowFile{columnsets-403}
+
+\page[mine]
+
+For special effects, you can set the width per column. In that case you need to
+be aware of the fact that \TEX\ works its way through the document per paragraph.
+Changing the width halfway a paragraph is possible but will affect the whole
+paragraph. Therefore, this feature works best when you also goto the next column
+explicitly.
+
+\FourSpread{columnsets-404}
+
+In code:
+
+\ShowFile{columnsets-404}
+
+\page[mine]
+
+If you really want to change the width in the middle of a paragraph, you can do a
+trial run and include a breakpoint at the palce where you want it to occur:
+
+\FourSpread{columnsets-405}
+
+In the second spread you see how the narrow hsize carries on in the wider
+column. A \type {\column} command will synchronize the hsize.
+
+\ShowFile{columnsets-405}
+
+% \page[mine]
+
+\stopchapter
+
+\startchapter[title=Directions]
+
+\FourSpread{columnsets-601}
+
+The direction of flushing columns is determined by the \type {direction}
+parameters as demonstrated below.
+
+\ShowFile{columnsets-601}
+
+% \page[mine]
+
+\stopchapter
+
+\startchapter[title=Backgrounds]
+
+As with many \CONTEXT\ components, column sets can have backgrounds.
+
+\FourSpread{columnsets-701}
+
+Watch how we use the \type {each} keyword to tell \CONTEXT\ that we want to apply
+the background to each column of the set.
+
+\ShowFile{columnsets-701}
+
+\page[mine]
+
+Normally, if you apply backgrounds this way, you will also set the background
+offset. In a similar fashion you can apply backgrounds to areas and spans. Such
+backgrounds can be a color, or any overlay or layer you want.
+
+\FourSpread{columnsets-702}
+
+Here we've set the background offset as well as the frame.
+
+\ShowFile{columnsets-702}
+
+\page[mine]
+
+When dealing with areas, you need to be aware of the fact that they are clipped,
+the content as well as the background.
+
+\FourSpread{columnsets-703}
+
+De default clip offset is two times the lineheight, except in the binding, where
+it is set to zero points. You can set the clip offset with the \type {clipoffset}
+parameter.
+
+\ShowFile{columnsets-703}
+
+\page[mine]
+
+The text background mechanism is rather well adapted to column sets. The
+following example is a variant on an example shown in the manual titled
+{details}.
+
+\EightSpread{columnsets-704}
+
+Watch how we adapt the background to the fact and extent that the text spans one
+or more columns.
+
+\ShowFile{columnsets-704}
+
+Backgrounds that follow the paragraph shape also work ok in column sets.
+
+{\em todo: an example of a bleeding graphic with column feed back (from
+techniek)}
+
+% \page[mine]
+
+\stopchapter
+
+\startchapter[title=Numbering lines]
+
+\FourSpread{columnsets-901}
+
+This example shows how numbering lines in columns works out. In a two column
+layout the numbers end up in the outer margins by default. If you want you can
+set the \type {location} to for instance \type {left} or \type {right}.
+
+\ShowFile{columnsets-901}
+
+\page[mine]
+
+\FourSpread{columnsets-902}
+
+In a three column setup the numbers end up in the left margins.Make sure you make
+the distance large enough.
+
+\ShowFile{columnsets-902}
+
+% \page[mine]
+%
+% \FourSpread{columnsets-903}
+%
+% This example shows again lune numbers but here we made sure that there is no
+% stretch in the whitespace.
+%
+% \ShowFile{columnsets-903}
+
+\stopchapter
+
+% \startchapter[title=Spanning and More]
+%
+% {\em todo: explanation} \page
+%
+% \TwoPages{columnsets-801} \ShowFile{columnsets-801} \page[mine]
+% \TwoPages{columnsets-802} \ShowFile{columnsets-802} \page[mine]
+% \TwoPages{columnsets-803} \ShowFile{columnsets-803} \page[mine]
+% \TwoPages{columnsets-804} \ShowFile{columnsets-804} \page[mine]
+% \TwoPages{columnsets-805} \ShowFile{columnsets-805} \page[mine]
+% \TwoPages{columnsets-806} \ShowFile{columnsets-806} \page[mine]
+%
+% \stopchapter
+
+\stopdocument