columns-hhmps.tex
columns-hhmps.tex
—
TeX document,
30 KB (31158 bytes)
Zawartość pliku
% language=en % todo % clip if too high? lh vs. gl % give cleaner msg? % in the subcolumnsets: 1,4 2,5 3,6 gave error, os.exit commented. check! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Various trackers and helpers % \enabletrackers[columnsets.state] % \showframe %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % SM = Screen Medium (wide) \setuppapersize[SM][SM] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Setup some colors \usecolors [crayola] \definepalet [C] [1=CulturedPearl, 2=Timberwolf, 3=BlueI, 4=VanDykeBrown] \setupcolors [textcolor=C:4] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Setup the font \definefontfeature [default] [default] [expansion=quality, protrusion=quality] \setupinterlinespace [top=height] \setupbodyfont [kurier,12pt] % Define a user variable gl % that holds the default line % height (convenience) \newdimension \MydimGL \MydimGL \globalbodyfontlineheight \pushoverloadmode \newuserunit\MydimGL gl \popoverloadmode % Define a few helping fonts \definefont[TitleFont][file:kurierheavy-regular.otf*default at 28pt] \definefont[TextFont][file:kuriercondheavy-regular.otf*default at 21pt] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Setup the layout. A bit weird numbers, but whatever. % We will use columns, so we work on the grid. % We set the height via lines. \setuplayout [grid=yes, backspace=1cm, topspace=.75cm, header=1cm, headerdistance=1.25cm, footer=0cm, lines=22, margin=0cm, width=fit] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Define a macro for the headers \setupheadertexts[] \protected\def\SetTitle#1{% \setupheadertexts [\unframed [height=1cm, align=low, foregroundstyle=\TitleFont] {\begstrut #1\endstrut}]} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Setup backgrounds via an overlay \startuseMPgraphic{Background} fill Page withcolor "C:2" ; fill Field[Text][Header] rightenlarged .5cm leftenlarged .5cm topenlarged .25cm bottomenlarged .25cm withcolor "C:1" ; fill Field[Text][Text] enlarged .5cm withcolor "C:1" ; \stopuseMPgraphic \defineoverlay [Background] [{\useMPgraphic{Background}}] \setupbackgrounds [paper] [background=Background] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Define columnsets % We start with a setup with various parameters. \startsetups balance:bt \balancetopskip \strutht \balancebottomskip \strutdp \balanceemergencystretch 0pt \balanceemergencyshrink 0pt \balanceadjdemerits 0 \balancetolerance 10 \balancelineheight \lineheight % \balancefinalpenalties 3 10000 9000 8000\relax \stopsetups % This defines the columnset \definecolumnset [bt] [n=3, limit=4, %page=right, setups=balance:bt, align={defaultwidows,defaultclubs,defaultbroken}, distance=0.5cm] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Define a framed used over and over in this document % We set defaults to 6 lines high and one column wide % and adapt that when needed \defineframed [Fig] [frame=no, background=color, backgroundcolor=C:4, foregroundstyle=\TextFont, foregroundcolor=C:2, offset=overlay, align={middle,lohi}, width=\columnsethspan{1}{1}, height=6gl] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % We define and setup paragraph passes % (This one should probably be one that is easier to setup % since it often seems to work well \newinteger\parpassdefaultone \parpassdefaultone\parpassidentifier{bt} \startsetups align:pass:bt \parpasses 5 identifier \parpassdefaultone tolerance 100 adjustspacing 0 emergencyfactor 0 hyphenation 0 mathpenaltyfactor 20000 orphanlinefactors 4 100 250 500 1000 toddlerpenalties 1 options 2 200 50 next tolerance 200 adjustspacing 3 adjustspacingstep 1 adjustspacingshrink 5 adjustspacingstretch 10 next tolerance 300 adjustspacing 0 next tolerance 200 adjustspacing 3 adjustspacingshrink 20 adjustspacingstretch 40 next tolerance 400 hyphenation 1 extrahyphenpenalty 200 adjustspacing 3 adjustspacingshrink 30 adjustspacingstretch 60 emergencystretch 1\bodyfontsize emergencyfactor 1000 mathpenaltyfactor 1000 \relax \stopsetups \setupalignpass[bt] % Maybe parpasses will be enabled here in % the future \setupalign [hanging, profile, granular, lessbroken, lessorphans, strictmath] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Just a few setups \setupformula [grid=math:-halfline] \setuphead [section] [style=\bfa] \starttext \startcolumnset[bt] \SetTitle{typesetting in columns} \startcolumnsetsheet[bt][1] \startsetcolumnset[c=1,r=1] \startframed[Fig][height=22gl] \stopframed \stopsetcolumnset \startsetcolumnset[c=2,r=1] \startframed[Fig][height=22gl] \stopframed \stopsetcolumnset \startsetcolumnset[c=3,r=1] \startframed[Fig][height=22gl] \stopframed \stopsetcolumnset \stopcolumnsetsheet \startcolumnsetsheet[bt][2] \startsetcolumnset[c=1,r=1] \startframed[Fig] \TEX\ was not made to work in columns \stopframed \stopsetcolumnset \startsetcolumnset[c=2,r=8] \startframed[Fig][height=8gl,offset=3ts] yet, it has for long been possible to use columns \stopframed \stopsetcolumnset \startsetcolumnset[c=3,r=17] \startframed[Fig] how is this\crlf possible? \stopframed \stopsetcolumnset \stopcolumnsetsheet \startuseMPgraphic{splitcolumns} path p ; p := unitsquare xyscaled(1cm,9cm) ; fill p withcolor "C:3" ; draw (1/3[llcorner p,ulcorner p] -- 1/3[lrcorner p,urcorner p]) shortened -.5cm && (2/3[llcorner p,ulcorner p] -- 2/3[lrcorner p,urcorner p]) shortened -.5cm withdashes .25cm withpen pencircle scaled 2 withcolor "C:2" ; picture c ; c := image( fill unitsquare xyscaled(1cm,3cm) withcolor "C:3" ; fill unitsquare xyscaled(1cm,3cm) xshifted 1.5cm withcolor "C:3" ; fill unitsquare xyscaled(1cm,3cm) xshifted 3cm withcolor "C:3" ; ) xshifted 4cm ; draw c ; draw (boundingbox c enlarged .5cm) withdashes .25cm withpen pencircle scaled 2 withcolor "C:2" ; \stopuseMPgraphic \startcolumnsetsheet[bt][3] \startsetcolumnset[c=1,r=1] \startframed[Fig][foregroundcolor=C:1] mixedcolumns \stopframed \stopsetcolumnset \startsetcolumnset[c=1,r=8] \startframed[Fig][height=8gl,offset=2ts] make one big vbox and split it with vsplit \stopframed \stopsetcolumnset \startsetcolumnset[c=2,r=1] \startframed[Fig][width=\columnsethspan{2}{2},height=22gl] \useMPgraphic{splitcolumns} \stopframed \stopsetcolumnset \stopcolumnsetsheet \startuseMPgraphic{pagecolumns} picture c ; c := image( fill unitsquare xyscaled(1cm,3cm) withcolor "C:3" ; fill unitsquare xyscaled(1cm,3cm) xshifted 1.5cm withcolor "C:3" ; fill unitsquare xyscaled(1cm,3cm) xshifted 3cm withcolor "C:3" ; ) ; draw c ; c := c yshifted -5cm ; draw c ; draw (boundingbox c enlarged .5cm) withdashes .25cm withpen pencircle scaled 2 withcolor "C:2" ; \stopuseMPgraphic \startcolumnsetsheet[bt][4] \startsetcolumnset[c=3,r=1] \startframed[Fig][height=6gl,foregroundcolor=C:1] \strut pagecolumns \stopframed \stopsetcolumnset \startsetcolumnset[c=3,r=8] \startframed[Fig][height=8gl,offset=3ts] \begstrut combine several \TEX\ pages on one physical page\endstrut \stopframed \stopsetcolumnset \startsetcolumnset[c=1,r=1] \startframed[Fig][width=\columnsethspan{2}{2},height=22gl] \useMPgraphic{pagecolumns} \stopframed \stopsetcolumnset \stopcolumnsetsheet \startuseMPgraphic{oldcolumnsets} picture c ; c := image( draw unitsquare xyscaled (1cm,3cm) withcolor "C:1" ; draw unitsquare xyscaled (1cm,3cm) xshifted 1.5cm withcolor "C:1" ; draw unitsquare xyscaled (1cm,3cm) xshifted 3cm withcolor "C:1" ; fill unitsquare xyscaled (1cm,0.5cm) shifted (0,2.5cm) withcolor "C:1" ; fill unitsquare xyscaled (2.5cm,1cm) shifted (1.5cm,1cm) withcolor "C:1" ; ) ; setbounds c to unitsquare xyscaled (4cm,3cm) ; draw c ; draw (boundingbox c enlarged .5cm) withdashes .25cm withpen pencircle scaled 2 withcolor "C:2" ; c := image( fill unitsquare xyscaled(1cm,3cm) withcolor "C:3" ; fill unitsquare xyscaled (1cm,3cm) xshifted 1.5cm withcolor "C:3" ; fill unitsquare xyscaled (1cm,3cm) xshifted 3cm withcolor "C:3" ; fill unitsquare xyscaled (1cm,0.5cm) shifted ( 0,2.5cm) withcolor "C:1" ; fill unitsquare xyscaled (2.5cm,1cm) shifted (1.5cm,1cm) withcolor "C:1" ; ) yshifted -5cm ; draw c ; draw (boundingbox c enlarged .5cm) withdashes .25cm withpen pencircle scaled 2 withcolor "C:2" ; \stopuseMPgraphic \startcolumnsetsheet[bt][5] \startsetcolumnset[c=1,r=1] \startframed[Fig][foregroundcolor=C:1] \strut old columnsets \stopframed \stopsetcolumnset \startsetcolumnset[c=1,r=8] \startframed[Fig][height=8gl] work on the grid, keep control of all the occupied slots \stopframed \stopsetcolumnset \startsetcolumnset[c=1,r=17] \startframed[Fig] add to remaining slots with vsplit \stopframed \stopsetcolumnset \startsetcolumnset[c=2,r=1] \startframed[Fig][width=\columnsethspan{2}{2},height=22gl] \useMPgraphic{oldcolumnsets} \stopframed \stopsetcolumnset \stopcolumnsetsheet \stopcolumnset \startcolumnset[bt] \SetTitle{things to consider} \startcolumnsetsheet[bt][1] \startsetcolumnset[c=3,r=17,ntop=1] \startframed[Fig][offset=2ts] \begstrut can we split columns evenly?\endstrut \stopframed \stopsetcolumnset \startsetcolumnset[c=2,r=1,nbottom=1] \startframed[Fig][backgroundcolor=C:3] \null \stopframed \stopsetcolumnset \reservecolumnset[c=1,r=19,nr=4] \stopcolumnsetsheet \dorecurse{8}{\samplefile{knuthmath}\par} \stopcolumnset \startcolumnset[bt] \SetTitle{things to consider} \startcolumnsetsheet[bt][1] \startsetcolumnset[c=1,r=1,nbottom=1] \startframed[Fig] \begstrut can we balance the last page?\endstrut \stopframed \stopsetcolumnset \reservecolumnset[c=1,r=18,nr=5] \reservecolumnset[c=2,r=18,nr=5] \stopcolumnsetsheet \dorecurse{7}{\samplefile{knuthmath}\par} \stopcolumnset \startcolumnset[bt] \SetTitle{things to consider} \startcolumnsetsheet[bt][1] \startsetcolumnset[c=1,r=1,nbottom=1] \startframed[Fig] \begstrut can we balance the last page?\endstrut \stopframed \stopsetcolumnset \reservecolumnset[c=1,r=18,nr=5] \reservecolumnset[c=2,r=17,nr=6] \stopcolumnsetsheet \dorecurse{7}{\samplefile{knuthmath}\par} \stopcolumnset \startcolumnset[bt] \SetTitle{things to consider} \startcolumnsetsheet[bt][1] \startsetcolumnset[c=2,r=8,ntop=1,nbottom=1] \startframed[Fig][height=8gl,offset=3ts] \begstrut can we handle figures, tables and other floats?\endstrut \stopframed \stopsetcolumnset \startsetcolumnset[c=1,r=1,nbottom=1] \startframed[Fig] \startMPcode draw fullcircle scaled 2cm withpen pencircle scaled 3 withcolor "C:2" ; \stopMPcode \stopframed \stopsetcolumnset \startsetcolumnset[c=1,r=17,ntop=1] \startframed[Fig] \startMPcode draw fullsquare scaled 2cm withpen pencircle scaled 3 withcolor "C:2" ; \stopMPcode \stopframed \stopsetcolumnset \startsetcolumnset[c=3,r=17,ntop=1] \startframed[Fig] \startMPcode draw fulltriangle scaled 2cm withpen pencircle scaled 3 withcolor "C:2" ; \stopMPcode \stopframed \stopsetcolumnset \stopcolumnsetsheet \startcolumnsetsheet[bt][2] \startsetcolumnset[c=1,r=1,nbottom=1] \startframed[Fig][offset=3ts] \begstrut even spanning several columns?\endstrut \stopframed \stopsetcolumnset \startbuffer \setupTABLE[frame=off,offset=overlay] \setupTABLE[r][height=\dimexpr\paperheight/21\relax] \setupTABLE[r][align={middle,lohi}] \setupTABLE[c][odd] [width=\dimexpr\paperwidth/17\relax] \setupTABLE[c][even][width=\dimexpr\paperwidth*3/34\relax] \setupTABLE[odd] [even][background=color,backgroundcolor=C:2] \setupTABLE[odd] [odd] [background=color,backgroundcolor=C:3] \setupTABLE[even][odd] [background=color,backgroundcolor=C:2] \setupTABLE[even][even][background=color,backgroundcolor=C:3] \startluacode local ln = math.log local nr = 0 local lnnr = 0 context.bTABLE() for i = 1, 10 do context.bTR() for j = 0, 3 do nr = j/10 + i/1000 lnnr = ln(nr) context.bTD() context(string.format("%0.3f", nr)) context.eTD() if lnnr < 0 then context.bTD() context.m(string.format("%0.6f", -lnnr)) context.eTD() else context.bTD() context.m(string.format("%0.6f", lnnr)) context.eTD() end end context.eTR() end context.eTABLE() \stopluacode \stopbuffer \startsetcolumnset[c=2,r=8,ntop=1] \startframed [Fig] [height=15gl, width=\columnsethspan{2}{2}, backgroundcolor=, foregroundstyle=\switchtobodyfont[kurier,12pt], foregroundcolor=C:4] \getbuffer \stopframed \stopsetcolumnset \stopcolumnsetsheet \dorecurse{10}{\samplefile{knuthmath}\par} \stopcolumnset \startcolumnset[bt] \SetTitle{things to consider} \startcolumnsetsheet[bt][1] \startsetcolumnset[c=2,r=1,nbottom=1] \startframed[Fig][offset=2ts] \begstrut where to\crlf put footnotes?\endstrut \stopframed \stopsetcolumnset \stopcolumnsetsheet \dorecurse{8}{Footnote\footnote{bar} \samplefile{knuthmath}\par} \stopcolumnset \startcolumnset[bt] \SetTitle{things to consider} \startcolumnsetsheet[bt][1] \startsetcolumnset[c=1,r=1,nbottom=1] \startframed[Fig][height=2gl,width=\columnsethspan{1}{2}] \begstrut can we handle headers \unknown \endstrut \stopframed \stopsetcolumnset \startsetcolumnset[c=2,r=21,ntop=1] \startframed[Fig][height=2gl,width=\columnsethspan{2}{1}] \begstrut \unknown\ and footers? \endstrut \stopframed \stopsetcolumnset \startsetcolumnset[c=3,r=8,ntop=7,nbottom=7] \startframed[Fig][height=8gl,offset=2ts] \begstrut what about adding content to the margin?\endstrut \stopframed \stopsetcolumnset \stopcolumnsetsheet \dorecurse{5}{\samplefile{knuthmath}\par} \stopcolumnset \startcolumnset[bt] \SetTitle{things to consider} \showgrid \startcolumnsetsheet[bt][1] \startsetcolumnset[c=3,r=6] \startframed[Fig][height=2gl] \begstrut can\endstrut \stopframed \stopsetcolumnset \startsetcolumnset[c=3,r=9] \startframed[Fig][height=2gl] \begstrut we\endstrut \stopframed \stopsetcolumnset \startsetcolumnset[c=3,r=12] \startframed[Fig][height=2gl] \begstrut work\endstrut \stopframed \stopsetcolumnset \startsetcolumnset[c=3,r=15] \startframed[Fig][height=2gl] \begstrut on\endstrut \stopframed \stopsetcolumnset \startsetcolumnset[c=3,r=18] \startframed[Fig][height=2gl] \begstrut the\endstrut \stopframed \stopsetcolumnset \startsetcolumnset[c=3,r=21] \startframed[Fig][height=2gl] \begstrut grid?\endstrut \stopframed \stopsetcolumnset \stopcolumnsetsheet \dorecurse{8}{\samplefile{knuthmath}\par} \stopcolumnset \startcolumnset[bt] \SetTitle{new columnsets} \startcolumnsetsheet[bt][1] \startsetcolumnset[c=1,r=1,nbottom=1] \startframed[Fig][offset=2ts] \begstrut always work on the grid\endstrut \stopframed \stopsetcolumnset \startsetcolumnset[c=2,r=17,ntop=1] \startframed[Fig][width=\columnsethspan{2}{2}] \begstrut place content like images first, make pages out of remaining slots\endstrut \stopframed \stopsetcolumnset \startsetcolumnset[c=3,r=1,nbottom=1] \startframed[Fig] \begstrut internally work\crlf on spreads\endstrut \stopframed \stopsetcolumnset \stopcolumnsetsheet \startcolumnsetsheet[bt][2] \startsetcolumnset[c=1,r=1,nbottom=1] \startframed[Fig] \begstrut first assumption:\crlf keep it simple!\endstrut \stopframed \stopsetcolumnset \startsetcolumnset[c=2,r=8,ntop=1,nbottom=1] \startframed[Fig][height=8gl,offset=2ts] \begstrut we don't know where we are at the moment\endstrut \stopframed \stopsetcolumnset \startsetcolumnset[c=3,r=17,ntop=1] \startframed[Fig] \begstrut more features added during work\endstrut \stopframed \stopsetcolumnset \stopcolumnsetsheet \dorecurse{13}{\samplefile{knuthmath}\par} \stopcolumnset \startcolumnset[bt] \SetTitle{define the columnset} \startcolumnsetsheet[bt][1] \startsetcolumnset[c=3,r=1] \startframed[Fig][height=3gl] \stopframed \stopsetcolumnset \startsetcolumnset[c=3,r=7,nbottom=1] \startframed[Fig][height=3gl] \stopframed \stopsetcolumnset \reservecolumnset[c=2,r=7,nr=4] \stopcolumnsetsheet \starttyping \definecolumnset [bt] [n=3, limit=4, page=right, distance=0.5cm, % setups=balance:bt, % align={defaultwidows,defaultclubs,defaultbroken}, ] \stoptyping \dorecurse{7}{\samplefile{knuthmath}\par} \stopcolumnset \startcolumnset[bt] \SetTitle{define the columnset} \startcolumnsetsheet[bt][1] \startsetcolumnset[c=1,r=1,nbottom=1] \startframed[Fig][height=10gl] page=right \stopframed \stopsetcolumnset \startsetcolumnset[c=1,r=13,ntop=1] \startframed[Fig][height=10gl] page= \stopframed \stopsetcolumnset \startsetcolumnset[c=2,r=1,nbottom=1] \startframed[Fig][height=10gl,width=\columnsethspan{2}{2}] \startMPcode numeric u ; u := .75cm ; path co ; co := unitsquare xyscaled (u,5u) ; picture pg[] ; pg[3] := image( fill co withcolor "C:2" ; fill co xshifted 1.5u withcolor "C:2" ; fill co xshifted 3u withcolor "C:2" ; label("4", centerofmass co) withcolor "C:4" ; label("5", centerofmass co xshifted 1.5u) withcolor "C:4" ; label("6", centerofmass co xshifted 3u) withcolor "C:4" ; ) ; pg[4] := image( draw pg[3] ; draw boundingbox pg[3] enlarged .5u withpen pencircle scaled 2 withcolor "C:2" ; draw boundingbox pg[3] enlarged .5u xshifted (-bbwidth pg[3] - u) withpen pencircle scaled 2 withcolor "C:2" ; ) ; draw pg[4] ; \stopMPcode \stopframed \stopsetcolumnset \startsetcolumnset[c=2,r=13,ntop=1] \startframed[Fig][height=10gl,width=\columnsethspan{2}{2}] \startMPcode numeric u ; u := .75cm ; path co ; co := unitsquare xyscaled (u,5u) ; picture pg[] ; pg[1] := image( fill co withcolor "C:2" ; fill co xshifted 1.5u withcolor "C:2" ; fill co xshifted 3u withcolor "C:2" ; label("1", centerofmass co) withcolor "C:4" ; label("2", centerofmass co xshifted 1.5u) withcolor "C:4" ; label("3", centerofmass co xshifted 3u) withcolor "C:4" ; ) ; pg[2] := image( draw pg[1] ; draw boundingbox pg[1] enlarged .5u withpen pencircle scaled 2 withcolor "C:2" ; ) ; draw pg[2] ; pg[3] := image( fill co withcolor "C:2" ; fill co xshifted 1.5u withcolor "C:2" ; fill co xshifted 3u withcolor "C:2" ; label("4", centerofmass co) withcolor "C:4" ; label("5", centerofmass co xshifted 1.5u) withcolor "C:4" ; label("6", centerofmass co xshifted 3u) withcolor "C:4" ; ) ; pg[4] := image( draw pg[3] ; draw boundingbox pg[3] enlarged .5u withpen pencircle scaled 2 withcolor "C:2" ; ) ; draw pg[4] xshifted (bbwidth pg[2] - 2bp) ; \stopMPcode \stopframed \stopsetcolumnset \stopcolumnsetsheet \stopcolumnset \startcolumnset[bt] \SetTitle{define the columnset} \startcolumnsetsheet[bt][1] \startsetcolumnset[c=1,r=1,nbottom=1] \startframed[Fig][height=10gl] singlesided \stopframed \stopsetcolumnset \startsetcolumnset[c=1,r=13,ntop=1] \startframed[Fig][height=10gl] doublesided \stopframed \stopsetcolumnset \startsetcolumnset[c=2,r=1,nbottom=1] \startframed[Fig][height=10gl,width=\columnsethspan{2}{2}] \startMPcode numeric u ; u := .75cm ; path co ; co := unitsquare xyscaled (u,5u) ; picture pg[] ; pg[1] := image( fill co withcolor "C:2" ; fill co xshifted 1.5u withcolor "C:2" ; fill co xshifted 3u withcolor "C:2" ; label("1", centerofmass co) withcolor "C:4" ; label("2", centerofmass co xshifted 1.5u) withcolor "C:4" ; label("3", centerofmass co xshifted 3u) withcolor "C:4" ; ) ; pg[2] := image( draw pg[1] ; draw boundingbox pg[1] enlarged .5u withpen pencircle scaled 2 withcolor "C:2" ; ) ; draw pg[2] ; pg[3] := image( fill co withcolor "C:2" ; fill co xshifted 1.5u withcolor "C:2" ; fill co xshifted 3u withcolor "C:2" ; label("1", centerofmass co) withcolor "C:4" ; label("2", centerofmass co xshifted 1.5u) withcolor "C:4" ; label("3", centerofmass co xshifted 3u) withcolor "C:4" ; ) ; pg[4] := image( draw pg[3] ; draw boundingbox pg[3] enlarged .5u withpen pencircle scaled 2 withcolor "C:2" ; ) ; draw pg[4] xshifted (bbwidth pg[2] - 2bp) ; \stopMPcode \stopframed \stopsetcolumnset \startsetcolumnset[c=2,r=13,ntop=1] \startframed[Fig][height=10gl,width=\columnsethspan{2}{2}] \startMPcode numeric u ; u := .75cm ; path co ; co := unitsquare xyscaled (u,5u) ; picture pg[] ; pg[1] := image( fill co withcolor "C:2" ; fill co xshifted 1.5u withcolor "C:2" ; fill co xshifted 3u withcolor "C:2" ; label("1", centerofmass co) withcolor "C:4" ; label("2", centerofmass co xshifted 1.5u) withcolor "C:4" ; label("3", centerofmass co xshifted 3u) withcolor "C:4" ; ) ; pg[2] := image( draw pg[1] ; draw boundingbox pg[1] enlarged .5u withpen pencircle scaled 2 withcolor "C:2" ; ) ; draw pg[2] ; pg[3] := image( fill co withcolor "C:2" ; fill co xshifted 1.5u withcolor "C:2" ; fill co xshifted 3u withcolor "C:2" ; label("4", centerofmass co) withcolor "C:4" ; label("5", centerofmass co xshifted 1.5u) withcolor "C:4" ; label("6", centerofmass co xshifted 3u) withcolor "C:4" ; ) ; pg[4] := image( draw pg[3] ; draw boundingbox pg[3] enlarged .5u withpen pencircle scaled 2 withcolor "C:2" ; ) ; draw pg[4] xshifted (bbwidth pg[2] - 2bp) ; \stopMPcode \stopframed \stopsetcolumnset \stopcolumnsetsheet \stopcolumnset \startcolumnset[bt] \SetTitle{use the columnset} \starttyping \startcolumnset[bt] \stoptyping \dorecurse{10}{\samplefile{knuthmath}\par} \starttyping \stopcolumnset \stoptyping \stopcolumnset \startcolumnset[bt] \SetTitle{placing content in fixed slots} \startbuffer \startcolumnsetsheet[bt][1] \startsetcolumnset [c=3,r=8,ntop=1,nbottom=1] \startframed[Fig][height=8gl] \startMPcode draw fullcircle xsized 3cm withpen pencircle scaled 3 withcolor "C:2" ; \stopMPcode \stopframed \stopsetcolumnset \stopcolumnsetsheet \stopbuffer \getbuffer \typebuffer \startcolumnsetsheet[bt][2] \startsetcolumnset[c=1,r=8,ntop=1,nbottom=1] \startframed[Fig][height=8gl] \startMPcode draw function(1,"x","1.5*sin(x)",0,2*pi,0.01) xsized 5cm withpen pencircle scaled 3 withcolor "C:2" ; \stopMPcode \stopframed \stopsetcolumnset \startsetcolumnset[c=2,r=1,nbottom=1] \startframed[Fig] \startMPcode draw function(1,"x","3/(1 + x*x)",-4,4,0.01) xsized 5cm withpen pencircle scaled 3 withcolor "C:2" ; \stopMPcode \stopframed \stopsetcolumnset \startsetcolumnset[c=2,r=17,ntop=1] \startframed[Fig] \startMPcode draw function(1,"x","1.25*cos(x)",0,2*pi,0.01) xsized 5cm withpen pencircle scaled 3 withcolor "C:2" ; \stopMPcode \stopframed \stopsetcolumnset \startsetcolumnset[c=3,r=8,ntop=1,nbottom=1] \startframed[Fig][height=8gl] \startMPcode draw fullcircle xsized 3cm withpen pencircle scaled 3 withcolor "C:2" ; \stopMPcode \stopframed \stopsetcolumnset \stopcolumnsetsheet \startcolumnsetsheet[bt][3] \startsetcolumnset[c=2,r=1] \startframed[Fig][width=\columnsethspan{2}{2},height=22gl] \startMPcode draw function(1,"x*cos(x)","x*sin(x)",0,8*pi,0.01) ysized 10cm withpen pencircle scaled 3 withcolor "C:2" ; \stopMPcode \stopframed \stopsetcolumnset \stopcolumnsetsheet \dorecurse{16}{\samplefile{knuthmath}\par} \stopcolumnset \startcolumnset[bt] \SetTitle{slots get reserved or occupied} \startbuffer \startcolumnsetsheet[bt][1] \startsetcolumnset[c=3,r=1,nbottom=1] \startframed[Fig] this content has been placed first \stopframed \stopsetcolumnset \startsetcolumnset[c=3,r=6,ntop=1,nbottom=1] \startframed[Fig] this content will not show up \stopframed \stopsetcolumnset \reservecolumnset[c=2,r=1,nr=11] \stopcolumnsetsheet \stopbuffer \typebuffer \getbuffer \dorecurse{5}{\samplefile{knuthmath}\par} \stopcolumnset \startcolumnset[bt] \SetTitle{work on sheet or spread} \startbuffer \startcolumnsetspreadsheets[bt][1] \startsetcolumnset[c=5,r=17,ntop=1] \startframed[Fig] where will this content end up? \stopframed \stopsetcolumnset \stopcolumnsetspreadsheets \stopbuffer \typebuffer \getbuffer \dorecurse{19}{\samplefile{knuthmath}\par} \stopcolumnset \startcolumnset[bt] \SetTitle{how about footnotes?} \startcolumnsetsheet[bt][1] \startsetcolumnset[c=3,r=1,nbottom=1] \startframed[Fig] works fine on simple page setups but \unknown \stopframed \stopsetcolumnset \stopcolumnsetsheet \startcolumnsetsheet[bt][2] \startsetcolumnset[c=1,r=7,ntop=1,nbottom=1] \startframed[Fig][width=\columnsethspan{1}{3}] \startMPcode numeric u ; u := 1cm ; for i = 1 upto 7 : draw fullcircle scaled 2u randomrotatedcontrols uniformdeviate(90) xshifted i*3u withpen pencircle scaled 2 withcolor "C:2" ; endfor \stopMPcode \stopframed \stopsetcolumnset \startsetcolumnset[c=3,r=17,ntop=1] \startframed[Fig] \unknown remember we work in slots! \stopframed \stopsetcolumnset \stopcolumnsetsheet \startbuffer \setupnotes [width=\columnsetspanwidth{1}] \stopbuffer \typebuffer \getbuffer \dorecurse{5}{% \samplefile{knuthmath}\footnote{This is a footnote.}\par \samplefile{knuthmath}\footnote{This is in fact an even longer footnote. Maybe it will run over two rows?}\par } \dorecurse{1}{\samplefile{knuthmath}\par} \stopcolumnset \startbuffer[bts-a] \definesubcolumnset[bt][bts][*] \stopbuffer \getbuffer[bts-a] \startbuffer[bts-b] \dorecurse{7}{% \startsubcolumnset[bts] \samplefile{knuthmath} \stopsubcolumnset \balancesubcolumnsets } \stopbuffer \startcolumnset[bt] \SetTitle{can we balance the columns?} \startcolumnsetsheet[bt][1] \startsetcolumnset[c=3,r=1,nbottom=1] \startframed[Fig] yes, we can! \stopframed \stopsetcolumnset \stopcolumnsetsheet \startsubcolumnset[bts] \typebuffer[bts-a,bts-b] \stopsubcolumnset \flushsubcolumnsets \getbuffer[bts-b] \stopcolumnset \startbuffer[subcols-definitions] \definesubcolumnset[bt][bts-one] [1,4] \definesubcolumnset[bt][bts-two] [2,5] \definesubcolumnset[bt][bts-three][3,6] \stopbuffer \getbuffer[subcols-definitions] \startbuffer[subcols-content] \startsubcolumnset[bts-one] \dorecurse{2}{\samplefile{tufte}\par} \stopsubcolumnset \startsubcolumnset[bts-two] \dorecurse{5}{\italic \samplefile{ward}\par} \stopsubcolumnset \startsubcolumnset[bts-three] \setupcolors[textcolor=C:3] \dorecurse{7}{\samplefile{knuthmath}\par} \stopsubcolumnset \flushsubcolumnsets \stopbuffer \startcolumnset[bt] \SetTitle{wait, subcolumnsets?} \startsubcolumnset[bts-one] \typebuffer[subcols-definitions,subcols-content] \stopsubcolumnset \flushsubcolumnsets \getbuffer[subcols-content] \stopcolumnset \startcolumnset[bt] \SetTitle{it is a challenge to stay on grid} \startcolumnsetsheet[bt][1] \startsetcolumnset[c=2,r=8,ntop=1,nbottom=1] \startframed[Fig][height=8gl,offset=2ts] both inline and displayed math are difficult to handle \stopframed \stopsetcolumnset \stopcolumnsetsheet \samplefile{math-knuth-dt}\par \dorecurse{1}{% \samplefile{knuthmath}\par \startformula f(x) = f(a) + \int __ a ^^ x f'(t) \dd t \stopformula } \samplefile{knuthmath}\par \startformula f(x) \alignhere = f(a) + \int __ a ^^ x f'(t) \dd t \breakhere = \frac {\dd}{\dd x}\int_a^x f(t) \dd t \stopformula \dorecurse{1}{\samplefile{knuthmath}\par} \stopcolumnset \startcolumnset[bt] \SetTitle{it is a challenge to stay on grid} \startcolumnsetsheet[bt][1] \startsetcolumnset[c=2,r=8,ntop=1,nbottom=1] \startframed[Fig][height=8gl,offset=2ts] section heads are typically set in a larger font \stopframed \stopsetcolumnset \stopcolumnsetsheet \samplefile{knuthmath}\par \startsection [title=this is a section with a title that runs over several lines] \dorecurse{6}{\samplefile{knuthmath}\par} \stopsection \stopcolumnset \startcolumnset[bt] \setuphead [section] [grid=global:tolerant] \SetTitle{it is a challenge to stay on grid} \startcolumnsetsheet[bt][1] \startsetcolumnset[c=2,r=8,ntop=1,nbottom=1] \startframed[Fig][height=8gl,offset=2ts] section heads are typically set in a larger font \stopframed \stopsetcolumnset \startsetcolumnset[c=3,r=17,ntop=1] \startframed[Fig] see the details manual for more alternatives \stopframed \stopsetcolumnset \stopcolumnsetsheet \samplefile{knuthmath}\par \startsection [title=this is a section with a title that runs over several lines] \dorecurse{6}{\samplefile{knuthmath}\par} \stopsection \stopcolumnset \stoptext
Akcje Dokumentu