diff options
author | Context Git Mirror Bot <phg42.2a@gmail.com> | 2016-07-30 01:22:07 +0200 |
---|---|---|
committer | Context Git Mirror Bot <phg42.2a@gmail.com> | 2016-07-30 01:22:07 +0200 |
commit | 5135aef167bec739fe429e1aa987671768b237bc (patch) | |
tree | bd9f9696704e57c45f453bb7dc6becd5501cb657 /doc/context/sources/general/manuals | |
parent | 9d7c4ba8449bec1da920c01e24a17c41bbf2211d (diff) | |
download | context-5135aef167bec739fe429e1aa987671768b237bc.tar.gz |
2016-07-30 00:31:00
Diffstat (limited to 'doc/context/sources/general/manuals')
202 files changed, 0 insertions, 41705 deletions
diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-000.tex b/doc/context/sources/general/manuals/columnsets/columnsets-000.tex deleted file mode 100644 index 429a067de..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-000.tex +++ /dev/null @@ -1,63 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\usemodule[visual] -\usemodule[simulate] - -\dontcomplain - -\startenvironment columnsets-000 - -\useMPlibrary[dum] - -\setupbodyfont - [palatino] - -\setuplayout - [grid=yes] - -\setuplayout - [backspace=20mm, - cutspace=15mm, - width=middle, - height=middle] - -\setupsystem - [random=1234] - -\setuppagenumbering - [alternative=doublesided, - location=] - -\setupheadertexts - [pagenumber][right] - [left][pagenumber] - -\setupfootertexts - [\inputfilename] - -\setupfooter - [style=\tttf] - -\setuptolerance - [verytolerant,stretch] - -\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)] - -\startuniqueMPgraphic{frame} - fill OverlayBox withcolor \MPcolor{color-1} ; -\stopuniqueMPgraphic - -\startuniqueMPgraphic{contrast} - fill OverlayBox withcolor \MPcolor{color-3} ; -\stopuniqueMPgraphic - -\defineoverlay[frame] [\uniqueMPgraphic{frame}] -\defineoverlay[contrast][\uniqueMPgraphic{contrast}] - -\stopenvironment diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-001.tex b/doc/context/sources/general/manuals/columnsets/columnsets-001.tex deleted file mode 100644 index 689f4e044..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-001.tex +++ /dev/null @@ -1,17 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset[example][n=2] - -\starttext - -\startcolumnset[example] - - \dorecurse{20}{\fakewords{100}{200}\par} - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-002.tex b/doc/context/sources/general/manuals/columnsets/columnsets-002.tex deleted file mode 100644 index a67dd3161..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-002.tex +++ /dev/null @@ -1,17 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset[example][nleft=3,nright=2,width=5cm] - -\starttext - -\startcolumnset[example] - - \dorecurse{15}{\fakewords{100}{200}\par} - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-003.tex b/doc/context/sources/general/manuals/columnsets/columnsets-003.tex deleted file mode 100644 index eed0286f8..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-003.tex +++ /dev/null @@ -1,35 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset[example][n=2,page=left] - -\setupbackgrounds[text][background=color,backgroundcolor=color-1] - -\setupcolumnsetstart[example][1][1][2] -\setupcolumnsetstart[example][1][2][4] -\setupcolumnsetstart[example][2][1][6] -\setupcolumnsetstart[example][2][2][6] -\setupcolumnsetstart[example][3][1][4] -\setupcolumnsetstart[example][3][2][2] - -\setupcolumnsetlines[example][1][1][-2] -\setupcolumnsetlines[example][1][2][-4] -\setupcolumnsetlines[example][2][1][-6] -\setupcolumnsetlines[example][2][2][-6] -\setupcolumnsetlines[example][3][1][-4] -\setupcolumnsetlines[example][3][2][-2] -\setupcolumnsetlines[example][4][1][4] -\setupcolumnsetlines[example][4][2][10] - -\starttext - -\startcolumnset[example] - - \dorecurse{20}{\fakewords{100}{200}\par} - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-004.tex b/doc/context/sources/general/manuals/columnsets/columnsets-004.tex deleted file mode 100644 index a58ddf621..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-004.tex +++ /dev/null @@ -1,32 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset[example][n=3,page=left] - -\definecolor[fakerulecolor] - -\definecolumnsetspan[wide] [n=2,background=contrast,color=white] -\definecolumnsetspan[wider][n=4,background=contrast,color=white] - -\starttext - -\startcolumnset[example] - - \startcolumnsetspan[wider] - wider: \dorecurse{2}{#1: \fakewords{25}{50}\par} - \stopcolumnsetspan - - inbetween: \fakewords{25}{50}\par - - \startcolumnsetspan[wide] - wide : \dorecurse{2}{#1: \fakewords{25}{50}\par} - \stopcolumnsetspan - - after: \dorecurse{15}{#1: \fakewords{100}{200}\par} - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-005.tex b/doc/context/sources/general/manuals/columnsets/columnsets-005.tex deleted file mode 100644 index f1d970d9e..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-005.tex +++ /dev/null @@ -1,29 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset[example][n=3,page=left] - -\definecolumnsetspan[wide][n=2,background=contrast,color=white] - -\definecolor[fakerulecolor] - -\starttext - -\startcolumnset[example] - - \startcolumnsetspan[wide][default=btlr] - - \startsimplecolumns - \dorecurse{2}{\fakewords{25}{40}\par} - \stopsimplecolumns - - \stopcolumnsetspan - - \dorecurse{15}{\fakewords{100}{200}\par} - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-006.tex b/doc/context/sources/general/manuals/columnsets/columnsets-006.tex deleted file mode 100644 index 033619970..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-006.tex +++ /dev/null @@ -1,35 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset[example][n=3,page=left] - -\definecolor[fakerulecolor] - -\definecolumnsetspan[wide][n=2,background=contrast,color=white] - -\starttext - -\startcolumnset[example] - - \startcolumnsetspan[wide] - \fakewords{25}{50} - \stopcolumnsetspan - - \fakewords{25}{50} - - \startcolumnsetspan[wide] - \fakewords{25}{50} - \stopcolumnsetspan - - \startcolumnsetspan[wide][default=btrl] - \fakewords{25}{50} - \stopcolumnsetspan - - \dorecurse{15}{\fakewords{100}{200}\par} - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-007.tex b/doc/context/sources/general/manuals/columnsets/columnsets-007.tex deleted file mode 100644 index 137a414d9..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-007.tex +++ /dev/null @@ -1,43 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset[example][n=3,page=left] - -\definecolor[fakerulecolor] - -\definecolumnsetspan[wide][n=2,background=contrast,color=white] - -\starttext - -\startbuffer - - \startcolumnsetspan[wide] - \fakewords{25}{50} - \stopcolumnsetspan - - \fakewords{25}{50} - - \startcolumnsetspan[wide] - \fakewords{25}{50} - \stopcolumnsetspan - - \startcolumnsetspan[wide][default=btrl] - \fakewords{25}{50} - \stopcolumnsetspan - - \dorecurse{3}{\fakewords{100}{200}\par} - -\stopbuffer - -\startcolumnset[example] - - \dorecurse{4}{\getbuffer} - - \dorecurse{5}{\fakewords{100}{200}\par} - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-101.tex b/doc/context/sources/general/manuals/columnsets/columnsets-101.tex deleted file mode 100644 index f9c7b59cb..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-101.tex +++ /dev/null @@ -1,30 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset[example][n=4,page=left] - -\starttext - -\startbuffer -\fakewords{100}{200} -\placefigure - {} - {\externalfigure[placeholder][width=\columnsetspanwidth{1}]} -\fakewords{100}{200} -\placefigure - {} - {\externalfigure[placeholder][width=\columnsetspanwidth{2}]} -\fakewords{100}{200} -\stopbuffer - -\startcolumnset[example] - - \dorecurse {5}{\getbuffer} - \dorecurse{10}{\fakewords{100}{200}\par} - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-102.tex b/doc/context/sources/general/manuals/columnsets/columnsets-102.tex deleted file mode 100644 index 3cf4dcd0e..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-102.tex +++ /dev/null @@ -1,36 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset[example][n=4,page=left] - -\starttext - -\startbuffer -\placefigure [tbrl] - {tblr} - {\externalfigure[fake][width=\columnsetspanwidth{1},lines=5]} -\placefigure [fxtb:6*4] - {fxtb} - {\externalfigure[fake][width=\columnsetspanwidth{2},lines=5]} -\placefigure [btlr] - {btlr} - {\externalfigure[fake][width=\columnsetspanwidth{2},lines=5]} -\placefigure [btlr] - {btlr} - {\externalfigure[fake][width=\columnsetspanwidth{3},lines=5]} - -\dorecurse {5} { - \fakewords{100}{200}\par -} -\stopbuffer - -\startcolumnset[example] - - \dorecurse{6}{\getbuffer} - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-103.tex b/doc/context/sources/general/manuals/columnsets/columnsets-103.tex deleted file mode 100644 index f1d4dbedc..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-103.tex +++ /dev/null @@ -1,37 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset[example][n=4,page=left] - -\starttext - -\startcolumnset[example] - -\useexternalfigure[fake][fake][width=\textwidth,lines=3] - -\placefigure[btlr]{brlr}{\externalfigure[fake]} -\placefigure[btlr]{brlr}{\externalfigure[fake]} -\placefigure[btrl]{btrl}{\externalfigure[fake]} -\placefigure[btrl]{btrl}{\externalfigure[fake]} -\placefigure[tblr]{tblr}{\externalfigure[fake]} -\placefigure[tblr]{tblr}{\externalfigure[fake]} -\placefigure[tbrl]{tbrl}{\externalfigure[fake]} -\placefigure[tbrl]{tbrl}{\externalfigure[fake]} - -\placefigure[lrbt]{lrbt}{\externalfigure[fake]} -\placefigure[lrbt]{lrbt}{\externalfigure[fake]} -\placefigure[lrtb]{lrtb}{\externalfigure[fake]} -\placefigure[lrtb]{lrtb}{\externalfigure[fake]} -\placefigure[rlbt]{rlbt}{\externalfigure[fake]} -\placefigure[rlbt]{rlbt}{\externalfigure[fake]} -\placefigure[rltb]{rltb}{\externalfigure[fake]} -\placefigure[rltb]{rltb}{\externalfigure[fake]} - -\dorecurse{10}{\fakewords{50}{100}\par} - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-201.tex b/doc/context/sources/general/manuals/columnsets/columnsets-201.tex deleted file mode 100644 index 37b26c391..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-201.tex +++ /dev/null @@ -1,31 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset[example][n=4,page=left] - -\definecolumnsetarea - [one] - [type=both, - x=1,y=1,nx=2,ny=6, - background=contrast, - state=repeat] - -\definecolumnsetarea - [two] - [type=both, - x=4,y=10,nx=1,ny=6, - background=contrast, - state=repeat] - -\starttext - -\startcolumnset[example] - - \dorecurse{40}{\fakewords{50}{100}\par} - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-202.tex b/doc/context/sources/general/manuals/columnsets/columnsets-202.tex deleted file mode 100644 index 1721d9cbc..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-202.tex +++ /dev/null @@ -1,32 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset[example][n=4,page=left] - -\definecolumnsetarea - [one][left] - [x=1,y=1,nx=2,ny=6, - background=contrast,state=repeat] - -\definecolumnsetarea - [two][right] - [x=3,y=1,nx=2,ny=6, - background=contrast,state=repeat] - -\definecolumnsetarea - [three][both] - [x=2,y=10,nx=2,ny=6, - background=contrast,state=repeat] - -\starttext - -\startcolumnset[example] - - \dorecurse{30}{\fakewords{50}{100}} - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-203.tex b/doc/context/sources/general/manuals/columnsets/columnsets-203.tex deleted file mode 100644 index 6c15578bc..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-203.tex +++ /dev/null @@ -1,29 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset[example][n=4,page=left] - -\definecolumnsetarea - [one]% [left] - [x=1,y=1,nx=6,ny=6, - background=contrast,state=start] - -\definecolumnsetarea - [two]%[left] - [x=3,y=10,nx=4,ny=6, - background=contrast,state=start] - -\stopsetups - -\starttext - -\startcolumnset[example] - - \dorecurse{25}{\fakewords{50}{100}} - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-204.tex b/doc/context/sources/general/manuals/columnsets/columnsets-204.tex deleted file mode 100644 index d390f468e..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-204.tex +++ /dev/null @@ -1,41 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\usemodule[oldfun] - -\environment columnsets-000 - -\definecolumnset[example][n=4,page=left] - -\definecolumnsetarea - [title] - [x=1,y=1,nx=8,ny=8, - background=contrast, - color=white, - align={lohi,right}, - state=start] - -\setupcolumnsetareatext - [title] - [\setups{the title}] - -\startsetups[the title] - - \GapText - {\dimexpr\makeupwidth+\backspace\relax} - {6pt} - {RegularBold*default} {sa 4} - {A Title Spanni\+ng 2 Pages} - -\stopsetups - -\starttext - -\startcolumnset[example] - - \dorecurse{30}{\fakewords{50}{100}\par} - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-205.tex b/doc/context/sources/general/manuals/columnsets/columnsets-205.tex deleted file mode 100644 index b53709770..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-205.tex +++ /dev/null @@ -1,42 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\usemodule[oldfun] - -\environment columnsets-000 - -\unprotected \def\SpreadGapText#1#2{{\def\+{\blackrule[\c!width=#1]}#2}} - -\definecolumnset[example][n=4,page=left] - -\definecolumnsetarea - [title] - [x=1,y=1,nx=8,ny=8, - background=contrast, - color=white, - align={lohi,right}, - state=start] - -\setupcolumnsetareatext - [title] - [\setups{the title}] - -\startsetups[the title] - - \GapText - {\dimexpr(\makeupwidth+\backspace)} {6pt} - {RegularBold} {sa 4} - {A Title Spanni\+ng 2 Pages} - -\stopsetups - -\starttext - -\startcolumnset[example] - - \dorecurse{30}{\fakewords{50}{100}\par} - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-206.tex b/doc/context/sources/general/manuals/columnsets/columnsets-206.tex deleted file mode 100644 index 8b9f524b1..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-206.tex +++ /dev/null @@ -1,29 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset[example][n=4,page=left] - -\definecolumnsetarea - [first] - [x=2,y=4,nx=2,ny=8, - background=contrast, - state=start] - -\definecolumnsetarea - [second] - [x=1,y=20,nx=1,ny=3, - background=contrast, - state=start] - -\starttext - -\startcolumnset[example] - - \dorecurse{50}{\fakewords{50}{100}\par} - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-301.tex b/doc/context/sources/general/manuals/columnsets/columnsets-301.tex deleted file mode 100644 index 4d21f2b02..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-301.tex +++ /dev/null @@ -1,29 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset[example][n=4] - -\starttext - -\startcolumnset[example] - - 1: \fakewords{50}{75} \column - 2: [] \fakewords{50}{75} \column[yes] - 3: [yes] \fakewords{50}{75} \column[page] - \column[page] % redundant - 4: [page] \fakewords{50}{75} \column[3] - 5: [3] \fakewords{50}{75} \column[4] - 6: [4] \fakewords{50}{75} \column[first] - 7: [first] \fakewords{50}{75} \column[last] - 8: [last] \fakewords{50}{75} \page - 9: (page) \fakewords{50}{75} \page - \page % redundant - 10: (page) \fakewords{50}{75} \column[3*5] - 11: [3*5] \fakewords{50}{75} - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-401.tex b/doc/context/sources/general/manuals/columnsets/columnsets-401.tex deleted file mode 100644 index ee91e608c..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-401.tex +++ /dev/null @@ -1,26 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset[example][n=4,page=left] - -\setupbackgrounds[text][text][background=contrast] - -\definecolor[fakerulecolor][white] - -\setupcolumnset[example:2][distance=36pt] -\setupcolumnset[example:3][distance=72pt] -\setupcolumnset[example:4][distance=24pt] -\setupcolumnset[example:5][distance=48pt] - -\starttext - -\startcolumnset[example] - - \dorecurse{25}{\fakewords{100}{150}\par} - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-402.tex b/doc/context/sources/general/manuals/columnsets/columnsets-402.tex deleted file mode 100644 index 00db6017c..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-402.tex +++ /dev/null @@ -1,24 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset[example][n=4,page=left] - -\setupbackgrounds[text][text][background=contrast] - -\setupcolumnset[example] [distance=24pt] -\setupcolumnset[example:1][distance=96pt] - -\definecolor[fakerulecolor][white] - -\starttext - -\startcolumnset[example] - - \dorecurse{25}{\fakewords{100}{150}\par} - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-403.tex b/doc/context/sources/general/manuals/columnsets/columnsets-403.tex deleted file mode 100644 index c9bc2e648..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-403.tex +++ /dev/null @@ -1,23 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset[example][n=4,page=left] - -\setupbackgrounds[text][text][background=contrast] - -\definecolor[fakerulecolor][white] - -\setupcolumnset[example][width=.15\makeupwidth] - -\starttext - -\startcolumnset[example] - - \dorecurse{25}{\fakewords{100}{150}\par} - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-404.tex b/doc/context/sources/general/manuals/columnsets/columnsets-404.tex deleted file mode 100644 index 05a25acfe..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-404.tex +++ /dev/null @@ -1,34 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset[example][n=3,page=left] - -\setupbackgrounds[text][text][background=contrast] - -\setupcolumnset[frame=on,framecolor=color-4,rulethickness=1mm] - -\definecolor[fakerulecolor][white] - -\setupcolumnset[example:1][width=2cm] -\setupcolumnset[example:2][width=4cm] -\setupcolumnset[example:3][width=3cm] - -\setupcolumnset[example:4][width=3cm] -\setupcolumnset[example:5][width=4cm] -\setupcolumnset[example:6][width=6cm] - -\starttext - -\startcolumnset[example] - -\dorecurse{15}{ - \dorecurse{3}{\fakewords{10}{15}\par} - \column[yes] -} - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-405.tex b/doc/context/sources/general/manuals/columnsets/columnsets-405.tex deleted file mode 100644 index fa20ef34c..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-405.tex +++ /dev/null @@ -1,29 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset[example][n=4,page=left] - -\setupbackgrounds[text][text][background=contrast] - -\setupcolumnset[frame=on,framecolor=color-4,rulethickness=1mm] - -\definecolor[fakerulecolor][white] - -\setupcolumnset[example:1][width=.3\makeupwidth] - -\starttext - -\startcolumnset[example] - - \fakewords{150}{150} - \column - \fakewords{25}{50} - - \dorecurse{25}{\fakewords{50}{75}\par} - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-601.tex b/doc/context/sources/general/manuals/columnsets/columnsets-601.tex deleted file mode 100644 index b139210f4..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-601.tex +++ /dev/null @@ -1,29 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset[example][n=4,page=left,direction=reverse] - -\setupbackgrounds[text][text][background=contrast] - -\definecolor[fakerulecolor][color-1] - -\starttext - -\startcolumnset[example] - - \dorecurse{50}{ - \dontleavehmode - \snaptogrid\hbox - {\scale[height=2.5\lineheight]{\color[white]{#1}}}% - \space - \fakewords{30}{60} - %\simulatewords[n=30,m=60,min=1,max=5,color=color-1,line=yes]\par - \par - } - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-701.tex b/doc/context/sources/general/manuals/columnsets/columnsets-701.tex deleted file mode 100644 index b2c50cfaf..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-701.tex +++ /dev/null @@ -1,23 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset[example][n=4,page=left] - -\setupcolumnset - [example] - [background=contrast] - -\definecolor[fakerulecolor][white] - -\starttext - -\startcolumnset[example] - - \dorecurse{30}{\fakewords{50}{100}\par} - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-702.tex b/doc/context/sources/general/manuals/columnsets/columnsets-702.tex deleted file mode 100644 index 5b9a879c1..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-702.tex +++ /dev/null @@ -1,27 +0,0 @@ -content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset[example][n=4,page=left] - -\setupcolumnset - [example] - [background=contrast, - backgroundoffset=4pt, - frame=on, - framecolor=white, - rulethickness=2pt] - -\definecolor[fakerulecolor][white] - -\starttext - -\startcolumnset[example] - - \dorecurse{30}{\fakewords{50}{100}\par} - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-703.tex b/doc/context/sources/general/manuals/columnsets/columnsets-703.tex deleted file mode 100644 index 549b49f61..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-703.tex +++ /dev/null @@ -1,34 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset[example][n=4,page=left] - -\definecolumnsetarea - [title][left] - [x=1,y=1,nx=8,ny=8, - background=contrast,state=repeat] - -\setupcolumnsetareatext - [title][left][\setups{cow}] - -\startsetups[cow] - - \externalfigure - [cow.pdf] - [height=15\lineheight, - width=2\dimexpr\makeupwidth+\backspace\relax] - -\stopsetups - -\starttext - -\startcolumnset[example] - - \dorecurse{30}{\fakewords{50}{100}\par} - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-704.tex b/doc/context/sources/general/manuals/columnsets/columnsets-704.tex deleted file mode 100644 index 7fa6cb313..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-704.tex +++ /dev/null @@ -1,69 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\startuseMPgraphic{mpos:par:columns} - path p ; numeric h ; - for i=1 upto nofmultipars : - p := multipars[i] ; - h := bbheight(p) ; - if multikind[i] = "single" : - fill p topenlarged -.5h - withshademethod "linear" - withshadedirection shadedup - withcolor \MPcolor{color-1} shadedinto white ; - fill p bottomenlarged -.5h - withshademethod "linear" - withshadedirection shadedup - withcolor white shadedinto \MPcolor{color-1} ; - elseif multikind[i] = "first" : - fill p - withshademethod "linear" - withshadedirection shadedup - withcolor \MPcolor{color-2} shadedinto white ; - elseif multikind[i] = "middle" : - fill p topenlarged -.5h - withshademethod "linear" - withshadedirection shadedup - withcolor \MPcolor{color-2} shadedinto white ; - fill p bottomenlarged -.5h - withshademethod "linear" - withshadedirection shadedup - withcolor white shadedinto \MPcolor{color-3} ; - elseif multikind[i] = "last" : - fill p - withshademethod "linear" - withshadedirection shadedup - withcolor white shadedinto \MPcolor{color-3} ; - fi ; - endfor ; -\stopuseMPgraphic - -\definecolumnset - [example] - [n=4, - page=left] - -\definetextbackground - [shade] - [location=paragraph, - mp=mpos:par:columns, - before=\blank, - after=\blank] - -\starttext - -\startcolumnset[example] - - \dorecurse {40} { - \starttextbackground[shade] - \fakewords{10}{200} - \stoptextbackground - \par - } - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-801.tex b/doc/context/sources/general/manuals/columnsets/columnsets-801.tex deleted file mode 100644 index 1a84f99ab..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-801.tex +++ /dev/null @@ -1,19 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset [example-1] [n=2] -\definecolumnset [example-2] [n=3] - -\starttext \showgrid - - \startcolumnset [example-1] - \dorecurse {1}{\input tufte \par} - \stopcolumnset - \startcolumnset [example-2] - \dorecurse {2}{\input ward \par} - \stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-802.tex b/doc/context/sources/general/manuals/columnsets/columnsets-802.tex deleted file mode 100644 index a126d0012..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-802.tex +++ /dev/null @@ -1,22 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset [example-1] [n=2,balance=yes] -\definecolumnset [example-2] [n=3,balance=yes] - -\starttext \showgrid - - \setupcolumnsetlines[example-1][1][1] [8] - \setupcolumnsetlines[example-1][1][2][10] - - \startcolumnset [example-1] - \dorecurse {1}{\input tufte \par} - \stopcolumnset - \startcolumnset [example-2] - \dorecurse {2}{\input ward \par} - \stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-803.tex b/doc/context/sources/general/manuals/columnsets/columnsets-803.tex deleted file mode 100644 index 58a278bb1..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-803.tex +++ /dev/null @@ -1,26 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset [example-1] [n=2,balance=yes] -\definecolumnset [example-2] [n=3,balance=yes] - -\starttext \showgrid - - \setupcolumnsetlines[example-1][1][1] [8] - \setupcolumnsetlines[example-1][1][2][10] - - \setupcolumnsetlines[example-2][1][1][19] - \setupcolumnsetlines[example-2][1][2][18] - \setupcolumnsetlines[example-2][1][3][19] - - \startcolumnset [example-1] - \dorecurse {1}{\input tufte \par} - \stopcolumnset - \startcolumnset [example-2] - \dorecurse {2}{\input ward \par} - \stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-804.tex b/doc/context/sources/general/manuals/columnsets/columnsets-804.tex deleted file mode 100644 index c2b7a6b1e..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-804.tex +++ /dev/null @@ -1,26 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset [example-1] [n=2,balance=yes] -\definecolumnset [example-2] [n=3,balance=yes] - -\starttext \showgrid - - \setupcolumnsetlines[example-1][1][1] [8] - \setupcolumnsetlines[example-1][1][2][10] - - \setupcolumnsetlines[example-2][1][1] [0] - \setupcolumnsetlines[example-2][1][2][-2] - \setupcolumnsetlines[example-2][1][3] [0] - - \startcolumnset [example-1] - \dorecurse {1}{\input tufte \par} - \stopcolumnset - \startcolumnset [example-2] - \dorecurse {6}{\input ward \par} - \stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-805.tex b/doc/context/sources/general/manuals/columnsets/columnsets-805.tex deleted file mode 100644 index fc80e7e9c..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-805.tex +++ /dev/null @@ -1,26 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset [example-1] [n=2,balance=yes] -\definecolumnset [example-2] [n=3,balance=yes] - -\starttext \showgrid - - \setupcolumnsetlines[example-1][1][1] [8] - \setupcolumnsetlines[example-1][1][2][10] - - \setupcolumnsetstart[example-2][1][1][19] - \setupcolumnsetstart[example-2][1][2][17] - \setupcolumnsetstart[example-2][1][3][19] - - \startcolumnset [example-1] - \dorecurse {1}{\input tufte \par} - \stopcolumnset - \startcolumnset [example-2] - \dorecurse {2}{\input ward \par} - \stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-806.tex b/doc/context/sources/general/manuals/columnsets/columnsets-806.tex deleted file mode 100644 index 0322a336f..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-806.tex +++ /dev/null @@ -1,26 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset [example-1] [n=2,balance=yes] -\definecolumnset [example-2] [n=3,balance=yes] - -\starttext \showgrid - - \setupcolumnsetlines[example-1][1][1] [8] - \setupcolumnsetlines[example-1][1][2][10] - - \setupcolumnsetstart[example-2][1][1][29] - \setupcolumnsetstart[example-2][1][2][29] - \setupcolumnsetstart[example-2][1][3][29] - - \startcolumnset [example-1] - \dorecurse {1}{\input tufte \par} - \stopcolumnset - \startcolumnset [example-2] - \dorecurse {2}{\input ward \par} - \stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-901.tex b/doc/context/sources/general/manuals/columnsets/columnsets-901.tex deleted file mode 100644 index 300458bf5..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-901.tex +++ /dev/null @@ -1,38 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset[example][n=2,page=left,distance=1cm] - -\setupcolumnset - [example] - [background=contrast] - -\definecolor[fakerulecolor][white] \faketriggertrue - -\setuphead - [section] - [style=\bfd] - -\setuplinenumbering - [style=bold, - distance=0pt, - align=inner] - -\starttext - -\startcolumnset[example] - - \dorecurse{30}{ - \startsection[title=foo #1] - \startlinenumbering - \fakewords{50}{100}\par - \stoplinenumbering - \stopsection - } - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-902.tex b/doc/context/sources/general/manuals/columnsets/columnsets-902.tex deleted file mode 100644 index fda2969af..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-902.tex +++ /dev/null @@ -1,38 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset[example][n=3,page=left,distance=1cm] - -\setupcolumnset - [example] - [background=contrast] - -\definecolor[fakerulecolor][white] \faketriggertrue - -\setuphead - [section] - [style=\bfd] - -\setuplinenumbering - [style=bold, - distance=0pt, - align=inner] - -\starttext - -\startcolumnset[example] - - \dorecurse{30}{ - \startsection[title=foo #1] - \startlinenumbering - \fakewords{50}{100}\par - \stoplinenumbering - \stopsection - } - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets-903.tex b/doc/context/sources/general/manuals/columnsets/columnsets-903.tex deleted file mode 100644 index 68cd31ae2..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets-903.tex +++ /dev/null @@ -1,41 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\environment columnsets-000 - -\definecolumnset[example][n=3,page=left,distance=1cm] - -\setupcolumnset - [example] - [background=contrast] - -\definecolor[fakerulecolor][white] \faketriggertrue - -\setupblank - [line] - -\setuphead - [section] - [style=\bfd] - -\setuplinenumbering - [style=bold, - distance=0pt, - align=inner] - -\starttext - -\startcolumnset[example] - - \dorecurse{30}{ - \startsection[title=foo #1] - \startlinenumbering - \fakewords{50}{100}\par - \stoplinenumbering - \stopsection - } - -\stopcolumnset - -\stoptext diff --git a/doc/context/sources/general/manuals/columnsets/columnsets.tex b/doc/context/sources/general/manuals/columnsets/columnsets.tex deleted file mode 100644 index 7d68872ef..000000000 --- a/doc/context/sources/general/manuals/columnsets/columnsets.tex +++ /dev/null @@ -1,873 +0,0 @@ -% engine=luatex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\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 diff --git a/doc/context/sources/general/manuals/epub/epub-mkiv-demo.tex b/doc/context/sources/general/manuals/epub/epub-mkiv-demo.tex deleted file mode 100644 index b4b979874..000000000 --- a/doc/context/sources/general/manuals/epub/epub-mkiv-demo.tex +++ /dev/null @@ -1,43 +0,0 @@ - -% \usemodule[luacalls] - -\usemodule[mathml] - -\setupexternalfigures - [location=default] - -\setupbackend - [export=yes] - -\setupexport - [svgstyle=mathtest-style, - hyphen=yes, - width=60em] - -\setupbodyfont[pagella] - -\definefloat[graphic][graphics][figure] - -% \environment [mathtest-style] - -\starttext - - \startsection[title=First] - - \startitemize - \startitem one \stopitem - \startitem two \stopitem - \stopitemize - - \startplacefigure[title=First] - \externalfigure[cow.pdf] - \stopplacefigure - - \startplacegraphic[title=Second] - \externalfigure[cow.pdf] - \stopplacegraphic - - some math: \m{e=mc^2} - - \stopsection -\stoptext diff --git a/doc/context/sources/general/manuals/epub/epub-mkiv.tex b/doc/context/sources/general/manuals/epub/epub-mkiv.tex deleted file mode 100644 index 6fc4ed9d4..000000000 --- a/doc/context/sources/general/manuals/epub/epub-mkiv.tex +++ /dev/null @@ -1,466 +0,0 @@ -% language=uk - -% todo: -% -% metadata -% properties -% \dontleavehmode before hbox -% cover page -% -% http://www.cnet.com/news/google-subtracts-mathml-from-chrome-and-anger-multiplies/ - -% \usemodule[luacalls] - -\usemodule[art-01,abr-02] - -\definehighlight[notabene][style=bold] - -\definecolor[darkorange] [.70(green,red)] -\definecolor[lightorange][.45(orange,white)] -\definecolor[lesswhite] [.90(white)] - -\setuptyping[color=darkorange] -\setuptype [color=darkorange] - -\starttext - -\startMPpage - -numeric w ; w := 21cm ; -numeric h ; h := 29.7cm ; -numeric ww ; ww := 9w/10 ; -numeric oo ; oo := (w-ww) / 2 ; -numeric hh ; hh := h/5.5 ; -path p ; p := unitsquare xysized(w,h) ; - -color orange ; orange := \MPcolor{darkorange} ; % .7[green,red] ; - -fill p enlarged 2mm withcolor orange ; - -draw image ( - draw anchored.top( - textext("\ttbf\setupinterlinespace[line=1.7ex]\framed[frame=off,align=middle,offset=0mm]{\smash{<div/>}\\\smash{<div >}\\\smash{</div>}}") - xsized w, - center topboundary p shifted (0,-12mm)) withcolor \MPcolor{lightorange} ; % 0.45[white,orange] ; - draw anchored.bot( - textext("\ssbf\setupinterlinespace[line=2.2ex]\framed[frame=off,align=middle]{exporting\\xml and epub\\from context}") - xsized w, - center bottomboundary p shifted (0,4mm)) withcolor \MPcolor {lesswhite} ; % 0.90white ; -) ; - -setbounds currentpicture to p ; - -\stopMPpage - -\startsection[title=Introduction] - -There is a pretty long tradition of typesetting math with \TEX\ and it looks like -this program will dominate for many more years. Even if we move to the web, the -simple fact that support for \MATHML\ in some browsers is suboptimal will drive -those who want a quality document to use \PDF\ instead. - -I'm writing this in 2014, at a time when \XML\ is widespread. The idea of \XML\ is -that you code your data in a very structured way, so that it can be manipulated and -(if needed) validated. Text has always been a target for \XML\ which is a follow|-|up -to \SGML\ that was in use by publishers. Because \HTML\ is less structured (and also -quite tolerant with respect to end tags) we prefer to use \XHTML\ but unfortunately -support for that is less widespread. - -Interestingly, documents are probably among the more complex targets of the -\XML\ format. The reason is that unless the author restricts him|/|herself or -gets restricted by the publisher, tag abuse can happen. At \PRAGMA\ we mostly -deal with education|-|related \XML\ and it's not always easy to come up with -something that suits the specific needs of the educational concept behind a -school method. Even if we start out nice and clean, eventually we end up with a -polluted source, often with additional structure needed to satisfy the tools used -for conversion. - -We have been supporting \XML\ from the day it showed up and most of our projects -involve \XML\ in one way or the other. That doesn't mean that we don't use \TEX\ -for coding documents. This manual is for instance a regular \TEX\ document. In -many ways a structured \TEX\ document is much more convenient to edit, especially -if one wants to add a personal touch and do some local page make|-|up. On the other hand, -diverting from standard structure commands makes the document less suitable for -output other than \PDF. There is simply no final solution for coding a document, -it's mostly a matter of taste. - -So we have a dilemma: if we want to have multiple output, frozen \PDF\ as well as -less-controlled \HTML\ output, we can best code in \XML, but when we want to code -comfortably we'd like to use \TEX. There are other ways, like Markdown, that can -be converted to intermediate formats like \TEX, but that is only suitable for -simple documents: the more advanced documents get, the more one has to escape -from the boundaries of (any) document encoding, and then often \TEX\ is not a bad -choice. There is a good reason why \TEX\ survived for so long. - -It is for this reason that in \CONTEXT\ \MKIV\ we can export the content in a -reasonable structured way to \XML. Of course we assume a structured document. It -started out as an experiment because it was relatively easy to implement, and it -is now an integral component. - -\stopsection - -\startsection[title=The output] - -The regular output is an \XML\ file but as we have some more related data it gets -organized in a tree. We also export a few variants. An example is given below: - -\starttyping -./test-export -./test-export/images -./test-export/images/... -./test-export/styles -./test-export/styles/test-defaults.css -./test-export/styles/test-images.css -./test-export/styles/test-styles.css -./test-export/styles/test-templates.css -./test-export/test-raw.xml -./test-export/test-raw.lua -./test-export/test-tag.xhtml -./test-export/test-div.xhtml -\stoptyping - -Say that we have this input: - -\starttyping -\setupbackend - [export=yes] - -\starttext - \startsection[title=First] - \startitemize - \startitem one \stopitem - \startitem two \stopitem - \stopitemize - \stopsection -\stoptext -\stoptyping - -The main export ends up in the \type {test-raw.xml} export file and looks like -the following (we leave out the preamble and style references): - -\starttyping -<document> <!-- with some attributes --> - <section detail="section" chain="section" level="3"> - <sectionnumber>1</sectionnumber> - <sectiontitle>First</sectiontitle> - <sectioncontent> - <itemgroup detail="itemize" chain="itemize" symbol="1" level="1"> - <item> - <itemtag><m:math ..><m:mo>•</m:mo></m:math></itemtag> - <itemcontent>one</itemcontent> - </item> - <item> - <itemtag><m:math ..><m:mo>•</m:mo></m:math></itemtag> - <itemcontent>two</itemcontent> - </item> - </itemgroup> - </sectioncontent> - </section> -</document> -\stoptyping - -This file refers to the stylesheets and therefore renders quite well in a browser -like Firefox that can handle \XHTML\ with arbitrary tags. - -The \type {detail} attribute tells us what instance of the element is used. -Normally the \type {chain} attribute is the same but it can have more values. -For instance, if we have: - -\starttyping -\definefloat[graphic][graphics][figure] - -..... - -\startplacefigure[title=First] - \externalfigure[cow.pdf] -\stopplacefigure - -..... - -\startplacegraphic[title=Second] - \externalfigure[cow.pdf] -\stopplacegraphic -\stoptyping - -we get this: - -\starttyping -<float detail="figure" chain="figure"> - <floatcontent>...</floatcontent> - <floatcaption>...</floatcaption> -</float> -<float detail="graphic" chain="figure graphic"> - <floatcontent>...</floatcontent> - <floatcaption>...</floatcaption> -</float> -\stoptyping - -This makes it possible to style specific categories of floats by using a -(combination of) \type {detail} and|/|or \type {chain} as filters. - -The body of the \type {test-tag.xhtml} file looks similar but it is slightly more -tuned for viewing. For instance, hyperlinks are converted to a way that \CSS\ and -browsers like more. Keep in mind that the raw file can be the base for conversion -to other formats, so that one stays closest to the original structure. - -The \type {test-div.xhtml} file is even more tuned for viewing in browsers as it -completely does away with specific tags. We explicitly don't map onto native -\HTML\ elements because that would make everything look messy and horrible, if only -because there seldom is a relation between those elements and the original. One -can always transform one of the export formats to pure \HTML\ tags if needed. - -\starttyping -<body> - <div class="document"> - <div class="section" id="aut-1"> - <div class="sectionnumber">1</div> - <div class="sectiontitle">First</div> - <div class="sectioncontent"> - <div class="itemgroup itemize symbol-1"> - <div class="item"> - <div class="itemtag"><m:math ...><m:mo>•</m:mo></m:math></div> - <div class="itemcontent">one</div> - </div> - <div class="item"> - <div class="itemtag"><m:math ...><m:mo>•</m:mo></m:math></div> - <div class="itemcontent">two</div> - </div> - </div> - <div class="float figure"> - <div class="floatcontent">...</div></div> - <div class="floatcaption">...></div> - </div> - <div class="float figure graphic"> - <div class="floatcontent">...</div></div> - <div class="floatcaption">...></div> - </div> - </div> - </div> -</body> -\stoptyping - -The default \CSS\ file can deal with tags as well as classes. The file -of additional styles contains definitions of so|-|called highlights. In the \CONTEXT\ source -one is better off using explicit named highlights instead of local font and color -switches because these properties are then exported to the \CSS. The images style -defines all images used. The templates file lists all the elements used and can -be used as a starting point for additional \CSS\ styling. - -Keep in mind that the export is \notabene{not} meant as a one|-|to|-|one visual -representation. It represents structure so that it can be converted to whatever -you like. - -In order to get an export you must start your document with: - -\starttyping -\setupbackend - [export=yes] -\stoptyping - -So, we trigger a specific (extra) backend. In addition you can set up the export: - -\starttyping -\setupexport - [svgstyle=test-basic-style.tex, - cssfile=test-extras.css, - hyphen=yes, - width=60em] -\stoptyping - -The \type {hyphen} option will also export hyphenation information so that the -text can be nicely justified. The \type {svgstyle} option can be used to specify -a file where math is set up; normally this would only contain a \type{bodyfont} setup, -and this option is only needed if you want to create an \EPUB\ file afterwards which -has math represented as \SVG. - -The value of \type {cssfile} ends up as a style reference in the exported files. -You can also pass a comma|-|separated list of names (between curly braces). These -entries come after those of the automatically generated \CSS\ files so you need -to be aware of default properties. - -\stopsection - -\startsection[title=Images] - -Inclusion of images is done in an indirect way. Each image gets an entry in a -special image related stylesheet and then gets referred to by \type {id}. Some -extra information is written to a status file so that the script that creates -\EPUB\ files can deal with the right conversion, for instance from \PDF\ to \SVG. -Because we can refer to specific pages in a \PDF\ file, this subsystem deals with -that too. Images are expected to be in an \type {images} subdirectory and because in \CSS\ -the references are relative to the path where the stylesheet resides, we use -\type {../images} instead. If you do some postprocessing on the files or relocate -them you need to keep in mind that you might have to change these paths in the -image|-|related \CSS\ file. - -\stopsection - -\startsection[title=Epub files] - -At the end of a run with exporting enabled you will get a message to the console that -tells you how to generate an \EPUB\ file. For instance: - -\starttyping -mtxrun --script epub --make --purge test -\stoptyping - -This will create a tree with the following organization: - -\starttyping -./test-epub -./test-epub/META-INF -./test-epub/META-INF/container.xml -./test-epub/OEBPS -./test-epub/OEBPS/content.opf -./test-epub/OEBPS/toc.ncx -./test-epub/OEBPS/nav.xhtml -./test-epub/OEBPS/cover.xhtml -./test-epub/OEBPS/test-div.xhtml -./test-epub/OEBPS/images -./test-epub/OEBPS/images/... -./test-epub/styles -./test-epub/styles/test-defaults.css -./test-epub/styles/test-images.css -./test-epub/styles/test-styles.css -./test-epub/mimetype -\stoptyping - -Images will be moved to this tree as well and if needed they will be converted, -for instance into \SVG. Converted \PDF\ files can have a \typ {page-<number>} in -their name when a specific page has been used. - -You can pass the option \type {--svgmath} in which case math will be converted to -\SVG. The main reason for this feature is that we found out that \MATHML\ support -in browsers is not currently as widespread as might be expected. The best bet is Firefox which -natively supports it. The Chrome browser had it for a while but it got dropped -and math is now delegated to \JAVASCRIPT\ and friends. In Internet Explorer -\MATHML\ should work (but I need to test that again). - -This conversion mechanism is -kind of interesting: one enters \TEX\ math, then gets \MATHML\ in the export, and -that gets rendered by \TEX\ again, but now as a standalone snippet that then gets -converted to \SVG\ and embedded in the result. - -\stopsection - -\startsection[title=Styles] - -One can argue that we should use native \HTML\ elements but since we don't have a nice -guaranteed|-|consistent mapping onto that, it makes no sense to do so. Instead, we -rely on either explicit tags with details and chains or divisions with classes -that combine the tag, detail and chain. The tagged variant has some more -attributes and those that use a fixed set of values become classes in the -division variant. Also, once we start going the (for instance) \type {H1}, \type -{H2}, etc.\ route we're lost when we have more levels than that or use a -different structure. If an \type {H3} can reflect several levels it makes no -sense to use it. The same is true for other tags: if a list is not really a list -than tagging it with \type {LI} is counterproductive. We're often dealing with -very complex documents so basic \HTML\ tagging becomes rather meaningless. - -If you look at the division variant (this is used for \EPUB\ too) you will notice -that there are no empty elements but \type {div} blocks with a comment as content. -This is needed because otherwise they get ignored, which for instance makes table -cells invisible. - -The relation between \type {detail} and \type {chain} (reflected in \type {class}) -can best be seen from the next example. - -\starttyping -\definefloat[myfloata] -\definefloat[myfloatb][myfloatbs][figure] -\definefloat[myfloatc][myfloatcs][myfloatb] -\stoptyping - -This creates two new float instances. The first inherits from the main float -settings, but can have its own properties. The second example inherits from -the \type {figure} so in fact it is part of a chain. The third one has a longer -chain. - -\starttyping -<float detail="myfloata">...</float> -<float detail="myfloatb" chain="figure">...</float> -<float detail="myfloatc" chain="figure myfloatb">...</float> -\stoptyping - -In a \CSS\ style you can now configure tags, details, and chains as well as -classes (we show only a few possibilities). Here, the \CSS\ element on the -first line of each pair is invoked by the \CSS\ selector on the second line. - -\starttyping -div.float.myfloata { } float[detail='myfloata'] { } -div.float.myfloatb { } float[detail='myfloatb'] { } -div.float.figure { } float[detail='figure'] { } -div.float.figure.myfloatb { } float[chain~='figure'][detail='myfloata'] { } -div.myfloata { } *[detail='myfloata'] { } -div.myfloatb { } *[detail='myfloatb'] { } -div.figure { } *[chain~='figure'] { } -div.figure.myfloatb { } *[chain~='figure'][detail='myfloatb'] { } -\stoptyping - -The default styles cover some basics but if you're serious about the export -or want to use \EPUB\ then it makes sense to overload some of it and|/|or -provide additional styling. You can find plenty about \CSS\ and its options -on the Internet. - -\stopsection - -\startsection[title=Coding] - -The default output reflects the structure present in the document. If that is not -enough you can add your own structure, as in: - -\starttyping -\startelement[question] -Is this right? -\stopelement -\stoptyping - -You can also pass attributes: - -\starttyping -\startelement[question][level=difficult] -Is this right? -\stopelement -\stoptyping - -But these will be exported only when you also say: - -\starttyping -\setupexport - [properties=yes] -\stoptyping - -You can create a namespace. The following will generate attributes -like \type {my-level}. - -\starttyping -\setupexport - [properties=my-] -\stoptyping - -In most cases it makes more sense to use highlights: - -\starttyping -\definehighlight - [important] - [style=bold] -\stoptyping - -This has the advantage that the style and color are exported to a special -\CSS\ file. - -Headers, footers, and other content that is part of the page builder are not -exported. If your document has cover pages you might want to hide them too. The -same is true when you create special chapter title rendering with a side -effect that content ends up in the page stream. If something shows up that you -don't want, you can wrap it in an \type {ignore} element: - -\starttyping -\startelement[ignore] -Don't export this. -\stopelement -\stoptyping - -\stopsection - -\stoptext diff --git a/doc/context/sources/general/manuals/languages/languages-appendix.tex b/doc/context/sources/general/manuals/languages/languages-appendix.tex deleted file mode 100644 index d8f33e44a..000000000 --- a/doc/context/sources/general/manuals/languages/languages-appendix.tex +++ /dev/null @@ -1,48 +0,0 @@ -% language=uk - -\startcomponent languages-appendix - -\environment languages-environment - -\startchapter[title=Appendix][color=darkgray] - -\startsection[title=The language files] - - Todo. - -\stopsection - -\startsection[title=The \type {mtx-patterns} script] - - Todo. - -\stopsection - -\startsection[title=Installed sorters] - -\startbuffer -\usemodule[s-languages-sorting] - -\showinstalledsorting -\stopbuffer - -\typebuffer \blank[2*line] \getbuffer - -\stopsection - -\startsection[title=Verbose counters] - -\startbuffer -\usemodule[s-languages-counters] - -\showverbosecounters[language={en,es}] -\stopbuffer - -\typebuffer \blank[2*line] \getbuffer - -\stopsection - -\stopchapter - -\stopcomponent - diff --git a/doc/context/sources/general/manuals/languages/languages-basics.tex b/doc/context/sources/general/manuals/languages/languages-basics.tex deleted file mode 100644 index 840897096..000000000 --- a/doc/context/sources/general/manuals/languages/languages-basics.tex +++ /dev/null @@ -1,348 +0,0 @@ -% language=uk - -\startcomponent languages-basics - -\environment languages-environment - -\startchapter[title=Some basics][color=darkyellow] - -\startsection[title={Introduction}] - -In this chapter we will see how we can toggle between languages. A first -introduction to patterns will be given. Some details of how to control the -hyphenation with specific patterns will be given in a later chapter. - -\stopsection - -\startsection[title={Available languages}] - -When you use the English version of \CONTEXT\ you will default to US English as -main language. This means that hyphenation will be US specific, which by the way -is different from the rules in GB. All labels that are generated by the system -are also in English. Languages can often be accessed by names like \type -{english} or \type {dutch} although it is quite common to use the short tags like -\type {en} and \type {nl}. Because we want to be as compatible as possible with -\MKII, there are quite some synonyms. The following table lists the languages that -for which support is built|-|in.\footnote {More languages can be defined. It is -up to users to provide the information.} - -\startbuffer -\usemodule[languages-system] - -\loadinstalledlanguages -\showinstalledlanguages -\stopbuffer - -\getbuffer - -You can call up such a table with the following commands: - -\typebuffer - -Instead you can run \type {context --global languages-system.mkiv}. - -As you can see, many languages have hyphenation patterns but for Japanese, -Korean, Chinese as well as Arabic languages they make no sense. The patterns are -loaded on demand. The number is the internal number that is used in the engine; a -user never has to use that number. Numbers $<1$ are used to disable hyphenation. -The file tag is used to locate and load a specification. Such files have names -like type {lang-nl.lua}. - -Some languages share the same hyphenation patterns but can have demands that -differ, like labels or quotes. The characters shown in the table are those found -in the pattern files. The number of patterns differs a lot between languages. -This relates to the systematic behind them. Some languages use word stems, others -base their hyphenation on syllables. Some language have inflections which adds to -the complexity while others can combine words in ways that demand special care -for word boundaries. Of course a low or high number can signal a low quality as -well, but most pattern collections are assembled over many years and updated when -for instance spelling rules change. I think that we can safely say that most patterns -are quite stable and of good quality. - -\stopsection - -\startsection[title=Switching] - -The document language is set with - -\starttyping -\mainlanguage[en] -\stoptyping - -but when you want to apply the proper hyphenation rules to an embedded language -you can use: - -\starttyping -\language[en] -\stoptyping - -or just: - -\starttyping -\en -\stoptyping - -The main language determines what labels show up, how numbering happens, in what -way dates get formatted, etc. Normally the \typ {\mainlanguage} command comes -before the \typ {\starttext} command. - -\stopsection - -\startsection[title=Hyphenation] - -In \LUATEX\ each character that gets typeset not only carries a font id and character -code, but also a language number. You can switch language whenever you want and -the change will be carried with the characters. Switching within a word doesn't make -sense but it is permitted: - -\starttabulate[|||T|] -\NC 1 \NC \type{\de incrediblykompliziert} \NC \hyphenatedword{\de incrediblykompliziert} \NC \NR -\NC 2 \NC \type{\en incrediblykompliziert} \NC \hyphenatedword{\en incrediblykompliziert} \NC \NR -\NC 3 \NC \type{\en incredibly\de kompliziert} \NC \hyphenatedword{\en incredibly\de kompliziert} \NC \NR -\NC 4 \NC \type{\en incredibly\de\-kompliziert} \NC \hyphenatedword{\en incredibly\de\-kompliziert} \NC \NR -\NC 5 \NC \type{\en incredibly\de-kompliziert} \NC \hyphenatedword{\en incredibly\de-kompliziert} \NC \NR -\stoptabulate - -In the line 4 we have a \type {\-} between the two words, and in the last -line just a \type {-}. If you look closely you will notice that the snippets -can be quite small. If we typeset a word with a 1mm text width we get this: - -\blank \start \en \hsize 1mm incredibly \par \stop \blank - -If you are familiar with the details of hyphenation, you know that the number of -characters at the end and beginning of a word is controlled by the two variables -\typ {\lefthyphenmin} and \typ {\righthyphenmin}. However, these only influence -the hyphenation process. What bits and pieces eventually end up on a line is -determined by the par builder and there the \type {\hsize} matters. In practice -you will not run into these situations, unless you have extreme long words and a -narrow column. - -Hyphenation normally is limited to regular characters that make up the alphabet of -a language. It is insensitive for capitalization as the following text shows: - -\blank - -\startnarrower -\hyphenatedword {This time the musical distraction while developing code came -from watching youtube performances of Cory Henry (also known from Snarky Puppy, -a conglomerate of excellent players). Just search the web for his name with \quote -{Stevie Wonder and Michael Jackson Tribute}. There is no keyboard he can't play. -Another interesting keyboard player is Sun Rai (a short name for Rai -Thistlethwayte, just google for \quote {The Beatles, Come Together, Live Piano -Acoustic with Loop Pedal}, or do a combined search with \quote {Matt -Chamberlain}. Okay, and talking of keyboards, let's not forget Vika Yermolyeva -(vkgoeswild) as she's one of a kind too on the web. And then there is Jacob -Collier, in one word: incredible (or hyphenated the Dutch way {\nl incredible}, -let me repeat that in French {\fr incredible}).} \footnote {Get me right, there -are of course many more fantastic musicians.} -\stopnarrower - -\blank - -Of course, names are often short and don't need to be hyphenated -(or the left and right settings prohibit it). Another complication with names is -that they can come from another language so we either need to switch language -temporarily or we need to add an exception (more about that later). - -\stopsection - -\startsection[title=Primitives] - -In traditional \TEX\ the language is not a property of a character but is -triggered by a signal in the (so called) list. Think of: - -\starttyping -<language 1>this is <language 2>nederlands<language 1> mixed with english -\stoptyping - -This number is set by the primitive \typ {\language}. Language triggers are -injected into the list depending on the value of this number. There is also a \typ -{\setlanguage} primitive that can inject triggers without setting the \typ -{\language} number. Because in \LUATEX\ the state is kept with the character -you don't need to worry about the subtle differences here. - -In \CONTEXT\ the \typ {\language} and \typ {\setlanguage} commands are overloaded -by a more advanced switch macro. You cannot assume that they work as explained in -general manuals about \TEX. Currently you can still assign a number but that -might change. Just consider the language to be an abstraction and don't mess with -this number. Both commands not only change the current language but also do -specific initializations when needed. - -What characters get involved in hyhenation is historically determines by the so -called \type {\lccode} values. Each character can have such a value which maps -an uppercase to a lowercase character. This concept has been extended in \ETEX\ -where it binds to a pattern set (language). However, in \CONTEXT\ the user never -has to worry about such details. - -% The \type {\patterns} primitive is -% The \type {\hyphenation} primitive is - -In traditional hyphenation there will not be hyphenated if the sum of \typ -{\lefthyphenmin} and \typ {\righthyphenmin} exceeds 62. This limitation is not -present in the to be presented \LUA\ variant of this routine as there is no -good reason for this limitation other than implementation constraints. - -\stopsection - -\startsection[title=Control] - -We already mentioned \typ {\lefthyphenmin} and \typ {\righthyphenmin}. These -two variables control the area in a word that is subjected to hyphenation. -Setting these values is a matter of taste but making them too small can result in -bad hyphenation when the patterns are made with the assumptions that certain -minima are used. Using a \typ {\lefthyphenmin} of 2 while the patterns are made -with a value of 3 in mind is a bad idea. - -\startlinecorrection[blank] -\startluacode -context.bTABLE { option = "stretch", align= "middle" } - context.bTR() - context.bTD { ny = 2, align = "middle,lohi", style = "monobold" } - context.verbatim("\\lefthyphenmin") - context.eTD() - context.bTD { nx = 5, style = "monobold" } - context.verbatim("\\righthyphenmin") - context.eTD() - context.eTR() - context.bTR() - for right=1,5 do - context.bTD() - context.mono(right) - context.eTD() - end - context.eTR() - for left=1,5 do - context.bTR() - context.bTD() - context.mono(left) - context.eTD() - for right=1,5 do - context.bTD() - context("\\lefthyphenmin %s \\righthyphenmin %s \\hyphenatedword{interesting}",left,right) - context.eTD() - end - context.eTR() - end -context.eTABLE() -\stopluacode -\stoplinecorrection - -When \TEX\ breaks a paragraph into lines it will try do so without hyphenation. -When that fails (read: when the badness becomes too high) a next effort will take -hyphenation into account. \footnote {Because in \LUATEX\ we always hyphenate -there is no real gain in trying not to hyphenate. Because in traditional \TEX\ -hyphenation happens on the fly a pass without hyphenating makes more sense.} When -the badness is still too high, an optional emergency pass can be made but only -when the tolerances are set to permit this. In \CONTEXT\ you can try these -settings when you get too many over- or underfull boxes reported on the console. - -\starttyping -\setupalign[tolerant] -\setupalign[verytolerant] -\setupalign[verytolerant,stretch] -\stoptyping - -Personally I tend to use the last setting, especially in automated flows. After -all, \TEX\ will not apply stretch unless it's really needed. - -The two \typ {\*hyphenmin} parameters can be set any time and the current value -is stored with each character. They can also be set with the language which we -will see later. - -When \TEX\ hyphenates words it has to decide where a word starts and ends. In -traditional \TEX\ the words starts normally at a character that falls within the -scope of the hyphenator. It ends at when a box (hlist or vlist) is seen, but also -at a rule, discretionary, accent (forget about this in \CONTEXT) or math. An -example will be given in the chapter that discussed the \LUA\ alternative. - -\stopsection - -\startsection[title=Installing] - - todo - -\stopsection - -\startsection[title=Modes] - -Languages are one of the mechanisms where you can access the current state. There are -for instance two (official) macros that contain the current (main) language: - -\startbuffer -\starttabulate[||Tc|] -\HL -\NC \bf macro \NC \bf value \NC \NR -\HL -\NC \type {\currentmainlanguage} \NC \currentmainlanguage \NC \NR -\NC \type {\currentlanguage} \NC \currentlanguage \NC \NR -\HL -\stoptabulate -\stopbuffer - -\getbuffer - -When we have set \type {\language[nl]} we get this: - -\start \nl \getbuffer \stop - -If you write a style that needs to adapt to a language you can use modes. There -are several ways to do this: - -\startbuffer -\language[nl] - -\startmode[**en] - \color[darkred]{main english} -\stopmode - -\startmode[*en] - \color[darkred]{local english} -\stopmode - -\startmode[**nl] - \color[darkblue]{main dutch} -\stopmode - -\startmode[*nl] - \color[darkblue]{local dutch} -\stopmode - -\startmodeset - [*en] {\color[darkgreen]{english set}} - [*nl] {\color[darkgreen]{dutch set}} -\stopmodeset -\stopbuffer - -\typebuffer - -This typesets: - -\blank \startpacked \setupindenting[no] \getbuffer \stoppacked \blank - -When you use setups you can use the following trick: - -\startbuffer -\language[nl] - -\startsetups language:en - \color[darkorange]{something english} -\stopsetups - -\startsetups language:nl - \color[darkorange]{something dutch} -\stopsetups - -\setups[language:\currentlanguage] -\stopbuffer - -\typebuffer - -As expected we get: - -\blank \start \setupindenting[no] \getbuffer \stop \blank - -\stopsection - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/languages/languages-environment.tex b/doc/context/sources/general/manuals/languages/languages-environment.tex deleted file mode 100644 index 2669fe0c5..000000000 --- a/doc/context/sources/general/manuals/languages/languages-environment.tex +++ /dev/null @@ -1,15 +0,0 @@ -\startenvironment languages-environment - - \environment manuals-explaining-environment - \environment manuals-explaining-cover - - \usemodule [s] [languages-hyphenation] - \usemodule [s] [languages-frequencies] - \usemodule [s] [languages-sorting] - \usemodule [s] [languages-counters] - \usemodule [s] [languages-system] - - \usemodule [s] [math-extensibles] - -\stopenvironment - diff --git a/doc/context/sources/general/manuals/languages/languages-goodies.tex b/doc/context/sources/general/manuals/languages/languages-goodies.tex deleted file mode 100644 index 32de54db3..000000000 --- a/doc/context/sources/general/manuals/languages/languages-goodies.tex +++ /dev/null @@ -1,138 +0,0 @@ -% language=uk - -\startcomponent languages-goodies - -\environment languages-environment - -\startchapter[title=Goodies][color=darkorange] - -\startsection[title=Introduction] - -There are some features that will only be used in rare cases. They were often -implemented as experiment but found useful enough to keep around. - -\stopsection - -\startsection[title=Spell checking] - -There are some means to check the spelling of words in your document but get it -right: \CONTEXT\ is not a spell|-|checker. These features were added in order to -be able to do some quick checking of documents written by multiple authors. There -are currently three options and we only show a simple examples. - -First you need to load word lists. These are either text files with just words -separated by spacing. - -\starttyping[color=maincolor] -foobar foo-bar foo=bar foo{}{}{}bar foo{}{}{bar} -\stoptyping - -All these words become \type {foobar} which means that one can use words with -discretionary specifications. A text list is loaded with: - -\startbuffer -\loadspellchecklist[en][t:/manuals/lua/words-en.txt] -\stopbuffer - -\typebuffer \getbuffer - -Instead you can load a \LUA\ file with words. Here we use the same structure that -we use for the spell checker provided for \SCITE: - -\starttyping[color=maincolor] -return { - max = 9, - min = 6, - n = 2, - words = { - ["barfoo"] = "Barfoo" - ["foobarred"] = "foobarred", - } -} -\stoptyping - -We use the same load command (you can also load bytecode files with suffix \type -{luc} this way): - -\startbuffer -\loadspellchecklist[nl][t:/scite/data/context/lexers/data/spell-nl.lua] -\stopbuffer - -\typebuffer \getbuffer - -Usage boils down to enabling the checker. If needed we can add more methods. The -first method colors the known and unknown colors. Words shorter then the -threshold of 4 will be skipped. - -\startbuffer -\setupspellchecking[state=start,method=1] -\en Is this written right or is this wromg?\par % m -> n error -\nl Is dit goed geschreven of niet?\par -\setupspellchecking[state=stop] -\stopbuffer - -\typebuffer \startpacked \getbuffer \stoppacked - -You can change the colors: - -\starttyping -\definecolor[word:yes] [g=.75] -\definecolor[word:no] [r=.75] -\stoptyping - -The second method doesn't show anything but produces a file \type -{jobname.words}) with used words. The \type {found} value of \type {list} is used -as key in the produced table. - -\startbuffer -\setupspellchecking[state=start,method=2,list=found] -\en Is this written right or is this wrong?\par -\nl Is dit goed geschreven of niet?\par -\setupspellchecking[state=stop] -\stopbuffer - -\typebuffer \startpacked \getbuffer \stoppacked - -The produced table is: - -\typefile{\jobname.words} - -The result can be traced with a module: - -\startbuffer -\usemodule[s-languages-words] - -\showwords -\stopbuffer - -\typebuffer - -This shows up as: - -\getbuffer - -The third mechanism colors languages differently. We only defined a few colors: - -\starttyping -\definecolor[word:en] [b=.75] -\definecolor[word:de] [r=.75] -\definecolor[word:nl] [g=.75] -\definecolor[word:unknown][r=.75,g=.75] -\stoptyping - -but you can of course define a color for your favourite language in a similar way. - -\startbuffer -\setupspellchecking[state=start,method=3] -\en Is this written right or is this wrong?\par -\nl Is dit goed geschreven of niet?\par -\setupspellchecking[state=stop] -\stopbuffer - -\typebuffer \startpacked \getbuffer \stoppacked - -\stopsection - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/languages/languages-hyphenation.tex b/doc/context/sources/general/manuals/languages/languages-hyphenation.tex deleted file mode 100644 index 6698717be..000000000 --- a/doc/context/sources/general/manuals/languages/languages-hyphenation.tex +++ /dev/null @@ -1,876 +0,0 @@ -% language=uk - -\startcomponent languages-hyphenation - -\environment languages-environment - -\startchapter[title=Hyphenation][color=darkmagenta] - -\startsection[title=How it works] - -Proper hyphenation is one of the strong points of \TEX. Hyphenation in \TEX\ is -done using so called hyphenation patterns. Making these patterns is an art -and most users (including me) happily use whatever is available. Patterns can be -created automatically using \type {patgen} but often manual tweaking is needed -too. A pattern looks as follows: - -\starttyping -pat1tern -\stoptyping - -This means as much as: you can split the word \type {pattern} in two pieces, with -a hyphen between the two \type {t}'s. Actually it will also split the word \type -{patterns} because the hyphenation mechanism looks at substrings. When no number -between characters in a pattern is given, a zero is assumed. This means as much -as {\em undefined}. An even number inhibits hyphenation, an odd number permits -it. The larger the number (weight), the more influence it has. A more restricted -pattern is: - -\starttyping -.pat1tern. -\stoptyping - -Here the periods set the word boundaries. The pattern dictionary for us -english has smaller patterns and the next trace shows how these are applied. - -\starthyphenation[traditional] -\showhyphenationtrace[en][pattern] -\stophyphenation - -The effective hyphenation of a word is determined by several factors: - -\startitemize[packed] -\startitem the current language, each language can have different patterns \stopitem -\startitem the characters, as some characters might block hyphenation \stopitem -\startitem the settings of \type {\lefthyphenmin} and \type {\righthyphenmin} \stopitem -\stopitemize - -A place where a word can be hyphenated is called a discretionary. When \TEX\ -analyzes a stream, it will inject discretionary nodes into that stream. - -\starttyping -pat\discretionary{-}{}{}tern. -\stoptyping - -In traditional \TEX\ hyphenation, ligature building and kerning are tightly -interwoven which is quite effective. However, there was also a strong -relationship between the current font and hyphenation. This is a side effect of -traditional \TEX\ having at most 256 characters in a font and the fact that the -used character is fact a reference to a slot in a font. There a character in the -input initially ends up as a character node and eventually becomes a glyph node. -For instance two characters \type {fi} can become a ligature glyph representing -this combination. - -In \LUATEX\ the hyphenation, ligature building and kerning stages are separated -and can be overloaded. In \CONTEXT\ all three can be replaced by code written in -\LUA. Because normally hyphenation happens before font logic is applied, there is -no relationship with font encoding. I wrote the first \LUA\ version of the -hyohenator on a rainy weekend and the result was not that bad so it was presented -at the 2014 \CONTEXT\ meeting. After some polishing I decided to add this routine -to the standard \MKIV\ repertoire which then involved some proper interfacing. - -You can enable the \LUA\ variant with the following command: - -\starttyping -\setuphyphenation[method=traditional] -\stoptyping - -We call this method \type {traditional} because in principle we can have -many more methods and this one is (supposed to be) mostly compatible to the -built-in method. This is a global setting. You can switch back with: - -\starttyping -\setuphyphenation[method=default] -\stoptyping - -In the next sections we will see how we can provide alternatives within the -traditional method. These alternatives can be set local and therefore can operate -over a limited range of characters. - -One complication in interfacing is that \TEX\ has grouping (which permits local -settings) and we want to limit some of the above functionality using groups. At -the same time hyphenation is a paragraph related action so we need to enable the -hyphenation related code at a global level (or at least make sure that it gets -exercised by forcing a \type {\par}). That means that the alternative -hyphenator has to be quite compatible so that we could just enable it for a whole -document. This can have an impact on performance but in practice that can be -neglected. In \LUATEX\ the \LUA\ variant is 4~times slower than the built-in one, -in \LUAJITTEX\ it's 3~times slower. But the good news is that the amount of time -spent in the hyphenator is relatively small compared to other manipulations and -macro expansion. The additional time needed for loading and preparing the -patterns into a more \LUA\ specific format can be neglected. - -You can check how words get hyphenated using the patterns management script: - -\starttyping ->mtxrun --script patterns --hyphenate language - -hyphenator | -hyphenator | . l a n g u a g e . . l a n g u a g e . -hyphenator | 0a2n0 0 0 2 0 0 0 0 0 0 -hyphenator | 2a0n0g0 0 2 2 0 0 0 0 0 0 -hyphenator | 0n1g0u0 0 2 2 1 0 0 0 0 0 -hyphenator | 0g0u4a0 0 2 2 1 0 4 0 0 0 -hyphenator | 2g0e0.0 0 2 2 1 0 4 2 0 0 -hyphenator | .0l2a2n1g0u4a2g0e0. . l a n-g u a g e . -hyphenator | -mtx-patterns | us 3 3 : language : lan-guage -\stoptyping - -\stopsection - -\startsection[title=The last words] - -Mid 2014 we had to upgrade a style for a \PDF\ assembly service: chapters from -(technical) school books are combined into arbitrary new books. There are some -nasty aspects with this flow: for instance, all section numbers in a chapter are -replaced by new numbers and this also involves figure and table prefixes. -It boils down to splitting up books, analyzing the typeset content and -preparing it for replacements. The structure is described in \XML\ files so that -we can generate tables of contents. The reason for not generating from \XML\ -sources is that the publisher doesn't have a \XML\ workflow and that books -already were available. Also, books from several series are combined and even -within a series structure (and rendering) differs. - -What has this to do with hyphenation? Writing a style for such a flow always -results in a more complex one that estimated and as usual it's in the details. -The original style was written in \MKII\ and used some box juggling to achieve -reasonable results but in \MKIV\ we can do better. - -Each chapter has a title and books get titles and subtitles as well. The titles -are typeset each time a new book is composed. This happens within some layout -constraints. Think of constraints like these: - -\startitemize[packed] -\startitem the title goes on top of a shape that doesn't permit much overflow \stopitem -\startitem there can be very long words (not uncommon in Dutch or German) \stopitem -\startitem a short word or hyphenated part should not end up on the last line \stopitem -\startitem the left and right hyphenation minima are at least four \stopitem -\stopitemize - -The last requirement is a compromise because in most cases publishers seem to -want ragged right not hyphenated rendering (at least in Dutch schoolbooks). The -arguments for this are quite weak and probably originate in fear of bad rendering -given past experiences. It's this kind of situations that drive the development -of the more obscure features that ship with \CONTEXT\ and a (partial) solution -for this specific case will be given later. - -If you look at thousands of titles and turn these into (small) paragraphs \TEX\ -does a pretty good job. It's the few exceptions that we need to catch. The next -examples demonstrate such an extreme case. - -\startbuffer[example] -\dorecurse{5} { % dejavu - \startlinecorrection[blank] - \bTABLE - \bTR - \bTD[align=middle,width=2em,foregroundstyle=bold] - #1 - \eTD - \bTD[align={verytolerant,flushleft},width=15em,offset=1ex] - \hsize \dimexpr11\emwidth-#1\dimexpr.5\emwidth\relax - \dontcomplain - \lefthyphenmin=4\righthyphenmin=4 - \blackrule[color=darkyellow,width=\hsize,height=-3pt,depth=5pt]\par - \begstrut\getbuffer[long]\endstrut\par - \eTD - \bTD[align={verytolerant,flushleft},width=15em,offset=1ex] - \sethyphenationfeatures[demo] - \hsize \dimexpr11\emwidth-#1\dimexpr.5\emwidth\relax - \dontcomplain - \blackrule[color=darkyellow,width=\hsize,height=-3pt,depth=5pt]\par - \begstrut\getbuffer[long]\endstrut\par - \eTD - \eTR - \eTABLE - \stoplinecorrection -} -\stopbuffer - -\definehyphenationfeatures - [demo] - [rightwords=1, - lefthyphenmin=4, - righthyphenmin=4] - -\startbuffer[long] -a verylongword and then anevenlongerword -\stopbuffer - -\starthyphenation[traditional] - \enabletrackers[hyphenator.visualize] - \getbuffer[example]\par - \disabletrackers[hyphenator.visualize] -\stophyphenation - -Of course in practice there need to be some reasonable width and when we pose -these limits the longest possible word should fit into the allocated space. In -these examples the rule shows the width. In the right columns we see a red -colored word and that one will not get hyphenated. - -\stopsection - -\startsection[title=Explicit hyphens] - -Another special case that we needed to handle were (compound) words with explicit -hyphens. Because often data comes from \XML\ files we can not really control the -typesetting as in a \TEX\ document where the author sees what gets done. So here -we need a way to turn these hyphens into proper hyphenation directives and at the -same time permit the words to be hyphenated. - -\definehyphenationfeatures - [demo] - [hyphens=yes, - lefthyphenmin=4, - righthyphenmin=4] - -\startbuffer[long] -a very-long-word and then an-even-longer-word -\stopbuffer - -\starthyphenation[traditional] - \enabletrackers[hyphenator.visualize] - \getbuffer[example]\par - \disabletrackers[hyphenator.visualize] -\stophyphenation - -\stopsection - -\startsection[title=Extended patterns] - -As with more opened up mechanisms, in \MKIV\ we can extend functionality. As an -example I have implemented the extensions discussed in the article by László -Németh in the Proceedings of Euro\TEX\ 2006: {\em Hyphenation in OpenOffice.org} -(TUGboat, Volume 27, 2006). The syntax for these extension is somewhat ugly and -involves optional offsets and ranges. \footnote {I'm not sure if there were ever -patterns released that used this syntax.} - -\startbuffer -\registerhyphenationpattern[nl][e1ë/e=e] -\registerhyphenationpattern[nl][a9atje./a=t,1,3] -\registerhyphenationpattern[en][eigh1tee/t=t,5,1] -\registerhyphenationpattern[de][c1k/k=k] -\registerhyphenationpattern[de][schif1f/ff=f,5,2] -\stopbuffer - -\typebuffer \getbuffer - -These patterns result in the following hyphenations: - -\starthyphenation[traditional] - \switchtobodyfont[big] - \starttabulate[|||] - \NC reëel \NC \language[nl]\hyphenatedcoloredword{reëel} \NC \NR - \NC omaatje \NC \language[nl]\hyphenatedcoloredword{omaatje} \NC \NR - \NC eighteen \NC \language[en]\hyphenatedcoloredword{eighteen} \NC \NR - \NC Zucker \NC \language[de]\hyphenatedcoloredword{Zucker} \NC \NR - \NC Schiffahrt \NC \language[de]\hyphenatedcoloredword{Schiffahrt} \NC \NR - \stoptabulate -\stophyphenation - -In a specification, the \type {.} indicates a word boundary and numbers indicate -the weight of a breakpoint. The optional extended specification comes after the -\type {/}. The values separated by a \type {=} are the pre and post sequences: -these end up at the end of the current line and beginning of the next one. The -optional numbers are the start position and length. These default to~1 and~2, so -in the first example they identify \type {eë} (the weights don't count). - -There is a pitfall here. When the language already has patterns that for -instance prohibit a hyphen between \type {e} and type {ë}, like \type{e2ë}, we -need to make sure that we give our new one a higher priority, which is why we -used a \type{e9ë}. - -This feature is somewhat experimental and can be improved. Here is a more \LUA-ish -way of setting such patterns: - -\starttyping -local registerpattern = - languages.hyphenators.traditional.registerpattern - -registerpattern("nl","e1ë", { - start = 1, - length = 2, - before = "e", - after = "e", -} ) - -registerpattern("nl","a9atje./a=t,1,3") -\stoptyping - -Just adding extra patterns to an existing set without much testing is not wise. For -instance we could add these to the dutch dictionary: - -\starttyping -\registerhyphenationpattern[nl][e3ë/e=e] -\registerhyphenationpattern[nl][o3ë/o=e] -\registerhyphenationpattern[nl][e3ï/e=i] -\registerhyphenationpattern[nl][i3ë/i=e] -\registerhyphenationpattern[nl][a5atje./a=t,1,3] -\registerhyphenationpattern[nl][toma8at5je] -\stoptyping - -That would work oke well for words like - -\starttyping -coëfficiënt -geïntroduceerd -copiëren -omaatje -tomaatje -\stoptyping - -However, the last word only goes right because we explicitly added a pattern -for it. One reason is that the existing patterns already contain rules to -prevent weird hyphenations. The same is true for the accented characters. So, -consider these examples and coordinate additional patterns with other users -so that errors can be identified. - -\stopsection - -\startsection[title=Exceptions] - -We have a variant on the \TEX\ primitive \type {\hyphenation}, the official way -to register a specific way to hyphenate a word. - -\startbuffer -\registerhyphenationexception[aaaaa-bbbbb] -aaaaabbbbb \par -\stopbuffer - -\typebuffer - -This code is self explaining and results in: - -\blank - -\starthyphenation[traditional] -\setupindenting[no]\hsize 1mm \lefthyphenmin 1 \righthyphenmin 1 \getbuffer -\stophyphenation - -There can be multiple hyphens and even multiple words in such a specification: - -\startbuffer -\registerhyphenationexception[aaaaa-bbbbb cc-ccc-ddd-dd] -aaaaabbbbb \par -cccccddddd \par -\stopbuffer - -\typebuffer - -We get: - -\blank - -\starthyphenation[traditional] -\setupindenting[no]\hsize 1mm \lefthyphenmin 1 \righthyphenmin 1 \getbuffer -\stophyphenation - - -\stopsection - -\startsection[title=Boundaries] - -A box, rule, math or discretionary will end a word and prohibit hyphenation -of that word. Take this example: - -\startbuffer[demo] -whatever \par -whatever\hbox{!} \par -\vl whatever\vl \par -whatever$x$ \par -whatever-whatever \par -\stopbuffer - -\typebuffer[demo] - -These lines will hyphenate differently and in traditional \TEX\ you need to -insert penalties and|/|or glue to get around it. In the \LUA\ variant we can -enable that limitation. - -\startbuffer -\definehyphenationfeatures - [strict] - [rightedge=tex] -\stopbuffer - -\typebuffer \getbuffer - -Here we show the three variants: traditional \TEX\ and \LUA\ with and without -strict settings. - -\starttabulate[|p|p|p|] -\HL -\NC \ttbf \hbox to 11em{default\hss} -\NC \ttbf \hbox to 11em{traditional\hss} -\NC \ttbf \hbox to 11em{traditional strict\hss} -\NC \NR -\HL -\NC \starthyphenation[default] \hsize1mm \getbuffer[demo] \stophyphenation -\NC \starthyphenation[traditional] \hsize1mm \getbuffer[demo] \stophyphenation -\NC \starthyphenation[traditional] \sethyphenationfeatures[strict] - \hsize1mm \getbuffer[demo] \stophyphenation -\NC \NR -\HL -\stoptabulate - -By default \CONTEXT\ is configured to hyphenate words that start with an -uppercase character. This behaviour is controlled in \TEX\ by the \typ {\uchyph} -variable. A positive value will enable this and a negative one disables it. - -\starttabulate[|p|p|p|p|] -\HL -\NC \ttbf \hbox to 8em{default 0\hss} -\NC \ttbf \hbox to 8em{default 1\hss} -\NC \ttbf \hbox to 8em{traditional 0\hss} -\NC \ttbf \hbox to 8em{traditional 1\hss} -\NC \NR -\HL -\NC \starthyphenation[default] \hsize1mm \uchyph\zerocount TEXified \dontcomplain \stophyphenation -\NC \starthyphenation[traditional] \hsize1mm \uchyph\zerocount TEXified \dontcomplain \stophyphenation -\NC \starthyphenation[default] \hsize1mm \uchyph\plusone TEXified \dontcomplain \stophyphenation -\NC \starthyphenation[traditional] \hsize1mm \uchyph\plusone TEXified \dontcomplain \stophyphenation -\NC \NR -\HL -\stoptabulate - -The \LUA\ variants behaves the same as the built-in implementation (that of course -remains the reference). - -\stopsection - -\startsection[title=Plug-ins] - -The default hyphenator is similar to the built-in one, with a couple of -extensions as mentioned. However, you can plug in your own code, given that it -does return a proper hyphenation result. One reason for providing this plug is -that there are users who want to play with hyphenators based on a different -logic. In \CONTEXT\ we already have some methods to deal with languages that -(for instance) have no spaces but split on words or syllabes. A more tight -integration with the hyphenator can have advantages so I will explore these -options when there is demand. - -A result table indicates where we can break a word. If we have a four character -word and can break after the second character, the result looks like this: - -\starttyping -result = { false, true, false, false } -\stoptyping - -Instead of \type {true} we can also have a table that has entries like the -extensions discussed in a previous section. Let's give an example of a -plug-in. - -\startbuffer -\startluacode - local subset = { - a = true, - e = true, - i = true, - o = true, - u = true, - y = true, - } - - languages.hyphenators.traditional.installmethod("test", - function(dictionary,word,n) - local t = { } - for i=1,#word do - local w = word[i] - if subset[w] then - t[i] = { - before = "<" .. w, - after = w .. ">", - left = false, - right = false, - } - else - t[i] = false - end - end - return t - end - ) -\stopluacode -\stopbuffer - -\typebuffer \getbuffer - -Here we hyphenate on vowels and surround them by angle brackets when -split over lines. This alternative is installed as follows: - -\startbuffer -\definehyphenationfeatures - [demo] - [alternative=test] -\stopbuffer - -\typebuffer \getbuffer - -We can now use it as follows: - -\starttyping -\setuphyphenation[method=traditional] -\sethyphenationfeatures[demo] -\stoptyping - -When applied to one the tufte example we get: - -\startbuffer[demo] -\starthyphenation[traditional] - \setuptolerance[tolerant] - \sethyphenationfeatures[demo] - \dontleavehmode - \input tufte\relax -\stophyphenation -\stopbuffer - -\blank \startnarrower \getbuffer[demo] \stopnarrower \blank - -A more realistic (but not perfect) example is the following: - -\startbuffer -\startluacode - local packslashes = false - - local specials = { - ["!"] = "before", ["?"] = "before", - ['"'] = "before", ["'"] = "before", - ["/"] = "before", ["\\"] = "before", - ["#"] = "before", - ["$"] = "before", - ["%"] = "before", - ["&"] = "before", - ["*"] = "before", - ["+"] = "before", ["-"] = "before", - [","] = "before", ["."] = "before", - [":"] = "before", [";"] = "before", - ["<"] = "before", [">"] = "before", - ["="] = "before", - ["@"] = "before", - ["("] = "before", - ["["] = "before", - ["{"] = "before", - ["^"] = "before", ["_"] = "before", - ["`"] = "before", - ["|"] = "before", - ["~"] = "before", - -- - [")"] = "after", - ["]"] = "after", - ["}"] = "after", - } - - languages.hyphenators.traditional.installmethod("url", - function(dictionary,word,n) - local t = { } - local p = nil - for i=1,#word do - local w = word[i] - local s = specials[w] - if s == "after" then - s = { - start = 1, - length = 1, - after = w, - left = false, - right = false, - } - specials[w] = s - elseif s == "before" then - s = { - start = 1, - length = 1, - before = w, - left = false, - right = false, - } - specials[w] = s - end - if not s then - s = false - elseif w == p and w == "/" then - t[i-1] = false - end - t[i] = s - if packslashes then - p = w - end - end - return t - end - ) -\stopluacode -\stopbuffer - -\typebuffer \getbuffer - -Again we define a plug: - -\startbuffer -\definehyphenationfeatures - [url] - [characters=all, - alternative=url] -\stopbuffer - -\typebuffer \getbuffer - -So, we only break a line after symbols. - -\startlinecorrection[blank] - \starthyphenation[traditional] - \tt - \sethyphenationfeatures[url] - \scale[width=\hsize]{\hyphenatedcoloredword{http://www.pragma-ade.nl}} - \stophyphenation -\stoplinecorrection - -A quick test can look as follows: - -\startbuffer -\starthyphenation[traditional] - \sethyphenationfeatures[url] - \tt - \dontcomplain - \hsize 1mm - http://www.pragma-ade.nl -\stophyphenation -\stopbuffer - -\typebuffer - -Or: - -\getbuffer - -\stopsection - -\startsection[title=Blocking ligatures] - -Yet another predefined feature is the ability to block a ligature. In -traditional \TEX\ this can be done by putting a \type {{}} between -the characters, although that effect can get lost when the text is -manipulated. The natural way to do this in a \UNICODE\ environment -is to use the special characters \type {zwj} and \type {zwnj}. - -We use the following example lines: - -\startbuffer[sample] -supereffective \blank -superef\zwnj fective -\stopbuffer - -\typebuffer[sample] - -and define two featuresets: - -\startbuffer -\definehyphenationfeatures - [demo-1] - [characters=\zwnj\zwj, - joiners=yes] - -\definehyphenationfeatures - [demo-2] - [joiners=no] -\stopbuffer - -\typebuffer \getbuffer - -We limit the width to 1mm and get: - -\startlinecorrection[blank] -\bTABLE[option=stretch,offset=.5ex] - \bTR - \bTD \tx - \type{method=default} - \eTD - \bTD \tx - \type{method=traditional} - \eTD - \bTD \tx - \type{method=traditional}\par - \type{featureset=demo-1} - \eTD - \bTD \tx - \type{method=traditional}\par - \type{featureset=demo-2} - \eTD - \eTR - \bTR - \bTD - \hsize 1mm \dontcomplain - \starthyphenation[default] - \getbuffer[sample] - \stophyphenation - \eTD - \bTD - \hsize 1mm \dontcomplain - \starthyphenation[traditional] - \getbuffer[sample] - \stophyphenation - \eTD - \bTD - \hsize 1mm \dontcomplain - \starthyphenation[traditional] - \sethyphenationfeatures[demo-1] - \getbuffer[sample] - \stophyphenation - \eTD - \bTD - \hsize 1mm \dontcomplain - \starthyphenation[traditional] - \sethyphenationfeatures[demo-2] - \getbuffer[sample] - \stophyphenation - \eTD - \eTR -\eTABLE -\stoplinecorrection - -\stopsection - -\startsection[title=Special characters] - -The \type {characters} example can be used (to some extend) to do the -same as the breakpoints mechanism (compounds). - -\startbuffer -\definehyphenationfeatures - [demo-3] - [characters={()[]}] -\stopbuffer - -\typebuffer \blank \getbuffer \blank - -\startbuffer[demo] -\starthyphenation[traditional] - \sethyphenationfeatures[demo-3] - \dontcomplain - \hsize 1mm - we use (super)special(ized) patterns -\stophyphenation -\stopbuffer - -\typebuffer[demo] \blank \getbuffer[demo] \blank - -We can make this more clever by adding patterns: - -\startbuffer -\registerhyphenationpattern[en][)9] -\registerhyphenationpattern[en][9(] -\stopbuffer - -\typebuffer \blank \getbuffer \blank - -This gives: - -\blank \getbuffer[demo] \blank - -A detailed trace shows that these patterns get applied: - -\starthyphenation[traditional] - \ttx - \showhyphenationtrace[en][(super)special(ized)] -\stophyphenation - -\unregisterhyphenationpattern[en][)9] -\unregisterhyphenationpattern[en][9(] - -The somewhat weird hyphens at the edges will in practice not show up because -there is always one regular character there. - -\stopsection - -\startsection[title=Counting] - -There is not much you can do about patterns. It's a craft to make them and so -they are shipped with the distribution. In order to hyphenate well, \TEX\ looks -at some character properties. In \CONTEXT\ only the characters used in the -patterns of a language get tagged as valid in a word. - -The following example illustrates that there can be corner cases. In fact, this -example might render differently depending on the patterns available. First we -define an extra language, based on French. - -\startbuffer -\installlanguage[frf][default=fr,patterns=fr,factor=yes] -\stopbuffer - -\typebuffer \getbuffer - -Here we set the \type {factor} parameter which tells the loader that it should -look at the characters used in a special way: some count for none, and some count -for more than one when determining the min values used to determine if and where -hyphenation is to be applied. - -\startbuffer -\startmixedcolumns[n=3,balance=yes] - \hsize 1mm \dontcomplain - \language[fr] aesop oedipus æsop œdipus \column - \hsize 1mm \dontcomplain - \language[frf] aesop oedipus æsop œdipus \column - \startexceptions æ-sop \stopexceptions - \hsize 1mm \dontcomplain - \language[frf] aesop oedipus æsop œdipus -\stopmixedcolumns -\stopbuffer - -\typebuffer - -We get three (when writing this manual) different columns: - -\getbuffer - -The trick is in the \type {factor}: when set to \type {yes} an \type {æ} is -counted as two characters. Combining marks count as zero but you will not -find them being used as we already resolve them in an earlier stage. - -\startluacode -context.startcolumns { n = 2 } -context.starttabulate { "|Tc|c|c|l|" } -for u, data in table.sortedhash(languages.hjcounts) do - if data.category ~= "combining" then - context.NC() context("%05U",u) - context.NC() context("%c",u) - context.NC() context(data.count) - context.NC() context(data.category) - context.NC() context.NR() - end -end -context.stoptabulate() -context.stopcolumns() -\stopluacode - -It is very unlikely to find an \type {ffi} in the input and even an \type {ij} is -rare. The \type {æ} is marked as character and the \type {œ} a ligatyure in -\UNICODE. Maybe all the characters here are dubious but al least we provide a -way to experiment with them. - -\stopsection - -\startsection[title=Tracing] - -Among the tracing options (low level trackers) there is one for pattern developers: - -\startbuffer -\usemodule[s-languages-hyphenation] - -\startcomparepatterns[de,nl,en,fr] - \input zapf \quad (\showcomparepatternslegend) -\stopcomparepatterns -\stopbuffer - -\typebuffer - -The different hyphenation points are shown with colored bars. Some valid points -might not be shown because the font engine can collapse successive -discretionaries. - -\getbuffer - -\stopsection - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/languages/languages-introduction.tex b/doc/context/sources/general/manuals/languages/languages-introduction.tex deleted file mode 100644 index 25bbb1a90..000000000 --- a/doc/context/sources/general/manuals/languages/languages-introduction.tex +++ /dev/null @@ -1,69 +0,0 @@ -% language=uk - -\startcomponent languages-introduction - -\environment languages-environment - -\startchapter[title=Introduction][color=darkgray] - -This document describes an important property of the \TEX\ typesetting system and -\CONTEXT\ in particular: the ability to deal with different languages at the same -time. With languages we refer to natural languages. So, we're not going to -discuss the \TEX\ language itself, not \METAPOST, nor \LUA. - -The original application of \TEX\ was English that uses the Latin script. The -fonts that came with \TEX\ were suitable for that usage. When lines became too -long they could be hyphenated using so called hyphenation patterns. Due to the -implementation for many years there was a close relationship between fonts and -hyphenation. Although at some point many more languages and scripts were -supported, it was only when the \UNICODE\ aware variants showed up that -hyphenation and fonts were decoupled. This makes it much more easier to mix -languages that use different scripts. Although Greek, Cyrillic, Arabic, Chinese, -Japanese, Korean and other languages have been supported for a while using -(sometimes dirty) tricks, we now have cleaner implementations. - -We can hyphenate words in all languages (and scripts) that have a need for it, -that is, split it at the end of a line and add a symbol before and|/|or after the -break. The way words are broken into parts is called hyphenation and so called -patterns are used to achieve that goal. The way these patterns are constructed -and applied was part of the research related to \TEX\ development. The method -used is also applied in other programs and is probably one of the few popular -ways to deal with hyphenation. There have been ideas about extensions that cover -the demands of certain languages but so far nothing better has shown up. In the -end \TEX\ does a pretty decent job and more advanced tricks don't necessarily -lead to better results. - -Hyphenation is driven by a language number and that's about it. This means that -one cannot claim that \TEX\ in its raw form supports languages, other than that -it can hyphenate and use fonts that provide the glyphs. It's upto a macro package -to wrap this into a mechanism that provides the user an interface. So, when we -speak about language support, hyphenation is only one aspect. Labels, like the -\type {figure} in {\em figure~1.2} need to adapt to the main document language. -When dates are shown they can be language specific. Scientific units and math -function names can also be subjected to translation. Registers and other lists -have to be sorted according to specific rules. Spacing dan differ per language. - -In this manual we will cover some of functionality in \CONTEXT\ \MKIV\ that -relates to languages (and scripts). This manual is a compliment to other manuals, -articles and documentation. Here we mostly focus on the language aspects. Some of -the content (or maybe most) might looks alien and complex to you. This is because -one purpose of this manual is to provide a place to wrap up some aspects of -\CONTEXT. If you're not interested in that, just stick to the more general -manuals that also cover language aspects. - -\startnotabene - This document is still under construction. The functionality discussed here - will stay and more might show up. Of course there are errors, and they're all - mine. The text is not checked for spelling errors. Feel free to let me know - what should get added. -\stopnotabene - -\startlines -Hans Hagen -PRAGMA ADE, Hasselt NL -2013 \emdash\ 2016 -\stoplines - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/languages/languages-labels.tex b/doc/context/sources/general/manuals/languages/languages-labels.tex deleted file mode 100644 index 6c806ab1c..000000000 --- a/doc/context/sources/general/manuals/languages/languages-labels.tex +++ /dev/null @@ -1,141 +0,0 @@ -% language=uk - -\startcomponent languages-labels - -\environment languages-environment - -\startchapter[title=Labels][color=darkcyan] - -\startsection[title=Introduction] - -When we started using \TEX, I naturally started with plain \TEX. But it didn't -take long before we tried \LATEX. Because our documents were in Dutch one of the -first fights with this package was to get rid of the english labels. Because -rather soon we decided to cook up an alternative package, a decent label -mechanism was one of the first things to show up. And as soon as multiple -language typesetting gets into view, such a mechanism becomes one of those -language dependent features. In this chapter the basics will be covered. - -\stopsection - -\startsection[title=Defining labels] - -Before we define a label we need to define a label class. You probably seldom -need that but this is how it's done: - -\startbuffer -\definelabelclass [mylabel] -\stopbuffer - -\typebuffer \getbuffer - -There are some classes predefined: - -\starttabulate[|lB|l|] - \NC head \NC (complete) titles like \headtext {chapter} and \headtext {figure} \NC \NR - \NC label \NC in||text labels like \labeltext {chapter} and \labeltext {figure} \NC \NR - \NC mathlabel \NC function names like \mathlabeltext{sin} and \mathlabeltext{cos} \NC \NR - \NC taglabel \NC labels used for tagging purposed in the backend \NC \NR - \NC btxlabel \NC labels used in typesetting bibliographic items \NC \NR -\stoptabulate - -The physical units mechanism also uses labels: unit, operator, prefix and suffix. -All these labels are defined per language with a fall back on english. - -Given that we have defined class \type {mylabel}, a label itself is set like -this: - -\startbuffer -\setupmylabeltext - [en] - [first={<after first}, - second={{before second>},{<after second}}] -\stopbuffer - -\typebuffer \getbuffer - -The first argument (the language) is optional. In the next section we will see -how these labels are used. A lot of labels are predefined, in \MKIV\ this happens -in the file \type {lang-txt.lua}. There is no need to adapt this file as you can -always add labels run time. - -\stopsection - -\startsection[title=Using labels] - -How a label is called depends on the way it needs to be used. In any case the -main language set determines the language of the label. So, when in an Dutch text -we temporary switch to German, the Dutch labels are used. - -\startbuffer -\starttabulate[||||] - \NC \bf command \NC \ttbf first \NC \ttbf {second} \NC \NR - \HL - \NC \type {\leftmylabeltext {tag}} \NC \leftmylabeltext {first} \NC \leftmylabeltext {second} \NC \NR - \NC \type {\rightmylabeltext{tag}} \NC \rightmylabeltext{first} \NC \rightmylabeltext{second} \NC \NR - \NC \type {\mylabeltext {tag}} \NC \mylabeltext {first} \NC \mylabeltext {second} \NC \NR - \NC \type {\mylabeltexts {tag}{text}} \NC \mylabeltexts {first}{text} \NC \mylabeltexts {second}{text} \NC \NR -\stoptabulate -\stopbuffer - -\getbuffer - -\stopsection - -\startsection[title=Hooks] - -Some mechanisms have label support built in, most noticeably sections -heads and numbered items, like figure captions. - -\startbuffer -\definehead - [myhead] - [subsection] - -\setuphead - [myhead] - [bodypartlabel=bodypartmyhead] - -\setuplabeltext - [en] - [bodypartmyhead=My Head: ] - -\myhead{Welcome} -\stopbuffer - -\typebuffer \getbuffer - -The head text label class can be used as follows: - -\startbuffer -\setupheadtext - [SomeHead=Just A Title] - -\subsection - [title=\headtext{SomeHead}] -\stopbuffer - -\typebuffer \getbuffer - -A label will obey the style settings, as in: - -\startbuffer -\definehead - [MyFancyHead] - [subsection] - [style={\bs\setcharactercasing[Words]}] - -\setupheadtext - [SomeHead=just another title] - -\MyFancyHead - [title=\headtext{SomeHead}] -\stopbuffer - -\typebuffer \getbuffer - -\stopsection - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/languages/languages-mkiv.tex b/doc/context/sources/general/manuals/languages/languages-mkiv.tex deleted file mode 100644 index 98ca84814..000000000 --- a/doc/context/sources/general/manuals/languages/languages-mkiv.tex +++ /dev/null @@ -1,61 +0,0 @@ -% language=uk - -% 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. - -\enablemode[simple] % ,oversized - -\startbuffer[abstract] - - This book explains how we support languages (and scripts) in \CONTEXT\ \MKIV\ - and \LUATEX. Some of the mechanisms discussed are generic and not \CONTEXT\ - specific. We discuss the way languages are dealt with in the engine, - hyphenation, standard features and additional goodies. Tracing and the - extensibility of code are also discussed. - -\stopbuffer - -\environment languages-environment - -\startdocument - [author=Hans Hagen, - title=Languages in \ConTeXt, - subtitle=explaining luatex and mkiv, - affiliation=PRAGMA ADE, - comment=work in progress, - cover:color:1=darkmagenta, - cover:color:2=darkorange, - cover:color:3=darkyellow, - cover:color:4=darkcyan, - cover:color:5=darkgray] - - \startfrontmatter - \component manuals-explaining-contents - \component languages-introduction - \stopfrontmatter - - \startbodymatter - \component languages-basics - \component languages-hyphenation - \component languages-labels - \component languages-numbering - \component languages-typesetting - \component languages-goodies - \component languages-sorting - \stopbodymatter - - \startappendices - \component languages-appendix - \stopappendices - -\stopdocument diff --git a/doc/context/sources/general/manuals/languages/languages-numbering.tex b/doc/context/sources/general/manuals/languages/languages-numbering.tex deleted file mode 100644 index 3464826df..000000000 --- a/doc/context/sources/general/manuals/languages/languages-numbering.tex +++ /dev/null @@ -1,307 +0,0 @@ -% language=uk - -\startcomponent languages-numbering - -\environment languages-environment - -\startchapter[title=Numbering][color=darkgreen] - -\startsection[title=Introduction] - -Numbering is complex and in \CONTEXT\ it's not easy either. This is because we -not only have 1, 2, 3 \unknown\ but also sub numbers like 1a, 1b, 1ic \unknown\ -or 1.a, 1.b, 1.c \unknown\ There can be many levels, different separators, final -symbols. As we're talking languages we only discuss conversion here: the -mechanism that turns a number in for instance a letter. It happens that the -mapping from a number onto a letter is language dependent. The next lines show -how English, Spanish and Slovenian numbers: - -\blank -\startpacked -\startcolor[maincolor] -\dontleavehmode - {\ttbf\mainlanguage[en]\dorecurse{28} - {\hbox to 1.5em{\convertnumber{alphabetic}{#1}\hss}}}\par -\dontleavehmode - {\ttbf\mainlanguage[es]\dorecurse{28} - {\hbox to 1.5em{\convertnumber{alphabetic}{#1}\hss}}}\par -\dontleavehmode - {\ttbf\mainlanguage[sl]\dorecurse{28} - {\hbox to 1.5em{\convertnumber{alphabetic}{#1}\hss}}}\par -\stopcolor -\stoppacked -\blank - -You convert a number into a letter with: - -\starttyping -\convertnumber{alphabetic}{15} -\stoptyping - -There is also \type {\uconvertnumber} which does not expand unless typesetting -is going on. Normally you don't need to bother about this. - -The \type {alphabetic} converter adapts to the current main language. When a -language has no special alphabet, the regular 26 characters are used. - -A converter can also convert to a roman numeral, a language specific ordered -list, a day or month, an ordinal string and again there can be a language -specific conversion. The general conversion macro takes a conversion name and -a number. When a conversion can be set (for instance in an itemized list, or in -section numbering) you can use these names. You can define additional -converters if needed, as long as the converter can handle a number. - -\starttyping -\defineconversion [alphabetic] [\alphabeticnumerals] -\stoptyping - -Here \type {\alphabeticnumerals} is a converter. If you look into the source of -\CONTEXT\ you will see that many converters are calling out to \LUA, where we -have implemented those specific conversions. The following table has long and -short names. The short one are historic. - -\starttabulate -\FL -\NC month \NC \type {\monthlong} \NC \NR -\NC month:mnem \NC \type {\monthshort} \NC \NR -\ML -\NC character \NC \type {\character} \NC \NR -\NC Character \NC \type {\Character} \NC \NR -\NC characters \NC \type {\characters} \NC \NR -\NC Characters \NC \type {\Characters} \NC \NR -\ML -\NC AK \NC \type {\smallcappedcharacters} \NC \NR -\NC KA \NC \type {\smallcappedcharacters} \NC \NR -\ML -\NC alphabetic a \NC \type {\alphabeticnumerals} \NC \NR -\NC Alphabetic A \NC \type {\Alphabeticnumerals} \NC \NR -\ML -\NC number numbers n \NC \type {\numbers} \NC \NR -\NC Numbers N \NC \type {\Numbers} \NC \NR -\NC mediaeval m \NC \type {\mediaeval} \NC \NR -\ML -\NC word words \NC \type {\verbosenumber} \NC \NR -\NC Word Words \NC \type {\VerboseNumber} \NC \NR -\ML -\NC ordinal \NC \type {\ordinalnumber} \NC \NR -\NC Ordinal \NC \type {\Ordinalnumber} \NC \NR -\ML -\NC romannumerals i r \NC \type {\romannumerals} \NC \NR -\NC Romannumerals I R \NC \type {\Romannumerals} \NC \NR -\ML -\NC o \NC \type {\oldstylenumerals} \NC \NR -\NC O \NC \type {\oldstylenumerals} \NC \NR -\NC or \NC \type {\oldstyleromannumerals} \NC \NR -\ML -\NC KR \NC \type {\smallcappedromannumerals} \NC \NR -\NC RK \NC \type {\smallcappedromannumerals} \NC \NR -\ML -\NC greek g \NC \type {\greeknumerals} \NC \NR -\NC Greek G \NC \type {\Greeknumerals} \NC \NR -\NC mathgreek \NC \type {\mathgreek} \NC \NR -\ML -\NC abjadnumerals \NC \type {\abjadnumerals} \NC \NR -\NC abjadnodotnumerals \NC \type {\abjadnodotnumerals} \NC \NR -\NC abjadnaivenumerals \NC \type {\abjadnaivenumerals} \NC \NR -\ML -\NC thainumerals \NC \type {\thainumerals} \NC \NR -\NC devanagarinumerals \NC \type {\devanagarinumerals} \NC \NR -\NC gurmurkhinumerals \NC \type {\gurmurkhinumerals} \NC \NR -\NC gujaratinumerals \NC \type {\gujaratinumerals} \NC \NR -\NC tibetannumerals \NC \type {\tibetannumerals} \NC \NR -\NC greeknumerals \NC \type {\greeknumerals} \NC \NR -\NC Greeknumerals \NC \type {\Greeknumerals} \NC \NR -\NC arabicnumerals \NC \type {\arabicnumerals} \NC \NR -\NC persiannumerals \NC \type {\persiannumerals} \NC \NR -\NC arabicexnumerals \NC \type {\arabicexnumerals} \NC \NR -\NC arabicdecimals \NC \type {\arabicdecimals} \NC \NR -\NC persiandecimals \NC \type {\persiandecimals} \NC \NR -\ML -\NC koreannumerals kr \NC \type {\koreannumerals} \NC \NR -\NC koreanparenthesisnumerals kr-p \NC \type {\koreanparenthesisnumerals} \NC \NR -\NC koreancirclenumerals kr-c \NC \type {\koreancirclenumerals} \NC \NR -\ML -\NC chinesenumerals cn \NC \type {\chinesenumerals} \NC \NR -\NC chinesecapnumerals cn-c \NC \type {\chinesecapnumerals} \NC \NR -\NC chineseallnumerals cn-a \NC \type {\chineseallnumerals} \NC \NR -\ML -\NC sloveniannumerals \NC \type {\sloveniannumerals} \NC \NR -\NC slovenianNumerals \NC \type {\slovenianNumerals} \NC \NR -\ML -\NC spanishnumerals \NC \type {\spanishnumerals} \NC \NR -\NC spanishNumerals \NC \type {\spanishNumerals} \NC \NR -\LR -\stoptabulate - -The \type {alphabetic} and \type {Alphabetic} converters adapt to slovenian and -spanish as do their small capped alternatives. There are more general helpers for it -too: - -\starttyping -\languagecharacters{number} -\languageCharacters{number} -\stoptyping - -Also language related is the \type {\continuednumber} macro. Here we see an -application: - -\startbuffer -1 \continuednumber{1} -1, 2 \continuednumber{2} -1, 2, 3 \continuednumber{3} -\stopbuffer - -\typebuffer - -What renders as: - -\startlines[color=maincolor] -\getbuffer -\stoplines - -Such a macro is typically used in combination with counters ant it just typesets -a label text depending on the valu ebeing non|-|zero. - -\startbuffer -\setuplabeltext[en][continued={and so on}] -1, 2, 3 \continuednumber{3} -1, 2, 3 \convertnumber{continued}{3} -\stopbuffer - -\typebuffer - -This gives: - -\startlines[color=maincolor] -\getbuffer -\stoplines - -In the rare case that you want to check if a conversion is defined you can use - -\starttyping -\doifelseconversiondefined{name}{true}{false} -\stoptyping - -So, - -\startbuffer -\doifelseconversiondefined{characters}{we can convert}{forget about it} -\stopbuffer - -\typebuffer - -Gives: - -\startlines[color=maincolor] -\getbuffer -\stoplines - -There are also some non language related converters that we mention here for -completeness: - -\blank -\type {set 0}: \startcolor[maincolor]\dorecurse{20}{\convertnumber{set 0}{#1} }\stopcolor\par -\type {set 1}: \startcolor[maincolor]\dorecurse{20}{\convertnumber{set 1}{#1} }\stopcolor\par -\type {set 2}: \startcolor[maincolor]\dorecurse{20}{\convertnumber{set 2}{#1} }\stopcolor\par -\type {set 3}: \startcolor[maincolor]\dorecurse{20}{\convertnumber{set 3}{#1} }\stopcolor\par -\blank - -When a set overruns we start again at the first element. - -The ordinal converter produces output like \color [maincolor] {\convertnumber -{ordinal}{123}} and \color [maincolor] {\convertnumber {ordinal}{654}}. The -corresponding string renderer is \type {\highordinalstr}. - -% quite limited currently op not documented here: -% -% \wordtonumber{two}{3} -% \wordtonumber{fivethousand}{unknown} - -\stopsection - -\startsection[title=Dates] - -Dates are also language dependent. The following macros take a number and return -the name of the month or day. - -\starttabulate -\NC \type {\monthlong } \NC \monthlong {10} \NC \NR -\NC \type {\monthshort} \NC \monthshort{10} \NC \NR -\NC \type {\MONTH } \NC \MONTH {10} \NC \NR -\NC \type {\MONTHLONG } \NC \MONTHLONG {10} \NC \NR -\NC \type {\MONTHSHORT} \NC \MONTHSHORT{10} \NC \NR -\NC \type {\weekday } \NC \weekday {5} \NC \NR -\NC \type {\WEEKDAY } \NC \WEEKDAY {5} \NC \NR -\stoptabulate - -The current date can be typeset with \type {\currentdate} and a -specific date with \type {\date}, for instance: - -\startbuffer -\currentdate[weekday,day,month,year] -\currentdate[WEEKDAY,day,MONTH,year] -\date[d=12,m=12,y=1998][weekday] -\date[d=12,m=12,y=1998] -\stopbuffer - -\typebuffer - -\startlines[color=maincolor] -\getbuffer -\stoplines - -Possible elements of the specification are: - -\starttabulate -\FL -\NC + ord \NC ordinal suffix \NC \NR -\NC ++ highord \NC high ordinal suffix \NC \NR -\ML -\NC mnem: \NC mnemonic prefix \NC \NR -\ML -\NC Y y year \NC year 4 digits \NC \NR -\NC yy \NC year 2 digits \NC \NR -\ML -\NC M \NC month 1 or 2 digits \NC \NR -\NC mm \NC month 2 digits \NC \NR -\ML -\NC D \NC day 1 or 2 digits \NC \NR -\NC dd \NC day 2 digits \NC \NR -\ML -\NC W \NC 1 digit \NC \NR -\ML -\NC month m \NC language dependent (can be mnemonic) \NC \NR -\NC day d \NC language dependent \NC \NR -\NC weekday w \NC language dependent \NC \NR -\ML -\NC MONTH \NC month uppercased \NC \NR -\NC WEEKDAY \NC weekday uppercased \NC \NR -\ML -\NC referral \NC YYYMMDD \NC \NR -\ML -\NC space \\ \NC space \NC \NR -\NC <word> \NC word \NC \NR -\LL -\stoptabulate - -There are also some converters built in (more can be added), for instance: - -\startbuffer -The current {\em gregorian} date \currentdate [month, day, {, }, year] is -in {\em jalali} \currentdate [jalali:to, month, day, {, }, year] but we -can also as a specific one, so {\em jalali} \date [y=1395, m=4, d=18] -[month, day, {, }, year] is {\em gregorian} \date [y=1395, m=4, d=18] -[jalali:from, month, day, {, }, year]. -\stopbuffer - -\typebuffer \startnarrower \getbuffer \stopnarrower - -\stopsection - -% \startsection[title=Counters] -% -% \stopsection - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/languages/languages-sorting.tex b/doc/context/sources/general/manuals/languages/languages-sorting.tex deleted file mode 100644 index ce24f385c..000000000 --- a/doc/context/sources/general/manuals/languages/languages-sorting.tex +++ /dev/null @@ -1,235 +0,0 @@ -% language=uk - -\startcomponent languages-sorting - -\environment languages-environment - -\startchapter[title=Sorting][color=darkblue] - -\startsection[title=Introduction] - -Sorting is complex, not so much for English, Dutch, German, etc. only texts but -there are languages and scripts that are more demanding. There are several -complications: - -\startitemize - - \startitem - There can be characters that have accents, like à, á, â, ã, ä - \unknown\ that have a base shape a and in an index these often end up - close to each other. The order can differ per language. - \stopitem - - \startitem - There are upper and lowercase words and there can be different - expectations to them being mixed or separated. - \stopitem - \startitem - Some scripts have characters that are combinations, like Æ, and - one might want to see them as one character or two, in which the - second one obeys the sorting order. The shape can dominate here. - \stopitem - \startitem - Some scripts, like Japanese, are a combination of several scripts - and sorting then depends on normalization. - \stopitem - \startitem - When there are many glyphs, like in Chinese, the order can depend - on the complexity of the glyph and when we're lucky that order is - reflected in the numeric character order. - \stopitem -\stopitemize - -Often the rules are somewhat strict and one can doubt of the same rules would -have been imposed if computers had been developed earlier. Given discussions one -can doubt if the rules are really consistent or just there because someone (or a -group) with influence set the standard (not so much different from grammar). So, -if we deal with sorting, we do that in such a way that users can (to some extend) -influence the outcome. After all, one important aspect of typesetting and -organizing content is that the users gets the feeling of control and a diversion -from a standard can be part of that. The reader will often not notice these -details. In the next sections we will explore the way sorting is done in -\CONTEXT. The method evolved over a few decades. In \MKII\ sorting happened -between runs and it was just part of the processing of a document that users -never really saw in action. Sorting just happened and few users will have noticed -that we moved from a \MODULA\ program to a \PERL\ script and ended up with a -\RUBY\ script. In fact, there is a \LUA\ replacement but it never got tested well -because we moved in to \MKIV. There all happens inside the engine using \LUA. -Some principles stayed the same but we are more flexible now. - -\stopsection - -\startsection[title=How it works] - -How does sorting work out? Take these words: - -\startlines -abracadabra -abräcàdábra -àbracádabrä -ábracadàbra -äbrácadabrà -\stoplines - -As long as they end up in an order where the reader can find it, we're okay. -After all we're pretty good in pattern recognition. - -There are probably many ways to implement a sorter but the one we uses is more or -less a follow up on the one we had for over a decade and was the result of an -evolution based on user demand. It boils down to cleaning up the string in such a -way that it can be split into meaningful characters. One can argue that we should -use some kd of standardized sorting method but the problem is that we always have -to deal with for instance embedded tex commands and mixed content, for instance -numbers. And users using the same language can have different opinions about the -rules too. - -A word (or sequence of words) is split into characters. Because there can be -\TEX\ commands in there some cleanup happens beforehand. After that we create -several lists with numbers that will be compared when sorting two entries. - -\startluacode - --- local ignoredoffset = sorters.constants.ignoredoffset --- local replacementoffset = sorters.constants.replacementoffset --- local digitsoffset = sorters.constants.digitsoffset --- local digitsmaximum = sorters.constants.digitsmaximum - -local context = context - -local utfchar = utf.char -local utfyte = utf.byte -local concat = table.concat -local gsub = string.gsub -local formatters = string.formatters - -local f_char = formatters["%s"] -local f_byte = formatters["x%02X"] - -local meaning = { - ch = "raw character", - mm = "minus mapping", - zm = "zero mapping", - pm = "plus mapping", - mc = "lowercase - 1", - zc = "lowercase", - pc = "lowercase + 1", - uc = "unicode", -} - -local function show(s,key,bodyfont) - local c = s[key] - local t = { } - for i=1,#c do - local ci = c[i] - if type(ci) == "string" then - t[i] = f_char(ci) - else - t[i] = f_byte(ci) - end - end - t = concat(t,"~") - context.NC() context.maincolor() context(key) - context.NC() context.maincolor() context(meaning[key]) - context.NC() if bodyfont then context.switchtobodyfont{bodyfont} end context(t) - context.NC() context.NR() -end - -function document.ShowSortSplit(str,language,bodyfont) - sorters.setlanguage(language or "en") - local s = sorters.splitters.utf(str) - context.starttabulate{ "|Tl|Tlj2|Tp|" } - context.FL() - context.NC() - context.NC() context.maincolor() context(language) - context.NC() if bodyfont then context.switchtobodyfont{bodyfont} end context.maincolor() context(str) - context.NC() context.NR() - context.ML() - show(s,"ch",bodyfont) - show(s,"uc") - show(s,"zc") - show(s,"mc") - show(s,"pc") - show(s,"zm") - show(s,"mm") - show(s,"pm") - context.LL() - context.stoptabulate() -end - -\stopluacode - -We can best demonstrate this with a few examples. As usual an English language -example is trivial. - -\ctxlua{document.ShowSortSplit("abracadabra","en")} - -When we add an uppercase character we get a slightly different outcome: - -\ctxlua{document.ShowSortSplit("Abracadabra","en")} - -Some characters will be split, like \type {æ}: - -\ctxlua{document.ShowSortSplit("æsop","en")} - -It gets more complex when langiage specific demands kick in. Compare an English, German -and Austrian split: - -\ctxlua{document.ShowSortSplit("Abräcàdábra","en")} -\ctxlua{document.ShowSortSplit("Abräcàdábra","de")} -\ctxlua{document.ShowSortSplit("Abräcàdábra","de-at")} - -The way a character gets replaced, like \type {ä} into \type {ae}, is defined in -\type {sort-lan.lua} using \LUA\ tables. We will not explain all the obscure -details here; most of the work is already done, so users are not bothered by -these definitions. And new ones can often be made by copying and adapting an -existing one. - -The sorting itself is specified by a sequence: - -\starttabulate[|TlCT{maincolor}|Tl|] -\NC default \NC zc,pc,zm,pm,uc \NC \NR -\NC before \NC mm,mc,uc \NC \NR -\NC after \NC pm,mc,uc \NC \NR -\NC first \NC pc,mm,uc \NC \NR -\NC last \NC mc,mm,uc \NC \NR -\stoptabulate - -The raw character is what we get after the (language specific) replacement has -been applied and the unicodes are used when comparing. Lowercasing is done using -the \UNICODE\ lowercase code, but one can define language specific ones too. The -plus and minus variants can be used to force lowercase before or after uppercase. -The mapping is based on an alphabet specification so this can differ per language -and again we also provide plus and minus values that depend on case. When a -character has no case we use shapes instead. For instance, the shape of \type -{à} is \type {a}. Digits are treated special and currently get an offset so that -they end up last in the sort order. - -\defineregister[jindex] - -\startbuffer -ぱあ \jindex{ぱあ} -ぱー \jindex{ぱー} -ぱぁ \jindex{ぱぁ} -\stopbuffer - -{\switchtobodyfont[ipaex]\startlines\typebuffer\stoplines} - -This three entry index\jindex{ぱあ}\jindex{ぱー}\jindex{ぱぁ} should be sorted in the order: -{\switchtobodyfont[ipaex]\ruledhbox{ぱー}\enspace\ruledhbox{ぱぁ}\enspace\ruledhbox{ぱあ}}. - -{\mainlanguage[jp]\switchtobodyfont[ipaex]\placeregister[jindex][language=jp,n=1,method=default]} -{\mainlanguage[jp]\switchtobodyfont[ipaex]\placeregister[jindex][language=jp,n=1,method=zm]} - -\ctxlua{document.ShowSortSplit("ぱあ","jp","ipaex")} -\ctxlua{document.ShowSortSplit("ぱー","jp","ipaex")} -\ctxlua{document.ShowSortSplit("ぱぁ","jp","ipaex")} - -{\em To be continued!} - -\stopsection - -% ぱー $\prec$ ぱぁ $\prec$ ぱあ - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/lua/lua-mkiv.tex b/doc/context/sources/general/manuals/lua/lua-mkiv.tex deleted file mode 100644 index 40e885eac..000000000 --- a/doc/context/sources/general/manuals/lua/lua-mkiv.tex +++ /dev/null @@ -1,139 +0,0 @@ -% language=uk - -% 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. - -\usemodule[art-01,abr-02] - -\setupbodyfont - [10pt] - -\definecolor - [maincolor] - [b=.4] - -\usesymbols - [cc] - -\setuptype - [color=maincolor] - -\setuptyping - [color=maincolor] - -\definefont - [TitlePageFont] - [file:lmmonolt10-bold.otf] - -\setuphead - [color=maincolor] - -\setupinteraction - [hidden] - -\startdocument - [metadata:author=Hans Hagen, - metadata:title={Lua, the context libraries}, - author=Hans Hagen, - affiliation=PRAGMA ADE, - location=Hasselt NL, - title=Lua, - subtitle=the context libraries, - support=www.contextgarden.net, - website=www.pragma-ade.nl] - -\startMPpage - - StartPage ; - - numeric w ; w := bbwidth(Page) ; - numeric h ; h := bbheight(Page) ; - - fill Page withcolor \MPcolor{maincolor} ; - - draw textext.urt("\TitlePageFont \getvariable{document}{title}") xsized (0.8w) shifted (.1w,.2h) withcolor .80white ; - draw textext.top("\TitlePageFont \getvariable{document}{subtitle}") xsized (0.8w) shifted (.5w,.1h) withcolor .60white ; - - StopPage ; - -\stopMPpage - -\startsubject[title=Contents] - -\placelist[section][alternative=a] - -\stopsubject - -\startsection[title=Introduction] - -Once we started the \LUATEX\ project it didn't take long for \CONTEXT\ to use -the \LUA\ language extensively. And so, rather soon, a bunch of libraries -evolved that provided all kind of helpers. Because \LUATEX\ can also act as -a \LUA\ interpreter, and because we have \type {mtxrun} as script runner -we can also use some of those libraries outside \CONTEXT. So, for me, a rather -natural way to run a \LUA\ script is: - -\starttyping -mtxrun --script myscript.lua <optional arguments> -\stoptyping - -The advantage of this approach is that you operate in the same file domain as -your \TEX\ runs as all file locators are preloaded as well. However, in some -cases this is not possible, for instance when you run a stock \LUA\ or some -embedded version. For this we provide an alternative mechanism. - -\stopsection - -\startsection[title=Making libraries] - -In the \CONTEXT\ distribution there is a script called \type {mtxlibs.lua} that -can create a library for you that has the basic general purpose \CONTEXT\ -libraries on board, as well as whatever more you specify. - -\starttyping -lua mtxlibs.lua --selfmerge myproject-a-libs.lua -lua mtxlibs.lua --selfmerge myproject-b-libs.lua \ - trac-lmx -lua mtxlibs.lua --selfmerge myproject-c-libs.lua \ - util-sql util-sql-imp-client util-sql-imp-library -\stoptyping - -Here we create three libs. The first one has only the core libraries. You can -read more about what they provide in the \type {cld-mkiv.pdf} manual. The second -library includes code for creating web pages. The third variant preloads \SQL\ -support. - -You can best run this file in its own directory, in the \CONTEXT\ tree, so that -it knows where to find the libraries needed. Of course you can put the result -everywhere you want, preferably alongside your normal scripts. As we merge code, -this is a rather good way to prevent compatibility issues. After all, some of -the code might get improved. - -You can \type {require("mtxlibs")} directly in which case it will load the core -libraries runtime. Of course this means that \LUA\ should be able to figure out -where it can find them. - -\stopsection - -\startsubject[title={Colofon}] - -\starttabulate[|B|p|] -\NC author \NC \getvariable{document}{author}, \getvariable{document}{affiliation}, \getvariable{document}{location} \NC \NR -\NC version \NC \currentdate \NC \NR -\NC website \NC \getvariable{document}{website} \endash\ \getvariable{document}{support} \NC \NR -\NC copyright \NC \symbol[cc][cc-by-sa-nc] \NC \NR -\stoptabulate - -\stopsubject - -\stopdocument diff --git a/doc/context/sources/general/manuals/luatex/luatex-contents.tex b/doc/context/sources/general/manuals/luatex/luatex-contents.tex deleted file mode 100644 index 6d06b3ef0..000000000 --- a/doc/context/sources/general/manuals/luatex/luatex-contents.tex +++ /dev/null @@ -1,20 +0,0 @@ -\environment luatex-style -\environment luatex-logos - -\startcomponent luatex-contents - -\starttitle[title=Contents] - -\start - - \definecolor[maincolor][black] - - \placelist - [chapter,section,subsection] - [criterium=text] - -\stop - -\stoptitle - -\stopcomponent diff --git a/doc/context/sources/general/manuals/luatex/luatex-enhancements.tex b/doc/context/sources/general/manuals/luatex/luatex-enhancements.tex deleted file mode 100644 index d55eef286..000000000 --- a/doc/context/sources/general/manuals/luatex/luatex-enhancements.tex +++ /dev/null @@ -1,892 +0,0 @@ -% language=uk - -\environment luatex-style -\environment luatex-logos - -\startcomponent luatex-enhancements - -\startchapter[reference=enhancements,title={Basic \TEX\ enhancements}] - -\section{Introduction} - -From day one, \LUATEX\ has offered extra features compared to the superset of -\PDFTEX\ and \ALEPH. This has not been limited to the possibility to execute -\LUA\ code via \type {\directlua}, but \LUATEX\ also adds functionality via new -\TEX|-|side primitives or extensions to existing ones. - -When \LUATEX\ starts up in \quote {iniluatex} mode (\type {luatex -ini}), it -defines only the primitive commands known by \TEX82 and the one extra command -\type {\directlua}. As is fitting, a \LUA\ function has to be called to add the -extra primitives to the user environment. The simplest method to get access to -all of the new primitive commands is by adding this line to the format generation -file: - -\starttyping -\directlua { tex.enableprimitives('',tex.extraprimitives()) } -\stoptyping - -But be aware that the curly braces may not have the proper \type {\catcode} -assigned to them at this early time (giving a \quote {Missing number} error), so -it may be needed to put these assignments before the above line: - -\starttyping -\catcode `\{=1 -\catcode `\}=2 -\stoptyping - -More fine|-|grained primitives control is possible and you can look up the -details in \in {section} [luaprimitives]. For simplicity's sake, this manual -assumes that you have executed the \type {\directlua} command as given above. - -The startup behaviour documented above is considered stable in the sense that -there will not be backward|-|incompatible changes any more. We have promoted some -rather generic \PDFTEX\ primitives to core \LUATEX\ ones, and the ones inherited -frome \ALEPH\ (\OMEGA) are also promoted. Effectively this means that we now only -have the \type {tex}, \type {etex} and \type {luatex} sets left. - -In \in {Chapter} [modifications] we discuss several primitives that are derived -from \PDFTEX\ and \ALEPH\ (\OMEGA). Here we stick to real new ones. In the -chapters on fonts and math we discuss a few more new ones. - -\section{Version information} - -\subsection {\type {\luatexbanner}, \type {\luatexversion} and \type {\luatexrevision}} - -There are three new primitives to test the version of \LUATEX: - -\starttabulate[|l|pl|pl|] -\NC \bf primitive \NC \bf explanation \NC \bf value \NC \NR -\NC \type {\luatexbanner} \NC the banner reported on the command line \NC \luatexbanner \NC \NR -\NC \type {\luatexversion} \NC a combination of major and minor number \NC \the\luatexversion \NC \NR -\NC \type {\luatexrevision} \NC the revision number, the current value is \NC \luatexrevision \NC \NR -\stoptabulate - -The official \LUATEX\ version is defined as follows: - -\startitemize -\startitem - The major version is the integer result of \type {\luatexversion} divided by - 100. The primitive is an \quote {internal variable}, so you may need to prefix - its use with \type {\the} depending on the context. -\stopitem -\startitem - The minor version is the two-digit result of \type {\luatexversion} modulo 100. -\stopitem -\startitem - The revision is the given by \type {\luatexrevision}. This primitive expands to - a positive integer. -\stopitem -\startitem - The full version number consists of the major version, minor version and - revision, separated by dots. -\stopitem -\stopitemize - -\subsection{\type {\formatname}} - -The \type {\formatname} syntax is identical to \type {\jobname}. In \INITEX, the -expansion is empty. Otherwise, the expansion is the value that \type {\jobname} had -during the \INITEX\ run that dumped the currently loaded format. You can use this -token list to provide your own version info. - -\section{\UNICODE\ text support} - -\subsection {Extended ranges} - -Text input and output is now considered to be \UNICODE\ text, so input characters -can use the full range of \UNICODE\ ($2^{20}+2^{16}-1 = \hbox{0x10FFFF}$). Later -chapters will talk of characters and glyphs. Although these are not -interchangeable, they are closely related. During typesetting, a character is -always converted to a suitable graphic representation of that character in a -specific font. However, while processing a list of to|-|be|-|typeset nodes, its -contents may still be seen as a character. Inside \LUATEX\ there is no clear -separation between the two concepts. Because the subtype of a glyph node can be -changed in \LUA\ it is up to the user: subtypes larger than 255 indicate that -font processing has happened. - -A few primitives are affected by this, all in a similar fashion: each of them has -to accommodate for a larger range of acceptable numbers. For instance, \type -{\char} now accepts values between~0 and $1{,}114{,}111$. This should not be a -problem for well|-|behaved input files, but it could create incompatibilities for -input that would have generated an error when processed by older \TEX|-|based -engines. The affected commands with an altered initial (left of the equals sign) -or secondary (right of the equals sign) value are: \type {\char}, \type -{\lccode}, \type {\uccode}, \type {\catcode}, \type {\sfcode}, \type {\efcode}, -\type {\lpcode}, \type {\rpcode}, \type {\chardef}. - -As far as the core engine is concerned, all input and output to text files is -\UTF-8 encoded. Input files can be pre|-|processed using the \type {reader} -callback. This will be explained in a later chapter. - -Output in byte|-|sized chunks can be achieved by using characters just outside of -the valid \UNICODE\ range, starting at the value $1{,}114{,}112$ (0x110000). When -the time comes to print a character $c>=1{,}114{,}112$, \LUATEX\ will actually -print the single byte corresponding to $c$ minus 1{,}114{,}112. - -Output to the terminal uses \type {^^} notation for the lower control range -($c<32$), with the exception of \type {^^I}, \type {^^J} and \type {^^M}. These -are considered \quote {safe} and therefore printed as|-|is. You can disable -escaping with \type {texio.setescape(false)} in which case you get the normal -characters on the console. - -Normalization of the \UNICODE\ input can be handled by a macro package during -callback processing (this will be explained in \in {section} [iocallback]). - -\subsection{\type {\Uchar}} - -The expandable command \type {\Uchar} reads a number between~0 and $1{,}114{,}111$ -and expands to the associated \UNICODE\ character. - -\section{Extended tables} - -All traditional \TEX\ and \ETEX\ registers can be 16-bit numbers. The affected -commands are: - -\startfourcolumns -\starttyping -\count -\dimen -\skip -\muskip -\marks -\toks -\countdef -\dimendef -\skipdef -\muskipdef -\toksdef -\insert -\box -\unhbox -\unvbox -\copy -\unhcopy -\unvcopy -\wd -\ht -\dp -\setbox -\vsplit -\stoptyping -\stopfourcolumns - -Because font memory management has been rewritten, character properties in fonts -are no longer shared among fonts instances that originate from the same metric -file. - -\section{Attributes} - -\subsection{Attribute registers} - -Attributes are a completely new concept in \LUATEX. Syntactically, they behave a -lot like counters: attributes obey \TEX's nesting stack and can be used after -\type {\the} etc.\ just like the normal \type {\count} registers. - -\startsyntax -\attribute <16-bit number> <optional equals> <32-bit number>!crlf -\attributedef <csname> <optional equals> <16-bit number> -\stopsyntax - -Conceptually, an attribute is either \quote {set} or \quote {unset}. Unset -attributes have a special negative value to indicate that they are unset, that -value is the lowest legal value: \type {-"7FFFFFFF} in hexadecimal, a.k.a. -$-2147483647$ in decimal. It follows that the value \type {-"7FFFFFFF} cannot be -used as a legal attribute value, but you {\it can\/} assign \type {-"7FFFFFFF} to -\quote {unset} an attribute. All attributes start out in this \quote {unset} -state in \INITEX. - -Attributes can be used as extra counter values, but their usefulness comes mostly -from the fact that the numbers and values of all \quote {set} attributes are -attached to all nodes created in their scope. These can then be queried from any -\LUA\ code that deals with node processing. Further information about how to use -attributes for node list processing from \LUA\ is given in~\in {chapter}[nodes]. - -Attributes are stored in a sorted (sparse) linked list that are shared when -possible. This permits efficient testing and updating. - -\subsection{Box attributes} - -Nodes typically receive the list of attributes that is in effect when they are -created. This moment can be quite asynchronous. For example: in paragraph -building, the individual line boxes are created after the \type {\par} command has -been processed, so they will receive the list of attributes that is in effect -then, not the attributes that were in effect in, say, the first or third line of -the paragraph. - -Similar situations happen in \LUATEX\ regularly. A few of the more obvious -problematic cases are dealt with: the attributes for nodes that are created -during hyphenation, kerning and ligaturing borrow their attributes from their -surrounding glyphs, and it is possible to influence box attributes directly. - -When you assemble a box in a register, the attributes of the nodes contained in -the box are unchanged when such a box is placed, unboxed, or copied. In this -respect attributes act the same as characters that have been converted to -references to glyphs in fonts. For instance, when you use attributes to implement -color support, each node carries information about its eventual color. In that -case, unless you implement mechanisms that deal with it, applying a color to -already boxed material will have no effect. Keep in mind that this -incompatibility is mostly due to the fact that separate specials and literals are -a more unnatural approach to colors than attributes. - -It is possible to fine-tune the list of attributes that are applied to a \type -{hbox}, \type {vbox} or \type {vtop} by the use of the keyword \type {attr}. An -example: - -\starttyping -\attribute2=5 -\setbox0=\hbox {Hello} -\setbox2=\hbox attr1=12 attr2=-"7FFFFFFF{Hello} -\stoptyping - -This will set the attribute list of box~2 to $1=12$, and the attributes of box~0 -will be $2=5$. As you can see, assigning the maximum negative value causes an -attribute to be ignored. - -The \type {attr} keyword(s) should come before a \type {to} or \type {spread}, if -that is also specified. - -\section{\LUA\ related primitives} - -\subsection{\type {\directlua}} - -In order to merge \LUA\ code with \TEX\ input, a few new primitives are needed. -The primitive \type {\directlua} is used to execute \LUA\ code immediately. The -syntax is - -\startsyntax -\directlua <general text>!crlf -\directlua <16-bit number> <general text> -\stopsyntax - -The \syntax {<general text>} is expanded fully, and then fed into the \LUA\ -interpreter. After reading and expansion has been applied to the \syntax -{<general text>}, the resulting token list is converted to a string as if it was -displayed using \type {\the\toks}. On the \LUA\ side, each \type {\directlua} -block is treated as a separate chunk. In such a chunk you can use the \type -{local} directive to keep your variables from interfering with those used by the -macro package. - -The conversion to and from a token list means that you normally can not use \LUA\ -line comments (starting with \type {--}) within the argument. As there typically -will be only one \quote {line} the first line comment will run on until the end -of the input. You will either need to use \TEX|-|style line comments (starting -with \%), or change the \TEX\ category codes locally. Another possibility is to -say: - -\starttyping -\begingroup -\endlinechar=10 -\directlua ... -\endgroup -\stoptyping - -Then \LUA\ line comments can be used, since \TEX\ does not replace line endings -with spaces. - -Likewise, the \syntax {<16-bit number>} designates a name of a \LUA\ chunk and is -taken from the \type {lua.name} array (see the documentation of the \type {lua} -table further in this manual). When a chunk name starts with a \type {@} it will -be displayed as a file name. This is a side effect of the way \LUA\ implements -error handling. - -The \type {\directlua} command is expandable. Since it passes \LUA\ code to the -\LUA\ interpreter its expansion from the \TEX\ viewpoint is usually empty. -However, there are some \LUA\ functions that produce material to be read by \TEX, -the so called print functions. The most simple use of these is \type -{tex.print(<string> s)}. The characters of the string \type {s} will be placed on -the \TEX\ input buffer, that is, \quote {before \TEX's eyes} to be read by \TEX\ -immediately. For example: - -\startbuffer -\count10=20 -a\directlua{tex.print(tex.count[10]+5)}b -\stopbuffer - -\typebuffer - -expands to - -\getbuffer - -Here is another example: - -\startbuffer -$\pi = \directlua{tex.print(math.pi)}$ -\stopbuffer - -\typebuffer - -will result in - -\getbuffer - -Note that the expansion of \type {\directlua} is a sequence of characters, not of -tokens, contrary to all \TEX\ commands. So formally speaking its expansion is -null, but it places material on a pseudo-file to be immediately read by \TEX, as -\ETEX's \type {\scantokens}. For a description of print functions look at \in -{section} [sec:luaprint]. - -Because the \syntax {<general text>} is a chunk, the normal \LUA\ error handling -is triggered if there is a problem in the included code. The \LUA\ error messages -should be clear enough, but the contextual information is still pretty bad. -Often, you will only see the line number of the right brace at the end of the -code. - -While on the subject of errors: some of the things you can do inside \LUA\ code -can break up \LUATEX\ pretty bad. If you are not careful while working with the -node list interface, you may even end up with assertion errors from within the -\TEX\ portion of the executable. - -The behaviour documented in the above subsection is considered stable in the sense -that there will not be backward-incompatible changes any more. - -\subsection{\type {\latelua}} - -Contrary to \type {\directlua}, \type {\latelua} stores \LUA\ code in a whatsit -that will be processed at the time of shipping out. Its intended use is a cross -between \PDF\ literals (often available as \type {\pdfliteral}) and the -traditional \TEX\ extension \type {\write}. Within the \LUA\ code you can print -\PDF\ statements directly to the \PDF\ file via \type {pdf.print}, or you can -write to other output streams via \type {texio.write} or simply using \LUA\ \IO\ -routines. - -\startsyntax -\latelua <general text>!crlf -\latelua <16-bit number> <general text> -\stopsyntax - -Expansion of macros in the final \type {<general text>} is delayed until just -before the whatsit is executed (like in \type {\write}). With regard to \PDF\ -output stream \type {\latelua} behaves as \PDF\ page literals. The \syntax -{name <general text>} and \syntax {<16-bit number>} behave in the same way as -they do for \type {\directlua} - -\subsection{\type {\luaescapestring}} - -This primitive converts a \TEX\ token sequence so that it can be safely used as -the contents of a \LUA\ string: embedded backslashes, double and single quotes, -and newlines and carriage returns are escaped. This is done by prepending an -extra token consisting of a backslash with category code~12, and for the line -endings, converting them to \type {n} and \type {r} respectively. The token -sequence is fully expanded. - -\startsyntax -\luaescapestring <general text> -\stopsyntax - -Most often, this command is not actually the best way to deal with the -differences between the \TEX\ and \LUA. In very short bits of \LUA\ -code it is often not needed, and for longer stretches of \LUA\ code it -is easier to keep the code in a separate file and load it using \LUA's -\type {dofile}: - -\starttyping -\directlua { dofile('mysetups.lua') } -\stoptyping - -\subsection{\type {\luafunction}} - -The \type {\directlua} commands involves tokenization of its argument (after -picking up an optional name or number specification). The tokenlist is then -converted into a string and given to \LUA\ to turn into a function that is -called. The overhead is rather small but when you use this primitive hundreds of -thousands of times, it can become noticeable. For this reason there is a variant -call available: \type {\luafunction}. This command is used as follows: - -\starttyping -\directlua { - local t = lua.get_functions_table() - t[1] = function() tex.print("!") end - t[2] = function() tex.print("?") end -} - -\luafunction1 -\luafunction2 -\stoptyping - -Of course the functions can also be defined in a separate file. There is no limit -on the number of functions apart from normal \LUA\ limitations. Of course there -is the limitation of no arguments but that would involve parsing and thereby give -no gain. The function, when called in fact gets one argument, being the index, so -in the following example the number \type {8} gets typeset. - -\starttyping -\directlua { - local t = lua.get_functions_table() - t[8] = function(slot) tex.print(slot) end -} -\stoptyping - -\section {Alignments} - -\subsection{\tex {alignmark}} - -This primitive duplicates the functionality of \type {#} inside alignment -preambles. - -\subsection{\tex {aligntab}} - -This primitive duplicates the functionality of \type {&} inside alignments and -preambles. - -\section{Catcode tables} - -Catcode tables are a new feature that allows you to switch to a predefined -catcode regime in a single statement. You can have a practically unlimited number -of different tables. This subsystem is backward compatible: if you never use the -following commands, your document will not notice any difference in behaviour -compared to traditional \TEX. The contents of each catcode table is independent -from any other catcode tables, and their contents is stored and retrieved from -the format file. - -\subsection{\type {\catcodetable}} - -\startsyntax -\catcodetable <15-bit number> -\stopsyntax - -The primitive \type {\catcodetable} switches to a different catcode table. Such a -table has to be previously created using one of the two primitives below, or it -has to be zero. Table zero is initialized by \INITEX. - -\subsection{\type {\initcatcodetable}} - -\startsyntax -\initcatcodetable <15-bit number> -\stopsyntax - -The primitive \type {\initcatcodetable} creates a new table with catcodes identical -to those defined by \INITEX: - -\starttabulate[|r|l|l|l|] -\NC 0 \NC \tttf \letterbackslash \NC \NC \type {escape} \NC\NR -\NC 5 \NC \tttf \letterhat\letterhat M \NC return \NC \type {car_ret} \NC\NR -\NC 9 \NC \tttf \letterhat\letterhat @ \NC null \NC \type {ignore} \NC\NR -\NC 10 \NC \tttf <space> \NC space \NC \type {spacer} \NC\NR -\NC 11 \NC {\tttf a} \endash\ {\tttf z} \NC \NC \type {letter} \NC\NR -\NC 11 \NC {\tttf A} \endash\ {\tttf Z} \NC \NC \type {letter} \NC\NR -\NC 12 \NC everything else \NC \NC \type {other} \NC\NR -\NC 14 \NC \tttf \letterpercent \NC \NC \type {comment} \NC\NR -\NC 15 \NC \tttf \letterhat\letterhat ? \NC delete \NC \type {invalid_char} \NC\NR -\stoptabulate - -The new catcode table is allocated globally: it will not go away after the -current group has ended. If the supplied number is identical to the currently -active table, an error is raised. - -\subsection{\type {\savecatcodetable}} - -\startsyntax -\savecatcodetable <15-bit number> -\stopsyntax - -\type {\savecatcodetable} copies the current set of catcodes to a new table with -the requested number. The definitions in this new table are all treated as if -they were made in the outermost level. - -The new table is allocated globally: it will not go away after the current group -has ended. If the supplied number is the currently active table, an error is -raised. - -\section{Suppressing errors} - -\subsection{\type {\suppressfontnotfounderror}} - -\startsyntax -\suppressfontnotfounderror = 1 -\stopsyntax - -If this integer parameter is non|-|zero, then \LUATEX\ will not complain about -font metrics that are not found. Instead it will silently skip the font -assignment, making the requested csname for the font \type {\ifx} equal to \type -{\nullfont}, so that it can be tested against that without bothering the user. - -\subsection{\type {\suppresslongerror}} - -\startsyntax -\suppresslongerror = 1 -\stopsyntax - -If this integer parameter is non|-|zero, then \LUATEX\ will not complain about -\type {\par} commands encountered in contexts where that is normally prohibited -(most prominently in the arguments of non-long macros). - -\subsection{\type {\suppressifcsnameerror}} - -\startsyntax -\suppressifcsnameerror = 1 -\stopsyntax - -If this integer parameter is non|-|zero, then \LUATEX\ will not complain about -non-expandable commands appearing in the middle of a \type {\ifcsname} expansion. -Instead, it will keep getting expanded tokens from the input until it encounters -an \type {\endcsname} command. If the input expansion is unbalanced with respect -to \type {\csname} \ldots \type {\endcsname} pairs, the \LUATEX\ process may hang -indefinitely. - -\subsection{\type {\suppressoutererror}} - -\startsyntax -\suppressoutererror = 1 -\stopsyntax - -If this new integer parameter is non|-|zero, then \LUATEX\ will not complain -about \type {\outer} commands encountered in contexts where that is normally -prohibited. - -\subsection{\type {\suppressmathparerror}} - -The following setting will permit \type {\par} tokens in a math formula: - -\startsyntax -\suppressmathparerror = 1 -\stopsyntax - -So, the next code is valid then: - -\starttyping -$ x + 1 = - -a $ -\stoptyping - -\section {Math} - -\subsection{Extensions} - -We will cover math in its own chapter because not only the font subsystem and -spacing model have been enhanced (thereby introducing many new primitives) but -also because some more control has been added to existing functionality. - -\subsection{\type {\matheqnogapstep}} - -By default \TEX\ will add one quad between the equation and the number. This is -hard coded. A new primitive can control this: - -\startsyntax -\matheqnogapstep = 1000 -\stopsyntax - -Because a math quad from the math text font is used instead of a dimension, we -use a step to control the size. A value of zero will suppress the gap. The step -is divided by 1000 which is the usual way to mimmick floating point factors in -\TEX. - -\section{Fonts} - -\subsection{Font syntax} - -\LUATEX\ will accept a braced argument as a font name: - -\starttyping -\font\myfont = {cmr10} -\stoptyping - -This allows for embedded spaces, without the need for double quotes. Macro -expansion takes place inside the argument. - -\subsection{\type {\fontid}} - -\startsyntax -\fontid\font -\stopsyntax - -This primitive expands into a number. It is not a register so there is no need to -prefix with \type {\number} (and using \type {\the} gives an error). The currently -used font id is \fontid\font. Here are some more: - -\starttabulate[|l|c|] -\NC \type {\bf} \NC \bf \fontid\font \NC \NR -\NC \type {\it} \NC \it \fontid\font \NC \NR -\NC \type {\bi} \NC \bi \fontid\font \NC \NR -\stoptabulate - -These numbers depend on the macro package used because each one has its own way -of dealing with fonts. They can also differ per run, as they can depend on the -order of loading fonts. For instance, when in \CONTEXT\ virtual math \UNICODE\ -fonts are used, we can easily get over a hundred ids in use. Not all ids have to -be bound to a real font, after all it's just a number. - -\subsection{\type {\setfontid}} - -The primitive \type {\setfontid} can be used to enable a font with the given id -(which of course needs to be a valid one). - -\subsection{\type {\noligs} and \type {\nokerns}} - -These primitives prohibit ligature and kerning insertion at the time when the -initial node list is built by \LUATEX's main control loop. You can enable these -primitives when you want to do node list processing of \quote {characters}, where -\TEX's normal processing would get in the way. - -\startsyntax -\noligs <integer>!crlf -\nokerns <integer> -\stopsyntax - -These primitives can also be implemented by overloading the ligature building and -kerning functions, i.e.\ by assigning dummy functions to their associated -callbacks. Keep in mind that when you define a font (using \LUA) you can also -omit the kern and ligature tables, which has the same effect as the above. - -\subsection{\type{\nospaces}} - -This new primitive can be used to overrule the usual \type {\spaceskip} -related heuristics when a space character is seen in a text flow. The -value~\type{1} triggers no injection while \type{2} results in injection of -a zero skip. Below we see the results for four characters separated by a -space. - -\startlinecorrection -\startcombination[3*2] - {\ruledhbox to 5cm{\vtop{\hsize 10mm\nospaces=0\relax x x x x \par}\hss}} {\type {0 / hsize 10mm}} - {\ruledhbox to 5cm{\vtop{\hsize 10mm\nospaces=1\relax x x x x \par}\hss}} {\type {1 / hsize 10mm}} - {\ruledhbox to 5cm{\vtop{\hsize 10mm\nospaces=2\relax x x x x \par}\hss}} {\type {2 / hsize 10mm}} - {\ruledhbox to 5cm{\vtop{\hsize 1mm\nospaces=0\relax x x x x \par}\hss}} {\type {0 / hsize 1mm}} - {\ruledhbox to 5cm{\vtop{\hsize 1mm\nospaces=1\relax x x x x \par}\hss}} {\type {1 / hsize 1mm}} - {\ruledhbox to 5cm{\vtop{\hsize 1mm\nospaces=2\relax x x x x \par}\hss}} {\type {2 / hsize 1mm}} -\stopcombination -\stoplinecorrection - -\section{Tokens, commands and strings} - -\subsection{\type {\scantextokens}} - -The syntax of \type {\scantextokens} is identical to \type {\scantokens}. This -primitive is a slightly adapted version of \ETEX's \type {\scantokens}. The -differences are: - -\startitemize -\startitem - The last (and usually only) line does not have a \type {\endlinechar} - appended. -\stopitem -\startitem - \type {\scantextokens} never raises an EOF error, and it does not execute - \type {\everyeof} tokens. -\stopitem -\startitem - There are no \quote {\unknown\ while end of file \unknown} error tests - executed. This allows the expansion to end on a different grouping level or - while a conditional is still incomplete. -\stopitem -\stopitemize - -\subsection{\type {\toksapp}, \type {\tokspre}, \type {\etoksapp} and \type {\etokspre}} - -Instead of: - -\starttyping -\toks0\expandafter{\the\toks0 foo} -\stoptyping - -you can use: - -\starttyping -\etoksapp0{foo} -\stoptyping - -The \type {pre} variants prepend instead of append, and the \type {e} variants -expand the passed general text. - -\subsection{\type {\csstring}, \type {\begincsname} and \type {\lastnamedcs}} - -These are somewhat special. The \type {\csstring} primitive is like -\type {\string} but it omits the leading escape character. This can be -somewhat more efficient that stripping it of afterwards. - -The \type {\begincsname} primitive is like \type {\csname} but doesn't create -a relaxed equivalent when there is no such name. It is equivalent to - -\starttyping -\ifcsname foo\endcsname - \csname foo\endcsname -\fi -\stoptyping - -The advantage is that it saves a lookup (don't expect much speedup) but more -important is that it avoids using the \type {\if}. - -The \type {\lastnamedcs} is one that should be used with care. The above -example could be written as: - -\starttyping -\ifcsname foo\endcsname - \lastnamedcs -\fi -\stoptyping - -This is slightly more efficient than constructing the string twice (deep down in -\LUATEX\ this also involves some \UTF8 juggling), but probably more relevant is -that it saves a few tokens and can make code a bit more more readable. - -\subsection{\type {\clearmarks}} - -This primitive complements the \ETEX\ mark primitives and clears a mark class -completely, resetting all three connected mark texts to empty. It is an -immediate command. - -\startsyntax -\clearmarks <16-bit number> -\stopsyntax - -\subsection{\type{\letcharcode}} - -This primitive is still experimental but can be used to assign a meaning to an active -character, as in: - -\starttyping -\def\foo{bar} \letcharcode123\foo -\stoptyping - -This can be a bit nicer that using the uppercase tricks (using the property of -\type {\uppercase} that it treats active characters special). - -\section{Boxes, rules and leaders} - -\subsection{\type {\outputbox}} - -\startsyntax -\outputbox = 65535 -\stopsyntax - -This new integer parameter allows you to alter the number of the box that will be -used to store the page sent to the output routine. Its default value is 255, and -the acceptable range is from 0 to 65535. - -\subsection{\type {\vpack}, \type {\hpack} and \type {\tpack}} - -These three primitives are like \type {\vbox}, \type {\hbox} and \type {\vtop} -but don't apply the related callbacks. - -\subsection{\type {\vsplit}} - -The \type {\vsplit} primitive has to be followed by a specification of the -required height. As alternative for the \type {to} keyword you can use \type -{upto} to get a split of the given size but result has the natural dimensions -then. - -\subsection{Images and Forms} - -These two concepts are now core concepts and no longer whatsits. They are in fact -now implemented as rules with special properties. Normal rules have subtype~0, -saved boxes have subtype~1 and images have subtype~2. This has the positive side -effect that whenever we need to take content with dimensions into account, when we -look at rule nodes, we automatically also deal with these two types. - -The syntax of the \type {\save...resource} is the same as in \PDFTEX\ but you -should consider them to be backend specific. This means that a macro package -should treat them as such and check for the current output mode if applicable. -Here are the equivalents: - -\starttabulate[|l|l|] -\NC \type {\saveboxresource} \EQ \type {\pdfxform} \NC \NR -\NC \type {\saveimageresource} \EQ \type {\pdfximage} \NC \NR -\NC \type {\useboxresource} \EQ \type {\pdfrefxform} \NC \NR -\NC \type {\useimageresource} \EQ \type {\pdfrefximage} \NC \NR -\NC \type {\lastsavedboxresourceindex} \EQ \type {\pdflastxform} \NC \NR -\NC \type {\lastsavedimageresourceindex} \EQ \type {\pdflastximage} \NC \NR -\NC \type {\lastsavedimageresourcepages} \EQ \type {\pdflastximagepages} \NC \NR -\stoptabulate - -\LUATEX\ accepts optional dimension parameters for \type {\use...resource} in the -same format as for rules. With images, these dimensions are then used instead of -the ones given to \type {\useimageresource} but the original dimensions are not -overwritten, so that a \type {\useimageresource} without dimensions still -provides the image with dimensions defined by \type {\saveimageresource}. These -optional parameters are not implemented for \type {\saveboxresource}. - -\starttyping -\useimageresource width 20mm height 10mm depth 5mm \lastsavedimageresourceindex -\useboxresource width 20mm height 10mm depth 5mm \lastsavedboxresourceindex -\stoptyping - -The box resources are of course implemented in the backend and therefore we do -support the \type {attr} and \type {resources} keys that accept a token list. New -is the \type {type} key. When set to non|-|zero the \type {/Type} entry is -omitted. A value of 1 or 3 still writes a \type {/BBox}, while 2 or 3 will write -a \type {/Matrix}. - -\subsection{\type {\nohrule} and \type {\novrule}} - -Because introducing a new keyword can cause incompatibilities, two new primitives -were introduced: \type {\nohrule} and \type {\novrule}. These can be used to -reserve space. This is often more efficient than creating an empty box with fake -dimensions). - -\subsection{\type {\gleaders}} - -This type of leaders is anchored to the origin of the box to be shipped out. So -they are like normal \type {\leaders} in that they align nicely, except that the -alignment is based on the {\it largest\/} enclosing box instead of the {\it -smallest\/}. The \type {g} stresses this global nature. - -\section {Languages} - -\subsection{\type {\hyphenationmin}} - -This primitive can be used to set the minimal word length, so setting it to a value -of~$5$ means that only words of 6 characters and more will be hyphenated, of course -within the constraints of the \type {\lefthyphenmin} and \type {\righthyphenmin} -values (as stored in the glyph node). This primitive accepts a number and stores -the value with the language. - -\subsection{\type {\boundary}, \type {\noboundary}, \type {\protrusionboundary} and \type -{\wordboundary}} - -The \type {\noboundary} commands used to inject a whatsit node but now injects a normal -node with type \type {boundary} and subtype~0. In addition you can say: - -\starttyping -x\boundary 123\relax y -\stoptyping - -This has the same effect but the subtype is now~1 and the value~123 is stored. -The traditional ligature builder still sees this as a cancel boundary directive -but at the \LUA\ end you can implement different behaviour. The added benefit of -passing this value is a side effect of the generalization. The subtypes~2 and~3 -are used to control protrusion and word boundaries in hyphenation. - -\section{Control and debugging} - -\subsection {Tracing} - -If \type {\tracingonline} is larger than~2, the node list display will also print -the node number of the nodes. - -\subsection{\type {\outputmode} and \type {\draftmode}} - -The \type {\outputmode} variable tells \LUATEX\ what it has to produce: - -\starttabulate[|l|l|] -\NC \type {0} \NC \DVI\ code \NC \NR -\NC \type {1} \NC \PDF\ code \NC \NR -\stoptabulate - -The value of the \type {\draftmode} counter signals the backend if it should -output less. The \PDF\ backend accepts a value of~$1$, while the \DVI\ backend -ignores the value. - -\section {Files} - -\subsection{File syntax} - -\LUATEX\ will accept a braced argument as a file name: - -\starttyping -\input {plain} -\openin 0 {plain} -\stoptyping - -This allows for embedded spaces, without the need for double quotes. Macro -expansion takes place inside the argument. - -\subsection{Writing to file} - -You can now open upto 127 files with \type {\openout}. When no file is open -writes will go to the console and log. As a consequence a system command is -no longer possible but one can use \type {os.execute} to do the same. - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/luatex/luatex-fonts.tex b/doc/context/sources/general/manuals/luatex/luatex-fonts.tex deleted file mode 100644 index 90412ea81..000000000 --- a/doc/context/sources/general/manuals/luatex/luatex-fonts.tex +++ /dev/null @@ -1,719 +0,0 @@ -% language=uk - -\environment luatex-style -\environment luatex-logos - -\startcomponent luatex-fonts - -\startchapter[reference=fonts,title={Font structure}] - -\section {The font tables} - -All \TEX\ fonts are represented to \LUA\ code as tables, and internally as -\CCODE~structures. All keys in the table below are saved in the internal font -structure if they are present in the table returned by the \type {define_font} -callback, or if they result from the normal \TFM|/|\VF\ reading routines if there -is no \type {define_font} callback defined. - -The column \quote {\VF} means that this key will be created by the \type -{font.read_vf()} routine, \quote {\TFM} means that the key will be created by the -\type {font.read_tfm()} routine, and \quote{used} means whether or not the -\LUATEX\ engine itself will do something with the key. - -The top|-|level keys in the table are as follows: - -\starttabulate[|Tl|c|c|c|l|p|] -\NC \rmbf key \NC \bf vf \NC \bf tfm \NC \bf used \NC \bf value type \NC \bf description \NC \NR -\NC name \NC yes \NC yes \NC yes \NC string \NC metric (file) name \NC \NR -\NC area \NC no \NC yes \NC yes \NC string \NC (directory) location, typically empty \NC \NR -\NC used \NC no \NC yes \NC yes \NC boolean\NC indicates usage (initial: false) \NC \NR -\NC characters \NC yes \NC yes \NC yes \NC table \NC the defined glyphs of this font \NC \NR -\NC checksum \NC yes \NC yes \NC no \NC number \NC default: 0 \NC \NR -\NC designsize \NC no \NC yes \NC yes \NC number \NC expected size (default: 655360 == 10pt) \NC \NR -\NC direction \NC no \NC yes \NC yes \NC number \NC default: 0 \NC \NR -\NC encodingbytes \NC no \NC no \NC yes \NC number \NC default: depends on \type {format} \NC \NR -\NC encodingname \NC no \NC no \NC yes \NC string \NC encoding name \NC \NR -\NC fonts \NC yes \NC no \NC yes \NC table \NC locally used fonts \NC \NR -\NC psname \NC no \NC no \NC yes \NC string \NC This is the \POSTSCRIPT\ fontname in the incoming font - source, and it's used as fontname identifier in the \PDF\ - output. This has to be a valid string, e.g.\ no spaces - and such, as the backend will not do a cleanup. This gives - complete control to the loader. \NC \NR -\NC fullname \NC no \NC no \NC yes \NC string \NC output font name, used as a fallback in the \PDF\ output - if the \type {psname} is not set \NC \NR -\NC header \NC yes \NC no \NC no \NC string \NC header comments, if any \NC \NR -\NC hyphenchar \NC no \NC no \NC yes \NC number \NC default: \TEX's \type {\hyphenchar} \NC \NR -\NC parameters \NC no \NC yes \NC yes \NC hash \NC default: 7 parameters, all zero \NC \NR -\NC size \NC no \NC yes \NC yes \NC number \NC loaded (at) size. (default: same as designsize) \NC \NR -\NC skewchar \NC no \NC no \NC yes \NC number \NC default: \TEX's \type {\skewchar} \NC \NR -\NC type \NC yes \NC no \NC yes \NC string \NC basic type of this font \NC \NR -\NC format \NC no \NC no \NC yes \NC string \NC disk format type \NC \NR -\NC embedding \NC no \NC no \NC yes \NC string \NC \PDF\ inclusion \NC \NR -\NC filename \NC no \NC no \NC yes \NC string \NC the name of the font on disk \NC \NR -\NC tounicode \NC no \NC yes \NC yes \NC number \NC When this is set to~1 \LUATEX\ assumes per|-|glyph - tounicode entries are present in the font. \NC \NR -\NC stretch \NC no \NC no \NC yes \NC number \NC the \quote {stretch} value from \type - {\expandglyphsinfont} \NC \NR -\NC shrink \NC no \NC no \NC yes \NC number \NC the \quote {shrink} value from \type - {\expandglyphsinfont} \NC \NR -\NC step \NC no \NC no \NC yes \NC number \NC the \quote {step} value from \type - {\expandglyphsinfont} \NC \NR -\NC auto_expand \NC no \NC no \NC yes \NC boolean\NC the \quote {autoexpand} keyword from \crlf - \type {\expandglyphsinfont} \NC \NR -\NC expansion_factor \NC no \NC no \NC no \NC number \NC the actual expansion factor of an expanded font \NC \NR -\NC attributes \NC no \NC no \NC yes \NC string \NC the \type {\pdffontattr} \NC \NR -\NC cache \NC no \NC no \NC yes \NC string \NC This key controls caching of the \LUA\ table on the - \TEX\ end where \type {yes} means: use a reference to - the table that is passed to \LUATEX\ (this is the - default), and no \type {no} means: don't store the - table reference, don't cache any \LUA\ data for this - font while \type {renew} means: don't store the table - reference, but save a reference to the table that is - created at the first access to one of its fields in font. - Note: the saved reference is thread|-|local, so be - careful when you are using coroutines: an error will be - thrown if the table has been cached in one thread, but - you reference it from another thread. \NC \NR -\NC nomath \NC no \NC no \NC yes \NC boolean\NC This key allows a minor speedup for text fonts. If it - is present and true, then \LUATEX\ will not check the - character entries for math|-|specific keys. \NC \NR -\NC slant \NC no \NC no \NC yes \NC number \NC This has the same semantics as the \type {SlantFont} - operator in font map files. \NC \NR -\NC extent \NC no \NC no \NC yes \NC number \NC This has the same semantics as the \type {ExtendFont} - operator in font map files. \NC \NR -\stoptabulate - -The key \type {name} is always required. The keys \type {stretch}, \type -{shrink}, \type {step} and optionally \type {auto_expand} only have meaning when -used together: they can be used to replace a post|-|loading \type -{\expandglyphsinfont} command. The \type {expansion_factor} is value that can be -present inside a font in \type {font.fonts}. It is the actual expansion factor (a -value between \type {-shrink} and \type {stretch}, with step \type {step}) of a -font that was automatically generated by the font expansion algorithm. The key -\type {attributes} can be used to set font attributes in the \PDF\ file. The key -\type {used} is set by the engine when a font is actively in use, this makes sure -that the font's definition is written to the output file (\DVI\ or \PDF). The -\TFM\ reader sets it to false. The \type {direction} is a number signalling the -\quote {normal} direction for this font. There are sixteen possibilities: - -\starttabulate[|Tc|Tc|Tc|Tc|] -\NC \rmbf number \NC \rmbf meaning \NC \rmbf number \NC \rmbf meaning \NC\NR -\NC 0 \NC LT \NC 8 \NC TT \NC\NR -\NC 1 \NC LL \NC 9 \NC TL \NC\NR -\NC 2 \NC LB \NC 10 \NC TB \NC\NR -\NC 3 \NC LR \NC 11 \NC TR \NC\NR -\NC 4 \NC RT \NC 12 \NC BT \NC\NR -\NC 5 \NC RL \NC 13 \NC BL \NC\NR -\NC 6 \NC RB \NC 14 \NC BB \NC\NR -\NC 7 \NC RR \NC 15 \NC BR \NC\NR -\stoptabulate - -These are \OMEGA|-|style direction abbreviations: the first character indicates -the \quote {first} edge of the character glyphs (the edge that is seen first in -the writing direction), the second the \quote {top} side. Keep in mind that -\LUATEX\ has a bit different directional model so these values are not used for -anything. - -The \type {parameters} is a hash with mixed key types. There are seven possible -string keys, as well as a number of integer indices (these start from 8 up). The -seven strings are actually used instead of the bottom seven indices, because that -gives a nicer user interface. - -The names and their internal remapping are: - -\starttabulate[|lT|c|] -\NC \rmbf name \NC \rmbf remapping \NC\NR -\NC slant \NC 1 \NC\NR -\NC space \NC 2 \NC\NR -\NC space_stretch \NC 3 \NC\NR -\NC space_shrink \NC 4 \NC\NR -\NC x_height \NC 5 \NC\NR -\NC quad \NC 6 \NC\NR -\NC extra_space \NC 7 \NC\LR -\stoptabulate - -The keys \type {type}, \type {format}, \type {embedding}, \type {fullname} and -\type {filename} are used to embed \OPENTYPE\ fonts in the result \PDF. - -The \type {characters} table is a list of character hashes indexed by an integer -number. The number is the \quote {internal code} \TEX\ knows this character by. - -Two very special string indexes can be used also: \type {left_boundary} is a -virtual character whose ligatures and kerns are used to handle word boundary -processing. \type {right_boundary} is similar but not actually used for anything -(yet). - -Other index keys are ignored. - -Each character hash itself is a hash. For example, here is the character \quote -{f} (decimal 102) in the font \type {cmr10 at 10pt}: - -\starttyping -[102] = { - ['width'] = 200250, - ['height'] = 455111, - ['depth'] = 0, - ['italic'] = 50973, - ['kerns'] = { - [63] = 50973, - [93] = 50973, - [39] = 50973, - [33] = 50973, - [41] = 50973 - }, - ['ligatures'] = { - [102] = { - ['char'] = 11, - ['type'] = 0 - }, - [108] = { - ['char'] = 13, - ['type'] = 0 - }, - [105] = { - ['char'] = 12, - ['type'] = 0 - } - } -} -\stoptyping - -The following top|-|level keys can be present inside a character hash: - -\starttabulate[|lT|c|c|c|l|p|] -\NC \rmbf key \NC \bf vf \NC \bf tfm \NC \bf used \NC \bf type \NC \bf description \NC\NR -\NC width \NC yes \NC yes \NC yes \NC number \NC character's width, in sp (default 0) \NC\NR -\NC height \NC no \NC yes \NC yes \NC number \NC character's height, in sp (default 0) \NC\NR -\NC depth \NC no \NC yes \NC yes \NC number \NC character's depth, in sp (default 0) \NC\NR -\NC italic \NC no \NC yes \NC yes \NC number \NC character's italic correction, in sp (default zero) \NC\NR -\NC top_accent \NC no \NC no \NC maybe \NC number \NC character's top accent alignment place, in sp (default zero) \NC\NR -\NC bot_accent \NC no \NC no \NC maybe \NC number \NC character's bottom accent alignment place, in sp (default zero) \NC\NR -\NC left_protruding \NC no \NC no \NC maybe \NC number \NC character's \type {\lpcode} \NC\NR -\NC right_protruding \NC no \NC no \NC maybe \NC number \NC character's \type {\rpcode} \NC\NR -\NC expansion_factor \NC no \NC no \NC maybe \NC number \NC character's \type {\efcode} \NC\NR -\NC tounicode \NC no \NC no \NC maybe \NC string \NC character's \UNICODE\ equivalent(s), in \UTF|-|16BE hexadecimal format \NC\NR -\NC next \NC no \NC yes \NC yes \NC number \NC the \quote {next larger} character index \NC\NR -\NC extensible \NC no \NC yes \NC yes \NC table \NC the constituent parts of an extensible recipe \NC\NR -\NC vert_variants \NC no \NC no \NC yes \NC table \NC constituent parts of a vertical variant set \NC \NR -\NC horiz_variants \NC no \NC no \NC yes \NC table \NC constituent parts of a horizontal variant set \NC \NR -\NC kerns \NC no \NC yes \NC yes \NC table \NC kerning information \NC\NR -\NC ligatures \NC no \NC yes \NC yes \NC table \NC ligaturing information \NC\NR -\NC commands \NC yes \NC no \NC yes \NC array \NC virtual font commands \NC\NR -\NC name \NC no \NC no \NC no \NC string \NC the character (\POSTSCRIPT) name \NC\NR -\NC index \NC no \NC no \NC yes \NC number \NC the (\OPENTYPE\ or \TRUETYPE) font glyph index \NC\NR -\NC used \NC no \NC yes \NC yes \NC boolean \NC typeset already (default: false)? \NC\NR -\NC mathkern \NC no \NC no \NC yes \NC table \NC math cut-in specifications \NC\NR -\stoptabulate - -The values of \type {top_accent}, \type {bot_accent} and \type {mathkern} are -used only for math accent and superscript placement, see the \at {math chapter} -[math] in this manual for details. - -The values of \type {left_protruding} and \type {right_protruding} are used only -when \type {\protrudechars} is non-zero. - -Whether or not \type {expansion_factor} is used depends on the font's global -expansion settings, as well as on the value of \type {\adjustspacing}. - -The usage of \type {tounicode} is this: if this font specifies a \type -{tounicode=1} at the top level, then \LUATEX\ will construct a \type {/ToUnicode} -entry for the \PDF\ font (or font subset) based on the character|-|level \type -{tounicode} strings, where they are available. If a character does not have a -sensible \UNICODE\ equivalent, do not provide a string either (no empty strings). - -If the font level \type {tounicode} is not set, then \LUATEX\ will build up \type -{/ToUnicode} based on the \TEX\ code points you used, and any character-level -\type {tounicodes} will be ignored. The string format is exactly the format that -is expected by Adobe \CMAP\ files (\UTF-16BE in hexadecimal encoding), minus the -enclosing angle brackets. For instance the \type {tounicode} for a \type {fi} -ligature would be \type {00660069}. When you pass a number the conversion will be -done for you. - -The presence of \type {extensible} will overrule \type {next}, if that is also -present. It in in turn can be overruled by \type {vert_variants}. - -The \type {extensible} table is very simple: - -\starttabulate[|lT|l|p|] -\NC \rmbf key \NC \bf type \NC \bf description \NC\NR -\NC top \NC number \NC top character index \NC\NR -\NC mid \NC number \NC middle character index \NC\NR -\NC bot \NC number \NC bottom character index \NC\NR -\NC rep \NC number \NC repeatable character index \NC\NR -\stoptabulate - -The \type {horiz_variants} and \type {vert_variants} are arrays of components. -Each of those components is itself a hash of up to five keys: - -\starttabulate[|lT|l|p|] -\NC \rmbf key \NC \bf type \NC \bf explanation \NC\NR -\NC glyph \NC number \NC The character index. Note that this is an encoding number, not a name. \NC \NR -\NC extender \NC number \NC One (1) if this part is repeatable, zero (0) otherwise. \NC \NR -\NC start \NC number \NC The maximum overlap at the starting side (in scaled points). \NC \NR -\NC end \NC number \NC The maximum overlap at the ending side (in scaled points). \NC \NR -\NC advance \NC number \NC The total advance width of this item. It can be zero or missing, - then the natural size of the glyph for character \type {component} - is used. \NC \NR -\stoptabulate - -The \type {kerns} table is a hash indexed by character index (and \quote -{character index} is defined as either a non|-|negative integer or the string -value \type {right_boundary}), with the values the kerning to be applied, in -scaled points. - -The \type {ligatures} table is a hash indexed by character index (and \quote -{character index} is defined as either a non|-|negative integer or the string -value \type {right_boundary}), with the values being yet another small hash, with -two fields: - -\starttabulate[|lT|l|p|] -\NC \rmbf key \NC \bf type \NC \bf description \NC \NR -\NC type \NC number \NC the type of this ligature command, default 0 \NC \NR -\NC char \NC number \NC the character index of the resultant ligature \NC \NR -\stoptabulate - -The \type {char} field in a ligature is required. - -The \type {type} field inside a ligature is the numerical or string value of one -of the eight possible ligature types supported by \TEX. When \TEX\ inserts a new -ligature, it puts the new glyph in the middle of the left and right glyphs. The -original left and right glyphs can optionally be retained, and when at least one -of them is kept, it is also possible to move the new \quote {insertion point} -forward one or two places. The glyph that ends up to the right of the insertion -point will become the next \quote {left}. - -\starttabulate[|l|c|l|l|] -\NC \bf textual (Knuth) \NC \bf number \NC \bf string \NC result \NC\NR -\NC \type{l + r =: n} \NC 0 \NC \type{=:} \NC \type{|n} \NC\NR -\NC \type{l + r =:| n} \NC 1 \NC \type{=:|} \NC \type{|nr} \NC\NR -\NC \type{l + r |=: n} \NC 2 \NC \type{|=:} \NC \type{|ln} \NC\NR -\NC \type{l + r |=:| n} \NC 3 \NC \type{|=:|} \NC \type{|lnr} \NC\NR -\NC \type{l + r =:|> n} \NC 5 \NC \type{=:|>} \NC \type{n|r} \NC\NR -\NC \type{l + r |=:> n} \NC 6 \NC \type{|=:>} \NC \type{l|n} \NC\NR -\NC \type{l + r |=:|> n} \NC 7 \NC \type{|=:|>} \NC \type{l|nr} \NC\NR -\NC \type{l + r |=:|>> n} \NC 11 \NC \type{|=:|>>} \NC \type{ln|r} \NC\NR -\stoptabulate - -The default value is~0, and can be left out. That signifies a \quote {normal} -ligature where the ligature replaces both original glyphs. In this table the~\type {|} -indicates the final insertion point. - -The \type {commands} array is explained below. - -\section {Real fonts} - -Whether or not a \TEX\ font is a \quote {real} font that should be written to the -\PDF\ document is decided by the \type {type} value in the top|-|level font -structure. If the value is \type {real}, then this is a proper font, and the -inclusion mechanism will attempt to add the needed font object definitions to the -\PDF. Values for \type {type} are: - -\starttabulate[|Tl|p|] -\NC \rmbf value \NC \rmbf description \NC\NR -\NC real \NC this is a base font \NC\NR -\NC virtual \NC this is a virtual font \NC\NR -\stoptabulate - -The actions to be taken depend on a number of different variables: - -\startitemize[packed] -\startitem - Whether the used font fits in an 8-bit encoding scheme or not. -\stopitem -\startitem - The type of the disk font file. -\stopitem -\startitem - The level of embedding requested. -\stopitem -\stopitemize - -A font that uses anything other than an 8-bit encoding vector has to be written -to the \PDF\ in a different way. - -The rule is: if the font table has \type {encodingbytes} set to~2, then this is a -wide font, in all other cases it isn't. The value~2 is the default for \OPENTYPE\ -and \TRUETYPE\ fonts loaded via \LUA. For \TYPEONE\ fonts, you have to set \type -{encodingbytes} to~2 explicitly. For \PK\ bitmap fonts, wide font encoding is not -supported at all. - -If no special care is needed, \LUATEX\ currently falls back to the -mapfile|-|based solution used by \PDFTEX\ and \DVIPS. This behaviour might -silently be removed in the future, in which case the related primitives and \LUA\ -functions will become no|-|ops. - -If a \quote {wide} font is used, the new subsystem kicks in, and some -extra fields have to be present in the font structure. In this case, \LUATEX\ -does not use a map file at all. - -The extra fields are: \type {format}, \type {embedding}, \type {fullname}, \type -{cidinfo} (as explained above), \type {filename}, and the \type {index} key in -the separate characters. - -Values for \type {format} are: - -\starttabulate[|Tl|p|] -\NC \rmbf value \NC \rmbf description \NC \NR -\NC type1 \NC this is a \POSTSCRIPT\ \TYPEONE\ font \NC \NR -\NC type3 \NC this is a bitmapped (\PK) font \NC \NR -\NC truetype \NC this is a \TRUETYPE\ or \TRUETYPE|-|based \OPENTYPE\ font \NC \NR -\NC opentype \NC this is a \POSTSCRIPT|-|based \OPENTYPE\ font \NC \NR -\stoptabulate - -\type {type3} fonts are provided for backward compatibility only, and do not -support the new wide encoding options. - -Values for \type {embedding} are: - -\starttabulate[|Tl|p|] -\NC \rmbf value \NC \rmbf description \NC \NR -\NC no \NC don't embed the font at all \NC \NR -\NC subset \NC include and atttempt to subset the font \NC \NR -\NC full \NC include this font in its entirety \NC \NR -\stoptabulate - -The other fields are used as follows: The \type {fullname} will be the -\POSTSCRIPT|/|\PDF\ font name. The \type {cidinfo} will be used as the character -set (the CID \type {/Ordering} and \type {/Registry} keys). The \type {filename} -points to the actual font file. If you include the full path in the \type -{filename} or if the file is in the local directory, \LUATEX\ will run a little -bit more efficient because it will not have to re|-|run the \type {find_xxx_file} -callback in that case. - -Be careful: when mixing old and new fonts in one document, it is possible to -create \POSTSCRIPT\ name clashes that can result in printing errors. When this -happens, you have to change the \type {fullname} of the font. - -Typeset strings are written out in a wide format using 2~bytes per glyph, using -the \type {index} key in the character information as value. The overall effect -is like having an encoding based on numbers instead of traditional (\POSTSCRIPT) -name|-|based reencoding. The way to get the correct \type {index} numbers for -\TYPEONE\ fonts is by loading the font via \type {fontloader.open} and use the table -indices as \type {index} fields. - -In order to make sure that cut and paste of the final document works okay you can -best make sure that there is a \type {tounicode} vector enforced. - -\section[virtualfonts]{Virtual fonts} - -\subsection{The structure} - -You have to take the following steps if you want \LUATEX\ to treat the returned -table from \type {define_font} as a virtual font: - -\startitemize[packed] -\startitem - Set the top|-|level key \type {type} to \type {virtual}. -\stopitem -\startitem - Make sure there is at least one valid entry in \type {fonts} (see below). -\stopitem -\startitem - Give a \type {commands} array to every character (see below). -\stopitem -\stopitemize - -The presence of the toplevel \type {type} key with the specific value \type -{virtual} will trigger handling of the rest of the special virtual font fields in -the table, but the mere existence of 'type' is enough to prevent \LUATEX\ from -looking for a virtual font on its own. - -Therefore, this also works \quote {in reverse}: if you are absolutely certain -that a font is not a virtual font, assigning the value \type {base} or \type -{real} to \type {type} will inhibit \LUATEX\ from looking for a virtual font -file, thereby saving you a disk search. - -The \type {fonts} is another \LUA\ array. The values are one- or two|-|key -hashes themselves, each entry indicating one of the base fonts in a virtual font. -In case your font is referring to itself, you can use the \type {font.nextid()} -function which returns the index of the next to be defined font which is probably -the currently defined one. - -An example makes this easy to understand - -\starttyping -fonts = { - { name = 'ptmr8a', size = 655360 }, - { name = 'psyr', size = 600000 }, - { id = 38 } -} -\stoptyping - -says that the first referenced font (index 1) in this virtual font is \type -{ptrmr8a} loaded at 10pt, and the second is \type {psyr} loaded at a little over -9pt. The third one is previously defined font that is known to \LUATEX\ as font id -\quote {38}. - -The array index numbers are used by the character command definitions that are -part of each character. - -The \type {commands} array is a hash where each item is another small array, -with the first entry representing a command and the extra items being the -parameters to that command. The allowed commands and their arguments are: - -\starttabulate[|Tl|l|l|p|] -\NC \rmbf command name \NC \bf arguments \NC \bf type \NC \bf description \NC\NR -\NC font \NC 1 \NC number \NC select a new font from the local \type {fonts} table\NC\NR -\NC char \NC 1 \NC number \NC typeset this character number from the current font, - and move right by the character's width\NC\NR -\NC node \NC 1 \NC node \NC output this node (list), and move right - by the width of this list\NC\NR -\NC slot \NC 2 \NC number \NC a shortcut for the combination of a font and char command\NC\NR -\NC push \NC 0 \NC \NC save current position\NC\NR -\NC nop \NC 0 \NC \NC do nothing \NC\NR -\NC pop \NC 0 \NC \NC pop position \NC\NR -\NC rule \NC 2 \NC 2 numbers \NC output a rule $ht*wd$, and move right.\NC\NR -\NC down \NC 1 \NC number \NC move down on the page\NC\NR -\NC right \NC 1 \NC number \NC move right on the page\NC\NR -\NC special \NC 1 \NC string \NC output a \type {\special} command\NC\NR -\NC lua \NC 1 \NC string \NC execute a \LUA\ script (at \type {\latelua} time)\NC\NR -\NC image \NC 1 \NC image \NC output an image (the argument can be either an \type - {<image>} variable or an \type {image_spec} table)\NC\NR -\NC comment \NC any \NC any \NC the arguments of this command are ignored\NC\NR -\stoptabulate - -When a font id is set to~0 then it will be replaced by the currently assigned -font id. This prevents the need for hackery with future id's (normally one could -use \type {font.nextid} but when more complex fonts are built in the meantime -other instances could have been loaded. - -Here is a rather elaborate glyph commands example: - -\starttyping -... -commands = { - { 'push' }, -- remember where we are - { 'right', 5000 }, -- move right about 0.08pt - { 'font', 3 }, -- select the fonts[3] entry - { 'char', 97 }, -- place character 97 (ASCII 'a') - { 'pop' }, -- go all the way back - { 'down', -200000 }, -- move upwards by about 3pt - { 'special', 'pdf: 1 0 0 rg' } -- switch to red color - { 'rule', 500000, 20000 } -- draw a bar - { 'special','pdf: 0 g' } -- back to black -} -... -\stoptyping - -The default value for \type {font} is always~1 at the start of the -\type {commands} array. Therefore, if the virtual font is essentially only a -re|-|encoding, then you do usually not have create an explicit \quote {font} -command in the array. - -Rules inside of \type {commands} arrays are built up using only two dimensions: -they do not have depth. For correct vertical placement, an extra \type {down} -command may be needed. - -Regardless of the amount of movement you create within the \type {commands}, the -output pointer will always move by exactly the width that was given in the \type -{width} key of the character hash. Any movements that take place inside the \type -{commands} array are ignored on the upper level. - -\subsection{Artificial fonts} - -Even in a \quote {real} font, there can be virtual characters. When \LUATEX\ -encounters a \type {commands} field inside a character when it becomes time to -typeset the character, it will interpret the commands, just like for a true -virtual character. In this case, if you have created no \quote {fonts} array, -then the default (and only) \quote {base} font is taken to be the current font -itself. In practice, this means that you can create virtual duplicates of -existing characters which is useful if you want to create composite characters. - -Note: this feature does {\it not\/} work the other way around. There can not be -\quote {real} characters in a virtual font! You cannot use this technique for -font re-encoding either; you need a truly virtual font for that (because -characters that are already present cannot be altered). - -\subsection{Example virtual font} - -Finally, here is a plain \TEX\ input file with a virtual font demonstration: - -\startbuffer -\directlua { - callback.register('define_font', - function (name,size) - if name == 'cmr10-red' then - f = font.read_tfm('cmr10',size) - f.name = 'cmr10-red' - f.type = 'virtual' - f.fonts = {{ name = 'cmr10', size = size }} - for i,v in pairs(f.characters) do - if (string.char(i)):find('[tacohanshartmut]') then - v.commands = { - {'special','pdf: 1 0 0 rg'}, - {'char',i}, - {'special','pdf: 0 g'}, - } - else - v.commands = {{'char',i}} - end - end - else - f = font.read_tfm(name,size) - end - return f - end - ) -} - -\font\myfont = cmr10-red at 10pt \myfont This is a line of text \par -\font\myfontx= cmr10 at 10pt \myfontx Here is another line of text \par -\stopbuffer - -\typebuffer - -\section{The \type {font} library} - -The font library provides the interface into the internals of the font system, -and also it contains helper functions to load traditional \TEX\ font metrics -formats. Other font loading functionality is provided by the \type {fontloader} -library that will be discussed in the next section. - -\subsection{Loading a \TFM\ file} - -The behavior documented in this subsection is considered stable in the sense that -there will not be backward-incompatible changes any more. - -\startfunctioncall -<table> fnt = - font.read_tfm(<string> name, <number> s) -\stopfunctioncall - -The number is a bit special: - -\startitemize -\startitem - If it is positive, it specifies an \quote {at size} in scaled points. -\stopitem -\startitem - If it is negative, its absolute value represents a \quote {scaled} - setting relative to the designsize of the font. -\stopitem -\stopitemize - -The internal structure of the metrics font table that is returned is explained in -\in {chapter} [fonts]. - -\subsection{Loading a \VF\ file} - -The behavior documented in this subsection is considered stable in the sense that -there will not be backward-incompatible changes any more. - -\startfunctioncall -<table> vf_fnt = - font.read_vf(<string> name, <number> s) -\stopfunctioncall - -The meaning of the number \type {s} and the format of the returned table are -similar to the ones in the \type {read_tfm()} function. - -\subsection{The fonts array} - -The whole table of \TEX\ fonts is accessible from \LUA\ using a virtual array. - -\starttyping -font.fonts[n] = { ... } -<table> f = font.fonts[n] -\stoptyping - -See \in {chapter} [fonts] for the structure of the tables. Because this is a -virtual array, you cannot call \type {pairs} on it, but see below for the \type -{font.each} iterator. - -The two metatable functions implementing the virtual array are: - -\startfunctioncall -<table> f = font.getfont(<number> n) -font.setfont(<number> n, <table> f) -\stopfunctioncall - -Note that at the moment, each access to the \type {font.fonts} or call to \type -{font.getfont} creates a \LUA\ table for the whole font. This process can be quite -slow. In a later version of \LUATEX, this interface will change (it will start -using userdata objects instead of actual tables). - -Also note the following: assignments can only be made to fonts that have already -been defined in \TEX, but have not been accessed {\it at all\/} since that -definition. This limits the usability of the write access to \type {font.fonts} -quite a lot, a less stringent ruleset will likely be implemented later. - -\subsection{Checking a font's status} - -You can test for the status of a font by calling this function: - -\startfunctioncall -<boolean> f = - font.frozen(<number> n) -\stopfunctioncall - -The return value is one of \type {true} (unassignable), \type {false} (can be -changed) or \type {nil} (not a valid font at all). - -\subsection{Defining a font directly} - -You can define your own font into \type {font.fonts} by calling this function: - -\startfunctioncall -<number> i = - font.define(<table> f) -\stopfunctioncall - -The return value is the internal id number of the defined font (the index into -\type {font.fonts}). If the font creation fails, an error is raised. The table -is a font structure, as explained in \in {chapter} [fonts]. - -\subsection{Projected next font id} - -\startfunctioncall -<number> i = - font.nextid() -\stopfunctioncall - -This returns the font id number that would be returned by a \type {font.define} -call if it was executed at this spot in the code flow. This is useful for virtual -fonts that need to reference themselves. - -\subsection{Font id} - -\startfunctioncall -<number> i = - font.id(<string> csname) -\stopfunctioncall - -This returns the font id associated with \type {csname} string, or $-1$ if \type -{csname} is not defined. - -\subsection{Currently active font} - -\startfunctioncall -<number> i = font.current() -font.current(<number> i) -\stopfunctioncall - -This gets or sets the currently used font number. - -\subsection{Maximum font id} - -\startfunctioncall -<number> i = - font.max() -\stopfunctioncall - -This is the largest used index in \type {font.fonts}. - -\subsection{Iterating over all fonts} - -\startfunctioncall -for i,v in font.each() do - ... -end -\stopfunctioncall - -This is an iterator over each of the defined \TEX\ fonts. The first returned -value is the index in \type {font.fonts}, the second the font itself, as a \LUA\ -table. The indices are listed incrementally, but they do not always form an array -of consecutive numbers: in some cases there can be holes in the sequence. - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/luatex/luatex-introduction.tex b/doc/context/sources/general/manuals/luatex/luatex-introduction.tex deleted file mode 100644 index 8ab8b4463..000000000 --- a/doc/context/sources/general/manuals/luatex/luatex-introduction.tex +++ /dev/null @@ -1,121 +0,0 @@ -% language=uk - -\environment luatex-style -\environment luatex-logos - -\startcomponent luatex-introduction - -\startchapter[title=Introduction] - -This is the reference manual of \LUATEX. We don't claim it is complete and we -assume that the reader knows about \TEX\ as described in \quotation {The \TEX\ -Book}, the \quotation {\ETEX\ manual}, the \quotation {\PDFTEX\ manual}, etc. -Additional reference material is published in journals of user groups and -\CONTEXT\ related documentation. - -It took about a decade to reach stable version 1.0, but for good reason. -Successive versions brought new functionality, more control, some cleanup of -internals and experimental features evolved into stable ones or were dropped. -Already quite early \LUATEX\ could be used for production and it was used on a -daily basis by the authors. Successive versions sometimes demanded a adaption to -the \LUA\ interfacing, but the concepts were unchanged. The current version can -be considered stable in functionality and there will be no fundamental changes. -Of course we then can decide to move towards version 2.00 with different -properties. - -Don't expect \LUATEX\ to behave the same as \PDFTEX ! Although the core -functionality of that 8 bit engine was starting point, it has been combined with -the directional support of \OMEGA\ (\ALEPH). But, \LUATEX\ can behave different -due to its wide (32 bit) characters, many registers and large memory support. -There is native \UTF\ input, support for large (more that 8 bit) fonts, and the -math machinery is tuned for \OPENTYPE\ math. There is support for directional -typesetting too. The log output can differ from other engines and will likely -differ more as we move forward. When you run plain \TEX\ for sure \LUATEX\ runs -slower than \PDFTEX\ but when you run for instance \CONTEXT\ \MKIV\ in many cases -it runs faster, especially when you have a bit more complex documents or input. -Anyway, 32 bit all||over combined with more features has a price, but on a modern -machine this is no real problem. - -Testing is done with \CONTEXT, but \LUATEX\ should work fine with other macro -packages too. For that purpose we provide generic font handlers that are mostly -the same as used in \CONTEXT. Discussing specific implementations is beyond this -manual. Even when we keep \LUATEX\ lean and mean, we already have enough to -discuss here. - -\LUATEX\ consists of a number of interrelated but (still) distinguishable parts. -The organization of the source code is adapted so that it can glue all these -components together. We continue cleaning up side effects of the accumulated -code in \TEX\ engines (especially code that is not needed any longer). - -\startitemize[packed] - \startitem - Most of \PDFTEX\ version 1.40.9, converted to \CCODE. Some experimental - features have been removed and some utility macros are not inherited as - their functionality can be done in \LUA. The number of backend interface - commands has been reduced to a few. The extensions are separated from the - core (which we keep close to the original \TEX\ core). Some mechanisms - like expansion and protrusion can behave different from the original due - to some cleanup and optimization. Some whatsit based functionality (image - support and reusable content) is now core functionality. - \stopitem - \startitem - The direction model and some other bits from \ALEPH\ RC4 (derived from - \OMEGA) is included. The related primitives are part of core \LUATEX\ but - at the node level directional support is no longer based on so called - whatsits but on real nodes. In fact, whatsits are now only used for - backend specific extensions. - \stopitem - \startitem - Neither \ALEPH's I/O translation processes, nor tcx files, nor \ENCTEX\ - can be used, these encoding|-|related functions are superseded by a - \LUA|-|based solution (reader callbacks). In a similar fashion all file - \IO\ can be intercepted. - \stopitem - \startitem - We currently use \LUA\ 5.2.*. At some point we might decide to move to - 5.3.* but that is yet to be decided. There are few \LUA\ libraries that - we consider part of the core \LUA\ machinery, for instance \type {lpeg}. - There are additional \LUA\ libraries that interface to the internals of - \TEX. - \stopitem - \startitem - There are various \TEX\ extensions but only those that cannot be done - using the \LUA\ interfaces. The math machinery often has two code paths: - one traditional and the other more suitable for wide \OPENTYPE\ fonts. - \stopitem - \startitem - The fontloader uses parts of \FONTFORGE\ 2008.11.17 combined with - additional code specific for usage in a \TEX\ engine. We try to minimize - specific font support to what \TEX\ needs: character references and - dimensions and delegate everything else to \LUA. That way we keep \TEX\ - open for extensions without touching the core. - \stopitem - \startitem - The \METAPOST\ library is integral part of \LUATEX. This gives \TEX\ some - graphical capabilities using a relative high speed graphical subsystem. - Again \LUA\ is used as glue between the frontend and backend. Further - development of \METAPOST\ is closely related to \LUATEX. - \stopitem -\stopitemize - -The \TEXLIVE\ version is to be considered the current stable version. Any version -between the yearly \TEXLIVE\ releases are to be considered beta. The beta -releases are normally available via the \CONTEXT\ distribution channels (the -garden and so called minimals). - -\blank[1*big] - -Hans Hagen, Harmut Henkel, \crlf -Taco Hoekwater \& Luigi Scarso - -\blank[3*big] - -\starttabulate -\NC Version \EQ \currentdate \NC \NR -\NC \LUATEX \EQ Snapshot \number\luatexversion.\luatexrevision \NC \NR -\NC \CONTEXT \EQ \contextversion \NC \NR -\stoptabulate - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/luatex/luatex-languages.tex b/doc/context/sources/general/manuals/luatex/luatex-languages.tex deleted file mode 100644 index ad7b7b9d6..000000000 --- a/doc/context/sources/general/manuals/luatex/luatex-languages.tex +++ /dev/null @@ -1,770 +0,0 @@ -% language=uk - -\environment luatex-style -\environment luatex-logos - -\startcomponent luatex-languages - -\startchapter[reference=languages,title={Languages, characters, fonts and glyphs}] - -\LUATEX's internal handling of the characters and glyphs that eventually become -typeset is quite different from the way \TEX82 handles those same objects. The -easiest way to explain the difference is to focus on unrestricted horizontal mode -(i.e.\ paragraphs) and hyphenation first. Later on, it will be easy to deal -with the differences that occur in horizontal and math modes. - -In \TEX82, the characters you type are converted into \type {char_node} records -when they are encountered by the main control loop. \TEX\ attaches and processes -the font information while creating those records, so that the resulting \quote -{horizontal list} contains the final forms of ligatures and implicit kerning. -This packaging is needed because we may want to get the effective width of for -instance a horizontal box. - -When it becomes necessary to hyphenate words in a paragraph, \TEX\ converts (one -word at time) the \type {char_node} records into a string by replacing ligatures -with their components and ignoring the kerning. Then it runs the hyphenation -algorithm on this string, and converts the hyphenated result back into a \quote -{horizontal list} that is consecutively spliced back into the paragraph stream. -Keep in mind that the paragraph may contain unboxed horizontal material, which -then already contains ligatures and kerns and the words therein are part of the -hyphenation process. - -Those \type {char_node} records are somewhat misnamed, as they are glyph -positions in specific fonts, and therefore not really \quote {characters} in the -linguistic sense. There is no language information inside the \type {char_node} -records at all. Instead, language information is passed along using \type -{language whatsit} records inside the horizontal list. - -In \LUATEX, the situation is quite different. The characters you type are always -converted into \type {glyph_node} records with a special subtype to identify them -as being intended as linguistic characters. \LUATEX\ stores the needed language -information in those records, but does not do any font|-|related processing at -the time of node creation. It only stores the index of the current font and a -reference to a character in that font. - -When it becomes necessary to typeset a paragraph, \LUATEX\ first inserts all -hyphenation points right into the whole node list. Next, it processes all the -font information in the whole list (creating ligatures and adjusting kerning), -and finally it adjusts all the subtype identifiers so that the records are \quote -{glyph nodes} from now on. - -\section[charsandglyphs]{Characters and glyphs} - -\TEX82 (including \PDFTEX) differentiates between \type {char_node}s and \type -{lig_node}s. The former are simple items that contained nothing but a \quote -{character} and a \quote {font} field, and they lived in the same memory as -tokens did. The latter also contained a list of components, and a subtype -indicating whether this ligature was the result of a word boundary, and it was -stored in the same place as other nodes like boxes and kerns and glues. - -In \LUATEX, these two types are merged into one, somewhat larger structure called -a \type {glyph_node}. Besides having the old character, font, and component -fields, and the new special fields like \quote {attr} (see~\in {section} -[glyphnodes]), these nodes also contain: - -\startitemize - -\startitem A subtype, split into four main types: - - \startitemize - \startitem - \type {character}, for characters to be hyphenated: the lowest bit - (bit 0) is set to 1. - \stopitem - \startitem - \type {glyph}, for specific font glyphs: the lowest bit (bit 0) is - not set. - \stopitem - \startitem - \type {ligature}, for ligatures (bit 1 is set) - \stopitem - \startitem - \type {ghost}, for \quote {ghost objects} (bit 2 is set) - \stopitem - \stopitemize - - The latter two make further use of two extra fields (bits 3 and 4): - - \startitemize - \startitem - \type {left}, for ligatures created from a left word boundary and for - ghosts created from \type {\leftghost} - \stopitem - \startitem - \type {right}, for ligatures created from a right word boundary and - for ghosts created from \type {\rightghost} - \stopitem - \stopitemize - - For ligatures, both bits can be set at the same time (in case of a - single|-|glyph word). - -\stopitem - -\startitem - \type {glyph_node}s of type \quote {character} also contain language data, - split into four items that were current when the node was created: the - \type {\setlanguage} (15 bits), \type {\lefthyphenmin} (8 bits), \type - {\righthyphenmin} (8 bits), and \type {\uchyph} (1 bit). -\stopitem - -\stopitemize - -Incidentally, \LUATEX\ allows 16383 separate languages, and words can be 256 -characters long. The language is stored with each character. You can set -\type {\firstvalidlanguage} to for instance~1 and make thereby language~0 -an ignored hyphenation language. - -The new primitive \type {\hyphenationmin} can be used to signal the minimal length -of a word. This value stored with the (current) language. - -Because the \type {\uchyph} value is saved in the actual nodes, its handling is -subtly different from \TEX82: changes to \type {\uchyph} become effective -immediately, not at the end of the current partial paragraph. - -Typeset boxes now always have their language information embedded in the nodes -themselves, so there is no longer a possible dependency on the surrounding -language settings. In \TEX82, a mid-paragraph statement like \type {\unhbox0} would -process the box using the current paragraph language unless there was a -\type {\setlanguage} issued inside the box. In \LUATEX, all language variables are -already frozen. - -In traditional \TEX\ the process of hyphenation is driven by \type {lccode}s. In -\LUATEX\ we made this dependency less strong. There are several strategies -possible. When you do nothing, the currently used \type {lccode}s are used, when -loading patterns, setting exceptions or hyphenating a list. - -When you set \type {\savinghyphcodes} to a value larger than zero the current set -of \type {lccode}s will be saved with the language. In that case changing a \type -{lccode} afterwards has no effect. However, you can adapt the set with: - -\starttyping -\hjcode`a=`a -\stoptyping - -This change is global which makes sense if you keep in mind that the moment that -hyphenation happens is (normally) when the paragraph or a horizontal box is -constructed. When \type {\savinghyphcodes} was zero when the language got -initialized you start out with nothing, otherwise you already have a set. - -When a \type {\hjcode} is larger than $0$ but smaller than $32$ is indicates the -to be used length. In the following example we map a character (\type {x}) onto -another one in the patterns and tell the engine that \type {œ} counts as one -character. Because traditionally zero itself is reserved for inhibiting -hyphenation, a value of $32$ counts as zero. - -\starttyping -% assuming french patterns: -foobar % foo-bar - -\hjcode`x=`o - -fxxbar % fxx-bar - -\lefthyphenmin3 - -œdipus % œdi-pus - -\lefthyphenmin4 - -œdipus % œdipus - -\hjcode`œ=2 - -œdipus % œdi-pus - -\hjcode`i=32 -\hjcode`d=32 - -œdipus % œdipus -\stoptyping - -Carrying all this information with each glyph would give too much overhead and -also make the process of setting up thee codes more complex. A solution with -\type {hjcode} sets was considered but rejected because in practice the current -approach is sufficient and it would not be compatible anyway. - -Beware: the values are always saved in the format, independent of the setting -of \type {\savinghyphcodes} at the moment the format is dumped. - -A boundary node normally would mark the end of a word which interferes with for -instance discretionary injection. For this you can use the \type {\wordboundary} -as trigger. Here are a few examples of usage: - -\startbuffer - discrete---discrete -\stopbuffer -\typebuffer \start \dontcomplain \hsize 1pt \getbuffer \par \stop -\startbuffer - discrete\discretionary{}{}{---}discrete -\stopbuffer -\typebuffer \start \dontcomplain \hsize 1pt \getbuffer \par \stop -\startbuffer - discrete\wordboundary\discretionary{}{}{---}discrete -\stopbuffer -\typebuffer \start \dontcomplain \hsize 1pt \getbuffer \par \stop -\startbuffer - discrete\wordboundary\discretionary{}{}{---}\wordboundary discrete -\stopbuffer -\typebuffer \start \dontcomplain \hsize 1pt \getbuffer \par \stop -\startbuffer - discrete\wordboundary\discretionary{---}{}{}\wordboundary discrete -\stopbuffer -\typebuffer \start \dontcomplain \hsize 1pt \getbuffer \par \stop - -We only accept an explicit hyphen when there is a preceding glyph and we skip a -sequence of explicit hyphens as that normally indicates a \type {--} or \type -{---} ligature in which case we can in a worse case usage get bad node lists -later on due to messed up ligature building as these dashes are ligatures in base -fonts. This is a side effect of the separating the hyphenation, ligaturing and -kerning steps. - -The start and end of a characters is signalled by a glue, penalty, kern or boundary -node. But by default also a hlist, vlist, rule, dir, whatsit, ins, and adjust node -indicate a start or end. You can omit the last set from the test by setting -\type {\hyphenationbounds} to a non|-|zero value: - -\starttabulate[|Tl|l|] -\NC 0 \NC not strict \NC \NR -\NC 1 \NC strict start \NC \NR -\NC 2 \NC strict end \NC \NR -\NC 3 \NC strict start and strict end \NC \NR -\stoptabulate - -\section{The main control loop} - -In \LUATEX's main loop, almost all input characters that are to be typeset are -converted into \type {glyph} node records with subtype \quote {character}, but -there are a few exceptions. - -First, the \type {\accent} primitives creates nodes with subtype \quote {glyph} -instead of \quote {character}: one for the actual accent and one for the -accentee. The primary reason for this is that \type {\accent} in \TEX82 is -explicitly dependent on the current font encoding, so it would not make much -sense to attach a new meaning to the primitive's name, as that would invalidate -many old documents and macro packages. \footnote {Of course, modern packages will -not use the \type {\accent} primitive at all but try to map directly on composed -characters.} A secondary reason is that in \TEX82, \type {\accent} prohibits -hyphenation of the current word. Since in \LUATEX\ hyphenation only takes place -on \quote {character} nodes, it is possible to achieve the same effect. - -This change of meaning did happen with \type {\char}, that now generates \quote -{glyph} nodes with a character subtype. In traditional \TEX\ there was a strong -relationship between the 8|-|bit input encoding, hyphenation and glyphs taken -from a font. In \LUATEX\ we have \UTF\ input, and in most cases this maps -directly to a character in a font, apart from glyph replacement in the font -engine. If you want to access arbitrary glyphs in a font directly you can always -use \LUA\ to do so, because fonts are available as \LUA\ table. - -Second, all the results of processing in math mode eventually become nodes with -\quote {glyph} subtypes. - -Third, the \ALEPH|-|derived commands \type {\leftghost} and \type {\rightghost} -create nodes of a third subtype: \quote {ghost}. These nodes are ignored -completely by all further processing until the stage where inter|-|glyph kerning -is added. - -Fourth, automatic discretionaries are handled differently. \TEX82 inserts an -empty discretionary after sensing an input character that matches the \type -{\hyphenchar} in the current font. This test is wrong in our opinion: whether or -not hyphenation takes place should not depend on the current font, it is a -language property. \footnote {When \TEX\ showed up we didn't have \UNICODE\ yet -and being limited to eight bits meant that one sometimes had to compromise -between supporting character input, glyph rendering, hyphenation.} - -In \LUATEX, it works like this: if \LUATEX\ senses a string of input characters -that matches the value of the new integer parameter \type {\exhyphenchar}, it will -insert an explicit discretionary after that series of nodes. Initex sets the \type -{\exhyphenchar=`\-}. Incidentally, this is a global parameter instead of a -language-specific one because it may be useful to change the value depending on -the document structure instead of the text language. - -The insertion of discretionaries after a sequence of explicit hyphens happens at -the same time as the other hyphenation processing, {\it not\/} inside the main -control loop. - -The only use \LUATEX\ has for \type {\hyphenchar} is at the check whether a word -should be considered for hyphenation at all. If the \type {\hyphenchar} of the -font attached to the first character node in a word is negative, then hyphenation -of that word is abandoned immediately. This behaviour is added for backward -compatibility only, and the use of \type {\hyphenchar=-1} as a means of -preventing hyphenation should not be used in new \LUATEX\ documents. - -Fifth, \type {\setlanguage} no longer creates whatsits. The meaning of \type -{\setlanguage} is changed so that it is now an integer parameter like all others. -That integer parameter is used in \type {\glyph_node} creation to add language -information to the glyph nodes. In conjunction, the \type {\language} primitive is -extended so that it always also updates the value of \type {\setlanguage}. - -Sixth, the \type {\noboundary} command (that prohibits word boundary processing -where that would normally take place) now does create nodes. These nodes are -needed because the exact place of the \type {\noboundary} command in the input -stream has to be retained until after the ligature and font processing stages. - -Finally, there is no longer a \type {main_loop} label in the code. Remember that -\TEX82 did quite a lot of processing while adding \type {char_nodes} to the -horizontal list? For speed reasons, it handled that processing code outside of -the \quote {main control} loop, and only the first character of any \quote {word} -was handled by that \quote {main control} loop. In \LUATEX, there is no longer a -need for that (all hard work is done later), and the (now very small) bits of -character|-|handling code have been moved back inline. When \type -{\tracingcommands} is on, this is visible because the full word is reported, -instead of just the initial character. - -\section[patternsexceptions]{Loading patterns and exceptions} - -The hyphenation algorithm in \LUATEX\ is quite different from the one in \TEX82, -although it uses essentially the same user input. - -After expansion, the argument for \type {\patterns} has to be proper \UTF8 with -individual patterns separated by spaces, no \type {\char} or \type {\chardef}d -commands are allowed. The current implementation quite strict and will reject all -non|-|\UNICODE\ characters. - -Likewise, the expanded argument for \type {\hyphenation} also has to be proper -\UTF8, but here a bit of extra syntax is provided: - -\startitemize[n] -\startitem - Three sets of arguments in curly braces (\type {{}{}{}}) indicates a desired - complex discretionary, with arguments as in \type {\discretionary}'s command in - normal document input. -\stopitem -\startitem - A \type {-} indicates a desired simple discretionary, cf.\ \type {\-} and \type - {\discretionary{-}{}{}} in normal document input. -\stopitem -\startitem - Internal command names are ignored. This rule is provided especially for \type - {\discretionary}, but it also helps to deal with \type {\relax} commands that - may sneak in. -\stopitem -\startitem - An \type {=} indicates a (non|-|discretionary) hyphen in the document input. -\stopitem -\stopitemize - -The expanded argument is first converted back to a space-separated string while -dropping the internal command names. This string is then converted into a -dictionary by a routine that creates key|-|value pairs by converting the other -listed items. It is important to note that the keys in an exception dictionary -can always be generated from the values. Here are a few examples: - -\starttabulate[|l|l|l|] -\NC \bf value \NC \bf implied key (input) \NC \bf effect \NC\NR -\NC \type {ta-ble} \NC table \NC \type {ta\-ble} ($=$ \type {ta\discretionary{-}{}{}ble}) \NC\NR -\NC \type {ba{k-}{}{c}ken} \NC backen \NC \type {ba\discretionary{k-}{}{c}ken} \NC\NR -\stoptabulate - -The resultant patterns and exception dictionary will be stored under the language -code that is the present value of \type {\language}. - -In the last line of the table, you see there is no \type {\discretionary} command -in the value: the command is optional in the \TEX-based input syntax. The -underlying reason for that is that it is conceivable that a whole dictionary of -words is stored as a plain text file and loaded into \LUATEX\ using one of the -functions in the \LUA\ \type {lang} library. This loading method is quite a bit -faster than going through the \TEX\ language primitives, but some (most?) of that -speed gain would be lost if it had to interpret command sequences while doing so. - -It is possible to specify extra hyphenation points in compound words by using -\type {{-}{}{-}} for the explicit hyphen character (replace \type {-} by the -actual explicit hyphen character if needed). For example, this matches the word -\quote {multi|-|word|-|boundaries} and allows an extra break inbetween \quote -{boun} and \quote {daries}: - -\starttyping -\hyphenation{multi{-}{}{-}word{-}{}{-}boun-daries} -\stoptyping - -The motivation behind the \ETEX\ extension \type {\savinghyphcodes} was that -hyphenation heavily depended on font encodings. This is no longer true in -\LUATEX, and the corresponding primitive is basically ignored. Because we now -have \type {hjcode}, the case relate codes can be used exclusively for \type -{\uppercase} and \type {\lowercase}. - -\section{Applying hyphenation} - -The internal structures \LUATEX\ uses for the insertion of discretionaries in -words is very different from the ones in \TEX82, and that means there are some -noticeable differences in handling as well. - -First and foremost, there is no \quote {compressed trie} involved in hyphenation. -The algorithm still reads \PATGEN-generated pattern files, but \LUATEX\ uses a -finite state hash to match the patterns against the word to be hyphenated. This -algorithm is based on the \quote {libhnj} library used by \OPENOFFICE, which in -turn is inspired by \TEX. - -There are a few differences between \LUATEX\ and \TEX82 that are a direct result -of the implementation: - -\startitemize -\startitem - \LUATEX\ happily hyphenates the full \UNICODE\ character range. -\stopitem -\startitem - Pattern and exception dictionary size is limited by the available memory - only, all allocations are done dynamically. The trie|-|related settings in - \type {texmf.cnf} are ignored. -\stopitem -\startitem - Because there is no \quote {trie preparation} stage, language patterns never - become frozen. This means that the primitive \type {\patterns} (and its \LUA\ - counterpart \type {lang.patterns}) can be used at any time, not only in - ini\TEX. -\stopitem -\startitem - Only the string representation of \type {\patterns} and \type {\hyphenation} is - stored in the format file. At format load time, they are simply - re|-|evaluated. It follows that there is no real reason to preload languages - in the format file. In fact, it is usually not a good idea to do so. It is - much smarter to load patterns no sooner than the first time they are actually - needed. -\stopitem -\startitem - \LUATEX\ uses the language-specific variables \type {\prehyphenchar} and \type - {\posthyphenchar} in the creation of implicit discretionaries, instead of - \TEX82's \type {\hyphenchar}, and the values of the language|-|specific variables - \type {\preexhyphenchar} and \type {\postexhyphenchar} for explicit - discretionaries (instead of \TEX82's empty discretionary). -\stopitem -\startitem - The value of the two counters related to hyphenation, \type {\hyphenpenalty} - and \type {\exhyphenpenalty}, are now stored in the discretionary nodes. This - permits a local overload for explicit \type {\discretionary} commands. The - value current when the hyphenation pass is applied is used. When no callbacks - are used this is compatible with traditional \TEX. When you apply the \LUA\ - \type {lang.hyphenate} function the current values are used. -\stopitem -\stopitemize - -Because we store penalties in the disc node the \type {\discretionary} command has -been extended to accept an optional penalty specification, so you can do the -following: - -\startbuffer -\hsize1mm -1:foo{\hyphenpenalty 10000\discretionary{}{}{}}bar\par -2:foo\discretionary penalty 10000 {}{}{}bar\par -3:foo\discretionary{}{}{}bar\par -\stopbuffer - -\typebuffer - -This results in: - -\blank \start \getbuffer \stop \blank - -Inserted characters and ligatures inherit their attributes from the nearest glyph -node item (usually the preceding one, but the following one for the items -inserted at the left-hand side of a word). - -Word boundaries are no longer implied by font switches, but by language switches. -One word can have two separate fonts and still be hyphenated correctly (but it -can not have two different languages, the \type {\setlanguage} command forces a -word boundary). - -All languages start out with \type {\prehyphenchar=`\-}, \type {\posthyphenchar=0}, -\type {\preexhyphenchar=0} and \type {\postexhyphenchar=0}. When you assign the -values of one of these four parameters, you are actually changing the settings -for the current \type {\language}, this behaviour is compatible with \type {\patterns} -and \type {\hyphenation}. - -\LUATEX\ also hyphenates the first word in a paragraph. Words can be up to 256 -characters long (up from 64 in \TEX82). Longer words generate an error right now, -but eventually either the limitation will be removed or perhaps it will become -possible to silently ignore the excess characters (this is what happens in -\TEX82, but there the behaviour cannot be controlled). - -If you are using the \LUA\ function \type {lang.hyphenate}, you should be aware -that this function expects to receive a list of \quote {character} nodes. It will -not operate properly in the presence of \quote {glyph}, \quote {ligature}, or -\quote {ghost} nodes, nor does it know how to deal with kerning. - -The hyphenation exception dictionary is maintained as key|-|value hash, and that -is also dynamic, so the \type {hyph_size} setting is not used either. - -\section{Applying ligatures and kerning} - -After all possible hyphenation points have been inserted in the list, \LUATEX\ -will process the list to convert the \quote {character} nodes into \quote {glyph} -and \quote {ligature} nodes. This is actually done in two stages: first all -ligatures are processed, then all kerning information is applied to the result -list. But those two stages are somewhat dependent on each other: If the used font -makes it possible to do so, the ligaturing stage adds virtual \quote {character} -nodes to the word boundaries in the list. While doing so, it removes and -interprets \type {\noboundary} nodes. The kerning stage deletes those word -boundary items after it is done with them, and it does the same for \quote -{ghost} nodes. Finally, at the end of the kerning stage, all remaining \quote -{character} nodes are converted to \quote {glyph} nodes. - -This work separation is worth mentioning because, if you overrule from \LUA\ only -one of the two callbacks related to font handling, then you have to make sure you -perform the tasks normally done by \LUATEX\ itself in order to make sure that the -other, non|-|overruled, routine continues to function properly. - -Work in this area is not yet complete, but most of the possible cases are handled -by our rewritten ligaturing engine. At some point all of the possible inputs will -become supported. \footnote {Not all of this makes sense because we nowadays have -\OPENTYPE\ fonts and ligature building can happen in ,any different ways there.} - -For example, take the word \type {office}, hyphenated \type {of-fice}, using a -\quote {normal} font with all the \type {f}-\type {f} and \type {f}-\type {i} -type ligatures: - -\starttabulate[|l|l|] -\NC Initial: \NC \type {{o}{f}{f}{i}{c}{e}} \NC\NR -\NC After hyphenation: \NC \type {{o}{f}{{-},{},{}}{f}{i}{c}{e}} \NC\NR -\NC First ligature stage: \NC \type {{o}{{f-},{f},{<ff>}}{i}{c}{e}} \NC\NR -\NC Final result: \NC \type {{o}{{f-},{<fi>},{<ffi>}}{c}{e}} \NC\NR -\stoptabulate - -That's bad enough, but let us assume that there is also a hyphenation point -between the \type {f} and the \type {i}, to create \type {of-f-ice}. Then the -final result should be: - -\starttyping -{o}{{f-}, - {{f-}, - {i}, - {<fi>}}, - {{<ff>-}, - {i}, - {<ffi>}}}{c}{e} -\stoptyping - -with discretionaries in the post-break text as well as in the replacement text of -the top-level discretionary that resulted from the first hyphenation point. - -Here is that nested solution again, in a different representation: - -\starttabulate[|l|l|l|l|] -\NC \NC pre \NC post \NC replace \NC \NR -\NC topdisc \NC \type {f-}$^1$ \NC sub1 \NC sub2 \NC \NR -\NC sub1 \NC \type {f-}$^2$ \NC \type {i}$^3$ \NC \type {<fi>}$^4$ \NC \NR -\NC sub2 \NC \type {<ff>-}$^5$\NC \type {i}$^6$ \NC \type {<ffi>}$^7$ \NC \NR -\stoptabulate - -When line breaking is choosing its breakpoints, the following fields will -eventually be selected: - -\starttabulate[|l|l|l|] -\NC \type {of-f-ice} \NC \type {f-}$^1$ \NC \NR -\NC \NC \type {f-}$^2$ \NC \NR -\NC \NC \type {i}$^3$ \NC \NR -\NC \type {of-fice} \NC \type {f-}$^1$ \NC \NR -\NC \NC \type {<fi>}$^4$ \NC \NR -\NC \type {off-ice} \NC \type {<ff>-}$^5$ \NC \NR -\NC \NC \type {i}$^6$ \NC \NR -\NC \type {office} \NC \type {<ffi>}$^7$ \NC \NR -\stoptabulate - -The current solution in \LUATEX\ is not able to handle nested discretionaries, -but it is in fact smart enough to handle this fictional \type {of-f-ice} example. -It does so by combining two sequential discretionary nodes as if they were a -single object (where the second discretionary node is treated as an extension of -the first node). - -One can observe that the \type {of-f-ice} and \type {off-ice} cases both end with -the same actual post replacement list (\type {i}), and that this would be the -case even if that \type {i} was the first item of a potential following ligature -like \type {ic}. This allows \LUATEX\ to do away with one of the fields, and thus -make the whole stuff fit into just two discretionary nodes. - -The mapping of the seven list fields to the six fields in this discretionary node -pair is as follows: - -\starttabulate[|l|p|] -\NC \bf field \NC \bf description \NC \NR -\NC \type {disc1.pre} \NC \type {f-}$^1$ \NC \NR -\NC \type {disc1.post} \NC \type {<fi>}$^4$ \NC \NR -\NC \type {disc1.replace} \NC \type {<ffi>}$^7$ \NC \NR -\NC \type {disc2.pre} \NC \type {f-}$^2$ \NC \NR -\NC \type {disc2.post} \NC \type {i}$^{3{,}6}$\NC \NR -\NC \type {disc2.replace} \NC \type {<ff>-}$^5$\NC \NR -\stoptabulate - -What is actually generated after ligaturing has been applied is therefore: - -\starttyping -{o}{{f-}, - {<fi>}, - {<ffi>}} - {{f-}, - {i}, - {<ff>-}}{c}{e} -\stoptyping - -The two discretionaries have different subtypes from a discretionary appearing on -its own: the first has subtype 4, and the second has subtype 5. The need for -these special subtypes stems from the fact that not all of the fields appear in -their \quote {normal} location. The second discretionary especially looks odd, -with things like the \type {<ff>-} appearing in \type {disc2.replace}. The fact -that some of the fields have different meanings (and different processing code -internally) is what makes it necessary to have different subtypes: this enables -\LUATEX\ to distinguish this sequence of two joined discretionary nodes from the -case of two standalone discretionaries appearing in a row. - -Of course there is still that relationship with fonts: ligatures can be implemented by -mapping a sequence of glyphs onto one glyph, but also by selective replacement and -kerning. This means that the above examples are just representing the traditional -approach. - -\section{Breaking paragraphs into lines} - -This code is still almost unchanged, but because of the above|-|mentioned changes -with respect to discretionaries and ligatures, line breaking will potentially be -different from traditional \TEX. The actual line breaking code is still based on -the \TEX82 algorithms, and it does not expect there to be discretionaries inside -of discretionaries. - -But that situation is now fairly common in \LUATEX, due to the changes to the -ligaturing mechanism. And also, the \LUATEX\ discretionary nodes are implemented -slightly different from the \TEX82 nodes: the \type {no_break} text is now -embedded inside the disc node, where previously these nodes kept their place in -the horizontal list. In traditional \TEX\ the discretionary node contains a -counter indicating how many nodes to skip, but in \LUATEX\ we store the pre, post -and replace text in the discretionary node. - -The combined effect of these two differences is that \LUATEX\ does not always use -all of the potential breakpoints in a paragraph, especially when fonts with many -ligatures are used. Of course kerning also complicates matters here. - -\section{The \type {lang} library} - -This library provides the interface to \LUATEX's structure -representing a language, and the associated functions. - -\startfunctioncall -<language> l = lang.new() -<language> l = lang.new(<number> id) -\stopfunctioncall - -This function creates a new userdata object. An object of type \type {<language>} -is the first argument to most of the other functions in the \type {lang} -library. These functions can also be used as if they were object methods, using -the colon syntax. - -Without an argument, the next available internal id number will be assigned to -this object. With argument, an object will be created that links to the internal -language with that id number. - -\startfunctioncall -<number> n = lang.id(<language> l) -\stopfunctioncall - -returns the internal \type {\language} id number this object refers to. - -\startfunctioncall -<string> n = lang.hyphenation(<language> l) -lang.hyphenation(<language> l, <string> n) -\stopfunctioncall - -Either returns the current hyphenation exceptions for this language, or adds new -ones. The syntax of the string is explained in~\in {section} -[patternsexceptions]. - -\startfunctioncall -lang.clear_hyphenation(<language> l) -\stopfunctioncall - -Clears the exception dictionary (string) for this language. - -\startfunctioncall -<string> n = lang.clean(<language> l, <string> o) -<string> n = lang.clean(<string> o) -\stopfunctioncall - -Creates a hyphenation key from the supplied hyphenation value. The syntax of the -argument string is explained in~\in {section} [patternsexceptions]. This function -is useful if you want to do something else based on the words in a dictionary -file, like spell|-|checking. - -\startfunctioncall -<string> n = lang.patterns(<language> l) -lang.patterns(<language> l, <string> n) -\stopfunctioncall - -Adds additional patterns for this language object, or returns the current set. -The syntax of this string is explained in~\in {section} [patternsexceptions]. - -\startfunctioncall -lang.clear_patterns(<language> l) -\stopfunctioncall - -Clears the pattern dictionary for this language. - -\startfunctioncall -<number> n = lang.prehyphenchar(<language> l) -lang.prehyphenchar(<language> l, <number> n) -\stopfunctioncall - -Gets or sets the \quote {pre|-|break} hyphen character for implicit hyphenation -in this language (initially the hyphen, decimal 45). - -\startfunctioncall -<number> n = lang.posthyphenchar(<language> l) -lang.posthyphenchar(<language> l, <number> n) -\stopfunctioncall - -Gets or sets the \quote {post|-|break} hyphen character for implicit hyphenation -in this language (initially null, decimal~0, indicating emptiness). - -\startfunctioncall -<number> n = lang.preexhyphenchar(<language> l) -lang.preexhyphenchar(<language> l, <number> n) -\stopfunctioncall - -Gets or sets the \quote {pre|-|break} hyphen character for explicit hyphenation -in this language (initially null, decimal~0, indicating emptiness). - -\startfunctioncall -<number> n = lang.postexhyphenchar(<language> l) -lang.postexhyphenchar(<language> l, <number> n) -\stopfunctioncall - -Gets or sets the \quote {post|-|break} hyphen character for explicit hyphenation -in this language (initially null, decimal~0, indicating emptiness). - -\startfunctioncall -<boolean> success = lang.hyphenate(<node> head) -<boolean> success = lang.hyphenate(<node> head, <node> tail) -\stopfunctioncall - -Inserts hyphenation points (discretionary nodes) in a node list. If \type {tail} -is given as argument, processing stops on that node. Currently, \type {success} -is always true if \type {head} (and \type {tail}, if specified) are proper nodes, -regardless of possible other errors. - -Hyphenation works only on \quote {characters}, a special subtype of all the glyph -nodes with the node subtype having the value \type {1}. Glyph modes with -different subtypes are not processed. See \in {section~} [charsandglyphs] for -more details. - -The following two commands can be used to set or query hj codes: - -\startfunctioncall -lang.sethjcode(<language> l, <number> char, <number> usedchar) -<number> usedchar = lang.gethjcode(<language> l, <number> char) -\stopfunctioncall - -When you set a hjcode the current sets get initialized unless the set was already -initialized due to \type {\savinghyphcodes} being larger than zero. - -\stopchapter - -\stopcomponent - -% \parindent0pt \hsize=1.1cm -% 12-34-56 \par -% 12-34-\hbox{56} \par -% 12-34-\vrule width 1em height 1.5ex \par -% 12-\hbox{34}-56 \par -% 12-\vrule width 1em height 1.5ex-56 \par -% \hjcode`\1=`\1 \hjcode`\2=`\2 \hjcode`\3=`\3 \hjcode`\4=`\4 \vskip.5cm -% 12-34-56 \par -% 12-34-\hbox{56} \par -% 12-34-\vrule width 1em height 1.5ex \par -% 12-\hbox{34}-56 \par -% 12-\vrule width 1em height 1.5ex-56 \par - diff --git a/doc/context/sources/general/manuals/luatex/luatex-logos.tex b/doc/context/sources/general/manuals/luatex/luatex-logos.tex deleted file mode 100644 index 7406dd602..000000000 --- a/doc/context/sources/general/manuals/luatex/luatex-logos.tex +++ /dev/null @@ -1,19 +0,0 @@ -\startenvironment luatex-logos - -\logo[DFONT] {dfont} -\logo[CFF] {cff} -\logo[CMAP] {CMap} -\logo[PATGEN] {patgen} -\logo[MP] {MetaPost} -\logo[METAPOST] {MetaPost} -\logo[MPLIB] {MPlib} -\logo[COCO] {coco} -\logo[SUNOS] {SunOS} -\logo[BSD] {bsd} -\logo[SYSV] {sysv} -\logo[DPI] {dpi} -\logo[DLL] {dll} -\logo[OPENOFFICE]{OpenOffice} -\logo[OCP] {OCP} - -\stopenvironment diff --git a/doc/context/sources/general/manuals/luatex/luatex-lua.tex b/doc/context/sources/general/manuals/luatex/luatex-lua.tex deleted file mode 100644 index 0960f8032..000000000 --- a/doc/context/sources/general/manuals/luatex/luatex-lua.tex +++ /dev/null @@ -1,572 +0,0 @@ -% language=uk - -\environment luatex-style -\environment luatex-logos - -\startcomponent luatex-lua - -\startchapter[reference=lua,title={\LUA\ general}] - -\section[init]{Initialization} - -\subsection{\LUATEX\ as a \LUA\ interpreter} - -There are some situations that make \LUATEX\ behave like a standalone \LUA\ -interpreter: - -\startitemize[packed] -\startitem - if a \type {--luaonly} option is given on the commandline, or -\stopitem -\startitem - if the executable is named \type {texlua} or \type {luatexlua}, or -\stopitem -\startitem - if the only non|-|option argument (file) on the commandline has the extension - \type {lua} or \type {luc}. -\stopitem -\stopitemize - -In this mode, it will set \LUA's \type {arg[0]} to the found script name, pushing -preceding options in negative values and the rest of the command line in the -positive values, just like the \LUA\ interpreter. - -\LUATEX\ will exit immediately after executing the specified \LUA\ script and is, -in effect, a somewhat bulky stand alone \LUA\ interpreter with a bunch of extra -preloaded libraries. - -\subsection{\LUATEX\ as a \LUA\ byte compiler} - -There are two situations that make \LUATEX\ behave like the \LUA\ byte compiler: - -\startitemize[packed] -\startitem if a \type {--luaconly} option is given on the command line, or \stopitem -\startitem if the executable is named \type {texluac} \stopitem -\stopitemize - -In this mode, \LUATEX\ is exactly like \type {luac} from the stand alone \LUA\ -distribution, except that it does not have the \type {-l} switch, and that it -accepts (but ignores) the \type {--luaconly} switch. - -\subsection{Other commandline processing} - -When the \LUATEX\ executable starts, it looks for the \type {--lua} command line -option. If there is no \type {--lua} option, the command line is interpreted in a -similar fashion as the other \TEX\ engines. Some options are accepted but have no -consequence. The following command|-|line options are understood: - -\starttabulate[|lT|p|] -\NC --credits \NC display credits and exit \NC \NR -\NC --debug-format \NC enable format debugging \NC \NR -\NC --draftmode \NC switch on draft mode i.e.\ generate no output in \PDF\ mode \NC \NR -\NC --[no-]file-line-error \NC disable/enable \type {file:line:error} style messages \NC \NR -\NC --[no-]file-line-error-style \NC aliases of \type {--[no-]file-line-error} \NC \NR -\NC --fmt=FORMAT \NC load the format file \type {FORMAT} \NC\NR -\NC --halt-on-error \NC stop processing at the first error\NC \NR -\NC --help \NC display help and exit \NC\NR -\NC --ini \NC be \type {iniluatex}, for dumping formats \NC\NR -\NC --interaction=STRING \NC set interaction mode: \type {batchmode}, \type {nonstopmode}, \type {scrollmode} or \type {errorstopmode} \NC \NR -\NC --jobname=STRING \NC set the job name to \type {STRING} \NC \NR -\NC --kpathsea-debug=NUMBER \NC set path searching debugging flags according to the bits of \type {NUMBER} \NC \NR -\NC --lua=FILE \NC load and execute a \LUA\ initialization script \NC\NR -\NC --[no-]mktex=FMT \NC disable/enable \type {mktexFMT} generation with \type {FMT} is \type {tex} or \type {tfm} \NC \NR -\NC --nosocket \NC disable the \LUA\ socket library \NC\NR -\NC --output-comment=STRING \NC use \type {STRING} for \DVI\ file comment instead of date (no effect for \PDF) \NC \NR -\NC --output-directory=DIR \NC use \type {DIR} as the directory to write files to \NC \NR -\NC --output-format=FORMAT \NC use \type {FORMAT} for job output; \type {FORMAT} is \type {dvi} or \type {pdf} \NC \NR -\NC --progname=STRING \NC set the program name to \type {STRING} \NC \NR -\NC --recorder \NC enable filename recorder \NC \NR -\NC --safer \NC disable easily exploitable \LUA\ commands \NC\NR -\NC --[no-]shell-escape \NC disable/enable system calls \NC \NR -\NC --shell-restricted \NC restrict system calls to a list of commands given in \type {texmf.cnf} \NC \NR -\NC --synctex=NUMBER \NC enable \type {synctex} \NC \NR -\NC --utc \NC use utc times when applicable \NC \NR -\NC --version \NC display version and exit \NC \NR -\stoptabulate - -Some of the traditional flags are just ignored: \type {--etex}, \type -{--translate-file}, \type {--8bit}. \type {--[no-]parse-first-line}, \type -{--default-translate-file}. Also, we no longer support write18 because \type -{os.execute} can do the same. - -The value to use for \type {\jobname} is decided as follows: - -\startitemize -\startitem - If \type {--jobname} is given on the command line, its argument will be the - value for \type {\jobname}, without any changes. The argument will not be - used for actual input so it need not exist. The \type {--jobname} switch only - controls the \type {\jobname} setting. -\stopitem -\startitem - Otherwise, \type {\jobname} will be the name of the first file that is read - from the file system, with any path components and the last extension (the - part following the last \type {.}) stripped off. -\stopitem -\startitem - An exception to the previous point: if the command line goes into interactive - mode (by starting with a command) and there are no files input via \type - {\everyjob} either, then the \type {\jobname} is set to \type {texput} as a - last resort. -\stopitem -\stopitemize - -The file names for output files that are generated automatically are created by -attaching the proper extension (\type {log}, \type {pdf}, etc.) to the found -\type {\jobname}. These files are created in the directory pointed to by \type -{--output-directory}, or in the current directory, if that switch is not present. - -\blank - -Without the \type {--lua} option, command line processing works like it does in -any other web2c-based typesetting engine, except that \LUATEX\ has a few extra -switches. - -If the \type {--lua} option is present, \LUATEX\ will enter an alternative mode -of command line processing in comparison to the standard web2c programs. - -In this mode, a small series of actions is taken in order. First, it will parse -the command line as usual, but it will only interpret a small subset of the -options immediately: \type {--safer}, \type {--nosocket}, \type -{--[no-]shell-escape}, \type {--enable-write18}, \type {--disable-write18}, \type -{--shell-restricted}, \type {--help}, \type {--version}, and \type {--credits}. - -Next \LUATEX\ searches for the requested \LUA\ initialization script. If it -cannot be found using the actual name given on the command line, a second attempt -is made by prepending the value of the environment variable \type {LUATEXDIR}, if -that variable is defined in the environment. - -Then it checks the various safety switches. You can use those to disable some -\LUA\ commands that can easily be abused by a malicious document. At the moment, -\type {--safer} \type {nil}s the following functions: - -\starttabulate[|l|l|] -\NC \bf library \NC \bf functions \NC \NR -\NC \type {os} \NC \type {execute} \type {exec} \type {spawn} \type {setenv} \type {rename} \type {remove} \type {tmpdir} \NC \NR -\NC \type {io} \NC \type {popen} \type {output} \type {tmpfile} \NC \NR -\NC \type {lfs} \NC \type {rmdir} \type {mkdir} \type {chdir} \type {lock} \type {touch} \NC \NR -\stoptabulate - -Furthermore, it disables loading of compiled \LUA\ libraries and it makes \type -{io.open()} fail on files that are opened for anything besides reading. - -When \LUATEX\ starts it set the locale to a neutral value. If for some reason you -use \type {os.locale}, you need to make sure you \type {nil} it afterwards -because otherwise it can interfere with code that for instance generates dates. -You can nil the locale with - -\starttyping -os.setlocale(nil.nil) -\stoptyping - -The \type {--nosocket} option makes the socket library unavailable, so that \LUA\ -cannot use networking. - -The switches \type {--[no-]shell-escape}, \type {--[enable|disable]-write18}, and -\type {--shell-restricted} have the same effects as in \PDFTEX, and additionally -make \type {io.popen()}, \type {os.execute}, \type {os.exec} and \type {os.spawn} -adhere to the requested option. - -Next the initialization script is loaded and executed. From within the script, -the entire command line is available in the \LUA\ table \type {arg}, beginning with -\type {arg[0]}, containing the name of the executable. As consequence warnings -about unrecognized options are suppressed. - -Command line processing happens very early on. So early, in fact, that none of -\TEX's initializations have taken place yet. For that reason, the tables that -deal with typesetting, like \type {tex}, \type {token}, \type {node} and -\type {pdf}, are off|-|limits during the execution of the startup file (they -are \type {nil}'d). Special care is taken that \type {texio.write} and \type -{texio.write_nl} function properly, so that you can at least report your actions -to the log file when (and if) it eventually becomes opened (note that \TEX\ does -not even know its \type {\jobname} yet at this point). See \in {chapter} [libraries] -for more information about the \LUATEX-specific \LUA\ extension tables. - -Everything you do in the \LUA\ initialization script will remain visible during -the rest of the run, with the exception of the \TEX\ specific libraries like -\type {tex}, \type {token}, \type {node} and \type {pdf} tables. These will be -initialized to their documented state after the execution of the script. You -should not store anything in variables or within tables with these four global -names, as they will be overwritten completely. - -We recommend you use the startup file only for your own \TEX|-|independent -initializations (if you need any), to parse the command line, set values in the -\type {texconfig} table, and register the callbacks you need. - -\LUATEX\ allows some of the command line options to be overridden by reading -values from the \type {texconfig} table at the end of script execution (see the -description of the \type {texconfig} table later on in this document for more -details on which ones exactly). - -Unless the \type {texconfig} table tells \LUATEX\ not to initialize \KPATHSEA\ -at all (set \type {texconfig.kpse_init} to \type {false} for that), \LUATEX\ -acts on some more command line options after the initialization script is -finished: in order to initialize the built|-|in \KPATHSEA\ library properly, -\LUATEX\ needs to know the correct program name to use, and for that it needs to -check \type {--progname}, or \type {--ini} and \type {--fmt}, if \type -{--progname} is missing. - -\section{\LUA\ behaviour} - -\LUA s \type {tostring} function (and \type {string.format} may return values in -scientific notation, thereby confusing the \TEX\ end of things when it is used as -the right|-|hand side of an assignment to a \type {\dimen} or \type {\count}. - -Loading dynamic \LUA\ libraries will fail if there are two \LUA\ libraries loaded -at the same time (which will typically happen on \type {win32}, because there is -one \LUA\ 5.2 inside \LUATEX, and another will likely be linked to the \DLL\ file -of the module itself). - -\LUATEX\ is able to use the kpathsea library to find \type {require()}d modules. -For this purpose, \type {package.searchers[2]} is replaced by a different loader -function, that decides at runtime whether to use kpathsea or the built|-|in core -\LUA\ function. It uses \KPATHSEA\ when that is already initialized at that point -in time, otherwise it reverts to using the normal \type {package.path} loader. - -Initialization of \KPATHSEA\ can happen either implicitly (when \LUATEX\ starts -up and the startup script has not set \type {texconfig.kpse_init} to false), or -explicitly by calling the \LUA\ function \type {kpse.set_program_name()}. - -\LUATEX\ is able to use dynamically loadable \LUA\ libraries, unless -\type {--safer} was given as an option on the command line. For this purpose, -\type {package.searchers[3]} is replaced by a different loader function, that -decides at runtime whether to use \KPATHSEA\ or the built|-|in core \LUA\ -function. It uses \KPATHSEA\ when that is already initialized at that point in -time, otherwise it reverts to using the normal \type {package.cpath} loader. - -This functionality required an extension to kpathsea: - -\startnarrower -There is a new kpathsea file format: \type {kpse_clua_format} that searches for -files with extension \type {.dll} and \type {.so}. The \type {texmf.cnf} setting -for this variable is \type {CLUAINPUTS}, and by default it has this value: - -\starttyping -CLUAINPUTS=.:$SELFAUTOLOC/lib/{$progname,$engine,}/lua// -\stoptyping - -This path is imperfect (it requires a \TDS\ subtree below the binaries -directory), but the architecture has to be in the path somewhere, and the -currently simplest way to do that is to search below the binaries directory only. -Of course it no big deal to write an alternative loader and use that in a macro -package. - -One level up (a \type {lib} directory parallel to \type {bin}) would have been -nicer, but that is not doable because \TEXLIVE\ uses a \type {bin/<arch>} -structure. -\stopnarrower - -In keeping with the other \TEX|-|like programs in \TEXLIVE, the two \LUA\ functions -\type {os.execute} and \type {io.popen}, as well as the two new functions \type -{os.exec} and \type {os.spawn} that are explained below, take the value of \type -{shell_escape} and|/|or \type {shell_escape_commands} in account. Whenever -\LUATEX\ is run with the assumed intention to typeset a document (and by that we -mean that it is called as \type {luatex}, as opposed to \type {texlua}, and that -the command line option \type {--luaonly} was not given), it will only run the -four functions above if the matching \type {texmf.cnf} variable(s) or their \type -{texconfig} (see \in {section} [texconfig]) counterparts allow execution of the -requested system command. In \quote {script interpreter} runs of \LUATEX, these -settings have no effect, and all four functions function as normal. - -The \type {f:read("*line")} and \type {f:lines()} functions from the io library -have been adjusted so that they are line|-|ending neutral: any of \type {LF}, -\type {CR} or \type {CR+LF} are acceptable line endings. - -\type {luafilesystem} has been extended: there are two extra boolean functions -(\type {lfs.isdir(filename)} and \type {lfs.isfile(filename)}) and one extra -string field in its attributes table (\type {permissions}). There is an -additional function \type {lfs.shortname()} which takes a file name and returns -its short name on \type {win32} platforms. On other platforms, it just returns -the given argument. The file name is not tested for existence. Finally, for -non|-|\type {win32} platforms only, there is the new function \type -{lfs.readlink()} hat takes an existing symbolic link as argument and returns its -content. It returns an error on \type {win32}. - -The \type {string} library has an extra function: \type {string.explode(s[,m])}. -This function returns an array containing the string argument \type {s} split -into sub-strings based on the value of the string argument \type {m}. The second -argument is a string that is either empty (this splits the string into -characters), a single character (this splits on each occurrence of that -character, possibly introducing empty strings), or a single character followed by -the plus sign \type {+} (this special version does not create empty sub-strings). -The default value for \type {m} is \quote {\type { +}} (multiple spaces). Note: -\type {m} is not hidden by surrounding braces as it would be if this function was -written in \TEX\ macros. - -The \type {string} library also has six extra iterators that return strings -piecemeal: - -\startitemize -\startitem - \type {string.utfvalues(s)}: an integer value in the \UNICODE\ range -\stopitem -\startitem - \type {string.utfcharacters(s)}: a string with a single \UTF-8 token in it -\stopitem -\startitem - \type {string.characters(s)} \NC a string containing one byte -\stopitem -\startitem - \type {string.characterpairs(s)} two strings each containing one byte or an - empty second string if the string length was odd -\stopitem -\startitem - \type {string.bytes(s)} a single byte value -\stopitem -\startitem - \type {string.bytepairs(s)} two byte values or nil instead of a number as - its second return value if the string length was odd -\stopitem -\stopitemize - -The \type {string.characterpairs()} and \type {string.bytepairs()} iterators -are useful especially in the conversion of \UTF16 encoded data into \UTF8. - -There is also a two|-|argument form of \type {string.dump()}. The second argument -is a boolean which, if true, strips the symbols from the dumped data. This -matches an extension made in \type {luajit}. - -The \type {string} library functions \type {len}, \type {lower}, \type {sub} -etc.\ are not \UNICODE|-|aware. For strings in the \UTF8 encoding, i.e., strings -containing characters above code point 127, the corresponding functions from the -\type {slnunicode} library can be used, e.g., \type {unicode.utf8.len}, \type -{unicode.utf8.lower} etc.\ The exceptions are \type {unicode.utf8.find}, that -always returns byte positions in a string, and \type {unicode.utf8.match} and -\type {unicode.utf8.gmatch}. While the latter two functions in general {\it -are} \UNICODE|-|aware, they fall|-|back to non|-|\UNICODE|-|aware behavior when -using the empty capture \type {()} but other captures work as expected. For the -interpretation of character classes in \type {unicode.utf8} functions refer to -the library sources at \hyphenatedurl {http://luaforge.net/projects/sln}. Version -5.3 of \LUA\ will provide some native \UTF8 support. - -\blank - -The \type {os} library has a few extra functions and variables: - -\startitemize - -\startitem - \type {os.selfdir} is a variable that holds the directory path of the - actual executable. For example: \type {\directlua {tex.sprint(os.selfdir)}}. -\stopitem - -\startitem - \type {os.exec(commandline)} is a variation on \type {os.execute}. Here - \type {commandline} can be either a single string or a single table. - - If the argument is a table \LUATEX\ first checks if there is a value at - integer index zero. If there is, this is the command to be executed. - Otherwise, it will use the value at integer index one. If neither are - present, nothing at all happens. - - The set of consecutive values starting at integer~1 in the table are the - arguments that are passed on to the command (the value at index~1 becomes - \type {arg[0]}). The command is searched for in the execution path, so there - is normally no need to pass on a fully qualified path name. - - If the argument is a string, then it is automatically converted into a table - by splitting on whitespace. In this case, it is impossible for the command - and first argument to differ from each other. - - In the string argument format, whitespace can be protected by putting (part - of) an argument inside single or double quotes. One layer of quotes is - interpreted by \LUATEX, and all occurrences of \type {\"}, \type {\'} or \type - {\\} within the quoted text are unescaped. In the table format, there is no - string handling taking place. - - This function normally does not return control back to the \LUA\ script: the - command will replace the current process. However, it will return the two - values \type {nil} and \type {error} if there was a problem while - attempting to execute the command. - - On \MSWINDOWS, the current process is actually kept in memory until after the - execution of the command has finished. This prevents crashes in situations - where \TEXLUA\ scripts are run inside integrated \TEX\ environments. - - The original reason for this command is that it cleans out the current - process before starting the new one, making it especially useful for use in - \TEXLUA. -\stopitem - -\startitem - \type {os.spawn(commandline)} is a returning version of \type {os.exec}, - with otherwise identical calling conventions. - - If the command ran ok, then the return value is the exit status of the - command. Otherwise, it will return the two values \type {nil} and \type - {error}. -\stopitem - -\startitem - \type {os.setenv(key,value)} sets a variable in the environment. Passing - \type {nil} instead of a value string will remove the variable. -\stopitem - -\startitem - \type {os.env} is a hash table containing a dump of the variables and - values in the process environment at the start of the run. It is writeable, - but the actual environment is {\em not\/} updated automatically. -\stopitem - -\startitem - \type {os.gettimeofday()} returns the current \quote {\UNIX\ time}, but as a - float. This function is not available on the \SUNOS\ platforms, so do not use - this function for portable documents. -\stopitem - -\startitem - \type {os.times()}returns the current process times according to \ the - \UNIX\ C library function \quote {times}. This function is not available on - the \MSWINDOWS\ and \SUNOS\ platforms, so do not use this function for - portable documents. -\stopitem - -\startitem - \type {os.tmpdir()} creates a directory in the \quote {current directory} - with the name \type {luatex.XXXXXX} where the \type {X}-es are replaced by a - unique string. The function also returns this string, so you can \type - {lfs.chdir()} into it, or \type {nil} if it failed to create the directory. - The user is responsible for cleaning up at the end of the run, it does not - happen automatically. -\stopitem - -\startitem - \type {os.type} is a string that gives a global indication of the class of - operating system. The possible values are currently \type {windows}, \type - {unix}, and \type {msdos} (you are unlikely to find this value \quote {in the - wild}). -\stopitem - -\startitem - \type {os.name} is a string that gives a more precise indication of the - operating system. These possible values are not yet fixed, and for \type - {os.type} values \type {windows} and \type {msdos}, the \type {os.name} - values are simply \type {windows} and \type {msdos} - - The list for the type \type {unix} is more precise: \type {linux}, \type - {freebsd}, \type {kfreebsd}, \type {cygwin}, \type {openbsd}, \type - {solaris}, \type {sunos} (pre-solaris), \type {hpux}, \type {irix}, \type - {macosx}, \type {gnu} (hurd), \type {bsd} (unknown, but \BSD|-|like), \type - {sysv} (unknown, but \SYSV|-|like), \type {generic} (unknown). -\stopitem - -\startitem - \type {os.uname()} returns a table with specific operating system - information acquired at runtime. The keys in the returned table are all - string valued, and their names are: \type {sysname}, \type {machine}, \type - {release}, \type {version}, and \type {nodename}. -\stopitem - -\stopitemize - -In stock \LUA, many things depend on the current locale. In \LUATEX, we can't do -that, because it makes documents unportable. While \LUATEX\ is running if -forces the following locale settings: - -\starttyping -LC_CTYPE=C -LC_COLLATE=C -LC_NUMERIC=C -\stoptyping - -\section {\LUA\ modules} - -Some modules that are normally external to \LUA\ are statically linked in with -\LUATEX, because they offer useful functionality: - -\startitemize - -\startitem - \type {slnunicode}, from the \type {selene} libraries, \hyphenatedurl - {http://luaforge.net/projects/sln}. This library has been slightly extended - so that the \type {unicode.utf8.*} functions also accept the first 256 values - of plane~18. This is the range \LUATEX\ uses for raw binary output, as - explained above. -\stopitem - -\startitem - \type {luazip}, from the kepler project, \hyphenatedurl - {http://www.keplerproject.org/luazip/}. -\stopitem - -\startitem - \type {luafilesystem}, also from the kepler project, \hyphenatedurl - {http://www.keplerproject.org/luafilesystem/}. -\stopitem - -\startitem - \type {lpeg}, by Roberto Ierusalimschy, \hyphenatedurl - {http://www.inf.puc-rio.br/~roberto/lpeg/lpeg.html}. This library is not - \UNICODE|-|aware, but interprets strings on a byte|-|per|-|byte basis. This - mainly means that \type {lpeg.S} cannot be used with \UTF8 characters encoded - in more than two bytes, and thus \type {lpeg.S} will look for one of those - two bytes when matching, not the combination of the two. The same is true for - \type {lpeg.R}, although the latter will display an error message if used - with multibyte characters. Therefore \type {lpeg.R('aä')} results in the - message \type {bad argument #1 to 'R' (range must have two characters)}, - since to \type {lpeg}, \type {ä} is two 'characters' (bytes), so \type {aä} - totals three. In practice this is no real issue. -\stopitem - -\startitem - \type {lzlib}, by Tiago Dionizio, \hyphenatedurl - {http://luaforge.net/projects/lzlib/}. -\stopitem - -\startitem - \type {md5}, by Roberto Ierusalimschy \hyphenatedurl - {http://www.inf.puc-rio.br/~roberto/md5/md5-5/md5.html}. -\stopitem - -\startitem - \type {luasocket}, by Diego Nehab \hyphenatedurl - {http://w3.impa.br/~diego/software/luasocket/}. The \type {.lua} support - modules from \type {luasocket} are also preloaded inside the executable, - there are no external file dependencies. -\stopitem - -\stopitemize - -At some point (this also depends on distributions) \LUATEX\ might have these -libraries loaded on demand. For this reason you can best use \type {require} to -make sure they are loaded. - -\section{Testing} - -For development reasons you can influence the used startup date and time. This can -be done in two ways. - -\startitemize[n] - -\startitem - By setting the environmment variable \type {SOURCE_DATE_EPOCH}. This will - influence the \TEX\ parameters \type {time} and \type {date}, the random seed, - the \PDF\ timestamp and the \PDF\ id that is derived from the time as well. This - variable is consulted when the \KPSE\ library is enabled. Resolving is - delegated to this library. -\stopitem - -\startitem - By setting the \type {start_time} variable in the \type {texconfig} table; as - with other variables we use the internal name there. For compatibility - reasons we also honour a \type {SOURCE_DATE_EPOCH} entry. It should be noted - that there are no such variables in other engines and this method is only - relevant in case the while setup happens in \LUA. -\stopitem - -\stopitemize - -When Universal Time is needed, you can pass the flag \type {utc} to the engine. This -property also works when the date and time are set by \LUATEX\ itself. It has a -complementary entry \type {use_utc_time} in the \type {texconfig} table. - -{\em To some extend a cleaner solution would be to have a flag that disables all -variable data in one go (like filenames and so) but we just follow the method -implemented in \PDFTEX\ where primitives are used to influence other properties.} - -{\em In \CONTEXT\ we provide the command line argument \type {--nodates} that -does bit more disabling of dates.} - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/luatex/luatex-math.tex b/doc/context/sources/general/manuals/luatex/luatex-math.tex deleted file mode 100644 index cb8d198b1..000000000 --- a/doc/context/sources/general/manuals/luatex/luatex-math.tex +++ /dev/null @@ -1,1049 +0,0 @@ -% language=uk - -\environment luatex-style -\environment luatex-logos - -\startcomponent luatex-math - -\startchapter[reference=math,title={Math}] - -The handling of mathematics in \LUATEX\ differs quite a bit from how \TEX82 (and -therefore \PDFTEX) handles math. First, \LUATEX\ adds primitives and extends some -others so that \UNICODE\ input can be used easily. Second, all of \TEX82's -internal special values (for example for operator spacing) have been made -accessible and changeable via control sequences. Third, there are extensions that -make it easier to use \OPENTYPE\ math fonts. And finally, there are some -extensions that have been proposed or considered in the past that are now added -to the engine. - -\section{The current math style} - -It is possible to discover the math style that will be used for a formula in an -expandable fashion (while the math list is still being read). To make this -possible, \LUATEX\ adds the new primitive: \type {\mathstyle}. This is a \quote -{convert command} like e.g. \type {\romannumeral}: its value can only be read, -not set. - -\subsection{\type {\mathstyle}} - -The returned value is between 0 and 7 (in math mode), or $-1$ (all other modes). -For easy testing, the eight math style commands have been altered so that the can -be used as numeric values, so you can write code like this: - -\starttyping -\ifnum\mathstyle=\textstyle - \message{normal text style} -\else \ifnum\mathstyle=\crampedtextstyle - \message{cramped text style} -\fi \fi -\stoptyping - -\subsection{\type {\Ustack}} - -There are a few math commands in \TEX\ where the style that will be used is not -known straight from the start. These commands (\type {\over}, \type {\atop}, -\type {\overwithdelims}, \type {\atopwithdelims}) would therefore normally return -wrong values for \type {\mathstyle}. To fix this, \LUATEX\ introduces a special -prefix command: \type {\Ustack}: - -\starttyping -$\Ustack {a \over b}$ -\stoptyping - -The \type {\Ustack} command will scan the next brace and start a new math group -with the correct (numerator) math style. - -\section{Unicode math characters} - -Character handling is now extended up to the full \UNICODE\ range (the \type {\U} -prefix), which is compatible with \XETEX. - -The math primitives from \TEX\ are kept as they are, except for the ones that -convert from input to math commands: \type {mathcode}, and \type {delcode}. These -two now allow for a 21-bit character argument on the left hand side of the equals -sign. - -Some of the new \LUATEX\ primitives read more than one separate value. This is -shown in the tables below by a plus sign in the second column. - -The input for such primitives would look like this: - -\starttyping -\def\overbrace{\Umathaccent 0 1 "23DE } -\stoptyping - -The altered \TEX82 primitives are: - -\starttabulate[|l|l|r|c|l|r|] -\NC \bf primitive \NC \bf min \NC \bf max \NC \kern 2em \NC \bf min \NC \bf max \NC \NR -\NC \type {\mathcode} \NC 0 \NC 10FFFF \NC = \NC 0 \NC 8000 \NC \NR -\NC \type {\delcode} \NC 0 \NC 10FFFF \NC = \NC 0 \NC FFFFFF \NC \NR -\stoptabulate - -The unaltered ones are: - -\starttabulate[|l|l|r|] -\NC \bf primitive \NC \bf min \NC \bf max \NC \NR -\NC \type {\mathchardef} \NC 0 \NC 8000 \NC \NR -\NC \type {\mathchar} \NC 0 \NC 7FFF \NC \NR -\NC \type {\mathaccent} \NC 0 \NC 7FFF \NC \NR -\NC \type {\delimiter} \NC 0 \NC 7FFFFFF \NC \NR -\NC \type {\radical} \NC 0 \NC 7FFFFFF \NC \NR -\stoptabulate - -For practical reasons \type {\mathchardef} will silently accept values larger -that \type {0x8000} and interpret it as \type {\Umathcharnumdef}. This is needed -to satisfy older macro packages. - -The following new primitives are compatible with \XETEX: - -% somewhat fuzzy: - -\starttabulate[|l|l|r|c|l|r|] -\NC \bf primitive \NC \bf min \NC \bf max \NC \kern 2em \NC \bf min \NC \bf max \NC \NR -\NC \type {\Umathchardef} \NC 0+0+0 \NC 7+FF+10FFFF\rlap{\high{1}} \NC \NC \NC \NC \NR -\NC \type {\Umathcharnumdef}\rlap{\high{5}} \NC -80000000 \NC 7FFFFFFF\rlap{\high{3}} \NC \NC \NC \NC \NR -\NC \type {\Umathcode} \NC 0 \NC 10FFFF \NC = \NC 0+0+0 \NC 7+FF+10FFFF\rlap{\high{1}} \NC \NR -\NC \type {\Udelcode} \NC 0 \NC 10FFFF \NC = \NC 0+0 \NC FF+10FFFF\rlap{\high{2}} \NC \NR -\NC \type {\Umathchar} \NC 0+0+0 \NC 7+FF+10FFFF \NC \NC \NC \NC \NR -\NC \type {\Umathaccent} \NC 0+0+0 \NC 7+FF+10FFFF\rlap{\high{2,4}} \NC \NC \NC \NC \NR -\NC \type {\Udelimiter} \NC 0+0+0 \NC 7+FF+10FFFF\rlap{\high{2}} \NC \NC \NC \NC \NR -\NC \type {\Uradical} \NC 0+0 \NC FF+10FFFF\rlap{\high{2}} \NC \NC \NC \NC \NR -\NC \type {\Umathcharnum} \NC -80000000 \NC 7FFFFFFF\rlap{\high{3}} \NC \NC \NC \NC \NR -\NC \type {\Umathcodenum} \NC 0 \NC 10FFFF \NC = \NC -80000000 \NC 7FFFFFFF\rlap{\high{3}} \NC \NR -\NC \type {\Udelcodenum} \NC 0 \NC 10FFFF \NC = \NC -80000000 \NC 7FFFFFFF\rlap{\high{3}} \NC \NR -\stoptabulate - -Specifications typically look like: - -\starttyping -\Umathchardef\xx="1"0"456 -\Umathcode 123="1"0"789 -\stoptyping - -Note 1: The new primitives that deal with delimiter|-|style objects do not set up a -\quote {large family}. Selecting a suitable size for display purposes is expected -to be dealt with by the font via the \type {\Umathoperatorsize} parameter (more -information can be found in a following section). - -Note 2: For these three primitives, all information is packed into a single -signed integer. For the first two (\type {\Umathcharnum} and \type -{\Umathcodenum}), the lowest 21 bits are the character code, the 3 bits above -that represent the math class, and the family data is kept in the topmost bits -(This means that the values for math families 128--255 are actually negative). -For \type {\Udelcodenum} there is no math class. The math family information is -stored in the bits directly on top of the character code. Using these three -commands is not as natural as using the two- and three|-|value commands, so -unless you know exactly what you are doing and absolutely require the speedup -resulting from the faster input scanning, it is better to use the verbose -commands instead. - -Note 3: The \type {\Umathaccent} command accepts optional keywords to control -various details regarding math accents. See \in {section} [mathacc] below for -details. - -New primitives that exist in \LUATEX\ only (all of these will be explained -in following sections): - -\starttabulate[|l|l|l|l|] -\NC \bf primitive \NC \bf value range (in hex) \NC \NR -\NC \type {\Uroot} \NC 0+0--FF+10FFFF$^2$ \NC \NR -\NC \type {\Uoverdelimiter} \NC 0+0--FF+10FFFF$^2$ \NC \NR -\NC \type {\Uunderdelimiter} \NC 0+0--FF+10FFFF$^2$ \NC \NR -\NC \type {\Udelimiterover} \NC 0+0--FF+10FFFF$^2$ \NC \NR -\NC \type {\Udelimiterunder} \NC 0+0--FF+10FFFF$^2$ \NC \NR -\stoptabulate - -\section{Cramped math styles} - -\LUATEX\ has four new primitives to set the cramped math styles directly: - -\starttyping -\crampeddisplaystyle -\crampedtextstyle -\crampedscriptstyle -\crampedscriptscriptstyle -\stoptyping - -These additional commands are not all that valuable on their own, but they come -in handy as arguments to the math parameter settings that will be added shortly. - -In Eijkhouts \quotation {\TEX\ by Topic} the rules for handling styles in scripts -are described as follows: - -\startitemize -\startitem - In any style superscripts and subscripts are taken from the next smaller style. - Exception: in display style they are taken in script style. -\stopitem -\startitem - Subscripts are always in the cramped variant of the style; superscripts are only - cramped if the original style was cramped. -\stopitem -\startitem - In an \type {..\over..} formula in any style the numerator and denominator are - taken from the next smaller style. -\stopitem -\startitem - The denominator is always in cramped style; the numerator is only in cramped - style if the original style was cramped. -\stopitem -\startitem - Formulas under a \type {\sqrt} or \type {\overline} are in cramped style. -\stopitem -\stopitemize - -In \LUATEX\ one can set the styles in more detail which means that you sometimes -have to set both normal and cramped styles to get the effect you want. If we -force styles in the script using \type {\scriptstyle} and \type {\crampedscriptstyle} -we get this: - -\startbuffer[demo] -\starttabulate -\NC default \NC $b_{x=xx}^{x=xx}$ \NC \NR -\NC script \NC $b_{\scriptstyle x=xx}^{\scriptstyle x=xx}$ \NC \NR -\NC crampedscript \NC $b_{\crampedscriptstyle x=xx}^{\crampedscriptstyle x=xx}$ \NC \NR -\stoptabulate -\stopbuffer - -\getbuffer[demo] - -Now we set the following parameters - -\startbuffer[setup] -\Umathordrelspacing\scriptstyle=30mu -\Umathordordspacing\scriptstyle=30mu -\stopbuffer - -\typebuffer[setup] - -This gives: - -\start\getbuffer[setup,demo]\stop - -But, as this is not what is expected (visually) we should say: - -\startbuffer[setup] -\Umathordrelspacing\scriptstyle=30mu -\Umathordordspacing\scriptstyle=30mu -\Umathordrelspacing\crampedscriptstyle=30mu -\Umathordordspacing\crampedscriptstyle=30mu -\stopbuffer - -\typebuffer[setup] - -Now we get: - -\start\getbuffer[setup,demo]\stop - -\section{Math parameter settings} - -In \LUATEX, the font dimension parameters that \TEX\ used in math typesetting are -now accessible via primitive commands. In fact, refactoring of the math engine -has resulted in many more parameters than were accessible before. - -\starttabulate -\NC \bf primitive name \NC \bf description \NC \NR -\NC \type {\Umathquad} \NC the width of 18 mu's \NC \NR -\NC \type {\Umathaxis} \NC height of the vertical center axis of - the math formula above the baseline \NC \NR -\NC \type {\Umathoperatorsize} \NC minimum size of large operators in display mode \NC \NR -\NC \type {\Umathoverbarkern} \NC vertical clearance above the rule \NC \NR -\NC \type {\Umathoverbarrule} \NC the width of the rule \NC \NR -\NC \type {\Umathoverbarvgap} \NC vertical clearance below the rule \NC \NR -\NC \type {\Umathunderbarkern} \NC vertical clearance below the rule \NC \NR -\NC \type {\Umathunderbarrule} \NC the width of the rule \NC \NR -\NC \type {\Umathunderbarvgap} \NC vertical clearance above the rule \NC \NR -\NC \type {\Umathradicalkern} \NC vertical clearance above the rule \NC \NR -\NC \type {\Umathradicalrule} \NC the width of the rule \NC \NR -\NC \type {\Umathradicalvgap} \NC vertical clearance below the rule \NC \NR -\NC \type {\Umathradicaldegreebefore}\NC the forward kern that takes place before placement of - the radical degree \NC \NR -\NC \type {\Umathradicaldegreeafter} \NC the backward kern that takes place after placement of - the radical degree \NC \NR -\NC \type {\Umathradicaldegreeraise} \NC this is the percentage of the total height and depth of - the radical sign that the degree is raised by; it is - expressed in \type {percents}, so 60\% is expressed as the - integer $60$ \NC \NR -\NC \type {\Umathstackvgap} \NC vertical clearance between the two - elements in a \type {\atop} stack \NC \NR -\NC \type {\Umathstacknumup} \NC numerator shift upward in \type {\atop} stack \NC \NR -\NC \type {\Umathstackdenomdown} \NC denominator shift downward in \type {\atop} stack \NC \NR -\NC \type {\Umathfractionrule} \NC the width of the rule in a \type {\over} \NC \NR -\NC \type {\Umathfractionnumvgap} \NC vertical clearance between the numerator and the rule \NC \NR -\NC \type {\Umathfractionnumup} \NC numerator shift upward in \type {\over} \NC \NR -\NC \type {\Umathfractiondenomvgap} \NC vertical clearance between the denominator and the rule \NC \NR -\NC \type {\Umathfractiondenomdown} \NC denominator shift downward in \type {\over} \NC \NR -\NC \type {\Umathfractiondelsize} \NC minimum delimiter size for \type {\...withdelims} \NC \NR -\NC \type {\Umathlimitabovevgap} \NC vertical clearance for limits above operators \NC \NR -\NC \type {\Umathlimitabovebgap} \NC vertical baseline clearance for limits above operators \NC \NR -\NC \type {\Umathlimitabovekern} \NC space reserved at the top of the limit \NC \NR -\NC \type {\Umathlimitbelowvgap} \NC vertical clearance for limits below operators \NC \NR -\NC \type {\Umathlimitbelowbgap} \NC vertical baseline clearance for limits below operators \NC \NR -\NC \type {\Umathlimitbelowkern} \NC space reserved at the bottom of the limit \NC \NR -\NC \type {\Umathoverdelimitervgap} \NC vertical clearance for limits above delimiters \NC \NR -\NC \type {\Umathoverdelimiterbgap} \NC vertical baseline clearance for limits above delimiters \NC \NR -\NC \type {\Umathunderdelimitervgap} \NC vertical clearance for limits below delimiters \NC \NR -\NC \type {\Umathunderdelimiterbgap} \NC vertical baseline clearance for limits below delimiters \NC \NR -\NC \type {\Umathsubshiftdrop} \NC subscript drop for boxes and subformulas \NC \NR -\NC \type {\Umathsubshiftdown} \NC subscript drop for characters \NC \NR -\NC \type {\Umathsupshiftdrop} \NC superscript drop (raise, actually) for boxes and subformulas \NC \NR -\NC \type {\Umathsupshiftup} \NC superscript raise for characters \NC \NR -\NC \type {\Umathsubsupshiftdown} \NC subscript drop in the presence of a superscript \NC \NR -\NC \type {\Umathsubtopmax} \NC the top of standalone subscripts cannot be higher than this - above the baseline \NC \NR -\NC \type {\Umathsupbottommin} \NC the bottom of standalone superscripts cannot be less than - this above the baseline \NC \NR -\NC \type {\Umathsupsubbottommax} \NC the bottom of the superscript of a combined super- and subscript - be at least as high as this above the baseline \NC \NR -\NC \type {\Umathsubsupvgap} \NC vertical clearance between super- and subscript \NC \NR -\NC \type {\Umathspaceafterscript} \NC additional space added after a super- or subscript \NC \NR -\NC \type {\Umathconnectoroverlapmin}\NC minimum overlap between parts in an extensible recipe \NC \NR -\stoptabulate - -Each of the parameters in this section can be set by a command like this: - -\starttyping -\Umathquad\displaystyle=1em -\stoptyping - -they obey grouping, and you can use \type {\the\Umathquad\displaystyle} if -needed. - -\section{Skips around display math} - -The injection of \type {\abovedisplayskip} and \type {\belowdisplayskip} is not -symmetrical. An above one is always inserted, also when zero, but the below is -only inserted when larger than zero. Especially the later mkes it sometimes hard -to fully control spacing. Therefore \LUATEX\ comes with a new directive: \type -{\mathdisplayskipmode}. The following values apply: - -\starttabulate -\NC 0 \NC normal \TEX\ behaviour: always above, only below when larger than zero \NC \NR -\NC 1 \NC always \NC \NR -\NC 2 \NC only when not zero \NC \NR -\NC 3 \NC never, not even when not zero \NC \NR -\stoptabulate - -\section{Font-based Math Parameters} - -While it is nice to have these math parameters available for tweaking, it would -be tedious to have to set each of them by hand. For this reason, \LUATEX\ -initializes a bunch of these parameters whenever you assign a font identifier to -a math family based on either the traditional math font dimensions in the font -(for assignments to math family~2 and~3 using \TFM|-|based fonts like \type -{cmsy} and \type {cmex}), or based on the named values in a potential \type -{MathConstants} table when the font is loaded via Lua. If there is a \type -{MathConstants} table, this takes precedence over font dimensions, and in that -case no attention is paid to which family is being assigned to: the \type -{MathConstants} tables in the last assigned family sets all parameters. - -In the table below, the one|-|letter style abbreviations and symbolic tfm font -dimension names match those using in the \TeX book. Assignments to \type -{\textfont} set the values for the cramped and uncramped display and text styles, -\type {\scriptfont} sets the script styles, and \type {\scriptscriptfont} sets -the scriptscript styles, so we have eight parameters for three font sizes. In the -\TFM\ case, assignments only happen in family~2 and family~3 (and of course only -for the parameters for which there are font dimensions). - -Besides the parameters below, \LUATEX\ also looks at the \quote {space} font -dimension parameter. For math fonts, this should be set to zero. - -\start - -\switchtobodyfont[8pt] - -\starttabulate[|l|l|l|p|] -\NC \bf variable \NC \bf style \NC \bf default value opentype \NC \bf default value tfm \NC \NR -\NC \type {\Umathaxis} \NC -- \NC AxisHeight \NC axis_height \NC \NR -\NC \type {\Umathoperatorsize} \NC D, D' \NC DisplayOperatorMinHeight \NC $^6$ \NC \NR -\NC \type {\Umathfractiondelsize} \NC D, D' \NC FractionDelimiterDisplayStyleSize$^9$ \NC delim1 \NC \NR -\NC \NC T, T', S, S', SS, SS' \NC FractionDelimiterSize$^9$ \NC delim2 \NC \NR -\NC \type {\Umathfractiondenomdown} \NC D, D' \NC FractionDenominatorDisplayStyleShiftDown \NC denom1 \NC \NR -\NC \NC T, T', S, S', SS, SS' \NC FractionDenominatorShiftDown \NC denom2 \NC \NR -\NC \type {\Umathfractiondenomvgap} \NC D, D' \NC FractionDenominatorDisplayStyleGapMin \NC 3*default_rule_thickness \NC \NR -\NC \NC T, T', S, S', SS, SS' \NC FractionDenominatorGapMin \NC default_rule_thickness \NC \NR -\NC \type {\Umathfractionnumup} \NC D, D' \NC FractionNumeratorDisplayStyleShiftUp \NC num1 \NC \NR -\NC \NC T, T', S, S', SS, SS' \NC FractionNumeratorShiftUp \NC num2 \NC \NR -\NC \type {\Umathfractionnumvgap} \NC D, D' \NC FractionNumeratorDisplayStyleGapMin \NC 3*default_rule_thickness \NC \NR -\NC \NC T, T', S, S', SS, SS' \NC FractionNumeratorGapMin \NC default_rule_thickness \NC \NR -\NC \type {\Umathfractionrule} \NC -- \NC FractionRuleThickness \NC default_rule_thickness \NC \NR -\NC \type {\Umathskewedfractionhgap} \NC -- \NC SkewedFractionHorizontalGap \NC math_quad/2 \NC \NR -\NC \type {\Umathskewedfractionvgap} \NC -- \NC SkewedFractionVerticalGap \NC math_x_height \NC \NR -\NC \type {\Umathlimitabovebgap} \NC -- \NC UpperLimitBaselineRiseMin \NC big_op_spacing3 \NC \NR -\NC \type {\Umathlimitabovekern} \NC -- \NC 0$^1$ \NC big_op_spacing5 \NC \NR -\NC \type {\Umathlimitabovevgap} \NC -- \NC UpperLimitGapMin \NC big_op_spacing1 \NC \NR -\NC \type {\Umathlimitbelowbgap} \NC -- \NC LowerLimitBaselineDropMin \NC big_op_spacing4 \NC \NR -\NC \type {\Umathlimitbelowkern} \NC -- \NC 0$^1$ \NC big_op_spacing5 \NC \NR -\NC \type {\Umathlimitbelowvgap} \NC -- \NC LowerLimitGapMin \NC big_op_spacing2 \NC \NR -\NC \type {\Umathoverdelimitervgap} \NC -- \NC StretchStackGapBelowMin \NC big_op_spacing1 \NC \NR -\NC \type {\Umathoverdelimiterbgap} \NC -- \NC StretchStackTopShiftUp \NC big_op_spacing3 \NC \NR -\NC \type {\Umathunderdelimitervgap} \NC-- \NC StretchStackGapAboveMin \NC big_op_spacing2 \NC \NR -\NC \type {\Umathunderdelimiterbgap} \NC-- \NC StretchStackBottomShiftDown \NC big_op_spacing4 \NC \NR -\NC \type {\Umathoverbarkern} \NC -- \NC OverbarExtraAscender \NC default_rule_thickness \NC \NR -\NC \type {\Umathoverbarrule} \NC -- \NC OverbarRuleThickness \NC default_rule_thickness \NC \NR -\NC \type {\Umathoverbarvgap} \NC -- \NC OverbarVerticalGap \NC 3*default_rule_thickness \NC \NR -\NC \type {\Umathquad} \NC -- \NC <font_size(f)>$^1$ \NC math_quad \NC \NR -\NC \type {\Umathradicalkern} \NC -- \NC RadicalExtraAscender \NC default_rule_thickness \NC \NR -\NC \type {\Umathradicalrule} \NC -- \NC RadicalRuleThickness \NC <not set>$^2$ \NC \NR -\NC \type {\Umathradicalvgap} \NC D, D' \NC RadicalDisplayStyleVerticalGap \NC (default_rule_thickness+\crlf - (abs(math_x_height)/4))$^3$ \NC \NR -\NC \NC T, T', S, S', SS, SS' \NC RadicalVerticalGap \NC (default_rule_thickness+\crlf - (abs(default_rule_thickness)/4))$^3$ \NC \NR -\NC \type {\Umathradicaldegreebefore} \NC -- \NC RadicalKernBeforeDegree \NC <not set>$^2$ \NC \NR -\NC \type {\Umathradicaldegreeafter} \NC -- \NC RadicalKernAfterDegree \NC <not set>$^2$ \NC \NR -\NC \type {\Umathradicaldegreeraise} \NC -- \NC RadicalDegreeBottomRaisePercent \NC <not set>$^{2,7}$ \NC \NR -\NC \type {\Umathspaceafterscript} \NC -- \NC SpaceAfterScript \NC script_space$^4$ \NC \NR -\NC \type {\Umathstackdenomdown} \NC D, D' \NC StackBottomDisplayStyleShiftDown \NC denom1 \NC \NR -\NC \NC T, T', S, S', SS, SS' \NC StackBottomShiftDown \NC denom2 \NC \NR -\NC \type {\Umathstacknumup} \NC D, D' \NC StackTopDisplayStyleShiftUp \NC num1 \NC \NR -\NC \NC T, T', S, S', SS, SS' \NC StackTopShiftUp \NC num3 \NC \NR -\NC \type {\Umathstackvgap} \NC D, D' \NC StackDisplayStyleGapMin \NC 7*default_rule_thickness \NC \NR -\NC \NC T, T', S, S', SS, SS' \NC StackGapMin \NC 3*default_rule_thickness \NC \NR -\NC \type {\Umathsubshiftdown} \NC -- \NC SubscriptShiftDown \NC sub1 \NC \NR -\NC \type {\Umathsubshiftdrop} \NC -- \NC SubscriptBaselineDropMin \NC sub_drop \NC \NR -\NC \type {\Umathsubsupshiftdown} \NC -- \NC SubscriptShiftDownWithSuperscript$^8$ \NC \NC \NR -\NC \NC \NC \quad\ or SubscriptShiftDown \NC sub2 \NC \NR -\NC \type {\Umathsubtopmax} \NC -- \NC SubscriptTopMax \NC (abs(math_x_height * 4) / 5) \NC \NR -\NC \type {\Umathsubsupvgap} \NC -- \NC SubSuperscriptGapMin \NC 4*default_rule_thickness \NC \NR -\NC \type {\Umathsupbottommin} \NC -- \NC SuperscriptBottomMin \NC (abs(math_x_height) / 4) \NC \NR -\NC \type {\Umathsupshiftdrop} \NC -- \NC SuperscriptBaselineDropMax \NC sup_drop \NC \NR -\NC \type {\Umathsupshiftup} \NC D \NC SuperscriptShiftUp \NC sup1 \NC \NR -\NC \NC T, S, SS, \NC SuperscriptShiftUp \NC sup2 \NC \NR -\NC \NC D', T', S', SS' \NC SuperscriptShiftUpCramped \NC sup3 \NC \NR -\NC \type {\Umathsupsubbottommax} \NC -- \NC SuperscriptBottomMaxWithSubscript \NC (abs(math_x_height * 4) / 5) \NC \NR -\NC \type {\Umathunderbarkern} \NC -- \NC UnderbarExtraDescender \NC default_rule_thickness \NC \NR -\NC \type {\Umathunderbarrule} \NC -- \NC UnderbarRuleThickness \NC default_rule_thickness \NC \NR -\NC \type {\Umathunderbarvgap} \NC -- \NC UnderbarVerticalGap \NC 3*default_rule_thickness \NC \NR -\NC \type {\Umathconnectoroverlapmin} \NC -- \NC MinConnectorOverlap \NC 0$^5$ \NC \NR -\stoptabulate - -\stop - -Note 1: \OPENTYPE\ fonts set \type {\Umathlimitabovekern} and \type -{\Umathlimitbelowkern} to zero and set \type {\Umathquad} to the font size of the -used font, because these are not supported in the \type {MATH} table, - -Note 2: Traditional \TFM\ fonts do not set \type {\Umathradicalrule} because -\TEX82\ uses the height of the radical instead. When this parameter is indeed not -set when \LUATEX\ has to typeset a radical, a backward compatibility mode will -kick in that assumes that an oldstyle \TEX\ font is used. Also, they do not set -\type {\Umathradicaldegreebefore}, \type {\Umathradicaldegreeafter}, and \type -{\Umathradicaldegreeraise}. These are then automatically initialized to -$5/18$quad, $-10/18$quad, and 60. - -Note 3: If \TFM\ fonts are used, then the \type {\Umathradicalvgap} is not set -until the first time \LUATEX\ has to typeset a formula because this needs -parameters from both family~2 and family~3. This provides a partial backward -compatibility with \TEX82, but that compatibility is only partial: once the \type -{\Umathradicalvgap} is set, it will not be recalculated any more. - -Note 4: When \TFM\ fonts are used a similar situation arises with respect to -\type {\Umathspaceafterscript}: it is not set until the first time \LUATEX\ has -to typeset a formula. This provides some backward compatibility with \TEX82. But -once the \type {\Umathspaceafterscript} is set, \type {\scriptspace} will never -be looked at again. - -Note 5: Traditional \TFM\ fonts set \type {\Umathconnectoroverlapmin} to zero -because \TEX82\ always stacks extensibles without any overlap. - -Note 6: The \type {\Umathoperatorsize} is only used in \type {\displaystyle}, and -is only set in \OPENTYPE\ fonts. In \TFM\ font mode, it is artificially set to -one scaled point more than the initial attempt's size, so that always the \quote -{first next} will be tried, just like in \TEX82. - -Note 7: The \type {\Umathradicaldegreeraise} is a special case because it is the -only parameter that is expressed in a percentage instead of as a number of scaled -points. - -Note 8: \type {SubscriptShiftDownWithSuperscript} does not actually exist in the -\quote {standard} \OPENTYPE\ math font Cambria, but it is useful enough to be -added. - -Note 9: \type {FractionDelimiterDisplayStyleSize} and \type -{FractionDelimiterSize} do not actually exist in the \quote {standard} \OPENTYPE\ -math font Cambria, but were useful enough to be added. - -\section{Math spacing setting} - -Besides the parameters mentioned in the previous sections, there are also 64 new -primitives to control the math spacing table (as explained in Chapter~18 of the -\TEX book). The primitive names are a simple matter of combining two math atom -types, but for completeness' sake, here is the whole list: - -\starttwocolumns -\starttyping -\Umathordordspacing -\Umathordopspacing -\Umathordbinspacing -\Umathordrelspacing -\Umathordopenspacing -\Umathordclosespacing -\Umathordpunctspacing -\Umathordinnerspacing -\Umathopordspacing -\Umathopopspacing -\Umathopbinspacing -\Umathoprelspacing -\Umathopopenspacing -\Umathopclosespacing -\Umathoppunctspacing -\Umathopinnerspacing -\Umathbinordspacing -\Umathbinopspacing -\Umathbinbinspacing -\Umathbinrelspacing -\Umathbinopenspacing -\Umathbinclosespacing -\Umathbinpunctspacing -\Umathbininnerspacing -\Umathrelordspacing -\Umathrelopspacing -\Umathrelbinspacing -\Umathrelrelspacing -\Umathrelopenspacing -\Umathrelclosespacing -\Umathrelpunctspacing -\Umathrelinnerspacing -\Umathopenordspacing -\Umathopenopspacing -\Umathopenbinspacing -\Umathopenrelspacing -\Umathopenopenspacing -\Umathopenclosespacing -\Umathopenpunctspacing -\Umathopeninnerspacing -\Umathcloseordspacing -\Umathcloseopspacing -\Umathclosebinspacing -\Umathcloserelspacing -\Umathcloseopenspacing -\Umathcloseclosespacing -\Umathclosepunctspacing -\Umathcloseinnerspacing -\Umathpunctordspacing -\Umathpunctopspacing -\Umathpunctbinspacing -\Umathpunctrelspacing -\Umathpunctopenspacing -\Umathpunctclosespacing -\Umathpunctpunctspacing -\Umathpunctinnerspacing -\Umathinnerordspacing -\Umathinneropspacing -\Umathinnerbinspacing -\Umathinnerrelspacing -\Umathinneropenspacing -\Umathinnerclosespacing -\Umathinnerpunctspacing -\Umathinnerinnerspacing -\stoptyping -\stoptwocolumns - -These parameters are of type \type {\muskip}, so setting a parameter can be done -like this: - -\starttyping -\Umathopordspacing\displaystyle=4mu plus 2mu -\stoptyping - -They are all initialized by \type {initex} to the values mentioned in the table -in Chapter~18 of the \TEX book. - -Note 1: for ease of use as well as for backward compatibility, \type -{\thinmuskip}, \type {\medmuskip} and \type {\thickmuskip} are treated -especially. In their case a pointer to the corresponding internal parameter is -saved, not the actual \type {\muskip} value. This means that any later changes to -one of these three parameters will be taken into account. - -Note 2: Careful readers will realise that there are also primitives for the items -marked \type {*} in the \TEX book. These will not actually be used as those -combinations of atoms cannot actually happen, but it seemed better not to break -orthogonality. They are initialized to zero. - -\section[mathacc]{Math accent handling} - -\LUATEX\ supports both top accents and bottom accents in math mode, and math -accents stretch automatically (if this is supported by the font the accent comes -from, of course). Bottom and combined accents as well as fixed-width math accents -are controlled by optional keywords following \type {\Umathaccent}. - -The keyword \type {bottom} after \type {\Umathaccent} signals that a bottom accent -is needed, and the keyword \type {both} signals that both a top and a bottom -accent are needed (in this case two accents need to be specified, of course). - -Then the set of three integers defining the accent is read. This set of integers -can be prefixed by the \type {fixed} keyword to indicate that a non-stretching -variant is requested (in case of both accents, this step is repeated). - -A simple example: - -\starttyping -\Umathaccent both fixed 0 0 "20D7 fixed 0 0 "20D7 {example} -\stoptyping - -If a math top accent has to be placed and the accentee is a character and has a -non-zero \type {top_accent} value, then this value will be used to place the -accent instead of the \type {\skewchar} kern used by \TEX82. - -The \type {top_accent} value represents a vertical line somewhere in the -accentee. The accent will be shifted horizontally such that its own \type -{top_accent} line coincides with the one from the accentee. If the \type -{top_accent} value of the accent is zero, then half the width of the accent -followed by its italic correction is used instead. - -The vertical placement of a top accent depends on the \type {x_height} of the -font of the accentee (as explained in the \TEX book), but if value that turns out -to be zero and the font had a \type {MathConstants} table, then \type -{AccentBaseHeight} is used instead. - -The vertical placement of a bottom accent is straight below the accentee, no -correction takes place. - -Possible locations are \type {top}, \type {bottom}, \type {both} and \type -{center}. When no location is given \type {top} is assumed. An additional -parameter \type {fraction} can be specified followed by a number; a value of for -instance 1200 means that the criterium is 1.2 times the width of the nuclues. The -fraction only applies to the stepwise selected shapes and is mostly meant for the -\type {overlay} location. It also works for the other locations but then it -concerns the width. - -\section{Math root extension} - -The new primitive \type {\Uroot} allows the construction of a radical noad -including a degree field. Its syntax is an extension of \type {\Uradical}: - -\starttyping -\Uradical <fam integer> <char integer> <radicand> -\Uroot <fam integer> <char integer> <degree> <radicand> -\stoptyping - -The placement of the degree is controlled by the math parameters \type -{\Umathradicaldegreebefore}, \type {\Umathradicaldegreeafter}, and \type -{\Umathradicaldegreeraise}. The degree will be typeset in \type -{\scriptscriptstyle}. - -\section{Math kerning in super- and subscripts} - -The character fields in a \LUA|-|loaded \OPENTYPE\ math font can have a \quote -{mathkern} table. The format of this table is the same as the \quote {mathkern} -table that is returned by the \type {fontloader} library, except that all height -and kern values have to be specified in actual scaled points. - -When a super- or subscript has to be placed next to a math item, \LUATEX\ checks -whether the super- or subscript and the nucleus are both simple character items. -If they are, and if the fonts of both character items are \OPENTYPE\ fonts (as -opposed to legacy \TEX\ fonts), then \LUATEX\ will use the \OPENTYPE\ math -algorithm for deciding on the horizontal placement of the super- or subscript. - -This works as follows: - -\startitemize - \startitem - The vertical position of the script is calculated. - \stopitem - \startitem - The default horizontal position is flat next to the base character. - \stopitem - \startitem - For superscripts, the italic correction of the base character is added. - \stopitem - \startitem - For a superscript, two vertical values are calculated: the bottom of the - script (after shifting up), and the top of the base. For a subscript, the two - values are the top of the (shifted down) script, and the bottom of the base. - \stopitem - \startitem - For each of these two locations: - \startitemize - \startitem - find the math kern value at this height for the base (for a subscript - placement, this is the bottom_right corner, for a superscript - placement the top_right corner) - \stopitem - \startitem - find the math kern value at this height for the script (for a - subscript placement, this is the top_left corner, for a superscript - placement the bottom_left corner) - \stopitem - \startitem - add the found values together to get a preliminary result. - \stopitem - \stopitemize - \stopitem - \startitem - The horizontal kern to be applied is the smallest of the two results from - previous step. - \stopitem -\stopitemize - -The math kern value at a specific height is the kern value that is specified by the -next higher height and kern pair, or the highest one in the character (if there is no -value high enough in the character), or simply zero (if the character has no math kern -pairs at all). - -\section{Scripts on horizontally extensible items like arrows} - -The primitives \type {\Uunderdelimiter} and \type {\Uoverdelimiter} allow the -placement of a subscript or superscript on an automatically extensible item and -\type {\Udelimiterunder} and \type {\Udelimiterover} allow the placement of an -automatically extensible item as a subscript or superscript on a nucleus. The -input: - -% these produce radical noads .. in fact the code base has the numbers wrong for -% quite a while, so no one seems to use this - -\startbuffer -$\Uoverdelimiter 0 "2194 {\hbox{\strut overdelimiter}}$ -$\Uunderdelimiter 0 "2194 {\hbox{\strut underdelimiter}}$ -$\Udelimiterover 0 "2194 {\hbox{\strut delimiterover}}$ -$\Udelimiterunder 0 "2194 {\hbox{\strut delimiterunder}}$ -\stopbuffer - -\typebuffer will render this: - -\blank \startnarrower \getbuffer \stopnarrower \blank - -The vertical placements are controlled by \type {\Umathunderdelimiterbgap}, \type -{\Umathunderdelimitervgap}, \type {\Umathoverdelimiterbgap}, and \type -{\Umathoverdelimitervgap} in a similar way as limit placements on large operators. -The superscript in \type {\Uoverdelimiter} is typeset in a suitable scripted style, -the subscript in \type {\Uunderdelimiter} is cramped as well. - -These primitives accepts an option \type {width} specification. When used the -also optional keywords \type {left}, \type {middle} and \type {right} will -determine what happens when a requested size can't be met (which can happen when -we step to successive larger variants). - -An extra primitive \type {\Uhextensible} is available that can be used like this: - -\startbuffer -$\Uhextensible width 10cm 0 "2194$ -\stopbuffer - -\typebuffer This will render this: - -\blank \startnarrower \getbuffer \stopnarrower \blank - -Here you can also pass options, like: - -\startbuffer -$\Uhextensible width 1pt middle 0 "2194$ -\stopbuffer - -\typebuffer This gives: - -\blank \startnarrower \getbuffer \stopnarrower \blank - -\LUATEX\ internally uses a structure that supports \OPENTYPE\ \quote -{MathVariants} as well as \TFM\ \quote {extensible recipes}. In most cases where -font metrics are involved we have a different code path for traditional fonts end -\OPENTYPE\ fonts. - -\section {Extracting values} - -You can extract the components of a math character. Say that we have defined: - -\starttyping -\Umathcode 1 2 3 4 -\stoptyping - -then - -\starttyping -[\Umathcharclass1] [\Umathcharfam1] [\Umathcharslot1] -\stoptyping - -will return: - -\starttyping -[2] [3] [4] -\stoptyping - -These commands are provides as convenience. Before they came available you could -do the following: - -\starttyping -\def\Umathcharclass{\directlua{tex.print(tex.getmathcode(token.scan_int())[1])}} -\def\Umathcharfam {\directlua{tex.print(tex.getmathcode(token.scan_int())[2])}} -\def\Umathcharslot {\directlua{tex.print(tex.getmathcode(token.scan_int())[3])}} -\stoptyping - -\section{fractions} - -The \type {\abovewithdelims} command accepts a keyword \type {exact}. When issued -the extra space relative to the rule thickness is not added. One can of course -use the \type {\Umathfraction..gap} commands to influence the spacing. Also the -rule is still positioned around the math axis. - -\starttyping -$$ { {a} \abovewithdelims() exact 4pt {b} }$$ -\stoptyping - -The math parameter table contains some parameters that specify a horizontal and -vertical gap for skewed fractions. Of course some guessing is needed in order to -implement something that uses them. And so we now provide a primitive similar to the -other fraction related ones but with a few options so that one can influence the -rendering. Of course a user can also mess around a bit with the parameters -\type {\Umathskewedfractionhgap} and \type {\Umathskewedfractionvgap}. - -The syntax used here is: - -\starttyping -{ {1} \Uskewed / <options> {2} } -{ {1} \Uskewedwithdelims / () <options> {2} } -\stoptyping - -where the options can be \type {noaxis} and \type {exact}. By default we add half -the axis to the shifts and by default we zero the width of the middle character. -For Latin Modern The result looks as follows: - -\def\ShowA#1#2#3{$x + { {#1} \Uskewed / #3 {#2} } + x$} -\def\ShowB#1#2#3{$x + { {#1} \Uskewedwithdelims / () #3 {#2} } + x$} - -\start - \switchtobodyfont[modern] - \starttabulate[||||||] - \NC \NC - \ShowA{a}{b}{} \NC - \ShowA{1}{2}{} \NC - \ShowB{a}{b}{} \NC - \ShowB{1}{2}{} \NC - \NR - \NC \type{exact} \NC - \ShowA{a}{b}{exact} \NC - \ShowA{1}{2}{exact} \NC - \ShowB{a}{b}{exact} \NC - \ShowB{1}{2}{exact} \NC - \NR - \NC \type{noaxis} \NC - \ShowA{a}{b}{noaxis} \NC - \ShowA{1}{2}{noaxis} \NC - \ShowB{a}{b}{noaxis} \NC - \ShowB{1}{2}{noaxis} \NC - \NR - \NC \type{exact noaxis} \NC - \ShowA{a}{b}{exact noaxis} \NC - \ShowA{1}{2}{exact noaxis} \NC - \ShowB{a}{b}{exact noaxis} \NC - \ShowB{1}{2}{exact noaxis} \NC - \NR - \stoptabulate -\stop - -\section {Other Math changes} - -\subsection {Verbose versions of single-character math commands} - -\LUATEX\ defines six new primitives that have the same function as -\type {^}, \type {_}, \type {$}, and \type {$$}: %$ - -\starttabulate[|l|l|l|l|] -\NC \bf primitive \NC \bf explanation \NC \NR -\NC \type {\Usuperscript} \NC Duplicates the functionality of \type {^} \NC \NR -\NC \type {\Usubscript} \NC Duplicates the functionality of \type {_} \NC \NR -\NC \type {\Ustartmath} \NC Duplicates the functionality of \type {$}, % $ - when used in non-math mode. \NC \NR -\NC \type {\Ustopmath} \NC Duplicates the functionality of \type {$}, % $ - when used in inline math mode. \NC \NR -\NC \type {\Ustartdisplaymath} \NC Duplicates the functionality of \type {$$}, % $$ - when used in non-math mode. \NC \NR -\NC \type {\Ustopdisplaymath} \NC Duplicates the functionality of \type {$$}, % $$ - when used in display math mode. \NC \NR -\stoptabulate - -The \type {\Ustopmath} and \type {\Ustopdisplaymath} primitives check if the current -math mode is the correct one (inline vs.\ displayed), but you can freely intermix -the four mathon|/|mathoff commands with explicit dollar sign(s). - -\subsection{Allowed math commands in non-math modes} - -The commands \type {\mathchar}, and \type {\Umathchar} and control sequences that -are the result of \type {\mathchardef} or \type {\Umathchardef} are also -acceptable in the horizontal and vertical modes. In those cases, the \type -{\textfont} from the requested math family is used. - -\section{Math surrounding skips} - -Inline math is surrounded by (optional) \type {\mathsurround} spacing but that is fixed -dimension. There is now an additional parameter \type {\mathsurroundskip}. When set to a -non|-|zero value (or zero with some stretch or shrink) this parameter will replace -\type {\mathsurround}. By using an additional parameter instead of changing the nature -of \type {\mathsurround}, we can remain compatible. - -% \section{Math todo} -% -% The following items are still todo. -% -% \startitemize -% \startitem -% Pre-scripts. -% \stopitem -% \startitem -% Multi-story stacks. -% \stopitem -% \startitem -% Flattened accents for high characters (maybe). -% \stopitem -% \startitem -% Better control over the spacing around displays and handling of equation numbers. -% \stopitem -% \startitem -% Support for multi|-|line displays using \MATHML\ style alignment points. -% \stopitem -% \stopitemize - -\subsection {Delimiters: \type{\Uleft}, \type {\Umiddle} and \type {\Uright}} - -Normally you will force delimiters to certain sizes by putting an empty box or -rule next to it. The resulting delimiter will either be a character from the -stepwise size range or an extensible. The latter can be quite differently -positioned that the characters as it depends on the fit as well as the fact if -the used characters in the font have depth or height. Commands like (plain \TEX -s) \type {\big} need use this feature. In \LUATEX\ we provide a bit more control -by three variants that supporting optional parameters \type {height}, \type -{depth} and \type {axis}. The following example uses this: - -\startbuffer -\Uleft height 30pt depth 10pt \Udelimiter "0 "0 "000028 -\quad x\quad -\Umiddle height 40pt depth 15pt \Udelimiter "0 "0 "002016 -\quad x\quad -\Uright height 30pt depth 10pt \Udelimiter "0 "0 "000029 -\quad \quad \quad -\Uleft height 30pt depth 10pt axis \Udelimiter "0 "0 "000028 -\quad x\quad -\Umiddle height 40pt depth 15pt axis \Udelimiter "0 "0 "002016 -\quad x\quad -\Uright height 30pt depth 10pt axis \Udelimiter "0 "0 "000029 -\stopbuffer - -\typebuffer - -\startlinecorrection -\ruledhbox{\mathematics{\getbuffer}} -\stoplinecorrection - -The keyword \type {exact} can be used as directive that the real dimensions -should be applied when the criteria can't be met which can happen when we're -still stepping through the successively larger variants. When no dimensions are -given the \type {noaxis} command can be used to prevent shifting over the axis. - -You can influence the final class with the keyword \type {class} which will -influence the spacing. - -\subsection{Fixed scripts} - -We have three parameters that are used for this fixed anchoring: - -\starttabulate[|l|l|] -\NC $d$ \NC \type {\Umathsubshiftdown} \NC \NR -\NC $u$ \NC \type {\Umathsupshiftup} \NC \NR -\NC $s$ \NC \type {\Umathsubsupshiftdown} \NC \NR -\stoptabulate - -When we set \type {\mathscriptsmode} to a value other than zero these are used -for calculating fixed positions. This is something that is needed for instance -for chemistry. You can manipulate the mentioned variables to achive different -effects. - -\def\SampleMath#1% - {$\mathscriptsmode#1\mathupright CH_2 + CH^+_2 + CH^2_2$} - -\starttabulate[|c|c|c|l|] -\NC \bf mode \NC \bf down \NC \bf up \NC \NC \NR -\NC 0 \NC dynamic \NC dynamic \NC \SampleMath{0} \NC \NR -\NC 1 \NC $d$ \NC $u$ \NC \SampleMath{1} \NC \NR -\NC 2 \NC $s$ \NC $u$ \NC \SampleMath{2} \NC \NR -\NC 3 \NC $s$ \NC $u + s - d$ \NC \SampleMath{3} \NC \NR -\NC 4 \NC $d + (s-d)/2$ \NC $u + (s-d)/2$ \NC \SampleMath{4} \NC \NR -\NC 5 \NC $d$ \NC $u + s - d$ \NC \SampleMath{5} \NC \NR -\stoptabulate - -The value of this parameter obeys grouping but applies to the whole current -formula. - -% if needed we can put the value in stylenodes but maybe more should go there - -\subsection {Tracing} - -Because there are quite some math related parameters and values, it is possible -to limit tracing. Only when \type {tracingassigns} and|/|or \type -{tracingrestores} are set to~2 or more they will be traced. - -\subsection {Math options} - -The logic in the math engine is rather complex and there are often no universal -solutions (read: what works out well for one font, fails for another). Therefore -some variations in the implementation will be driven by options for which a new -primitive \type {\mathoption} has been introduced (so that we don't end up with -many new commands). The approach of options also permits us to see what effect a -specific solution has. - -\subsubsection {\type {\mathoption noitaliccompensation}} - -This option compensates placement for characters with a built|-|in italic -correction. - -\startbuffer -{\showboxes\int}\quad -{\showboxes\int_{|}^{|}}\quad -{\showboxes\int\limits_{|}^{|}} -\stopbuffer - -\typebuffer - -Gives (with computer modern that has such italics): - -\startlinecorrection[blank] - \switchtobodyfont[modern] - \startcombination[nx=2,ny=2,distance=5em] - {\mathoption noitaliccompensation 0\relax \mathematics{\getbuffer}} - {\nohyphens\type{0:inline}} - {\mathoption noitaliccompensation 0\relax \mathematics{\displaymath\getbuffer}} - {\nohyphens\type{0:display}} - {\mathoption noitaliccompensation 1\relax \mathematics{\getbuffer}} - {\nohyphens\type{1:inline}} - {\mathoption noitaliccompensation 1\relax \mathematics{\displaymath\getbuffer}} - {\nohyphens\type{1:display}} - \stopcombination -\stoplinecorrection - -\subsubsection {\type {\mathoption nocharitalic}} - -When two characters follow each other italic correction can interfere. The -following example shows what this option does: - -\startbuffer -\catcode"1D443=11 -\catcode"1D444=11 -\catcode"1D445=11 -P( PP PQR -\stopbuffer - -\typebuffer - -Gives (with computer modern that has such italics): - -\startlinecorrection[blank] - \switchtobodyfont[modern] - \startcombination[nx=2,ny=2,distance=5em] - {\mathoption nocharitalic 0\relax \mathematics{\getbuffer}} - {\nohyphens\type{0:inline}} - {\mathoption nocharitalic 0\relax \mathematics{\displaymath\getbuffer}} - {\nohyphens\type{0:display}} - {\mathoption nocharitalic 1\relax \mathematics{\getbuffer}} - {\nohyphens\type{1:inline}} - {\mathoption nocharitalic 1\relax \mathematics{\displaymath\getbuffer}} - {\nohyphens\type{1:display}} - \stopcombination -\stoplinecorrection - -\subsubsection {\type {\mathoption useoldfractionscaling}} - -This option has been introduced as solution for tracker item 604 for fuzzy cases -around either or not present fraction related settings for new fonts. - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/luatex/luatex-modifications.tex b/doc/context/sources/general/manuals/luatex/luatex-modifications.tex deleted file mode 100644 index 549cfe377..000000000 --- a/doc/context/sources/general/manuals/luatex/luatex-modifications.tex +++ /dev/null @@ -1,1220 +0,0 @@ -% language=uk - -\environment luatex-style -\environment luatex-logos - -\startcomponent luatex-modifications - -\startchapter[reference=modifications,title={Modifications}] - -\startsection[title=The merged engines] - -\startsubsection[title=The need for change] - -The first version of \LUATEX\ only had a few extra primitives and it was largely -the same as \PDFTEX. Then we merged substantial parts of \ALEPH\ into the code -and got more primitives. When we got more stable the decision was made to clean -up the rather hybrid nature of the program. This means that some primitives have -been promoted to core primitives, often with a different name, and that others -were removed. This made it possible to start cleaning up the code base. In \in -{chapter} [enhancements] we discussed some new primitives, here we will cover -most of the adapted ones. - -Besides the expected changes caused by new functionality, there are a number of -not|-|so|-|expected changes. These are sometimes a side|-|effect of a new -(conflicting) feature, or, more often than not, a change neccessary to clean up -the internal interfaces. These will also be mentioned. - -\stopsubsection - -\startsubsection[title=Changes from \TEX\ 3.1415926] - -Of course it all starts with traditional \TEX. Even if we started with \PDFTEX, -most still comes from the original. But we divert a bit. - -\startitemize - -\startitem - The current code base is written in \CCODE, not \PASCAL. We use \CWEB\ when - possible. As a consequence instead of one large file plus change files, we - now have multiple files organized in categories like \type {tex}, \type - {pdf}, \type {lang}, \type {font}, \type {lua}, etc. There are some artefacts - of the conversion to \CCODE, but in due time we will clean up the source code - and make sure that the documentation is done right. Many files are in the - \CWEB\ format, but others, like those interfacing to \LUA, are \CCODE\ files. - Of course we want to stay as close as possible to the original so that the - documentation of the fundamentals behind \TEX\ by Don Knuth still applies. -\stopitem - -\startitem - See \in {chapter} [languages] for many small changes related to paragraph - building, language handling and hyphenation. The most important change is - that adding a brace group in the middle of a word (like in \type {of{}fice}) - does not prevent ligature creation. -\stopitem - -\startitem - There is no pool file, all strings are embedded during compilation. -\stopitem - -\startitem - The specifier \type {plus 1 fillll} does not generate an error. The extra - \quote{l} is simply typeset. -\stopitem - -\startitem - The upper limit to \type {\endlinechar} and \type {\newlinechar} is 127. -\stopitem - -\startitem - Magnification (\type {\mag}) is only supported in \DVI\ output mode. You can - set this parameter and it even works with \type {true} units till you switch - to \PDF\ output mode. When you use \PDF\ output you can best not touch the - \type {\mag} variable. This fuzzy behaviour is not much different from using - \PDF\ backend related functionality while eventually \DVI\ output is - required. - - After the output mode has been frozen (normally that happens when the first - page is shipped out) or when \PDF\ output is enabled, the \type {true} - specification is ignored. When you preload a plain format adapted to - \LUATEX\ it can be that the \type {\mag} parameter already has been set. -\stopitemize - -\stopsubsection - -\startsubsection[title=Changes from \ETEX\ 2.2] - -Being the de factor standard extension of course we provide the \ETEX\ -functionality, but with a few small adaptations. - -\startitemize - -\startitem - The \ETEX\ functionality is always present and enabled so the prepended - asterisk or \type {-etex} switch for \INITEX\ is not needed. -\stopitem - -\startitem - The \TEXXET\ extension is not present, so the primitives \type - {\TeXXeTstate}, \type {\beginR}, \type {\beginL}, \type {\endR} and \type - {\endL} are missing. Instead we use the \OMEGA\ approach to directionality. -\stopitem - -\startitem - Some of the tracing information that is output by \ETEX's \type - {\tracingassigns} and \type {\tracingrestores} is not there. -\stopitem - -\startitem - Register management in \LUATEX\ uses the \ALEPH\ model, so the maximum value - is 65535 and the implementation uses a flat array instead of the mixed - flat|\&|sparse model from \ETEX. -\stopitem - -\startitem - When kpathsea is used to find files, \LUATEX\ uses the \type {ofm} file - format to search for font metrics. In turn, this means that \LUATEX\ looks at - the \type {OFMFONTS} configuration variable (like \OMEGA\ and \ALEPH) instead - of \type {TFMFONTS} (like \TEX\ and \PDFTEX). Likewise for virtual fonts - (\LUATEX\ uses the variable \type {OVFFONTS} instead of \type {VFFONTS}). -\stopitem - -\stopitemize - -\stopsubsection - -\startsubsection[title=Changes from \PDFTEX\ 1.40] - -Because we want to produce \PDF\ the most natural starting point was the popular -\PDFTEX\ program. We inherit the stable features, dropped most of the -experimental code and promoted some functionality to core \LUATEX\ functionality -which in turn triggered renaming primitives. - -For compatibility reasons we still refer to \type {\pdf...} commands but \LUATEX\ -has a different backend interface. Instead of these primitives there are three -interfacing primitives: \type {\pdfextension}, \type {\pdfvariable} and -\type {\pdffeedback} that take keywords and optional further arguments. This way -we can extend the features when needed but don't need to adapt the core engine. -The front- and backend are decoupled as much as possible. - -\startitemize - -\startitem - The (experimental) support for snap nodes has been removed, because it is - much more natural to build this functionality on top of node processing and - attributes. The associated primitives that are now gone are: \type - {\pdfsnaprefpoint}, \type {\pdfsnapy}, and \type {\pdfsnapycomp}. -\stopitem - -\startitem - The (experimental) support for specialized spacing around nodes has also been - removed. The associated primitives that are now gone are: \type - {\pdfadjustinterwordglue}, \type {\pdfprependkern}, and \type - {\pdfappendkern}, as well as the five supporting primitives \type - {\knbscode}, \type {\stbscode}, \type {\shbscode}, \type {\knbccode}, and - \type {\knaccode}. -\stopitem - -\startitem - A number of \quote {\PDFTEX\ primitives} have been removed as they can be - implemented using \LUA: - - \start \raggedright - \type {\pdfelapsedtime}, \type {\pdfescapehex}, \type {\pdfescapename}, \type - {\pdfescapestring}, \type {\pdffiledump}, \type {\pdffilemoddate}, \type - {\pdffilesize}, \type {\pdfforcepagebox}, \type {\pdflastmatch}, \type - {\pdfmatch}, \type {\pdfmdfivesum}, \type {\pdfmovechars}, \type - {\pdfoptionalwaysusepdfpagebox}, \type {\pdfoptionpdfinclusionerrorlevel}, - \type {\pdfresettimer}, \type {\pdfshellescape}, \type {\pdfstrcmp} and \type - {\pdfunescapehex} - \par \stop -\stopitem - -\startitem - The version related primitives \type {\pdftexbanner}, \type {\pdftexversion} - and \type {\pdftexrevision} are no longer present as there is no longer a - relationship with \PDFTEX\ development. -\stopitem - -\startitem - The experimental snapper mechanism has been removed and therefore also the - primitives: - - \start \raggedright - \type {\pdfignoreddimen}, \type {\pdffirstlineheight}, \type - {\pdfeachlineheight}, \type {\pdfeachlinedepth} and \type - {\pdflastlinedepth} - \par \stop -\stopitem - -\startitem - The experimental primitives \type {\primitive}, \type {\ifprimitive}, \type - {\ifabsnum} and \type {\ifabsdim} are promoted to core primitives. The \type - {\pdf*} prefixed originals are not available. -\stopitem - -\startitem - The \PNG\ transparency fix from 1.40.6 is not applied as high|-|level support - is pending. Because \LUATEX\ has a different subsystem for managing images, - more diversion from its ancestor happened in the meantime. -\stopitem - -\startitem - Two extra token lists are provides, \type {\pdfxformresources} and \type - {\pdfxformattr}, as an alternative to \type {\pdfxform} keywords. -\stopitem - -\startitem - The current version of \LUATEX\ no longer replaces and|/|or merges fonts in - embedded \PDF\ files with fonts of the enveloping \PDF\ document. This - regression may be temporary, depending on how the rewritten font backend will - look like. -\stopitem - -\startitem - The primitives \type {\pdfpagewidth} and \type {\pdfpageheight} have been removed - because \type {\pagewidth} and \type {\pageheight} have that purpose. -\stopitem - -\startitem - The primitives \type {\pdfnormaldeviate}, \type {\pdfuniformdeviate}, \type - {\pdfsetrandomseed} and \type {\pdfrandomseed} have been promoted to core - primitives without \type {pdf} prefix so the original commands are no longer - recognized. -\stopitem - -\startitem - The primitives \type {\ifincsname}, \type {\expanded} and \type {\quitvmode} - are now core primitives. -\stopitem - -\startitem - As the hz and protrusion mechanism are part of the core the related - primitives \type {\lpcode}, \type {\rpcode}, \type {\efcode}, \type - {\leftmarginkern}, \type {\rightmarginkern} are promoted to core primitives. The - two commands \type {\protrudechars} and \type {\adjustspacing} replace their - prefixed with \type {\pdf} originals. -\stopitem - -\startitem - The hz optimization code has been partially redone so that we no longer need - to create extra font instances. The front- and backend have been decoupled - and more efficient (\PDF) code is generated. -\stopitem - -\startitem - When \type {\adjustspacing} has value~2, hz optimization will be applied to - glyphs and kerns. When the value is~3, only glyphs will be treated. A value - smaller than~2 disables this feature. -\stopitem - -\startitem - The \type {\tagcode} primitive is promoted to core primitive. -\stopitem - -\startitem - The \type {\letterspacefont} feature is now part of the core but will not be - changed (improved). We just provide it for legacy use. -\stopitem - -\startitem - The \type {\pdfnoligatures} primitive is now \type {\ignoreligaturesinfont}. -\stopitem - -\startitem - The \type {\pdfcopyfont} primitive is now \type {\copyfont}. -\stopitem - -\startitem - The \type {\pdffontexpand} primitive is now \type {\expandglyphsinfont}. -\stopitem - -\startitem - Because position tracking is also available in \DVI\ mode the \type - {\savepos}, \type {\lastxpos} and \type {\lastypos} commands now replace - their \type {pdf} prefixed originals. -\stopitem - -\startitem - The introspective primitives \type {\pdflastximagecolordepth} and \type - {\pdfximagebbox} have been removed. One can use external applications to - determine these properties or use the built|-|in \type {img} library. -\stopitem - -\startitem - The initializers \type {\pdfoutput} has been replaced by \type {\outputmode} and - \type {\pdfdraftmode} is now \type {\draftmode}. -\stopitem - -\startitem - The pixel multiplier dimension \type {\pdfpxdimen} lots its prefix and is now calles - \type {\pxdimen}. -\stopitem - -\startitem - An extra \type {\pdfimageaddfilename} option has been added that can be used to block - writing the filename to the \PDF\ file. -\stopitem - -\startitem - The primitive \type {\pdftracingfonts} is now \type {\tracingfonts} as it - doesn't relate to the backend. -\stopitem - -\startitem - The experimental primitive \type {\pdfinsertht} is kept as \type {\insertht}. -\stopitem - -\startitem - The promotion of primitives to core primitives as well as the separation of - font- and backend means that the initialization namespace \type {pdftex} is - gone. -\stopitem - -\stopitemize - -One change involves the so called xforms and ximages. In \PDFTEX\ these are -implemented as so called whatsits. But contrary to other whatsits they have -dimensions that need to be taken into account when for instance calculating -optimal line breaks. In \LUATEX\ these are now promoted to normal nodes, which -simplifies code that needs those dimensions. - -Another reason for promotion is that these are useful concepts. Backends can -provide the ability to use content that has been rendered in several places, -and images are also common. For that reason we also changed the names: - -\starttabulate[|l|l|] -\NC \bf new name \NC \bf old name \NC \NR -\NC \type {\saveboxresource} \NC \type {\pdfxform} \NC \NR -\NC \type {\saveimageresource} \NC \type {\pdfximage} \NC \NR -\NC \type {\useboxresource} \NC \type {\pdfrefxform} \NC \NR -\NC \type {\useimageresource} \NC \type {\pdfrefximage} \NC \NR -\NC \type {\lastsavedboxresourceindex} \NC \type {\pdflastxform} \NC \NR -\NC \type {\lastsavedimageresourceindex} \NC \type {\pdflastximage} \NC \NR -\NC \type {\lastsavedimageresourcepages} \NC \type {\pdflastximagepages} \NC \NR -\stoptabulate - -There are a few \type {\pdffeedback} features that relate to this but these are -typical backend specific ones. The index that gets returned is to be considered -as \quote {just a number} and although it still has the same meaning (object -related) as before, you should not depend on that. - -The protrusion detection mechanism is enhanced a bit to enable a bit more complex -situations. When protrusion characters are identified some nodes are skipped: - -\startitemize[packed] -\startitem zero glue \stopitem -\startitem penalties \stopitem -\startitem empty discretionaries \stopitem -\startitem normal zero kerns \stopitem -\startitem rules with zero dimensions \stopitem -\startitem math nodes with a surround of zero \stopitem -\startitem dir nodes \stopitem -\startitem empty horizontal lists \stopitem -\startitem local par nodes \stopitem -\startitem inserts, marks and adjusts \stopitem -\startitem boundaries \stopitem -\startitem whatsits \stopitem -\stopitemize - -Because this can not be enough, you can also use a protrusion boundary node to -make the next node being ignored. When the value is~1 or~3, the next node will be -ignored in the test when locating a left boundary condition. When the value is~2 -or~3, the previous node will be ignored when locating a right boundary condition -(the search goes from right to left). This permits protrusion combined with for -instance content moved into the margin: - -\starttyping -\protrusionboundary1\llap{!\quad}«Who needs protrusion?» -\stoptyping - -\stopsubsection - -\startsubsection[title=Changes from \ALEPH\ RC4] - -Because we wanted proper directional typesetting the \ALEPH\ mechanisms looked -most attractive. These are rather close to the ones provided by \OMEGA, so what -we say next applies to both these programs. - -\startitemize - -\startitem - The extended 16-bit math primitives (\type {\omathcode} etc.) have been - removed. -\stopitem - -\startitem - The \OCP\ processing has been removed completely and as a consequence, the - following primitives have been removed: - - \start \raggedright - \type {\ocp}, \type {\externalocp}, \type {\ocplist}, \type {\pushocplist}, - \type {\popocplist}, \type {\clearocplists}, \type {\addbeforeocplist}, \type - {\addafterocplist}, \type {\removebeforeocplist}, \type {\removeafterocplist} - and \type {\ocptracelevel} - \par \stop -\stopitem - -\startitem - \LUATEX\ only understands 4~of the 16~direction specifiers of \ALEPH: \type - {TLT} (latin), \type {TRT} (arabic), \type {RTT} (cjk), \type {LTL} - (mongolian). All other direction specifiers generate an error. -\stopitem - -\startitem - The input translations from \ALEPH\ are not implemented, the related - primitives are not available: - - \start \raggedright - \type {\DefaultInputMode}, \type {\noDefaultInputMode}, \type {\noInputMode}, - \type {\InputMode}, \type {\DefaultOutputMode}, \type {\noDefaultOutputMode}, - \type {\noOutputMode}, \type {\OutputMode}, \type {\DefaultInputTranslation}, - \type {\noDefaultInputTranslation}, \type {\noInputTranslation}, \type - {\InputTranslation}, \type {\DefaultOutputTranslation}, \type - {\noDefaultOutputTranslation}, \type {\noOutputTranslation} and \type - {\OutputTranslation} - \par \stop -\stopitem - -\startitem - Several bugs have been fixed an confusing implementation details have been sorted - out. -\stopitem - -\startitem - The scanner for direction specifications now allows an optional space after - the direction is completely parsed. -\stopitem - -\startitem - The \type {^^} notation has been extended: after \type {^^^^} four hexadecimal - characters are expected and after \type {^^^^^^} six hexadecimal characters - have to be given. The original \TEX\ interpretation is still valid for the - \type {^^} case but the four and six variants do no backtracking, i.e.\ when - they are not followed by the right number of hexadecimal digits they issue an - error message. Because \type{^^^} is a normal \TEX\ case, we don't support the - odd number of \type {^^^^^} either. -\stopitem - -\startitem - Glues {\it immediately after} direction change commands are not legal - breakpoints. -\stopitem - -\startitem - Several mechanisms that need to be right|-|to|-|left aware have been - improved. For instance placement of formula numbers. -\stopitem - -\startitem - The page dimension related primitives \type {\pagewidth} and \type - {\pageheight} have been promoted to core primitives. The \type {\hoffset} and - \type {\voffset} primitives have been fixed. -\stopitem - -\startitem - The primitives \type {\charwd}, \type {\charht}, \type {\chardp} and \type - {\charit} have been removed as we have the \ETEX\ variants \type - {\fontchar*}. -\stopitem - -\startitem - The two dimension registers \type {\pagerightoffset} and \type - {\pagebottomoffset} are now core primitives. -\stopitem - -\startitem - The direction related primitives \type {\pagedir}, \type {\bodydir}, \type - {\pardir}, \type {\textdir}, \type {\mathdir} and \type {\boxdir} are now - core primitives. -\stopitem - -\startitem - The promotion of primitives to core primitives as well as the removed of all - others means that the initialization namespace \type {aleph} is gone. -\stopitem - -\stopitemize - -The above let's itself summarize as: we took the 32 bit aspects and much of the -directional mechanisms. - -\stopsubsection - -\startsubsection[title=Changes from standard \WEBC] - -The compilation framework is \WEBC\ and we keep using that but without the -\PASCAL\ to \CCODE\ step. This framework also provides some common features that -deal with reading bytes from files and locating files in \TDS. This is what we do -different: - -\startitemize - -\startitem - There is no mltex support. -\stopitem - -\startitem - There is no enctex support. -\stopitem - -\startitem - The following encoding related command line switches are silently ignored, - even in non|-|\LUA\ mode: \type {-8bit}, \type {-translate-file}, \type - {-mltex}, \type {-enc} and \type {-etex}. -\stopitem - -\startitem - The \type {\openout} whatsits are not written to the log file. -\stopitem - -\startitem - Some of the so|-|called \WEBC\ extensions are hard to set up in non|-|\KPSE\ - mode because \type {texmf.cnf} is not read: \type {shell-escape} is off (but - that is not a problem because of \LUA's \type {os.execute}), and the paranoia - checks on \type {openin} and \type {openout} do not happen. However, it is - easy for a \LUA\ script to do this itself by overloading \type {io.open}. -\stopitem - -\startitem - The \quote{E} option does not do anything useful. -\stopitem - -\stopitemize - -\stopsubsection - -\stopsection - -\startsection[reference=backendprimitives,title=The backend primitives \type {\pdf*}] - -In a previous section we mentioned that some \PDFTEX\ primitives were removed and -others promoted to core \LUATEX\ primitives. That is only part of the story. In -order to separate the backend specific primitives in de code these commands are -now replaced by only a few. In traditional \TEX\ we only had the \DVI\ backend -but now we have two: \DVI\ and \PDF. Additional functionality is implemented as -\quote {extensions} in \TEX speak. By separating more strickly we are able to -keep the core (fontend) clean and stable. If for some reason an extra backend -option is needed, it can be implemented without touching the core. The three -\PDF\ backend related primitives are - -\starttyping -\pdfextension command [specification] -\pdfvariable name -\pdffeedback name -\stoptyping - -An extension triggers further parsing, depending on the command given. A variable is -a (kind of) register and can be read and written, while a feedback is reporting -something (as it comes from the backend it's normally a sequence of tokens). - -In order for \LUATEX\ to be more than just \TEX\ you need to enable primitives. That -has already be the case right from the start. If you want the traditional \PDFTEX\ -primitives (for as far their functionality is still around) you now can do this: - -\starttyping -\protected\def\pdfliteral {\pdfextension literal} -\protected\def\pdfcolorstack {\pdfextension colorstack} -\protected\def\pdfsetmatrix {\pdfextension setmatrix} -\protected\def\pdfsave {\pdfextension save\relax} -\protected\def\pdfrestore {\pdfextension restore\relax} -\protected\def\pdfobj {\pdfextension obj } -\protected\def\pdfrefobj {\pdfextension refobj } -\protected\def\pdfannot {\pdfextension annot } -\protected\def\pdfstartlink {\pdfextension startlink } -\protected\def\pdfendlink {\pdfextension endlink\relax} -\protected\def\pdfoutline {\pdfextension outline } -\protected\def\pdfdest {\pdfextension dest } -\protected\def\pdfthread {\pdfextension thread } -\protected\def\pdfstartthread {\pdfextension startthread } -\protected\def\pdfendthread {\pdfextension endthread\relax} -\protected\def\pdfinfo {\pdfextension info } -\protected\def\pdfcatalog {\pdfextension catalog } -\protected\def\pdfnames {\pdfextension names } -\protected\def\pdfincludechars {\pdfextension includechars } -\protected\def\pdffontattr {\pdfextension fontattr } -\protected\def\pdfmapfile {\pdfextension mapfile } -\protected\def\pdfmapline {\pdfextension mapline } -\protected\def\pdftrailer {\pdfextension trailer } -\protected\def\pdfglyphtounicode {\pdfextension glyphtounicode } -\stoptyping - -The introspective primitives can be defined as: - -\starttyping -\def\pdftexversion {\numexpr\pdffeedback version\relax} -\def\pdftexrevision {\pdffeedback revision} -\def\pdflastlink {\numexpr\pdffeedback lastlink\relax} -\def\pdfretval {\numexpr\pdffeedback retval\relax} -\def\pdflastobj {\numexpr\pdffeedback lastobj\relax} -\def\pdflastannot {\numexpr\pdffeedback lastannot\relax} -\def\pdfxformname {\numexpr\pdffeedback xformname\relax} -\def\pdfcreationdate {\pdffeedback creationdate} -\def\pdffontname {\numexpr\pdffeedback fontname\relax} -\def\pdffontobjnum {\numexpr\pdffeedback fontobjnum\relax} -\def\pdffontsize {\dimexpr\pdffeedback fontsize\relax} -\def\pdfpageref {\numexpr\pdffeedback pageref\relax} -\def\pdfcolorstackinit {\pdffeedback colorstackinit} -\stoptyping - -The configuration related registers have become: - -\starttyping -\edef\pdfcompresslevel {\pdfvariable compresslevel} -\edef\pdfobjcompresslevel {\pdfvariable objcompresslevel} -\edef\pdfdecimaldigits {\pdfvariable decimaldigits} -\edef\pdfgamma {\pdfvariable gamma} -\edef\pdfimageresolution {\pdfvariable imageresolution} -\edef\pdfimageapplygamma {\pdfvariable imageapplygamma} -\edef\pdfimagegamma {\pdfvariable imagegamma} -\edef\pdfimagehicolor {\pdfvariable imagehicolor} -\edef\pdfimageaddfilename {\pdfvariable imageaddfilename} -\edef\pdfpkresolution {\pdfvariable pkresolution} -\edef\pdfpkfixeddpi {\pdfvariable pkfixeddpi} -\edef\pdfinclusioncopyfonts {\pdfvariable inclusioncopyfonts} -\edef\pdfinclusionerrorlevel {\pdfvariable inclusionerrorlevel} -\edef\pdfignoreunknownimages {\pdfvariable ignoreunknownimages} -\edef\pdfgentounicode {\pdfvariable gentounicode} -\edef\pdfpagebox {\pdfvariable pagebox} -\edef\pdfminorversion {\pdfvariable minorversion} -\edef\pdfuniqueresname {\pdfvariable uniqueresname} - -\edef\pdfhorigin {\pdfvariable horigin} -\edef\pdfvorigin {\pdfvariable vorigin} -\edef\pdflinkmargin {\pdfvariable linkmargin} -\edef\pdfdestmargin {\pdfvariable destmargin} -\edef\pdfthreadmargin {\pdfvariable threadmargin} -\edef\pdfxformmargin {\pdfvariable xformmargin} - -\edef\pdfpagesattr {\pdfvariable pagesattr} -\edef\pdfpageattr {\pdfvariable pageattr} -\edef\pdfpageresources {\pdfvariable pageresources} -\edef\pdfxformattr {\pdfvariable xformattr} -\edef\pdfxformresources {\pdfvariable xformresources} -\edef\pdfpkmode {\pdfvariable pkmode} - -\edef\pdfsuppressoptionalinfo {\pdfvariable suppressoptionalinfo } -\edef\pdftrailerid {\pdfvariable trailerid } -\stoptyping - -The variables are internal ones, so they are anonymous. When you ask for the -meaning of a few previously defined ones: - -\starttyping -\meaning\pdfhorigin -\meaning\pdfcompresslevel -\meaning\pdfpageattr -\stoptyping - -you will get: - -\starttyping -macro:->[internal backend dimension] -macro:->[internal backend integer] -macro:->[internal backend tokenlist] -\stoptyping - -The \type {\edef} can also be an \type {\def} but it's a bit more efficient -to expand the lookup related register beforehand. After that you can adapt -the defaults; these are: - -\starttyping -\pdfcompresslevel 9 -\pdfobjcompresslevel 1 % used: (0,9) -\pdfdecimaldigits 4 % used: (3,6) -\pdfgamma 1000 -\pdfimageresolution 71 -\pdfimageapplygamma 0 -\pdfimagegamma 2200 -\pdfimagehicolor 1 -\pdfimageaddfilename 1 -\pdfpkresolution 72 -\pdfpkfixeddpi 0 -\pdfinclusioncopyfonts 0 -\pdfinclusionerrorlevel 0 -\pdfignoreunknownimages 0 -\pdfgentounicode 0 -\pdfpagebox 0 -\pdfminorversion 4 -\pdfuniqueresname 0 - -\pdfhorigin 1in -\pdfvorigin 1in -\pdflinkmargin 0pt -\pdfdestmargin 0pt -\pdfthreadmargin 0pt -\pdfxformmargin 0pt -\stoptyping - -If you also want some backward compatibility, you can add: - -\starttyping -\let\pdfpagewidth \pagewidth -\let\pdfpageheight \pageheight - -\let\pdfadjustspacing \adjustspacing -\let\pdfprotrudechars \protrudechars -\let\pdfnoligatures \ignoreligaturesinfont -\let\pdffontexpand \expandglyphsinfont -\let\pdfcopyfont \copyfont - -\let\pdfxform \saveboxresource -\let\pdflastxform \lastsavedboxresourceindex -\let\pdfrefxform \useboxresource - -\let\pdfximage \saveimageresource -\let\pdflastximage \lastsavedimageresourceindex -\let\pdflastximagepages\lastsavedimageresourcepages -\let\pdfrefximage \useimageresource - -\let\pdfsavepos \savepos -\let\pdflastxpos \lastxpos -\let\pdflastypos \lastypos - -\let\pdfoutput \outputmode -\let\pdfdraftmode \draftmode - -\let\pdfpxdimen \pxdimen - -\let\pdfinsertht \insertht - -\let\pdfnormaldeviate \normaldeviate -\let\pdfuniformdeviate \uniformdeviate -\let\pdfsetrandomseed \setrandomseed -\let\pdfrandomseed \randomseed - -\let\pdfprimitive \primitive -\let\ifpdfprimitive \ifprimitive - -\let\ifpdfabsnum \ifabsnum -\let\ifpdfabsdim \ifabsdim -\stoptyping - -And even: - -\starttyping -\newdimen\pdfeachlineheight -\newdimen\pdfeachlinedepth -\newdimen\pdflastlinedepth -\newdimen\pdffirstlineheight -\newdimen\pdfignoreddimen -\stoptyping - -The backend is derived from \PDFTEX\ so the same syntax applies. However, the -\type {outline} command accepts a \type {objnum} followed by a number. No -checking takes place so when this is used it had better be a valid (flushed) -object. - -In order to be (more or less) compatible with \PDFTEX\ we also support the -option to suppress some info: - -\starttyping -\pdfvariable suppressoptionalinfo \numexpr - 0 - + 1 % PTEX.FullBanner - + 2 % PTEX.FileName - + 4 % PTEX.PageNumber - + 8 % PTEX.InfoDict - + 16 % Creator - + 32 % CreationDate - + 64 % ModDate - + 128 % Producer - + 256 % Trapped - + 512 % ID -\relax -\stoptyping - -In addition you can overload the trailer id, but we don't do any checking on -validity, so you have to pass a valid array. The following is like the ones -normally generated by the engine: - -\starttyping -\pdfvariable trailerid {[ - <FA052949448907805BA83C1E78896398> - <FA052949448907805BA83C1E78896398> -]} -\stoptyping - -So, you even need to include the brackets! - -Although we started from a merge of \PDFTEX\ and \ALEPH, by now the code base as -well as functionality has diverted from those parents. Here we show the options -that can be passed to the extensions. - -\starttexsyntax -\pdfextension literal - [ direct | page ] { tokens } -\stoptexsyntax - -\starttexsyntax -\pdfextension dest - num integer | name { tokens }!crlf - [ fitbh | fitbv | fitb | fith| fitv | fit | - fitr <rule spec> | xyz [ zoom <integer> ] -\stoptexsyntax - -\starttexsyntax -\pdfextension annot - reserveobjnum | useobjnum <integer> - { tokens } -\stoptexsyntax - -\starttexsyntax -\pdfextension save -\stoptexsyntax - -\starttexsyntax -\pdfextension restore -\stoptexsyntax - -\starttexsyntax -\pdfextension setmatrix - { tokens } -\stoptexsyntax - -\starttexsyntax -[ \immediate ] \pdfextension obj - reserveobjnum -\stoptexsyntax - -\starttexsyntax -[ \immediate ] \pdfextension obj - [ useobjnum <integer> ] - [ uncompressed ] - [ stream [ attr { tokens } ] ] - [ file ] - { tokens } -\stoptexsyntax - -\starttexsyntax -\pdfextension refobj - <integer> -\stoptexsyntax - -\starttexsyntax -\pdfextension colorstack - <integer> - set { tokens } | push { tokens } | pop | current -\stoptexsyntax - -\starttexsyntax -\pdfextension startlink - [ attr { tokens } ] - user { tokens } | goto | thread - [ file { tokens } ] - [ page <integer> { tokens } | name { tokens } | num integer ] - [ newwindow | nonewwindow ] -\stoptexsyntax - -\starttexsyntax -\pdfextension endlink -\stoptexsyntax - -\starttexsyntax -\pdfextension startthread - num <integer> | name { tokens } -\stoptexsyntax - -\starttexsyntax -\pdfextension endthread -\stoptexsyntax - -\starttexsyntax -\pdfextension thread - num <integer> | name { tokens } -\stoptexsyntax - -\starttexsyntax -\pdfextension outline - [ attr { tokens } ] - [ useobjnum <integer> ] - [ count <integer> ] - { tokens } -\stoptexsyntax - -\starttexsyntax -\pdfextension glyphtounicode - { tokens } - { tokens } -\stoptexsyntax - -\starttexsyntax -\pdfextension catalog - { tokens } - [ openaction - user { tokens } | goto | thread - [ file { tokens } ] - [ page <integer> { tokens } | name { tokens } | num <integer> ] - [ newwindow | nonewwindow ] ] -\stoptexsyntax - -\starttexsyntax -\pdfextension fontattr - <integer> - {tokens} -\stoptexsyntax - -\starttexsyntax -\pdfextension mapfile - {tokens} -\stoptexsyntax - -\starttexsyntax -\pdfextension mapline - {tokens} -\stoptexsyntax - -\starttexsyntax -\pdfextension includechars - {tokens} -\stoptexsyntax - -\starttexsyntax -\pdfextension info - {tokens} -\stoptexsyntax - -\starttexsyntax -\pdfextension names - {tokens} -\stoptexsyntax - -\starttexsyntax -\pdfextension trailer - {tokens} -\stoptexsyntax - -\stopsection - -\startsection[title=Directions] - -The directional model in \LUATEX\ is inherited from \OMEGA|/|\ALEPH\ but we tried -to improve it a bit. At some point we played with recovery of modes but that was -disabled later on when we found that it interfered with nested directions. That -itself had as side effect that the node list was no longer balanced with respect -to directional nodes which in turn can give side effects when a series of dir -changes happens without grouping. - -The current (0.97 onward) approach is that we again make the list balanced but -try to avoid some side effects. What happens is quite intuitive if we forget -about spaces (turned into glue) but even there what happens makes sense if you -look at it in detail. However that logic makes in|-|group switching kind of -useless when no proper nested grouping is used: switching from right to left -several times nested, results in spacing ending up after each other due to nested -mirroring. Of course a sane macro package will manage this for the user but here -we are discussing the low level dir injection. - -This is what happens: - -\starttyping -\textdir TRT nur {\textdir TLT run \textdir TRT NUR} nur -\stoptyping - -This becomes stepwise: - -\startnarrower -\starttyping -injected: [+TRT]nur {[+TLT]run [+TRT]NUR} nur -balanced: [+TRT]nur {[+TLT]run [-TLT][+TRT]NUR[-TRT]} nur[-TRT] -result : run {RUNrun } run -\stoptyping -\stopnarrower - -And this: - -\starttyping -\textdir TRT nur {nur \textdir TLT run \textdir TRT NUR} nur -\stoptyping - -becomes: - -\startnarrower -\starttyping -injected: [+TRT]nur {nur [+TLT]run [+TRT]NUR} nur -balanced: [+TRT]nur {nur [+TLT]run [-TLT][+TRT]NUR[-TRT]} nur[-TRT] -result : run {run RUNrun } run -\stoptyping -\stopnarrower - -Now, in the following examples watch where we put the braces: - -\startbuffer -\textdir TRT nur {{\textdir TLT run} {\textdir TRT NUR}} nur -\stopbuffer - -\typebuffer - -This becomes: - -\startnarrower -\getbuffer -\stopnarrower - -Compare this to: - -\startbuffer -\textdir TRT nur {{\textdir TLT run }{\textdir TRT NUR}} nur -\stopbuffer - -\typebuffer - -Which renders as: - -\startnarrower -\getbuffer -\stopnarrower - -So how do we deal with the next? - -\startbuffer -\def\ltr{\textdir TLT\relax} -\def\rtl{\textdir TRT\relax} - -run {\rtl nur {\ltr run \rtl NUR \ltr run \rtl NUR} nur} -run {\ltr run {\rtl nur \ltr RUN \rtl nur \ltr RUN} run} -\stopbuffer - -\typebuffer - -It gets typeset as: - -\startnarrower -\startlines -\getbuffer -\stoplines -\stopnarrower - -We could define the two helpers to look back, pick up a skip, remove it and -inject it after the dir node. But that way we loose the subtype information that -for some applications can be handy to be kept as|-|is. This is why we now have a -variant of \type {\textdir} which injects the balanced node before the skip. -Instead of the previous definition we can use: - -\startbuffer[def] -\def\ltr{\linedir TLT\relax} -\def\rtl{\linedir TRT\relax} -\stopbuffer - -\typebuffer[def] - -and this time: - -\startbuffer[txt] -run {\rtl nur {\ltr run \rtl NUR \ltr run \rtl NUR} nur} -run {\ltr run {\rtl nur \ltr RUN \rtl nur \ltr RUN} run} -\stopbuffer - -\typebuffer[txt] - -comes out as a properly spaced: - -\startnarrower -\startlines -\getbuffer[def,txt] -\stoplines -\stopnarrower - -Anything more complex that this, like combination of skips and penalties, or -kerns, should be handled in the input or macro package because there is no way we -can predict the expected behaviour. In fact, the \type {\linedir} is just a -convenience extra which could also have been implemented using node list parsing. - -Another adaptation to the \ALEPH\ directional model is control over shapes driven -by \type {\hangindent} and \type {\parshape}. This is controlled by a new parameter -\type {\shapemode}: - -\starttabulate[|cTB|c|] -\NC \NC \bf \type {\hangindent} \NC \bf \type {\parshape} \NC \NR -\NC 0 \NC normal \NC normal \NC \NR -\NC 1 \NC mirrored \NC normal \NC \NR -\NC 2 \NC normal \NC mirrored \NC \NR -\NC 3 \NC mirrored \NC mirrored \NC \NR -\stoptabulate - -The value is reset to zero (like \type {\hangindent} and \type {\parshape}) -after the paragraph is done with. You can use negative values to preven t -this. - -In \in {figure} [fig:shapemode] a few examples are given. - -\startplacefigure[reference=fig:shapemode,title={The effect of \type {shapemode}.}] - \startcombination[2*3] - {\ruledvbox \bgroup \setuptolerance[verytolerant] - \hsize .45\textwidth \switchtobodyfont[6pt] - \pardir TLT \textdir TLT - \hangindent 40pt \hangafter -3 - \leftskip10pt \input tufte \par - \egroup} {TLT: hangindent} - {\ruledvbox \bgroup \setuptolerance[verytolerant] - \hsize .45\textwidth \switchtobodyfont[6pt] - \pardir TLT \textdir TLT - \parshape 4 0pt .8\hsize 10pt .8\hsize 20pt .8\hsize 0pt \hsize - \input tufte \par - \egroup} {TLT: parshape} - {\ruledvbox \bgroup \setuptolerance[verytolerant] - \hsize .45\textwidth \switchtobodyfont[6pt] - \pardir TRT \textdir TRT - \hangindent 40pt \hangafter -3 - \leftskip10pt \input tufte \par - \egroup} {TRT: hangindent mode 0} - {\ruledvbox \bgroup \setuptolerance[verytolerant] - \hsize .45\textwidth \switchtobodyfont[6pt] - \pardir TRT \textdir TRT - \parshape 4 0pt .8\hsize 10pt .8\hsize 20pt .8\hsize 0pt \hsize - \input tufte \par - \egroup} {TRT: parshape mode 0} - {\ruledvbox \bgroup \setuptolerance[verytolerant] - \hsize .45\textwidth \switchtobodyfont[6pt] - \shapemode=3 - \pardir TRT \textdir TRT - \hangindent 40pt \hangafter -3 - \leftskip10pt \input tufte \par - \egroup} {TRT: hangindent mode 1 & 3} - {\ruledvbox \bgroup \setuptolerance[verytolerant] - \hsize .45\textwidth \switchtobodyfont[6pt] - \shapemode=3 - \pardir TRT \textdir TRT - \parshape 4 0pt .8\hsize 10pt .8\hsize 20pt .8\hsize 0pt \hsize - \input tufte \par - \egroup} {TRT: parshape mode 2 & 3} - \stopcombination -\stopplacefigure - -\stopsection - -\startsection[title=Implementation notes] - -\startsubsection[title=Memory allocation] - -The single internal memory heap that traditional \TEX\ used for tokens and nodes -is split into two separate arrays. Each of these will grow dynamically when -needed. - -The \type {texmf.cnf} settings related to main memory are no longer used (these -are: \type {main_memory}, \type {mem_bot}, \type {extra_mem_top} and \type -{extra_mem_bot}). \quote {Out of main memory} errors can still occur, but the -limiting factor is now the amount of RAM in your system, not a predefined limit. - -Also, the memory (de)allocation routines for nodes are completely rewritten. The -relevant code now lives in the C file \type {texnode.c}, and basically uses a -dozen or so \quote {avail} lists instead of a doubly|-|linked model. An extra -function layer is added so that the code can ask for nodes by type instead of -directly requisitioning a certain amount of memory words. - -Because of the split into two arrays and the resulting differences in the data -structures, some of the macros have been duplicated. For instance, there are now -\type {vlink} and \type {vinfo} as well as \type {token_link} and \type -{token_info}. All access to the variable memory array is now hidden behind a -macro called \type {vmem}. We mention this because using the \TEX book as -reference is still quite valid but not for memory related details. Another -significate detail is that we have double linked node lists and that some nodes -carry more data. - -The implementation of the growth of two arrays (via reallocation) introduces a -potential pitfall: the memory arrays should never be used as the left hand side -of a statement that can modify the array in question. Details like this are -of no concern to users. - -The input line buffer and pool size are now also reallocated when needed, and the -\type {texmf.cnf} settings \type {buf_size} and \type {pool_size} are silently -ignored. - -\stopsubsection - -\startsubsection[title=Sparse arrays] - -The \type {\mathcode}, \type {\delcode}, \type {\catcode}, \type {\sfcode}, \type -{\lccode} and \type {\uccode} (and the new \type {\hjcode}) tables are now sparse -arrays that are implemented in~\CCODE. They are no longer part of the \TEX\ -\quote {equivalence table} and because each had 1.1 million entries with a few -memory words each, this makes a major difference in memory usage. - -The \type {\catcode}, \type {\sfcode}, \type {\lccode}, \type {\uccode} and \type -{\hjcode} assignments do not yet show up when using the \ETEX\ tracing routines -\type {\tracingassigns} and \type {\tracingrestores}. - -A side|-|effect of the current implementation is that \type {\global} is now more -expensive in terms of processing than non|-|global assignments. - -The glyph ids within a font are also managed by means of a sparse array as glyph -ids can go up to index $2^{21}-1$. - -\stopsubsection - -\startsubsection[title=Simple single-character csnames] - -Single|-|character commands are no longer treated specially in the internals, -they are stored in the hash just like the multiletter csnames. - -The code that displays control sequences explicitly checks if the length is one -when it has to decide whether or not to add a trailing space. - -Active characters are internally implemented as a special type of multi|-|letter -control sequences that uses a prefix that is otherwise impossible to obtain. - -\stopsubsection - -\startsubsection[title=Compressed format] - -The format is passed through \type {zlib}, allowing it to shrink to roughly half -of the size it would have had in uncompressed form. This takes a bit more \CPU\ -cycles but much less disk \IO, so it should still be faster. - -\stopsubsection - -\startsubsection[title=Binary file reading] - -All of the internal code is changed in such a way that if one of the \type -{read_xxx_file} callbacks is not set, then the file is read by a \CCODE\ function -using basically the same convention as the callback: a single read into a buffer -big enough to hold the entire file contents. While this uses more memory than the -previous code (that mostly used \type {getc} calls), it can be quite a bit faster -(depending on your \IO\ subsystem). - -\stopsubsection - -\stopsection - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/luatex/luatex-nodes.tex b/doc/context/sources/general/manuals/luatex/luatex-nodes.tex deleted file mode 100644 index 8d32ab287..000000000 --- a/doc/context/sources/general/manuals/luatex/luatex-nodes.tex +++ /dev/null @@ -1,1915 +0,0 @@ -% language=uk - -\environment luatex-style -\environment luatex-logos - -\startcomponent luatex-nodes - -\startchapter[reference=nodes,title={Nodes}] - -\section{\LUA\ node representation} - -\TEX's nodes are represented in \LUA\ as userdata object with a variable set of -fields. In the following syntax tables, such the type of such a userdata object -is represented as \syntax {<node>}. - -The current return value of \type {node.types()} is: -\startluacode - for id, name in table.sortedhash(node.types()) do - context.type(name) - context(" (%s), ",id) - end - context.removeunwantedspaces() - context.removepunctuation() -\stopluacode -. % period - -The \type {\lastnodetype} primitive is \ETEX\ compliant. The valid range is still -$[-1,15]$ and glyph nodes (formerly known as char nodes) have number~0 while -ligature nodes are mapped to~7. That way macro packages can use the same symbolic -names as in traditional \ETEX. Keep in mind that these \ETEX\ node numbers are -different from the real internal ones and that there are more \ETEX\ node types -than~15. - -You can ask for a list of fields with the \type {node.fields} (which takes an id) -and for valid subtypes with \type {node.subtypes} (which takes a string because -eventually we might support more used enumerations). - -\subsection{Attributes} - -The newly introduced attribute registers are non|-|trivial, because the value -that is attached to a node is essentially a sparse array of key|-|value pairs. It -is generally easiest to deal with attribute lists and attributes by using the -dedicated functions in the \type {node} library, but for completeness, here is -the low|-|level interface. - -\subsubsection{attribute_list nodes} - -An \type {attribute_list} item is used as a head pointer for a list of attribute -items. It has only one user-visible field: - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC next \NC node \NC pointer to the first attribute \NC \NR -\stoptabulate - -\subsubsection{attribute nodes} - -A normal node's attribute field will point to an item of type \type -{attribute_list}, and the \type {next} field in that item will point to the first -defined \quote {attribute} item, whose \type {next} will point to the second -\quote {attribute} item, etc. - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC next \NC node \NC pointer to the next attribute \NC \NR -\NC number \NC number \NC the attribute type id \NC \NR -\NC value \NC number \NC the attribute value \NC \NR -\stoptabulate - -As mentioned it's better to use the official helpers rather than edit these -fields directly. For instance the \type {prev} field is used for other purposes -and there is no double linked list. - -\subsection{Main text nodes} - -These are the nodes that comprise actual typesetting commands. A few fields are -present in all nodes regardless of their type, these are: - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC next \NC node \NC the next node in a list, or nil \NC \NR -\NC id \NC number \NC the node's type (\type {id}) number \NC \NR -\NC subtype \NC number \NC the node \type {subtype} identifier \NC \NR -\stoptabulate - -The \type {subtype} is sometimes just a stub entry. Not all nodes actually use -the \type {subtype}, but this way you can be sure that all nodes accept it as a -valid field name, and that is often handy in node list traversal. In the -following tables \type {next} and \type {id} are not explicitly mentioned. - -Besides these three fields, almost all nodes also have an \type {attr} field, and -there is a also a field called \type {prev}. That last field is always present, -but only initialized on explicit request: when the function \type {node.slide()} -is called, it will set up the \type {prev} fields to be a backwards pointer in -the argument node list. By now most of \TEX's node processing makes sure that the -\type {prev} nodes are valid but there can be exceptions, especially when the -internal magic uses a leading \type {temp} nodes to temporarily store a state. - -\subsubsection{hlist nodes} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC subtype \NC number \NC \showsubtypes{list} \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC width \NC number \NC the width of the box \NC \NR -\NC height \NC number \NC the height of the box \NC \NR -\NC depth \NC number \NC the depth of the box \NC \NR -\NC shift \NC number \NC a displacement perpendicular to the character progression direction \NC \NR -\NC glue_order \NC number \NC a number in the range $[0,4]$, indicating the glue order \NC \NR -\NC glue_set \NC number \NC the calculated glue ratio \NC \NR -\NC glue_sign \NC number \NC 0 = \type {normal}, 1 = \type {stretching}, 2 = \type {shrinking} \NC \NR -\NC head/list \NC node \NC the first node of the body of this list \NC \NR -\NC dir \NC string \NC the direction of this box, see~\in[dirnodes] \NC \NR -\stoptabulate - -A warning: never assign a node list to the \type {head} field unless you are sure -its internal link structure is correct, otherwise an error may result. - -Note: the field name \type {head} and \type {list} are both valid. Sometimes it -makes more sense to refer to a list by \type {head}, sometimes \type {list} makes -more sense. - -\subsubsection{vlist nodes} - -This node is similar to \type {hlist}, except that \quote {shift} is a displacement -perpendicular to the line progression direction, and \quote {subtype} only has -the values 0, 4, and~5. - -\subsubsection{rule nodes} - -Contrary to traditional \TEX, \LUATEX\ has more subtypes because we also use -rules to store reuseable objects and images. User nodes are invisible and can be -intercepted by a callback. - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC subtype \NC number \NC \showsubtypes{rule} \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC width \NC number \NC the width of the rule where the special value $-1073741824$ is used for \quote {running} glue dimensions \NC \NR -\NC height \NC number \NC the height of the rule (can be negative) \NC \NR -\NC depth \NC number \NC the depth of the rule (can be negative) \NC \NR -\NC dir \NC string \NC the direction of this rule, see~\in[dirnodes] \NC \NR -\NC index \NC number \NC an optional index that can be referred to \NC \NR -\stoptabulate - -\subsubsection{ins nodes} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC subtype \NC number \NC the insertion class \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC cost \NC number \NC the penalty associated with this insert \NC \NR -\NC height \NC number \NC height of the insert \NC \NR -\NC depth \NC number \NC depth of the insert \NC \NR -\NC head/list \NC node \NC the first node of the body of this insert \NC \NR -\stoptabulate - -There is a set of extra fields that concern the associated glue: \type {width}, -\type {stretch}, \type {stretch_order}, \type {shrink} and \type {shrink_order}. -These are all numbers. - -A warning: never assign a node list to the \type {head} field unless you are sure -its internal link structure is correct, otherwise an error may be result. You can use -\type {list} instead (often in functions you want to use local variable swith similar -names and both names are equally sensible). - -\subsubsection{mark nodes} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC subtype \NC number \NC unused \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC class \NC number \NC the mark class \NC \NR -\NC mark \NC table \NC a table representing a token list \NC \NR -\stoptabulate - -\subsubsection{adjust nodes} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC subtype \NC number \NC \showsubtypes{adjust} \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC head/list \NC node \NC adjusted material \NC \NR -\stoptabulate - -A warning: never assign a node list to the \type {head} field unless you are sure -its internal link structure is correct, otherwise an error may be result. - -\subsubsection{disc nodes} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC subtype \NC number \NC \showsubtypes{disc} \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC pre \NC node \NC pointer to the pre|-|break text \NC \NR -\NC post \NC node \NC pointer to the post|-|break text \NC \NR -\NC replace \NC node \NC pointer to the no|-|break text \NC \NR -\NC penalty \NC number \NC the penalty associated with the break, normally \type {\hyphenpenalty} or \type {\exhyphenpenalty} \NC \NR -\stoptabulate - -The subtype numbers~4 and~5 belong to the \quote {of-f-ice} explanation given -elsewhere. - -These disc nodes are kind of special as at some point they also keep information -about breakpoints and nested ligatures. The \type {pre}, \type {post} and \type -{replace} fields at the \LUA\ end are in fact indirectly accessed and have a -\type {prev} pointer that is not \type {nil}. This means that when you mess -around with the head of these (three) lists, you also need to reassign them -because that will restore the proper \type {prev} pointer, so: - -\starttyping -pre = d.pre --- change the list starting with pre -d.pre = pre -\stoptyping - -Otherwise you can end up with an invalid internal perception of reality and -\LUATEX\ might even decide to crash on you. It also means that running forward -over for instance \type {pre} is ok but backward you need to stop at \type {pre}. -And you definitely must not mess with the node that \type {prev} points to, if -only because it is not really an node but part of the disc data structure (so -freeing it again might crash \LUATEX). - -\subsubsection{math nodes} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC subtype \NC number \NC \showsubtypes{math} \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC surround \NC number \NC width of the \type {\mathsurround} kern \NC \NR -\stoptabulate - -There is a set of extra fields that concern the associated glue: \type {width}, -\type {stretch}, \type {stretch_order}, \type {shrink} and \type {shrink_order}. -These are all numbers. - -\subsubsection{glue nodes} - -Skips are about the only type of data objects in traditional \TEX\ that are not a -simple value. The structure that represents the glue components of a skip is -called a \type {glue_spec}, and it has the following accessible fields: - -\starttabulate[|lT|l|p|] -\NC \rmbf key \NC \bf type \NC \bf explanation \NC \NR -\NC width \NC number \NC the horizontal or vertical displacement \NC \NR -\NC stretch \NC number \NC extra (positive) displacement or stretch amount \NC \NR -\NC stretch_order \NC number \NC factor applied to stretch amount \NC \NR -\NC shrink \NC number \NC extra (negative) displacement or shrink amount\NC \NR -\NC shrink_order \NC number \NC factor applied to shrink amount \NC \NR -\stoptabulate - -The effective width of some glue subtypes depends on the stretch or shrink needed -to make the encapsulating box fit its dimensions. For instance, in a paragraph -lines normally have glue representing spaces and these stretch of shrink to make -the content fit in the available space. The \type {effective_glue} function that -takes a glue node and a parent (hlist or vlist) returns the effective width of -that glue item. - -A gluespec node is a special kind of node that is used for storing a set of glue -values in registers. Originally they were also used to store properties of glue -nodes (using a system of reference counts) but we now keep these properties in -the glue nodes themselves, which gives a cleaner interface to \LUA. - -The indirect spec approach was in fact an optimization in the original \TEX\ -code. First of all it can save quite some memory because all these spaces that -become glue now share the same specification (only the reference count is -incremented), and zero testing is also a bit faster because only the pointer has -to be checked (this is no longer true for engines that implement for instance -protrusion where we really need to ensure that zero is zero when we test for -bounds). Another side effect is that glue specifications are read|-|only, so in -the end copies need to be made when they are used from \LUA\ (each assignment to -a field can result in a new copy). So in the end the advantages of sharing are -not that high (and nowadays memory is less an issue, also given that a glue node -is only a few memory words larger than a spec). - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC subtype \NC number \NC \showsubtypes{glue} \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC leader \NC node \NC pointer to a box or rule for leaders \NC \NR -\stoptabulate - -In addition there are the \type {width}, \type {stretch} \type {stretch_order}, -\type {shrink}, and \type {shrink_order} fields. Note that we use the key \type -{width} in both horizontal and vertical glue. This suits the \TEX\ internals well -so we decided to stick to that naming. - -A regular word space also results in a \type {spaceskip} subtype (this used to be -a \type {userskip} with subtype zero). - -\subsubsection{kern nodes} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC subtype \NC number \NC \showsubtypes{kern} \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC kern \NC number \NC fixed horizontal or vertical advance \NC \NR -\stoptabulate - -\subsubsection{penalty nodes} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC subtype \NC number \NC not used \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC penalty \NC number \NC the penalty value \NC \NR -\stoptabulate - -\subsubsection[glyphnodes]{glyph nodes} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \rmbf type \NC \rmbf explanation \NC \NR -\NC subtype \NC number \NC bitfield \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC char \NC number \NC the chatacter index in the font \NC \NR -\NC font \NC number \NC the font identifier \NC \NR -\NC lang \NC number \NC the language identifier \NC \NR -\NC left \NC number \NC the frozen \type {\lefthyphenmnin} value \NC \NR -\NC right \NC number \NC the frozen \type {\righthyphenmnin} value \NC \NR -\NC uchyph \NC boolean \NC the frozen \type {\uchyph} value \NC \NR -\NC components \NC node \NC pointer to ligature components \NC \NR -\NC xoffset \NC number \NC a virtual displacement in horizontal direction \NC \NR -\NC yoffset \NC number \NC a virtual displacement in vertical direction \NC \NR -\NC xadvance \NC number \NC an additional advance after the glyph (experimental) \NC \NR -\NC width \NC number \NC the (original) width of the character \NC \NR -\NC height \NC number \NC the (original) height of the character\NC \NR -\NC depth \NC number \NC the (original) depth of the character\NC \NR -\NC expansion_factor \NC number \NC the to be applied expansion_factor \NC \NR -\stoptabulate - -The \type {width}, \type {height} and \type {depth} values are read|-|only. The -\type {expansion_factor} is assigned in the parbuilder and used in the backend. - -A warning: never assign a node list to the components field unless you are sure -its internal link structure is correct, otherwise an error may be result. Valid -bits for the \type {subtype} field are: - -\starttabulate[|c|l|] -\NC \rmbf bit \NC \bf meaning \NC \NR -\NC 0 \NC character \NC \NR -\NC 1 \NC ligature \NC \NR -\NC 2 \NC ghost \NC \NR -\NC 3 \NC left \NC \NR -\NC 4 \NC right \NC \NR -\stoptabulate - -See \in {section} [charsandglyphs] for a detailed description of the \type -{subtype} field. - -The \type {expansion_factor} has been introduced as part of the separation -between font- and backend. It is the result of extensive experiments with a more -efficient implementation of expansion. Early versions of \LUATEX\ already -replaced multiple instances of fonts in the backend by scaling but contrary to -\PDFTEX\ in \LUATEX\ we now also got rid of font copies in the frontend and -replaced them by expansion factors that travel with glyph nodes. Apart from a -cleaner approach this is also a step towards a better separation between front- -and backend. - -The \type {is_char} function checks if a node is a glyph node with a subtype still -less than 256. This function can be used to determine if applying font logic to a -glyph node makes sense. The value \type {nil} gets returned when the node is not -a glyph, a character number is returned if the node is still tagged as character -and \type {false} gets returned otherwise. When nil is returned, the id is also -returned. The \type {is_glyph} variant doesn't check for a subtype being less -than 256, so it returns either the character value or nil plus the id. These -helpers are not always faster than separate calls but they sometimes permit -making more readable tests. - -\subsubsection{boundary nodes} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC subtype \NC number \NC \showsubtypes{boundary} \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC value \NC number \NC values 0--255 are reserved \NC \NR -\stoptabulate - -This node relates to the \type {\noboundary}, \type {\boundary}, \type -{\protrusionboundary} and \type {\wordboundary} primitives. - -\subsubsection{local_par nodes} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC pen_inter \NC number \NC local interline penalty (from \type {\localinterlinepenalty}) \NC \NR -\NC pen_broken \NC number \NC local broken penalty (from \type {\localbrokenpenalty}) \NC \NR -\NC dir \NC string \NC the direction of this par. see~\in [dirnodes] \NC \NR -\NC box_left \NC node \NC the \type {\localleftbox} \NC \NR -\NC box_left_width \NC number \NC width of the \type {\localleftbox} \NC \NR -\NC box_right \NC node \NC the \type {\localrightbox} \NC \NR -\NC box_right_width \NC number \NC width of the \type {\localrightbox} \NC \NR -\stoptabulate - -A warning: never assign a node list to the \type {box_left} or \type {box_right} -field unless you are sure its internal link structure is correct, otherwise an -error may be result. - -\subsubsection[dirnodes]{dir nodes} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC dir \NC string \NC the direction (but see below) \NC \NR -\NC level \NC number \NC nesting level of this direction whatsit \NC \NR -\stoptabulate - -A note on \type {dir} strings. Direction specifiers are three|-|letter -combinations of \type {T}, \type {B}, \type {R}, and \type {L}. - -These are built up out of three separate items: - -\startitemize[packed] -\startitem - the first is the direction of the \quote{top} of paragraphs. -\stopitem -\startitem - the second is the direction of the \quote{start} of lines. -\stopitem -\startitem - the third is the direction of the \quote{top} of glyphs. -\stopitem -\stopitemize - -However, only four combinations are accepted: \type {TLT}, \type {TRT}, \type -{RTT}, and \type {LTL}. - -Inside actual \type {dir} whatsit nodes, the representation of \type {dir} is not -a three-letter but a four|-|letter combination. The first character in this case -is always either \type {+} or \type {-}, indicating whether the value is pushed -or popped from the direction stack. - -\subsubsection{margin_kern nodes} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC subtype \NC number \NC \showsubtypes{margin_kern} \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC width \NC number \NC the advance of the kern \NC \NR -\NC glyph \NC node \NC the glyph to be used \NC \NR -\stoptabulate - -\subsection{Math nodes} - -These are the so||called \quote {noad}s and the nodes that are specifically -associated with math processing. Most of these nodes contain subnodes so that the -list of possible fields is actually quite small. First, the subnodes: - -\subsubsection{Math kernel subnodes} - -Many object fields in math mode are either simple characters in a specific family -or math lists or node lists. There are four associated subnodes that represent -these cases (in the following node descriptions these are indicated by the word -\type {<kernel>}). - -The \type {next} and \type {prev} fields for these subnodes are unused. - -\subsubsubsection{math_char and math_text_char subnodes} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC char \NC number \NC the character index \NC \NR -\NC fam \NC number \NC the family number \NC \NR -\stoptabulate - -The \type {math_char} is the simplest subnode field, it contains the character -and family for a single glyph object. The \type {math_text_char} is a special -case that you will not normally encounter, it arises temporarily during math list -conversion (its sole function is to suppress a following italic correction). - -\subsubsubsection{sub_box and sub_mlist subnodes} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC head/list \NC node \NC list of nodes \NC \NR -\stoptabulate - -These two subnode types are used for subsidiary list items. For \type {sub_box}, -the \type {head} points to a \quote {normal} vbox or hbox. For \type {sub_mlist}, -the \type {head} points to a math list that is yet to be converted. - -A warning: never assign a node list to the \type {head} field unless you are sure -its internal link structure is correct, otherwise an error may be result. - -\subsubsection{Math delimiter subnode} - -There is a fifth subnode type that is used exclusively for delimiter fields. As -before, the \type {next} and \type {prev} fields are unused. - -\subsubsubsection{delim subnodes} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC small_char \NC number \NC character index of base character \NC \NR -\NC small_fam \NC number \NC family number of base character \NC \NR -\NC large_char \NC number \NC character index of next larger character \NC \NR -\NC large_fam \NC number \NC family number of next larger character \NC \NR -\stoptabulate - -The fields \type {large_char} and \type {large_fam} can be zero, in that case the -font that is sed for the \type {small_fam} is expected to provide the large -version as an extension to the \type {small_char}. - -\subsubsection{Math core nodes} - -First, there are the objects (the \TEX book calls then \quote {atoms}) that are -associated with the simple math objects: ord, op, bin, rel, open, close, punct, -inner, over, under, vcent. These all have the same fields, and they are combined -into a single node type with separate subtypes for differentiation. - -\subsubsubsection{simple nodes} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC subtype \NC number \NC \showsubtypes{noad} \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC nucleus \NC kernel node \NC base \NC \NR -\NC sub \NC kernel node \NC subscript \NC \NR -\NC sup \NC kernel node \NC superscript \NC \NR -\stoptabulate - -\subsubsubsection{accent nodes} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC subtype \NC number \NC \showsubtypes{accent} \NC \NR -\NC nucleus \NC kernel node \NC base \NC \NR -\NC sub \NC kernel node \NC subscript \NC \NR -\NC sup \NC kernel node \NC superscript \NC \NR -\NC accent \NC kernel node \NC top accent \NC \NR -\NC bot_accent \NC kernel node \NC bottom accent \NC \NR -\stoptabulate - -\subsubsubsection{style nodes} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC style \NC string \NC contains the style \NC \NR -\stoptabulate - -There are eight possibilities for the string value: one of \quote {display}, -\quote {text}, \quote {script}, or \quote {scriptscript}. Each of these can have -a trailing \type {'} to signify \quote {cramped} styles. - -\subsubsubsection{choice nodes} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC display \NC node \NC list of display size alternatives \NC \NR -\NC text \NC node \NC list of text size alternatives \NC \NR -\NC script \NC node \NC list of scriptsize alternatives \NC \NR -\NC scriptscript \NC node \NC list of scriptscriptsize alternatives \NC \NR -\stoptabulate - -A warning: never assign a node list to the display, text, script, or -scriptscript field unless you are sure its internal link structure is -correct, otherwise an error may be result. - -\subsubsubsection{radical nodes} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC subtype \NC number \NC \showsubtypes{radical} \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC nucleus \NC kernel node \NC base \NC \NR -\NC sub \NC kernel node \NC subscript \NC \NR -\NC sup \NC kernel node \NC superscript \NC \NR -\NC left \NC delimiter node \NC \NC \NR -\NC degree \NC kernel node \NC only set by \type {\Uroot} \NC \NR -\stoptabulate - -A warning: never assign a node list to the nucleus, sub, sup, left, or degree -field unless you are sure its internal link structure is correct, otherwise an -error may be result. - -\subsubsubsection{fraction nodes} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC width \NC number \NC (optional) width of the fraction \NC \NR -\NC num \NC kernel node \NC numerator \NC \NR -\NC denom \NC kernel node \NC denominator \NC \NR -\NC left \NC delimiter node \NC left side symbol \NC \NR -\NC right \NC delimiter node \NC right side symbol\NC \NR -\stoptabulate - -A warning: never assign a node list to the num, or denom field unless you are -sure its internal link structure is correct, otherwise an error may be result. - -\subsubsubsection{fence nodes} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC subtype \NC number \NC \showsubtypes{fence} \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC delim \NC delimiter node \NC delimiter specification \NC \NR -\stoptabulate - -\subsection{whatsit nodes} - -Whatsit nodes come in many subtypes that you can ask for by running -\type {node.whatsits()}: -\startluacode - for id, name in table.sortedpairs(node.whatsits()) do - context.type(name) - context(" (%s), ",id) - end - context.removeunwantedspaces() - context.removepunctuation() -\stopluacode -. % period - -\subsubsection{front|-|end whatsits} - -\subsubsubsection{open whatsits} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC stream \NC number \NC \TEX's stream id number \NC \NR -\NC name \NC string \NC file name \NC \NR -\NC ext \NC string \NC file extension \NC \NR -\NC area \NC string \NC file area (this may become obsolete) \NC \NR -\stoptabulate - -\subsubsubsection{write whatsits} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC stream \NC number \NC \TEX's stream id number \NC \NR -\NC data \NC table \NC a table representing the token list to be written \NC \NR -\stoptabulate - -\subsubsubsection{close whatsits} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC stream \NC number \NC \TEX's stream id number \NC \NR -\stoptabulate - -\subsubsubsection{user_defined whatsits} - -User|-|defined whatsit nodes can only be created and handled from \LUA\ code. In -effect, they are an extension to the extension mechanism. The \LUATEX\ engine -will simply step over such whatsits without ever looking at the contents. - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC user_id \NC number \NC id number \NC \NR -\NC type \NC number \NC type of the value \NC \NR -\NC value \NC number \NC a \LUA\ number \NC \NR -\NC \NC node \NC a node list \NC \NR -\NC \NC string \NC a \LUA\ string \NC \NR -\NC \NC table \NC a \LUA\ table \NC \NR -\stoptabulate - -The \type {type} can have one of six distinct values. The number is the \ASCII\ -value if the first character if the type name (so you can use string.byte("l") -instead of \type {108}). - -\starttabulate[|lT|lT|p|] -\NC \rmbf value \NC \bf meaning \NC \bf explanation \NC \NR -\NC 97 \NC a \NC list of attributes (a node list) \NC \NR -\NC 100 \NC d \NC a \LUA\ number \NC \NR -\NC 108 \NC l \NC a \LUA\ value (table, number, boolean, etc) \NC \NR -\NC 110 \NC n \NC a node list \NC \NR -\NC 115 \NC s \NC a \LUA\ string \NC \NR -\NC 116 \NC t \NC a \LUA\ token list in \LUA\ table form (a list of triplets) \NC \NR -\stoptabulate - -\subsubsubsection{save_pos whatsits} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\stoptabulate - -\subsubsubsection{late_lua whatsits} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC data \NC string \NC data to execute \NC \NR -\NC string \NC string \NC data to execute \NC \NR -\NC name \NC string \NC the name to use for \LUA\ error reporting \NC \NR -\stoptabulate - -The difference between \type {data} and \type {string} is that on assignment, the -\type {data} field is converted to a token list, cf. use as \type {\latelua}. The -\type {string} version is treated as a literal string. - -\subsubsection{\DVI\ backend whatsits} - -\subsubsection{special whatsits} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC data \NC string \NC the \type {\special} information \NC \NR -\stoptabulate - -\subsubsection{\PDF\ backend whatsits} - -\subsubsubsection{pdf_literal whatsits} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC mode \NC number \NC the \quote {mode} setting of this literal \NC \NR -\NC data \NC string \NC the \type {\pdfliteral} information \NC \NR -\stoptabulate - -Possible mode values are: - -\starttabulate[|lT|p|] -\NC \rmbf value \NC \rmbf \PDFTEX\ keyword \NC \NR -\NC 0 \NC setorigin \NC \NR -\NC 1 \NC page \NC \NR -\NC 2 \NC direct \NC \NR -\stoptabulate - -\subsubsubsection{pdf_refobj whatsits} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC objnum \NC number \NC the referenced \PDF\ object number \NC \NR -\stoptabulate - -\subsubsubsection{pdf_annot whatsits} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC width \NC number \NC the width (not used in calculations) \NC \NR -\NC height \NC number \NC the height (not used in calculations) \NC \NR -\NC depth \NC number \NC the depth (not used in calculations) \NC \NR -\NC objnum \NC number \NC the referenced \PDF\ object number \NC \NR -\NC data \NC string \NC the annotation data \NC \NR -\stoptabulate - -\subsubsubsection{pdf_start_link whatsits} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC width \NC number \NC the width (not used in calculations) \NC \NR -\NC height \NC number \NC the height (not used in calculations) \NC \NR -\NC depth \NC number \NC the depth (not used in calculations) \NC \NR -\NC objnum \NC number \NC the referenced \PDF\ object number \NC \NR -\NC link_attr \NC table \NC the link attribute token list \NC \NR -\NC action \NC node \NC the action to perform \NC \NR -\stoptabulate - -\subsubsubsection{pdf_end_link whatsits} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC attr \NC node \NC \NC \NR -\stoptabulate - -\subsubsubsection{pdf_dest whatsits} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC width \NC number \NC the width (not used in calculations) \NC \NR -\NC height \NC number \NC the height (not used in calculations) \NC \NR -\NC depth \NC number \NC the depth (not used in calculations) \NC \NR -\NC named_id \NC number \NC is the \type {dest_id} a string value? \NC \NR -\NC dest_id \NC number \NC the destination id \NC \NR -\NC \NC string \NC the destination name \NC \NR -\NC dest_type \NC number \NC type of destination \NC \NR -\NC xyz_zoom \NC number \NC the zoom factor (times 1000) \NC \NR -\NC objnum \NC number \NC the \PDF\ object number \NC \NR -\stoptabulate - -\subsubsubsection{pdf_action whatsits} - -These are a special kind of item that only appears inside \PDF\ start link -objects. - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC action_type \NC number \NC the kind of action involved \NC \NR -\NC action_id \NC number or string \NC token list reference or string \NC \NR -\NC named_id \NC number \NC the index of the destination \NC \NR -\NC file \NC string \NC the target filename \NC \NR -\NC new_window \NC number \NC the window state of the target \NC \NR -\NC data \NC string \NC the name of the destination \NC \NR -\stoptabulate - -Valid action types are: - -\starttabulate[|lT|lT|] -\NC 0 \NC page \NC \NR -\NC 1 \NC goto \NC \NR -\NC 2 \NC thread \NC \NR -\NC 3 \NC user \NC \NR -\stoptabulate - -Valid window types are: - -\starttabulate[|lT|lT|] -\NC 0 \NC notset \NC \NR -\NC 1 \NC new \NC \NR -\NC 2 \NC nonew \NC \NR -\stoptabulate - -\subsubsubsection{pdf_thread whatsits} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC width \NC number \NC the width (not used in calculations) \NC \NR -\NC height \NC number \NC the height (not used in calculations) \NC \NR -\NC depth \NC number \NC the depth (not used in calculations) \NC \NR -\NC named_id \NC number \NC is \type {tread_id} a string value? \NC \NR -\NC tread_id \NC number \NC the thread id \NC \NR -\NC \NC string \NC the thread name \NC \NR -\NC thread_attr \NC number \NC extra thread information \NC \NR -\stoptabulate - -\subsubsubsection{pdf_start_thread whatsits} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC width \NC number \NC the width (not used in calculations) \NC \NR -\NC height \NC number \NC the height (not used in calculations) \NC \NR -\NC depth \NC number \NC the depth (not used in calculations) \NC \NR -\NC named_id \NC number \NC is \type {tread_id} a string value? \NC \NR -\NC tread_id \NC number \NC the thread id \NC \NR -\NC \NC string \NC the thread name \NC \NR -\NC thread_attr \NC number \NC extra thread information \NC \NR -\stoptabulate - -\subsubsubsection{pdf_end_thread whatsits} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC attr \NC node \NC \NC \NR -\stoptabulate - -\subsubsubsection{pdf_colorstack whatsits} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC stack \NC number \NC colorstack id number \NC \NR -\NC command \NC number \NC command to execute \NC \NR -\NC data \NC string \NC data \NC \NR -\stoptabulate - -\subsubsubsection{pdf_setmatrix whatsits} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\NC data \NC string \NC data \NC \NR -\stoptabulate - -\subsubsubsection{pdf_save whatsits} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\stoptabulate - -\subsubsubsection{pdf_restore whatsits} - -\starttabulate[|lT|l|p|] -\NC \rmbf field \NC \bf type \NC \bf explanation \NC \NR -\NC attr \NC node \NC list of attributes \NC \NR -\stoptabulate - -\section{The \type {node} library} - -The \type {node} library contains functions that facilitate dealing with (lists -of) nodes and their values. They allow you to create, alter, copy, delete, and -insert \LUATEX\ node objects, the core objects within the typesetter. - -\LUATEX\ nodes are represented in \LUA\ as userdata with the metadata type -\type {luatex.node}. The various parts within a node can be accessed using -named fields. - -Each node has at least the three fields \type {next}, \type {id}, and \type -{subtype}: - -\startitemize[intro] - -\startitem - The \type {next} field returns the userdata object for the next node in a - linked list of nodes, or \type {nil}, if there is no next node. -\stopitem - -\startitem - The \type {id} indicates \TEX's \quote{node type}. The field \type {id} has a - numeric value for efficiency reasons, but some of the library functions also - accept a string value instead of \type {id}. -\stopitem - -\startitem - The \type {subtype} is another number. It often gives further information - about a node of a particular \type {id}, but it is most important when - dealing with \quote {whatsits}, because they are differentiated solely based - on their \type {subtype}. -\stopitem - -\stopitemize - -The other available fields depend on the \type {id} (and for \quote {whatsits}, -the \type {subtype}) of the node. Further details on the various fields and their -meanings are given in~\in{chapter}[nodes]. - -Support for \type {unset} (alignment) nodes is partial: they can be queried and -modified from \LUA\ code, but not created. - -Nodes can be compared to each other, but: you are actually comparing indices into -the node memory. This means that equality tests can only be trusted under very -limited conditions. It will not work correctly in any situation where one of the -two nodes has been freed and|/|or reallocated: in that case, there will be false -positives. - -At the moment, memory management of nodes should still be done explicitly by the -user. Nodes are not \quote {seen} by the \LUA\ garbage collector, so you have to -call the node freeing functions yourself when you are no longer in need of a node -(list). Nodes form linked lists without reference counting, so you have to be -careful that when control returns back to \LUATEX\ itself, you have not deleted -nodes that are still referenced from a \type {next} pointer elsewhere, and that -you did not create nodes that are referenced more than once. - -There are statistics available with regards to the allocated node memory, which -can be handy for tracing. - -\subsection{Node handling functions} - -\subsubsection{\type {node.is_node}} - -\startfunctioncall -<boolean> t = - node.is_node(<any> item) -\stopfunctioncall - -This function returns true if the argument is a userdata object of -type \type {<node>}. - -\subsubsection{\type {node.types}} - -\startfunctioncall -<table> t = - node.types() -\stopfunctioncall - -This function returns an array that maps node id numbers to node type strings, -providing an overview of the possible top|-|level \type {id} types. - -\subsubsection{\type {node.whatsits}} - -\startfunctioncall -<table> t = - node.whatsits() -\stopfunctioncall - -\TEX's \quote{whatsits} all have the same \type {id}. The various subtypes are -defined by their \type {subtype} fields. The function is much like \type -{node.types}, except that it provides an array of \type {subtype} mappings. - -\subsubsection{\type {node.id}} - -\startfunctioncall -<number> id = - node.id(<string> type) -\stopfunctioncall - -This converts a single type name to its internal numeric representation. - -\subsubsection{\type {node.subtype}} - -\startfunctioncall -<number> subtype = - node.subtype(<string> type) -\stopfunctioncall - -This converts a single whatsit name to its internal numeric representation (\type -{subtype}). - -\subsubsection{\type {node.type}} - -\startfunctioncall -<string> type = - node.type(<any> n) -\stopfunctioncall - -In the argument is a number, then this function converts an internal numeric -representation to an external string representation. Otherwise, it will return -the string \type {node} if the object represents a node, and \type {nil} -otherwise. - -\subsubsection{\type {node.fields}} - -\startfunctioncall -<table> t = - node.fields(<number> id) -<table> t = - node.fields(<number> id, <number> subtype) -\stopfunctioncall - -This function returns an array of valid field names for a particular type of -node. If you want to get the valid fields for a \quote {whatsit}, you have to -supply the second argument also. In other cases, any given second argument will -be silently ignored. - -This function accepts string \type {id} and \type {subtype} values as well. - -\subsubsection{\type {node.has_field}} - -\startfunctioncall -<boolean> t = - node.has_field(<node> n, <string> field) -\stopfunctioncall - -This function returns a boolean that is only true if \type {n} is -actually a node, and it has the field. - -\subsubsection{\type {node.new}} - -\startfunctioncall -<node> n = - node.new(<number> id) -<node> n = - node.new(<number> id, <number> subtype) -\stopfunctioncall - -Creates a new node. All of the new node's fields are initialized to either zero -or \type {nil} except for \type {id} and \type {subtype} (if supplied). If you -want to create a new whatsit, then the second argument is required, otherwise it -need not be present. As with all node functions, this function creates a node on -the \TEX\ level. - -This function accepts string \type {id} and \type {subtype} values as well. - -\subsubsection{\type {node.free} and \type {node.flush_node}} - -\startfunctioncall -<node> next = - node.free(<node> n) -flush_node(<node> n) -\stopfunctioncall - -Removes the node \type {n} from \TEX's memory. Be careful: no checks are done on -whether this node is still pointed to from a register or some \type {next} field: -it is up to you to make sure that the internal data structures remain correct. - -The \type {free} function returns the next field of the freed node, while the -\type {flush_node} alternative returns nothing. - -\subsubsection{\type {node.flush_list}} - -\startfunctioncall -node.flush_list(<node> n) -\stopfunctioncall - -Removes the node list \type {n} and the complete node list following \type {n} -from \TEX's memory. Be careful: no checks are done on whether any of these nodes -is still pointed to from a register or some \type {next} field: it is up to you -to make sure that the internal data structures remain correct. - -\subsubsection{\type {node.copy}} - -\startfunctioncall -<node> m = - node.copy(<node> n) -\stopfunctioncall - -Creates a deep copy of node \type {n}, including all nested lists as in the case -of a hlist or vlist node. Only the \type {next} field is not copied. - -\subsubsection{\type {node.copy_list}} - -\startfunctioncall -<node> m = - node.copy_list(<node> n) -<node> m = - node.copy_list(<node> n, <node> m) -\stopfunctioncall - -Creates a deep copy of the node list that starts at \type {n}. If \type {m} is -also given, the copy stops just before node \type {m}. - -Note that you cannot copy attribute lists this way, specialized functions for -dealing with attribute lists will be provided later but are not there yet. -However, there is normally no need to copy attribute lists as when you do -assignments to the \type {attr} field or make changes to specific attributes, the -needed copying and freeing takes place automatically. - -\subsubsection{\type {node.next}} - -\startfunctioncall -<node> m = - node.next(<node> n) -\stopfunctioncall - -Returns the node following this node, or \type {nil} if there is no such node. - -\subsubsection{\type {node.prev}} - -\startfunctioncall -<node> m = - node.prev(<node> n) -\stopfunctioncall - -Returns the node preceding this node, or \type {nil} if there is no such node. - -\subsubsection{\type {node.current_attr}} - -\startfunctioncall -<node> m = - node.current_attr() -\stopfunctioncall - -Returns the currently active list of attributes, if there is one. - -The intended usage of \type {current_attr} is as follows: - -\starttyping -local x1 = node.new("glyph") -x1.attr = node.current_attr() -local x2 = node.new("glyph") -x2.attr = node.current_attr() -\stoptyping - -or: - -\starttyping -local x1 = node.new("glyph") -local x2 = node.new("glyph") -local ca = node.current_attr() -x1.attr = ca -x2.attr = ca -\stoptyping - -The attribute lists are ref counted and the assignment takes care of incrementing -the refcount. You cannot expect the value \type {ca} to be valid any more when -you assign attributes (using \type {tex.setattribute}) or when control has been -passed back to \TEX. - -Note: this function is somewhat experimental, and it returns the {\it actual} -attribute list, not a copy thereof. Therefore, changing any of the attributes in -the list will change these values for all nodes that have the current attribute -list assigned to them. - -\subsubsection{\type {node.hpack}} - -\startfunctioncall -<node> h, <number> b = - node.hpack(<node> n) -<node> h, <number> b = - node.hpack(<node> n, <number> w, <string> info) -<node> h, <number> b = - node.hpack(<node> n, <number> w, <string> info, <string> dir) -\stopfunctioncall - -This function creates a new hlist by packaging the list that begins at node \type -{n} into a horizontal box. With only a single argument, this box is created using -the natural width of its components. In the three argument form, \type {info} -must be either \type {additional} or \type {exactly}, and \type {w} is the -additional (\type {\hbox spread}) or exact (\type {\hbox to}) width to be used. The -second return value is the badness of the generated box. - -Caveat: at this moment, there can be unexpected side|-|effects to this function, -like updating some of the \type {\marks} and \type {\inserts}. Also note that the -content of \type {h} is the original node list \type {n}: if you call \type -{node.free(h)} you will also free the node list itself, unless you explicitly set -the \type {list} field to \type {nil} beforehand. And in a similar way, calling -\type {node.free(n)} will invalidate \type {h} as well! - -\subsubsection{\type {node.vpack}} - -\startfunctioncall -<node> h, <number> b = - node.vpack(<node> n) -<node> h, <number> b = - node.vpack(<node> n, <number> w, <string> info) -<node> h, <number> b = - node.vpack(<node> n, <number> w, <string> info, <string> dir) -\stopfunctioncall - -This function creates a new vlist by packaging the list that begins at node \type -{n} into a vertical box. With only a single argument, this box is created using -the natural height of its components. In the three argument form, \type {info} -must be either \type {additional} or \type {exactly}, and \type {w} is the -additional (\type {\vbox spread}) or exact (\type {\vbox to}) height to be used. - -The second return value is the badness of the generated box. - -See the description of \type {node.hpack()} for a few memory allocation caveats. - -\subsubsection{\type {node.dimensions}} - -\startfunctioncall -<number> w, <number> h, <number> d = - node.dimensions(<node> n) -<number> w, <number> h, <number> d = - node.dimensions(<node> n, <string> dir) -<number> w, <number> h, <number> d = - node.dimensions(<node> n, <node> t) -<number> w, <number> h, <number> d = - node.dimensions(<node> n, <node> t, <string> dir) -\stopfunctioncall - -This function calculates the natural in|-|line dimensions of the node list starting -at node \type {n} and terminating just before node \type {t} (or the end of the -list, if there is no second argument). The return values are scaled points. An -alternative format that starts with glue parameters as the first three arguments -is also possible: - -\startfunctioncall -<number> w, <number> h, <number> d = - node.dimensions(<number> glue_set, <number> glue_sign, <number> glue_order, - <node> n) -<number> w, <number> h, <number> d = - node.dimensions(<number> glue_set, <number> glue_sign, <number> glue_order, - <node> n, <string> dir) -<number> w, <number> h, <number> d = - node.dimensions(<number> glue_set, <number> glue_sign, <number> glue_order, - <node> n, <node> t) -<number> w, <number> h, <number> d = - node.dimensions(<number> glue_set, <number> glue_sign, <number> glue_order, - <node> n, <node> t, <string> dir) -\stopfunctioncall - -This calling method takes glue settings into account and is especially useful for -finding the actual width of a sublist of nodes that are already boxed, for -example in code like this, which prints the width of the space in between the -\type {a} and \type {b} as it would be if \type {\box0} was used as-is: - -\starttyping -\setbox0 = \hbox to 20pt {a b} - -\directlua{print (node.dimensions( - tex.box[0].glue_set, - tex.box[0].glue_sign, - tex.box[0].glue_order, - tex.box[0].head.next, - node.tail(tex.box[0].head) -)) } -\stoptyping - -You need to keep in mind that this is one of the few places in \TEX\ where floats -are used, which means that you can get small differences in rounding when you -compare the width repported by \type {hpack} with \type {dimensions}. - -\subsubsection{\type {node.mlist_to_hlist}} - -\startfunctioncall -<node> h = - node.mlist_to_hlist(<node> n, <string> display_type, <boolean> penalties) -\stopfunctioncall - -This runs the internal mlist to hlist conversion, converting the math list in -\type {n} into the horizontal list \type {h}. The interface is exactly the same -as for the callback \type {mlist_to_hlist}. - -\subsubsection{\type {node.slide}} - -\startfunctioncall -<node> m = - node.slide(<node> n) -\stopfunctioncall - -Returns the last node of the node list that starts at \type {n}. As a -side|-|effect, it also creates a reverse chain of \type {prev} pointers between -nodes. - -\subsubsection{\type {node.tail}} - -\startfunctioncall -<node> m = - node.tail(<node> n) -\stopfunctioncall - -Returns the last node of the node list that starts at \type {n}. - -\subsubsection{\type {node.length}} - -\startfunctioncall -<number> i = - node.length(<node> n) -<number> i = - node.length(<node> n, <node> m) -\stopfunctioncall - -Returns the number of nodes contained in the node list that starts at \type {n}. -If \type {m} is also supplied it stops at \type {m} instead of at the end of the -list. The node \type {m} is not counted. - -\subsubsection{\type {node.count}} - -\startfunctioncall -<number> i = - node.count(<number> id, <node> n) -<number> i = - node.count(<number> id, <node> n, <node> m) -\stopfunctioncall - -Returns the number of nodes contained in the node list that starts at \type {n} -that have a matching \type {id} field. If \type {m} is also supplied, counting -stops at \type {m} instead of at the end of the list. The node \type {m} is not -counted. - -This function also accept string \type {id}'s. - -\subsubsection{\type {node.traverse}} - -\startfunctioncall -<node> t = - node.traverse(<node> n) -\stopfunctioncall - -This is a \LUA\ iterator that loops over the node list that starts at \type {n}. -Typically code looks like this: - -\starttyping -for n in node.traverse(head) do - ... -end -\stoptyping - -is functionally equivalent to: - -\starttyping -do - local n - local function f (head,var) - local t - if var == nil then - t = head - else - t = var.next - end - return t - end - while true do - n = f (head, n) - if n == nil then break end - ... - end -end -\stoptyping - -It should be clear from the definition of the function \type {f} that even though -it is possible to add or remove nodes from the node list while traversing, you -have to take great care to make sure all the \type {next} (and \type {prev}) -pointers remain valid. - -If the above is unclear to you, see the section \quote {For Statement} in the -\LUA\ Reference Manual. - -\subsubsection{\type {node.traverse_id}} - -\startfunctioncall -<node> t = - node.traverse_id(<number> id, <node> n) -\stopfunctioncall - -This is an iterator that loops over all the nodes in the list that starts at -\type {n} that have a matching \type {id} field. - -See the previous section for details. The change is in the local function \type -{f}, which now does an extra while loop checking against the upvalue \type {id}: - -\starttyping - local function f(head,var) - local t - if var == nil then - t = head - else - t = var.next - end - while not t.id == id do - t = t.next - end - return t - end -\stoptyping - -\subsubsection{\type {node.traverse_char}} - -This iterators loops over the glyph nodes in a list. Only nodes with a subtype -less than 256 are seen. - -\startfunctioncall -<node> n = - node.traverse_char(<node> n) -\stopfunctioncall - -\subsubsection{\type {node.has_glyph}} - -This function returns the first glyph or disc node in the given list: - -\startfunctioncall -<node> n = - node.has_glyph(<node> n) -\stopfunctioncall - -\subsubsection{\type {node.end_of_math}} - -\startfunctioncall -<node> t = - node.end_of_math(<node> start) -\stopfunctioncall - -Looks for and returns the next \type {math_node} following the \type {start}. If -the given node is a math endnode this helper return that node, else it follows -the list and return the next math endnote. If no such node is found nil is -returned. - -\subsubsection{\type {node.remove}} - -\startfunctioncall -<node> head, current = - node.remove(<node> head, <node> current) -\stopfunctioncall - -This function removes the node \type {current} from the list following \type -{head}. It is your responsibility to make sure it is really part of that list. -The return values are the new \type {head} and \type {current} nodes. The -returned \type {current} is the node following the \type {current} in the calling -argument, and is only passed back as a convenience (or \type {nil}, if there is -no such node). The returned \type {head} is more important, because if the -function is called with \type {current} equal to \type {head}, it will be -changed. - -\subsubsection{\type {node.insert_before}} - -\startfunctioncall -<node> head, new = - node.insert_before(<node> head, <node> current, <node> new) -\stopfunctioncall - -This function inserts the node \type {new} before \type {current} into the list -following \type {head}. It is your responsibility to make sure that \type -{current} is really part of that list. The return values are the (potentially -mutated) \type {head} and the node \type {new}, set up to be part of the list -(with correct \type {next} field). If \type {head} is initially \type {nil}, it -will become \type {new}. - -\subsubsection{\type {node.insert_after}} - -\startfunctioncall -<node> head, new = - node.insert_after(<node> head, <node> current, <node> new) -\stopfunctioncall - -This function inserts the node \type {new} after \type {current} into the list -following \type {head}. It is your responsibility to make sure that \type -{current} is really part of that list. The return values are the \type {head} and -the node \type {new}, set up to be part of the list (with correct \type {next} -field). If \type {head} is initially \type {nil}, it will become \type {new}. - -\subsubsection{\type {node.first_glyph}} - -\startfunctioncall -<node> n = - node.first_glyph(<node> n) -<node> n = - node.first_glyph(<node> n, <node> m) -\stopfunctioncall - -Returns the first node in the list starting at \type {n} that is a glyph node -with a subtype indicating it is a glyph, or \type {nil}. If \type {m} is given, -processing stops at (but including) that node, otherwise processing stops at the -end of the list. - -\subsubsection{\type {node.ligaturing}} - -\startfunctioncall -<node> h, <node> t, <boolean> success = - node.ligaturing(<node> n) -<node> h, <node> t, <boolean> success = - node.ligaturing(<node> n, <node> m) -\stopfunctioncall - -Apply \TEX-style ligaturing to the specified nodelist. The tail node \type {m} is -optional. The two returned nodes \type {h} and \type {t} are the new head and -tail (both \type {n} and \type {m} can change into a new ligature). - -\subsubsection{\type {node.kerning}} - -\startfunctioncall -<node> h, <node> t, <boolean> success = - node.kerning(<node> n) -<node> h, <node> t, <boolean> success = - node.kerning(<node> n, <node> m) -\stopfunctioncall - -Apply \TEX|-|style kerning to the specified node list. The tail node \type {m} is -optional. The two returned nodes \type {h} and \type {t} are the head and tail -(either one of these can be an inserted kern node, because special kernings with -word boundaries are possible). - -\subsubsection{\type {node.unprotect_glyphs}} - -\startfunctioncall -node.unprotect_glyphs(<node> n) -\stopfunctioncall - -Subtracts 256 from all glyph node subtypes. This and the next function are -helpers to convert from \type {characters} to \type {glyphs} during node -processing. - -\subsubsection{\type {node.protect_glyphs} and \type {node.protect_glyph}} - -\startfunctioncall -node.protect_glyphs(<node> n) -\stopfunctioncall - -Adds 256 to all glyph node subtypes in the node list starting at \type {n}, -except that if the value is 1, it adds only 255. The special handling of 1 means -that \type {characters} will become \type {glyphs} after subtraction of 256. A -single character can be marked by the singular call. - -\subsubsection{\type {node.last_node}} - -\startfunctioncall -<node> n = - node.last_node() -\stopfunctioncall - -This function pops the last node from \TEX's \quote{current list}. It returns -that node, or \type {nil} if the current list is empty. - -\subsubsection{\type {node.write}} - -\startfunctioncall -node.write(<node> n) -\stopfunctioncall - -This is an experimental function that will append a node list to \TEX's \quote -{current list} The node list is not deep|-|copied! There is no error checking -either! - -\subsubsection{\type {node.protrusion_skippable}} - -\startfunctioncall -<boolean> skippable = - node.protrusion_skippable(<node> n) -\stopfunctioncall - -Returns \type {true} if, for the purpose of line boundary discovery when -character protrusion is active, this node can be skipped. - -\subsection{Glue handling} - -\subsubsection{\type {node.setglue}} - -You can set the properties of a glue in one go. If you pass no values, the glue -will become a zero glue. - -\startfunctioncall -node.setglue(<node> n) -node.setglue(<node> n,width,stretch,shrink,stretch_order,shrink_order) -\stopfunctioncall - -When you pass values, only arguments that are numbers -are assigned so - -\starttyping -node.setglue(n,655360,false,65536) -\stoptyping - -will only adapt the width and shrink. - -\subsubsection{\type {node.getglue}} - -The next call will return 5 values (or northing when no glue is passed). - -\startfunctioncall -<integer> width, <integer> stretch, <integer> shrink, <integer> stretch_order, - <integer> shrink_order = node.getglue(<node> n) -\stopfunctioncall - -\subsubsection{\type {node.is_zero_glue}} - -This function returns \type {true} when the width, stretch and shrink properties -are zero. - -\startfunctioncall -<boolean> isglue = - node.is_zero_glue(<node> n) -\stopfunctioncall - -\subsection{Attribute handling} - -Attributes appear as linked list of userdata objects in the \type {attr} field of -individual nodes. They can be handled individually, but it is much safer and more -efficient to use the dedicated functions associated with them. - -\subsubsection{\type {node.has_attribute}} - -\startfunctioncall -<number> v = - node.has_attribute(<node> n, <number> id) -<number> v = - node.has_attribute(<node> n, <number> id, <number> val) -\stopfunctioncall - -Tests if a node has the attribute with number \type {id} set. If \type {val} is -also supplied, also tests if the value matches \type {val}. It returns the value, -or, if no match is found, \type {nil}. - -\subsubsection{\type {node.get_attribute}} - -\startfunctioncall -<number> v = - node.get_attribute(<node> n, <number> id) -\stopfunctioncall - -Tests if a node has an attribute with number \type {id} set. It returns the -value, or, if no match is found, \type {nil}. - -\subsubsection{\type {node.find_attribute}} - -\startfunctioncall -<number> v, <node> n = - node.find_attribute(<node> n, <number> id) -\stopfunctioncall - -Finds the first node that has attribute with number \type {id} set. It returns -the value and the node if there is a match and otherwise nothing. - -\subsubsection{\type {node.set_attribute}} - -\startfunctioncall -node.set_attribute(<node> n, <number> id, <number> val) -\stopfunctioncall - -Sets the attribute with number \type {id} to the value \type {val}. Duplicate -assignments are ignored. {\em [needs explanation]} - -\subsubsection{\type {node.unset_attribute}} - -\startfunctioncall -<number> v = - node.unset_attribute(<node> n, <number> id) -<number> v = - node.unset_attribute(<node> n, <number> id, <number> val) -\stopfunctioncall - -Unsets the attribute with number \type {id}. If \type {val} is also supplied, it -will only perform this operation if the value matches \type {val}. Missing -attributes or attribute|-|value pairs are ignored. - -If the attribute was actually deleted, returns its old value. Otherwise, returns -\type {nil}. - -\subsubsection{\type {node.slide}} - -This helper makes sure that the node lists is double linked and returns the found -tail node. - -\startfunctioncall -<node> tail = - node.slide(<node> n) -\stopfunctioncall - -\subsubsection{\type {node.check_discretionary} and \type {node.check_discretionaries}} - -When you fool around with disc nodes you need to be aware of the fact that they -have a special internal data structure. As long as you reassign the fields when -you have extended the lists it's ok because then the tail pointers get updated, -but when you add to list without reassigning you might end up in troubles when -the linebreak routien kicks in. You can call this function to check the list for -issues with disc nodes. - -\startfunctioncall -node.check_discretionary(<node> n) -node.check_discretionaries(<node> head) -\stopfunctioncall - -The plural variant runs over all disc nodes in a list, the singular variant -checks one node only (it also checks if the node is a disc node). - -\subsubsection{\type {node.family_font}} - -When you pass it a proper family identifier the next helper will return the font -currently associated with it. You can normally also access the font with the normal -font field or getter because it will resolve the family automatically for noads. - -\startfunctioncall -<integer> id = - node.family_font(<integer> fam) -\stopfunctioncall - -\section{Two access models} - -Deep down in \TEX\ a node has a number which is an numeric entry in a memory -table. In fact, this model, where \TEX\ manages memory is real fast and one of -the reasons why plugging in callbacks that operate on nodes is quite fast too. -Each node gets a number that is in fact an index in the memory table and that -number often gets reported when you print node related information. - -There are two access models, a robust one using a so called user data object that -provides a virtual interface to the internal nodes, and a more direct access which -uses the node numbers directly. The first model provide key based access while -the second always accesses fields via functions: - -\starttyping -nodeobject.char -getfield(nodenumber,"char") -\stoptyping - -If you use the direct model, even if you know that you deal with numbers, you -should not depend on that property but treat it an abstraction just like -traditional nodes. In fact, the fact that we use a simple basic datatype has the -penalty that less checking can be done, but less checking is also the reason why -it's somewhat faster. An important aspect is that one cannot mix both methods, -but you can cast both models. So, multiplying a node number makes no sense. - -So our advice is: use the indexed (table) approach when possible and investigate -the direct one when speed might be an real issue. For that reason we also provide -the \type {get*} and \type {set*} functions in the top level node namespace. -There is a limited set of getters. When implementing this direct approach the -regular index by key variant was also optimized, so direct access only makes -sense when we're accessing nodes millions of times (which happens in some font -processing for instance). - -We're talking mostly of getters because setters are less important. Documents -have not that many content related nodes and setting many thousands of properties -is hardly a burden contrary to millions of consultations. - -Normally you will access nodes like this: - -\starttyping -local next = current.next -if next then - -- do something -end -\stoptyping - -Here \type {next} is not a real field, but a virtual one. Accessing it results in -a metatable method being called. In practice it boils down to looking up the node -type and based on the node type checking for the field name. In a worst case you -have a node type that sits at the end of the lookup list and a field that is last -in the lookup chain. However, in successive versions of \LUATEX\ these lookups -have been optimized and the most frequently accessed nodes and fields have a -higher priority. - -Because in practice the \type {next} accessor results in a function call, there -is some overhead involved. The next code does the same and performs a tiny bit -faster (but not that much because it is still a function call but one that knows -what to look up). - -\starttyping -local next = node.next(current) -if next then - -- do something -end -\stoptyping - -If performance matters you can use an function instead: - -\starttabulate[|T|p|] -\NC getnext \NC parsing nodelist always involves this one \NC \NR -\NC getprev \NC used less but is logical companion to \type {getnext} \NC \NR -\NC getboth \NC returns the next and prev pointer of a node \NC \NR -\NC getid \NC consulted a lot \NC \NR -\NC getsubtype \NC consulted less but also a topper \NC \NR -\NC getfont \NC used a lot in \OPENTYPE\ handling (glyph nodes are consulted a lot) \NC \NR -\NC getchar \NC idem and also in other places \NC \NR -\NC getdisc \NC returns the \type {pre}, \type {post} and \type {replace} fields and - optionally when true is passed also the tail fields. \NC \NR -\NC getlist \NC we often parse nested lists so this is a convenient one too - (only works for hlist and vlist!) \NC \NR -\NC getleader \NC comparable to list, seldom used in \TEX\ (but needs frequent consulting - like lists; leaders could have been made a dedicated node type) \NC \NR -\NC getfield \NC generic getter, sufficient for the rest (other field names are - often shared so a specific getter makes no sense then) \NC \NR -\NC getbox \NC gets the given box (a list node) \NC \NR -\stoptabulate - -The direct variants also have setters, where the discretionary setter takes three -(optional) arguments plus an optional fourth indicating the subtype. An additional -setter is \type {setlink} which will link two nodes. - -It doesn't make sense to add getters for all fields, also because some are not -unique to one node type. Profiling demonstrated that these fields can get -accesses way more times than other fields. Even in complex documents, many node -and fields types never get seen, or seen only a few times. Most functions in the -\type {node} namespace have a companion in \type {node.direct}, but of course not -the ones that don't deal with nodes themselves. The following table summarized -this: - -% \startcolumns[balance=yes] - -\def\yes{$+$} \def\nop{$-$} - -\starttabulate[|T|c|c|] -\HL -\NC \bf function \NC \bf node \NC \bf direct \NC \NR -\HL -\NC \type {check_discretionaries}\NC \yes \NC \yes \NC \NR -\NC \type {copy_list} \NC \yes \NC \yes \NC \NR -\NC \type {copy} \NC \yes \NC \yes \NC \NR -\NC \type {count} \NC \yes \NC \yes \NC \NR -\NC \type {current_attr} \NC \yes \NC \yes \NC \NR -\NC \type {dimensions} \NC \yes \NC \yes \NC \NR -%NC \type {do_ligature_n} \NC \yes \NC \yes \NC \NR % was never documented and experimental -\NC \type {effective_glue} \NC \yes \NC \yes \NC \NR -\NC \type {end_of_math} \NC \yes \NC \yes \NC \NR -\NC \type {family_font} \NC \yes \NC \nop \NC \NR -\NC \type {fields} \NC \yes \NC \nop \NC \NR -\NC \type {find_attribute} \NC \yes \NC \yes \NC \NR -\NC \type {first_glyph} \NC \yes \NC \yes \NC \NR -\NC \type {flush_list} \NC \yes \NC \yes \NC \NR -\NC \type {flush_node} \NC \yes \NC \yes \NC \NR -\NC \type {free} \NC \yes \NC \yes \NC \NR -\NC \type {get_attribute} \NC \yes \NC \yes \NC \NR -\NC \type {getboth} \NC \yes \NC \yes \NC \NR -\NC \type {getbox} \NC \nop \NC \yes \NC \NR -\NC \type {getchar} \NC \yes \NC \yes \NC \NR -\NC \type {getdisc} \NC \yes \NC \yes \NC \NR -\NC \type {getfield} \NC \yes \NC \yes \NC \NR -\NC \type {getfont} \NC \yes \NC \yes \NC \NR -\NC \type {getglue} \NC \yes \NC \yes \NC \NR -\NC \type {getid} \NC \yes \NC \yes \NC \NR -\NC \type {getleader} \NC \yes \NC \yes \NC \NR -\NC \type {getlist} \NC \yes \NC \yes \NC \NR -\NC \type {getnext} \NC \yes \NC \yes \NC \NR -\NC \type {getprev} \NC \yes \NC \yes \NC \NR -\NC \type {getsubtype} \NC \yes \NC \yes \NC \NR -\NC \type {has_attribute} \NC \yes \NC \yes \NC \NR -\NC \type {has_field} \NC \yes \NC \yes \NC \NR -\NC \type {has_glyph} \NC \yes \NC \yes \NC \NR -\NC \type {hpack} \NC \yes \NC \yes \NC \NR -\NC \type {id} \NC \yes \NC \nop \NC \NR -\NC \type {insert_after} \NC \yes \NC \yes \NC \NR -\NC \type {insert_before} \NC \yes \NC \yes \NC \NR -\NC \type {is_char} \NC \yes \NC \yes \NC \NR -\NC \type {is_direct} \NC \nop \NC \yes \NC \NR -\NC \type {is_glue_zero} \NC \yes \NC \yes \NC \NR -\NC \type {is_glyph} \NC \yes \NC \yes \NC \NR -\NC \type {is_node} \NC \yes \NC \yes \NC \NR -\NC \type {kerning} \NC \yes \NC \yes \NC \NR -\NC \type {last_node} \NC \yes \NC \yes \NC \NR -\NC \type {length} \NC \yes \NC \yes \NC \NR -\NC \type {ligaturing} \NC \yes \NC \yes \NC \NR -\NC \type {mlist_to_hlist} \NC \yes \NC \nop \NC \NR -\NC \type {new} \NC \yes \NC \yes \NC \NR -\NC \type {next} \NC \yes \NC \nop \NC \NR -\NC \type {prev} \NC \yes \NC \nop \NC \NR -\NC \type {protect_glyphs} \NC \yes \NC \yes \NC \NR -\NC \type {protect_glyph} \NC \yes \NC \yes \NC \NR -\NC \type {protrusion_skippable} \NC \yes \NC \yes \NC \NR -\NC \type {remove} \NC \yes \NC \yes \NC \NR -\NC \type {set_attribute} \NC \yes \NC \yes \NC \NR -\NC \type {setboth} \NC \yes \NC \yes \NC \NR -\NC \type {setbox} \NC \nop \NC \yes \NC \NR -\NC \type {setbox} \NC \yes \NC \yes \NC \NR -\NC \type {setchar} \NC \yes \NC \yes \NC \NR -\NC \type {setdisc} \NC \yes \NC \yes \NC \NR -\NC \type {setfield} \NC \yes \NC \yes \NC \NR -\NC \type {setglue} \NC \yes \NC \yes \NC \NR -\NC \type {setlink} \NC \yes \NC \yes \NC \NR -\NC \type {setnext} \NC \yes \NC \yes \NC \NR -\NC \type {setprev} \NC \yes \NC \yes \NC \NR -\NC \type {slide} \NC \yes \NC \yes \NC \NR -\NC \type {subtypes} \NC \yes \NC \nop \NC \NR -\NC \type {subtype} \NC \yes \NC \nop \NC \NR -\NC \type {tail} \NC \yes \NC \yes \NC \NR -\NC \type {todirect} \NC \yes \NC \yes \NC \NR -\NC \type {tonode} \NC \yes \NC \yes \NC \NR -\NC \type {tostring} \NC \yes \NC \yes \NC \NR -\NC \type {traverse_char} \NC \yes \NC \yes \NC \NR -\NC \type {traverse_id} \NC \yes \NC \yes \NC \NR -\NC \type {traverse} \NC \yes \NC \yes \NC \NR -\NC \type {types} \NC \yes \NC \nop \NC \NR -\NC \type {type} \NC \yes \NC \nop \NC \NR -\NC \type {unprotect_glyphs} \NC \yes \NC \yes \NC \NR -\NC \type {unset_attribute} \NC \yes \NC \yes \NC \NR -\NC \type {usedlist} \NC \yes \NC \yes \NC \NR -\NC \type {vpack} \NC \yes \NC \yes \NC \NR -\NC \type {whatsitsubtypes} \NC \yes \NC \nop \NC \NR -\NC \type {whatsits} \NC \yes \NC \nop \NC \NR -\NC \type {write} \NC \yes \NC \yes \NC \NR -\stoptabulate - -% \stopcolumns - -The \type {node.next} and \type {node.prev} functions will stay but for -consistency there are variants called \type {getnext} and \type {getprev}. We had -to use \type {get} because \type {node.id} and \type {node.subtype} are already -taken for providing meta information about nodes. Note: The getters do only basic -checking for valid keys. You should just stick to the keys mentioned in the -sections that describe node properties. - -Some nodes have indirect references. For instance a math character refers to a -family instead of a font. In that case we provide a virtual font field as -accessor. So, \type {getfont} and \type {.font} can be used on them. The same is -true for the \type {width}, \type {height} and \type {depth} of glue nodes. These -actually access the spec node properties, and here we can set as well as get the -values. - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/luatex/luatex-style.tex b/doc/context/sources/general/manuals/luatex/luatex-style.tex deleted file mode 100644 index c07dc3b76..000000000 --- a/doc/context/sources/general/manuals/luatex/luatex-style.tex +++ /dev/null @@ -1,362 +0,0 @@ -\startenvironment luatex-style - -% todo: use \useMPlibrary[lua] - -\usemodule[abr-02] - -\setuplayout - [height=middle, - width=middle, - backspace=2cm, - topspace=10mm, - bottomspace=10mm, - header=10mm, - footer=10mm, - footerdistance=10mm, - headerdistance=10mm] - -\setuppagenumbering - [alternative=doublesided] - -\setuptolerance - [stretch,tolerant] - -\setuptype - [lines=hyphenated] - -\setuptyping - [lines=hyphenated] - -\setupitemize - [each] - [packed] - -\setupwhitespace - [medium] - -\startluacode - local skipped = table.tohash { 'id', 'subtype', 'next', 'prev' } - - function document.functions.showfields(s) - local t = string.split(s,',') - local f = node.fields(t[1],t[2]) - if f then - local d = false - for i=1,#f do - local fi = f[i] - if skipped[fi] then - -- okay - elseif d then - context(', {\tttf %s}', fi) - else - context('{\tttf %s}', fi) - d = true - end - end - end - end - - function document.functions.showid(s) - local t = string.split(s,',') - context('{tttf %s}',node.id(t[1])) - if t[2] then - context(', {tttf %s}',node.subtype(t[2])) - end - end - - function document.functions.showsubtypes(s) - local s = node.subtypes(s) - local d = false - for k, v in table.sortedhash(s) do - if d then - context(', %s = {\\tttf %s}',k,v) - else - context('%s = {\\tttf %s}',k,v) - d = true - end - end - end -\stopluacode - -\unexpanded\def\showfields #1{\ctxlua{document.functions.showfields("#1")}} -\unexpanded\def\showid #1{\ctxlua{document.functions.showid("#1")}} -\unexpanded\def\showsubtypes#1{\ctxlua{document.functions.showsubtypes("#1")}} - -\definecolor[blue] [b=.5] -\definecolor[red] [r=.5] -\definecolor[green] [g=.5] -\definecolor[maincolor] [b=.5] -\definecolor[keptcolor] [b=.5] -\definecolor[othercolor][r=.5,g=.5] - -\setupbodyfont[modern] % we need this in examples so we predefine - -% \doifmodeelse {atpragma} { -% -% % \setupbodyfont -% % [lucidaot,10pt] -% -% \setupbodyfont -% [dejavu,10pt] -% -% \setuphead [chapter] [style=\bfd] -% \setuphead [section] [style=\bfb] -% \setuphead [subsection] [style=\bfa] -% \setuphead [subsubsection][style=\bf] -% -% } { -% -% \definetypeface[mainfacenormal] [ss][sans] [iwona] [default] -% \definetypeface[mainfacenormal] [rm][serif][palatino] [default] -% \definetypeface[mainfacenormal] [tt][mono] [modern] [default][rscale=1.1] -% \definetypeface[mainfacenormal] [mm][math] [iwona] [default] -% -% \definetypeface[mainfacemedium] [ss][sans] [iwona-medium][default] -% \definetypeface[mainfacemedium] [rm][serif][palatino] [default] -% \definetypeface[mainfacemedium] [tt][mono] [modern] [default][rscale=1.1] -% \definetypeface[mainfacemedium] [mm][math] [iwona-medium][default] -% -% \setupbodyfont -% [mainfacenormal,10pt] -% -% \setuphead [chapter] [style=\mainfacemedium\bfd] -% \setuphead [section] [style=\mainfacemedium\bfb] -% \setuphead [subsection] [style=\mainfacemedium\bfa] -% \setuphead [subsubsection][style=\mainfacemedium\bf] -% -% } - -\writestatus{luatex manual}{we assume that dejavu math is available} - -\setupbodyfont % assumes dejavu-math - [dejavu,10pt] - -\setuphead [chapter] [align={flushleft,broad},style=\bfd] -\setuphead [section] [align={flushleft,broad},style=\bfb] -\setuphead [subsection] [align={flushleft,broad},style=\bfa] -\setuphead [subsubsection][align={flushleft,broad},style=\bf] - -\setuphead [chapter] [color=maincolor] -\setuphead [section] [color=maincolor] -\setuphead [subsection] [color=maincolor] -\setuphead [subsubsection][color=maincolor] - -\definehead - [remark] - [subsubsubject] - -\setupheadertexts - [] - -\definemixedcolumns - [twocolumns] - [n=2, - balance=yes, - before=\blank, - after=\blank] - -\definemixedcolumns - [threecolumns] - [twocolumns] - [n=3] - -\definemixedcolumns - [fourcolumns] - [threecolumns] - [n=4] - -% if we do this we also need to do it in table cells -% -% \setuptyping -% [color=maincolor] -% -% \setuptype -% [color=maincolor] - -\definetyping - [functioncall] - -\startMPdefinitions - - color luaplanetcolor ; luaplanetcolor := \MPcolor{maincolor} ; - color luaholecolor ; luaholecolor := white ; - numeric luaextraangle ; luaextraangle := 0 ; - numeric luaorbitfactor ; luaorbitfactor := .25 ; - - vardef lualogo = image ( - - % Graphic design by A. Nakonechnyj. Copyright (c) 1998, All rights reserved. - - save d, r, p ; numeric d, r, p ; - - d := sqrt(2)/4 ; r := 1/4 ; p := r/8 ; - - fill fullcircle scaled 1 - withcolor luaplanetcolor ; - draw fullcircle rotated 40.5 scaled (1+r) - dashed evenly scaled p - withpen pencircle scaled (p/2) - withcolor (luaorbitfactor * luaholecolor) ; - fill fullcircle scaled r shifted (d+1/8,d+1/8) - rotated - luaextraangle - withcolor luaplanetcolor ; - fill fullcircle scaled r shifted (d-1/8,d-1/8) - withcolor luaholecolor ; - luaorbitfactor := .25 ; - ) enddef ; - -\stopMPdefinitions - -\startuseMPgraphic{luapage} - StartPage ; - - fill Page withcolor \MPcolor{othercolor} ; - - luaorbitfactor := 1 ; - picture p ; p := lualogo xsized (3PaperWidth/5) ; - draw p shifted center Page shifted (0,-.5ypart center ulcorner p) ; - - StopPage ; -\stopuseMPgraphic - -% \starttexdefinition luaextraangle -% % we can also just access the last page and so in mp directly -% \ctxlua { -% context(\lastpage == 0 and 0 or \realfolio*360/\lastpage) -% } -% \stoptexdefinition - -\startuseMPgraphic{luanumber} - % luaextraangle := \luaextraangle; - luaextraangle := if (LastPageNumber == 0) : 0 else : (RealPageNumber / LastPageNumber) * 360 fi; - luaorbitfactor := 0.25 ; - picture p ; p := lualogo ; - setbounds p to boundingbox fullcircle ; - draw p ysized 1cm ; -\stopuseMPgraphic - -\definelayer - [page] - [width=\paperwidth, - height=\paperheight] - -\setupbackgrounds - [leftpage] - [background=page] - -\setupbackgrounds - [rightpage] - [background=page] - -\startsetups pagenumber:right - \setlayerframed - [page] - [preset=rightbottom,offset=1cm] - [frame=off,height=1cm,offset=overlay] - {\useMPgraphic{luanumber}} - \setlayerframed - [page] - [preset=rightbottom,offset=1cm,x=1.5cm] - [frame=off,height=1cm,width=1cm,offset=overlay] - {\pagenumber} - \setlayerframed - [page] - [preset=rightbottom,offset=1cm,x=2.5cm] - [frame=off,height=1cm,offset=overlay] - {\getmarking[chapter]} -\stopsetups - -\startsetups pagenumber:left - \setlayerframed - [page] - [preset=leftbottom,offset=1cm,x=2.5cm] - [frame=off,height=1cm,offset=overlay] - {\getmarking[chapter]} - \setlayerframed - [page] - [preset=leftbottom,offset=1cm,x=1.5cm] - [frame=off,height=1cm,width=1cm,offset=overlay] - {\pagenumber} - \setlayerframed - [page] - [preset=leftbottom,offset=1cm] - [frame=off,height=1cm,offset=overlay] - {\useMPgraphic{luanumber}} -\stopsetups - -\unexpanded\def\nonterminal#1>{\mathematics{\langle\hbox{\rm #1}\rangle}} - -% taco's brainwave -) .. todo: create a typing variant so that we can avoid the !crlf - -\newcatcodetable\syntaxcodetable - -\unexpanded\def\makesyntaxcodetable - {\begingroup - \catcode`\<=13 \catcode`\|=12 - \catcode`\!= 0 \catcode`\\=12 - \savecatcodetable\syntaxcodetable - \endgroup} - -\makesyntaxcodetable - -\unexpanded\def\startsyntax {\begingroup\catcodetable\syntaxcodetable \dostartsyntax} -\unexpanded\def\syntax {\begingroup\catcodetable\syntaxcodetable \dosyntax} - \let\stopsyntax \relax - -\unexpanded\def\syntaxenvbody#1% - {\par - \tt - \startnarrower - \maincolor #1 - \stopnarrower - \par} - -\unexpanded\def\syntaxbody#1% - {\begingroup - \maincolor \tt #1% - \endgroup} - -\bgroup \catcodetable\syntaxcodetable - -!gdef!dostartsyntax#1\stopsyntax{!let<!nonterminal!syntaxenvbody{#1}!endgroup} -!gdef!dosyntax #1{!let<!nonterminal!syntaxbody{#1}!endgroup} - -!egroup - -\definetyping - [texsyntax] - [color=maincolor] - -% end of wave - -\setupinteraction - [state=start, - focus=standard, - style=, - color=, - contrastcolor=] - -\placebookmarks - [chapter,section,subsection] - -\setuplist - [chapter,section,subsection,subsubsection] - [interaction=all, - width=3em] - -\setuplist - [chapter] - [style=bold, - color=keptcolor] - -\setuplist - [subsection,subsubsection] - [margin=3em, - width=5em] - -% Hans doesn't like the bookmarks opening by default so we comment this: -% -% \setupinteractionscreen -% [option=bookmark] - -\stopenvironment diff --git a/doc/context/sources/general/manuals/luatex/luatex-titlepage.tex b/doc/context/sources/general/manuals/luatex/luatex-titlepage.tex deleted file mode 100644 index 8ab56f85d..000000000 --- a/doc/context/sources/general/manuals/luatex/luatex-titlepage.tex +++ /dev/null @@ -1,70 +0,0 @@ -\environment luatex-style -\environment luatex-logos - -\startcomponent luatex-titlepage - -\startstandardmakeup - - \switchtobodyfont - [mainfacemedium] - - \definedfont[Bold*default at \the\dimexpr.08\paperheight\relax] \setupinterlinespace - - \setlayer - [page] - {\useMPgraphic{luapage}} - - \setlayerframed - [page] - [preset=middletop, - voffset=.05\paperheight] - [align=middle, - foregroundcolor=blue, - frame=off] - {Lua\TeX\\Reference} - - \definedfont[Bold*default at 18pt] \setupinterlinespace - - \setlayerframed - [page] - [preset=rightbottom, - offset=.01\paperheight] - [align=flushright, - foregroundcolor=blue, - frame=off] - {\doifsomething{\documentvariable{status}}{\documentvariable{status}\par} - \currentdate[month,space,year]\par - Version \documentvariable{version}} - -\stopstandardmakeup - -\startstandardmakeup - - \start - \raggedleft - \definedfont[Bold*default at 48pt] - \setupinterlinespace - \blue Lua\TeX \endgraf Reference \endgraf Manual \endgraf - \stop - - \vfill - - \definedfont[Bold*default at 12pt] - - \starttabulate[|l|l|] - \NC copyright \EQ Lua\TeX\ development team \NC \NR - \NC more info \EQ www.luatex.org \NC \NR - \NC version \EQ \currentdate \doifsomething{\documentvariable{snapshot}}{(snapshot \documentvariable{snapshot})} \NC \NR - \stoptabulate - -\stopstandardmakeup - -\setupbackgrounds - [leftpage] - [setups=pagenumber:left] - -\setupbackgrounds - [rightpage] - [setups=pagenumber:right] - -\stopcomponent diff --git a/doc/context/sources/general/manuals/luatex/luatex.tex b/doc/context/sources/general/manuals/luatex/luatex.tex deleted file mode 100644 index cd67f07f2..000000000 --- a/doc/context/sources/general/manuals/luatex/luatex.tex +++ /dev/null @@ -1,40 +0,0 @@ -% macros=mkvi - -% \tex vs \type vs \syntax vs. \luatex -% \em \it \/ - -% "context --nodates --nocompression luatex" can be used for comparison -% runs, not that we do it - -\environment luatex-style -\environment luatex-logos - -\dontcomplain - -\startdocument - [version=0.98.0, - status=Pre-release] - -\component luatex-titlepage - -\startfrontmatter - \component luatex-contents - \component luatex-introduction -\stopfrontmatter - -\startbodymatter - \component luatex-enhancements - \component luatex-modifications - \component luatex-lua - \component luatex-languages - \component luatex-fonts - \component luatex-math - \component luatex-nodes - \component luatex-callbacks - \component luatex-tex - \component luatex-graphics - \component luatex-fontloader - \component luatex-backend -\stopbodymatter - -\stopdocument diff --git a/doc/context/sources/general/manuals/manuals-explaining-contents.tex b/doc/context/sources/general/manuals/manuals-explaining-contents.tex deleted file mode 100644 index 3e1fadabc..000000000 --- a/doc/context/sources/general/manuals/manuals-explaining-contents.tex +++ /dev/null @@ -1,11 +0,0 @@ -% language=uk - -\startcomponent manuals-explaining-contents - - \starttitle[title=Contents][color=darkgray] - - \placelist[chapter][criterium=text] - - \stoptitle - -\stopcomponent diff --git a/doc/context/sources/general/manuals/manuals-explaining-cover.tex b/doc/context/sources/general/manuals/manuals-explaining-cover.tex deleted file mode 100644 index 8b4f3e891..000000000 --- a/doc/context/sources/general/manuals/manuals-explaining-cover.tex +++ /dev/null @@ -1,199 +0,0 @@ -% language=uk - -% Please try to be original and don't just copy this cover page as I don't want -% confusion and be associated with (or responsibility for the look of) similar -% looking documents. - -\startenvironment manuals-explaining-cover - -\startsetups document:abstract - \framed [ - foregroundstyle=bold, - foregroundcolor=white, - width=7.5cm, - align={normal,tolerant}, - frame=off, - strut=no, - ] { - \getbuffer[abstract] - } -\stopsetups - -\startMPinclusions - - def DrawCoverPage (expr what) = - - numeric variant ; variant := 1 ; - - StartCover ; - - save width, height, size, anchor, offset, colors ; - - numeric width, height, size ; pair anchor, offset ; string colors[] ; - - colors[1] := "\documentvariable{cover:color:1}" ; - colors[2] := "\documentvariable{cover:color:2}" ; - colors[3] := "\documentvariable{cover:color:3}" ; - colors[4] := "\documentvariable{cover:color:4}" ; - colors[5] := "\documentvariable{cover:color:5}" ; - - fill CoverPage enlarged PaperBleed withcolor colors[5] ; - - fill Spine bottomenlarged -.5PaperHeight withcolor colors[3] ; - fill Spine topenlarged -.5PaperHeight withcolor colors[2] ; - - width := FrontPageWidth ; - height := FrontPageHeight ; - size := 4 * width / 3 ; - offset := (-1cm,1cm) ; - anchor := .5[lrcorner CoverPage,urcorner CoverPage] ; - - fill anchored.llft(lltriangle scaled size, urcorner FrontPage) withcolor colors[1] ; - fill anchored.urt (urtriangle scaled size, llcorner FrontPage) withcolor colors[2] ; - fill anchored.lrt (lrtriangle scaled size, ulcorner FrontPage) withcolor colors[3] ; - fill anchored.ulft(ultriangle scaled size, lrcorner FrontPage) withcolor colors[4] ; - - fill anchored.lrt (lrtriangle scaled size, ulcorner BackPage) withcolor colors[1] ; - fill anchored.llft(lltriangle scaled size, urcorner BackPage) withcolor colors[3] ; - fill anchored.ulft(ultriangle scaled size, lrcorner BackPage) withcolor colors[2] ; - fill anchored.urt (urtriangle scaled size, llcorner BackPage) withcolor colors[4] ; - - draw thetextext.llft( - textext("\bf \documentvariable{title}\hskip-.1em") - rotated 45 ysized .350height, - anchor shifted (6*offset+offset) - ) withcolor white ; - draw thetextext.llft( - textext("\bf \documentvariable{subtitle}") - rotated 45 ysized .275height, - anchor shifted (5*offset+offset) - ) withcolor white ; - draw thetextext.llft( - textext("\bf \documentvariable{author}") - rotated 45 ysized .200height, - anchor shifted (2*offset+offset) - ) withcolor white ; - draw thetextext.llft( - textext("\bf \documentvariable{affiliation}") - rotated 45 ysized .200height, - anchor shifted (1*offset+offset) - ) withcolor white ; - - % for the moment - - if (what = "back") or (what = "cover") : - - draw - thetextext.top( - textext("\bf \documentvariable{comment}") - xsized 4cm, - lrcorner Page shifted (-3cm,1cm) - ) withcolor white ; - - fi ; - - % till here - - width := BackPageWidth ; - - if (what = "back") or (what = "cover") : - - draw thetextext( - textext("\bf\setups[document:abstract]") - xsized .65width rotated 45, - center BackPage - ) withcolor white ; - - fi ; - - if what = "cover" : - - draw thetextext.bot( - textext("\bf \documentvariable{title}\hskip-.1em") - rotated 90 xsized .8SpineWidth, - .5[ulcorner Spine,urcorner Spine] shifted (0,-1cm) - ) withcolor white ; - - draw thetextext.top( - textext("\bf \documentvariable{author}") - rotated 90 xsized .8SpineWidth, - .5[llcorner Spine,lrcorner Spine] shifted (0,1cm) - ) withcolor white ; - - fi ; - - StopCover ; - - if what = "front" : - clip currentpicture to FrontPage ; - elseif what = "back" : - clip currentpicture to BackPage ; - else : - drawboundary CoverPage ; - fi ; - - enddef ; - -\stopMPinclusions - -\startsetups document:start - - % \startcovermatter[front] - - \setupbackgrounds[page][background=] - - \doifmodeelse {simple} { - - \startMPpage - DrawCoverPage("front") ; - \stopMPpage - - } { - - \startMPpage - DrawCoverPage("cover") ; - \stopMPpage - - } - - \page[dummy] - - \setupbackgrounds[page][background=page] - - \resetuserpagenumber - - % \stopcovermatter - -\stopsetups - -\startsetups document:stop - - \doifmodeelse {simple} { - - % \startcovermatter[back] - - \page - - \setuppagenumbering[page=] - - \setupbackgrounds[page][background=] - - \page[empty,left] - - \setupmakeup[doublesided=no,page=no] - - \startMPpage - DrawCoverPage("back") ; - \stopMPpage - - % \stopcovermatter - - } { - - % not needed as it's part of the cover page - - } - -\stopsetups - -\stopenvironment diff --git a/doc/context/sources/general/manuals/manuals-explaining-environment.tex b/doc/context/sources/general/manuals/manuals-explaining-environment.tex deleted file mode 100644 index f896c219b..000000000 --- a/doc/context/sources/general/manuals/manuals-explaining-environment.tex +++ /dev/null @@ -1,325 +0,0 @@ -\startenvironment manuals-explaining-environment - -\usemodule[abr-01] -\usemodule[visual] -\usemodule[simulate] -\usemodule[chart] -\usemodule[nodechart] - -% done - -\dontcomplain - -\definepapersize - [book] - [width=18cm, - height=24cm] - -\setuppapersize - [book] - -\startmode[oversized] - - \setuppapersize - [book] - [oversized] - - \setuplayout - [marking=on] - -\stopmode - -\setuplayout - [location=middle, - topspace=1.5cm, - bottomspace=2cm, - backspace=2cm, - cutspace=2cm, - header=0cm, - footer=0cm, - margindistance=.25cm, - margin=1.25cm, - width=middle, - height=middle] - -\setuplayout - [style=\ss] - -\usetypescript - [dejavu-condensed] - -\setupbodyfont - [ipaex,9pt] - -\setupbodyfont - [dejavu,9pt] - -\definetyping - [narrowtyping] - [typing] - [bodyfont=dejavu-condensed] - -% This is way too ugly for a manual: -% -% \setuptyping -% [indentnext=no] -% -% \setupindenting -% [medium,yes] - -\setupwhitespace - [big] - -\defineoverlay - [page] - [\useMPgraphic{page}] - -\setupbackgrounds - [page] - [background=page] - -\setuphead - [chapter,section,subsection] - [color=\namedstructureuservariable{chapter}{color}] - -\setuphead - [chapter] - [style=\bfc] - -\setuphead - [section] - [style=\bfb] - -\setuphead - [subsection] - [style=\bf, - before=\blank, - after=\blank] - -\startsetups document:chapter:inside - \definecolor[maincolor][1.0(\namedheadparameter{chapter}{color})] % this expands the color - \definecolor[halfcolor][0.5(maincolor,white)] -\stopsetups - -\setuphead - [chapter] - [insidesection=\directsetup{document:chapter:inside}] - -\setuppagenumbering - [alternative=doublesided, - location=] - -\setuplist - [aligntitle=yes] - -\setuplist - [chapter] - [pagenumber=no, - style=bold, - before={\blank\startcolor[\structurelistuservariable{color}]}, - after={\placelist[section]\stopcolor}] - -\setuplist - [chapter,section] - [width=3em] - -\startuseMPgraphic{page} - - StartPage ; - - linecap := butt ; - - if OnRightPage : - - path p ; p := ( - urcorner Page shifted (-2cm,0) -- - urcorner Page -- - urcorner Page shifted (0,-2cm) -- cycle - ) shifted (-2.5mm,-2.5mm) ; - - else : - - path p ; p := ( - ulcorner Page shifted (2cm,0) -- - ulcorner Page -- - ulcorner Page shifted (0,-2cm) -- cycle - ) shifted (2.5mm,-2.5mm) ; - - fi ; - - fill p - withpen pencircle scaled 1mm - withcolor "maincolor" ; - - draw thetextext("\bf\userpagenumber", - if OnRightPage : urcorner p shifted (-5mm,-5mm) else : ulcorner p shifted (5mm,-5mm) fi) - withcolor white ; - - if OnRightPage : - - path p ; p := ( - lrcorner Page shifted (-5cm,0) -- - lrcorner Page - ) shifted (-5mm,10mm) - - else : - - path p ; p := ( - llcorner Page shifted (5cm,0) -- - llcorner Page - ) shifted (5mm,10mm) ; - - fi ; - - draw p - withpen pencircle scaled 1mm - withcolor "maincolor" ; - - draw if OnRightPage : - thetextext.lft("\bf\getspecificstructuretitle{chapter}",lrcorner Page shifted (-5mm,5mm)) - else : - thetextext.rt ("\bf\getspecificstructuretitle{chapter}",llcorner Page shifted ( 5mm,5mm)) - fi withcolor "\namedstructureuservariable{chapter}{color}" ; - - StopPage ; -\stopuseMPgraphic - -\definecolor[orange] [r=1,g=.6,b=.1] - -\definecolor[middlegray] [s=.75] -\definecolor[darkgray] [s=.25] -\definecolor[darkred] [r=.5] -\definecolor[darkgreen] [g=.5] -\definecolor[darkblue] [b=.5] - -\definecolor[darkyellow] [.5(red,green)] -\definecolor[darkmagenta][.5(red,blue)] -\definecolor[darkcyan] [.5(green,blue)] - -\definecolor[darkorange] [.5(orange)] - -\definecolor[maincolor] [darkgray] - -\definecolor [mix-1] [r=1,g=.75,b=.25] \definecolor [darkmix-1][.5(mix-1)] -\definecolor [mix-2] [r=1,g=.25,b=.75] \definecolor [darkmix-2][.5(mix-2)] -\definecolor [mix-3] [r=.75,g=1,b=.25] \definecolor [darkmix-3][.5(mix-3)] -\definecolor [mix-4] [r=.75,g=.25,b=1] \definecolor [darkmix-4][.5(mix-4)] -\definecolor [mix-5] [r=.25,g=1,b=.75] \definecolor [darkmix-5][.5(mix-5)] -\definecolor [mix-6] [r=.25,g=.75,b=1] \definecolor [darkmix-6][.5(mix-6)] - -% \blackrule[height=1cm,width=10cm,color=mix-1] \blackrule[height=1cm,width=10cm,color=darkmix-1] -% \blackrule[height=1cm,width=10cm,color=mix-2] \blackrule[height=1cm,width=10cm,color=darkmix-2] -% \blackrule[height=1cm,width=10cm,color=mix-3] \blackrule[height=1cm,width=10cm,color=darkmix-3] -% \blackrule[height=1cm,width=10cm,color=mix-4] \blackrule[height=1cm,width=10cm,color=darkmix-4] -% \blackrule[height=1cm,width=10cm,color=mix-5] \blackrule[height=1cm,width=10cm,color=darkmix-5] -% \blackrule[height=1cm,width=10cm,color=mix-6] \blackrule[height=1cm,width=10cm,color=darkmix-6] - -% modules - -\setupsorting - [logo] - [style=] - -\setupFLOWchart - [width=6em, - height=3em, - offset=-2em, % maybe default : todo: hoffset and voffset - dx=2em, - dy=2em] - -\setupFLOWlines - [color=maincolor] - -\setupFLOWshapes - [rulecolor=maincolor] - -% tables - -\setuptabulate - [rulethickness=.5mm, - rulecolor=maincolor] - -% special commands - -\startuniqueMPgraphic{reference}{color} - fill - .5[llcorner OverlayBox,ulcorner OverlayBox] -- - .5[ulcorner OverlayBox,urcorner OverlayBox] -- - .5[urcorner OverlayBox,lrcorner OverlayBox] -- - .5[lrcorner OverlayBox,llcorner OverlayBox] -- cycle - withcolor \MPvar{color} ; -\stopuniqueMPgraphic - -\startuniqueMPgraphic{reference}{color} - path p ; p := OverlayBox enlarged -1mm ; - filldraw - ulcorner p -- - urcorner p -- - lrcorner p -- - .5[lrcorner p,llcorner p] shifted (0,-1ExHeight) -- - llcorner p -- cycle - withpen pencircle scaled 1mm - withcolor \MPvar{color} ; - setbounds currentpicture to OverlayBox enlarged 1ExHeight ; -\stopuniqueMPgraphic - -\defineoverlay - [reference] - [\uniqueMPgraphic{reference}{color=maincolor,}] - -\definecolor - [maincolor] - [red] - -\definemargindata - [appendixdata] - %[inner] - [outer] - [stack=yes] - -\definemarginframed - [appendixdata] - [width=3.5em, - height=\lineheight, % we know what goes in there - align=middle, - offset=overlay, - foregroundcolor=white, - background=reference] - -% todo: -% -% \appendixdata[reference=bla]{} -% -% whole data - -% interaction - -\setupinteraction - [state=start, - click=no, - color=, - contrastcolor=, - style=] - -% whatever - -\definestartstop - [notabene] - [before=\blank, - after=\blank, - style=\em] - -\setuphyphenation - [method=default] - - -\startbuffer[underconstruction] -\startnotabene - This document is still under construction. The functionality discussed here - will stay and more might show up. Of course there are errors, and they're all - mine. The text is not checked for spelling errors. Feel free to let me know - what should get added. -\stopnotabene -\stopbuffer - -\stopenvironment diff --git a/doc/context/sources/general/manuals/manuals-xml-environment.tex b/doc/context/sources/general/manuals/manuals-xml-environment.tex deleted file mode 100644 index 5a5d9a92d..000000000 --- a/doc/context/sources/general/manuals/manuals-xml-environment.tex +++ /dev/null @@ -1,385 +0,0 @@ -% language=uk -% -% author : Hans Hagen, PRAGMA ADE, NL -% license : Creative Commons, Attribution-NonCommercial-ShareAlike 3.0 Unported - -\usemodule[abr-01] - -\startmode[booklet] - - \setuppapersize [A4][oversized] - -\stopmode - -% \setuppapersize[A4][doubleoversized,landscape] -% \setuparranging[2UP] -% \setuppagenumbering[alternative={singlesided,doublesided}] - -\setuplayout - [location=middle, - marking=on] - -% \logo [EXAMPLE] {eXaMpLe} - -\setuptabulate - [rulethickness=1pt, - rulecolor=darkgreen] - -\setuptables - [rulethickness=1pt, - rulecolor=darkgreen] - -% \usesymbols -% [cc] - -\setuplayout - [width=middle, - topspace=2cm, - top=1cm, - cutspace=1.5cm, % 2.0cm - backspace=3.5cm, - header=1cm, - footer=1.5cm, - bottom=1cm, - leftmargin=2.5cm, - rightmargin=1cm, - margindistance=.5cm, - height=middle] - -\definelayout - [titlepage] - [topspace=2cm, - backspace=1.5cm, - bottomspace=1.5cm] - -\startmode[screen] - - \setuppapersize - [S6][S6] - - \setuplayout - [topspace=1cm, - bottomspace=1.5cm, - top=1cm, - header=0cm, - footer=.5cm, - bottom=1cm] - - \setupinteraction - [state=start, - color=, - contrastcolor=, - style=, - menu=on] - - \setupinteractionmenu - [bottom] - [left=\hfill, - middle=\hskip.25cm, - background=color, - backgroundcolor=darkgray, - color=lightgray, - contrastcolor=lightgray, - style=\bfb\setstrut\strut, - offset=2pt, - height=fit, - frame=off] - - \startinteractionmenu[bottom] - \startbut [PreviousJump] GoBack \stopbut - \startbut [previouspage] Previous \stopbut - \startbut [nextpage] Next \stopbut - \startbut [CloseDocument] Exit \stopbut - \stopinteractionmenu - -\stopmode - -\setupbodyfont[dejavu,11pt] - -\definecolor [cyan] [g=.4,b=.4] -\definecolor [magenta] [r=.4,b=.4] -\definecolor [yellow] [r=.4,g=.4] -\definecolor [red] [r=.4] -\definecolor [green] [g=.4] -\definecolor [blue] [b=.4] -\definecolor [gray] [s=.4] - -\definecolor [lightgray] [s=.8] - -\definecolor [FillColor] [gray] - -\definecolor [NumberColor] [red] -\definecolor [BannerColor] [green] -\definecolor [AspectColor] [blue] - -% *rgb *rgy *rby *gby *rgc *rbc *gbc rgm rbm gbm -% *cmy cmr cyr myr cmg cyr myg cmb cyb myb - -\definepalet[steps] [NumberColor=red, BannerColor=green, AspectColor=blue] -\definepalet[mathml] [NumberColor=cyan, BannerColor=magenta,AspectColor=yellow] -\definepalet[chemml] [NumberColor=red, BannerColor=green, AspectColor=yellow] -\definepalet[physml] [NumberColor=red, BannerColor=blue, AspectColor=yellow] -\definepalet[figures][NumberColor=green,BannerColor=blue, AspectColor=yellow] -\definepalet[charts] [NumberColor=red, BannerColor=green, AspectColor=cyan] -\definepalet[examns] [NumberColor=red, BannerColor=green, AspectColor=cyan] -\definepalet[general][NumberColor=red, BannerColor=blue, AspectColor=cyan] -\definepalet[tables] [NumberColor=green,BannerColor=blue, AspectColor=cyan] - -\setupindenting - [medium] - -\indenting - [yes] - -\defineoverlay - [nextpage] - [\overlaybutton{nextpage}] - -\startusableMPgraphic{cover} - path p, q ; color maincolor[], fillcolor ; numeric r, w, h ; - numeric cellwidth, cellspread, linewidth ; - maincolor[0] := \MPcolor{BannerColor} ; - maincolor[1] := \MPcolor{AspectColor} ; - maincolor[2] := \MPcolor{NumberColor} ; - fillcolor := \MPcolor{FillColor} ; - cellwidth := 75pt ; - cellspread := 50pt ; - linewidth := 1/10pt ; - w := OverlayWidth + cellwidth ; - h := OverlayHeight + cellwidth ; - q := unitsquare xyscaled (OverlayWidth,OverlayHeight) ; - fill unitsquare xyscaled (w,h) withcolor fillcolor ; - set_grid (w,h,cellwidth-cellspread,cellwidth-cellspread) ; - forever : - if new_on_grid(uniformdeviate w, uniformdeviate h) : - draw image ( - p := unitsquare ; - r := floor(uniformdeviate 3) ; - fill p enlarged linewidth withcolor fillcolor ; - fill p withcolor maincolor[r] ; - draw - if r = 0 : - urcorner p -- .5[llcorner p,ulcorner p] -- lrcorner p - elseif r = 1 : - ulcorner p -- .5[lrcorner p,urcorner p] -- llcorner p - else : - urcorner p -- llcorner p - fi - withpen pencircle scaled linewidth withcolor fillcolor ; - ) - scaled (cellwidth randomized cellspread) - shifted (dx,dy) ; - fi ; - exitif grid_full ; - endfor ; - % currentpicture := currentpicture shifted -(cellwidth,cellwidth) ; - % clip currentpicture to q ; -\stopusableMPgraphic - -\defineoverlay - [cover] - [\useMPgraphic{cover}] - -\setupbackgrounds - [page] - [offset=3mm] - -\defineoverlay - [page] - [\reuseMPgraphic{page}] - -\startreusableMPgraphic{page} - StartPage ; - path p ; p := - ulcorner Page -- - llcorner Page -- - llcorner Page shifted (BackSpace-LeftMarginDistance,0) -- - ulcorner Page shifted (BackSpace-LeftMarginDistance,0) -- cycle ; - fill - (p enlarged PageOffset) rightenlarged -PageOffset - withcolor \MPcolor{FillColor} ; - picture t ; t := textext("\bfb \lightgray \ConTeXt\ XML") rotated 90 ; - setbounds t to boundingbox t enlarged ExHeight ; - t := image ( label.llft(t,urcorner Page )) ; - fill boundingbox t topenlarged PageOffset rightenlarged PageOffset withcolor \MPcolor{FillColor} ; - draw t ; - StopPage ; - setbounds currentpicture to boundingbox currentpicture enlarged PageOffset ; -\stopreusableMPgraphic - -\setuphead - [section] - [command=\texdefinition{document:head:section}, - color=lightgray, - style=\bfb, - before={\blank[2*big]}, - after={\blank[2*big]},] - -\starttexdefinition document:head:section #1#2 - \hbox { - \hskip-\marginwidth - \hskip-\margindistance - \framed [ - width=.5\textwidth, - offset=2pt, - frame=off, - background=color, - backgroundcolor=AspectColor - ] { - \hskip.25cm - #2 - \hfill - } - } -\stoptexdefinition - -\setupheadertexts - [] - -\setupbottom - [margin] - [color=lightgray, - style=\bfb] - -\setuptyping - [color=green] - -\setuptype - [color=green] - -\doifmodeelse {booklet} { - - \setupbottomtexts - [margin] - [\setup{document:pagenumber}] [] - [\setup{document:pagenumber}] [] - -} { - - \setupbottomtexts - [margin] - [\setup{document:pagenumber}] [] - -} - -\setvariables - [document] - [title=No Title, - author=No Author] - -\startmode[atpragma] - - \setvariables - [document] - [line:1=Con\TeX t XML, - line:2=Pragma ADE / Hasselt NL, - line:3=MkIV] - -\stopmode - -\startsetups document:pagenumber - \hbox to \marginwidth { - \framed [ - width=.25\textwidth, - offset=2pt, - frame=off, - background=color, - backgroundcolor=NumberColor - ] { - \hskip.25cm - \documentvariable{title} - \hfill - \pagenumber - \hskip.25cm - } - } -\stopsetups - -\startsetups document:start - - \doifsomething {\documentvariable{palet}} { - \setuppalet[\documentvariable{palet}] - } - - \setupbackgrounds - [page] - [background={cover,nextpage}] - - \setuplayout - [titlepage] - - \startstandardmakeup[bottomstate=stop] - \raggedcenter - \lightgray - \start - \definedfont[SansBold at 100pt] - \setupinterlinespace - \WORD{\documentvariable{title}} - \par - \stop - \vfilll - \doifsomething {\documentvariable{line:1}} { - \dontleavehmode\hbox{\definedfont[SansBold at 50pt]\setstrut\strut\documentvariable{line:1}} - } - \doifsomething {\documentvariable{line:2}} { - \vskip25pt - \dontleavehmode\hbox{\definedfont[SansBold at 25pt]\setstrut\strut\documentvariable{line:2}} - } - \doifsomething {\documentvariable{line:3}} { - \vskip25pt - \dontleavehmode\hbox{\definedfont[SansBold at 25pt]\setstrut\strut\documentvariable{line:3}} - } - \stopstandardmakeup - - \setuplayout - - \setupbackgrounds - [page] - [background={page,banner}] - -\stopsetups - -\startsetups document:stop - - \definecolor[AspectColor][green] - - \startsubject[title=Colofon] - - This manual is part of the \CONTEXT\ distribution, and is authored and maintained by \space - \documentvariable{author}. \CONTEXT\ is developed at \PRAGMA, Hasselt, The Netherlands.\space - This manual is produced on \currentdate. - - \stopsubject - -\stopsetups - -% \usemodule[set-11] - -% \setupframedtexts -% [setuptext] -% [rulethickness=1pt, -% framecolor=green, -% background=color, -% backgroundcolor=lightgray] - -% titles: - -% Description -% Structure -% Usage -% XML example -% \TeX\ example -% Configuring -% Documentation - -\continueifinputfile{s-man-10.mkiv} - -\startdocument[title=Title,author=Author,palet=steps] - - \startsection[title=Test] - - \input knuth - - \stopsection - -\stopdocument diff --git a/doc/context/sources/general/manuals/math/math-framing-001.tex b/doc/context/sources/general/manuals/math/math-framing-001.tex deleted file mode 100644 index 5081b8ad2..000000000 --- a/doc/context/sources/general/manuals/math/math-framing-001.tex +++ /dev/null @@ -1,113 +0,0 @@ -\setuplayout[topspace=5mm,bottomspace=5mm,height=middle,header=1cm,footer=0cm] - -\starttext - -\startbuffer[sample] - \enabletrackers[formulas.framed] \showboxes - \startformula - e = mc^2 - \stopformula - \par - \startformula - e = mc^2 - \stopformula - \startformula - e = mc^2 - \stopformula - \startformula - e \dorecurse{12} { = mc^2 } - \stopformula - \startplaceformula - \startformula - e = mc^2 - \stopformula - \stopplaceformula - \startplaceformula - \startformula - e \dorecurse{12} { = mc^2 } - \stopformula - \stopplaceformula -\stopbuffer - -\startbuffer[setup-b] -\setupformula - [option=frame] -\stopbuffer - -\startbuffer[setup-d] -\setupformulaframed - [frame=on, - %toffset=10pt, - %boffset=10pt, - foregroundcolor=white, - background=color, - backgroundcolor=gray] -\stopbuffer - -\startbuffer[setup-c] -\setupformula - [frame=number] -\stopbuffer - -\startbuffer[all] -\start - \typebuffer[setup-a] - \getbuffer[setup-a] - \getbuffer[sample] - \typebuffer[setup-b] - \typebuffer[setup-d] - \getbuffer[setup-b] - \getbuffer[setup-d] - \getbuffer[sample] - \typebuffer[setup-c] - \getbuffer[setup-c] - \getbuffer[sample] - \page -\stop -\stopbuffer - -\startbuffer - \startbuffer[setup-a] - \setupformula - [align=flushleft] - \stopbuffer - \getbuffer[all] - \startbuffer[setup-a] - \setupformula - [align=flushleft,location=left] - \stopbuffer - \getbuffer[all] - - \startbuffer[setup-a] - \setupformula - [align=middle] - \stopbuffer - \getbuffer[all] - \startbuffer[setup-a] - \setupformula - [align=middle,location=left] - \stopbuffer - \getbuffer[all] - - \startbuffer[setup-a] - \setupformula - [align=flushright] - \stopbuffer - \getbuffer[all] - \startbuffer[setup-a] - \setupformula - [align=flushright,location=left] - \stopbuffer - \getbuffer[all] -\stopbuffer - -\getbuffer - -\startbuffer[setup-b] -\setupformula - [option={tight,frame}] -\stopbuffer - -\getbuffer - -\stoptext diff --git a/doc/context/sources/general/manuals/math/math-mkiv.tex b/doc/context/sources/general/manuals/math/math-mkiv.tex deleted file mode 100644 index c20f12049..000000000 --- a/doc/context/sources/general/manuals/math/math-mkiv.tex +++ /dev/null @@ -1,58 +0,0 @@ -% language=uk - -% 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. - -\environment math-layout - -\startproduct math-mkiv - -\startdocument - -\component math-titlepage - -\startfrontmatter - \component math-contents - \component math-introduction -\stopfrontmatter - -\startbodymatter - \component math-spacing - \component math-framing - \component math-numbering - \component math-combining -\stopbodymatter - -\stopdocument - -\stopproduct - -% when we compare these tables with the one that the ff loader produces we notice -% some differences: this is because (deduced from source) that ff does some kind -% of interpolation for missing heights for the last kern (for n=2 adding 100 and -% for adding 1 the max height) ... this is probably a side effect if missing specs -% here we don't do that -% \enabledirectives[fontgoodies.mathkerning] - -% \startTEXpage[offset=2mm] -% \startcombination[4*2] -% {\hbox to 50pt{\hss\showboxes\switchtobodyfont [modern]$V_i^i = W_i^i$\hss}} {\infofont modern} -% {\hbox to 50pt{\hss\showboxes\switchtobodyfont [cambria]$V_i^i = W_i^i$\hss}} {\infofont cambria} -% {\hbox to 50pt{\hss\showboxes\switchtobodyfont[lucidaot]$V_i^i = W_i^i$\hss}} {\infofont lucida} -% {\hbox to 50pt{\hss\showboxes\switchtobodyfont [dejavu]$V_i^i = W_i^i$\hss}} {\infofont dejavu} -% {\hbox to 50pt{\hss\showboxes\switchtobodyfont [pagella]$V_i^i = W_i^i$\hss}} {\infofont pagella} -% {\hbox to 50pt{\hss\showboxes\switchtobodyfont [termes]$V_i^i = W_i^i$\hss}} {\infofont termes} -% {\hbox to 50pt{\hss\showboxes\switchtobodyfont [bonum]$V_i^i = W_i^i$\hss}} {\infofont bonum} -% {\hbox to 50pt{\hss\showboxes\switchtobodyfont [schola]$V_i^i = W_i^i$\hss}} {\infofont schola} -% \stopcombination -% \stopTEXpage diff --git a/doc/context/sources/general/manuals/math/math-spacing-001.tex b/doc/context/sources/general/manuals/math/math-spacing-001.tex deleted file mode 100644 index a0ccda449..000000000 --- a/doc/context/sources/general/manuals/math/math-spacing-001.tex +++ /dev/null @@ -1,73 +0,0 @@ -\doifmodeelse {with-struts} { - \def\Line{\dontleavehmode{\showstruts\dorecurse{18}{x \strut x }}} -} { - \def\Line{\dontleavehmode{\showstruts\dorecurse{18}{x x }}} -} - -\setuplayout - [width=middle, - height=middle, - backspace=1mm, - topspace=1cm] - -\setupbodyfont - [17.3pt] - -\starttext - -\Line - -\startformula - x -\stopformula - -\Line - -\startformula - y -\stopformula - -\Line - -\startformula - \strut x -\stopformula - -\Line - -\startformula \startalign - \NC c - a = \NC b \NR - \NC d + c - b = \NC a \NR -\stopalign \stopformula - -\Line - -\startformula \startalign - \NC c - a = \NC b \NR - \NC d + c - b = \NC a \NR -\stopalign \stopformula - -\Line - -\startformula -\mframed - [offset=1mm,loffset=3mm,roffset=3mm] { - a + b = c - } -\stopformula - -\Line - -\startformula -\mframed - [offset=1mm,loffset=3mm,roffset=3mm] { - \startalign - \NC c - a = \NC b \NR - \NC d + c - b = \NC a \NR - \stopalign - } -\stopformula - -\Line - -\stoptext diff --git a/doc/context/sources/general/manuals/mcommon.tex b/doc/context/sources/general/manuals/mcommon.tex deleted file mode 100644 index 94b5f9bf5..000000000 --- a/doc/context/sources/general/manuals/mcommon.tex +++ /dev/null @@ -1,210 +0,0 @@ -% content=tex -% -% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa - -\startenvironment mcommon - -% modules - -\usemodule[abr-02] - -% layout - -% \startmode[screen] -% \setuppapersize[S6][S6] -% \setupinteractionscreen[options=max] -% \stopmode - -\setuplayout - [topspace=15mm, - header=15mm, - headerdistance=0mm, - footer=0cm, - width=middle, - height=middle] - -\setupinteraction - [state=start, - color=, - contrastcolor=, - style=] - -% fonts - -\definetypeface [mainface] [rm] [serif] [pagella] [default] -\definetypeface [mainface] [ss] [sans] [heros] [default] % [rscale=1.1] -\definetypeface [mainface] [tt] [mono] [heros] [default] % [rscale=1.1] -\definetypeface [mainface] [mm] [math] [pagella] [default] - -\setupbodyfont[mainface,12pt] - -\definefont [BigFont] [SansBold*default at 60pt] -\definefont [MedFont] [SansBold*default at 30pt] - -% colors (historically) - -\definecolor [NopColor] [r=.6,g=.4,b=.5] -\definecolor [AltColor] [r=.4,g=.6,b=.5] -\definecolor [TheColor] [r=.4,g=.5,b=.6] -\definecolor [TmpColor] [r=.6,g=.5,b=.4] - -\definecolor [NopColor] [r=.40,g=.20,b=.20] -\definecolor [AltColor] [r=.20,g=.40,b=.20] -\definecolor [TheColor] [r=.20,g=.20,b=.40] -\definecolor [TmpColor] [r=.40,g=.40,b=.20] - -\definecolor [red] [NopColor] -\definecolor [green] [AltColor] -\definecolor [blue] [TheColor] -\definecolor [yellow][TmpColor] - -% spacing - -\setupwhitespace - [big] - -\setuptolerance - [verytolerant,stretch] - -% verbatim - -\setuptype - [color=AltColor] - -\setuptyping - [color=AltColor] - -% structure - -\setupitemize - [each] - [color=TheColor] - -\definedescription - [switch] - [headstyle=type, - headcolor=TheColor, - location=serried, - width=broad] - -\defineenumeration - [topic] - [location=serried, - width=broad, - headstyle=, - headcolor=TheColor, - text=, - left={[}, - right={]}] - -\setuphead - [section] - [style=\bfb, - color=TheColor] - -\setuplist - [section] - [alternative=c, - color=TheColor, - textcolor=black, - pagecolor=black] - -% whatever - -\setupsystem - [random=medium] - -\setupfloats - [ntop=100] - -\setupinteraction - [style=, - color=NopColor, - contrastcolor=NopColor] - -% tables and frames - -\setuptabulate - [rulethickness=.5pt, - rulecolor=AltColor] - -\setuptables - [rulethickness=.5pt, - rulecolor=AltColor] - -\setupframedtexts - [rulethickness=.5pt, - framecolor=TheColor, - width=\textwidth] - -% quick reference things - -\usemodule[set-11] \loadsetups - -\setupframedtexts - [setuptext] - [rulethickness=.5pt, - framecolor=AltColor] - -% titlepage - -\startsetups titlepage - \defineoverlay - [logo] - [\useMPgraphic{titlepage}{width=\overlaywidth,height=\overlayheight}] - \setupbackgrounds - [page] - [background=logo] - \startstandardmakeup - \dontcomplain - \BigFont - \setupinterlinespace - \vfill - \setupalign[left] - \let\\=\par - \dontleavehmode - \rotate - [rotation=90] - {\color - [lightgray] - {\getvariable{document}{title}}} - \par - \stopstandardmakeup - \setupbackgrounds - [page] - [background=] -\stopsetups - -\startsetups colofon - \blank[2*big] - \testpage[3] - \startpacked - \getvariable{document}{author}\par - \getvariable{document}{affiliation}\par - \getvariable{document}{location}\par - \stoppacked -\stopsetups - -\setupdocument - [title=No Title, - before=\setups{titlepage}, - after=\setups{colofon}] - -% urls - -\useurl[gpl-simple] [http://creativecommons.org/licenses/GPL/2.0/] -\useurl[gpl-legal] [http://creativecommons.org/licenses/GPL/2.0/legalcode] -\useurl[bysa-simple][http://creativecommons.org/licenses/by-sa/4.0/] -\useurl[bysa-legal] [http://creativecommons.org/licenses/by-sa/4.0/legalcode] - -\useurl[garden] [http://contextgarden.net] -\useurl[install] [http://wiki.contextgarden.net/ConTeXt_Standalone] -\useurl[texlive] [http://www.tug.org/texlive/] -\useurl[group] [http://group.contextgarden.net] -\useurl[list] [http://www.ntg.nl/mailman/listinfo/ntg-context] -\useurl[development][http://www.ntg.nl/mailman/listinfo/dev-context] -\useurl[announce] [http://www.ntg.nl/mailman/listinfo/ann-context] -\useurl[collector] [http://tracker.luatex.org] -\useurl[pragma] [http://www.pragma-ade.com] - -\stopenvironment diff --git a/doc/context/sources/general/manuals/readme/mreadme.tex b/doc/context/sources/general/manuals/readme/mreadme.tex deleted file mode 100644 index 32c1684d9..000000000 --- a/doc/context/sources/general/manuals/readme/mreadme.tex +++ /dev/null @@ -1,390 +0,0 @@ -% interface=en engine=luatex language=uk - -% 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. - -\environment mcommon - -% copied from cont-log: readme_logo - -\startuseMPgraphic{titlepage}{width,height} - numeric width ; width = \MPvar{width} ; - numeric height ; height = \MPvar{height} ; - numeric delta ; delta := width/10 ; - numeric circle ; circle := 2.5delta ; - color c ; c := (.2,.4,.6) ; - path p, q, r ; - p := unitsquare xscaled width yscaled height ; - z1 = (delta,height-2delta) ; - z2 = (width-delta,height-delta) ; - z3 = (width/2-delta,2delta+circle) ; - z4 = (x3,delta+circle/2) ; - q := z1 { dir -15 } .. z2 & z2 { dir -105 } .. z3 & z3 { dir 135 } .. z1 & cycle ; - r := fullcircle xscaled circle yscaled (.85circle) rotated 15 shifted z4 ; - pickup pencircle scaled (delta/1.5) ; - fill p withcolor .50c ; - fill q withcolor .75c ; - fill r withcolor .75c ; - draw p withcolor c ; - draw q withcolor c ; - pickup pencircle scaled (delta/2) ; - draw r withcolor c ; - setbounds currentpicture to p ; -\stopuseMPgraphic - -\startdocument - [title={Read Me First}, - author={Hans Hagen}, - affiliation={PRAGMA ADE}, - location={Hasselt NL}] - -\startsubject[title={Introduction}] - -What licence suits best for a \TEX\ like system is a matter of taste. Personally -we dislike any licence that needs more than a few pages of dense legal code to -get the message across. A \TEX\ related system like \CONTEXT\ is a hybrid of -programs, scripts and|/|or macro code as well as documentation and sample code, -including graphics. \TEX\ related systems also have a long standing tradition of -providing support structures for users. In order to make support feasible, a -\TEX\ based system like \CONTEXT\ assumes a certain logic and structure in the -way the related files are named and organized in a tree structure. Even a small -change in one of the elements may let such a system behave differently than -manuals suggest. Swap a font, change some style defaults, leave out some pieces, -and users may end up in confusion. A licence does not give a user any guarantees! - -In order to satisfy those responsible for distributing \CONTEXT, we need to -choose a licence that makes them feel comfortable. Unfortunately we don't feel -that comfortable with a licence that does not provide the guarantees that a -system will not be adapted in such ways that the advertised behaviour changes. On -the other hand, it is the responsibility of those distributing and extending the -system to make sure that this does not happen. However, users should not -automatically assume that what they get shipped is the same as the original, -which is why we stress that support (from our side) will only be given on -unaltered systems. - -First of all, what is \CONTEXT ? It's just a bunch of macros, written in \TEX\ -and \METAPOST, meant for typesetting documents. The macros are accompanied by -some scripts, written in \PERL\ (mainly the older scripts) \RUBY\ (also older -ones) and \LUA\ (the current fashion). The \CONTEXT\ distribution comes with a -few fonts, files that help manage resources (e.g.\ map files needed for \MKII), -as well as patterns (based on official ones, so this is a derived work). - -The \CONTEXT\ distribution is packaged in a zip file organized in the \TDS\ -structure. - -\starttabulate[|lT|p|] -\NC \type {cont-tmf.zip} \NC the main distribution that has all relevant files \NC \NR -\NC \type {cont-tst.7z} \NC a bunch of test files that can also serve as examples \NC \NR -\NC \type {cont-mpd.zip} \NC a \METAPOST\ to \PDF\ converter (not needed in \CONTEXT) \NC \NR -\NC \type {cont-ppc.zip} \NC a macro package for typesetting chemistry (not needed in \CONTEXT) \NC \NR -\NC \type {cont-sci.zip} \NC configuration files for using \CONTEXT\ in the \SCITE\ editor \NC \NR -\stoptabulate - -There are two flavours of \CONTEXT: \MKII\ and \MKIV. The first one is frozen and -will not be extended. It runs on top of \PDFTEX\ or \XETEX. The \MKIV\ version is -actively developed and runs on top of \LUATEX\ (an engine that is developed -alongside \CONTEXT\ but that can also be used for other macro packages). - -The documentation can be downloaded from our website or the Wiki. Some manuals -ship with source code. We might ship more source code but only when the source is -stable and clean and can serve as an example. - -That said, what licence does apply? We need to distinguish between things that -resemble a program on the one hand and documentation on the other hand. We -(currently) use a different licence for either of them. - -\stopsubject - -\startsubject[title={The Code}] - -The program code (i.e. anything not under the \type {/doc} subtree) is -distributed under the - -\startnarrower -\goto{Creative Commons GNU GPL}[url(gpl-simple)] -\stopnarrower - -For practical purposes distributers may also choose the \LATEX\ project licence, -which is considered to be a bit more \TEX\ friendly. (BSD alike licences also -apply well for \CONTEXT.) - -In practice, users may forget about the legal part, if only because I haven't -even read (and understood) it completely myself, so let's stick to what Creative -Commons makes of it: - -\startcolor[blue] -The GNU General Public License is a Free Software license. Like any Free Software -license, it grants to you the four following freedoms: - -\startitemize - \startitem - The freedom to run the program for any purpose. - \stopitem - \startitem - The freedom to study how the program works and adapt it to your needs. - \stopitem - \startitem - The freedom to redistribute copies so you can help your neighbour. - \stopitem - \startitem - The freedom to improve the program and release your improvements to the - public, so that the whole community benefits. - \stopitem -\stopitemize - -You may exercise the freedoms specified here provided that you comply with the -express conditions of this license. The principal conditions are: - -You must conspicuously and appropriately publish on each copy distributed an -appropriate copyright notice and disclaimer of warranty and keep intact all the -notices that refer to this License and to the absence of any warranty; and give -any other recipients of the Program a copy of the GNU General Public License -along with the Program. Any translation of the GNU General Public License must be -accompanied by the GNU General Public License. - -If you modify your copy or copies of the program or any portion of it, or develop -a program based upon it, you may distribute the resulting work provided you do so -under the GNU General Public License. Any translation of the GNU General Public -License must be accompanied by the GNU General Public License. - -If you copy or distribute the program, you must accompany it with the complete -corresponding machine-readable source code or with a written offer, valid for at -least three years, to furnish the complete corresponding machine-readable source -code. - -Any of these conditions can be waived if you get permission from the copyright -holder. - -Your fair use and other rights are in no way affected by the above. -\stopcolor - -Many source filed mention the \quotation {\CONTEXT\ Development Team} as -copyright holder. This is because over time users submit patches and whenever -something happens to the main author, those involved in development can take -over without the need to bother about derived work. In the end the \CONTEXT\ -group is the place to get more information. - -\stopsubject - -\startsubject[title={Recommendations}] - -Here are a few recommendations in case you want to distribute, extend of embed -\CONTEXT\ in applications: - -\startitemize - -\startitem - You can best leave the code base untouched. Most of \CONTEXT\ provides hooks - and it's relatively easy to overload code. Leave the lower level system code - untouched: changes may backfire when you update. Asking for more hooks is the - best way to go. -\stopitem - -\startitem - Put your own code in the right subpaths, i.e.\ modules approved by the - development team under \type {.../third}, and styles and whatever else under - \type {.../user}. This way your code will not interfere with existing code - and updating will give less problems. Keep in mind that \TEX\ systems have - their own way and order in locating files, and the load order often matters. -\stopitem - -\startitem - Don't copy styles and change a few lines, but load the base one and - built|/|patch on top of that. In the end you may benefit from improvements to - the base style. -\stopitem - -\startitem - Be original. The whole idea behind \CONTEXT\ is that you can write your own - styles. On the \CONTEXT\ mailing list as well as on the Wiki there are enough - advanced users to help you make a start. -\stopitem - -\startitem - Don't hesitate to submit bugs reports and ask for extensions. It may even be - that what you want is already present but yet undocumented. -\stopitem - -\startitem - If things don't work as expected, check to what extend your system matches - the (more or less) standard. We provide so called minimal \CONTEXT\ trees - that can serve as a reference. Because \CONTEXT\ evolves, make sure your - system is up to date. The \CONTEXT\ garden provides ways to install and - update the standard distribution. -\stopitem - -\startitem - The scripts can best be called using \type {mtxrun}. This lessens dependencies - on the location in the tree and ensures upward compatibility. It also prevents - clashes with similar scripts. -\stopitem - -\startitem - Some scripts depend on each other. Don't mess around with the existing - functionality and names of the scripts and then feed them back into the - standard distributions. -\stopitem - -\stopitemize - -\stopsubject - -\startsubject[title={Documents}] - -The documentation is provided under another Creative Commons licence: - -\startnarrower - \goto{Attribution ShareAlike}[url(bysa-simple)] -\stopnarrower - -The manuals that are distributed with \CONTEXT\ comes with a rather liberal -license. However, we try to adapt these documents to upgrades in the (sub)systems -that they describe and derived work 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. - -The mentioned license says: - -\startcolor[blue] -You are free: - -\startitemize - \startitem to copy, distribute, display, and perform the work \stopitem - \startitem to make derivative works \stopitem -\stopitemize - -{\sc Attribution:} You must attribute the work in the manner specified by the -author or licensor. - -{\sc Share Alike:} If you alter, transform, or build upon this work, you may -distribute the resulting work only under a license identical to this one. - -\startitemize - \startitem - For any reuse or distribution, you must make clear to others the license - terms of this work. - \stopitem - \startitem - Any of these conditions can be waived if you get permission from the - copyright holder. - \stopitem -\stopitemize - -Your fair use and other rights are in no way affected by the above. -\stopcolor - -If you distribute \CONTEXT\ and related software on electronic media as part of -\TEX\ distributions (either or not for money), you may also distribute the -manuals and their sources in electronic form, preferable as provided by the -maintainers of \CONTEXT. - -Keep in mind that logos and cover designs are not meant to be copied. We provide -the source code for some manuals, but we don't always provide all graphics and -other resources. For instance, in some manuals we use commercial fonts and you -have to buy those yourself. - -We provide the typeset manuals at our website. Those are the official ones. We -appreciate it if you do not to distribute manuals compiled on your own system as -substitutes. The manuals are a showcase for what \CONTEXT\ provides. Help us to -assure the quality. - -\stopsubject - -\startsubject[title={More information}] - -We're not going to fill \mathematics{n}~pages with legal stuff, so if you want to -know more, you have to consult the web for the legalities mentioned. Here are a -few starting points: - -\startlines -\goto{\url[gpl-simple]}[url(gpl-simple)] -\goto{\url[gpl-legal]}[url(gpl-legal)] -\stoplines - -\startlines -\goto{\url[bysa-simple]}[url(bysa-simple)] -\goto{\url[bysa-legal]}[url(bysa-legal)] -\stoplines - -\CONTEXT\ itself can be fetched from the main site or the garden: - -\startlines -\goto{\url[pragma]}[url(pragma)] -\goto{\url[install]}[url(install)] -\stoplines - -These always ship the latest versions. Alternatively you can install the whole -\TEX\ distribution, which is a yearly snapshot: - -\startlines -\goto{\url[texlive]}[url(texlive)] -\stoplines - -A starting point for support can be found at: - -\startlines -\goto{\url[list]}[url(list)] -\goto{\url[garden]}[url(garden)] -\stoplines - -And of course there is the \CONTEXT\ group: - -\startlines -\goto{\url[group]}[url(group)] -\stoplines - -Bugs and feature requests can be registered at the collector: - -\startlines -\goto{\url[collector]}[url(collector)] -\stoplines - -Releases are announced at: - -\startlines -\goto{\url[announce]}[url(announce)] -\stoplines - -The developers can be met at: - -\startlines -\goto{\url[development]}[url(development)] -\stoplines - -\stopsubject - -\startsubject[title={Disclaimer}] - -To play safe we include a disclaimer here, taken from the BSD style licence. For -some reason such a text is always in unreadable capitals, so \unknown - -\start \txx \blue -THIS SOFTWARE IS PROVIDED BY THE AUTHOR \quotation {AS IS} AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -\stop - -\unknown\ and don't bother discussing licence issues and related things with us -for the mere sake of discussing licence stuff. - -\stopsubject - -\stopdocument diff --git a/doc/context/sources/general/manuals/spacing/spacing-contents.tex b/doc/context/sources/general/manuals/spacing/spacing-contents.tex deleted file mode 100644 index d7c709e2e..000000000 --- a/doc/context/sources/general/manuals/spacing/spacing-contents.tex +++ /dev/null @@ -1,9 +0,0 @@ -\startcomponent spacing-contents - -\starttitle[title=Contents] - -\placelist[chapter,section] - -\stoptitle - -\stopcomponent diff --git a/doc/context/sources/general/manuals/spacing/spacing-introduction.tex b/doc/context/sources/general/manuals/spacing/spacing-introduction.tex deleted file mode 100644 index d4d385c5e..000000000 --- a/doc/context/sources/general/manuals/spacing/spacing-introduction.tex +++ /dev/null @@ -1,19 +0,0 @@ -\environment spacing-style - -\startcomponent spacing-introduction - -\startchapter[title=Introduction] - - In this document I will collext some remarks about spacing (related) commands - but it will happen stepwise. Feel free to contribute. - - \blank - - \startlines - Hans Hagen - Hasselt NL - \stoplines - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/spacing/spacing-linecorrection.tex b/doc/context/sources/general/manuals/spacing/spacing-linecorrection.tex deleted file mode 100644 index c16afbf0a..000000000 --- a/doc/context/sources/general/manuals/spacing/spacing-linecorrection.tex +++ /dev/null @@ -1,108 +0,0 @@ -% language=uk - -\environment spacing-style - -\startcomponent spacing-linecorrection - -\startchapter[title=Line correction] - -\startbuffer[linecorrection] -\typebuffer -\blank -\enabletrackers[linecorrection.boxes] -\getbuffer -\disabletrackers[linecorrection.boxes] -\blank -\stopbuffer - -We really do out best to make the spacing look as good as possible -(or at least consistent) but sometimes \TEX\ needs a bit of help. -An example of a helper is the following: - -\startbuffer -\startlinecorrection - \input ward -\stoplinecorrection -\stopbuffer - -\getbuffer[linecorrection] - -When we use the same command with some left and/or right margins set, we get -this: - -\startbuffer -\startnarrower - \startlinecorrection - \input ward - \stoplinecorrection -\stopnarrower -\stopbuffer - -\getbuffer[linecorrection] - -Here we do obey the margins inside the correction box but the box itself is still -as wide as the current width. A typical case where this happens is: - -\startbuffer -\startitemize - \startitem an item: - \startlinecorrection - \input ward - \stoplinecorrection - \stopitem -\stopitemize -\stopbuffer - -\getbuffer[linecorrection] - -Here is a variant: - -\startbuffer -\startitemize - \startitem a local linecorrection: - \startlocallinecorrection - \input ward - \stoplocallinecorrection - \stopitem -\stopitemize -\stopbuffer - -\getbuffer[linecorrection] - -Both types of correction wrap their content in a box and make sure that the -spacing around it is visually as good as possible. The local variant uses a box -fitting the available width taking margins into account and but resetting them -inside the box. The normal variant applies the margins inside the box. Which one -you use depends on the situation and content. - -You can pass an optional argument that indicates the amount of spacing to be -added before and after the correction. - -\startbuffer -\startlinecorrection[3*line] - \input ward -\stoplinecorrection -\stopbuffer - -\getbuffer[linecorrection] - -Normally you don't need this correction. It is mainly used for correcting spacing -around boxed material, like \type {\framed}: - -\startbuffer -before -\startlinecorrection - \framed{something inbetween} -\stoplinecorrection -after -\stopbuffer - -\getbuffer[linecorrection] - -Because in this document we have set the whitespace this also gets added around -the box. So, in case your spacing around some special content looks bad, consider -using these commands. - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/spacing/spacing-mkiv.tex b/doc/context/sources/general/manuals/spacing/spacing-mkiv.tex deleted file mode 100644 index 4261a3884..000000000 --- a/doc/context/sources/general/manuals/spacing/spacing-mkiv.tex +++ /dev/null @@ -1,16 +0,0 @@ -\environment spacing-style - -\startdocument - - \component spacing-titlepage - - \startfrontmatter - \component spacing-contents - \component spacing-introduction - \stopfrontmatter - - \startbodymatter - \component spacing-linecorrection - \stopbodymatter - -\stopdocument diff --git a/doc/context/sources/general/manuals/spacing/spacing-style.tex b/doc/context/sources/general/manuals/spacing/spacing-style.tex deleted file mode 100644 index cf0bae7bf..000000000 --- a/doc/context/sources/general/manuals/spacing/spacing-style.tex +++ /dev/null @@ -1,55 +0,0 @@ -\startenvironment spacing-style - -\setupbodyfont - [pagella] - -\setuplayout - [width=middle, - height=middle, - topspace=15mm, - header=15mm, - footer=0pt, - bottomspace=20mm] - -\setuppagenumbering - [alternative=doublesided] - -\setupwhitespace - [big] - -\definecolor - [blackcolor] - [r=0,b=0,g=0] - -\definecolor - [whitecolor] - [r=1,b=1,g=1] - -\definecolor - [maincolor] - [.25(blackcolor,green)] - -\definecolor - [extracolor] - [.25(whitecolor,green)] - -% \blackrule[color=maincolor,width=10cm,,height=10cm] -% \blackrule[color=extracolor,width=10cm,,height=10cm] - -\setuptyping - [color=maincolor] - -\setuptype - [color=maincolor] - -\setuphead - [chapter] - [style=\bfd, - color=maincolor] - -\setuphead - [section] - [style=\bfc, - color=maincolor] - -\stopenvironment diff --git a/doc/context/sources/general/manuals/spacing/spacing-titlepage.tex b/doc/context/sources/general/manuals/spacing/spacing-titlepage.tex deleted file mode 100644 index 1f21d769a..000000000 --- a/doc/context/sources/general/manuals/spacing/spacing-titlepage.tex +++ /dev/null @@ -1,37 +0,0 @@ -\environment spacing-style - -\startcomponent spacing-titlepage - -% This titlepage demonstrates once again how well designed the computer modern monospaced -% font is, especially when we look at the consistent grayness. - -\startMPpage - - fill Page enlarged 4mm withcolor \MPcolor{maincolor} ; - - draw image ( - for i=1 upto 20 : - draw bottomboundary Page shifted (0,100*log(i)) ; - endfor ; - ) - xysized (PaperWidth-6mm,PaperHeight-6mm) - shifted (3mm,3mm) - withcolor \MPcolor{extracolor} - withpen pencircle scaled 1mm ; - - numeric a ; a := log(1)*PaperHeight/(log(20)) ; - numeric b ; b := log(2)*PaperHeight/(log(20)) ; - - picture p ; p := textext.lrt("\ttbf Spacing in Con\TeX t") xsized(.9PaperWidth) ; - - draw p - shifted (.05PaperWidth,(b+a)/2 - ypart center p) - withcolor \MPcolor{extracolor} ; - - setbounds currentpicture to Page ; - -\stopMPpage - -\page[right] \setuppagenumber[number=1] - -\stopcomponent diff --git a/doc/context/sources/general/manuals/sql/sql-mkiv.tex b/doc/context/sources/general/manuals/sql/sql-mkiv.tex deleted file mode 100644 index ec2c999aa..000000000 --- a/doc/context/sources/general/manuals/sql/sql-mkiv.tex +++ /dev/null @@ -1,492 +0,0 @@ -% language=uk - -% 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. - -\usemodule[art-01,abr-02] - -\definecolor - [maincolor] - [r=.4] - -\setupbodyfont - [10pt] - -\setuptype - [color=maincolor] - -\setuptyping - [color=maincolor] - -\definefont - [TitlePageFont] - [file:lmmonolt10-bold.otf] - -\setuphead - [color=maincolor] - -\usesymbols - [cc] - -\setupinteraction - [hidden] - -\startdocument - [metadata:author=Hans Hagen, - metadata:title=SQL in ConTeXt, - author=Hans Hagen, - affiliation=PRAGMA ADE, - location=Hasselt NL, - title=SQL in \CONTEXT, - support=www.contextgarden.net, - website=www.pragma-ade.nl] - -\startMPpage - - StartPage ; - - numeric w ; w := bbwidth(Page) ; - numeric h ; h := bbheight(Page) ; - - fill Page withcolor \MPcolor{maincolor} ; - - draw textext.urt("\TitlePageFont Q") xysized (1.1 w,0.9 h) shifted (-.05w,.05h) withcolor .20white ; - draw textext.top("\TitlePageFont SQL") xysized (0.4725w,0.13h) shifted (.675w,.24w) withcolor .60white ; - draw textext.top("\TitlePageFont CONTEXT") xsized (0.6 w) shifted (.675w,.10w) withcolor .60white ; - - StopPage ; - -\stopMPpage - -\startsubject[title=Contents] - -\placelist[section][alternative=a] - -\stopsubject - -\startsection[title=Introduction] - -Although \CONTEXT\ is a likely candidate for typesetting content that comes from -databases it was only in 2011 that I ran into a project where a connection was -needed. After all, much document related typesetting happens on files or -dedicated storage systems. - -Because we run most projects in an infrastructure suitable for \TEX, it made -sense to add some helper scripts to the \CONTEXT\ core distribution that deal -with getting data from (in our case) \MYSQL\ databases. That way we can use the -already stable infrastructure for installing and updating files that comes with -\CONTEXT. - -As \LUA\ support is nicely integrated in \CONTEXT, and as dealing with -information from databases involves some kind of programming anyway, there is (at -least currently) no \TEX\ interface. The examples shown here work in \CONTEXT, -but you need to keep in mind that \LUA\ scripts can also use this interface. - -{\em Although this code is under construction the interfaces are unlikely to -change, if only because we use it on production.} - -\stopsection - -\startsection[title=Presets] - -In order to consult a database you need to provide credentials. You also need -to reach the database server, either by using some client program or via a -library. More about that later. - -Because we don't want to key in all that information again and again, we will -collect it in a table. This also permits us to store it in a file and load it -on demand. For instance: - -\starttyping -local presets = { - database = "test", - username = "root", - password = "none", - host = "localhost", - port = 3306, -} -\stoptyping - -You can put a table in a file \type {presets.lua} like this: - -\starttyping -return { - database = "test", - username = "root", - password = "none", - host = "localhost", - port = 3306, -} -\stoptyping - -and then load it as follows: - -\starttyping -local presets = table.load("presets.lua") -\stoptyping - -If you really want, you can use some library to open a connection, execute a -query, collect results and close the connection, but here we use just one -function that does it all. The presets are used to access the database and the -same presets will be used more often it makes sense to keep a connection open as -long as possible. That way you can execute much more queries per second, -something that makes sense when there are many small ones, as in web related -services. A connection is made persistent when the presets have an \type {id} -key, like - -\starttyping -presets.id = "myproject" -\stoptyping - -\stopsection - -\startsection[title=Templates] - -A query often looks like this: - -\starttyping -SELECT - `artist`, `title` -FROM - `cd` -WHERE - `artist` = 'archive' ; -\stoptyping - -However, often you want to use the same query for multiple lookups, in which case -you can do this: - -\starttyping -SELECT - `artist`, `title` -FROM - `cd` -WHERE - `artist` = '%artist%' ; -\stoptyping - -In the next section we will see how \type {%artist%} can be replaced by a more -meaningful value. You can a percent sign by entering two in a row: \type {%%}. - -As with any programming language that deals with strings natively, you need a -way to escape the characters that fence the string. In \SQL\ a field name is -fenced by \type {``} and a string by \type {''}. Field names can often be -used without \type {``} but you can better play safe. - -\starttyping -`artist` = 'Chilly Gonzales' -\stoptyping - -Escaping of the \type {'} is simple: - -\starttyping -`artist` = 'Jasper van''t Hof' -\stoptyping - -When you use templates you often pass a string as variable and you don't want to -be bothered with escaping them. In the previous example we used: - -\starttyping -`artist` = '%artist%' -\stoptyping - -When you expect embedded quotes you can use this: - -\starttyping -`artist` = '%[artist]%' -\stoptyping - -In this case the variable {artist} will be escaped. When we reuse a template we -store it in a variable: - -\starttyping -local template = [[ - SELECT - `artist`, `title` - FROM - `cd` - WHERE - `artist` = '%artist%' ; -]] -\stoptyping - -\stopsection - -\startsection[title=Queries] - -In order to execute a query you need to pass the previously discussed presets -as well as the query itself. - -\starttyping -local data, keys = utilities.sql.execute { - presets = presets, - template = template, - variables = { - artist = "Dream Theater", - }, -} -\stoptyping - -The variables in the presets table can also be passed at the outer -level. In fact there are three levels of inheritance: settings, presets -and module defaults. - -\starttabulate -\NC presets \NC a table with values \NC \NR -\NC template \NC a query string \NC \NR -\NC templatefile \NC a file containing a template \NC \NR -\NC \em resultfile \NC a (temporary) file to store the result \NC \NR -\NC \em queryfile \NC a (temporary) file to store a query \NC \NR -\NC variables \NC variables that are subsituted in the template \NC \NR -\NC username \NC used to connect to the database \NC \NR -\NC password \NC used to connect to the database \NC \NR -\NC host \NC the \quote {machine} where the database server runs on \NC \NR -\NC port \NC the port where the database server listens to \NC \NR -\NC database \NC the name of the database \NC \NR -\stoptabulate - -The \type {resultfile} and \type {queryfile} parameters are used when a client -approach is used. When a library is used all happens in memory. - -When the query succeeds two tables are returned: \type {data} and \type {keys}. The -first is an indexed table where each entry is a hash. So, if we have only one -match and that match has only one field, you get something like this: - -\starttyping -data = { - { - key = "value" - } -} - -keys = { - "key" -} -\stoptyping - -\stopsection - -\startsection[title=Converters] - -All values in the result are strings. Of course we could have provided some -automatic type conversion but there are more basetypes in \MYSQL\ and some are -not even standard \SQL. Instead the module provides a converter mechanism - -\starttyping -local converter = utilities.sql.makeconverter { - { name = "id", type = "number" }, - { name = "name", type = "string" }, - { name = "enabled", type = "boolean" }, -} -\stoptyping - -You can pass the converter to the execute function: - -\starttyping -local data, keys = utilities.sql.execute { - presets = presets, - template = template, - converter = converter, - variables = { - name = "Hans Hagen", - }, -} -\stoptyping - -In addition to numbers, strings and booleans you can also use a function -or table: - -\starttyping -local remap = { - ["1"] = "info" - ["2"] = "warning" - ["3"] = "debug" - ["4"] = "error" -} - -local converter = utilities.sql.makeconverter { - { name = "id", type = "number" }, - { name = "status", type = remap }, -} -\stoptyping - -I use this module for managing \CONTEXT\ jobs in web services. In that case we -need to store jobtickets and they have some common properties. The definition of -the table looks as follows: \footnote {The tickets manager is part of the -\CONTEXT\ distribution.} - -\starttyping -CREATE TABLE IF NOT EXISTS %basename% ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `token` varchar(50) NOT NULL, - `subtoken` INT(11) NOT NULL, - `created` int(11) NOT NULL, - `accessed` int(11) NOT NULL, - `category` int(11) NOT NULL, - `status` int(11) NOT NULL, - `usertoken` varchar(50) NOT NULL, - `data` longtext NOT NULL, - `comment` longtext NOT NULL, - - PRIMARY KEY (`id`), - UNIQUE INDEX `id_unique_index` (`id` ASC), - KEY `token_unique_key` (`token`) -) -DEFAULT CHARSET = utf8 ; -\stoptyping - -We can register a ticket from (for instance) a web service and use an independent -watchdog to consult the database for tickets that need to be processed. When the -job is finished we register this in the database and the web service can poll for -the status. - -It's easy to imagine more fields, for instance the way \CONTEXT\ is called, what -files to use, what results to expect, what extra data to pass, like style -directives, etc. Instead of putting that kind of information in fields we store -them in a \LUA\ table, serialize that table, and put that in the data field. - -The other way around is that we take this data field and convert it back to \LUA. -For this you can use a helper: - -\starttyping -local results = utilities.sql.execute { ... } - -for i=1,#results do - local result = results[i] - result.data = utilities.sql.deserialize(result.data) -end -\stoptyping - -Much more efficient is to use a converter: - -\starttyping -local converter = utilities.sql.makeconverter { - ... - { name = "data", type = "deserialize" }, - ... -} -\stoptyping - -This way you don't need to loop over the result and deserialize each data -field which not only takes less runtime (often neglectable) but also takes -less (intermediate) memory. Of course in some cases it can make sense to -postpone the deserialization. - -A variant is not to store a serialized data table, but to store a key|-|value -list, like: - -\starttyping -data = [[key_1="value_1" key_2="value_2"]] -\stoptyping - -Such data fields can be converted with: - -\starttyping -local converter = utilities.sql.makeconverter { - ... - { name = "data", type = utilities.parsers.keq_to_hash }, - ... -} -\stoptyping - -You can imagine more converters like this, and if needed you can use them to -preprocess data as well. - -\starttabulate[|Tl|p|] -\NC "boolean" \NC This converts a string into the value \type {true} or \type {false}. - Valid values for \type {true} are: \type {1}, \type {true}, \type - {yes}, \type {on} and \type {t} \NC \NR -\NC "number" \NC This one does a straightforward \type {tonumber} on the value. \NC \NR -\NC function \NC The given function is applied to value. \NC \NR -\NC table \NC The value is resolved via the given table. \NC \NR -\NC "deserialize" \NC The value is deserialized into \LUA\ code. \NC \NR -\NC "key" \NC The value is used as key which makes the result table is now hashed - instead of indexed. \NC \NR -\NC "entry" \NC An entry is added with the given name and optionally with a default - value. \NC \NR -\stoptabulate - -\stopsection - -\startsection[title=Typesetting] - -For good reason a \CONTEXT\ job often involves multiple passes. Although the -database related code is quite efficient it can be considered a waste of time -and bandwidth to fetch the data several times. For this reason there is -another function: - -\starttyping -local data, keys = utilities.sql.prepare { - tag = "table-1", - ... -} - --- do something useful with the result - -local data, keys = utilities.sql.prepare { - tag = "table-2", - ... -} - --- do something useful with the result -\stoptyping - -The \type {prepare} alternative stores the result in a file and reuses -it in successive runs. - -\stopsection - -\startsection[title=Methods] - -Currently we have several methods for accessing a database: - -\starttabulate -\NC client \NC use the command line tool, pass arguments and use files \NC \NR -\NC library \NC use the standard library (somewhat tricky in \LUATEX\ as we need to work around bugs) \NC \NR -\NC lmxsql \NC use the library with a \LUA\ based pseudo client (stay in the \LUA\ domain) \NC \NR -\NC swiglib \NC use the (still experimental) library that comes with \LUATEX \NC \NR -\stoptabulate - -All methods use the same interface (\type {execute}) and hide the dirty details -for the user. All return the data and keys tables and all take care of the proper -escaping and parsing. - -\stopsection - -\startsection[title=Helpers] - -There are some helper functions and extra modules that will be described when -they are stable. - -There is an \quote {extra} option to the \type {context} command that can be used -to produce an overview of a database. You can get more information about this -with the command: - -\starttyping -context --extra=sql-tables --help -\stoptyping - -\stopsection - -\startsection[title=Colofon] - -\starttabulate[|B|p|] -\NC author \NC \getvariable{document}{author}, \getvariable{document}{affiliation}, \getvariable{document}{location} \NC \NR -\NC version \NC \currentdate \NC \NR -\NC website \NC \getvariable{document}{website} \endash\ \getvariable{document}{support} \NC \NR -\NC copyright \NC \symbol[cc][cc-by-sa-nc] \NC \NR -\stoptabulate - -\stopsection - -\stopdocument diff --git a/doc/context/sources/general/manuals/start/cont-en-extra.xml b/doc/context/sources/general/manuals/start/cont-en-extra.xml deleted file mode 100644 index 4d41391d0..000000000 --- a/doc/context/sources/general/manuals/start/cont-en-extra.xml +++ /dev/null @@ -1,749 +0,0 @@ -<?xml version="1.0"?> - -<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2004.11.17"> - -<!-- -Todo: - - -- bycd:section (\setuppagenumbering) - -- cd:sectionnumber (\setuppagenumbering) ---> - -<cd:command name="textbackground" type="environment"> - <cd:sequence> - <cd:string value="textbackground"/> - </cd:sequence> -</cd:command> - -<cd:command name="textbackground"> - <cd:sequence> - <cd:string value="textbackground"/> - </cd:sequence> -</cd:command> - -<cd:command name="setuptextbackground" file="core-pgr.tex"> - <cd:sequence> - <cd:string value="setuptextbackground"/> - </cd:sequence> - <cd:arguments> - <cd:assignments list="yes"> - <cd:parameter name="leftoffset" default="0pt"> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="rightoffset" default="0pt"> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="topoffset" default="0pt"> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="bottomoffset" default="0pt"> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="before"> - <cd:constant type="cd:command"/> - </cd:parameter> - <cd:parameter name="after"> - <cd:constant type="cd:command"/> - </cd:parameter> - <cd:parameter name="state"> - <cd:constant type="start" default="yes"/> - <cd:constant type="stop"/> - </cd:parameter> - <cd:parameter name="location"> - <cd:constant type="text" default="yes"/> - <cd:constant type="paragraph"/> - <cd:constant type="none"/> - </cd:parameter> - <cd:parameter name="alternative"> - <cd:constant type="0" default="yes"/> - <cd:constant type="1"/> - <cd:constant type="2"/> - </cd:parameter> - <cd:inherit name="setupframed"/> - </cd:assignments> - </cd:arguments> -</cd:command> - -<cd:command name="defineinteractionmenu" variant="1" file="core-int.tex"> - <cd:sequence> - <cd:string value="defineinteractionmenu"/> - </cd:sequence> - <cd:arguments> - <cd:keywords interactive="exclusive"> - <cd:constant type="cd:name"/> - </cd:keywords> - <cd:keywords interactive="exclusive" list="yes"> - <cd:constant type="left"/> - <cd:constant type="right"/> - <cd:constant type="top"/> - <cd:constant type="bottom"/> - <cd:constant type="cd:name"/> - </cd:keywords> - <cd:assignments optional="yes" list="yes"> - <cd:parameter name="before"> - <cd:constant type="cd:command"/> - </cd:parameter> - <cd:parameter name="after"> - <cd:constant type="cd:command"/> - </cd:parameter> - <cd:parameter name="inbetween"> - <cd:constant type="cd:command"/> - </cd:parameter> - <cd:parameter name="left"> - <cd:constant type="cd:command"/> - </cd:parameter> - <cd:parameter name="right"> - <cd:constant type="cd:command"/> - </cd:parameter> - <cd:parameter name="middle"> - <cd:constant type="cd:command"/> - </cd:parameter> - <cd:parameter name="state"> - <cd:constant type="start"/> - <cd:constant type="stop"/> - <cd:constant type="none"/> - <cd:constant type="local"/> - </cd:parameter> - <cd:parameter name="style"> - <cd:resolve name="style"/> - </cd:parameter> - <cd:parameter name="color"> - <cd:constant type="cd:name"/> - </cd:parameter> - <cd:parameter name="distance"> - <cd:constant type="overlay"/> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="samepage"> - <cd:constant type="yes"/> - <cd:constant type="empty"/> - <cd:constant type="no"/> - <cd:constant type="none"/> - </cd:parameter> - <cd:parameter name="unknownreference"> - <cd:constant type="yes"/> - <cd:constant type="empty"/> - <cd:constant type="no"/> - <cd:constant type="none"/> - </cd:parameter> - <cd:parameter name="leftoffset"> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="rightoffset"> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="topoffset"> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="bottomoffset"> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="position"> - <cd:constant type="yes"/> - <cd:constant type="no"/> - </cd:parameter> - <cd:inherit name="setupframed"/> - </cd:assignments> - </cd:arguments> -</cd:command> - -<cd:command name="setupframed" file="core-rul.tex"> - <!-- new: rulethickness --> - <cd:sequence> - <cd:string value="setupframed"/> - </cd:sequence> - <cd:arguments> - <cd:assignments list="yes"> - <cd:parameter name="height"> - <cd:constant type="fit"/> - <cd:constant type="broad"/> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="width"> - <cd:constant type="fit"/> - <cd:constant type="broad"/> - <cd:constant type="fixed"/> - <cd:constant type="local"/> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="autowidth"> - <cd:constant type="yes"/> - <cd:constant type="no"/> - <cd:constant type="force"/> - </cd:parameter> - <cd:parameter name="offset"> - <cd:constant type="none"/> - <cd:constant type="overlay"/> - <cd:constant type="default"/> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="location"> - <cd:constant type="depth"/> - <cd:constant type="hanging"/> - <cd:constant type="high"/> - <cd:constant type="lohi"/> - <cd:constant type="low"/> - <cd:constant type="top"/> - <cd:constant type="middle"/> - <cd:constant type="bottom"/> - <cd:constant type="keep"/> - </cd:parameter> - <cd:parameter name="option"> - <cd:constant type="none"/> - <cd:constant type="empty"/> - </cd:parameter> - <cd:parameter name="strut"> - <cd:constant type="yes"/> - <cd:constant type="no"/> - <cd:constant type="global"/> - <cd:constant type="local"/> - </cd:parameter> - <cd:parameter name="align"> - <cd:resolve name="align"/> - </cd:parameter> - <cd:parameter name="bottom"> - <cd:constant type="cd:command"/> - </cd:parameter> - <cd:parameter name="top"> - <cd:constant type="cd:command"/> - </cd:parameter> - <cd:parameter name="frame"> - <cd:constant type="on"/> - <cd:constant type="off"/> - <cd:constant type="none"/> - <cd:constant type="overlay"/> - </cd:parameter> - <cd:parameter name="topframe"> - <cd:constant type="on"/> - <cd:constant type="off"/> - </cd:parameter> - <cd:parameter name="bottomframe"> - <cd:constant type="on"/> - <cd:constant type="off"/> - </cd:parameter> - <cd:parameter name="leftframe"> - <cd:constant type="on"/> - <cd:constant type="off"/> - </cd:parameter> - <cd:parameter name="rightframe"> - <cd:constant type="on"/> - <cd:constant type="off"/> - </cd:parameter> - <cd:parameter name="frameoffset"> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="framedepth"> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="framecorner"> - <cd:constant type="round"/> - <cd:constant type="rectangular"/> - </cd:parameter> - <cd:parameter name="frameradius"> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="framecolor"> - <cd:constant type="cd:name"/> - </cd:parameter> - <cd:parameter name="rulethickness"> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="background"> - <cd:constant type="screen"/> - <cd:constant type="color"/> - <cd:constant type="none"/> - <cd:constant type="foreground"/> - <cd:constant type="cd:name"/> - </cd:parameter> - <cd:parameter name="backgroundscreen"> - <cd:constant type="cd:number"/> - </cd:parameter> - <cd:parameter name="backgroundcolor"> - <cd:constant type="cd:name"/> - </cd:parameter> - <cd:parameter name="backgroundoffset"> - <cd:constant type="frame"/> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="backgrounddepth"> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="backgroundcorner"> - <cd:constant type="round"/> - <cd:constant type="rectangular"/> - </cd:parameter> - <cd:parameter name="backgroundradius"> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="depth"> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="corner"> - <cd:constant type="round"/> - <cd:constant type="rectangular"/> - </cd:parameter> - <cd:parameter name="radius"> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="empty"> - <cd:constant type="yes"/> - <cd:constant type="no"/> - </cd:parameter> - <cd:parameter name="foregroundcolor"> - <cd:constant type="cd:name"/> - </cd:parameter> - <cd:parameter name="foregroundstyle"> - <cd:resolve name="style"/> - </cd:parameter> - </cd:assignments> - </cd:arguments> -</cd:command> - -<cd:command name="namemakeup" type="environment" generated="yes"> - <cd:sequence> - <cd:variable value="name"/> - <cd:string value="makeup"/> - </cd:sequence> - <cd:arguments> - <cd:assignments optional="yes" list="yes"> - <cd:inherit name="startmakeup"/> - </cd:assignments> - </cd:arguments> -</cd:command> - -<cd:command name="hiding" type="environment"> - <cd:sequence> - <cd:string value="hiding"/> - </cd:sequence> - <cd:arguments> - </cd:arguments> -</cd:command> - -<cd:command name="setupthinrules" file="core-rul.tex"> - <cd:sequence> - <cd:string value="setupthinrules"/> - </cd:sequence> - <cd:arguments> - <cd:assignments> - <cd:parameter name="interlinespace"> - <cd:constant type="small"/> - <cd:constant type="medium"/> - <cd:constant type="big"/> - </cd:parameter> - <cd:parameter name="n"> - <cd:constant type="cd:number"/> - </cd:parameter> - <cd:parameter name="before"> - <cd:constant type="cd:command"/> - </cd:parameter> - <cd:parameter name="inbetween"> - <cd:constant type="cd:command"/> - </cd:parameter> - <cd:parameter name="after"> - <cd:constant type="cd:command"/> - </cd:parameter> - <cd:parameter name="color"> - <cd:constant type="cd:name"/> - </cd:parameter> - <cd:parameter name="backgroundcolor"> - <cd:constant type="cd:name"/> - </cd:parameter> - <cd:parameter name="height"> - <cd:constant type="cd:dimension"/> - <cd:constant type="max"/> - </cd:parameter> - <cd:parameter name="depth"> - <cd:constant type="cd:dimension"/> - <cd:constant type="max"/> - </cd:parameter> - <cd:parameter name="alternative"> - <cd:constant type="a"/> - <!--<cd:constant type="b"/>--> - <cd:constant type="c"/> - <!--<cd:constant type="d"/>--> - </cd:parameter> - <cd:parameter name="rulethickness"> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="color"> - <cd:constant type="cd:name"/> - </cd:parameter> - <cd:parameter name="background"> - <cd:constant type="color"/> - <cd:constant type="none"/> - </cd:parameter> - <cd:parameter name="backgroundcolor"> - <cd:constant type="cd:name"/> - </cd:parameter> - </cd:assignments> - </cd:arguments> -</cd:command> - -<cd:command name="setupitemize" file="core-itm.tex"> - <cd:sequence> - <cd:string value="setupitemize"/> - </cd:sequence> - <cd:arguments> - <cd:keywords optional="yes"> - <cd:constant type="cd:number"/> - <cd:constant type="each"/> - </cd:keywords> - <cd:keywords optional="yes" list="yes"> - <cd:constant type="standard" default="yes"/> - <cd:constant type="broad"/> - <cd:constant type="serried"/> - <cd:constant type="packed"/> - <cd:constant type="unpacked"/> - <cd:constant type="stopper"/> - <cd:constant type="joinedup"/> - <cd:constant type="atmargin"/> - <cd:constant type="inmargin"/> - <cd:constant type="autointro"/> - <cd:constant type="loose"/> - <cd:constant type="repeat"/> - <cd:constant type="cd:section"/> - <cd:constant type="paragraph"/> - <cd:constant type="intext"/> - <cd:constant type="random"/> - </cd:keywords> - <cd:assignments optional="yes" list="yes"> - <cd:parameter name="margin"> - <cd:constant type="no"/> - <cd:constant type="standard"/> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="leftmargin"> - <cd:constant type="no"/> - <cd:constant type="standard"/> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="rightmargin"> - <cd:constant type="no"/> - <cd:constant type="standard"/> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="width"> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="distance"> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="factor"> - <cd:constant type="cd:number"/> - </cd:parameter> - <cd:parameter name="items"> - <cd:constant type="cd:number"/> - </cd:parameter> - <cd:parameter name="start"> - <cd:constant type="cd:number"/> - </cd:parameter> - <cd:parameter name="before"> - <cd:constant type="cd:command"/> - </cd:parameter> - <cd:parameter name="inbetween"> - <cd:constant type="cd:command"/> - </cd:parameter> - <cd:parameter name="after"> - <cd:constant type="cd:command"/> - </cd:parameter> - <cd:parameter name="left"> - <cd:constant type="cd:text"/> - </cd:parameter> - <cd:parameter name="right"> - <cd:constant type="cd:text"/> - </cd:parameter> - <cd:parameter name="beforehead"> - <cd:constant type="cd:command"/> - </cd:parameter> - <cd:parameter name="afterhead"> - <cd:constant type="cd:command"/> - </cd:parameter> - <cd:parameter name="headstyle"> - <cd:resolve name="style"/> - </cd:parameter> - <cd:parameter name="marstyle"> - <cd:resolve name="style"/> - </cd:parameter> - <cd:parameter name="symstyle"> - <cd:resolve name="style"/> - </cd:parameter> - <cd:parameter name="stopper"> - <cd:constant type="cd:text"/> - </cd:parameter> - <cd:parameter name="n"> - <cd:constant type="cd:number"/> - </cd:parameter> - <cd:parameter name="symbol"> - <cd:constant type="cd:number"/> - </cd:parameter> - <cd:parameter name="align"> - <cd:resolve name="align"/> - </cd:parameter> - <cd:parameter name="indentnext"> - <cd:resolve name="indentnext"/> - </cd:parameter> - </cd:assignments> - </cd:arguments> -</cd:command> - -<cd:command name="itemize" type="environment" generated="yes"> - <cd:sequence> - <cd:variable value="itemize"/> - </cd:sequence> - <cd:arguments> - <cd:keywords optional="yes" list="yes"> - <cd:constant type="a"/> - <cd:constant type="A"/> - <cd:constant type="KA"/> - <cd:constant type="n"/> - <cd:constant type="N"/> - <cd:constant type="m"/> - <cd:constant type="r"/> - <cd:constant type="R"/> - <cd:constant type="KR"/> - <cd:constant type="cd:number"/> - <cd:constant type="continue"/> - <cd:constant type="standard" default="yes"/> - <cd:constant type="broad"/> - <cd:constant type="serried"/> - <cd:constant type="packed"/> - <cd:constant type="stopper"/> - <cd:constant type="joinedup"/> - <cd:constant type="atmargin"/> - <cd:constant type="inmargin"/> - <cd:constant type="intro"/> - <cd:constant type="columns"/> - <cd:constant type="text"/> - <cd:constant type="paragraph"/> - <cd:constant type="repeat"/> - </cd:keywords> - <cd:assignments optional="yes" list="yes"> - <cd:inherit name="setupitemize"/> - </cd:assignments> - </cd:arguments> -</cd:command> - -<cd:command name="framedtext" type="environment" generated="yes"> - <cd:sequence> - <cd:variable value="framedtext"/> - </cd:sequence> - <cd:arguments> - <cd:keywords optional="yes"> - <cd:constant type="left"/> - <cd:constant type="right"/> - <cd:constant type="middle"/> - <cd:constant type="none"/> - </cd:keywords> - <cd:assignments optional="yes" list="yes"> - <cd:inherit name="setupframedtexts"/> - </cd:assignments> - <!-- new --> - <cd:content/> - <cd:content/> - </cd:arguments> -</cd:command> - -<cd:command name="tabulate" type="environment" generated="yes"> - <cd:sequence> - <cd:variable value="tabulate"/> - </cd:sequence> - <cd:arguments> - <cd:keywords optional="yes"> - <cd:constant type="cd:text"/> - </cd:keywords> - <!-- change! --> - <cd:keywords> - <cd:constant type="cd:text"/> - </cd:keywords> - </cd:arguments> -</cd:command> - -<cd:command name="setupcolors" file="colo-ini.tex"> - <cd:sequence> - <cd:string value="setupcolors"/> - </cd:sequence> - <cd:arguments> - <cd:assignments list="yes"> - <cd:parameter name="state"> - <cd:constant type="start"/> - <!-- change! --> - <cd:constant type="stop" default="yes"/> - <cd:constant type="global"/> - <cd:constant type="local"/> - </cd:parameter> - <cd:parameter name="conversion"> - <cd:constant type="yes"/> - <cd:constant type="no"/> - <cd:constant type="always"/> - </cd:parameter> - <cd:parameter name="reduction"> - <cd:constant type="yes"/> - <cd:constant type="no"/> - </cd:parameter> - <cd:parameter name="rgb"> - <cd:constant type="yes"/> - <cd:constant type="no"/> - </cd:parameter> - <cd:parameter name="cmyk"> - <cd:constant type="yes"/> - <cd:constant type="no"/> - </cd:parameter> - <cd:parameter name="mpcmyk"> - <cd:constant type="yes"/> - <cd:constant type="no"/> - </cd:parameter> - <cd:parameter name="mpspot"> - <cd:constant type="yes"/> - <cd:constant type="no"/> - </cd:parameter> - <cd:parameter name="textcolor"> - <cd:constant type="cd:name"/> - </cd:parameter> - <cd:parameter name="split"> - <cd:constant type="c"/> - <cd:constant type="m"/> - <cd:constant type="y"/> - <cd:constant type="k"/> - <cd:constant type="p"/> - <cd:constant type="s"/> - <cd:constant type="no"/> - <cd:constant type="cd:name"/> - </cd:parameter> - <cd:parameter name="criterium"> - <cd:constant type="all"/> - <cd:constant type="none"/> - </cd:parameter> - </cd:assignments> - </cd:arguments> -</cd:command> - -<cd:command name="setupinteraction" file="core-nav.tex"> - <cd:sequence> - <cd:string value="setupinteraction"/> - </cd:sequence> - <cd:arguments> - <cd:assignments interactive="exclusive" list="yes"> - <cd:parameter name="state"> - <cd:constant type="start"/> - <!-- change! --> - <cd:constant type="stop" default="yes"/> - </cd:parameter> - <cd:parameter name="menu"> - <cd:constant type="on"/> - <cd:constant type="off"/> - </cd:parameter> - <cd:parameter name="page"> - <cd:constant type="yes"/> - <cd:constant type="no"/> - </cd:parameter> - <cd:parameter name="click"> - <cd:constant type="yes"/> - <cd:constant type="no"/> - </cd:parameter> - <cd:parameter name="split"> - <cd:constant type="yes"/> - <cd:constant type="no"/> - </cd:parameter> - <cd:parameter name="display"> - <cd:constant type="new"/> - </cd:parameter> - <cd:parameter name="openaction"> - <cd:constant type="cd:reference"/> - </cd:parameter> - <cd:parameter name="closeaction"> - <cd:constant type="cd:reference"/> - </cd:parameter> - <cd:parameter name="openpageaction"> - <cd:constant type="cd:reference"/> - </cd:parameter> - <cd:parameter name="closepageaction"> - <cd:constant type="cd:reference"/> - </cd:parameter> - <cd:parameter name="calculate"> - <cd:constant type="cd:name"/> - </cd:parameter> - <cd:parameter name="strut"> - <cd:constant type="yes"/> - <cd:constant type="no"/> - </cd:parameter> - <cd:parameter name="width"> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="height"> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="depth"> - <cd:constant type="cd:dimension"/> - </cd:parameter> - <cd:parameter name="style"> - <cd:resolve name="style"/> - </cd:parameter> - <cd:parameter name="color"> - <cd:constant type="cd:name"/> - </cd:parameter> - <cd:parameter name="contrastcolor"> - <cd:constant type="cd:name"/> - </cd:parameter> - <cd:parameter name="symbolset"> - <cd:constant type="cd:name"/> - </cd:parameter> - <cd:parameter name="title"> - <cd:constant type="cd:text"/> - </cd:parameter> - <cd:parameter name="subtitle"> - <cd:constant type="cd:text"/> - </cd:parameter> - <cd:parameter name="author"> - <cd:constant type="cd:text"/> - </cd:parameter> - <cd:parameter name="date"> - <cd:constant type="cd:text"/> - </cd:parameter> - <cd:parameter name="keyword"> - <cd:constant type="cd:text"/> - </cd:parameter> - <!-- maybe this will move elsewhere --> - <cd:parameter name="fieldlayer"> - <cd:constant type="auto"/> - <cd:constant type="cd:name"/> - </cd:parameter> - </cd:assignments> - </cd:arguments> -</cd:command> - -<cd:define name="regime"> - <cd:constant type="Latin1"/> - <cd:constant type="Latin2"/> - <cd:constant type="Latin7"/> - <cd:constant type="Latin15"/> - <cd:constant type="iso-8859-1"/> - <cd:constant type="iso-8859-2"/> - <cd:constant type="iso-8859-7"/> - <cd:constant type="iso-8859-15"/> - <cd:constant type="cp1250"/> - <cd:constant type="cp1251"/> - <cd:constant type="cp1252"/> - <cd:constant type="cp1253"/> - <cd:constant type="cp1254"/> - <cd:constant type="cp1257"/> - <cd:constant type="viscii"/> - <cd:constant type="cyr"/> - <cd:constant type="grk"/> - <cd:constant type="mac"/> - <cd:constant type="utf8"/> - <cd:constant type="unicode"/> -</cd:define> - -<cd:command name="enableregime" file="regi-ini.tex"> - <cd:sequence> - <cd:string value="enableregime"/> - </cd:sequence> - <cd:arguments> - <cd:keywords> - <cd:resolve name="regime"/> - </cd:keywords> - </cd:arguments> -</cd:command> - -</cd:interface> - diff --git a/doc/context/sources/general/manuals/start/en/hasseltbook.bib b/doc/context/sources/general/manuals/start/en/hasseltbook.bib deleted file mode 100644 index ea7bbfd31..000000000 --- a/doc/context/sources/general/manuals/start/en/hasseltbook.bib +++ /dev/null @@ -1,7 +0,0 @@ -@INBOOK{book01, - author = "Jonker, J.", - title = "From Hasselt to America", - publisher = "Bookplan Publishers", - year = "2012", - chapter = "1.2", -} diff --git a/doc/context/sources/general/manuals/start/en/hasseltbook.pdf b/doc/context/sources/general/manuals/start/en/hasseltbook.pdf Binary files differdeleted file mode 100644 index 03c894ff4..000000000 --- a/doc/context/sources/general/manuals/start/en/hasseltbook.pdf +++ /dev/null diff --git a/doc/context/sources/general/manuals/start/en/hasseltbook.tex b/doc/context/sources/general/manuals/start/en/hasseltbook.tex deleted file mode 100644 index 9c0d319f5..000000000 --- a/doc/context/sources/general/manuals/start/en/hasseltbook.tex +++ /dev/null @@ -1,30 +0,0 @@ - -\starttext - -\startstandardmakeup - \midaligned{\tfd Festivities in Hasselt} -\stopstandardmakeup - -\completecontent - -\startchapter[title=Introduction] - An introduction. -\stopchapter - -\startchapter[title=Kingsday] - Something about the Kingsday in Hasselt.\index{Kingsday} -\stopchapter - -\startchapter[title=Hassailt] - Something about Hassailt.\index{Hassailt} -\stopchapter - -\startchapter[title=Euifeest,reference=euifeest] - Something about the Euifeest.\index{Euifeest} -\stopchapter - -\completeindex - -\stoptext - -\stoptext diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-alignments.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-alignments.tex deleted file mode 100644 index 327bc8a6b..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-alignments.tex +++ /dev/null @@ -1,73 +0,0 @@ -\startcomponent ma-cb-en-alignments - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Alignment] - -\index{alignment} - -\Command{\tex{setupalign}} -\Command{\tex{setup tolerance}} -\Command{\tex{rightaligned}} -\Command{\tex{leftlines}} -\Command{\tex{midaligned}} - -Horizontal and vertical alignment can be set up with: - -\shortsetup{setupalign} - -Single lines can be aligned with: - -\starttyping -\rightaligned{} -\leftaligned{} -\midaligned{} -\stoptyping - -An example can illustrate the alignment behavior: - -\startbuffer -\leftaligned {Hasselt was built on a sandhill.} -\midaligned {Hasselt was built on the crossing of two rivers.} -\rightaligned {Hasselt's name stems from hazelwood.} -\stopbuffer - -\typebuffer - -After processing this would look like: - -\getbuffer - -Alignment of a paragraph is done with: - -\shortsetup{startalignment} - -\startbuffer -\startalignment[flushright,nothyphenated] - For Hasselt the 15th and 16th century were relatively unstable times. - There were uprises and disputes with neighbouring cities. To be - able to defend themselves the city council ordered a number of - arquebuses (very primitive firearms). Fourteen of these have survived - and now form one of the greatest arquebus collections in Europe. -\stopalignment -\stopbuffer - -\typebuffer - -This will become a rightaligned paragraph without hyphenations: - -\getbuffer - -In case of alignment you can specify a tolerance and the direction (vertical or -horizontal). Normally the tolerance is \type{verystrict}. In colums you could -specify \type{verytolerant}. The tolerance in this manual is: - -\starttyping -\setuptolerance[horizontal,verystrict] -\stoptyping - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-backpage.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-backpage.tex deleted file mode 100644 index bb7ae0250..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-backpage.tex +++ /dev/null @@ -1,40 +0,0 @@ -\startcomponent ma-cb-en-backpage - -\enablemode[**en-us] - -\project ma-cb - -This manual describes some features of \CONTEXT, a document -production system, based on \TEX. - -\vfil - -\CONTEXT\ offers the user a flexible and high quality -typesetting environment. No in||depth knowledge of \TEX\ -is needed. The parameter driven character of \CONTEXT\ -enables users to define their own layout rather easy. - -\vfil - -\CONTEXT\ is developed and tested in a production -environment and is used for typesetting simple books as -well as complex documents, paper and/or screen based. This -introduction manual describes the functionality needed for -everyday publications, like manuals and educational -materials. - -\vfil - -This manual is also available as an interactive document, be -it in a bit different layout. The macro package \CONTEXT, -some more advanced examples and additional information can -be found at www.pragma-ade.com. - -\vfil - -PRAGMA ADE \break -Ridderstraat 27 \break -8061 GH Hasselt NL \break -www.pragma-ade.com - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-bibliography.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-bibliography.tex deleted file mode 100644 index 1b8451934..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-bibliography.tex +++ /dev/null @@ -1,63 +0,0 @@ -\startcomponent ma-cb-en-bibliography - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Bibliography] - -\index{bibliography} -\index{\BIBTEX} - -\Command{\tex{setuppublications}} -\Command{\tex{placepublications}} -\Command{\tex{setupbibtex}} - -\CONTEXT\ support the \BIBTEX\ way of managing article and book references. The data -is stored in a \type{.bib} file. A data entry in a \BIBTEX\ data file could be: - -\startbuffer -@INBOOK{book01, - author = "Jonker, J.", - title = "From Hasselt to America", - publisher = "Bookplan Publishers", - year = "2012", - chapter = "1.2", -} -\stopbuffer - -\typebuffer - -After loading the database with \type{\setupbibtex[database=hasseltbook]} the following -command is available: - -\setupbibtex[database={hasseltbook},sort=author] -\setuppublications[refcommand=authoryear] - -\startbuffer -Please refer to \cite[book01] for more information on famous people -that were born in Hasselt. -\stopbuffer - -\typebuffer - -Which would produce: - -\getbuffer - -In an appendix you can place the complete book list with: - -\startbuffer -\placepublications[criterium=text] -\stopbuffer - -\typebuffer - -At this moment (2013 -- 2014) the bibliography mechanism is being completely -overhauled, so please visit the \goto {\CONTEXTWIKI} [ url -(http://wiki.contextgarden.net) ] and the \goto {Pragma ADE website} [ url -(http://www.pragma-ade.com/overview.htm) ] regularly for information. - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-chemical.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-chemical.tex deleted file mode 100644 index 3919ccb01..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-chemical.tex +++ /dev/null @@ -1,77 +0,0 @@ -\startcomponent ma-cb-en-chemical - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Chemical stuf,reference=chemical] - -\index{chemistry} -\index{chemical equitation} - -\Command{\tex{}chemical} - -Chemical structures may look very impressive. - -\startbuffer -\startchemical[scale=small,width=fit,top=3000,bottom=3000] - \chemical[SIX,SB2356,DB14,Z2346,SR3,RZ3,SR6,-RZ6,+RZ6] - [C,N,C,C,H,H] - \chemical[PB:Z1,ONE,Z0,MOV8,Z0,SB24,DB7,Z27,PE][C,C,CH_3,O] - \chemical[PB:Z5,ONE,Z0,MOV6,Z0,SB24,DB7,Z47,PE][C,C,H_3C,O] - \chemical[SR24,RZ24][CH_3,H_3C] - \bottext{Compound A} -\stopchemical -\stopbuffer - -\placeformula[-] -\startformula - \getbuffer -\stopformula - -\CONTEXT\ relies on \METAPOST\ to draw these kind of chemical structures. -Although these chemical structures are defined with only two or three commands, -it takes some practice to get the right results. This is how the input looks: - -\typebuffer - -Chemical reactions can be typeset within a paragraph or as a display formula with -the \type{\inlinechemical} and \type{\startchemicalformula} commands: - -\startbuffer -\definefloat - [chemicalformula] - [chemicalformulas] - -One of the steps in the Hasselt canal water treatment is the removal of -phosphate by means of a chemical reaction with iron: - -\placechemicalformula[none][]{} - {\startchemicalformula - \chemical{Fe(OH)_3}{iron hydroxide} - \chemical{PLUS} - \chemical{H_3PO_4}{phosphoric acid} - \chemical{GIVES}{\hphantom{whatever}} - \chemical{FePO_4}{iron phosphate} - \chemical{PLUS} - \chemical{H_2O}{water} - \stopchemicalformula} - -The \inlinechemical{FePO_4} is a solid and precipitates in water. It -is filtered and re-used as a furtilizer resource. -\stopbuffer - -\getbuffer - -This is defined by: - -\typebuffer - -The use of the chemical commands is described in the \goto{PPCHTeX Manual}[ url(manual:chemic) ] -and the example manual \goto{Chemical Formulas in \CONTEXT} [ url(manual:chemic-ex) ]. - -\stopchapter - -\stopcomponent - - diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-citations.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-citations.tex deleted file mode 100644 index b0e416ee0..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-citations.tex +++ /dev/null @@ -1,64 +0,0 @@ -\startcomponent ma-cb-en-citations - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Citations and quotations, reference=quotations] - -\index{citation} -\index{quote} - -\Command{\tex{quote}} - -The consistent use of quote and quotation marks in the running text is invoked by -the use of \type{\quote} or \type{\quotation}. For longer text fragments you can use: - -\shortsetup{startquotation} - -\startbuffer -In the book \quote{Hasselt, beelden van een middeleeuwse stad} it says: -\startquotation -Het stadhuis wordt voor het eerst vermeld in 1431. Oorspronkelijk -is het een houten huis, dat wordt afgebroken om plaats te maken voor -een nieuw stadhuis van steen. Dit wordt echter halverwege de 16e eeuw -ook afgebroken en vervangen door een nog groter pand. Het nieuwe -stadhuis wordt weer in dezelfde fraaie stijl opgebouwd. De bestuurders -laten daarmee zien dat het is gebouwd in een tijd van grote welvaart. -\stopquotation -\stopbuffer - -\typebuffer - -In the example below you can see that quotation is language sensitive: - -\startbuffer -\nl Hij zei tegen me: \quotation{In Hasselt noemen ze dat - \quote{noaberschop} of zoiets.} - -\en He told me: \quotation{In Hasselt they call this - \quote{noaberschop} or something like that.} - -\de Er sagte zu mir: \quotation{In Hasselt nennt man das - \quote{noaberschop} oder so etwas.} - -\fr Il a dit: \quotation{À Hasselt on c'appelle \quote{noaberschop} - ou quelque chose comme ça.} -\stopbuffer - -\typebuffer - -Note the automatic change of the quotation marks in case of a quote within a -quote. - -\startpacked -\getbuffer -\stoppacked - -You can alter the default settings with: - -\shortsetup{setuplanguage} - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-color.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-color.tex deleted file mode 100644 index 1cfeadf9a..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-color.tex +++ /dev/null @@ -1,71 +0,0 @@ -\startcomponent ma-cb-en-color - -\project ma-cb - -\startchapter[title=Color] - -\index{color} - -\Command{\tex{setupcolors}} -\Command{\tex{color}} -\Command{\tex{definecolor}} - -Text, frames or backgrounds can be set in color with: - -\shortsetup{color} - -Default the basic colors are available. Basic colors are for example -red, white and blue. A color like orange can be defined with: - -\shortsetup{definecolor} - -You can define orange like this: - -\startbuffer[a] -\definecolor [darkorange] [c=0.0,m=0.60,y=1.00,k=0.0] -\definecolor [middleorange] [.5(darkorange)] -\stopbuffer - -\typebuffer[a] - -\getbuffer[a] - -It is of good practice to check (combinations of) colors on a larger -surface: - -\startbuffer -\blackrule[width=\hsize,height=1cm,color=red,after=] -\blackrule[width=\hsize,height=1cm,color=white,after=] -\blackrule[width=\hsize,height=1cm,color=blue,after=] -\blackrule[width=\hsize,height=1cm,color=darkorange] -\stopbuffer - -\typebuffer - -so you can see if they fit together: - -\blank - -\getbuffer - -A color can be invoked in a number of ways: - -\startbuffer -\startcolor[red] -On {\darkorange Kingsday} {\blue Hasselt} turns into a -\color[darkorange]{colorfull} city. -\stopcolor -\stopbuffer - -\typebuffer - -\getbuffer - -More information on the use of color models, transparency and palets can be found -on the \goto {\CONTEXTWIKI} [ url (http://wiki.contextgarden.net/Color) ] -and in the -\goto {\em Color Separation} [ url (manual:color) ] manual. - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-columns.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-columns.tex deleted file mode 100644 index 06bb30259..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-columns.tex +++ /dev/null @@ -1,154 +0,0 @@ -\startcomponent ma-cb-en-columns - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Columns] - -\index{columns} - -\Command{\tex{startcolums}} -\Command{\tex{setupcolumns}} -\Command{\tex{column}} - -Simple sections of text can be typeset in columns. If you preceed a text fragment -by \type{\startcolumns} and close the text fragment by \type{\stopcolumns} -everything in between will be set in columns. - -\shortsetup{startcolumns} - -Let's give an example: - -\startbuffer -\startcolumns[n=3,tolerance=verytolerant] - Hasselt is an old Hanseatic City, situated 12~km north of Zwolle - at the river Zwartewater. - - ... - - Furthermore some events of special interest should be - mentioned. Every year at the end of August Hasselt celebrates - the \quote{Eui Festival} (hay festival). -\stopcolumns -\stopbuffer - -\typebuffer - -\startbuffer -\hyphenation{Ste-pha-nus} -\startcolumns[n=3,tolerance=verytolerant] -Hasselt is an old Hanseatic City, situated 12~km north of Zwolle at -the river Zwartewater. - -The city has a long history since obtaining the city charter around -1252. Part and parcel of this history can be traced back to a large -number of monuments to be admired in the city center. - -There you will find the St. Stephanus church, a late gothic church -dating back to 1479 with a magnificent organ. The former Municipal -Building is situated on The Market Place. Constituted between 1500 -and 1550 it houses a large collection of weapons, amongst which one -of the largest collection of black powder guns (haakhussen) in the -whole world should be mentioned. - -Furthermore there is a corn windmill \quote{The Swallow}, dating back to -1748 as well as the \quote{Stenendijk}, a unique embankment and the last -shell limekiln in Europe still in full operation. - -The city center with the townmoat adorned by lime-trees, the Van -Stolkspark and the hustle and bustle at the docks are ideally suited -for a stroll. - -The area around Hasselt is also worth mentioning. In wintertime -polder Mastenbroek harbours large numbers of geese. In summertime the -hamlets Gen\-ne, Streukel and Celle\-mui\-den form, together with the very -rare lapwing flowers (Lat. Fritillaria meleagris) found on the banks -of the river Zwatewater, the ideal surroundings for walking or -cycling trips. - -Hasselt also is a very important center for watersports. The lakes of -northwest Overijssel, the river IJssel, the Overijsselse Vecht and -the Randmeren are within easy reach from the yacht harbour `De -Molenwaard'. Sailing, fishing, swimming and ca\-noe\-ing can be fully -enjoyed in Hasselt. - -Furthermore some events of special interest should be -mentioned. Every year at the end of August Hasselt celebrates the -\quote{Eui Festival} (hay festival). -\stopcolumns -\stopbuffer - -The result will be a three column text. - -\start -\switchtobodyfont[9pt] -\getbuffer -\stop - -If possible a new column can be enforced with \type{\column}. You can set up -columns with: - -\shortsetup{setupcolumns} - -In most cases you will obtain a better result by type setting the text on -\quote{grid}. This is done by typing \type{grid=yes} in the command \type -{\setuplayout}. - -If you want to use columns within a framed text \type{\start ... \stopframedtext} -there is the simple column mechanism. - -\startbuffer -\startframedtext[background=color,backgroundcolor=gray] -\startsimplecolumns - In Hasselt's local newspaper there was a column on the - local customs during New Years Eve. - ... - \midaligned{\inlinechemical{CaC_2,+,2H_2O,GIVES,C_2H_2(g),+,Ca(OH)_2}} - ... - Nowadays the heavy metal lid of the milk can is replaced by - a football. This does not reduce the sound but it is much - saver. -\stopsimplecolumns -\stopbuffer - -\typebuffer - -\startbuffer -\startframedtext[background=color,backgroundcolor=gray,width=\textwidth] -\startsimplecolumns - In Hasselt's local newspaper there was a column on the - local customs during new years Eve. Next to the more - general custom of eating Dutch doughnuts (oliebollen) - and lighting fireworks there is the carbide shooting. - What you need is an oldfashioned metal milk can, carbide, - a little water and a lighter. - - The carbide and water is mixed in the closed milk can and - will produce \inlinechemical{C_2H_2} gas (acetylene), via: - - \midaligned{\inlinechemical{CaC_2,+,2H_2O,GIVES,C_2H_2 (g),+,Ca(OH)_2}} - - The volatile acetylene gas in the milk can is ignited via a small - opening in the can. The result is a very loud detonation and the lid - flies off. - - It will not surprise you that Hasselts youth has a designated - shooting ground for carbide shooting. Nowadays the heavy - metal lid of the milk can is replaced by a football. This - does not reduce the sound but it is much saver! -\stopsimplecolumns -\stopframedtext -\stopbuffer - -This will result in: - -\getbuffer - -There is an advanced column mechanism available that is described in the -\goto {\em Columns} [ url (manual:columns) -] manual. - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-commandlist.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-commandlist.tex deleted file mode 100644 index d14d9d202..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-commandlist.tex +++ /dev/null @@ -1,16 +0,0 @@ -\startcomponent ma-cb-en-commandlist - -\project ma-cb - -Here we summarize the commands we introduced in the previous chapters. This is -just a selection of the whole repertoire of \CONTEXT\ commands. Those who want to -see them all can take a look at the more extensive manual or the {\em Quick -Reference Manuals} that give a complete overview of all \CONTEXT||commands. - -Arguments that are typeset {\sl slanted} are optional and can be omited. The -number points to the page where the command is explained. Black arrows indicate -that the command is only of use in interactive documents and gray arrows tell us -that additional functionality is provided in interactive mode. Keep in mind that -we only show the commands we described in this manual, there are many more. - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-commands.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-commands.tex deleted file mode 100644 index df0d2a293..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-commands.tex +++ /dev/null @@ -1,94 +0,0 @@ -\startcomponent ma-cb-en-commands - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Defining commands / macros] - -\CONTEXT\ is a set of macros based on \TEX. \TEX\ is a programming language as -well as a typographical system. This means that you can do the programming -yourself if you need that kind of flexability. - -You can define a new command with: - -\shortsetup{define} - -The next example will explain its meaning. - -You may have a well illustrated document and you are tired of typing: - -\startbuffer -\placefigure - [here,force] - [fig:logical name] - {Caption.} - {\externalfigure[filename][width=5cm]} -\stopbuffer - -\typebuffer - -You could define your own command with a few variables like: - -\startitemize[packed] -\item logical name -\item caption -\item file name -\stopitemize - -Your command definition and call could look something like -this: - -\startbuffer -\define[3]\myputfigure - {\placefigure - [here,force][fig:#1] - {#2}{\externalfigure[#3][width=5cm]}} - -\myputfigure{lion}{The Dutch lion is a sentry.}{ma-cb-13} -\stopbuffer - -\typebuffer - -From then on the \type{\myputfigure} is available. -Between brackets \type{[3]} indicates that you want to use three variables -\type{#1}, \type{#2} and \type{#3}. In the command call \type{\myputfigure} you -have to place these variables between curly braces. The result is shown in -\in{figure}[fig:lion]. - -\getbuffer - -Very sophisticated commands can be programmed, but this is left to your own -inventiveness. - -In addition to defining commands you can also define \type{\start...\stop} -command pairs. - -\shortsetup{definestartstop} - -For example: - -\startbuffer -\definestartstop - [attention] - [before=\blank\startmarginrule, - after=\stopmarginrule\blank] - -\startattention -{\em Hasselter Juffers} are sweet cookies but the name is no -coincidence. On July 21 in 1233 the {\em Zwartewaterklooster} -(Blackwater Monastery) was founded. The monastery was meant -for unmarried girls and women belonging to the nobility of -Hasselt. These girls and women were called {\em juffers}. -\stopattention -\stopbuffer - -\typebuffer - -This will result in: - -\getbuffer - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-composedcharacters.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-composedcharacters.tex deleted file mode 100644 index 59c176004..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-composedcharacters.tex +++ /dev/null @@ -1,55 +0,0 @@ -\startcomponent ma-cb-en-composedcharacters - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Composite characters] - -\index{accents} -\index{foreign characters} - -In \in{chapter}[special chars] you have already seen that you have to type more -than one token to obtain special characters like \# \$ \% \& \_ $\{$ and $\}$. - -Characters with accents for example can be composed or coded with specific -\CONTEXT\ commands in order to display them on paper. In case you have a text -editor that can display utf8 you can type the composed characters directly. - -It is not within the scope of this manual to go into accented characters in math -mode. See the {\TEX Book} by Donald E. Knuth on that subject. - -\in{Table}[tab:composed-characters] shows a few examples and the way you can code -composed characters. - -\placetable - [here,force] - [tab:composed-characters] - {Composed characters.} - {\starttable[|c|l|l|c|] - \HL - \NC \bf Character \NC \bf Composed \NC \bf \CONTEXT\ command \NC \bf UTF8 \NC\SR - \HL - \NC ü \NC \type{\"u} \NC \type{\uacute} \NC \type{ü} \NC\FR - \NC é \NC \type{\'e} \NC \type{\egrave} \NC \type{é} \NC\MR - \NC â \NC \type{\^a} \NC \type{\acircumflex} \NC \type{â} \NC\MR - \NC ä \NC \type{\"a} \NC \type{\aacute} \NC \type{ä} \NC\MR - \NC à \NC \type{\`a} \NC \type{\agrave} \NC \type{à} \NC\MR - \NC å \NC \type{\aa} \NC \type{\aring} \NC \type{å} \NC\MR - \NC ç \NC \type{\c{c}} \NC \type{\ccedilla} \NC \type{ç} \NC\MR - \NC ï \NC \type{\"{\i}} \NC \type{\idiaeresis} \NC \type{ï} \NC\MR - \NC î \NC \type{\^{\i}} \NC \type{\icircumflex} \NC \type{î} \NC\MR - \NC Ä \NC \type{\"A} \NC \type{\Adiaeresis} \NC \type{Ä} \NC\MR - \NC Å \NC \type{\AA} \NC \type{\Aring} \NC \type{Å} \NC\MR - \NC É \NC \type{\'E} \NC \type{\Egrave} \NC \type{É} \NC\MR - \NC æ \NC \type{\ae} \NC \type{\aeligature} \NC \type{æ} \NC\MR - \NC Æ \NC \type{\AE} \NC \type{\AEligature} \NC \type{Æ} \NC\MR - \NC ÿ \NC \type{\"y} \NC \type{\ydiaeresis} \NC \type{ÿ} \NC\LR - \HL - \stoptable} - -The character you want to display should be in the font. - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-descriptions.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-descriptions.tex deleted file mode 100644 index 01c8fb608..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-descriptions.tex +++ /dev/null @@ -1,94 +0,0 @@ -\startcomponent ma-cb-en-descriptions - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Definitions] - -\index{definition} - -\Command{\tex{definedescription}} -\Command{\tex{setupdescriptions}} - -If you want to display notions, concepts and ideas in a consistent manner you can -use: - -\shortsetup{definedescription} - -For example: - -\startbuffer -\definedescription - [concept] - [alternative=serried,headstyle=bold,width=broad] - -\concept{Hasselter juffer} A sort of biscuit made of puff pastry and -covered with sugar. It tastes very sweet. \par -\stopbuffer - -\typebuffer - -It would look like this: - -\getbuffer - -But you can also choose other layouts: - -\startbuffer -\definedescription - [concept] - [alternative=top, - inbetween={\blank[none]}, - headstyle=bold, - width=broad, - style=slanted] - -\concept{Hasselter bitter} A very strong alcoholic drink (up to 40\%) -mixed with herbs to give it a special taste. It is sold in a stone -flask and it should be served {\em ijskoud} (as cold as ice). \par - -\definedescription - [concept] - [alternative=inmargin,headstyle=bold,width=broad] - -\concept{Euifeest} A harvest home to celebrate the end of a period of -hard work. The festivities take place in the last week of August. \par -\stopbuffer - -\start -\getbuffer -\stop - -If you want to avoid the \type{\par} or when you have more than one paragraph in -the definition you can use the \type{\start...\stop} construct. - -\startbuffer -\definedescription - [concept] - [alternative=right, - headstyle=bold, - width=broad] - -\startconcept{Euifeest} A harvest home to celebrate the end of a -period of hard work. -This event takes place at the end of August and lasts one week. The -city is completely illuminated and the streets are decorated. This -feast week ends with a {\em Braderie}. -\stopconcept -\stopbuffer - -\typebuffer - -This would become: - -\getbuffer - -Layout is set up within the second bracket pair of -\type{\definedescription[][]}. But you can also use: - -\shortsetup{setupdescriptions} - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-document.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-document.tex deleted file mode 100644 index 94fdb7ea2..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-document.tex +++ /dev/null @@ -1,117 +0,0 @@ -\startcomponent ma-cb-en-document - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=How to create a textbook] - -\index{input file} - -Let's assume you want to create a simple textbook. It has some structure and -contains a title page, a few chapters, sections and sub sections. Of course there -is a table of contents. - -\CONTEXT\ can create such a document automatically if you offer the right input -by means of a file. So first you have to create an input file. An input file -consists of a name and an extension. You can choose any name you want but the -extension has to be \type{.tex}. If you create a file with the name -\type{mybook.tex} you will find no difficulties in running \CONTEXT. - -An \pagereference[inputfile] input file could look like this: - -\startbuffer -\starttext - -\startstandardmakeup - \midaligned{From Hasselt to America} - \midaligned{by} - \midaligned{J. Jonker and C. van Marle} -\stopstandardmakeup - -\placecombinedlist[content] - -\chapter{Introduction} - -... ties between Hasselt and America ... - -\chapter[rensselaer]{The Rensselaer family} - -\section{The first born} - -... was born in the year ... - -\section{The early years} - -... in those days Hasselt was ... - -\section{Living and workin in America} - -... life in America was ... - -\chapter[lansing]{The Lansing family} - -... the Lansing family was also ... - -\chapter[cuyler]{The Cuyler family} - -... much later Tydeman Cuyler ... - -\stoptext -\stopbuffer - -{\switchtobodyfont[9pt]\typebuffer} - -\CONTEXT\ expects a plain \ASCII\ input file. Of course you can use any -text|-|editor, as long as you save the file as standard \ASCII\ (also called txt -file) with the extension \type{.tex}. Note that spaces in the filename are -not allowed. - -The input file contains the text you want to typeset and the \CONTEXT\ commands. -A \CONTEXT\ command begins with a backslash~\tex{}. With the command -\type{\starttext} you indicate the beginning of your text. - -A command is sometimes followed by an argument which is enclosed by curly braces -\type{{}}. The command \type{\chapter[cuyler]{The Cuyler family}} that you see in -the example will have its effect on {\em The Cuyler family}. Its actions will -have effect on the design, typography and structure. The actions may be: - -\startitemize[n,packed] -\item start a new page -\item increase chapter number by one -\item place chapter number in front of chapter title -\item reserve some vertical space -\item use a big font -\item put chapter title (and page number) in the table of contents -\stopitemize - -Other actions concerning running heads, number resetting and interactivity are -disregarded at this moment. - -Sometimes you will see two brackets (\type{[]}) directly after the command. These -brackets are used to feed specific options to the command. Further on in this -manual you will get more information on these brackets. - -The commands in your input file can have the following appearance: - -\starttabulate[|||] -\HL -\NC \bf Appearance of command \NC \bf Example \NC\NR -\HL -\NC \type{\startcommand ... \stopcommand} \NC \type{\starttext ... \stoptext} \NC\NR -\NC \type{\startcommand[] ... \stopcommand} \NC \type{\startitemize[packed] ... \stopitemize} \NC\NR -\NC \type{\command} \NC \type{\item} \NC\NR -\NC \type{\command[]} \NC \type{\in[cuyler]} \NC\NR -\NC \type{\command{}[]} \NC \type{\at{page}[cuyler]} \NC\NR -\NC \type{\command{}} \NC \type{\index{America}} \NC\NR -\NC \type{\command[]{}} \NC \type{\chapter[cuyler]{The Cuyler family}} \NC\NR -\HL -\stoptabulate - -If you have \CONTEXT\ process the above example file, you would obtain a very -simple document with a title page, a few numbered chapters and section headers -and a table of content (because of \type{\placecombinedlist[content]}). - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-enumerations.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-enumerations.tex deleted file mode 100644 index 6f2fa5f22..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-enumerations.tex +++ /dev/null @@ -1,106 +0,0 @@ -\startcomponent ma-cb-en-enumerations - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Numbered definitions] - -\index{numbered definition} - -\Command{\tex{defineenumeration}} -\Command{\tex{setupenumerations}} - -With \type{\defineenumeration} you can number text elements like remarks or -questions. If you want to make numbered remarks in your document you use: - -\shortsetup{defineenumeration} - -For example: - -\startbuffer[a] -\defineenumeration - [remark] - [alternative=top, - text=Remark, - inbetween={\blank[none]}, - after=\blank] -\stopbuffer - -\typebuffer[a] - -Now the new commands \type{\remark}, \type{\subremark}, \type{\resetremark} and -\type{\nextremark} are available and you can type remarks like this: - -\startbuffer[b] -\remark In the early medieval times Hasselt was a place of -pilgrimage. The {\em Heilige Stede} (Holy Place) was torn down during -the Reformation. In 1930, after 300 years, the {\em Heilige Stede} was -reopened. - -\subremark Nowadays the {\em Heilige Stede} is closed again but once -a year an open air service is held on the same spot. \par -\stopbuffer - -\typebuffer[b] - -This becomes: - -\start -\getbuffer[a]\getbuffer[b] -\stop - -You can reset numbering with \type{\resetremark} or \type{\resetsubremark} or -increment a number with \type{\nextremark} or \type{\nextsubremark}. This is -normally done automatically per chapter, section or whatever. - -You can set up the layout of \type{\defineenumeration} with: - -\shortsetup{setupenumerations} - -You can also vary the layout of \type{remark} and \type{subremark} in the example -above with: - -\starttyping -\setupenumeration[remark][headstyle=bold] -\setupenumeration[subremark][headstyle=slanted] -\stoptyping - -If a number becomes obsolete you can type: - -\starttyping -\remark[-] -\stoptyping - -If the \type{remark} contains several paragraphs you should use the command -pair \type{\start ... \stopremark} that becomes available after defining -\type{remark} with \type{\defineenumeration[remark]}. - -\startbuffer[c] -\setupenumeration - [remark] - [alternative=hanging, - width=broad] - -\startremark -In the early medieval times Hasselt was a place of pilgrimage. The -{\em Heilige Stede} (Holy Place) was torn down during the -Reformation. - -After 300 years in 1930 the {\em Heilige Stede} was reopened. -Nowadays the {\em Heilige Stede} is closed again but once a year an -open air service is held on the same spot. -\stopremark -\stopbuffer - -\typebuffer[c] - -So the example above would look like this: - -\start -\getbuffer[a]\getbuffer[c] \par -\stop - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-errors.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-errors.tex deleted file mode 100644 index 229cb66bc..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-errors.tex +++ /dev/null @@ -1,79 +0,0 @@ -\startcomponent ma-cb-en-errors - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[reference=trouble,title=Problems during processing] - -\index{errors} -\index{problems} - -If processing is not succesful ---for example because you typed \type{\stptext} -instead of \type{\stoptext}--- \CONTEXT\ produces a \type{ ? } on your screen -and tells you it has just processed an error. It will give you some basic -information on the type of error and the line number where the error becomes -effective. - -At the instant of \type{ ? } you can type: - -\starttabulate[|||] -\NC \type{H} \NC for help information on your error \NC\NR -\NC \type{I} \NC for inserting the correct \CONTEXT\ command \NC\NR -\NC \type{Q} \NC for quiting and entering batch mode \NC\NR -\NC \type{X} \NC for exiting the running mode \NC\NR -\NC \Enter \NC for ignoring the error \NC\NR -\stoptabulate - -Most of the time you will type \Enter\ and processing will continue. Then you can -edit the input file and fix the error. - -Some errors will produce a~\type{ * } on your screen and processing will stop. -This error is due to a fatal error in your input file. You can't ignore this -error and the only option you have is to type \type{\stop} or {\sc Ctrl}~Z. The -program will be halted and you can fix the error in your text editor. - -\startframedtext[width=\hsize] -A well known error is: - -\starttyping -! I can't write on file 'myfile.pdf'. -Please type another filename for output: -\stoptyping - -This error is due to the fact that the file \type{myfile.pdf} is stil open -in \READER. - -\blank - -The best way to proceed is: - -\startitemize[packed] -\item close the file in \READER -\item type \Enter\ at the console -\stopitemize -\stopframedtext - -Sometimes the error messages are very obscure. Finding the location of the error -in an extensive document can then be a tedious job. You could try to isolate -the error: - -\startitemize[packed] -\item open the file in your text editor -\item save a copy of your file (to be on the safe side) -\item isolate the error - \startitemize[n,packed] - \item place a \type{\stoptext} command higher up in your text - \item process the file - \item repeat step 1 and 2 until the file processes correctly - \stopitemize -\item study the content that produces the error -\item fix the error -\item place the \type{\stoptext} command after the corrected error -\item process your file -\item etc. -\stopitemize - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-figures.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-figures.tex deleted file mode 100644 index 90f249359..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-figures.tex +++ /dev/null @@ -1,258 +0,0 @@ -\startcomponent ma-cb-en-figures - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[reference=figures,title=Figures] - -\index{figure} -\seeindex{picture}{figure} -\index{floating blocks} - -\Command{\tex{placefigure}} -\Command{\tex{startfiguretext}} -\Command{\tex{setupfigures}} -\Command{\tex{startcombination}} -\Command{\tex{setupfloats}} -\Command{\tex{setupcaptions}} -\Command{\tex{externalfigure}} - -Images can be placed in your document with the command \type{\externalfigure}. - -\startbuffer -\externalfigure - [cow.pdf] - [width=.1\textwidth, - frame=on, - framecolor=gray, - frameoffset=3pt, - rulethickness=3pt, - framecorner=round] -\stopbuffer - -\typebuffer - -Such an image will be placed on the location where you defined it \space \getbuffer -\space and can have some strange effects on the surrounding white space. By the way, -the cow image is always available for \CONTEXT\ users which is very convenient when -you are testing the figure related commands. - -You can use the command \type{\placefigure} to influence the positioning of -images in your document. - -\startbuffer -\placefigure - [][fig:church] - {Stephanus Church.} - {\externalfigure[ma-cb-24][width=.4\textwidth]} -\stopbuffer - -\typebuffer - -After processing this will come out as \in{figure}[fig:church] at the first -available location. - -\getbuffer - -The command \type{\placefigure} handles numbering and vertical spacing before and -after your figure. Furthermore this command initializes a float mechanism, which -means that \CONTEXT\ looks whether there is enough space for your figure on the -page. If not, the figure will be placed at another location and the text carries -on, while the figure floats in your document until the optimal location is found. -You can influence this mechanism within the first bracket -pair. - -The command \type{\placefigure} is a predefined example of: - -\shortsetup{placefloat} - -A number of basic options is described in \in{table}[tab:placefigure]. - -\placetable - [here] - [tab:placefigure] - {Options in \type{\placefigure}.} -\starttable[|l|l|] -\HL -\NC \bf Option \NC \bf Meaning \NC\SR -\HL -\NC here \NC put figure at this location if possible \NC\FR -\NC force \NC force figure placement here \NC\MR -\NC page \NC put figure on its own page \NC\MR -\NC top \NC put the figure at the top of the page \NC\MR -\NC bottom \NC put the figure at the botom of the page \NC\MR -\NC left \NC place figure at the left margin \NC\MR -\NC right \NC place figure at the right margin \NC\MR -\NC margin \NC place figure in the margin \NC\MR -\NC none \NC set no caption \NC\LR -\HL -\stoptable - -The second bracket pair is used for cross-referencing. You can refer to this -particular figure by typing: - -\starttyping -\in{figure}[fig:church] -\stoptyping - -The first brace pair is used for the caption. You can type any text you want. The -figure labels are set up with \type{\setupcaptions} and the numbering is (re)set -by \type{\setupnumbering} (see \in{paragraph}[floatingblocks]). - -The second brace pair is used for defining the figure and addressing the file -names of external figures. - -In the next example you see how \inframed{Hasselt} is defined within -the last brace pair to show you the function of \type{\placefigure{}{}}. - -\startbuffer -\placefigure - {The boundaries of Hasselt.} - {\framed{\tfd Hasselt}} -\stopbuffer - -\typebuffer - -This will produce: - -\getbuffer - -However, your images are often created using programs like Illustrator and photos -are --- after scanning --- improved in packages like PhotoShop. Then the images -are available as files. \CONTEXT\ supports image file types like \type {JPG}, -\type {PNG} and (pages from) \type {PDF} files as well as \METAPOST\ output -(\type {MPS} files). Users normally can trust \CONTEXT\ to find the best possible -file type. - -In \in{figure}[fig:canals] you see a photo and a graphic combined into one -figure. - -\startbuffer -\placefigure - [here,force] - [fig:canals] - {The Hasselt Canals.} - {\startcombination[2*1] - {\externalfigure[ma-cb-03][width=.4\textwidth]}{a bitmap picture} - {\externalfigure[ma-cb-00][width=.4\textwidth]}{a vector graphic} - \stopcombination} -\stopbuffer - -\getbuffer - -You can produce this figure by typing something like: - -\typebuffer - -In this figure two pictures are combined with: - -\shortsetup{startcombination} - -The \type{\start ...\stopcombination} pair is used for -combining two pictures in one figure. You can type the number of pictures within -the bracket pair. If you want to display one picture below the other you would -have typed \type{[1*2]}. You can imagine what happens when you combine 6~pictures -as \type{[3*2]} (\type{[rows*columns]}). - -The examples shown above are enough for creating illustrated documents. Sometimes -however you want a more integrated layout of the picture and the text. For that -purpose you can use \type{\start ...\stopfiguretext} command pair. - -\startbuffer -\startfiguretext - [left,none] - [fig:citizens] - {} - {\externalfigure[ma-cb-18][width=.5\makeupwidth]} - Hasselt has always had a varying number of citizens due to - economic events. For example the Dedemsvaart was dug around - 1810. This canal runs through Hasselt and therefore trade - flourished. This led to a population growth of almost 40\% - within 10~years. Nowadays the Dedemsvaart has no commercial - value anymore and the canals have become a tourist - attraction. But reminders of these prosperous times can be - found everywhere. -\stopfiguretext -\stopbuffer - -The effect of: - -\typebuffer - -is shown in the figure below. - -\start -\setuptolerance[verytolerant] -\getbuffer -\stop - - -\startbuffer[marginpicture] -\inmargin - {\externalfigure - [ma-cb-23] - [width=.7\marginwidth]} -\stopbuffer - -As you have seen you in the examples above you can summon a figure with the -command: - -\shortsetup{externalfigure} - -The command \type{\externalfigure} has two bracket pairs. The first is used for -the exact file name without extension, the second for file formats and -dimensions. It is not difficult to guess what happens if you -type:\getbuffer[marginpicture] - -\typebuffer[marginpicture] - -You can set up the layout of figures with: - -\shortsetup{setupfloats} - -You can set up the numbering and the labels with: - -\shortsetup{setupcaptions} - -\startbuffer[figuresetups] -\setupfloat - [figure] - [default=right, - spacebefore=none] - -\setupcaptions - [location=bottom, - style=boldslanted] -\stopbuffer - -\startbuffer[figuredefinition] -\placefigure - {A characteristic view on Hasselt.} - {\externalfigure[ma-cb-12][width=6cm]} -\stopbuffer - -\start -\getbuffer[figuresetups] -\getbuffer[figuredefinition] -\stop - -These commands are typed in the set up area of your input file and have a global -effect on all floating blocks. - -\typebuffer[figuresetups,figuredefinition] - -For figure management there are commands like \crlf -\type{\setupexternalfigure}. - -Please refer to the \goto {\CONTEXTWIKI} [ -url(http://wiki.contextgarden.net/Command/defineexternalfigure) ] for practical -applications of these commands. - -If you want to work with a \XML\ based figure database please see the \goto -{Figures} [ url (manual:figures) ] -manual. - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-fonts.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-fonts.tex deleted file mode 100644 index 029386ec1..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-fonts.tex +++ /dev/null @@ -1,299 +0,0 @@ -\startcomponent ma-cb-en-fonts - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Fonts and font switches] - -\startsection[title=Introduction] - -\index{Computer Modern Roman} -\index{Lucida Bright} -\index{AMS} - -The default font in \CONTEXT\ is the {\em Computer Modern Roman} (\type{cmr}). -In \CONTEXT\ the following fonts are available. - -\startplacetable[reference=tab:fonts in context,title={Fonts in \CONTEXT.}] -\starttable[|l|l|l|] -\HL -\NC \bf Name \NC \bf Logical name \NC \bf Also known as \NC\MR -\HL -\NC Computer Modern Roman \NC cmr \NC Computer Modern Roman \NC\FR -\NC Termes \NC termes \NC Times New Roman \NC\MR -\NC Adventor \NC adventor \NC Avant Garde \NC\MR -\NC Bonum \NC bonum \NC Bookman \NC\MR -\NC Chorus \NC chorus \NC Zapf Chancery \NC\MR -\NC Cursor \NC cursor \NC Courier \NC\MR -\NC Heros \NC heros \NC Helvetica \NC\MR -\NC Pagella \NC pagella \NC Palatino \NC\MR -\NC Schola \NC schola \NC Century Schoolbook \NC\MR -\NC Dejavu \NC dejavu \NC \NC\MR -\NC Iwona \NC iwona \NC \NC\MR -\NC Gentium \NC gentium \NC \NC\MR -\NC Cambria \NC cambria \NC \NC\MR -\NC Antykwa \NC antykwa \NC \NC\MR -\NC Utopia \NC utopia \NC \NC\MR -\NC LucidaBright \NC lucidanova \NC \NC\LR -\HL -\stoptable -\stopplacetable - -% in map: tex-context\tex\texmf\fonts - -For further reading we refer to the \goto {\em Fonts in \CONTEXT} -[ url (manual:fonts) ] manual where you can find information on how to install -your own font. - -\stopsection - -\startsection[title=Fontstyle and size] - -\index{font+style} -\index{font+size} - -\Command{\tex{setupbodyfont}} -\Command{\tex{switchtobodyfont}} - -You can select the font family, style and size for a document with: - -\shortsetup{setupbodyfont} - -If you typed \type{\setupbodyfont[chorus,9pt]} {\switchtobodyfont[chorus,9pt] in -the setup area of the input file your text would look something like this.} - -For changes in mid-document and on section level you should use: - -\shortsetup{switchtobodyfont} - -\startbuffer -On November 10th (one day before Saint Martinsday) the youth of -Hasselt go from door to door to sing a special song and they -accompany themselves on a {\em foekepot}. They won't leave -before you give them some money or sweets. The song goes like this: - -\startnarrower -\switchtobodyfont[heros,small] -\startlines -Foekepotterij, foekepotterij, -Geef mij een centje dan ga'k voorbij. -Geef mij een alfje dan blijf ik staan, -'k Zal nog liever naar m'n arrenmoeder gaan. -Hier woont zo'n rieke man, die zo vulle gèven kan. -Gèf wat, old wat, gèf die arme stumpers wat, -'k Eb zo lange met de foekepot elopen. -'k Eb gien geld om brood te kopen. -Foekepotterij, foekepotterij, -Geef mij een centje dan ga'k voorbij. -\stoplines -\stopnarrower -\stopbuffer - -\typebuffer - -Notice that \type{\start...\stopnarrower} is also used as a begin and end of the -fontswitch. The function of \type{\start...\stoplines} in this example is -obvious. - -\start -\getbuffer -\stop - -If you want an overview of the available font family you can type: - -\startbuffer -\showbodyfont[pagella] -\stopbuffer - -\typebuffer - -\getbuffer - -\stopsection - -\startsection[title=Style and size switch in commands] - -In a number of commands one of the parameters is \type{style} to indicate the -desired typestyle. For example: - -\startbuffer -\setuphead[chapter][style=\tfd] -\stopbuffer - -\typebuffer - -In this case the character size for chapters is indicated with a command -\type{\tfd}. But instead of a command you could use the predefined options that -are related to the actual typeface: - -\startbuffer -normal bold slanted boldslanted type mediaeval -small smallbold smallslanted smallboldslanted smalltype -capital cap -\stopbuffer - -\typebuffer - -\stopsection - -\startsection[title=Local font style and size] - -\Command{\tex{rm}} -\Command{\tex{ss}} -\Command{\tex{tt}} -\Command{\tex{sl}} -\Command{\tex{bf}} -\Command{\tex{tfa}} -\Command{\tex{tfb}} -\Command{\tex{tfc}} -\Command{\tex{tfd}} - -In the running text (local) you can change the {\em typestyle} into roman, sans -serif and teletype with \type{\rm}, \type{\ss} and \type{\tt}. - -You can change the {\em typeface} like italic and boldface with \type{\sl} and -\type{\bf}. - -The {\em typesize} is changed with \type{\switchtobodyfont}. - -The actual style is indicated with \type{\tf}. If you want to change into a -somewhat greater size you can type \type{\tfa}, \type{\tfb}, \type{\tfc} and -\type{\tfd}. An addition of \type{a}, \type{b}, \type{c} and \type{d} to -\type{\sl}, \type{\it} and \type{\bf} is also allowed. - -\startbuffer -{\tfc Mintage} - -In the period from {\tt 1404} till {\tt 1585} Hasselt had its own -{\sl right of coinage}. This right was challenged by other cities, -but the {\switchtobodyfont[7pt] bishops of Utrecht} did not honour -these {\slb protests}. -\stopbuffer - -\typebuffer - -The curly braces indicate begin and end of style or size switches. - -\getbuffer - -\stopsection - -\startsection[title=Redefining fontsize] - -\index{fontsize} - -\Command{\tex{definebodyfont}} - -For special purposes you can define your own size of the bodyfont. - -\shortsetup{definebodyfont} - -A definition could look like this: - -\startbuffer -\definebodyfont[10pt][rm][tfe=Regular at 36pt] - -{\tfe Hasselt!} -\stopbuffer - -\typebuffer - -Now \type{\tfe} will produce 36pt characters saying: -{\hbox{\getbuffer}} - -\stopsection - -\startsection[title=Small caps] - -\index{small caps} - -\Command{\tex{cap}} - -Abbreviations like \PDF\ (\infull{PDF}) are printed in pseudo small caps. A small -capital is somewhat smaller than the capital of the actual typeface. Pseudo small -caps are produced with: - -\shortsetup{cap} - -If you compare \type{\cap{hasselt}} and \type{\sc hasselt}: \cap{hasselt} and -{\sc hasselt} you can see the difference. The command \type{\sc} shows the real -small caps. The reason for using pseudo small caps instead of real small caps is -just a matter of taste. - -\stopsection - -\startsection[title=Emphasized] - -\index{emphasized} - -\Command{\tex{em}} - -To emphasize words consistently throughout your document -you use: - -\starttyping -\em -\stoptyping - -Empasized words appear in a slanted style. - -\startbuffer -If you walk through Hasselt you should {\bf \em watch out} for -{\em Amsterdammers}. An {\em Amsterdammer} is {\bf \em not} a -person from Amsterdam but a little stone pillar used to separate -sidewalk and road. A pedestrian should be protected by these -{\em Amsterdammers} against cars but more often people get hurt -from tripping over them. -\stopbuffer - -\typebuffer - -This becomes: - -\getbuffer - -{\em An emphasize within an emphasize is {\em normal} again -and a boldface emphasize looks like {\bf this or \em this}}. - -\stopsection - -\startsection[title=Teletype / verbatim] - -\index{type} -\index{verbatim} - -\Command{\tex{starttyping}} -\Command{\tex{type}} -\Command{\tex{setuptyping}} -\Command{\tex{setuptype}} - -If you want to display typed text and want to keep your line breaking exactly as -it is you use: - -\shortsetup{starttyping} - -In the text you can use: - -\shortsetup{type} - -The curly braces enclose the text you want in teletype. You have to be careful -with \type{\type} because the line breaking mechanism does not work anymore. - -You can set up the 'typing' with: - -\shortsetup{setuptyping} -\shortsetup{setuptype} - -\stopsection - -\startsection[title=Encodings] - -In \CONTEXT\ \MKIV\ font ecoding is no issue (anymore). - -\stopsection - -\stopchapter - -\stopcomponent - diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-footnotes.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-footnotes.tex deleted file mode 100644 index 5eeade383..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-footnotes.tex +++ /dev/null @@ -1,99 +0,0 @@ -\startcomponent ma-cb-en-footnotes - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Footnotes] - -\index{footnote} - -\Command{\tex{footnote}} -\Command{\tex{setupfootnotes}} - -If you want to annotate your text you can use \type{\footnote}. The command looks -like this: - -\shortsetup{footnote} - -The bracket pair is optional and contains a logical name. The curly braces -contain the text you want to display at the foot of the page. - -The same footnote number can be called with its logical name. - -\shortsetup{note} - -If you have typed this text: - -\startbuffer -The Hanse was a late medieval commercial alliance of towns in the -regions of the North and the Baltic Sea. The association was formed -for the furtherance and protection of the commerce of its -members.\footnote[war]{This was the source of jealousy and fear among -other towns that caused a number of wars.} In the Hanse period there -was a lively trade in all sorts of articles such as wood, wool, -metal, cloth, salt, wine and beer.\note[war] The prosperous trade -caused an enormous growth of welfare in the Hanseatic -towns.\footnote{Hasselt is one of these towns.} -\stopbuffer - -\typebuffer - -It would look like this: - -\getbuffer - -The footnote numbering is done automatically. The command \type{\setupfootnotes} -enables you to influence the display of footnotes: - -\shortsetup{setupfootnotes} - -Footnotes can be set at the bottom of a page but also at other locations, like -the end of a chapter. This is done with the command: - -\shortsetup{placefootnotes} - -The footnotes will be placed at the end of your document with -\type{\setupfootnotes[location=text]} in combination with \type{\placefootnotes} -at the desired location. - -You can also couple footnotes to a table. In that case we speak of local -footnotes. The commands are: - -\shortsetup{startlocalfootnotes} - -\shortsetup{placelocalfootnotes} - -An example illustrates the use of local footnotes: - -\startbuffer - -\placetable[][productivity] - {Decline of Hasselt's productivity.\footnote{Source: {\em Uit - de geschiedenis van Hasselt.}}} - {\startlocalfootnotes - \starttable[|l|c|c|c|c|] - \HL - \NC - \NC Ovens - \NC Blacksmiths - \NC Breweries - \NC Tile works\footnote{The factories that produced roof tiles.} \NC\SR - \HL - \NC 1682 \NC 15 \NC 9 \NC 3 \NC 2 \NC\FR - \NC 1752 \NC ~6 \NC 4 \NC 0 \NC 0 \NC\LR - \HL - \NC \use5 \JustLeft{\placelocalfootnotes} \NC\FR - \stoptable - \stoplocalfootnotes} -\stopbuffer - -\typebuffer - -This will result in \in{table}[productivity] with a local footnote. The footnote -in the caption will appear at the bottom of the page. -\getbuffer - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-framedtexts.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-framedtexts.tex deleted file mode 100644 index 2f422344b..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-framedtexts.tex +++ /dev/null @@ -1,58 +0,0 @@ -\startcomponent ma-cb-en-framedtexts - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Outlined paragraphs] - -\index{outline+paragraph} - -\Command{\tex{startframedtext}} -\Command{\tex{setupframedtext}} - -Complete paragraphs can be outlined with: - -\shortsetup{startframedtext} - -\startbuffer -\definefloat[intermezzo] -\setupframedtexts - [width=.8\makeupwidth, - background=color, - backgroundcolor=gray, - corner=round, - framecolor=blue, - rulethickness=2pt] - -\placeintermezzo[here][block:bridge]{An intermezzo.} -\startframedtext - It was essential for Hasselt to have a bridge across the Zwarte - Water river. The bishop of Utrecht gave Hasselt his consent in - 1486. - \blank - Other cities in the neighbourhood of Hasselt were afraid of the - toll money to be paid when crossing this bridge so they - prevented the construction for many years. -\stopframedtext -\stopbuffer - -Let's give an example: - -\typebuffer - -This example also illustrates the command \type{\definefloat}. You can find more -information on this command in \in{paragraph}[floatingblocks]. The \type{\blank} -is necessary to enforce a blank line. - -\start -\getbuffer -\stop - -The outlining can be set up with: - -\shortsetup{setupframedtexts} - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-frames.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-frames.tex deleted file mode 100644 index bbdb6a61c..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-frames.tex +++ /dev/null @@ -1,144 +0,0 @@ -\startcomponent ma-cb-en-frames - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Outlined text] - -\index{outline+text} - -\Command{\tex{framed}} -\Command{\tex{setupframed}} -\Command{\tex{inframed}} - -You can \inframed{outline} a text with \type{\framed}. The -command looks like this: - -\shortsetup{framed} - -The bracket pair is optional and contains the set up parameters. The curly braces -enclose the text. To be honest, the outlined text in the first paragraph was done -with \type{\inframed}. This command takes care of the interline spacing. - -Some other examples of \type{\framed} and its set up parameters are shown below. - -\startbuffer[a] -\framed - [height=fit, - width=.5\textwidth] - {Hasselt} -\stopbuffer - -\placefigure[right,none][]{}{\externalfigure[a][type=buffer]} -\typebuffer[a] - -\startbuffer[b] -\framed - [height=3em, - width=.5\textwidth] - {Hasselt now has more space} -\stopbuffer - -\placefigure[right,none][]{}{\externalfigure[b][type=buffer]} -\typebuffer[b] - -\startbuffer[d] -\framed - [height=3em, - width=.5\textwidth, - foregroundcolor=red, - framecolor=blue] - {Hasselt now has some color} -\stopbuffer - -\placefigure[right,none][]{}{\externalfigure[d][type=buffer]} -\typebuffer[d] - -\startbuffer[e] -\framed - [height=3em, - width=.5\textwidth, - foregroundcolor=red, - framecolor=blue, - rulethickness=2pt] - {Hasselt now has more frame} -\stopbuffer - -\placefigure[right,none][]{}{\externalfigure[e][type=buffer]} -\typebuffer[e] - -\startbuffer[f] -\framed - [height=3em, - width=.5\textwidth, - foregroundcolor=red, - framecolor=blue, - rulethickness=2pt, - background=color, - backgroundcolor=green] - {Hasselt now has a colorful background} -\stopbuffer - -\placefigure[right,none][]{}{\externalfigure[f][type=buffer]} -\typebuffer[f] - -\startbuffer[g] -\framed - [height=3em, - width=.5\textwidth, - foregroundcolor=red, - framecolor=blue, - rulethickness=2pt, - background=color, - backgroundcolor=green, - foregroundstyle=bold] - {Hasselt now has another style} -\stopbuffer - -\placefigure[right,none][]{}{\externalfigure[g][type=buffer]} -\typebuffer[g] - -\startbuffer[needed-for-h] -\definecolor[a][black] -\definecolor[b][white] - -\startuniqueMPgraphic{LinearShade} - fill OverlayBox - withshademethod "linear" withcolor \MPcolor{a} shadedinto \MPcolor{b} ; -\stopuniqueMPgraphic - -\defineoverlay - [linear shade] - [\uniqueMPgraphic{LinearShade}] -\stopbuffer - -\getbuffer[needed-for-h] - -\startbuffer[h] -\framed - [height=3em, - width=.5\textwidth, - foregroundcolor=red, - framecolor=blue, - rulethickness=2pt, - background=linear shade, - foregroundstyle=bold] - {Hasselt now has a little shade} -\stopbuffer - -\placefigure[right,none][]{}{\externalfigure[h][type=buffer]} -\typebuffer[h] - -The shady background was defined with: - -\typebuffer[needed-for-h] - -The \type{\framed} command is very sophisticated and is used in many macros. -The command to set up frames is: - -\shortsetup{setupframed} - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-gettingstarted.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-gettingstarted.tex deleted file mode 100644 index 6314aeec5..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-gettingstarted.tex +++ /dev/null @@ -1,46 +0,0 @@ -\startcomponent ma-cb-en-gettingstarted - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=How to process a file] - -\index{input file+processing} -\index[pdffile]{\type{pdf}--file} - -In this chapter we assume that you have installed and initiated \CONTEXT\ \MKIV\ -correctly so that you can run it from the commandline in your working directory. -You can find the \CONTEXT\ installation procedure on the \goto {\CONTEXTWIKI} -[ url (http://wiki.contextgarden.net/ConTeXt_Standalone#Windows) ]. - -If you want to process a \CONTEXT\ input file, you should type at the command line -prompt: - -\starttyping -context myfile.tex -\stoptyping - -the extension \type{.tex} is not needed. See \in{appendices}[contextcommand] and -\in[runtimefiles] for more information on the \type{context} command. - -After pressing \Enter\ processing will be started. \CONTEXT\ will show processing -information on your screen. During the processing of your input file \CONTEXT\ -will also inform you of what it is doing with your document. For example it will -show page numbers and information about processing steps. Further more it gives -warnings. These are of a typographical order and tells you when line breaking is -not successful. All information on processing is stored in a \type{log} file that -can be used for reviewing warnings and errors and the respective line numbers -where they occur in your file. - -If processing is succesful the command line prompt will return and \CONTEXT\ will -produce the file \type{myfile.pdf}. The abbreviation \PDF\ stands for Portable -Document Format. This is a platform independent format for printing and viewing -with \READER. - -When you use a configurable text editor you can also run \CONTEXT\ from that editor. -More information on that topic can be found \in{appendix}[texteditor]. - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-headers.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-headers.tex deleted file mode 100644 index d51403d5d..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-headers.tex +++ /dev/null @@ -1,53 +0,0 @@ -\startcomponent ma-cb-en-headers - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Page headers and footers] - -\index{page header} -\index{page footer} - -\Command{\tex{setupfootertexts}} -\Command{\tex{setupheadertexts}} -\Command{\tex{setupheader}} -\Command{\tex{setupfooter}} -\Command{\tex{noheaderandfooterlines}} - -In some cases you want to give your document a page header and footer. The -commands to do this are: - -\shortsetup{setupfootertexts} -\shortsetup{setupheadertexts} - -The first bracket pair is used for the location of the footer or header -(\type{text}, \type{edge} etc). Footer and header are placed within the second -and third bracket pairs. In a double sided document a fourth and fifth bracket -pair is used for footer and header on the left-hand side page and the right-hand -side page. In most cases you can omit these last two bracket pairs. - -\startbuffer -\setupfootertexts[Manual][section] -\stopbuffer - -\typebuffer - -In this case the text {\em Manual} will appear in the left-hand side corner and -the title of the actual section on the right-hand side of the page. This footer -will change with the beginning of a new section. - -You can set up the layout of the header and footer with: - -\shortsetup{setupheader} -\shortsetup{setupfooter} - -If you want to leave out the page header and footer you can type: - -\starttyping -\noheaderandfooterlines -\stoptyping - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-heads.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-heads.tex deleted file mode 100644 index aa7e7b161..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-heads.tex +++ /dev/null @@ -1,135 +0,0 @@ -\startcomponent ma-cb-en-heads - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[reference=heads,title=Heads] - -\index{headers} - -\Command{\tex{chapter}} -\Command{\tex{paragraph}} -\Command{\tex{subparagraph}} -\Command{\tex{title}} -\Command{\tex{subject}} -\Command{\tex{subsubject}} -\Command{\tex{setuphead}} -\Command{\tex{setupheads}} - -The structure of a document is determined by its chapter and section titles. -These titles are created with the commands shown in \in{table}[tab:headers]: - -\placetable[here][tab:headers]{Headers.} - {\starttable[|l|l|] - \HL - \NC \bf Numbered header \NC \bf Unnumbered header \NC\SR - \HL - \NC \type{\chapter} \NC \type{\title} \NC\FR - \NC \type{\section} \NC \type{\subject} \NC\MR - \NC \type{\subsection} \NC \type{\subsubject} \NC\MR - \NC \type{\subsubsection} \NC \type{\subsubsubject} \NC\MR - \NC \unknown \NC \unknown \NC\LR - \HL - \stoptable} - -\shortsetup{chapter} -\shortsetup{section} -\shortsetup{subsection} -\shortsetup{title} -\shortsetup{subject} -\shortsetup{subsubject} - -These commands will produce a numbered or unnumbered title in a predefined -fontsize and fonttype with some vertical spacing before and after the header. - -The title commands can take several arguments, like in: - -\starttyping -\title[hasselt by night]{Hasselt by night} -\stoptyping - -and - -\starttyping -\title{Hasselt by night} -\stoptyping - -The bracket pair is optional and used for internal references. If you want to -refer to this chapter you type for example \type{\at{page}[hasselt by night]}. - -For a more structured way to define chapters and sections you can use the more -preferred \type{\start ... \stop} construction. - -\placetable[here][tab:headers]{Structured headers.} - {\starttable[|l|l|] - \HL - \NC \bf Numbered header \NC \bf Un-numbered header \NC\SR - \HL - \NC \type{\start ... \stopchapter} \NC \type{\start ... \stoptitle} \NC\FR - \NC \type{\start ... \stopsection} \NC \type{\start ... \stopsubject} \NC\MR - \NC \type{\start ... \stopsubsection} \NC \type{\start ... \stopsubsubject} \NC\MR - \NC \type{\start ... \stopsubsubsection} \NC \type{\start ... \stopsubsubsubject} \NC\MR - \NC \unknown \NC \unknown \NC\LR - \HL - \stoptable} - -In that case the definition looks like this: - -\starttyping -\starttitle[reference="hasselt by night",title="Hasselt by night"} - ... -\stoptitle -\stoptyping - -Of course the chapter and section titles can be set to your own preferences and you can even -define your own sections. This is done with the \type{\setuphead} and -\type{\definehead} command. - -\shortsetup{definehead} - -\shortsetup{setuphead} - -\startbuffer -\definehead - [myhead] - [section] - -\setuphead - [myhead] - [numberstyle=bold, - textstyle=bold, - before=\hairline\blank, - after=\nowhitespace\hairline] - -\myhead[headlines]{Hasselt makes headlines} -\stopbuffer - -\typebuffer - -A new header \type{\myhead} is defined and it inherits the properties of -\type{\section}. It would look something like this: - -\getbuffer - -There is one other command you should know now, and that is \type{\setupheads}. -You can use this command to set up the numbering of the numbered chapters and -sections. If you type: - -\startbuffer -\setupheads - [alternative=inmargin, - separator=--] -\stopbuffer - -\typebuffer - -all numbers will appear in the margin. Section 1.1 would look like 1--1. - -Commands like \type{\setupheads} are typed in the set up area of your input file. - -\shortsetup{setupheads} - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-interactivity.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-interactivity.tex deleted file mode 100644 index 64beb179d..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-interactivity.tex +++ /dev/null @@ -1,310 +0,0 @@ -\startcomponent ma-cb-en-interactivity - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Interactive mode in electronic documents,reference=interactivity] - -\startsection[title=Introduction] - -\index[reader]{\READER} - -Documents that are electronically available for consulting and displaying on a -computer screen are called interactive documents. - -Interaction means that you can click on active areas and jump to the indicated -locations. For example if you consult a register you can click on a (active) page -number and you will jump to the corresponding page. - -Interaction relates to: - -\startitemize[packed] -\item active chapter numbers in the table of content -\item active page numbers in registers -\item active page numbers, chapter numbers and figure numbers in internal - references to pages, chapters, figures etc. in the running text -\item active titles, page numbers, and chapter numbers in external references to - other interactive documents -\item active menus as navigation tools -\item references to webpages and programs -\stopitemize - -Interactivity depends on the program you use to view the interactive document. We -assume here that you will use \READER\ for viewing. - -\CONTEXT\ is a very powerful system for producing electronic or interactive \PDF\ -documents. However, only a few standard features are described in this chapter. As -the authors of this manual are planning to make all \CONTEXT\ related manuals -electronically (sources included) available, reverse engineering is one of the -options to become more acquainted with the possibilities of \CONTEXT. - -Good examples of interactive documents are \CONTEXT\ presentations (see \in{chapter}[presentations]). -For more complex interactive \PDF\ documents with forms you should read the -\goto {Widgets} [ url (manual:widget) ] -manual. - -\stopsection - -\startsection[title=Interactive mode] - -\index{interactive mode} - -\Command{\tex{setupinteraction}} - -The interactive mode is activated by: - -\shortsetup{setupinteraction} - -For example: - -\startbuffer -\setupinteraction - [state=start, - color=green, - style=bold] -\stopbuffer - -\typebuffer - -The hyper links are now generated automatically and the active words are -displayed in bold green. - -The interactive document is considerably bigger (in MB's) than its paper cousin -because hyperlinks consume space. You will also notice that processing time -becomes longer. Therefore it is advisable to de-activate the interactive mode as -long as your document is under construction. - -\stopsection - -\startsection[title=Interaction within a document] - -\index{interaction+internal} - -\Command{\tex{in}} -\Command{\tex{at}} -\Command{\tex{goto}} - -Earlier you have seen how to make a reference with \type{\in} and \type{\at}. You -may have wondered why you had to type \type{\in{chapter}[chap:introduction]}. In -the first place {\em chapter} and its corresponding chapter number will not be -separated at line breaking. In the second place the word {\em chapter} and its -number are typeset differently in the interactive mode. This gives the user a -larger clickable area. - -\stopsection - -\startsection[title=Interaction between documents] - -\index{interaction+external} - -\Command{\tex{from}} -\Command{\tex{useexternaldocument}} - -It is possible to link one document to another. First you have to state that you -want to refer to another document. This is done by: - -\shortsetup{useexternaldocument} - -The first bracket pair must contain a logical name of the document, the second -pair the file name of the other document and the third pair is used for the title -of the document. - -For refering to these other documents you can use: - -\shortsetup{from} - -The curly braces contain text and the brackets contain the reference. - -Look at the example below. - -\startbuffer -\useexternaldocument - [hia][hasseltbook][Festivities in Hasselt] - -Most tourist attractions are described in \from[hia].\crlf -A description of the \about[hia::euifeest] is found in \from[hia].\crlf -The eui||feest is described on \at{page}[hia::euifeest] in \from[hia].\crlf -See for more information \in{chapter}[hia::euifeest] in \from[hia]. -\stopbuffer - -\typebuffer - -The \type{\useexternaldocument} is usually typed in the set up area of your input -file. - -After processing your input file and the file \type{hasseltbook.tex}, -you will have two \PDF\ documents. The references come out like this: - -\start -\setupinteraction[state=start] -\getbuffer -\stop - -For more information on cross referencing look at -\goto {\CONTEXT\ Magazine 1103} [ url (thisway:crossrefs)]. - -\stopsection - -\startsection[title=Interaction with the world wide web] - -In interactive mode there is one other command that has little meaning in the -paper version. - -\shortsetup{goto} - -The curly braces contain text, the brackets contain a reference (logical name or a -location). - -\startbuffer -In \goto {Hasselt} [ url(http://www.stadindex.nl/plattegrond/hasselt) ] -all streets are build in a circular way. -\stopbuffer - -\typebuffer - -In the interactive document \goto{Hasselt}[ url(http://www.stadindex.nl/plattegrond/hasselt) ] -will be green and active. When you click the text you will jump to a map of Hasselt. - -For a consistent definition of the urls there is the command: - -\shortsetup{useURL} - -The adress is defined with: - -\startbuffer -\useURL - [loc:cityplan] % id - [http://www.stadindex.nl/plattegrond/hasselt] % adress - [] % document - [] % text -\stopbuffer - -\typebuffer - -The webadress is recalled by its logical name: -\type{\goto {Hasselt} [ url(loc:cityplan) ]}. - -It is of good practice to define and maintain the urls in a separate -file. - -\stopsection - -\startsection[title=Buttons] - -The command to define a button is: - -\shortsetup{button} - -The first bracket pair contains the setup keys, the curly brackets contain the -button text and the last bracket pair the destination. - -\startbuffer -\useexternalsoundtrack - [stranger][wayfaring_stranger.mp3] - -\button{Website Hasselt} [ url(http://www.hasselt.nl) ] -\button{MSWord Document} [ program(hasselt.doc) ] -\button{Sound Clip} [ StartSound{stranger} ] -\stopbuffer - -\typebuffer - -The first example results in a jump to a webpage, the second opens the file -\type{hasselt.doc} in \MSWORD\ and the third plays a tune. Note the use of the -\type{\useexternalsoundtrack} command. - -\stopsection - -\startsection[title=Menus] - -You can define a menu with: - -\shortsetup{startinteractionmenu} - -And set it up with: - -\shortsetup{setupinteractionmenu} - -The first bracket pair is used for its name and the second pair for setting up -the menu. - -A menu can be used in an interactive document. Below you can find a simple -example that you can copy to do some experimenting: - -\startbuffer -\setuppapersize - [S6][S6] - -\setuplayout - [header=0cm, topspace=.5cm, backspace=2cm, - margindistance=.5cm, margin=1cm, rightmargin=0cm, - edgedistance=.5cm, rightedge=2cm, width=fit, - height=13.8cm, footer=1cm, bottom=1cm] - -\setupinteraction - [state=start, menu=on] - -\setupinteractionmenu - [bottom] - [background=color, backgroundcolor=gray, frame=off] - -\startinteractionmenu[bottom] -\hfill -\startbut [content] contents \stopbut \quad -\startbut [index] index \stopbut \quad -\startbut [PreviousJump] last location \stopbut \quad -\startbut [NextPage] next page \stopbut \quad -\startbut [CloseDocument] exit \stopbut \quad -\stopinteractionmenu - -\starttext - -\startstandardmakeup - \midaligned{\tfd Festivities in Hasselt} -\stopstandardmakeup - -\completecontent - -\startchapter[title=Introduction] - An introduction. -\stopchapter - -\startchapter[title=Kingsday] - Something about Kingsday in Hasselt.\index{Kingsday} -\stopchapter - -\startchapter[title=Hassailt] - Something about Hassailt.\index{Hassailt} -\stopchapter - -\startchapter[title=Euifeest,reference=euifeest] - Something about the Euifeest.\index{Euifeest} -\stopchapter - -\completeindex - -\stoptext -\stopbuffer - -\typebuffer - -The definition of the \type{\startinteractionmenu} will produce a menu at the -bottom of every screen. The menu buttons contain the text {\em contents}, {\em -index}, {\em last location}, {\em next page} and {\em exit} with respectively the -following functions: jump to the table of contents, jump to the index, goto the -last location in the document, goto next page and close the document. The labels -to obvious destinations like \type{content} and \type{index} are predefined. -Other predefined destinations are \type{FirstPage}, \type{LastPage}, -\type{NextPage} and \type{PreviousPage}. - -An action like \type{CloseDocument} is necessary to make an electronic document -self containing. Other predefined actions you can use are \type{PrintDocument}, -\type{SearchDocument} and \type{PreviousJump}. The meaning of these actions is -obvious. - -\stopsection - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-introduction.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-introduction.tex deleted file mode 100644 index 11acf8f9c..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-introduction.tex +++ /dev/null @@ -1,33 +0,0 @@ -\startcomponent ma-cb-en-introduction - -\project ma-cb - -\startchapter[title=Introduction] - -\CONTEXT\ is a document engineering system based on \TEX, a typesetting -system and programming language to typeset and produce documents. Ths system is -easy to use and enables you to make complex paper and electronic documents. - -This manual describes the capabilities of \CONTEXT\ \MKIV, the available commands -and their functionality.\footnote {All paper and electronic products around -\CONTEXT\ are produced with \CONTEXT. All sources of these products are or will -be made available electronically to give you insight in the way these products -are made up.} - -This system is developed for practical applications: the typesetting and -production of documents ranging from simple straight forward books up to very -complex and advanced technical manuals and textbooks in a paper or an electronic -version. This introductory manual describes the functionality necessary to apply -standard text elements in a manual or textbook. \CONTEXT, however, is capable of -much more and for users who want more there are other manuals and sources -available. - -\CONTEXT\ has a multi lingual interface to enable users to work with the system -in their own language. This manual is available in Dutch and English. - -If you want to install \CONTEXT\ on your computer you can follow the installation -description on the \goto {\CONTEXTWIKI} [url(install)]. - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-itemizations.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-itemizations.tex deleted file mode 100644 index ac711be63..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-itemizations.tex +++ /dev/null @@ -1,297 +0,0 @@ -\startcomponent ma-cb-en-itemizations - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[reference=itemize,title=Itemize] - -\index{itemize} -\index{columns in itemize} - -\Command{\tex{startitemize}} -\Command{\tex{setupitemize}} -\Command{\tex{definesymbol}} -\Command{\tex{item}} -\Command{\tex{head}} - -One way of structuring your information is by way of enumeration or summing up -items. The itemize command looks like this: - -\shortsetup{startitemize} - -For example: - -\startbuffer -\startitemize[R,packed,broad] -\item Hasselt was founded in the 14th century. -\item Hasselt is known as a so called Hanze town. -\item Hasselt's name stems from a tree. -\stopitemize -\stopbuffer - -\typebuffer - -Within the \type{\start ... \stopitemize} pair you start a new item with -\type{\item}. The space after \type{\item} is required. In the example above -\type{R} specifies Roman numbering and \type{packed} keeps line spacing to a -minimum. The parameter \type{broad} takes care of the spacing between item -separator and item. The example would produce: - -\getbuffer - -Items can be defined in a more structured way: - -\startbuffer -\startitemize[R,packed,broad] -\startitem Hasselt was founded in the 14th century. \stopitem -\startitem Hasselt is known as a so called Hanze town. \stopitem -\startitem Hasselt's name stems from a tree. \stopitem -\stopitemize -\stopbuffer - -\typebuffer - -The bracket pair contains information on item separators and local set up -variables. - -\placetable - [here] - [tab:itemsetup] - {Item separators in itemize.} - {\starttable[|l|l|] - \HL - \NC \bf Argument \NC \bf Item separator symbol \NC\SR - \HL - \NC 1 \NC $\bullet$ \NC\FR - \NC 2 \NC $-$ \NC\MR - \NC 3 \NC $\star$ \NC\MR - \NC $\vdots$ \NC $\vdots$ \NC\MR - \NC n \NC 1 2 3 4 $\cdots$ \NC\MR - \NC a \NC a b c d $\cdots$ \NC\MR - \NC A \NC A B C D $\cdots$ \NC\MR - \NC r \NC i ii iii iv $\cdots$ \NC\MR - \NC R \NC I II III IV $\cdots$ \NC\LR - \HL - \stoptable} - -You can also define your own item separator by means of \type{\definesymbol}. For -example if you try this: - -\startbuffer -\definesymbol[5][$\clubsuit$] - -\startitemize[5,packed] -\item Hasselt was built on a riverdune. -\item Hasselt lies at the crossing of two rivers. -\stopitemize -\stopbuffer - -\typebuffer - -You will get: - -\getbuffer - -If you want to have a sort of head within an enumeration you should use -\type{\head} instead of \type{\item}. - -\startbuffer -Hasselt lies in the province of Overijssel and there are a number -of customs that are typical of this province. - -\startitemize - -\head kraamschudden \hfill (child welcoming) - - When a child is born the neighbours come to visit the new - parents. The women come to admire the baby and the men come to - judge the baby (if it is a boy) on other aspects. - The neighbours will bring a {\em krentenwegge} along. A - krentenwegge is a loaf of currant bread of about 1 \unit{Meter} - long. Of course the birth is celebrated with {\em jenever}. - -\head nabuurschap (naberschop) \hfill (neighbourship) - - Smaller communities used to be very dependent on the - cooperation among the members for their well being. Members of - the {\em nabuurschap} helped each other in difficult times - during harvest times, funerals or any hardship that fell upon - the community. - -\head Abraham \& Sarah \hfill (identical) - - When people turn 50 in Hasselt it is said that they see Abraham - or Sarah. The custom is to give these people a {\em speculaas} - Abraham or a Sarah. Speculaas is a kind of hard spiced biscuit. - -\stopitemize -\stopbuffer - -\typebuffer - -The \type{\head} can be set up with \type{\setupitemize}. In case of a page -breaking a \type{\head} will appear on a new page. (The \type {\unit{Meter}} -command is explained in \in {chapter} [units].) - -The example of old customs will look like this: - -\getbuffer - -The set up parameters of itemize are described in \in {table} [tab:itemizesetup]. - -\placetable - [here,force] - [tab:itemizesetup] - {Set up parameters in itemize.} - {\starttable[|l|l|] - \HL - \NC \bf Set up \NC \bf Meaning \NC\SR - \HL - \NC standard \NC standard (global) set up \NC\FR - \NC packed \NC no vertical spacing between items \NC\MR - \NC serried \NC no horizontal spacing between separator and text \NC\MR - \NC joinedup \NC no vertical spacing before and after itemize \NC\MR - \NC broad \NC horizontal spacing between separator and text \NC\MR - \NC inmargin \NC place separator in margin \NC\MR - \NC atmargin \NC place separator on margin \NC\MR - \NC stopper \NC place full stop after separator \NC\MR - \NC columns \NC put items in columns \NC\MR - \NC intro \NC prevent page breaking after introduction line \NC\MR - \NC continue \NC continue numbering or lettering \NC\LR - \HL - \stoptable} - -You can use the set up parameters in \type{\startitemize}, but for reasons of -consistency you can make them valid for the complete document with -\type{\setupitemize}. - -The parameter \type{columns} is used in conjunction with -a (written) number. If you type this: - -\startbuffer -\startitemize[n,columns,four] -\item Achter 't Werk -. -. -. -\item Justitiebastion -\stopitemize -\stopbuffer - -\typebuffer - -\page[bigpreference] - -You will get: - -\startbuffer -\startitemize[n,packed,columns,four,broad] -\item Achter 't Werk -\item Baangracht -\item Brouwersgracht -\item Eikenlaan -\item Eiland -\item Gasthuisstraat -\item Heerengracht -\item Hofstraat -\item Hoogstraat -\item Julianakade -\item Justitiebastion -\item Kaai -\item Kalverstraat -\item Kastanjelaan -\item Keppelstraat -\stopitemize -\stopbuffer - -\bgroup -\getbuffer -\egroup - -Sometimes you want to continue the enumeration after a short intermezzo. Then you -type for example \type{\startitemize[continue]} and numbering -will continue and all other preferences are kept. - -\startbuffer -\startitemize[continue] -\item Markt -\item Meestersteeg -\item Prinsengracht -\item Raamstraat -\item Ridderstraat -\item Rosmolenstraat -\item Royenplein -\item Van Nahuijsweg -\item Vicariehof -\item Vissteeg -\item Watersteeg -\item Wilhelminalaan -\item Ziekenhuisstraat -\stopitemize -\stopbuffer - -\getbuffer - -The parameter \type{broad} enlarges the horizontal space between item separator -and itemtext. - -\shortsetup{setupitemize} - -An itemize within an itemize is automatically typeset in a correct way. For -example if you type: - -\startbuffer -In the Netherlands the cities can determine the height of a number of -taxes. So the cost of living can differ from town to town. There are -differences of up to 50\% in taxes such as: - -\setupitemize[2][width=5em] -\startitemize[n] - -\item[estate tax] real estate tax - - The real estate tax is divided into two components: - - \startitemize[a,packed] - \item the ownership tax - \item the tenant tax - \stopitemize - - If the real estate has no tenant the owner pays both components. - -\item dog licence fee - - The owner of one or more dogs pays a fee. When a dog has died - or been sold the owner has to inform city hall. - -\stopitemize -\stopbuffer - -\typebuffer - -then the horizontal space between item separator and text at the second level of -itemizing is set with \type{\setupitemize[2][width=5em]}. - -The example will look like this: - -\start -\getbuffer -\stop - -You can refer to an item if you give it a label (see \type{\item[estate tax]}). -If you then type: - -\startbuffer -\in{In item}[estate tax] we discussed one of the income sources of Hasselt. -\stopbuffer - -\typebuffer - -You'll get a reference to that item: - -\getbuffer - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-layout.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-layout.tex deleted file mode 100644 index 243f96b15..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-layout.tex +++ /dev/null @@ -1,241 +0,0 @@ -\startcomponent ma-cb-en-layout - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Page layout] - -\index{layout} -\index{page design} - -\Command{\tex{setuplayout}} -\Command{\tex{adaptlayout}} -\Command{\tex{showlayout}} -\Command{\tex{showframe}} % VZ 2006-11-15 -\Command{\tex{showsetups}} -\Command{\tex{showmakeup}} -\Command{\tex{startlocal}} - -\startsection[title=Introduction] - -The {\em Layouts in \CONTEXT} manual by Willy Egger contains the necessary -background information on page layout and design. Below you will find only the -basic information necessary for defining rather simple layouts for paper and -screen documents. - -For more information (examples and usage) on the \type{\setuplayout} command -please refer to the -\goto {\CONTEXTWIKI} [ url(http://wiki.contextgarden.net/Layout) ]. - -\stopsection - -\startsection[title=Designing the pagelayout] - -To be able to design a page layout you have to familiarize yourself with the -pagemodel of \CONTEXT. \in{Figure}[fig:pageareas] shows the areas on a page -that you can use in your design. - -\placefigure - [here] - [fig:pageareas] - {The page areas.} - {\externalfigure[fig-page-areas-en.pdf][width=.75\hsize]} - -The orange bodytext area contains the running text. The top, bottom, and edge -area are useful for buttons in screen documents. - -Please keep in mind that in \CONTEXT\ you are defining|/|designing a -right-hand page. Only after you have setup -\type{\setuppagenumbering[alternative=doublesided]} the left page -is available (mirrored right page). - -\starthiding - % AFO: this is the file minibook-en.tex in graphics map - \setuppapersize[A10][A10] - \setuplayout[cutspace=2mm,backspace=6mm,width=15mm] - \setupbodyfont[6pt] - \setuppagenumbering[state=stop] - \setupbackgrounds[text][text][background=color,backgroundcolor=orange] - \setupbackgrounds[header,text,footer][leftmargin][background=color,backgroundcolor=lightgreen] - \setupbackgrounds[header,text,footer][leftmargin,text,rightmargin][frame=on] - \setupfootertexts[margin][\midaligned{l}][\midaligned{r}][\midaligned{r}][\midaligned{l}] - \starttext - \midaligned{design page} \page - \setuppagenumbering[alternative={singlesided}] - \inmargin{\midaligned{m}}\midaligned{left page} \page - \inmargin{\midaligned{m}}\midaligned{right page} \page - \setuppagenumbering[alternative={singlesided,doublesided}] - \inmargin{\midaligned{m}}\midaligned{left page} \page - \inmargin{\midaligned{m}}\midaligned{right page} \page - \setuppagenumbering[alternative={doublesided}] - \inmargin{\midaligned{m}}\midaligned{left page} \page - \inmargin{\midaligned{m}}\midaligned{right page} - \stoptext -\stophiding - -\placefigure - [here] - [fig:sidedness] - {Page alternatives.} - {\startcombination[3*1] - {\externalfigure[minibook-en.pdf][type=pdf,page=2,width=2.4cm]\externalfigure[minibook-en.pdf][type=pdf,page=3,width=2.4cm]}{singlesided} - {\externalfigure[minibook-en.pdf][type=pdf,page=4,width=2.4cm]\externalfigure[minibook-en.pdf][type=pdf,page=5,width=2.4cm]}{single-double} - {\externalfigure[minibook-en.pdf][type=pdf,page=6,width=2.4cm]\externalfigure[minibook-en.pdf][type=pdf,page=7,width=2.4cm]}{doublesided} - \stopcombination} - -Note in \in{figure}[fig:sidedness] that: - -\startitemize[packed] -\item the margintext (\type{\inmargin{m}}) is always in the left margin -\item the footertext in the margin (\type{\setupfootertexts[margin][l][r][r][l]}) adapts automatically -\item the page is completely mirrored when \type{alternative=doublesided} -\stopitemize - -When designing a page ask yourself a few questions: - -\startitemize[packed] -\item do I want margin texts or margin figures -\item will I use the margin for the section numbering -\item do I have footer and/or header texts -\item do I want a double sided layout (right--left page mirrored) -\item do I use ornaments (like tabs) on the page -\item do I have navigational buttons (screen documents) -\stopitemize - -\stopsection - -\startsection[title=Defining the papersize / screensize] - -Before you can set up your page layout you have to have an idea about the paper -dimensions. The cutmarks connected by the dashed lines in \in{figure}[fig:pageareas] -indicate the papersize. In \CONTEXT\ you set up your papersize with: - -\shortsetup{\tex{setuppapersize}} - -Most common predefined papersizes in \CONTEXT\ are A0..A10 and B1..B10 for paper -and S3..S8 for screen documents. - -Mostly you will use the default setup: - -\startbuffer -\setuppapersize - [A4][A4] -\stopbuffer - -\typebuffer - -But you can also define your own paper size for specific products: - -\startbuffer -\definelayout - [postcard] - [width=15cm, - height=10cm] -\stopbuffer - -\typebuffer - -\stopsection - -\startsection[title=Defining the page layout] - -The page layout is defined by: - -\shortsetup{setuplayout} - -This command is typed in the set up area of your input file. - -\placefigure - [here] - [fig:pageparameters] - {The page parameters.} - {\externalfigure[fig-page-parameters-en.pdf][width=.8\hsize]} - -The layout of this manual was set with: - -\startbuffer -\setuplayout - [backspace=3cm, - margin=2cm, - margindistance=.5cm, - width=15cm, - topspace=2cm, - header=2cm, - footer=2cm, - height=25.7cm] -\stopbuffer - -\typebuffer - -If you want to look at your page layout you can type the command -\type{\showframe} and process one page or the whole file. The areas are shown in -a number of frames. - -The command \type{\showsetups} shows the values of the parameters. A combination -of both commands is \type{\showlayout}. - -The values of the layout parameters are available as commands. This enables you -to work more accurately when defining measures of columns, figures and tables. A -few of these parameters are explained in \in{table}[tab:fewparameters]. - -\placetable - [here,force] - [tab:fewparameters] - {A few parameters as commands.} -\starttable[|l|l|] -\HL -\NC \bf Commands \NC \bf Meaning \NC\SR -\HL -\NC \type{\makeupwidth} \NC width of the typing area \NC\FR -\NC \type{\makeupheight} \NC height of the typing area \NC\MR -\NC \type{\textwidth} \NC width of the text area \NC\MR -\NC \type{\textheight} \NC height of the text area \NC\LR -\HL -\stoptable - -If you want to define the width of a column or the height of a figure you can do -it relative to the \type{\makeupwidth} or \type{\makeupheight}. Changes in this -width or height will alter columns and figures proportionally. - -\startbuffer -\placefigure - [here] - [fig:stepgable] - {A stepgable.} - {\externalfigure[ma-cb-19][width=.6\textwidth]} -\stopbuffer - -\typebuffer - -After processing this would become: - -\getbuffer - -The other available values are (shown with \type{\showsetups}): - -\startcolumns -\switchtobodyfont[8pt] -\showsetups -\stopcolumns - -The parameter values have a global effect and are default throughout the -document. Nevertheless you might want to make slight changes in the page design -for a number of pages. - -\startbuffer -\adaptlayout[21,38][height=+.5cm] -\stopbuffer - -\typebuffer - -In this case page 21 and 38 have a height of .5~cm + \type{textheight}. - -It is advisable not to use these local changes too often. It is always better to -alter the text than to change the page layout. - -\stopsection - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-margintexts.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-margintexts.tex deleted file mode 100644 index 54ed6db6a..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-margintexts.tex +++ /dev/null @@ -1,100 +0,0 @@ -\startcomponent ma-cb-en-margintexts - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Margin texts] - -\index{margin text} - -\Command{\tex{margintext}} -\Command{\tex{inmargin}} -\Command{\tex{inleft}} -\Command{\tex{inright}} -\Command{\tex{margintitle}} - -It is very easy to put text in the margin. You just use \type{\inmargin}. - -\shortsetup{inmargin} - -You may remember one of the earlier examples: - -\startbuffer[marginpicture] -\inmargin - {\externalfigure - [ma-cb-23] - [width=.6\marginwidth]} -\stopbuffer - -\typebuffer[marginpicture] - -This would result in a figure in the \pagereference [marginpicture] -margin. You can imagine that it looks quite nice in some -documents. But be careful. The margin is rather small so the figure could become -very marginal. - -A few other examples are shown in the text below.\getbuffer -[marginpicture] - -\startbuffer -The Ridderstraat (Street of knights) \inmargin{Street of\\Knights} -is an obvious name. In the 14th and 15th centuries, nobility and -prominent citizens lived in this street. Some of their big houses -were later turned into poorhouses \inright{poorhouse}and old -peoples homes. - -Up until \inleft[low]{\tfc 1940}1940 there was a synagog in the -Ridderstraat. Some 40 Jews gathered there to celebrate their -sabbath. During the war all Jews were deported to Westerbork and -then to the extermination camps in Germany and Poland. None of -the Jewish families returned. The synagog was knocked down in -1958. -\stopbuffer - -\typebuffer - -The commands \type{\inmargin}, \type{\inleft} and \type{\inright} all have the -same function. In a two sided document \type{\inmargin} puts the margin text in -the correct margin. The \type{\\} is used for line breaking. The example above -would look like this: - -\getbuffer - -You can set up the margin text with: - -\shortsetup{setupinmargin} - -Other commands that you can use for forcing text into the margin -are listed in \in{table}[tab:margincommands]. - -\placetable - [here] - [tab:margincommands] - {Overview of margin commands.} - {\starttable[|l|l|] - \HL - \NC \bf Command \NC \bf Meaning \NC\SR - \HL - \NC \type{\ininner} \NC text in inner margin \NC\FR - \NC \type{\inouter} \NC text in outer margin \NC\MR - \NC \type{\inright} \NC text in right margin \NC\MR - \NC \type{\inleft} \NC text in left margin \NC\MR - \NC \type{\inmargin} \NC text in the margin \NC\MR - \NC \type{\inothermargin} \NC text in other margin \NC\MR - \NC \type{\margintext} \NC text in the margin \NC\LR - \HL - \stoptable} - -If you want to place more extensive text blocks in the margin there is the -command: - -\shortsetup{marginblock} - -and the accompanying command: - -\shortsetup{setupmarginblocks} - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-math.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-math.tex deleted file mode 100644 index c1430603f..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-math.tex +++ /dev/null @@ -1,524 +0,0 @@ -\startcomponent ma-cb-en-math - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[reference=formulas,title=Typesetting math] - -\startsection[title=Introduction] - -\index {math} - -\TEX\ is {\em the} typesetting program for math. However, this is not the -extensive chapter on typesetting math you might expect. We advise you to do some -further reading on typesetting formulas in \TEX. See for example: \footnote{In -this introduction on typesetting math we relied on the booklet {\em \TEX niques} -by Arthur Samuel.} - -\startitemize[packed] -\item {\em The \TeX Book} by D.E. Knuth -\item {\em The Beginners Book of \TeX} by S. Levy and R. Seroul -\stopitemize - -\startsection[title=Typesetting math] - -\index {math mode} -\index {display mode} -\index {text mode} - -Normally different conventions are applied for typesetting normal text and math -text. These conventions are \quote{known} by \TEX\ and applied accordingly when -generating a document. We can rely on \TEX\ for delivering high quality math -output. - -A number of conventions for math are: - -\startitemize[n,packed] - -\item Characters are typeset in $math\ italic$ (don't confuse this with the - normal {\it italic characters} in a font). - -\item Symbols like Greek characters ($\alpha$, $\chi$) and math symbols ($\leq$, - $\geq$, $\in$) are used. - -\item Spacing will differ from normal spacing. - -\item Math expressions have a different alignment than that of the running text. - -\item The sub and superscripts are downsized automatically, like in $a^{b}_{c}$. - -\item Certain symbols have different appearances in the inline and display mode. - -\stopitemize - -When typesetting math you have to work in the so called math mode in which math -expressions can be defined by means of plain \TEX||commands. - -Math mode has two alternatives: text mode and display mode. Math in text -mode is activated by \type{$} and \type{$}, while display mode is activated by -\type{$$} and \type{$$}. In \CONTEXT\ however, display mode is activated with -the \type{\start ... \stopformula} command pair to have more grip on vertical -spacing around the formula. - -\startbuffer -The municipality of Hasselt covers an area of 42,05 \unit{Square Kilo -Meter}. Now, if you consider a circular area of this size with the -market place of Hasselt as the center point $M$ you can calculate its -diameter with ${{1}\over{4}} \pi r^2$. -\stopbuffer - -\typebuffer - -This will become: - -\getbuffer - -The many \type{{}} (grouping) in ${{1}\over{4}} \pi r^2$ are essential for -separating operations in the expression. If you omit the outer curly braces like -this: \type{${1}\over{4} \pi r^2$}, you would get a non desired result: -${1}\over{4} \pi r^2$. - -The letters and numbers are typeset in three different sizes: text size $a+b$, -script size $\scriptstyle a+b$ and scriptscript size $\scriptscriptstyle a+b$. -These can be influenced by the commands \type{\scriptstyle} and -\type{\scriptscriptstyle}. - -Symbols like $\int$ and $\sum$ will have a different form in text and display -mode. If we type \type {$\sum_{n=1}^{m}$} or \type {$\int_{-\infty}^{+\infty}$} -we will get {$\sum_{n=1}^{m}$} and {$\int_{-\infty}^{+\infty}$}. But when you -type: - -\startbuffer -\startformula - \sum_{n=1}^{m} \quad {\rm and} \quad \int_{-\infty}^{+\infty} -\stopformula -\stopbuffer - -\typebuffer - -to get displaymode you get: - -\getbuffer - -With the commands \type {\nolimits} and \type{\limits} you can influence the -appearances of \type{\sum} and \type{\int}: - -\startbuffer -\startformula - \sum_{n=1}^{m}\nolimits - \quad {\rm and} \quad - \int_{-\infty}^{+\infty}\limits -\stopformula -\stopbuffer - -\typebuffer - -which will result in: - -\getbuffer - -For typesetting fractions there is the command \type {\over}. In \CONTEXT\ you -can use the alternative \type {\frac}. For ${\frac{a}{1+b}}+c$ we type for -instance \type {${\frac{a}{1+b}}+c$}. - -Other commands to put one thing above the other, are: - -\startbuffer[atop] -${a} \atop {b}$ -\stopbuffer -\startbuffer[choose] -${n+1} \choose {k}$ -\stopbuffer -\startbuffer[brack] -${m} \brack {n}$ -\stopbuffer -\startbuffer[brace] -${m} \brace {n-1}$ -\stopbuffer - -\starttabulate[|l|l|l|l|] -\NC \type {\atop} -\NC \typebuffer[atop] -\NC \mathstrut\getbuffer[atop] -\NC -\NC\NR -\NC \type {\choose} -\NC \typebuffer[choose] -\NC -\NC \mathstrut\getbuffer[choose] -\NC\NR -\NC \type {\brack} -\NC \typebuffer[brack] -\NC \mathstrut\getbuffer[brack] -\NC -\NC\NR -\NC \type {\brace} -\NC \typebuffer[brace] -\NC -\NC \mathstrut\getbuffer[brace] -\NC\NR -\stoptabulate - -\TEX\ can enlarge delimiters like (~) and $\{~\}$ automatically if the left and -right delimiter is preceeded by the commands \type {\left} and \type {\right} -respectively. If you type: - -\startbuffer -\startformula - 1+\left(\frac{1}{1-x^{x-2}}\right)^3 -\stopformula -\stopbuffer - -\typebuffer - -you will get: - -\getbuffer - -Sub and superscripts are invoked by \quote {\type{_}} and \quote {\type{^}}. They -have effect on the next first character so grouping with $\{$~$\}$ is necessary -in case of multi character sub and superscripts. - -In certain situations the delimiters can be preceeded by \type{\bigl}, -\type{\Bigl}, \type{\biggl} and \type{\Biggl} and their right counterparts. Even -bigger delimiters can be produced by placing \type{\left} and \type{\right} in a -\type{\vbox} construction. When we type a senseless expression like: - -\startbuffer -\startformula - \left(\vbox to 16pt{}x^{2^{2^{2^{2}}}}\right) -\stopformula -\stopbuffer - -\typebuffer - -we get: - -\getbuffer - -In display mode the following delimiters will work in the automatic enlargement -mechanism: - -\starttabulate[|l|l|l|l|l|l|l|l|] -\NC \type{\lfloor} \NC $\lfloor$ -\NC \type{\langle} \NC $\langle$ -\NC \type{\vert} \NC $\vert$ -\NC \type{\downarrow} \NC $\downarrow$ -\NC\NR -\NC \type{\rfloor} \NC $\rfloor$ -\NC \type{\rangle} \NC $\rangle$ -\NC \type{\Vert} \NC $\Vert$ -\NC \type{\Downarrow} \NC $\Downarrow$ -\NC\NR -\NC \type{\lceil} \NC $\lceil$ -\NC \type{/} \NC $/$ -\NC \type{\uparrow} \NC $\uparrow$ -\NC \type{\updownarrow} \NC $\updownarrow$ -\NC\NR -\NC \type{\rceil} \NC $\rceil$ -\NC \type{\backslash} \NC $\backslash$ -\NC \type{\Uparrow} \NC $\Uparrow$ -\NC \type{\Updownarrow} \NC $\Updownarrow$ -\NC\NR -\stoptabulate - -In display mode we should typeset only one fraction and otherwise switch to the -\type{a/b} notation. To get: - -\startformula - a_0 + {\frac{a}{a_1 + \frac{1}{a_2}}} -\stopformula - -we will not type: - -\startbuffer -\startformula - a_0+{\frac{a}{a_1+\frac{1}{a_2}}} -\stopformula -\stopbuffer - -\typebuffer - -but prefer: - -\startbuffer -\startformula - a_0 + {\frac{a}{a_1 + 1/a_2}} -\stopformula -\stopbuffer - -\typebuffer - -to obtain: - -\getbuffer - -In addition we could also use the command \type{\displaystyle}. If we would type: - -\startbuffer -\startformula - a_0 + {\frac{a}{a_1 + \frac{1}{\strut \displaystyle a_2}}} -\stopformula -\stopbuffer - -\getbuffer - -we will get: - -\getbuffer - -Below we demonstrate the commands \type{\matrix}, \type{\pmatrix}, \type{\ldots}, -\type{\cdots} and \type{\cases} without any further explanation. - -\startbuffer[a] -\startformula -\stopbuffer - -\startbuffer[c] -\stopformula -\stopbuffer - -\startbuffer[b] - A=\left(\matrix{x-\lambda & 1 & 0 \cr - 0 & x-\lambda & 1 \cr - 0 & 0 & x-\lambda \cr}\right) -\stopbuffer - -\typebuffer[a,b,c] \startformula\getbuffer[b]\stopformula - -\startbuffer[b] - A=\left|\matrix{x-\mu& 1 & 0 \cr - 0 & x-\mu & 1 \cr - 0 & 0 & x-\mu \cr}\right| -\stopbuffer - -\typebuffer[a,b,c] \startformula\getbuffer[b]\stopformula - -\startbuffer[b] - A=\pmatrix{a_{11} & a_{12} & \ldots & a_{1n} \cr - a_{21} & a_{22} & \ldots & a_{2n} \cr - \vdots & \vdots & \ddots & \vdots \cr - a_{m1} & a_{m2} & \ldots & a_{mn} \cr} -\stopbuffer - -\typebuffer[a,b,c] \startformula\getbuffer[b]\stopformula - -\startbuffer[b] - A=\pmatrix{a_{11} & a_{12} & \ldots & a_{1n} \cr - a_{21} & a_{22} & \ldots & a_{2n} \cr - \vdots & \vdots & \ddots & \vdots \cr - a_{m1} & a_{m2} & \ldots & a_{mn} \cr} -\stopbuffer - -\typebuffer[a,b,c] \startformula\getbuffer[b]\stopformula - -\startbuffer[b] - |x|=\cases{ x, & if $x\geq0$; \cr - -x, & otherwise \cr} -\stopbuffer - -\typebuffer[a,b,c] \startformula\getbuffer[b]\stopformula - -To typeset normal text in a math expression we have to consider the following. -First a space is not typeset in math mode so we have to enforce one with -\type{ \ } (backslash). Second we have to indicate a font switch, because the text should -not appear in $math\ italic$ but in the actual font. So in \CONTEXT\ we have to -type: - -\startbuffer -\startformula - x^3+{\tf lower\ order\ terms} -\stopformula -\stopbuffer - -\typebuffer - -to get: - -\getbuffer - -The math functions like $\sin$ and $\tan$ that have to be typeset in the actual -font are predefined functions in \TEX: - -\starttabulate[|l|l|l|l|l|l|l|l|] -\NC \type{\arccos} \NC \type{\cos} \NC \type{\csc} \NC \type{\exp} \NC \type{\ker} \NC \type{\limsup} \NC \type{\min} \NC \type{\sinh} \NC\NR -\NC \type{\arcsin} \NC \type{\cosh} \NC \type{\deg} \NC \type{\gcd} \NC \type{\lg} \NC \type{\ln} \NC \type{\Pr} \NC \type{\sup} \NC\NR -\NC \type{\arctan} \NC \type{\cot} \NC \type{\det} \NC \type{\hom} \NC \type{\lim} \NC \type{\log} \NC \type{\sec} \NC \type{\tan} \NC\NR -\NC \type{\arg} \NC \type{\coth} \NC \type{\dim} \NC \type{\inf} \NC \type{\liminf} \NC \type{\max} \NC \type{\sin} \NC \type{\tanh} \NC\NR -\stoptabulate - -If we type the sinus or limit function: - -\startbuffer -\startformula - \sin 2\theta=2\sin\theta\cos\theta - \quad {\tf or} \quad - \lim_{x\to0}{\frac{\sin x}{x}}=1 -\stopformula -\stopbuffer - -\typebuffer - -we get: - -\getbuffer - -Alignment in math expressions may need special attention. In multi line -expressions we sometimes need alignment at the \quote {$=$} sign. This is done by -the command \type{\eqalign}. If we type: - -\startbuffer -\startformula - \eqalign{ - ax^2+bx+c &= 0 \cr - x &= \frac{-b \pm \sqrt{b^2-4ac}}{2a} \cr} -\stopformula -\stopbuffer - -\typebuffer - -we get: - -\getbuffer - -Sometimes alignment at more than one location is wanted. Watch the second line in -the next example and see how it is defined: - -\startbuffer -\startformula - \eqalign{ - ax+bx+\cdots+yx+zx & = x(a +b+ \cdots \cr - &\phantom{= x(a~}+y+z) \cr - & = y \cr} -\stopformula -\stopbuffer - -\typebuffer - -This results in: - -\getbuffer - -Next to the command \type{\phantom} there are \type{\hphantom} without height and -depth and \type{\vphantom} without width. - -You can rely on \TEX\ for spacing within a math expression. In some situations, -however you may want to influence spacing. This is done by: - -\starttabulate[|l|r|] -\NC \type{\!} \NC $-\frac{1}{6}$\type{\quad} \NC\NR -\NC \type{\,} \NC $\frac{1}{6}$\type{\quad} \NC\NR -\NC \type{\>} \NC $\frac{2}{9}$\type{\quad} \NC\NR -\NC \type{\;} \NC $\frac{5}{18}$\type{\quad} \NC\NR -\stoptabulate - -These \quote {spaces} are related to \type {\quad} that stands for the width of -the capital \quote{M}. - -The use of the command \type{\prime} speaks for itself. For example if would want -$y_1^\prime+y_2^{\prime\prime}$ you should type -\type{$y_1^\prime+y_2^{\prime\prime}$}. - -An expression like $\root 3 \of {x^2+y^2}$ is obtained by \type{$\root 3 \of -{x^2+y^2}$}. - -At the end of this section we point to the command \type{\mathstrut} which we can -use to enforce consistency, for example within the root symbol. With -\type{$\sqrt{\mathstrut a}+\sqrt{\mathstrut d}+\sqrt{\mathstrut y}$} we will get -$\sqrt{\mathstrut a}+\sqrt{\mathstrut d}+\sqrt{\mathstrut y}$ in stead of -$\sqrt{a}+\sqrt{d}+\sqrt{y}$. - -See \in{appendix}[overviews] for a complete overview of math commands. - -\stopsection - -\startsection[title=Placing formulas] - -\index{formula} - -\Command{\tex{placeformula}} -\Command{\tex{startformula}} -\Command{\tex{setupformulas}} - -You can typeset numbered formulas with: - -\shortsetup{placeformula} -\shortsetup{startformula} - -Two examples: - -\startbuffer -\placeformula[formula:aformula] - \startformula - y=x^2 - \stopformula - -\placeformula - \startformula - \int_0^1 x^2 dx - \stopformula -\stopbuffer - -\typebuffer - -\getbuffer - -The command \type{\placeformula} handles spacing around the formulas and the -numbering. The bracket pair is optional and is used for referencing and to switch -numbering on and off. - -\startbuffer -\placeformula[first one] -\startformula - y=x^2 -\stopformula - -\placeformula[middle one] -\startformula - y=x^3 -\stopformula - -\placeformula[last one] -\startformula - y=x^4 -\stopformula -\stopbuffer - -\getbuffer - -\in{Formula}[middle one] was typed like this: - -\startbuffer -\placeformula[middle one] - \startformula - y=x^3 - \stopformula -\stopbuffer - -\typebuffer - -The lable \type{[middle one]} is used for refering to this formula. Such a -reference is made with \type{\in{formula}[middle one]}. - -If no numbering is required you type: - -\type{\placeformula[-]} - -Numbering of formulas is set up with \type{\setupnumbering}. In this manual -numbering is set up with \type{\setupnumbering[way=bychapter]}. This means that -the chapter number preceeds the formula number and numbering is reset with each -new chapter. For reasons of consistency the tables, figures, intermezzi etc. are -numbered in the same way. Therefore you use \type{\setupnumbering} in the set up -area of your input file. - -Formulas can be set up with: - -\shortsetup{setupformulae} - -\stopsection - -\stopchapter - -\stopcomponent - diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-mathcharacters.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-mathcharacters.tex deleted file mode 100644 index d7f09e89a..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-mathcharacters.tex +++ /dev/null @@ -1,330 +0,0 @@ -\startcomponent ma-cb-en-mathcharacters - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[reference=overviews,title=Commands in math mode] - -\index{symbols in math mode} - -\startsection[title=Greek characters] - -\starttabulate[|l|l|l|l|l|l|l|l|l|] -\NC \NC $\alpha$ \NC \type{\alpha} -\NC \NC $\iota$ \NC \type{\iota} -\NC \NC $\varrho$ \NC \type{\varrho} \NC\NR -\NC \NC $\beta$ \NC \type{\beta} -\NC \NC $\kappa$ \NC \type{\kappa} -\NC $\Sigma$ \NC $\sigma$ \NC \type{\sigma} \NC\NR -\NC $\Gamma$ \NC $\gamma$ \NC \type{\gamma} -\NC $\Lambda$ \NC $\lambda$ \NC \type{\lambda} -\NC \NC $\varsigma$ \NC \type{\varsigma} \NC\NR -\NC $\Delta$ \NC $\delta$ \NC \type{\delta} -\NC \NC $\mu$ \NC \type{\mu} -\NC \NC $\tau$ \NC \type{\tau} \NC\NR -\NC \NC $\epsilon$ \NC \type{\epsilon} -\NC \NC $\nu$ \NC \type{\nu} -\NC \NC $\upsilon$ \NC \type{\upsilon} \NC\NR -\NC \NC $\varepsilon$ \NC \type{\varepsilon} -\NC $\Xi$ \NC $\xi$ \NC \type{\xi} -\NC $\Phi$ \NC $\phi$ \NC \type{\phi} \NC\NR -\NC \NC $\zeta$ \NC \type{\zeta} -\NC \NC $o$ \NC \type{o} -\NC \NC $\varphi$ \NC \type{\varphi} \NC\NR -\NC \NC $\eta$ \NC \type{\eta} -\NC $\Pi$ \NC $\pi$ \NC \type{\pi} -\NC \NC $\chi$ \NC \type{\chi} \NC\NR -\NC $\Theta$ \NC $\theta$ \NC \type{\theta} -\NC \NC $\varpi$ \NC \type{\varpi} -\NC $\Psi$ \NC $\psi$ \NC \type{\psi} \NC\NR -\NC \NC $\vartheta$ \NC \type{\vartheta} -\NC \NC $\rho$ \NC \type{\rho} -\NC $\Omega$ \NC $\omega$ \NC \type{\omega} \NC\NR -\stoptabulate - -\stopsection - -\startsection[title=Special symbols] - -\starttabulate[|l|l|l|l|l|l|] -\NC $\aleph$ \NC \type{\aleph} -\NC $\prime$ \NC \type{\prime} -\NC $\forall$ \NC \type{\forall} -\NC\NR -\NC $\hbar$ \NC \type{\hbar} -\NC $\emptyset$ \NC \type{\emptyset} -\NC $\exists$ \NC \type{\exists} -\NC\NR -\NC $\imath$ \NC \type{\imath} -\NC $\nabla$ \NC \type{\nabla} -\NC $\neg$ \NC \type{\neg} -\NC\NR -\NC $\jmath$ \NC \type{\jmath} -\NC $\surd$ \NC \type{\surd} -\NC $\flat$ \NC \type{\flat} -\NC\NR -\NC $\ell$ \NC \type{\ell} -\NC $\top$ \NC \type{\top} -\NC $\natural$ \NC \type{\natural} -\NC\NR -\NC $\wp$ \NC \type{\wp} -\NC $\bot$ \NC \type{\bot} -\NC $\sharp$ \NC \type{\sharp} -\NC\NR -\NC $\Re$ \NC \type{\Re} -\NC $\Vert$ \NC \type{\Vert} -\NC $\clubsuit$ \NC \type{\clubsuit} -\NC\NR -\NC $\Im$ \NC \type{\Im} -\NC $\angle$ \NC \type{\angle} -\NC $\diamondsuit$ \NC \type{\diamondsuit} -\NC\NR -\NC $\partial$ \NC \type{\partial} -\NC $\triangle$ \NC \type{\triangle} -\NC $\heartsuit$ \NC \type{\heartsuit} -\NC\NR -\NC $\infty$ \NC \type{\infty} -\NC $\backslash$ \NC \type{\backslash} -\NC $\spadesuit$ \NC \type{\spadesuit} -\NC\NR -\stoptabulate - -\stopsection - -\startsection[title=Operators in addition to $+$, $-$ and $*$] - -\starttabulate[|l|l|l|l|l|l|] -\NC $\pm$ \NC \type{\pm} -\NC $\cap$ \NC \type{\cap} -\NC $\vee$ \NC \type{\vee} -\NC\NR -\NC $\mp$ \NC \type{\mp} -\NC $\cup$ \NC \type{\cup} -\NC $\wedge$ \NC \type{\wedge} -\NC\NR -\NC $\setminus$ \NC \type{\setminus} -\NC $\uplus$ \NC \type{\uplus} -\NC $\oplus$ \NC \type{\oplus} -\NC\NR -\NC $\cdot$ \NC \type{\cdot} -\NC $\sqcap$ \NC \type{\sqcap} -\NC $\ominus$ \NC \type{\ominus} -\NC\NR -\NC $\times$ \NC \type{\times} -\NC $\sqcup$ \NC \type{\sqcup} -\NC $\otimes$ \NC \type{\otimes} -\NC\NR -\NC $\ast$ \NC \type{\ast} -\NC $\triangleleft$ \NC \type{\triangleleft} -\NC $\oslash$ \NC \type{\oslash} -\NC\NR -\NC $\star$ \NC \type{\star} -\NC $\triangleright$ \NC \type{\triangleright} -\NC $\odot$ \NC \type{\odot} -\NC\NR -\NC $\diamond$ \NC \type{\diamond} -\NC $\wr$ \NC \type{\wr} -\NC $\dagger$ \NC \type{\dagger} -\NC\NR -\NC $\circ$ \NC \type{\circ} -\NC $\bigcirc$ \NC \type{\bigcirc} -\NC $\ddagger$ \NC \type{\ddagger} -\NC\NR -\NC $\bullet$ \NC \type{\bullet} -\NC $\bigtriangleup$ \NC \type{\bigtriangleup} -\NC $\amalg$ \NC \type{\amalg} -\NC\NR -\NC $\div$ \NC \type{\div} -\NC $\bigtriangledown$ \NC \type{\bigtriangledown} -\NC ~ \NC ~ -\NC\NR -\stoptabulate - -\stopsection - -\startsection[title=Operators] - -\starttabulate[|l|l|l|l|l|l|] -\NC $\sum$ \NC \type{\sum} -\NC $\prod$ \NC \type{\prod} -\NC $\coprod$ \NC \type{\coprod} -\NC\NR -\NC $\int$ \NC \type{\int} -\NC $\oint$ \NC \type{\oint} -\NC $\bigcap$ \NC \type{\bigcap} -\NC\NR -\NC $\bigcup$ \NC \type{\bigcup} -\NC $\bigsqcup$ \NC \type{\bigsqcup} -\NC $\bigvee$ \NC \type{\bigvee} -\NC\NR -\NC $\bigwedge$ \NC \type{\bigwedge} -\NC $\bigodot$ \NC \type{\bigodot} -\NC $\bigotimes$ \NC \type{\bigotimes} -\NC\NR -\NC $\bigoplus$ \NC \type{\bigoplus} -\NC $\biguplus$ \NC \type{\biguplus} -\NC \NC -\NC\NR -\stoptabulate - -\stopsection - -\startsection[title=Relation in addition to $>$, $<$ and $=$] - -\starttabulate[|l|l|l|l|l|l|] -\NC $\leq$ \NC \type{\leq} -\NC $\geq$ \NC \type{\geq} -\NC $\equiv$ \NC \type{\equiv} -\NC\NR -\NC $\prec$ \NC \type{\prec} -\NC $\succ$ \NC \type{\succ} -\NC $\sim$ \NC \type{\sim} -\NC\NR -\NC $\preceq$ \NC \type{\preceq} -\NC $\succeq$ \NC \type{\succeq} -\NC $\simeq$ \NC \type{\simeq} -\NC\NR -\NC $\ll$ \NC \type{\ll} -\NC $\gg$ \NC \type{\gg} -\NC $\asymp$ \NC \type{\asymp} -\NC\NR -\NC $\subset$ \NC \type{\subset} -\NC $\supset$ \NC \type{\supset} -\NC $\approx$ \NC \type{\approx} -\NC\NR -\NC $\subseteq$ \NC \type{\subseteq} -\NC $\supseteq$ \NC \type{\supseteq} -\NC $\cong$ \NC \type{\cong} -\NC\NR -\NC $\sqsubseteq$ \NC \type{\sqsubseteq} -\NC $\sqsupseteq$ \NC \type{\sqsupseteq} -\NC $\bowtie$ \NC \type{\bowtie} -\NC\NR -\NC $\in$ \NC \type{\in} -\NC $\ni$ \NC \type{\ni} -\NC $\propto$ \NC \type{\propto} -\NC\NR -\NC $\vdash$ \NC \type{\vdash} -\NC $\dashv$ \NC \type{\dashv} -\NC $\models$ \NC \type{\models} -\NC\NR -\NC $\smile$ \NC \type{\smile} -\NC $\mid$ \NC \type{\mid} -\NC $\doteq$ \NC \type{\doteq} -\NC\NR -\NC $\frown$ \NC \type{\frown} -\NC $\parallel$ \NC \type{\parallel} -\NC $\perp$ \NC \type{\perp} -\NC\NR -\stoptabulate - -\stopsection - -\startsection[title=Negated relations] - -\starttabulate[|l|l|l|l|l|l|] -\NC $\not<$ \NC \type{\not}\type{<} -\NC $\not>$ \NC \type{\not}\type{>} -\NC $\not=$ \NC \type{\not}\type{=} -\NC\NR -\NC $\not\leq$ \NC \type{\not}\type{\leq} -\NC $\not\geq$ \NC \type{\not}\type{\geq} -\NC $\not\equiv$ \NC \type{\not}\type{\equiv} -\NC\NR -\NC $\not\prec$ \NC \type{\not}\type{\prec} -\NC $\not\succ$ \NC \type{\not}\type{\succ} -\NC $\not\sim$ \NC \type{\not}\type{\sim} -\NC\NR -\NC $\not\preceq$ \NC \type{\not}\type{\preceq} -\NC $\not\succeq$ \NC \type{\not}\type{\succeq} -\NC $\not\simeq$ \NC \type{\not}\type{\simeq} -\NC\NR -\NC $\not\subset$ \NC \type{\not}\type{\subset} -\NC $\not\supset$ \NC \type{\not}\type{\supset} -\NC $\not\approx$ \NC \type{\not}\type{\approx} -\NC\NR -\NC $\not\subseteq$ \NC \type{\not}\type{\subseteq} -\NC $\not\supseteq$ \NC \type{\not}\type{\supseteq} -\NC $\not\cong$ \NC \type{\not}\type{\cong} -\NC\NR -\NC $\not\sqsubseteq$ \NC \type{\not}\type{\sqsubseteq} -\NC $\not\sqsupseteq$ \NC \type{\not}\type{\sqsupseteq} -\NC $\not\asymp$ \NC \type{\not}\type{\asymp} -\NC\NR -\stoptabulate - -\stopsection - -\startsection[title=Some arrows] - -\starttabulate[|l|l|l|l|l|l|] -\NC $\leftarrow$ \NC \type{\leftarrow} -\NC $\longleftarrow$ \NC \type{\longleftarrow} -\NC $\uparrow$ \NC \type{\uparrow} -\NC\NR -\NC $\Leftarrow$ \NC \type{\Leftarrow} -\NC $\Longleftarrow$ \NC \type{\Longleftarrow} -\NC $\Uparrow$ \NC \type{\Uparrow} -\NC\NR -\NC $\rightarrow$ \NC \type{\rightarrow} -\NC $\longrightarrow$ \NC \type{\Rightarrow} -\NC $\downarrow$ \NC \type{\downarrow} -\NC\NR -\NC $\Rightarrow$ \NC \type{\Rightarrow} -\NC $\Longrightarrow$ \NC \type{\Longrightarrow} -\NC $\Downarrow$ \NC \type{\Downarrow} -\NC\NR -\NC $\leftrightarrow$ \NC \type{\leftrightarrow} -\NC $\longleftrightarrow$ \NC \type{\longleftrightarrow} -\NC $\updownarrow$ \NC \type{\updownarrow} -\NC\NR -\NC $\Leftrightarrow$ \NC \type{\Leftrightarrow} -\NC $\Longleftrightarrow$ \NC \type{\Longleftrightarrow} -\NC $\Updownarrow$ \NC \type{\Updownarrow} -\NC\NR -\NC $\mapsto$ \NC \type{\mapsto} -\NC $\longmapsto$ \NC \type{\longmapsto} -\NC $\nearrow$ \NC \type{\nearrow} -\NC\NR -\NC $\searrow$ \NC \type{\searrow} -\NC $\swarrow$ \NC \type{\swarrow} -\NC $\nwarrow$ \NC \type{\nwarrow} -\NC\NR -\NC $\hookleftarrow$ \NC \type{\hookleftarrow} -\NC $\hookrightarrow$ \NC \type{\hookrightarrow} -\NC ~ \NC ~ -\NC\NR -\stoptabulate - -\stopsection - -\startsection[title=Alternative commands] - -\starttabulate[|l|l|l|l|l|l|l|l|l|l|] -\NC $\ne$ \NC \type{\ne} -\NC $\{$ \NC {\tttf\leftargument} -\NC $\land$ \NC \type{\land} -\NC $\to$ \NC \type{\to} -\NC $\vert$ \NC \type{\vert} -\NC\NR -\NC $\le$ \NC \type{\le} -\NC $\}$ \NC {\tttf\rightargument} -\NC $\lor$ \NC \type{\lor} -\NC $\gets$ \NC \type{\gets} -\NC $\Vert$ \NC \type{\Vert} -\NC\NR -\NC $\ge$ \NC \type{\ge} -\NC $\owns$ \NC \type{\owns} -\NC $\lnot$ \NC \type{\lnot} -\NC \NC -\NC \NC -\NC\NR -\stoptabulate - -\stopsection - -\stopchapter - -\stopcomponent - diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-metapost.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-metapost.tex deleted file mode 100644 index e50bed036..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-metapost.tex +++ /dev/null @@ -1,75 +0,0 @@ -\startcomponent ma-cb-en-metapost - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Graphical extension / \METAPOST] - -\index[metapost]{\METAPOST} -\index{graphical features} - -The graphical possibilities of \TEX||related macro packages are rather limited. -However, by using the graphical package \METAPOST\ of John Hobby a complete range -of graphical features has become available that may improve the look of your -documents. - -In \CONTEXT\ there is a direct link to \METAPOST\ so users can apply the features -of \METAPOST\ directly into their documents. The chapter headers and page numbers -of this manual are extended by some graphical elements that are generated by -\METAPOST. - -If you look carefully at these \METAPOST\ extensions you will notice a lot of -contextual adaptation (width and height dependend) and randomization. So you can do -things in your document that are not possible in other typesetting applications. - -A more practical example (for a mathematician at least) is drawn in \in {figure} -[fig:metapostexample]: - -\startbuffer -\startreusableMPgraphic{origin} - path pb; pb:=(5.5cm,0cm)..(10.5cm,0cm); - path qb; qb:=(8cm,-1cm)..(8cm,2.5cm); - pickup pencircle scaled 0.5mm; - drawarrow pb; - drawarrow qb; - draw thelabel.rt(btex $x$ etex,(10.6cm,0cm)); - draw thelabel.top(btex $y$ etex,(8cm,2.6cm)); - path l; l:=(5.5cm,-0.5cm)..(10.5cm,2cm); - pickup pencircle scaled 0.3mm; - draw l withcolor blue ; - pair A; A:=(6cm,-0.25cm); - pair B; B:=(9.3cm,1.4cm); - pair C; C:=(9.3cm,-0.25cm); - pickup pencircle scaled 0.15cm; - drawdot A; drawdot B; drawdot C; - draw thelabel.lrt(btex $\scriptstyle P_1(x_1,y_1)$ etex ,A); - draw thelabel.lrt(btex $\scriptstyle P_2(x_2,y_2)$ etex ,B); - draw thelabel.bot(btex $\scriptstyle P(x_2,y_1)$ etex ,C); - path s; s:=A..(9.3cm,-0.25cm); - draw s dashed (evenly scaled 1mm) withpen pencircle scaled 0.3mm; - path t; t:=B..(9.3cm,-0.25cm); - draw t dashed (evenly scaled 1mm) withpen pencircle scaled 0.3mm; -\stopreusableMPgraphic -\stopbuffer - -\getbuffer - -\placefigure - [here] - [fig:metapostexample] - {\METAPOST\ example.} - {\reuseMPgraphic{origin}} - -This example is taken from the mathematical text book {\em Algetrigulus} by -Philip Brown. All graphics in his book are made by means of \METAPOST. This -one is defined by: - -\typebuffer - -The usage and features of \METAPOST\ within \CONTEXT\ are described in the -extensive \goto {\METAFUN\ manual} [ url (manual:metafun) ]. - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-modules.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-modules.tex deleted file mode 100644 index 4f92e8e47..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-modules.tex +++ /dev/null @@ -1,45 +0,0 @@ -\startcomponent ma-cb-en-modules - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Using modules] - -%% VZ: many new modules was added (see ma-cb-cz-modules.tex) - -\index{module} - -\Command{\tex{usemodule}} - -For reasons of efficiency \CONTEXT\ comes with a number of modules that contain -specific functionality. Loading a module is done in the set up area of your input -file by means of: - -\shortsetup{usemodule} - -When you load a module \CONTEXT\ looks for a file with the following (prefix-)name: - -\startitemize[packed] -\item m-modulename (core module) -\item p-modulename (private module) -\item s-modulename (\CONTEXT\ style file) -\item x-modulename (XML module) -\item t-modulename (third party module) -\item modulename -\stopitemize - -A few example core modules are: - -\startitemize[packed] -\item m-fields (\type{m-fields.mkiv}): for PDF forms -\item m-morse (\type{m-morse.mkvi}): for morse -\item m-spreadsheet (\type{m-spreadsheet.mkiv}): for spreadsheets -\item m-visual (\type{m-visual.mkiv}): for visual debugging -\item m-zint (\type{m-zint.mkiv}): for generating bar codes -\item s-pre-** (\type{s-pre-**}): for presentations -\stopitemize - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-pagebackgrounds.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-pagebackgrounds.tex deleted file mode 100644 index ff7bf0b4d..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-pagebackgrounds.tex +++ /dev/null @@ -1,93 +0,0 @@ -\startcomponent ma-cb-en-pagebackgrounds - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Backgrounds in page areas] - -\index{page areas} -\index{background+page areas} - -\Command{\tex{setupbackgrounds}} - -The page background can be set, with: - -\shortsetup{setupbackgrounds} - -The first two bracket pairs are used to define the page areas. The last bracket -pair is used for set up. - -\startbuffer -\hbox - {\framed[width=1.5cm,frame=off] {} - \framed[width=2cm,frame=off] {left} - \framed[width=2.5cm,frame=off] {left} - \framed[width=3cm,frame=off] {text} - \framed[width=2.5cm,frame=off] {right} - \framed[width=2cm,frame=off] {right}} -\hbox - {\framed[width=1.5cm,frame=off] {} - \framed[width=2cm,frame=off] {edge} - \framed[width=2.5cm,frame=off] {margin} - \framed[width=3cm,frame=off] {} - \framed[width=2.5cm,frame=off] {margin} - \framed[width=2cm,frame=off] {edge}} -\hbox - {\framed[width=1.5cm,frame=off] {top} - \framed[width=2cm] {} - \framed[width=2.5cm] {} - \framed[width=3cm] {} - \framed[width=2.5cm] {} - \framed[width=2cm] {}} -\hbox - {\framed[width=1.5cm,frame=off] {header} - \framed[width=2cm] {} - \framed[width=2.5cm,background=screen] {} - \framed[width=3cm,background=screen] {} - \framed[width=2.5cm,background=screen] {} - \framed[width=2cm] {}} -\hbox - {\framed[width=1.5cm,frame=off,height=3cm] {text} - \framed[width=2cm,height=3cm] {} - \framed[width=2.5cm,height=3cm,background=screen]{} - \framed[width=3cm,height=3cm,background=screen] {} - \framed[width=2.5cm,height=3cm,background=screen]{} - \framed[width=2cm,height=3cm] {}} -\hbox - {\framed[width=1.5cm,frame=off] {footer} - \framed[width=2cm] {} - \framed[width=2.5cm,background=screen] {} - \framed[width=3cm,background=screen] {} - \framed[width=2.5cm,background=screen] {} - \framed[width=2cm] {}} -\hbox - {\framed[width=1.5cm,frame=off] {bottom} - \framed[width=2cm] {} - \framed[width=2.5cm] {} - \framed[width=3cm] {} - \framed[width=2.5cm] {} - \framed[width=2cm] {}} -\stopbuffer - -\placefigure - [here] - [fig:pageareas] - {The page areas defined in \type{\setupbackgrounds}.} - {\tt\getbuffer} - -If you want to have backgrounds in the gray areas of the page layout of -\in{figure}[fig:pageareas] you type: - -\startbuffer -\setupbackgrounds - [header,text,footer] - [leftmargin,text,rightmargin] - [background=screen] -\stopbuffer - -\typebuffer - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-pages.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-pages.tex deleted file mode 100644 index 61e2d6ce9..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-pages.tex +++ /dev/null @@ -1,208 +0,0 @@ -\startcomponent ma-cb-en-pages - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Page breaking and page numbering] - -\index{page breaking} -\index{page numbering} - -\Command{\tex{page}} -\Command{\tex{setuppagenumbering}} -\Command{\tex{setupuserpagenumber}} - -\startsection[title=Page break] - -A page can be enforced or blocked by: - -\shortsetup{page} - -The options can be stated within the brackets. The options and their meaning are -presented in \in{table}[tab:page options]. - -\placetable - [] - [tab:page options] - {Page options.} -\starttable[|l|l|] -\HL -\NC \bf Option \NC \bf Meaning \NC\SR -\HL -\NC \type{yes} \NC enforce a page \NC\FR -\NC \type{makeup} \NC enforce a page without filling \NC\MR -\NC \type{no} \NC no page \NC\MR -\NC \type{preference} \NC prefer a new page here \NC\MR -\NC \type{bigpreference} \NC great preference for a new page here \NC\MR -\NC \type{left} \NC next page is a left handside page \NC\MR -\NC \type{right} \NC next page is a right handside page \NC\MR -\NC \type{disable} \NC following commands have no effect \NC\MR -\NC \type{last} \NC add pages till even number is reached \NC\MR -\NC \type{quadruple} \NC add pages till a multiple of four is reached \NC\MR -\NC \type{even} \NC next page is even \NC\MR -\NC \type{odd} \NC next page in odd \NC\MR -\NC \type{blank} \NC no page number \NC\MR -\NC \type{empty} \NC insert an empty page \NC\MR -\NC \type{reset} \NC following commands do have effect \NC\MR -\NC \type{start} \NC from now on page commands have effect \NC\MR -\NC \type{stop} \NC from now on page commands have no effect \NC\LR -\HL -\stoptable - -\stopsection - -\startsection[title=Page numbering] - -Numbering pages is done automatically by \CONTEXT. However, numbering the pages -the way you want it may take some effort. - -A rather simple \type{\start ... \stoptext} document will be numbered from -$1 .. n$ (where $n$ is the last page). If you want your document to number -its pages alphabetical you can type: - -\startbuffer -\setupuserpagenumber - [numberconversion=character] -\stopbuffer - -\typebuffer - -in the setup area of your file. - -You can enforce a page number with: - -\starttyping -\setupuserpagenumber[number=25] -\stoptyping - -\shortsetup{setupuserpagenumber} - -The options of the \type{\setupuserpagenumber} command are given in -\in{table}[tab:user page number options]. - -\placetable - [] - [tab:user page number options] - {Page numbering: numbering options.} -\starttable[|l|l|] -\HL -\NC \bf Option \NC \bf Meaning \NC\SR -\HL -\NC \type{way} \NC how to number the document \NC\FR -\NC \type{prefix} \NC use pagenumber prefix \NC\MR -\NC \type{prefixset} \NC use defined prefixset \NC\MR -\NC \type{prefixseparatorset} \NC use defined separator \NC\MR -\NC \type{state} \NC start -- stop page numbering \NC\MR -\NC \type{number} \NC define page number \NC\MR -\NC \type{numberconversion} \NC convert page number \NC\MR -\NC \type{numberconversionset} \NC used defined conversion set \NC\LR -\HL -\stoptable - -The \type{prefixset}, \type{prefixseparatorset} and the \type{numberconversionset} -options are defined with the \type{\defineprefixset}, \type{\defineseparatorset} -and \type{\defineconversionset} respectively. - -This manual uses the \CONTEXT\ standard document section blocks: frontpart, -bodymatter and appendices. These section blocks are numbered with roman -characters, numeral digits and characters respectively. - -\startbuffer -\defineconversionset - [frontpart:pagenumber][][romannumerals] - -\defineconversionset - [bodypart:pagenumber] [][numbers] - -\defineconversionset - [appendix:pagenumber] [][Characters] -\stopbuffer - -\typebuffer - -At the start of each section block the number is reset to i, 1 and A respectively. - -The same effect would have been obntained with: - -\startbuffer -\startsectionblockenvironment[frontpart] - \setupuserpagenumber[numberconversion=romannumerals] -\stopsectionblockenvironment -\stopbuffer - -\typebuffer - -Page numbering and the location of the page numbers can be set up with: - -\shortsetup{setuppagenumbering} - -The options of this command are shown in \in{table}[tab:page numbering options]: - -\placetable - [] - [tab:page numbering options] - {Page numbering: layout options.} -\starttable[|l|l|] -\HL -\NC \bf Option \NC \bf Meaning \NC\SR -\HL -\NC \type{alternative} \NC page layout: single or double sided \NC\MR -\NC \type{location} \NC location of page number on page \NC\MR -\NC \type{width} \NC width of pagen umber \NC\MR -\NC \type{left} \NC text left of page number \NC\MR -\NC \type{right} \NC text right of page number \NC\MR -\NC \type{page} \NC \unknown \NC\MR -\NC \type{state} \NC start -- stop page numbering \NC\MR -\NC \type{command} \NC invoke command \NC\MR -\NC \type{style} \NC set character style \NC\MR -\NC \type{color} \NC set color \NC\LR -\HL -\stoptable - -Note that this is also the command that indicates that your document is single or -double sided which has an effect on the left-right page layout. - -\startbuffer -\setuppagenumbering - [alternative=doublesided] -\stopbuffer - -\typebuffer - -In this manual page numbering is set up with: - -\starttyping -\setuppagenumbering - [location={footer,middle}, - command=\NummerCommando] -\stoptyping - -The \type{\NummerCommando} uses \METAPOST\ to draw a unique random image around -each page number. - -You can recal a page number with \type{\userpagenumber}. If you set up your headertext -with: - -\startbuffer - \setupheadertexts - [Page \userpagenumber\ of \lastuserpagenumber] -\stopbuffer - -\typebuffer - -You would get a header with the actual page number and the total of pages (in that -section block). - -The actual page number and the real page number may differ since there may be pages -or sections that in your document that are not numbered. If you feel the need to -display the real page number there is the command \type{\realpagenumber}. - -Please refer to the \goto {\CONTEXTWIKI} [ -url(http://wiki.contextgarden.net/Command/setupuserpagenumber) ] for more -details. - -\stopchapter - -\stopcomponent - diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-paragraphs.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-paragraphs.tex deleted file mode 100644 index 668b6ab01..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-paragraphs.tex +++ /dev/null @@ -1,280 +0,0 @@ -\startcomponent ma-cb-en-paragraphs - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Paragraph spacing] - -\startsection[title=Introduction] - -\index{paragraph} - -\Command{\tex{par}} -\Command{\tex{paragraph}} - -In \TEX\ and \CONTEXT\ the most important unit of text is the paragraph. You can -start a new paragraph by: - -\startitemize[packed] -\item an empty line -\item the \TEX\ command \type{\par} -\stopitemize - -In your \ASCII\ input file you should use empty lines as paragraph separators. -This will lead to a readable, clearly structured and well organized file and will -prevent mistakes. - -In situations where a command has to be closed explicitly you should use -\type{\par}. - -\startbuffer -During one of the wars Hasselt lay under siege. After some -time the city was famine stricken, everything edible was -eaten. Except for one cow. The cow was kept alive and -treated very well. \par -Once a day the citizens of Hasselt took the cow for a walk -on the ramparts. The besiegers saw the well fed cow and -became very discouraged. They broke up their camps and -Hasselt was saved. \par -In the Hoogstraat in Hasselt there is a stone tablet with a -representation of the cow that commemorates the siege and -the shrewdness of the citizens of Hasselt. -\stopbuffer - -\typebuffer - -This could also be typed without \type{\par}s and a few empty lines. - -\startbuffer -During one of the wars Hasselt lay under siege. After some -time the city was famine stricken, everything edible was -eaten. Except for one cow. The cow was kept alive and -treated very well. - -Once a day the citizens of Hasselt took the cow for a walk -on the ramparts. The besiegers saw the well fed cow and -became very discouraged. They broke up their camps and -Hasselt was saved. - -In the Hoogstraat in Hasselt there is a stone tablet with a -representation of the cow that commemorates the siege and -the wisdom of the citizens of Hasselt. -\stopbuffer - -\typebuffer - -\stopsection - -\startsection[title=Inter paragraph spacing] - -\index{inter paragraph spacing} - -\Command{\tex{setupwhitespace}} -\Command{\tex{nowhitespace}} -\Command{\tex{whitespace}} -\Command{\tex{startlinecorrection}} % VZ 2006-11-15 setup->start -\Command{\tex{blank}} -\Command{\tex{setupblank}} -\Command{\tex{startpacked}} -\Command{\tex{startunpacked}} - -The vertical spacing between paragraphs can be specified by: - -\shortsetup{setupwhitespace} - -This document is produced with \type{\setupwhitespace[medium]}. - -When inter paragraph spacing is specified there are two commands available that -are seldom needed: - -\starttyping -\nowhitespace -\whitespace -\stoptyping - -When a paragraph consists of a horizontal line or a framed text like this: - -\startbuffer -\framed{Ridderstraat 27, 8061GH Hasselt} -\stopbuffer - -\getbuffer - -Sometimes spacing is suboptimal. For that purpose you could carry out a -correction with: - -\shortsetup{startlinecorrection} - -So if you would type: - -\startbuffer -\startlinecorrection -\framed{Ridderstraat 27, 8061GH Hasselt} -\stoplinecorrection -\stopbuffer - -\typebuffer - -you will get a better output. Only use these commands if really needed! - -\getbuffer - -Another command to deal with vertical spacing is: - -\shortsetup{blank} - -The bracket pair is optional and within the bracket pair you can type the amount -of spacing. Keywords like \type{small}, \type{medium} and \type{big} are related -to the fontsize. - -\startbuffer -In official writings Hasselt always has the affix Ov. This is an -abbrevation for the province of {\em Overijssel}. -\blank[2*big] -The funny thing is that there is no other Hasselt in the Netherlands. -So it is redundant. -\blank -The affix is a leftover from the times that the Netherlands and -Belgium were one country under the reign of King Philip II of Spain. -\blank[2*big] -Hasselt in Belgium lies in the province of Limburg. One wonders if -the Belgian people write Hasselt (Li) on their letters. -\stopbuffer - -\typebuffer - -The command \type{\blank} without the bracket pair is the default space. - -The example would become: - -\getbuffer - -The default spacing can be set up with: - -\shortsetup{setupblank} - -If you want to surpress vertical spacing you can use: - -\shortsetup{startpacked} - -In this manual the whitespace is set at \type{medium}. In the next situation this -set up is ignored and the lines are packed. - -\startbuffer -\startpacked -Hasselt (Ov) lies in Overijssel. - -Hasselt (Li) lies in Limburg. - -Watch out: we talk about Limburg in Belgium. There is -also a Dutch Limburg. -\stoppacked -\stopbuffer - -\typebuffer - -This will become: - -\getbuffer - -It is not hard to imagine why there is also: - -\shortsetup{startunpacked} - -You can force vertical space with \type{\godown}. The distance is specified -within the brackets. - -\shortsetup{godown} - -Try not to use this command. It is always better use the \type{\setup...} commands -to setup your spacing model. - -\stopsection - -\startsection[title=Whitespace before and after text components] - -Most text components that are coded with \CONTEXT\ have a \type{\setup...} command -with which you can define the whitespace before and after that component. - -\starttyping -\setupitemize - [before=,after=] - -\setuphead - [chapter] - [before=,after=] - -\setupframedtexts - [before=,after=] -\stoptyping - -The use of the \type{\setup...} commands prevents you from having to code -whitespaces throughout your \TEX\ document. This would lead to unreadable sources -and inconsistent use of whitepaces. - -\stopsection - -\startsection[title=Skipping space] - -\Command{\tex{hskip}} -\Command{\tex{vskip}} - -You can introduce horizontal and vertical space with \type{\hskip} and -\type{\vskip} commands. - -Try to avoid these commands in your text. It will probably lead to inconsistent -spacing. - -\stopsection - -\startsection[title=Indentation] - -\index{indentation} -\index{paragraph+indentation} - -\Command{\tex{indenting}} -\Command{\tex{noindenting}} -\Command{\tex{setupindenting}} - -You can set up the amount of the indentation with: - -\shortsetup{setupindenting} - -A reasonable indentation is achieved by: - -\starttyping -\setupindenting[yes,] -\stoptyping - -This will lead to indented paragraphs. By default, indentation after white space -(as issued by \type {\blank}) is suppressed. - -You can locally influence the indentation state by using: - -\shortsetup{indenting} - -When for instance you say \type {never}, from that moment on indentation will be -surpressed. Saying \type {none}, only influences the next paragraph. - -If you choose to use indentations, and at a certain place you explicitly {\em do -not} want to indent, you can also say: - -\starttyping -\noindenting -\stoptyping - -In some \type{\setup...} commands you can set the parameter \type{indent=yes}. This means -that the paragraph that follows the textcomponent will indent: - -\startbuffer -\setupitemize[indentnext=yes] -\stopbuffer - -\typebuffer - -\stopsection - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-presentations.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-presentations.tex deleted file mode 100644 index 623ba9490..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-presentations.tex +++ /dev/null @@ -1,38 +0,0 @@ -\startcomponent ma-cb-en-presentations - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Presentations,reference=presentations] - -\index{presentation} - -You can use \CONTEXT\ for making your own presentations. A \CONTEXT\ presentation -is an interactive PDF document with a screen layout. Often presentations are good -examples of the cooperation between \CONTEXT\ and \METAPOST. - -\CONTEXT\ comes with a number ready-to-use presentations. A presentation is a -module with the prefix \type{s-} and that you can load with the \type{\usemodule} -command. - -If you want to use an already existing presentation the best way to proceed is: - -\startitemize[packed] -\item goto \type{../your-contextdir/tex/texmf-context/tex/context/base} in your text editor -\item open a presentation: for example \type{s-pre-05.tex} -\item goto the end of the file and study the commands between - the \type{\start...\stoptext} pair -\item copy the commands into your own presentation file -\item invoke the presentation with \type{\usemodule[s][pre-05]} in de setup - area of your presentation file -\item process the file to view the result -\item edit the content of your presentation -\stopitemize - -A stepwise setup of a presentation is given at the -\goto{\CONTEXTWIKI}[ url (http://wiki.contextgarden.net/Presentations) ]. - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-processingfiles.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-processingfiles.tex deleted file mode 100644 index 1ceabfeb1..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-processingfiles.tex +++ /dev/null @@ -1,44 +0,0 @@ -\startcomponent ma-cb-en-processingfiles - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=The \type{context} command,reference=contextcommand] - -\index{\type{context} (command)} -\index{\type{mtxrun} (command)} -\index{processing TeX file} - -You can process a \TEX\ file or run \CONTEXT\ with the command \type{context} -that you can type at your console: - -\starttyping -context myfile -\stoptyping - -\CONTEXT\ will make multiple runs to get the layout, references, lists and -pagenumbering straight. You can see those runs echoed on your screen and listed -in the \type{myfile.log} file. - -You can add parameters to give the command \type{context} additional -tasks while processing the file. If you want start up \READER\ automatically -you can type: - -\starttyping -context --autopdf myfile -\stoptyping - -A full overview of the parameters is given when you type: - -\starttyping -context --help -\stoptyping - -Please refer to the manual \goto{luatools, mtxrun, context}[ url (manual:tools) ] -for more information on running \CONTEXT. - -\stopchapter - - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-references.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-references.tex deleted file mode 100644 index bc758e521..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-references.tex +++ /dev/null @@ -1,148 +0,0 @@ -\startcomponent ma-cb-en-references - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Refering to text elements] - -\index{refering} -\index{label} - -\Command{\tex{in}} -\Command{\tex{at}} -\Command{\tex{pagereference}} - -To disclose your document for your readers you can use the table of contents and -the register. However, it is not uncommon to refer to specific text elements like -formulas, tables, images and sections to enhance readability. - -For refering from one location in a document to another you can use the command: - -\shortsetup{in} - -The curly braces contain text and the brackets contain a logical label. If you have -written a chapter header like this: - -\starttyping -\startchapter[title=Hotels in Hasselt,reference=hotel] - ... -\stopchapter -\stoptyping - -then you can refer to this chapter with: - -\starttyping -\in{chapter}[hotel] -\stoptyping - -After processing the chapter number is available and the reference could look -something like: {\em chapter 23}. You can use \type{\in} for any references to -text elements like chapters, sections, figures, tables, formulas etc. - -Another example: - -\startbuffer -There are a number of things you can do in Hasselt: - -\startitemize[n,packed] -\item swimming -\item sailing -\item[hiking] hiking -\item biking -\stopitemize - -An activity like \in{activity}[hiking] described on \at{page}[hiking] -is very tiring. -\stopbuffer - -\typebuffer - -This would look like this: - -\getbuffer - -As you can see, it is also possible to refer to pages. This is done with: - -\shortsetup{at} - -For example with: - -\starttyping -\at{page}[hiking] -\stoptyping - -This command can be used in combination with: - -\shortsetup{pagereference} - -and - -\shortsetup{textreference} - -If you want to refer to the chapter {\em Hotels in Hasselt} you could type: - -\startbuffer -Look in \in{chapter}[hotel] on \at{page}[hotel] for a complete -overview of accomodations in \pagereference[accomodation]Hasselt. -\stopbuffer - -\typebuffer - -A chapter number and a page number will be generated when processing the input -file. On another spot in the document you can refer to \type{accomodation} with -\type{\at{page}[accomodation]}. - -You can also define a set of labels separated by commas. - -\startbuffer -\placefigure - [here] - [fig:canals,fig:boats] - {A characteristic picture of Hasselt.} - {\externalfigure[ma-cb-08][width=10cm]} - -There are many canals in Hasselt (see \in{figure}[fig:canals]). -. -. -. -Boats can be moored in the canals of Hasselt (see -\in{figure}[fig:boats]). -\stopbuffer - -\typebuffer - -This might look like this: - -\getbuffer - -You can also refer to a title of a chapter or section or even a caption of an -image. This is done with: - -\shortsetup{about} - -This: - -\startbuffer -The caption of \in{figure}[fig:canals] is {\em \about[fig:canals]}. -\stopbuffer - -\typebuffer - -Becomes: - -\getbuffer - -With the command: - -\starttyping -\setupinteraction[state=start] -\stoptyping - -all references become active links. See \in{chapter}[interactivity] for more -information on this subject. - -\stopchapter - -\stopcomponent - diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-registers.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-registers.tex deleted file mode 100644 index 315e2bfa4..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-registers.tex +++ /dev/null @@ -1,83 +0,0 @@ -\startcomponent ma-cb-en-registers - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Registers] - -\index{register} - -\Command{\tex{index}} -\Command{\tex{placeindex}} -\Command{\tex{completeindex}} -\Command{\tex{defineregister}} -\Command{\tex{placeregister}} -\Command{\tex{completeregister}} -\Command{\tex{setupregister}} - -It is possible to generate one or more registers. By default the command -\type{\index} is available. If you want to add a word to the index you type: - -\starttyping -\index{town hall} -\stoptyping - -The word {\em town hall} will appear as an index entry in the sorted register. -Sometimes the index word does not appear in normal alphabetic order. For example, -entries such as symbols have to provide extra sorting information in order to -produce a correct alphabetical list: - -\starttyping -\index[minus]{$-$} -\stoptyping - -Sometimes you have sub- or sub sub entries. These can be defined as follows: - -\starttyping -\index{town hall+location} -\index{town hall+architecture} -\stoptyping - -You can generate your register with the command: - -\starttyping -\placeindex -\stoptyping - -or - -\starttyping -\completeindex -\stoptyping - -The command \type{\index} is a predefined \CONTEXT\ command, but of course you -can also define your own registers. - -\shortsetup{defineregister} - -For example if you want to make a new register based on the streets in Hasselt -you could type: - -\starttyping -\defineregister[street] -\stoptyping - -Now a new register command \type{\street} is available. Now -\type{\street{Ridderstraat}} is a new index entry. To produce a list of entries -you could now use: - -\starttyping -\placeregister[street] -\placestreet -\completestreet -\stoptyping - -You can alter the layout of the registers with: - -\shortsetup{setupregister} - -\stopchapter - -\stopcomponent - diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-runtimefiles.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-runtimefiles.tex deleted file mode 100644 index d72b536a5..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-runtimefiles.tex +++ /dev/null @@ -1,41 +0,0 @@ -\startcomponent ma-cb-en-runtimefiles - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Auxilliary files,reference=runtimefiles] - -\index[tuc]{{\tt tuc}--file} -\index{auxilliary files} - -\CONTEXT\ will produce a number of auxilliary files during processing. If your -input file is called \type{myfile.tex} the following files may appear on your -working directory. - -\index[tuc]{{\tt tuc}--file} -\index{auxilliary files} - -\starttabulate[|l|l|l|] -\HL -\NC \darkgray \bf \CONTEXT\ MkII \NC \bf \CONTEXT\ MkIV \NC \bf Meaning \NC\NR -\HL -\NC \darkgray \tt myfile.tex \NC \tt myfile.tex \NC your text file \NC\NR -\HL -\NC \darkgray \tt myfile.log \NC \tt myfile.log \NC log information \NC\NR -\NC \darkgray \tt myfile.tuo \NC \tt myfile.tuc \NC output information \NC\NR -\NC \darkgray \tt myfile.tui \NC \NC \darkgray input information \NC\NR -\NC \darkgray \tt myfile.tmp \NC \NC \darkgray temporary information \NC\NR -\NC \darkgray \tt mpgraph.mp \NC \NC \darkgray \METAPOST\ information \NC\NR -\HL -\NC \darkgray \tt myfile.pdf \NC \tt myfile.pdf \NC result file \NC\NR -\HL -\stoptabulate - -The \type{myfile.tuc} file contains information about registers, lists and -references which will be used when necessary. The \type{myfile.log} -can be viewed in case there are problems during processing. - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-setupcommands.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-setupcommands.tex deleted file mode 100644 index 2f087ea8d..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-setupcommands.tex +++ /dev/null @@ -1,54 +0,0 @@ -\startcomponent ma-cb-en-setupcommands - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Setup commands] - -\index{set up} -\index{layout} - -Global commands are placed in the setup area of your input file, before -\type{\starttext}. In \in{appendix}[commandsetups] there is a complete overview of the -available commands and their parameters. - -The set up commands all have the same structure. They look something like: - -\shortsetup{setupparagraphs} - -A set up command consists of a more or less logical name and a number of bracket -pairs. Bracket pairs may be optional and in that case the \type{[]} are typeset -slanted {\tt \sl []}. In the definition the bracket pairs may contain: - -\starttyping -\setupacommand[.1.][.2.][..,..=..,..] -\stoptyping - -The commas indicate that a list of parameters can be enclosed. In the options -list following the definition, the \type{.1.} and \type{.2.} show the possible -options that can be set in the first and second bracket pair respectively. The -parameters and their possible values are placed in the third bracket pair. - -The default options and parameter values are underlined. - -Furthermore you will notice that some values are typeset in a slanted way: {\sl -section}, {\sl name}, {\sl dimension}, {\sl number}, {\sl command} and {\sl -text}. This indicates that you can set the value yourself. - -\starttabulate[|S||] -\NC section \NC a section name like chapter, section, subsection etc. \NC\NR -\NC name \NC an identifier (logical name) \NC\NR -\NC dimension \NC a dimension with a unit in \type{cm}, \type{pt}, - \type{em}, \type{ex}, \type{sp} or \type{in} \NC\NR -\NC number \NC an integer \NC\NR -\NC command \NC a command \NC\NR -\NC text \NC text \NC\NR -\stoptabulate - -In the \goto {Quick Reference} [ url (manual:qr-en) ] -manual you can find a complete overview of the commands and their parameters. - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-sortedlists.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-sortedlists.tex deleted file mode 100644 index c3b47ea27..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-sortedlists.tex +++ /dev/null @@ -1,71 +0,0 @@ -\startcomponent ma-cb-en-sortedlists - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[reference=synonyms,title=Sorted lists] - -\index{sorted lists} - -\Command{\tex{definesorting}} -\Command{\tex{setupsorting}} -\Command{\tex{sort}} -\Command{\tex{placelistofsorts}} -\Command{\tex{completelistofsorts}} - -If you want to create a sorted list you can use: - -\shortsetup{definesorting} - -For example: - -\startbuffer -\define[1]\street{#1\Street{#1}} -\definesorting[Street][Streets] -\setupsorting[Street][criterium=all] - -When you walk in the \street{Eikenlaan} you will cross the -\street{Vechtlaan} and \street{Gasthuisstraat}. Go left into the -\street{Gasthuisstraat} and take another left on the -\street{Heerengracht}. You walk along the canal to the -\street{Ridderstraat}, there you turn right. Cross the canal and -turn left to the \street{Julianakade}. There you can enjoy the -view over the Zwartewater. - -So the streets you visited are: - -\placelistofStreets -\stopbuffer - -\typebuffer - -This will become: - -\getbuffer - -Note that the Gasthuisstraat appears only once in the list. - -The predefined \type{\logo} command is used for the consistent use of text logos. - -When you define: -\startbuffer -\logo [HSTEX] {Hassel\TeX} -\stopbuffer - -\getbuffer\typebuffer - -You can use that logo througout your text. - -\startbuffer -How would you call a \TEX\ based macropackage when you work -in Hasselt? \HSTEX? -\stopbuffer - -\typebuffer - -\getbuffer - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-specialcharacters.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-specialcharacters.tex deleted file mode 100644 index 619ccf3a6..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-specialcharacters.tex +++ /dev/null @@ -1,60 +0,0 @@ -\startcomponent ma-cb-en-specialcharacters - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[reference=special chars,title=Special characters] - -\index{special characters} - -You have seen that \CONTEXT\ commands are preceded by a \tex{} (backslash). This -means that \tex{} has a special meaning to \CONTEXT. Aside from \tex{} there are -other characters that need special attention when you want them to appear in -verbatim mode or in text mode. \in{Table}[tab:specchars] gives an overview of -these special characters and what you have to type to produce them. - -\placetable[here,force][tab:specchars] - {Special characters (1).} - {\starttable[|c|l|c|c|c|c|] - \HL - \NC \use2 \JustCenter{\bf Special character} \NC \use2 \bf Verbatim \NC \use2 \bf Text \NC\FR - \NC \bf Character \NC \bf Name \NC \bf Type \NC \bf Generates \NC \bf Type\NC \bf Generates \NC\LR - \HL - \NC \type{#} \NC hashtag \NC \type{\type{#}} \NC \type{#} \VL \type{\#} \NC \# \NC\FR - \NC \type{$} \NC dollar \NC \type{\type{$}} \NC \type{$} \VL \type{\$} \NC \$ \NC\MR - \NC \type{&} \NC ampersand \NC \type{\type{&}} \NC \type{&} \VL \type{\&} \NC \& \NC\MR - \NC \type{%} \NC percent \NC \type{\type{%}} \NC \type{%} \VL \type{\%} \NC \% \NC\MR - \NC \type{\} \NC backslash \NC \type{\type{\}} \NC \type{\} \VL \type{\backslash} \NC \backslash \NC\MR - \NC \type+{+ \NC right curly brace \NC \type-\type+{+- \NC \type+{+ \VL \type+\{+ \NC \{ \NC\MR - \NC \type+}+ \NC left curly brace \NC \type-\type+}+- \NC \type+}+ \VL \type+\}+ \NC \} \NC\MR - \NC \type{|} \NC vertical bar \NC \type{\type{|}} \NC \type{|} \VL \type{\|} \NC \| \NC\MR - \NC \type{_} \NC underscore \NC \type{\type{_}} \NC \type{_} \VL \type{\_} \NC \_ \NC\MR - \NC \type{~} \NC tilde \NC \type{\type{~}} \NC \type{~} \VL \type{\lettertilde} \NC \lettertilde \NC\MR - \NC \type{^} \NC caret \NC \type{\type{^}} \NC \type{^} \VL \type{\letterhat} \NC \letterhat \NC\LR - \HL - \stoptable} - -Other special characters have a meaning in typesetting mathematical expressions -and some can be used in math mode only (see \in{chapter}[formulas]). - -\placetable - [here,force] - [tab:special chars] - {Special characters (2).} - {\starttable[|c|c|c|c|c|] - \HL - \NC \bf \LOW{Special character} \NC \use2 \bf Verbatim \NC \use2 \bf Text \NC\FR - \NC \NC \bf Type \NC \bf Generates \NC \bf Type \NC \bf Generates \NC\LR - \HL - \NC \type{+} \NC \type{\type{+}} \NC \type{+} \VL \type{$+$} \NC $+$ \NC\FR - \NC \type{-} \NC \type{\type{-}} \NC \type{-} \VL \type{$-$} \NC $-$ \NC\MR - \NC \type{=} \NC \type{\type{=}} \NC \type{=} \VL \type{$=$} \NC $=$ \NC\MR - \NC \type{<} \NC \type{\type{<}} \NC \type{<} \VL \type{$<$} \NC $<$ \NC\MR - \NC \type{>} \NC \type{\type{>}} \NC \type{>} \VL \type{$>$} \NC $>$ \NC\LR - \HL - \stoptable} - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-structure.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-structure.tex deleted file mode 100644 index 4001a6831..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-structure.tex +++ /dev/null @@ -1,133 +0,0 @@ -\startcomponent ma-cb-en-structure - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Defining a document] - -Every document is started with \type{\starttext} and closed with -\type{\stoptext}. All textual input is placed between these two commands and -\CONTEXT\ will only process that information. - -Setup information is placed in the set up area just before \type{\starttext}. - -\setuptyping - [escape=yes] - -\definestartstop - [comment][style={\rm}] - -\starttyping - -\setupbodyfont[12pt] /BTEX \comment{setuparea of document} /ETEX - -\starttext -This is a one line document. /BTEX \comment{your text} /ETEX -\stoptext -\stoptyping - -The definition of a (very simple) book could look something like this: - -\startbuffer -\starttext - -\startstandardmakeup - \midaligned{From Hasselt to America} - \midaligned{by} - \midaligned{J. Jonker and C. van Marle} -\stopstandardmakeup - -\title{Foreword} - -\chapter{Introduction} - -\chapter{The Rensselaer family} - -\chapter{The Lansing family} - -\chapter{The Cuyler family} - -\chapter{Appendix: Photos} - -\stoptext -\stopbuffer - -\typebuffer - -\CONTEXT\ comes with a predefined overall structure in which the document is -divided into four main document divisions:\footnote{Here we try to avoid the -word {\em section}.} - -\startitemize[n,packed] -\item front matter -\item body matter -\item appendices -\item back matter -\stopitemize - -The document divisions are defined with: - -\starttyping -\startfrontmatter ... \stopfrontmatter -\startbodymatter ... \stopbodymatter -\startappendices ... \stopappendices -\startbackmatter ... \stopbackmatter -\stoptyping - -The chapters in your book can be divided over these divisions. - -\startbuffer -\starttext - -\startstandardmakeup - \midaligned{From Hasselt to America} - \midaligned{by} - \midaligned{J. Jonker and C. van Marle} -\stopstandardmakeup - -\startfrontmatter - - \title{Preface} - - \chapter{Introduction} - -\stopfrontmatter - -\startbodymatter - - \chapter{The Rensselaer family} - - \chapter{The Lansing family} - - \chapter{The Cuyler family} - -\stopbodymatter - -\startappendices - - \chapter{Photos} - -\stopappendices - -\stoptext -\stopbuffer - -\typebuffer - -In the front matter as well as back matter the command \type{\chapter} -produces an un-numbered header in the table of contents. The front matter is mostly -used for the table of contents, the list of figures and tables, the preface, the -acknowledgements etc. It often comes with a roman page numbering. - -The appendices division is used for (indeed) appendices. Headers may be typeset in -a different way; for example, \type{\chapter} may be numbered alphabetically. - -The style of each document division can be set up with: - -\shortsetup{setupsectionblock} - -\stopchapter - -\stopcomponent - diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-support.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-support.tex deleted file mode 100644 index cc6b5819f..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-support.tex +++ /dev/null @@ -1,17 +0,0 @@ -\startcomponent ma-cb-en-support - -\project ma-cb - -% only text - -For your Questions and Answers you can subscribe to the \goto {\CONTEXT\ mailing -list} [ url(list:context) ]. - -Visit the \goto {Pragma ADE website} [ url -(http://www.pragma-ade.com/overview.htm) ] for extensive information about -\CONTEXT. - -Goto the \goto {ConTeXt Garden} [ url (http://wiki.contextgarden.net) ] to find -all kinds of practical information on how to use \CONTEXT. - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-synonyms.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-synonyms.tex deleted file mode 100644 index 8d921d5b0..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-synonyms.tex +++ /dev/null @@ -1,89 +0,0 @@ -\startcomponent ma-cb-en-synonyms - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[reference=synonyms,title=Synonyms] - -\index{synonyms} - -\Command{\tex{definesynonyms}} -\Command{\tex{setupsynonyms}} -\Command{\tex{abbreviation}} -\Command{\tex{infull}} -\Command{\tex{loadabbreviations}} -\Command{\tex{placelistofabbreviations}} -\Command{\tex{completelistofabbreviations}} - -In many documents people want to use specific words consistently throughout the -document. To enforce consistency the command below is available. - -\shortsetup{definesynonyms} - -The first bracket pair contains the singular form of the synonym, and the second -contains the plural form. The third bracket pair contains a command. - -For example the command \type{\abbreviation} is defined by: - -\starttyping -\definesynonyms[abbreviation][abbreviations][\infull] -\setupsynonyms[style=cap] -\stoptyping - -Now the command \type{\abbreviation} is available and can be used to state your -abbreviations: - -\starttyping -\abbreviation{ANWB}{Dutch Automobile Association} -\abbreviation{VVV}{Bureau of Tourist Information} -\abbreviation{NS}{Dutch Railways} -\stoptyping - -\abbreviation{VVV}{Bureau of Tourist Information} - -If you would type: - -\startbuffer -The Dutch \VVV\ (\infull{VVV}) can provide you with the tourist -information on Hasselt. -\stopbuffer - -\typebuffer - -You would obtain something like this: - -\getbuffer - -The list of synonyms or abbreviations is best defined in the set up area of your -input file for maintenance purposes. You can also store this kind of information -in an external file, and load the file (e.g. \type{abbrev.tex}) with: - -\starttyping -\input abbrev.tex -\stoptyping - -If you want to put a list of the abbreviations used in your document you can -type: - -\starttyping -\placelistofabbreviations -\stoptyping - -or - -\starttyping -\completelistofabbreviations -\stoptyping - -A complete and sorted list with used abbreviations and their meaning is produced. - -The typesetting of synonynms can be influenced with: - -\starttyping -\setupsynonyms -\stoptyping - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-tables.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-tables.tex deleted file mode 100644 index 39ce0cb4a..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-tables.tex +++ /dev/null @@ -1,385 +0,0 @@ -\startcomponent ma-cb-en-tables - -% AFO: the \start ... \stoplinetable mechanism is not stable enough - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[reference=tables,title=Tables] - -\index{tables} -\index{natural tables} -\index{extreme tables} -\index{floating blocks} - -\Command{\tex{placetable}} -\Command{\tex{setuptables}} -\Command{\tex{starttable}} -\Command{\tex{startcombination}} -\Command{\tex{setupfloats}} -\Command{\tex{setupcaptions}} -\Command{\tex{NR}} -\Command{\tex{FR}} -\Command{\tex{LR}} -\Command{\tex{MR}} -\Command{\tex{SR}} -\Command{\tex{VL}} -\Command{\tex{NC}} -\Command{\tex{HL}} -\Command{\tex{DL}} -\Command{\tex{DC}} -\Command{\tex{DR}} -\Command{\tex{LOW}} -\Command{\tex{TWO}} -\Command{\tex{THREE}} -\Command{\tex{bTABLE}} -\Command{\tex{eTABLE}} -\Command{\tex{bTR}} -\Command{\tex{eTR}} -\Command{\tex{bTD}} -\Command{\tex{eTD}} -\Command{\tex{setupTABLE}} -\Command{\tex{startxtable}} -\Command{\tex{stopxtable}} -\Command{\tex{startxcell}} -\Command{\tex{startxrow}} -\Command{\tex{setupxtable}} - -There are a number of ways to define a table: - -\startitemize[packed] -\item the \type{\start ... \stoptable} mechanism, based on the work of M. Wichura -\item the \type{\bTABLE ... \eTABLE} mechanism (natural tables) -\item the \type{\start ... \stopxtable} mechanism (extreme tables) -\stopitemize - -In the next sections we describe the principles of the three table mechanisms. - -\startsection[title=Simple tables] - -For defining the table you use: - -\shortsetup{starttable} - -The definition of a table could look something like this: - -\startbuffer -\placetable - [here] - [tab:ships] - {Ships that moored at Hasselt.} - {\starttable[|c|c|] - \HL - \NC \bf Year \NC \bf Number of ships \NC\SR - \HL - \NC 1645 \NC 450 \NC\FR - \NC 1671 \NC 480 \NC\MR - \NC 1676 \NC 500 \NC\MR - \NC 1695 \NC 930 \NC\LR - \HL - \stoptable} -\stopbuffer - -\typebuffer - -This table is typeset as \in{table}[tab:ships]. - -\getbuffer - -Although this table mechanism is still available and supported in \CONTEXT\ -it is better to use one of the other mechanisms. - -\stopsection - -\startsection[title=Natural tables] - -The natural table mechanism (\type{\bTABLE ... \eTABLE}) is developed for more -complex tables and has features of the general interface of \CONTEXT. - -\startbuffer -\placetable - [here,force] - [tab:votedivision] - {Division of votes over political parties.} - {\bTABLE[align=middle,offset=4pt] - \bTABLEhead - \bTR[width=6cm] \bTD [nc=5] Elections City Council \eTD \eTR - \eTABLEhead - \bTABLEbody - \bTR \bTD[nr=2,align={right,lohi}] Party \eTD - \bTD[nc=3,foregroundstyle=bold] Districts \eTD - \bTD[nr=2,align={middle,lohi}] Total \eTD \eTR - \bTR \bTD 1 \eTD \bTD 2 \eTD \bTD 3 \eTD \eTR - \bTR \bTD[align=right] PvdA \eTD - \bTD 351 \eTD \bTD 433 \eTD \bTD 459 \eTD \bTD 1243 \eTD \eTR - \bTR \bTD[align=right] CDA \eTD - \bTD 346 \eTD \bTD 350 \eTD \bTD 285 \eTD \bTD ~981 \eTD \eTR - \bTR \bTD[align=right] VVD \eTD - \bTD 140 \eTD - \bTD[offset=2pt,background=color, - backgroundcolor=red,foregroundcolor=white, - foregroundstyle=bold,framecolor=blue, - rulethickness=2pt] 113 \eTD - \bTD 132 \eTD \bTD ~385 \eTD \eTR - \bTR \bTD[align=right] SGP \eTD - \bTD 348 \eTD \bTD 261 \eTD \bTD 158 \eTD \bTD ~767 \eTD \eTR - \bTR \bTD[align=right] GPV \eTD - \bTD 117 \eTD \bTD 192 \eTD \bTD 291 \eTD \bTD ~600 \eTD \eTR - \eTABLEbody - \eTABLE} -\stopbuffer - -\start -\switchtobodyfont[8pt] -\typebuffer -\stop - -In the last column a \type{~} is used to simulate a four digit number. The -\type{~} has the width of a digit. - -\start -\getbuffer -\stop - -The setup of the table is placed between the square brackets \type{[ ]}. To keep -the data in the table more readable you can set up the table with the \type -{\setupTABLE} command. - -\shortsetup{bTABLE} - -\startbuffer -\setupTABLE[row][align=middle,offset=4pt] -\setupTABLE[1][1][width=6cm] -\setupTABLE[1][2][align={right,lohi}] -\setupTABLE[5][2][align={right,lohi}] -\setupTABLE[2][2][foregroundstyle=bold] -\setupTABLE[1][4,5,6,7,8][align=right] -\setupTABLE[3][6][offset=2pt,background=color, - backgroundcolor=red,foregroundcolor=white, - foregroundstyle=bold,framecolor=blue, - rulethickness=2pt] - -\bTABLE - \bTABLEhead - \bTR \bTD[nc=5] Elections City Council \eTD \eTR - \bTR \bTD[nr=2] Party \eTD \bTD[nc=3] Districts \eTD \bTD[nr=2] Total \eTD \eTR - \bTR \bTD 1 \eTD \bTD 2 \eTD \bTD 3 \eTD \eTR - \eTABLEhead - \bTABLEbody - \bTR \bTD PvdA \eTD \bTD 351 \eTD \bTD 433 \eTD \bTD 459 \eTD \bTD 1243 \eTD \eTR - \bTR \bTD CDA \eTD \bTD 346 \eTD \bTD 350 \eTD \bTD 285 \eTD \bTD ~981 \eTD \eTR - \bTR \bTD VVD \eTD \bTD 140 \eTD \bTD 113 \eTD \bTD 132 \eTD \bTD ~385 \eTD \eTR - \bTR \bTD SGP \eTD \bTD 348 \eTD \bTD 261 \eTD \bTD 158 \eTD \bTD ~767 \eTD \eTR - \bTR \bTD GPV \eTD \bTD 117 \eTD \bTD 192 \eTD \bTD 291 \eTD \bTD ~600 \eTD \eTR - \eTABLEbody -\eTABLE -\stopbuffer - -\start -\switchtobodyfont[8pt] -\typebuffer -\stop - -The meaning of the \CONTEXT\ commands are indicated in \in {table} -[tab:tablecommands02]. - -\placetable - [] - [tab:tablecommands02] - {Commands to define natural tables.} - {\starttable[|l|l|] - \HL - \NC \bf Command \NC \bf Meaning \NC\SR - \HL - \NC \type{\bTABLE ... \eTABLE} \NC begin end table \NC\FR - \NC \type{\bTR ... \eTR} \NC begin end row \NC\MR - \NC \type{\bTD ... \eTD} \NC begin end column \NC\MR - \NC \type{\bTABLEhead ... \eTABLEhead} \NC begin end tablehead \NC\MR - \NC \type{\bTABLEbody ... \eTABLEbody} \NC begin end tablebody \NC\MR - \NC \type{\bTABLEfoot ...\eTABLEfoot} \NC begin end tablefoot \NC\MR - \NC \type{\setupTABLE} \NC table setup \NC\LR - \HL - \stoptable} - -You can find more information on this table mechanism on the \CONTEXTWIKI\ and -examples in the \goto {\em Natural Tables} [ url (manual:nattab) ] manual. - -\stopsection - -\startsection[title=Extreme tables] - -For large tables that extend over a number of pages and where you want the -table head repeated after each pagebreak \CONTEXT\ has the {\em extreme table} -mechanism. - -\shortsetup{startxtable} - -\startbuffer -\setupxtable[split=yes,header=repeat] -\setupxtable[offset=4pt] - -\placetable - [] - [tab:wealthdecline] - {Decline of wealth through the ages.} - {\startxtable - \startxtablehead[align=middle,foregroundstyle=bold] - \startxrow - \startxcell[nx=6] - Decline of wealth in Dutch florine (Dfl) - \stopxcell - \stopxrow - \startxrow[foregroundstyle=bold] - \startxcell[width=1.2cm] Year \stopxcell - \startxcell 1.000--2.000 \stopxcell - \startxcell 2.000--3.000 \stopxcell - \startxcell 3.000--5.000 \stopxcell - \startxcell 5.000--10.000 \stopxcell - \startxcell over 10.000 \stopxcell - \stopxrow - \stopxtablehead - \startxtablenext - \startxrow - \startxcell[nx=6,align=middle,foregroundstyle=bold] - Decline of wealth in Dutch florine (Dfl) / Continued - \stopxcell - \stopxrow - \startxrow[foregroundstyle=bold] - \startxcell Year \stopxcell - \startxcell 1.000--2.000 \stopxcell - \startxcell 2.000--3.000 \stopxcell - \startxcell 3.000--5.000 \stopxcell - \startxcell 5.000--10.000 \stopxcell - \startxcell over 10.000 \stopxcell - \stopxrow - \stopxtablenext - \startxtablebody[align=middle] - \startxrow - \startxcell 1675 \stopxcell - \startxcell 22 \stopxcell - \startxcell ~7 \stopxcell - \startxcell ~5 \stopxcell - \startxcell ~4 \stopxcell - \startxcell ~5 \stopxcell - \stopxrow - \startxrow - \startxcell 1724 \stopxcell - \startxcell ~4 \stopxcell - \startxcell ~4 \stopxcell - \startxcell -- \stopxcell - \startxcell ~4 \stopxcell - \startxcell ~3 \stopxcell - \stopxrow - \startxrow - \startxcell 1750 \stopxcell - \startxcell 12 \stopxcell - \startxcell ~3 \stopxcell - \startxcell ~2 \stopxcell - \startxcell ~2 \stopxcell - \startxcell -- \stopxcell - \stopxrow - \startxrow - \startxcell 1808 \stopxcell - \startxcell ~9 \stopxcell - \startxcell ~2 \stopxcell - \startxcell -- \stopxcell - \startxcell -- \stopxcell - \startxcell -- \stopxcell - \stopxrow - \stopxtablebody - \stopxtable} -\stopbuffer - -\start -\switchtobodyfont[8pt] -\typebuffer -\stop - -With the \type{\setupxtable} it is indicated that the table is allowed to split -at a pagebreak and that the head should contain the content of the \type {\start -... \stopxtablenext}. - -The result of this definition is shown in \in {table} [tab:wealthdecline]. - -\getbuffer - -The meaning of the commands are explained \in {table} [tab:tablecommands03]. - -\placetable - [] - [tab:tablecommands03] - {Commands to define extreme tables.} - {\starttable[|l|l|] - \HL - \NC \bf Command \NC \bf Meaning \NC\SR - \HL - \NC \type{\startxtable ... \stopxtable} \NC begin end table \NC\FR - \NC \type{\startxrow ... \stopxrow} \NC begin end row \NC\MR - \NC \type{\startxcell ... \stopxcell} \NC begin end column \NC\MR - \NC \type{\startxtablehead ... \stopxtablehead} \NC begin end tablehead \NC\MR - \NC \type{\startxtablebody ... \stopxtablebody} \NC begin end tablebody \NC\MR - \NC \type{\startxtablefoot ... \stopxtablefoot} \NC begin end tablefoot \NC\MR - \NC \type{\setupxtable} \NC table setup \NC\LR - \HL - \stoptable} - -More information and examples can be found in the \goto {\em Extreme Tables} [ -url (manual:extab) ] manual. - -\stopsection - -\startsection[title=Placing tables] - -In all examples you see the command \type{\placetable}. This command has -the same function as \type{placefigure}. It takes care of the vertical -spacing and numbering. The float mechanism is invoked and the table will -end up on the most optimal location in your document. - -\shortsetup{placefloat} - -You can also set up the layout of tables with: - -\shortsetup{setupfloats} - -You can set up the numbering and the labels with: - -\shortsetup{setupcaptions} - -These commands are typed in the set up area of your input file and have a global -effect on all floating blocks. - -\startbuffer -\setupfloats[location=left] -\setupcaptions[style=boldslanted,location={right,middle}] - -\placetable[here][tab:opening hours]{Library opening hours.} - {\bTABLE[offset=4pt] - \bTR \bTD \bf Day \eTD \bTD[nx=2,align=middle] \bf Opening hours \eTD \eTR - \bTR \bTD Monday \eTD \bTD 14.00 -- 17.30 \eTD \bTD 18.30 -- 20.30 \eTD \eTR - \bTR \bTD Tuesday \eTD \bTD \eTD \bTD \eTD \eTR - \bTR \bTD Wednesday \eTD \bTD 10.00 -- 12.00 \eTD \bTD 14.00 -- 17.30 \eTD \eTR - \bTR \bTD Thursday \eTD \bTD 14.00 -- 17.30 \eTD \bTD 18.30 -- 20.30 \eTD \eTR - \bTR \bTD Friday \eTD \bTD 14.00 -- 17.30 \eTD \bTD \eTD \eTR - \bTR \bTD Saturday \eTD \bTD 10.00 -- 12.30 \eTD \bTD \eTD \eTR - \eTABLE} -\stopbuffer - -\start -\switchtobodyfont[8pt] -\typebuffer -\stop - -The result is displayed in \in{table}[tab:opening hours]. - -\start -\getbuffer -\stop - -\stopsection - -% AFO: the \start ... \stoplinetable mechanism is not stable enough - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-tablesofcontent.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-tablesofcontent.tex deleted file mode 100644 index 0bc81014e..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-tablesofcontent.tex +++ /dev/null @@ -1,174 +0,0 @@ -\startcomponent ma-cb-en-tablesofcontent - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Table of contents (lists)] - -\index{table of contents} -\index{list} - -\Command{\tex{completecontent}} -\Command{\tex{placecontent}} -\Command{\tex{definelist}} -\Command{\tex{setuplist}} -\Command{\tex{writetolist}} -\Command{\tex{writebetweenlist}} -\Command{\tex{definecombinedlist}} -\Command{\tex{setupcombinedlist}} - -A table of contents contains chapter numbers, chapter titles and page numbers and -can be extended with sections, sub sections, etc. A table of contents is -generated automatically by typing: - -\starttyping -\placecontent -\stoptyping - -Which table of contents is produced depends on the location of this command in -your document. At the start of the document it will generate a list of chapters, -sections etc. But at the top of a chapter: - -\startbuffer -\chapter{Hasselt in Summer} - -\placecontent - -\section{Hasselt in July} - -\section{Hasselt in August} - -\stopbuffer - -\typebuffer - -it will only produce a list of (sub) section titles with the corresponding -section numbers and page numbers. - -The predefined command \type{\placecontent} is available because it was defined -with: - -\shortsetup{definecombinedlist} - -This command and \type{\definelist} allows you to define your own lists necessary -for accessing your documents. - -The use of this command and its related commands is illustrated for the default available -table of contents. - -\startbuffer -\definelist[chapter] -\setuplist - [chapter] - [before=\blank, - after=\blank, - style=bold] - -\definelist[section] -\setuplist - [section] - [alternative=d] -\stopbuffer - -\typebuffer - -Now there are two lists of chapters and sections and these will be combined in a -table of contents with the command \type{\definecombinedlist}. - -\startbuffer -\definecombinedlist - [content] - [chapter,section] - [level=subsection] -\stopbuffer - -\typebuffer - -Now two commands are available: \type{\placecontent} and \type{\completecontent}. -With the second command the title of the table of contents will be added to the -table of contents. - -The layout of lists can be varied with the parameter \type{alternative}. - -\placetable - [here,force] - [tab:alternatives] - {Alternatives for displaying lists.} - {\starttable[|c|l|] - \HL - \NC \bf Alternative \NC \bf Display \NC\SR - \HL - \NC \type{a} \NC number -- title -- page number \NC\FR - \NC \type{b} \NC number -- title -- spaces -- page number \NC\MR - \NC \type{c} \NC number -- title -- dots -- page number \NC\MR - \NC \type{d} \NC number -- title -- page number (continuing) \NC\MR - \NC \type{e} \NC reserved for interactive purposes \NC\MR - \NC \type{f} \NC reserved for interactive purposes \NC\MR - \NC \type{g} \NC reserved for interactive purposes \NC\LR - \HL - \stoptable} - -Lists are set up with: - -\shortsetup{setuplist} -\shortsetup{setupcombinedlist} - -If you want to change the layout of the generated table of contents you'll have -to remember that it is a (combined) list and that we can set the partial lists -separately. - -\startbuffer -\setuplist - [section] - [textstyle=bold, - pagestyle=bold, - numberstyle=bold] -\stopbuffer - -\typebuffer - -This will result in a bold page number, section title and section number. - -Lists are generated and placed with: - -\shortsetup{placelist} - -So if you want a list of sections at the beginning of a new chapter, you type: - -\starttyping -\placelist[section] -\stoptyping - -only the sections will be displayed. - -A long list or a long table of contents will use up more than one page. To be -able to force page breaking you can type: - -\starttyping -\placecontent[extras={8.2=page}] -\stoptyping - -A page break will then occur after section 8.2. - -In some cases you want to be able to write your own text in an automatically -generated list. This is done with: - -\shortsetup{writetolist} -\shortsetup{writebetweenlist} - -For example if you want to make a remark in your table of contents after a -section titled {\em Hotels in Hasselt} you can type: - -\startbuffer -\section{Hotels in Hasselt} -\writebetweenlist[section]{\blank} -\writetolist[section][location=here]{}{Section under construction} -\writebetweenlist[section]{\blank} -\stopbuffer - -\typebuffer - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-tabulations.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-tabulations.tex deleted file mode 100644 index 5ed877c76..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-tabulations.tex +++ /dev/null @@ -1,163 +0,0 @@ -\startcomponent ma-cb-en-tabulations - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[reference=tabulation,title=Tabulation / Paragraph formatting] - -\index{tabulation} -\index{tables+running text} -\index{columns} -\Command{\tex{starttabulate}} -\Command{\tex{definetabulate}} -\Command{\tex{setuptabulate}} -\Command{\tex{NR}} -\Command{\tex{NC}} - -Sometimes you want to typeset paragraphs in a specific formatted way. This is -done with: - -\shortsetup{starttabulate} - -The tabulation mechanism is closely related to the table mechanism. You can use -the tabulation mechanism in cases you want to typeset complete paragraphs within -a cell. The tabulation mechanism also works fine at a page break. - -\startbuffer -\starttabulate[|w(1.5cm)B|p(6.0cm)|p|] -\NC 1252 - \NC Hasselt obtains its city charter from bishop Hendrik - van Vianden. - \NC Hendrik van Vianden was pressed by other towns not - to agree with the charter. It took Hasselt a long - period of time to convince the Bishop. After - supporting the Bishop in a small war against the - Drents, the charter was released. \NC\NR -\NC 1350 - \NC Hasselt joins the Hanzepact to protect their - international trade. - \NC The Hanzepact was of great importance for merchants - in Hasselt. In those days trading goods were taxed - at every city, highway or rivercrossing. After - joining the Hanzepact duty free routes all over - Europe became available to Hasselt. However - important the Hanzepact was, Hasselt always stayed a - minor member of the pact. \NC\NR -\stoptabulate -\stopbuffer - -A tabulate definition could look like this: - -\typebuffer - -In this case the first column is \unit{1.5 centi meter} wide and is typeset bold -(\type{B}). The second column has a width of \unit{6 centi meter} and is typeset -like a paragraph. The remaining horizontal space is used up by the last -paragraph. - -The example is typeset like this: - -\getbuffer - -The tabulation entries are placed between the \type{\start ... \stoptabulate} -pair. Between the bracket pair your can specify the tabulate format with the -column separators \type{|} and the format keys (see \in {table} -[tab:tabularformattingkeys]). - -\placetable[][tab:tabularformattingkeys] - {Formatting keys for tabulate.} - {\starttable[|lT|l|lT|l|] - \HL - \NC \rm \bf Key \NC \rm \bf Meaning - \NC \rm \bf Key \NC \rm \bf Meaning - \NC \SR - \HL - \NC l \NC left align - \NC I \NC \it italic - \NC \FR - \NC c \NC center - \NC R \NC \sl roman - \NC \MR - \NC r \NC right align - \NC S \NC \sl slanted - \NC \MR - \NC i\sl n \NC spacing left - \NC T \NC \tt teletype - \NC \MR - \NC j\sl n \NC spacing right - \NC m \NC in||line math - \NC \MR - \NC k\sl n \NC spacing around - \NC M \NC display math - \NC \MR - \NC w({\sl d}) \NC 1 line, fixed width - \NC f\tex{command} \NC font specification - \NC \MR - \NC p({\sl d}) \NC paragraph, fixed width - \NC b\arg{..} \NC place \type{..} before the entry - \NC \MR - \NC p \NC paragraph, maximum width - \NC a\arg{..} \NC place \type{..} after the entry - \NC \MR - \NC B \NC \bf boldface - \NC h\tex{command} \NC apply \tex{command} on the entry - \NC \LR - \HL - \stoptable} - -In \in {table} [tab:tabulatestructurecommands] you find an overview -of the tabulate structuring commands. - -\placetable - [] - [tab:tabulatestructurecommands] - {Commands to define tabulate.} - {\starttable[|l|l|l|] - \HL - \NC \bf Command \NC \NC \bf Meaning \NC\SR - \HL - \NC \type{\start ... \stoptabulate} \NC \NC begin end tabulate \NC\FR - \NC \type{\NC} \NC next column \NC next column \NC\MR - \NC \type{\NR} \NC next row \NC next row \NC\MR - \NC \type{\HL} \NC horizontal line \NC horizontal line \NC\MR - \NC \type{\TB} \NC table blank \NC empty line \NC\MR - \NC \type{\definetabulate} \NC \NC define own tabulate \NC\MR - \NC \type{\setuptabulate} \NC \NC tabulate setup \NC\LR - \HL - \stoptable} - -Another example of paragraph formatting could look like this. - -\startbuffer -\definetabulate[ChemPar][|l|p|l|] - -\startChemPar -\NC Limekilns - \NC Hasselt has its own limekilns. These were build in 1504 - and produced quick lime up to 1956. Nowadays they are a - tourist attraction. - \NC \inlinechemical{CaCO_3,GIVES,CaO,+,CO_2} \NC\NR -\stopChemPar -\stopbuffer - -\typebuffer - -And it would come out like this: - -\getbuffer - -In \in{chapter}[chemical] your can find some more information on chemistry -and \CONTEXT. - -Here we also introduced the command to define our own paragraph layout. - -\shortsetup{definetabulate} - -and we also have: - -\shortsetup{setuptabulate} - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-textbackgrounds.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-textbackgrounds.tex deleted file mode 100644 index 0f4689f3f..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-textbackgrounds.tex +++ /dev/null @@ -1,55 +0,0 @@ -\startcomponent ma-cb-en-textbackgrounds - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Background in paragraphs] - -\index{background+text} - -\Command{\tex{setuptextbackground}} -\Command{\tex{definetextbackground}} -\Command{\tex{starttextbackground}} - -To emphasize a paragraph you can use backgrounds. A background is set with the -command pair: - -\shortsetup{starttextbackground} - -An example can illustrate the use: - -\startbuffer -\setuptextbackground - [corner=round,frame=on, - location=paragraph, - leftoffset=.5\bodyfontsize, - rightoffset=.5\bodyfontsize, - bottomoffset=5pt] - -\starttextbackground -Hasselt has produced a number of well known people. Only recently -it turned out that Kilian van Rensselaer played a prominent role -in the foundation of the State of New York. -\stoptextbackground -\stopbuffer - -\typebuffer - -This would be displayed as: - -\getbuffer - -Backgrounds can span multiple pages. - -You can vary the display of the backgrounds with: - -\shortsetup{setuptextbackground} - -You can even define your own text backgrounds with: - -\shortsetup{definetextbackground} - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-texteditor.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-texteditor.tex deleted file mode 100644 index bed8017d5..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-texteditor.tex +++ /dev/null @@ -1,32 +0,0 @@ -\startcomponent ma-cb-en-texteditor - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[reference=texteditor,title=The \SCITE\ text editor] - -The developers of \CONTEXT\ have always been able to proces their \TEX\ files -from a text editor. In that way \CONTEXT\ became an effective authoring tool. - -At this moment the text editors \SCITE\ and \TEXWORKS\ are more or less part of -the \CONTEXT\ distribution. - -Please refer to the \goto {\CONTEXTWIKI} [ url (http://wiki.contextgarden.net/Windows_Installation:_ConTeXt_Suite_with_SciTe) ] -and learn how to install \SCITE. - -\SCITE\ supports the: - -\startitemize[packed] -\item processing \TEX\ of files -\item colored display of commands (lexing) -\item syntax checking of \TEX, \XML\ and \LUA\ files -\item spell checking of your text -\stopitemize - -The \CONTEXT\ specific support of \SCITE\ is described in the manual \goto -{\SCITE\ in \CONTEXT} [ url (manual:scite) ]. - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-units.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-units.tex deleted file mode 100644 index ce596c0b5..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-units.tex +++ /dev/null @@ -1,101 +0,0 @@ -\startcomponent ma-cb-en-units - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[reference=units,title=Units] - -\index{units} -\index[siunit]{SI--unit} - -\Command{\tex{unit}} - -To force yourself to use dimensions and units consistently throughout your -document you can use the \type{\unit} command. Let's give a few examples: - -\startbuffer -\unit{meter per square meter} -\unit{cubic meter per sec} -\unit{square milli meter per inch} -\unit{centi liter per sec} -\unit{meter inverse sec} -\unit{newton per square inch} -\unit{newton times meter per square sec} -\stopbuffer - -\typebuffer - -It looks like a lot of typing but it does guarantee a consistent use of units. -The command \type{\unit} also prevents linebreaking between number and unit. -The examples above come out as: - -\startnarrower -\startlines -\getbuffer -\stoplines -\stopnarrower - -You can add your own units with: - -\shortsetup{registerunit} - -and set them up with: - -\shortsetup{setupunit} - -\startbuffer -\registerunit[unit][inhab=inhabitants] \setupunittext[inhabitants=inh] -\registerunit[unit][north=north] \setupunittext[north= N] -\registerunit[unit][east=east] \setupunittext[east= E] - -Hasselt is part of the municipality of Zwartewaterland -(coordinates \unit {52 degrees 35 arcminute north}, -\unit {6 degrees 5 arcminute east}). Its area is about -\unit {88 square kilometer} (land \unit {83 square kilom} -and water \unit{5 square km}). As of 1st Augustus 2013 the -population is 22.201 that is \unit {268 inhab per square kilo -meter}). -\stopbuffer - -In the example below you can see some new units and the non-consistent -use of \unit{kilo meter}. - -\typebuffer - -This results in: - -\getbuffer - -The \type{\unit} command also allows you to align rows of units in a column. - -\startbuffer -\bTABLE -\bTR \bTD \bf Street \eTD \bTD \bf Length \eTD \eTR -\bTR \bTD Ridderstraat \eTD \bTD \unit{_,160 meter} \eTD \eTR -\bTR \bTD Prinsengracht \eTD \bTD \unit{_,240 meter} \eTD \eTR -\bTR \bTD Kalverstraat \eTD \bTD \unit{_,_60 meter} \eTD \eTR -\bTR \bTD H.A.W. van de Vechtlaan \eTD \bTD \unit{1,250 meter} \eTD \eTR -\bTR \bTD Meestersteeg \eTD \bTD \unit{_,_45 meter} \eTD \eTR -\eTABLE -\stopbuffer - -When you type: - -\typebuffer - -It will generate a well aligned second column: - -\bgroup -\setupTABLE[frame=off,offset=0pt] -\setupTABLE[c][1][width=4.5cm] - -\getbuffer -\egroup - -Please refer to the manual \goto {\em Units} [ url(manual:units) ] for more -information and details. - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-usersetups.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-usersetups.tex deleted file mode 100644 index 2d89e937a..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-usersetups.tex +++ /dev/null @@ -1,68 +0,0 @@ -\startcomponent ma-cb-en-usersetups - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=User specifications] - -\index{preamble} -\index{input file} - -The setup area of your document is the area before -the \type{\starttext} command. For example: - -\setuptyping - [escape=yes] - -\definestartstop - [comment][style={\rm}] - -\starttyping - /BTEX \comment{first line of your file} /ETEX -\setuplayout[width=25cm] /BTEX \comment{set the width of your text} /ETEX - /BTEX \comment{empty line for readability} /ETEX -\starttext /BTEX \comment{starts your text} /ETEX -Hello Hasselt. /BTEX \comment{your text} /ETEX -\stoptext /BTEX \comment{ends your text} /ETEX -\stoptyping - -Note that the first line of this file is empty. However, this first line -is a preamble and can be used for specific user specifications. For example: - -\starttyping -% engine=luatex /BTEX \comment{use the \type{luatex} engine} /ETEX - /BTEX \comment{empty line for readability} /ETEX -\setuplayout[width=25cm] /BTEX \comment{set the width of your text} /ETEX - /BTEX \comment{empty line for readability} /ETEX -\starttext /BTEX \comment{starts your text} /ETEX -Hello Hasselt. /BTEX \comment{your text} /ETEX -\stoptext /BTEX \comment{ends your text} /ETEX -\stoptyping - -Note that \CONTEXT\ sees the text after the \type{ % } -sign in this first line not as a comment. - -The preamble can have a meaning for both \CONTEXT\ and \SCITE: - -\starttyping -% engine=pdftex interface=en modes=screen language=uk - -\starttext -Hello Hasselt. -\stoptext -\stoptyping - -This will be interpreted as: - -\starttabulate[|T||p|] -\NC engine=pdftex \NC \CONTEXT \EQ run as \PDFTEX \NC\NR -\NC interface=en \NC \CONTEXT \EQ expect english \CONTEXT\ commands (lexing) \NC\NR -\NC \NC \SCITE \EQ use english lexing \NC\NR -\NC modes=screen \NC \CONTEXT \EQ invoke mode \type{screen} that is set in the text \NC\NR -\NC language=uk \NC \SCITE \EQ use the english spell checker \NC\NR -\stoptabulate - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en-whatever.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en-whatever.tex deleted file mode 100644 index aa61bb0cb..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en-whatever.tex +++ /dev/null @@ -1,1079 +0,0 @@ -\startcomponent ma-cb-en-whatever - -\enablemode[**en-us] - -\project ma-cb - -\startchapter[title=Miscellaneous] - -\startsection[title=A titlepage] - -\index{titlepage} - -\Command{\tex{startstandardmakeup}} -\Command{\tex{definemakeup}} -\Command{\tex{setupmakeup}} - -In the first example of this manual on \at{page}[inputfile] we used the command: - -\shortsetup{startnamemakeup} -%\shortsetup{start<<name>>makeup} % does not work - -This command can be used to define titlepages. Such a command is needed since -title pages often have a different layout than that of the bodytext. With the -command pair \type{\start ... \stopstandardmakeup} you can make up a page within -the default page dimensions. - -A simple titlepage may look like this: - -\startbuffer -\startstandardmakeup -\blank -\rightaligned{\tfd Hasselt in the 21st century} -\blank -\rightaligned{\tfb The future} -\vfill -\rightaligned{\tfa C. van Marle} -\rightaligned{Hasselt, 2013} -\stopstandardmakeup -\stopbuffer - -\typebuffer - -In a doublesided document you have to go through some additional actions to -typeset the back of the titlepage. - -\startbuffer -\startstandardmakeup[doublesided=no] -\blank -\rightaligned{\tfd Hasselt in the 21st century} -\blank -\rightaligned{\tfb The future} -\vfill -\rightaligned{\tfa C. van Marle} -\rightaligned{Hasselt, \currentdate[year]} -\stopstandardmakeup -\startstandardmakeup[page=no] -\vfill -\copyright \currentdate[year] - -This book is dedicated to the people living in Hasselt. We -want to thank photographer J. Jonker for manipulating the -photos in this book in such a way that readers can get a -clear picture of Hasselt's future look. -\stopstandardmakeup -\stopbuffer - -\typebuffer - -Your own make ups can be made and set up with: - -\shortsetup{definemakeup} - -and - -\shortsetup{setupmakeup} - -Please refer to the \goto {\CONTEXTWIKI} [ url (http://wiki.contextgarden.net/Command/setupmakeup) ] -for more information on the \type{\start...\stopmakeup} command. - -\stopsection - -\startsection[reference=overlays,title=Overlays] - -\index{overlay} - -The overlay mechanism gives you the opportunity to add a specific layout -to a text component. When there is a background option in a \CONTEXT\ command -you can use overlays. - -\startbuffer -\defineoverlay - [verticalbar] - [{\blackrule[height=2cm,width=.5cm,color=red]}] - -\defineoverlay - [horizontalbar] - [{\blackrule[height=.5cm,width=12cm,color=red]}] - -\framed - [width=12cm, - height=6cm, - background={color,foreground,verticalbar,horizontalbar}, - offset=overlay, - backgroundcolor=blue, - frame=off] - {\blackrule[width=12cm,height=2cm,color=white]} -\stopbuffer - -The flag of Hasselt could be defined with framed and a number of overlays: - -\typebuffer - -This will become: - -\startlinecorrection -\getbuffer -\stoplinecorrection - -The pagenumber in this manual has a background with an overlay where the -\type{\MPclipFive} command takes care of drawing the image with \METAPOST. - -\startbuffer -\defineoverlay - [NumberBackground] - [\MPclipFive{\overlaywidth}{\overlayheight}{30pt}{5pt}] - -\setuppagenumbering - [\location={footer,middle}, - \command=\NummerCommand] - -\def\NummerCommand#1% - {\framed - [\background=NumberBackground, - \frame=off, - \offset=6pt] - {\lower.5\dp\strutbox\hbox spread 60pt{\hss#1\hss}}} -\stopbuffer - -\typebuffer - -\stopsection - -\startsection[reference=setups,title=Setups] - -\index{setups} - -\Command{\tex{setup}} - -While defining the layout of a document you can define setups -with \type{\start...\stopsetups}. Setups are placed in the setup area of -input file and mostly used to combine a number of commands. - -\startbuffer -\startsetups colorize - \blue -\stopsetups - -\startsetups decolorize - \black -\stopsetups - -\setupitemize - [before=\setups{colorize}, - after=\setups{decolorize}] - -Some data on the church are: - -\startitemize[packed,3*broad] -\sym{997} mentioned for the first time -\sym{1380} destroyed by fire -\sym{1466} rebuild -\sym{1657} restored after shelling by enemy troops -\sym{1725} struck by lightning -\stopitemize - -\stopbuffer - -\typebuffer - -Which would result in: - -\start % AFO: to keep color and distance local -\getbuffer -\stop - -Another way of invoking the setups is by the \type{setups} option -that comes with some \CONTEXT\ commands: - -\startbuffer -\definestartstop[remark] - -\setupstartstop[remark] - [before=\startframed, - after=\stopframed] - -\startsetups important - \inleftmargin - [scope=local, - hoffset=1em]{\bf\color[blue]{→}} -\stopsetups - -\setupframed - [align=normal, - setups=important, - frame=on, - framecolor=blue, - offset=5pt] - -\startremark - The Stephanus Church was built in 997. After an enormous - fire in 1380 it was rebuilt and that's why it has Gothic - features. The rebuilding was finished in 1466.\endgraf -\stopremark -\stopbuffer - -\typebuffer - -This becomes: - -\blank - -\start -\getbuffer -\stop - -\stopsection - -\startsection[reference=variables,title=Variables] - -\index{variables} - -\Command{\tex{getvariable}} -\Command{\tex{setvariables}} - -There is a mechanism in \CONTEXT\ that enables you to compact information in a -list of variables that you can recall throughout the document. - -\shortsetup{setvariables} - -The example below shows how to use variables in defining a coverpage. - -\startbuffer -\setvariables - [cover] - [set=\setups{coverpage}, - student=no, - teacher=yes, - title=From Hasselt to America, - subtitle=An Odyssey, - authors=\setup{allauthors}, - edition=2012, - isbn=0123456789] -\stopbuffer - -\typebuffer - -The moment you need the title on your cover page (or somewhere else in your document) you can -summon it by: - -\startbuffer -\getvariable{cover}{title} -\stopbuffer - -\typebuffer - -\stopsection - -\startsection[reference=floatingblocks,title=Floating blocks] - -\index{floating blocks} -\index{postponing a block} - -\Command{\tex{definefloat}} -\Command{\tex{setupfloat}} -\Command{\tex{setupfloats}} -\Command{\tex{setupcaptions}} -\Command{\tex{placeintermezzo}} - -A block in \CONTEXT\ is a text element, for example a table or a figure that you -can process in a special way. You have already seen the use of -\type{\placefigure} and \type{\placetable}. These are both examples of floating -blocks. The floating mechanism is described in \in{chapter}[figures] and -\in[tables]. - -You can define these kind of blocks yourself with: - -\shortsetup{definefloat} - -The bracket pairs are used for the name in singular and -plural form. For example: - -\starttyping -\definefloat[intermezzo][intermezzi] -\stoptyping - -Now the following commands are available: - -\starttyping -\placeintermezzo[][]{}{} -\startintermezzotext ... \stopintermezzotext -\placelistofintermezzi -\completelistofintermezzi -\stoptyping - -The newly defined floating block can be set up with: - -\shortsetup{setupfloat} - -You can set up the layout of floating blocks with: - -\shortsetup{setupfloats} - -You can set up the numbering and the labels with: - -\shortsetup{setupcaption} - -These commands are typed in the set up area of your input file and will have a -global effect on all floating blocks. - -\setupframedtexts - [width=.8\makeupwidth, - background=color, - backgroundcolor=gray, - corner=round, - framecolor=blue, - rulethickness=2pt] - -\startbuffer -\setupfloat[intermezzo][location=middle] -\setupcaption[location=bottom,headstyle=boldslanted] - -\placeintermezzo{An intermezzo.} -\startframedtext -At the beginning of this century there was a tram line from -Zwolle to Blokzijl via Hasselt. Other means of transport became -more important and just before the second world war the tram line -was stopped. Nowadays such a tram line would have been very -profitable. -\stopframedtext -\stopbuffer - -\typebuffer - -\start -\getbuffer -\stop - -The framed texts inherits its layout from the example \at{page}[block:bridge]. - -Tables or figures may take up a lot of space. The placing of these text elements -can be postponed till the next page break. This is done with: -\type{\start ... \stoppostponing}: - -\startbuffer -\startpostponing -\placefigure - {A postponed figure.} - {\externalfigure[ma-cb-16][width=\textwidth]} -\stoppostponing -\stopbuffer - -\typebuffer - -The figure will be placed at the top of the next page and will cause minimal -disruption of the running text. - -\getbuffer - -\stopsection - -% \startsection[reference=textblocks,title=Text blocks] % AFO 2013: weggehaald, wordt toch nooit gebruikt - -% \index{text blocks} - -% \Command{\tex{defineblock}} -% \Command{\tex{useblocks}} -% \Command{\tex{hideblocks}} -% \Command{\tex{setupblock}} - -% \stopsection - -\startsection[title=Storing text for later use] - -\index{storing text} - -\Command{\tex{startbuffer}} -\Command{\tex{getbuffer}} -\Command{\tex{typebuffer}} -\Command{\tex{savebuffer}} -\Command{\tex{setupbuffer}} - -You can store information temporarily for future use in your document with: - -\shortsetup{startbuffer} - -For example: - -\starttyping -\startbuffer[visit] -If you want to see what Hasselt has in store you should come and -visit it some time. If you take this manual with you, you will -recognise some locations. -\stopbuffer - -\getbuffer[visit] -\stoptyping - -With \type{\getbuffer[visit]} you recall the stored text. The logical name is -optional. With \type{\typebuffer[visit]} you get back the typeset version of the -content of the buffer. - -Buffers are set up with: - -\shortsetup{setupbuffer} - -You can also save a buffer to an external file with: - -\shortsetup{savebuffer} - -If you want to save the buffer \type{visit} in an external file called -\type{myfile-sightseeing.tmp} you type: - -\starttyping -\savebuffer[visit][sightseeing] -\stoptyping - -\stopsection - -\startsection[title=Lines] - -\index{lines} - -\Command{\tex{hairline}} -\Command{\tex{starttextrule}} -\Command{\tex{thinrule}} -\Command{\tex{thinrules}} -\Command{\tex{setupthinrules}} -\Command{\tex{underbar}} -\Command{\tex{overstrikes}} -\Command{\tex{periods}} - -There are many comands to draw lines. For a single line you type: - -\shortsetup{hairline} - -or: - -\shortsetup{thinrule} - -For more lines you type: - -\shortsetup{thinrules} - -Text in combination with lines is also possible: - -\startbuffer -\starttextrule{Hasselt -- Amsterdam} -If you draw a straight line from Hasselt to Amsterdam you would have -to cover a distance of almost 145 \unit{Kilo Meter}. -\stoptextrule - -If you draw two straight lines from Hasselt to Amsterdam you would -have to cover a distance of almost 290 \unit{Kilo Meter}. - -Amsterdam \thinrules[n=3] Hasselt -\stopbuffer - -\getbuffer - -The code of this example is: - -\typebuffer - -You always have to be careful in drawing lines. Empty lines around -\type{\thinrules} must not be forgotten and the vertical spacing is always a -point of concern. - -You can set up line spacing with: - -\shortsetup{setupthinrules} - -There are a few complementary commands that might be very -useful. - -\shortsetup{setupfillinrules} - -These commands are introduced in the examples below: - -\startbuffer -\setupfillinrules[width=2cm] -\setupfillinlines[width=3cm] - -\fillinrules[n=1]{\bf name} -\fillinrules[n=3]{\bf adress} - -\fillinline{Can you please state the \underbar{number} of houses - in Hasselt.} \par - -Strike out \overstrikes{Hasselt in this text}\periods[18] -\stopbuffer - -\typebuffer - -This will become: - -\getbuffer - -These commands are used in questionaires. Text that is -struck out or underlined will not be hyphenated. - -In \in{section}[overlays] you have already seen the use of the -\type{\blackrule} command that can be set up with: - -\shortsetup{setupblackrules} - -\startbuffer -\blank -\blackrule[width=\textwidth,height=1cm,color=blue] -\stopbuffer - -\typebuffer - -This will result in a rather fat line: - -\getbuffer - - -\stopsection - -\startsection[title=Super- and subscript in text] - -\index{subscript} -\index{superscript} - -\Command{\tex{low}} -\Command{\tex{high}} -\Command{\tex{lohi}} - -\startbuffer -Hasselt's economy has known its \high{ups} and \low{downs}. -Since the nineties of the last century its economy is -\lohi{so}{so}. -\stopbuffer - -\getbuffer - -This ugly text was made with \type{\low{}}, \type{\high{}} and \type{\lohi{}{}}. -The text was placed between the curly braces. - -\stopsection - -\startsection[title=Date] - -\index{date} - -\Command{\tex{currentdate}} - -You can invoke the system date in your text with: - -\shortsetup{currentdate} - -With \type{\currentdate[day]}, \type{\currentdate[month]} and \type{\currentdate[year]} you can -invoke day, month and year separately. - -\stopsection - -\startsection[title=Rotating text, figures and tables] - -\index{rotating} - -\Command{\tex{rotate}} - -Sometimes you may want to rotate text or images. You can rotate -text and other objects with: - -\shortsetup{rotate} - -The first bracket pair is optional. Within that bracket pair -you specify the rotation: \type{rotation=90}. The curly -braces contain the text or object you want to rotate. - -\startbuffer -Hasselt got its municipal rights in 1252. From that time on it had -the \rotate[rotation=90]{right} to use its own seal on official -documents. This seal showed Holy Stephanus known as one of the first -Christian martyrs, and was the \rotate[rotation=270]{patron} of -Hasselt. After the Reformation the seal was redesigned and Stephanus -lost his \quote{holiness} and was from that time on depicted without -his aureole. -\stopbuffer - -\typebuffer - -This results in a very ugly paragraph: - -\getbuffer - -You can rotate an image just as easily: - -% \placetable[rotate][]{}{} - -\startbuffer -\placefigure - [][fig:rotation] - {The 180 \unit{Degrees} rotated fishing port (de Vispoort).} - {\rotate[rotation=180]{\externalfigure[ma-cb-15][width=10cm]}} -\stopbuffer - -\typebuffer - -You can see in \in{figure}[fig:rotation] that it is not always clear what you get -when you rotate. - -\getbuffer - -We can set up rotating with: - -\shortsetup{setuprotate} - -In the example above you could also rotate image and caption by: - -\startbuffer -\placefigure - [180][fig:rotation] - {The 180 \unit{Degrees} rotated fishing port (de Vispoort).} - {\externalfigure[ma-cb-15][width=10cm]} -\stopbuffer - -\typebuffer - -\stopsection - -\startsection[title=Scaling text] - -\index{scaling} - -\Command{\tex{scale}} -\Command{\tex{setupscale}} - -For some obscure reasons you may want to scale text. You can scale text and other -objects with: - -\shortsetup{scale} - -\startbuffer -After 1810 the Dedemsvaart brought some prosperity to Hasselt. All -ships went through the canals of Hasselt and the \scale[factor=10]{shops} on both -sides of the canals \scale[factor=10]{prospered}. -\stopbuffer - -\typebuffer - -Which will result in: - -\getbuffer - -\stopsection - -\startsection[title=Space] - -\index{space} -\index{tilde} -\index{non-breakable space} - -\Command{\tex{space}} -\Command{\tex{fixedspaces}} - -The command \type{\space} will produce a space. In \CONTEXT\ the -\type{~} (tilde) is a non-breakable space. - -\startbuffer -The Ridderstraat in Hasselt is about 160~m long and 5 to 6~m wide -with houses on both sides of the street. -\stopbuffer - -\typebuffer - -Tildes can also be used to align numbers in a row. The command -\type{\fixedspaces} will give the tilde the fixed width of a number. - -\startbuffer -\fixedspaces - -\bTABLE[frame=off] -\bTR \bTD Ridderstraat \eTD \bTD 160 m \eTD \eTR -\bTR \bTD Prinsengracht \eTD \bTD 240 m \eTD \eTR -\bTR \bTD Kalverstraat \eTD \bTD ~60 m \eTD \eTR -\bTR \bTD Meestersteeg \eTD \bTD ~45 m \eTD \eTR -\eTABLE -\stopbuffer - -\typebuffer - -\stopsection - -\startsection[title=Carriage return] - -\index{carriage return} - -\Command{\tex{crlf}} -\Command{\tex{startlines}} - -A new line can be enforced with: - -\shortsetup{crlf} - -As a \CONTEXT\ user you should use this command only as a last resort. - -When a number of lines should be followed by a {\em carriage return and line feed} -you can use: - -\shortsetup{startlines} - -\starttyping -\startlines -. -. -. -\stoplines -\stoptyping - -\startbuffer -On a wooden panel in the town hall of Hasselt you can read: - -\startlines -Heimelijcken haet -eigen baet -jongen raet -Door diese drie wilt verstaen -is het Roomsche Rijck vergaen. -\stoplines - -This little rhyme contains a warning for the magistrates of -Hasselt: don't allow personal benefits or feelings to -influence your wisdom in decision making. -\stopbuffer - -\typebuffer - -This will become: - -\getbuffer - -In a few commands new lines are generated by \type{\\}. For example if you type -\type{\inmargin{in the\\margin}} then the text will be divided over two lines. - -\stopsection - -\startsection[title=Hyphenation] - -\index{hyphenation} -\index{language} - -\Command{\tex{mainlanguage}} -\Command{\tex{language}} -\Command{\tex{nl}} -\Command{\tex{en}} - -When writing multi-lingual texts you have to be aware of the fact that -hyphenation may differ from one language to another. - -To activate a language you type: - -\shortsetup{mainlanguage} - -Between the brackets you fill in -\type{af}, -\type{ca}, -\type{cs}, -\type{cs}, -\type{da}, -\type{de}, -\type{en}, -\type{fi}, -\type{fr}, -\type{it}, -\type{la}, -\type{nl}, -\type{nb}, -\type{nn}, -\type{pl}, -\type{pt}, -\type{es}, -\type{sv} and -\type{tr} for -afrikaans, -catalan, -czech, -slovak, -danish, -german, -english, -finnish, -french, -italian, -latin, -dutch, -bokmal, -nnynorsk, -polish, -portuguese, -spanish, -swedish and -turkish respectively. - -To change from one language to another you can use: - -\starttyping -\language[nl] \language[en] \language[de] \language[fr] \language[sp] ... -\stoptyping - -or the shorthand versions: - -\starttyping -\nl \en \de \fr \sp ... -\stoptyping - -An example: - -\startbuffer -If you want to know more about Hasselt, the best book to read is -probably \quote{\nl Uit de geschiedenis van Hasselt} by -F.~Peereboom. -\stopbuffer - -\typebuffer - -\getbuffer - -If a word is wrongly hyphenated you can define the hyphenation points yourself. -This is done in the set up area of your input file: - -\startbuffer -\hyphenation{his-to-ry} -\stopbuffer - -\typebuffer - -Note that the language setting is also responsible for the way quotes are placed -around quotes and quotations (see \in{section}[quotations]). - -In some languages (like Dutch) compound words are used that are connected with a -hyphen. The separate words have to be hyphenated correctly. In order to do that -you can use \type{||}. - -\startbuffer -If your looking for an English||speaking person in Hasselt you should -go to the Tourist Information Office. There you may expect to find -full|| and part||time employees who are fluent in German, English, -French and of course Dutch. -\stopbuffer - -\typebuffer - -This will become: - -\getbuffer - -The double \type{||} takes care of the hyphen and the correct hyphenation of the -separate words. Also note the suspended compounds. - -\stopsection - -\startsection[title=Charts] - -\index{chart} - -\Command{\tex{FLOWchart}} - -To enable you to draw flow diagrams \CONTEXT\ contains the core module -\type{chart}. A simple organogram may look like this: - -\startbuffer -\setupFLOWcharts - [width=9\bodyfontsize, - height=2\bodyfontsize, - dx=1\bodyfontsize, - dy=1\bodyfontsize] - -\setupFLOWlines - [arrow=no] - -\startFLOWchart[organogram] - \startFLOWcell - \shape {action} - \name {01} - \location {2,1} - \text {Zwartewaterland} - \connect [bt]{02} - \connect [bt]{03} - \connect [bt]{04} - \stopFLOWcell - \startFLOWcell - \shape {action} - \name {02} - \location {1,2} - \text {Hasselt} - \stopFLOWcell - \startFLOWcell - \shape {action} - \name {03} - \location {2,2} - \text {Zwartsluis} - \stopFLOWcell - \startFLOWcell - \shape {action} - \name {04} - \location {3,2} - \text {Genemuiden} - \stopFLOWcell -\stopFLOWchart -\stopbuffer - -\midaligned{\getbuffer\FLOWchart[organogram]} - -This diagram is defined with the commands below: - -\typebuffer - -It is of good practice to define your setups and flow diagrams in separate -definition files (environments). - -\startbuffer -\FLOWchart[organogram] -\stopbuffer - -The flowchart can then be invoked by: - -\typebuffer - -\stopsection - -\startsection[title=Comment in input file] - -\index{comment} -\index[percent]{\% in input file} - -All text between \type{\start...\stoptext} will be processed while running -\CONTEXT. Sometimes however you may have text fragments you don't want to be -processed or you want to comment on your \CONTEXT\ commands. - -If you preceed your text with the percentage sign \type{%} -it will not be processed. - -\startbuffer -% In very big documents you can use the command \input for -% different files. -% -% For example: -% -% \input hass01.tex % chapter 1 on Hasselt -% \input hass02.tex % chapter 2 on Hasselt -% \input hass03.tex % chapter 3 on Hasselt -\stopbuffer - -\typebuffer - -When you delete the \type{%} before \type{\input} the three files will be -processed. The comment describing the contents of the files will not be -processed. - -\stopsection - -\startsection[title=Notes] - -\index{note} - -\Command{\tex{startcomment}} - -If you want your comment in the input file visible as a 'note' in the PDF file -you can use: - -\shortsetup{startcomment} - -\startbuffer -\startcomment - The image of the Vispoort should be in color. -\stopcomment -\stopbuffer - -\typebuffer - -The command will produce a sticky note in the PDF. - -The note is only visible when interactivity is set with \type{\setupinteraction} -and the comment with \type{\setupcomment}. - -\stopsection - -\startsection[title=Hiding text] - -\index{hiding text} - -\Command{\tex{starthiding}} - -Text can be hidden with: - -\shortsetup{starthiding} - -The text between \type{\start ... \stophiding} will not be processed. - -\stopsection - -\startsection[title=Input of another {\tt tex} file] - -\index{input other \TEX--files} - -\Command{\tex{input}} - -In a number of situations you may want to insert other \TEX\ files in your input -file. For example, sometimes it is more efficient to specify \CONTEXT\ sources in -more than one file in order to be able to partially process your files. - -Another file (with the name \type{another.tex}) can be inserted by: - -\starttyping -\input another.tex -\stoptyping - -The extension is optional so this will work too: - -\starttyping -\input another -\stoptyping - -The command \type{\input} is a \TEX\ command. - -For a more systematic approach in maintaining your documents \CONTEXT\ supports a -project structure with commands like \type{\start...\stopenvironment} and -\type{\start...\stopproduct}. Please refer to the magazine -\goto {\em Project structure} [ url(thisway:proj-struc) ] -for more information. - -\stopsection - -\startsection[title=XML (eXtended Markup Language)] - -\index{xml} -\index{mathml} -\index{openmath} - -Normally you code your document with \CONTEXT\ commands so you can tell \CONTEXT\ -what to do with the coded text elements. - -A more rigid way to code your content is \XML\ (eXtended Markup Language) which enables -you to have more control over your content (scripting, xslt, validation). A simple -\XML\ coded document could look like this: - -\startbuffer -<?xml version='1.0' standalone='yes?> - -<document> - <section> - <title>Hasselt in winter</title> - <content> - <p>In winter scating is a very popular sport in Hasselt. - All over Hasselt the frozen canals offer children a great - play ground.</p> - <p>...</p> - </content> - </section> -</document> -\stopbuffer - -\typebuffer - -\CONTEXT\ is able to deal with \XML\ directly without underlying XML2TEX -conversions. Please refer to the manual \goto {Dealing with XML} [ url -(manual:xml) ] for more information on how to process \XML\ documents. - -\CONTEXT\ also supports \MATHML\ (presentational and content markup) and -\OPENMATH\ with which math expressions can be coded in \XML\ documents. - -\stopsection - -\stopchapter - -\stopcomponent - diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en.pdf b/doc/context/sources/general/manuals/start/en/ma-cb-en.pdf Binary files differdeleted file mode 100644 index 6ad164eb0..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en.pdf +++ /dev/null diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-en.tex b/doc/context/sources/general/manuals/start/en/ma-cb-en.tex deleted file mode 100644 index 2e0b283af..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-en.tex +++ /dev/null @@ -1,86 +0,0 @@ -% interface=english language=uk modes=screen,bound - -% \showframe - -\startproduct ma-cb-en - -\project ma-cb - -% \disabledirectives[otf.kernruns] -% \disabledirectives[otf.discruns] -% \disabledirectives[otf.compruns] - -\startdocument - [title={\ConTeXt\ Mark IV\crlf an excursion}, - subtitle={English\crlf version}, - author={Ton Otten\crlf PRAGMA ADE}] - -\startfrontmatter - - \component ma-cb-en-introduction - -\stopfrontmatter - -\startbodymatter - - \component ma-cb-en-document - \component ma-cb-en-gettingstarted - \component ma-cb-en-specialcharacters - \component ma-cb-en-structure - \component ma-cb-en-setupcommands - \component ma-cb-en-heads - \component ma-cb-en-itemizations - \component ma-cb-en-math - \component ma-cb-en-chemical - \component ma-cb-en-units - \component ma-cb-en-bibliography - \component ma-cb-en-figures - \component ma-cb-en-tables - \component ma-cb-en-tabulations - \component ma-cb-en-columns - \component ma-cb-en-footnotes % Hans: zie lokale voetnoot tabel - \component ma-cb-en-citations - \component ma-cb-en-descriptions - \component ma-cb-en-enumerations - \component ma-cb-en-frames % Hans 2015: "background=linear shape" werkt niet en zorgt ervoor dat de background van de shortsetup niet meer werken - \component ma-cb-en-framedtexts - \component ma-cb-en-margintexts - \component ma-cb-en-pages - \component ma-cb-en-headers - \component ma-cb-en-tablesofcontent - \component ma-cb-en-registers - \component ma-cb-en-synonyms - \component ma-cb-en-sortedlists - \component ma-cb-en-references - \component ma-cb-en-color - \component ma-cb-en-alignments - \component ma-cb-en-interactivity % Hans: de soundtrack werkt niet en crossref met hasseltbook.tex werkt niet - \component ma-cb-en-fonts - \component ma-cb-en-composedcharacters - \component ma-cb-en-layout - \component ma-cb-en-pagebackgrounds - \component ma-cb-en-textbackgrounds - \component ma-cb-en-paragraphs - \component ma-cb-en-commands - \component ma-cb-en-whatever - \component ma-cb-en-modules - \component ma-cb-en-presentations - \component ma-cb-en-metapost - \component ma-cb-en-usersetups - -\stopbodymatter - -\startappendices - - \component ma-cb-en-mathcharacters - \component ma-cb-en-errors - \component ma-cb-en-texteditor - \component ma-cb-en-processingfiles - \component ma-cb-en-runtimefiles - -\stopappendices - -\stopdocument - -\stopproduct - diff --git a/doc/context/sources/general/manuals/start/en/ma-cb-language.tex b/doc/context/sources/general/manuals/start/en/ma-cb-language.tex deleted file mode 100644 index 5c6d91d07..000000000 --- a/doc/context/sources/general/manuals/start/en/ma-cb-language.tex +++ /dev/null @@ -1,21 +0,0 @@ -\startenvironment ma-cb-language - -\mainlanguage[en] - -\setuplabeltext - [en] - [ document:author=Main author, - document:design=Design and style, - document:contributions=Contributions, - document:translations=Translations, - document:illustrations=Illustrations, - document:commanddefinitions=Command definitions, - document:commandindex=Command index, - document:subjectindex=Subject index, - document:contents=Contents, - document:manuals=Manuals, - document:magazines=Magazines, - document:supportandreading=Support and further reading, - document:furtherreading=Further reading] - -\stopenvironment diff --git a/doc/context/sources/general/manuals/start/en/sounds-001.tex b/doc/context/sources/general/manuals/start/en/sounds-001.tex deleted file mode 100644 index 7d1428113..000000000 --- a/doc/context/sources/general/manuals/start/en/sounds-001.tex +++ /dev/null @@ -1,34 +0,0 @@ -\definerenderingwindow - [example] - [width=0pt,height=0pt,frame=off] - -\setupinteraction[state=start] - -\useexternalrendering - [mysound] - [audio/mpeg] % audio/x-mp3 - [akkerman.mp3] - [] - -\definereference [StartSoundTrack] [StartRendering{mysound}] -\definereference [StopSoundTrack] [StopRendering{mysound}] - -\definelayer[resources][width=\paperwidth,height=\paperheight] - -\setupbackgrounds[page][background=resources] - -\starttext - - \setlayer[resources]{\placerenderingwindow[example][mysound]} % once - - \startTEXpage - \button{start}[StartSoundTrack] - \button{stop}[StopSoundTrack] - \stopTEXpage - - \startTEXpage - \button{start}[StartSoundTrack] - \button{stop}[StopSoundTrack] - \stopTEXpage - -\stoptext diff --git a/doc/context/sources/general/manuals/start/graphics/cow.pdf b/doc/context/sources/general/manuals/start/graphics/cow.pdf Binary files differdeleted file mode 100644 index 2441faf74..000000000 --- a/doc/context/sources/general/manuals/start/graphics/cow.pdf +++ /dev/null diff --git a/doc/context/sources/general/manuals/start/graphics/fig-page-areas-en.md b/doc/context/sources/general/manuals/start/graphics/fig-page-areas-en.md deleted file mode 100644 index b7c0ab5a6..000000000 --- a/doc/context/sources/general/manuals/start/graphics/fig-page-areas-en.md +++ /dev/null @@ -1,830 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: Mayura Draw, Version 4.3 -%%Title: fig-page-areas-en.md -%%CreationDate: Fri Jan 10 14:38:13 2014 -%%BoundingBox: 8 140 580 700 -%%DocumentFonts: ArialMT -%%+ Arial-BoldMT -%%Orientation: Portrait -%%EndComments -%%BeginProlog -%%BeginResource: procset MayuraDraw_ops -%%Version: 4.3 -%%Copyright: (c) 1993-2003 Mayura Software -/PDXDict 100 dict def -PDXDict begin -% width height matrix proc key cache -% definepattern -\> font -/definepattern { %def - 7 dict begin - /FontDict 9 dict def - FontDict begin - /cache exch def - /key exch def - /proc exch cvx def - /mtx exch matrix invertmatrix def - /height exch def - /width exch def - /ctm matrix currentmatrix def - /ptm matrix identmatrix def - /str - (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) - def - end - /FontBBox [ %def - 0 0 FontDict /width get - FontDict /height get - ] def - /FontMatrix FontDict /mtx get def - /Encoding StandardEncoding def - /FontType 3 def - /BuildChar { %def - pop begin - FontDict begin - width 0 cache { %ifelse - 0 0 width height setcachedevice - }{ %else - setcharwidth - } ifelse - 0 0 moveto width 0 lineto - width height lineto 0 height lineto - closepath clip newpath - gsave proc grestore - end end - } def - FontDict /key get currentdict definefont - end -} bind def - -% dict patternpath - -% dict matrix patternpath - -/patternpath { %def - dup type /dicttype eq { %ifelse - begin FontDict /ctm get setmatrix - }{ %else - exch begin FontDict /ctm get setmatrix - concat - } ifelse - currentdict setfont - FontDict begin - FontMatrix concat - width 0 dtransform - round width div exch round width div exch - 0 height dtransform - round height div exch - round height div exch - 0 0 transform round exch round exch - ptm astore setmatrix - - pathbbox - height div ceiling height mul 4 1 roll - width div ceiling width mul 4 1 roll - height div floor height mul 4 1 roll - width div floor width mul 4 1 roll - - 2 index sub height div ceiling cvi exch - 3 index sub width div ceiling cvi exch - 4 2 roll moveto - - FontMatrix ptm invertmatrix pop - { %repeat - gsave - ptm concat - dup str length idiv { %repeat - str show - } repeat - dup str length mod str exch - 0 exch getinterval show - grestore - 0 height rmoveto - } repeat - pop - end end -} bind def - -% dict patternfill - -% dict matrix patternfill - -/patternfill { %def - gsave - eoclip patternpath - grestore - newpath -} bind def - -/img { %def - gsave - /imgh exch def - /imgw exch def - concat - imgw imgh 8 - [imgw 0 0 imgh neg 0 imgh] - /colorstr 768 string def - /colorimage where { - pop - { currentfile colorstr readhexstring pop } - false 3 colorimage - }{ - /graystr 256 string def - { - currentfile colorstr readhexstring pop - length 3 idiv - dup 1 sub 0 1 3 -1 roll - { - graystr exch - colorstr 1 index 3 mul get 30 mul - colorstr 2 index 3 mul 1 add get 59 mul - colorstr 3 index 3 mul 2 add get 11 mul - add add 100 idiv - put - } for - graystr 0 3 -1 roll getinterval - } image - } ifelse - grestore -} bind def - -/arrowhead { - gsave - [] 0 setdash - strokeC strokeM strokeY strokeK setcmykcolor - 2 copy moveto - 4 2 roll exch 4 -1 roll exch - sub 3 1 roll sub - exch atan rotate dup scale - arrowtype - dup 0 eq { - -1 2 rlineto 7 -2 rlineto -7 -2 rlineto - closepath fill - } if - dup 1 eq { - 0 3 rlineto 9 -3 rlineto -9 -3 rlineto - closepath fill - } if - dup 2 eq { - -6 -6 rmoveto 6 6 rlineto -6 6 rlineto - -1.4142 -1.4142 rlineto 4.5858 -4.5858 rlineto - -4.5858 -4.5858 rlineto closepath fill - } if - dup 3 eq { - -6 0 rmoveto -1 2 rlineto 7 -2 rlineto -7 -2 rlineto - closepath fill - } if - dup 4 eq { - -9 0 rmoveto 0 3 rlineto 9 -3 rlineto -9 -3 rlineto - closepath fill - } if - dup 5 eq { - currentpoint newpath 3 0 360 arc - closepath fill - } if - dup 6 eq { - 2.5 2.5 rmoveto 0 -5 rlineto -5 0 rlineto 0 5 rlineto - closepath fill - } if - pop - grestore -} bind def - -/setcmykcolor where { %ifelse - pop -}{ %else - /setcmykcolor { - /black exch def /yellow exch def - /magenta exch def /cyan exch def - cyan black add dup 1 gt { pop 1 } if 1 exch sub - magenta black add dup 1 gt { pop 1 } if 1 exch sub - yellow black add dup 1 gt { pop 1 } if 1 exch sub - setrgbcolor - } bind def -} ifelse - -/RE { %def - findfont begin - currentdict dup length dict begin - { %forall - 1 index /FID ne { def } { pop pop } ifelse - } forall - /FontName exch def dup length 0 ne { %if - /Encoding Encoding 256 array copy def - 0 exch { %forall - dup type /nametype eq { %ifelse - Encoding 2 index 2 index put - pop 1 add - }{ %else - exch pop - } ifelse - } forall - } if pop - currentdict dup end end - /FontName get exch definefont pop -} bind def - -/spacecount { %def - 0 exch - ( ) { %loop - search { %ifelse - pop 3 -1 roll 1 add 3 1 roll - }{ pop exit } ifelse - } loop -} bind def - -/WinAnsiEncoding [ - 39/quotesingle 96/grave 130/quotesinglbase/florin/quotedblbase - /ellipsis/dagger/daggerdbl/circumflex/perthousand - /Scaron/guilsinglleft/OE 145/quoteleft/quoteright - /quotedblleft/quotedblright/bullet/endash/emdash - /tilde/trademark/scaron/guilsinglright/oe/dotlessi - 159/Ydieresis 164/currency 166/brokenbar 168/dieresis/copyright - /ordfeminine 172/logicalnot 174/registered/macron/ring - 177/plusminus/twosuperior/threesuperior/acute/mu - 183/periodcentered/cedilla/onesuperior/ordmasculine - 188/onequarter/onehalf/threequarters 192/Agrave/Aacute - /Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla - /Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute - /Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute - /Ocircumflex/Otilde/Odieresis/multiply/Oslash - /Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn - /germandbls/agrave/aacute/acircumflex/atilde/adieresis - /aring/ae/ccedilla/egrave/eacute/ecircumflex - /edieresis/igrave/iacute/icircumflex/idieresis - /eth/ntilde/ograve/oacute/ocircumflex/otilde - /odieresis/divide/oslash/ugrave/uacute/ucircumflex - /udieresis/yacute/thorn/ydieresis -] def - -/SymbolEncoding [ - 32/space/exclam/universal/numbersign/existential/percent - /ampersand/suchthat/parenleft/parenright/asteriskmath/plus - /comma/minus/period/slash/zero/one/two/three/four/five/six - /seven/eight/nine/colon/semicolon/less/equal/greater/question - /congruent/Alpha/Beta/Chi/Delta/Epsilon/Phi/Gamma/Eta/Iota - /theta1/Kappa/Lambda/Mu/Nu/Omicron/Pi/Theta/Rho/Sigma/Tau - /Upsilon/sigma1/Omega/Xi/Psi/Zeta/bracketleft/therefore - /bracketright/perpendicular/underscore/radicalex/alpha - /beta/chi/delta/epsilon/phi/gamma/eta/iota/phi1/kappa/lambda - /mu/nu/omicron/pi/theta/rho/sigma/tau/upsilon/omega1/omega - /xi/psi/zeta/braceleft/bar/braceright/similar - 161/Upsilon1/minute/lessequal/fraction/infinity/florin/club - /diamond/heart/spade/arrowboth/arrowleft/arrowup/arrowright - /arrowdown/degree/plusminus/second/greaterequal/multiply - /proportional/partialdiff/bullet/divide/notequal/equivalence - /approxequal/ellipsis/arrowvertex/arrowhorizex/carriagereturn - /aleph/Ifraktur/Rfraktur/weierstrass/circlemultiply - /circleplus/emptyset/intersection/union/propersuperset - /reflexsuperset/notsubset/propersubset/reflexsubset/element - /notelement/angle/gradient/registerserif/copyrightserif - /trademarkserif/product/radical/dotmath/logicalnot/logicaland - /logicalor/arrowdblboth/arrowdblleft/arrowdblup/arrowdblright - /arrowdbldown/lozenge/angleleft/registersans/copyrightsans - /trademarksans/summation/parenlefttp/parenleftex/parenleftbt - /bracketlefttp/bracketleftex/bracketleftbt/bracelefttp - /braceleftmid/braceleftbt/braceex - 241/angleright/integral/integraltp/integralex/integralbt - /parenrighttp/parenrightex/parenrightbt/bracketrighttp - /bracketrightex/bracketrightbt/bracerighttp/bracerightmid - /bracerightbt -] def - -/patarray [ -/leftdiagonal /rightdiagonal /crossdiagonal /horizontal -/vertical /crosshatch /fishscale /wave /brick -] def -/arrowtype 0 def -/fillC 0 def /fillM 0 def /fillY 0 def /fillK 0 def -/strokeC 0 def /strokeM 0 def /strokeY 0 def /strokeK 1 def -/pattern -1 def -/mat matrix def -/mat2 matrix def -/nesting 0 def -/deferred /N def -/c /curveto load def -/c2 { pop pop c } bind def -/C /curveto load def -/C2 { pop pop C } bind def -/e { gsave concat 0 0 moveto } bind def -/F { - nesting 0 eq { %ifelse - pattern -1 eq { %ifelse - fillC fillM fillY fillK setcmykcolor eofill - }{ %else - gsave fillC fillM fillY fillK setcmykcolor eofill grestore - 0 0 0 1 setcmykcolor - patarray pattern get findfont patternfill - } ifelse - }{ %else - /deferred /F def - } ifelse -} bind def -/f { closepath F } bind def -/K { /strokeK exch def /strokeY exch def - /strokeM exch def /strokeC exch def } bind def -/k { /fillK exch def /fillY exch def - /fillM exch def /fillC exch def } bind def -/opc { pop } bind def -/Opc { pop } bind def -/L /lineto load def -/L2 { pop pop L } bind def -/m /moveto load def -/m2 { pop pop m } bind def -/n /newpath load def -/N { - nesting 0 eq { %ifelse - newpath - }{ %else - /deferred /N def - } ifelse -} def -/S { - nesting 0 eq { %ifelse - strokeC strokeM strokeY strokeK setcmykcolor stroke - }{ %else - /deferred /S def - } ifelse -} bind def -/s { closepath S } bind def -/Tx { fillC fillM fillY fillK setcmykcolor show - 0 leading neg translate 0 0 moveto } bind def -/T { grestore } bind def -/TX { pop } bind def -/Ts { pop } bind def -/tal { pop } bind def -/tld { pop } bind def -/tbx { pop exch pop sub /jwidth exch def } def -/tpt { %def - fillC fillM fillY fillK setcmykcolor - moveto show -} bind def -/tpj { %def - fillC fillM fillY fillK setcmykcolor - moveto - dup stringwidth pop - 3 -1 roll - exch sub - 1 index spacecount - dup 0 eq { %ifelse - pop pop show - }{ %else - div 0 8#040 4 -1 roll widthshow - } ifelse -} bind def -/u {} def -/U {} def -/*u { /nesting nesting 1 add def } def -/*U { - /nesting nesting 1 sub def - nesting 0 eq { - deferred cvx exec - } if -} def -/w /setlinewidth load def -/d /setdash load def -/B { - nesting 0 eq { %ifelse - gsave F grestore S - }{ %else - /deferred /B def - } ifelse -} bind def -/b { closepath B } bind def -/z { /align exch def pop /leading exch def exch findfont - exch scalefont setfont } bind def -/tfn { exch findfont - exch scalefont setfont } bind def -/Pat { /pattern exch def } bind def -/cm { 6 array astore concat } bind def -/q { mat2 currentmatrix pop } bind def -/Q { mat2 setmatrix } bind def -/Ah { - pop /arrowtype exch def - currentlinewidth 5 1 roll arrowhead -} bind def -/Arc { - mat currentmatrix pop - translate scale 0 0 1 5 -2 roll arc - mat setmatrix -} bind def -/Arc2 { pop pop Arc } bind def -/Bx { - mat currentmatrix pop - concat /y1 exch def /x1 exch def /y2 exch def /x2 exch def - x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto - mat setmatrix -} bind def -/Rr { - mat currentmatrix pop - concat /yrad exch def /xrad exch def - 2 copy gt { exch } if /x2 exch def /x1 exch def - 2 copy gt { exch } if /y2 exch def /y1 exch def - x1 xrad add y2 moveto - matrix currentmatrix x1 xrad add y2 yrad sub translate xrad yrad scale - 0 0 1 90 -180 arc setmatrix - matrix currentmatrix x1 xrad add y1 yrad add translate xrad yrad scale - 0 0 1 180 270 arc setmatrix - matrix currentmatrix x2 xrad sub y1 yrad add translate xrad yrad scale - 0 0 1 270 0 arc setmatrix - matrix currentmatrix x2 xrad sub y2 yrad sub translate xrad yrad scale - 0 0 1 0 90 arc setmatrix - closepath - mat setmatrix -} bind def -/Ov { - mat currentmatrix pop - concat translate scale 1 0 moveto 0 0 1 0 360 arc closepath - mat setmatrix -} bind def -end -%%EndResource -%%EndProlog -%%BeginSetup -%PDX g 3 3 1 1 -%%IncludeFont: ArialMT -%%IncludeFont: Arial-BoldMT -PDXDict begin -%%EndSetup -%%Page: 1 1 -%%BeginPageSetup -/_PDX_savepage save def - -15 15 [300 72 div 0 0 300 72 div 0 0] -{ %definepattern - 2 setlinecap - 7.5 0 moveto 15 7.5 lineto - 0 7.5 moveto 7.5 15 lineto - 2 setlinewidth stroke -} bind -/rightdiagonal true definepattern pop - -15 15 [300 72 div 0 0 300 72 div 0 0] -{ %definepattern - 2 setlinecap - 7.5 0 moveto 0 7.5 lineto - 15 7.5 moveto 7.5 15 lineto - 2 setlinewidth stroke -} bind -/leftdiagonal true definepattern pop - -15 15 [300 72 div 0 0 300 72 div 0 0] -{ %definepattern - 2 setlinecap - 0 7.5 moveto 15 7.5 lineto - 2 setlinewidth stroke -} bind -/horizontal true definepattern pop - -15 15 [300 72 div 0 0 300 72 div 0 0] -{ %definepattern - 2 setlinecap - 7.5 0 moveto 7.5 15 lineto - 2 setlinewidth stroke -} bind -/vertical true definepattern pop - -15 15 [300 72 div 0 0 300 72 div 0 0] -{ %definepattern - 2 setlinecap - 0 7.5 moveto 15 7.5 lineto - 7.5 0 moveto 7.5 15 lineto - 2 setlinewidth stroke -} bind -/crosshatch true definepattern pop - -30 30 [300 72 div 0 0 300 72 div 0 0] -{ %definepattern - 2 setlinecap - 0 7.5 moveto 30 7.5 lineto - 0 22.5 moveto 30 22.5 lineto - 7.5 0 moveto 7.5 7.5 lineto - 7.5 22.5 moveto 7.5 30 lineto - 22.5 7.5 moveto 22.5 22.5 lineto - 1 setlinewidth stroke -} bind -/brick true definepattern pop - -30 30 [300 72 div 0 0 300 72 div 0 0] -{ %definepattern - 2 2 scale - 2 setlinecap - 7.5 0 moveto 15 7.5 lineto - 0 7.5 moveto 7.5 15 lineto - 7.5 0 moveto 0 7.5 lineto - 15 7.5 moveto 7.5 15 lineto - 0.5 setlinewidth stroke -} bind -/crossdiagonal true definepattern pop - -30 30 [300 72 div 0 0 300 72 div 0 0] -{ %definepattern - 2 2 scale - 1 setlinecap - 0 7.5 moveto 0 15 7.5 270 360 arc - 7.5 15 moveto 15 15 7.5 180 270 arc - 0 7.5 moveto 7.5 7.5 7.5 180 360 arc - 0.5 setlinewidth stroke -} bind -/fishscale true definepattern pop - -30 30 [300 72 div 0 0 300 72 div 0 0] -{ %definepattern - 1 setlinecap 0.5 setlinewidth - 7.5 0 10.6 135 45 arcn - 22.5 15 10.6 225 315 arc - stroke - 7.5 15 10.6 135 45 arcn - 22.5 30 10.6 225 315 arc - stroke -} bind -/wave true definepattern pop - -WinAnsiEncoding /_ArialMT /ArialMT RE -WinAnsiEncoding /_Arial-BoldMT /Arial-BoldMT RE - -newpath 2 setlinecap 0 setlinejoin 2 setmiterlimit -[] 0 setdash -8 140 moveto 8 700 lineto 580 700 lineto 580 140 lineto closepath clip -newpath -%%EndPageSetup -0.862745 0.956863 -1.42109e-016 0 K -2 w -543 249 -9 789 [1 0 0 1 27.09 -98.91] Bx -s -0.133333 0.133333 0.133333 0 k -0.133333 0.133333 0.133333 0 K -0.5 w -150 480 90 510 [1 0 0 1 -14.91 90.09] Bx -b -150 480 90 510 [1 0 0 1 60.42 90.09] Bx -b -150 480 90 510 [1 0 0 1 299.9 90.09] Bx -b -240 480 90 510 [1 0 0 1 135.1 90.09] Bx -b -150 480 90 510 [1 0 0 1 375.4 90.09] Bx -b -[1 0 0 1 15.14 -89.21] e -33 681 33 681 tbx -0 tal -13 tld -1 1 1 0 k -/_ArialMT 12 tfn -(top) 33 670.14 tpt -T -0.133333 0.133333 0.133333 0 k -150 480 90 510 [1 0 0 1 -14.91 45.09] Bx -b -150 480 90 510 [1 0 0 1 60.09 45.09] Bx -b -150 480 90 510 [1 0 0 1 300.1 45.09] Bx -b -240 480 90 510 [1 0 0 1 135.1 45.09] Bx -b -150 480 90 510 [1 0 0 1 375.1 45.09] Bx -b -[1 0 0 1 -5.536 -83.21] e -33 630 33 630 tbx -0 tal -13 tld -1 1 1 0 k -/_ArialMT 12 tfn -(header) 33 619.14 tpt -T -0.133333 0.133333 0.133333 0 k -150 480 90 510 [1 0 0 1 -14.91 -180.6] Bx -b -150 480 90 510 [1 0 0 1 60.09 -180.6] Bx -b -150 480 90 510 [1 0 0 1 300.1 -180.6] Bx -b -240 480 90 510 [1 0 0 1 135.1 -180.6] Bx -b -150 480 90 510 [1 0 0 1 375.1 -180.6] Bx -b -[1 0 0 1 1.136 -80.91] e -33 402 33 402 tbx -0 tal -13 tld -1 1 1 0 k -/_ArialMT 12 tfn -(footer) 33 391.14 tpt -T -0.133333 0.133333 0.133333 0 k -150 480 90 510 [1 0 0 1 -14.91 -224.9] Bx -b -150 480 90 510 [1 0 0 1 60.09 -224.9] Bx -b -150 480 90 510 [1 0 0 1 300.1 -224.9] Bx -b -240 480 90 510 [1 0 0 1 135.1 -224.9] Bx -b -150 480 90 510 [1 0 0 1 375.1 -224.9] Bx -b -[1 0 0 1 -7.866 -86.21] e -36 363 36 363 tbx -0 tal -13 tld -1 1 1 0 k -/_ArialMT 12 tfn -(bottom) 36 352.14 tpt -T -0.133333 0.133333 0.133333 0 k -150 345 90 510 [1 0 0 1 -14.91 0.09051] Bx -b -150 345 90 510 [1 0 0 1 60.09 0.09051] Bx -b -150 345 90 510 [1 0 0 1 300.1 0.09051] Bx -b --1.42109e-016 0.4 0.8 0 k -240 345 90 510 [1 0 0 1 135 0.09051] Bx -b -0.133333 0.133333 0.133333 0 k -150 345 90 510 [1 0 0 1 375.1 0.09051] Bx -b -[1 0 0 1 21.47 -72.71] e -24 507 24 507 tbx -0 tal -13 tld -1 1 1 0 k -/_ArialMT 12 tfn -(text) 24 496.14 tpt -T -[1 0 0 1 -10.93 -38.72] e -93 705 93 705 tbx -0 tal -13 tld -/_ArialMT 12 tfn -(left edge) 93 694.14 tpt -T -[1 0 0 1 -4.409 -41.72] e -159 708 159 708 tbx -0 tal -13 tld -/_ArialMT 12 tfn -(left margin) 159 697.14 tpt -T -[1 0 0 1 17.42 -38.72] e -273 705 273 705 tbx -0 tal -13 tld -/_ArialMT 12 tfn -(text) 273 694.14 tpt -T -[1 0 0 1 -13.78 -35.72] e -402 702 402 702 tbx -0 tal -13 tld -/_ArialMT 12 tfn -(right margin) 402 691.14 tpt -T -[1 0 0 1 -11.25 -38.72] e -480 705 480 705 tbx -0 tal -13 tld -/_ArialMT 12 tfn -(right edge) 480 694.14 tpt -T -[1 0 0 1 -13.55 -89.21] e -75 352.596 39 366 tbx -0 tal -13 tld -/_ArialMT 12 tfn -() 39 355.14 tpt -T -[1 0 0 1 0.09051 -89.91] e -402 460.596 333 474 tbx -0 tal -13 tld -/_ArialMT 12 tfn -() 333 463.14 tpt -T -u --1.42109e-016 -1.42109e-016 -1.42109e-016 0 k -1 1 1 0 K -1 w -q -1 0 0 1 -14.91 -89.91 cm -60 285 m -90 285 L -Q -S -q -1 0 0 1 0.09051 -89.91 cm -75 285 m -75 255 L -Q -S -U -u -q --1 0 0 1 615.1 -89.91 cm -60 285 m -90 285 L -Q -S -q --1 0 0 1 600.1 -89.91 cm -75 285 m -75 255 L -Q -S -U -u -q -0 -1 -1 0 810.1 735.1 cm -60 285 m -90 285 L -Q -S -q -0 -1 -1 0 810.1 720.1 cm -75 285 m -75 255 L -Q -S -U -u -q -0 -1 1 0 -209.9 735.1 cm -60 285 m -90 285 L -Q -S -q -0 -1 1 0 -209.9 720.1 cm -75 285 m -75 255 L -Q -S -U -0.5 w -[3 3] 0 d -525 735 75 285 [1 0 0 1 0.09051 -89.91] Bx -s -1 w -[] 0 d -q -1 0 0 1 -45 -524.9 cm -128 705 120 705 m2 -562.094 705 570.094 705 L2 -Q -S -q -1 0 0 1 -45 -524.9 cm -570.094 705 120 705 4 1 Ah -120 705 570.094 705 4 2 Ah -Q -[1 0 0 1 0.09051 -89.91] e -271.57 246.83 246 258 tbx -0 tal -11 tld -0.862745 0.956863 -1.42109e-016 0 k -/_ArialMT 10 tfn -() 246 248.95 tpt -T -[1 0 0 1 0.09051 -89.91] e -261 255 261 255 tbx -0 tal -11 tld -1 1 1 0 k -/_ArialMT 10 tfn -() 261 245.95 tpt -T -[1 0 0 1 9.698 -77.82] e -261 255 261 255 tbx -0 tal -13 tld -/_ArialMT 12 tfn -(paperwidth) 261 244.14 tpt -T --1.42109e-016 -1.42109e-016 -1.42109e-016 0 k -q -0 1 -1 0 1244 74.39 cm -128 705 120 705 m2 -562.094 705 570.094 705 L2 -Q -S -q -0 1 -1 0 1244 74.39 cm -570.094 705 120 705 4 1 Ah -120 705 570.094 705 4 2 Ah -Q -[0 1 -1 0 797.3 129.1] e -261 255 261 255 tbx -0 tal -13 tld -1 1 1 0 k -/_ArialMT 12 tfn -(paperheight) 261 244.14 tpt -T -[1 0 0 1 -10.41 8.644] e -273 429 273 429 tbx -0 tal -19 tld --1.42109e-016 -1.42109e-016 -1.42109e-016 0 k -/_Arial-BoldMT 18 tfn -(bodytext) 273 412.71 tpt -T -%%PageTrailer -_PDX_savepage restore -%%Trailer -end -showpage -%%EOF diff --git a/doc/context/sources/general/manuals/start/graphics/fig-page-areas-en.pdf b/doc/context/sources/general/manuals/start/graphics/fig-page-areas-en.pdf deleted file mode 100644 index 88350bf2a..000000000 --- a/doc/context/sources/general/manuals/start/graphics/fig-page-areas-en.pdf +++ /dev/null @@ -1,527 +0,0 @@ -%PDF-1.0
-1 0 obj
-<<
-/Creator (Mayura Draw 4.3)
->>
-endobj
-2 0 obj
-<<
-/Type /Catalog
-/Pages 4 0 R
-/Outlines 3 0 R
->>
-endobj
-3 0 obj
-<<
-/Type /Outlines
-/Count 0
->>
-endobj
-4 0 obj
-<<
-/Type /Pages
-/Count 1
-/Kids [ 5 0 R ]
->>
-endobj
-5 0 obj
-<<
-/Type /Page
-/Parent 4 0 R
-/MediaBox [ 8 140 580 700 ]
-/Resources <<
-/ProcSet 6 0 R
-/XObject 9 0 R
-/Font 10 0 R
->>
-/Contents 7 0 R
->>
-endobj
-6 0 obj
-[ /PDF /Text ]
-endobj
-7 0 obj
-<< /Length 8 0 R >>
-stream
-1 1 1 rg
-0.137255 0.0431373 1 RG
-2 w
-18.0905 690.091 m
-18.0905 150.091 l
-570.091 150.091 l
-570.091 690.091 l
-18.0905 690.091 l
-s
-0.866667 0.866667 0.866667 rg
-0.866667 0.866667 0.866667 RG
-0.5 w
-75.0905 600.091 m
-75.0905 570.091 l
-135.091 570.091 l
-135.091 600.091 l
-75.0905 600.091 l
-b*
-150.421 600.091 m
-150.421 570.091 l
-210.421 570.091 l
-210.421 600.091 l
-150.421 600.091 l
-b*
-389.89 600.091 m
-389.89 570.091 l
-449.89 570.091 l
-449.89 600.091 l
-389.89 600.091 l
-b*
-225.091 600.091 m
-225.091 570.091 l
-375.091 570.091 l
-375.091 600.091 l
-225.091 600.091 l
-b*
-465.39 600.091 m
-465.39 570.091 l
-525.39 570.091 l
-525.39 600.091 l
-465.39 600.091 l
-b*
-0 0 0 rg
-BT
-/F1 12 Tf
-1 0 0 1 48.14 580.9 Tm
-0 Tw
-(top) Tj
-ET
-0.866667 0.866667 0.866667 rg
-75.0905 555.091 m
-75.0905 525.091 l
-135.091 525.091 l
-135.091 555.091 l
-75.0905 555.091 l
-b*
-150.091 555.091 m
-150.091 525.091 l
-210.091 525.091 l
-210.091 555.091 l
-150.091 555.091 l
-b*
-390.09 555.091 m
-390.09 525.091 l
-450.09 525.091 l
-450.09 555.091 l
-390.09 555.091 l
-b*
-225.091 555.091 m
-225.091 525.091 l
-375.091 525.091 l
-375.091 555.091 l
-225.091 555.091 l
-b*
-465.09 555.091 m
-465.09 525.091 l
-525.09 525.091 l
-525.09 555.091 l
-465.09 555.091 l
-b*
-0 0 0 rg
-BT
-/F1 12 Tf
-1 0 0 1 27.46 535.9 Tm
-0 Tw
-(header) Tj
-ET
-0.866667 0.866667 0.866667 rg
-75.0905 329.391 m
-75.0905 299.391 l
-135.091 299.391 l
-135.091 329.391 l
-75.0905 329.391 l
-b*
-150.091 329.391 m
-150.091 299.391 l
-210.091 299.391 l
-210.091 329.391 l
-150.091 329.391 l
-b*
-390.09 329.391 m
-390.09 299.391 l
-450.09 299.391 l
-450.09 329.391 l
-390.09 329.391 l
-b*
-225.091 329.391 m
-225.091 299.391 l
-375.091 299.391 l
-375.091 329.391 l
-225.091 329.391 l
-b*
-465.09 329.391 m
-465.09 299.391 l
-525.09 299.391 l
-525.09 329.391 l
-465.09 329.391 l
-b*
-0 0 0 rg
-BT
-/F1 12 Tf
-1 0 0 1 34.14 310.2 Tm
-0 Tw
-(footer) Tj
-ET
-0.866667 0.866667 0.866667 rg
-75.0905 285.091 m
-75.0905 255.091 l
-135.091 255.091 l
-135.091 285.091 l
-75.0905 285.091 l
-b*
-150.091 285.091 m
-150.091 255.091 l
-210.091 255.091 l
-210.091 285.091 l
-150.091 285.091 l
-b*
-390.09 285.091 m
-390.09 255.091 l
-450.09 255.091 l
-450.09 285.091 l
-390.09 285.091 l
-b*
-225.091 285.091 m
-225.091 255.091 l
-375.091 255.091 l
-375.091 285.091 l
-225.091 285.091 l
-b*
-465.09 285.091 m
-465.09 255.091 l
-525.09 255.091 l
-525.09 285.091 l
-465.09 285.091 l
-b*
-0 0 0 rg
-BT
-/F1 12 Tf
-1 0 0 1 28.13 265.9 Tm
-0 Tw
-(bottom) Tj
-ET
-0.866667 0.866667 0.866667 rg
-75.0905 510.091 m
-75.0905 345.091 l
-135.091 345.091 l
-135.091 510.091 l
-75.0905 510.091 l
-b*
-150.091 510.091 m
-150.091 345.091 l
-210.091 345.091 l
-210.091 510.091 l
-150.091 510.091 l
-b*
-390.09 510.091 m
-390.09 345.091 l
-450.09 345.091 l
-450.09 510.091 l
-390.09 510.091 l
-b*
-1 0.6 0.2 rg
-225 510.091 m
-225 345.091 l
-375 345.091 l
-375 510.091 l
-225 510.091 l
-b*
-0.866667 0.866667 0.866667 rg
-465.09 510.091 m
-465.09 345.091 l
-525.09 345.091 l
-525.09 510.091 l
-465.09 510.091 l
-b*
-0 0 0 rg
-BT
-/F1 12 Tf
-1 0 0 1 45.47 423.4 Tm
-0 Tw
-(text) Tj
-ET
-BT
-/F1 12 Tf
-1 0 0 1 82.07 655.4 Tm
-0 Tw
-(left edge) Tj
-ET
-BT
-/F1 12 Tf
-1 0 0 1 154.6 655.4 Tm
-0 Tw
-(left margin) Tj
-ET
-BT
-/F1 12 Tf
-1 0 0 1 290.4 655.4 Tm
-0 Tw
-(text) Tj
-ET
-BT
-/F1 12 Tf
-1 0 0 1 388.2 655.4 Tm
-0 Tw
-(right margin) Tj
-ET
-BT
-/F1 12 Tf
-1 0 0 1 468.8 655.4 Tm
-0 Tw
-(right edge) Tj
-ET
-BT
-/F1 12 Tf
-1 0 0 1 25.45 265.9 Tm
-0 Tw
-() Tj
-ET
-BT
-/F1 12 Tf
-1 0 0 1 333.1 373.2 Tm
-0 Tw
-() Tj
-ET
-1 1 1 rg
-0 0 0 RG
-1 w
-45.0905 195.091 m
-75.0905 195.091 l
-S
-75.0905 195.091 m
-75.0905 165.091 l
-S
-555.091 195.091 m
-525.091 195.091 l
-S
-525.091 195.091 m
-525.091 165.091 l
-S
-525.091 675.091 m
-525.091 645.091 l
-S
-525.091 645.091 m
-555.091 645.091 l
-S
-75.0905 675.091 m
-75.0905 645.091 l
-S
-75.0905 645.091 m
-45.0905 645.091 l
-S
-0.5 w
-[3 3] 0 d
-75.0905 195.091 m
-75.0905 645.091 l
-525.091 645.091 l
-525.091 195.091 l
-75.0905 195.091 l
-s
-1 w
-[] 0 d
-83.0005 180.091 m
-517.094 180.091 l
-S
-0 0 0 rg
-0 w
-75.0005 180.091 m
-84.0005 180.091 l
-84.0005 177.091 l
-75.0005 180.091 l
-84.0005 183.091 l
-84.0005 180.091 l
-75.0005 180.091 l
-f*
-525.094 180.091 m
-516.094 180.091 l
-516.094 183.091 l
-525.094 180.091 l
-516.094 177.091 l
-516.094 180.091 l
-525.094 180.091 l
-f*
-0.137255 0.0431373 1 rg
-BT
-/F1 10 Tf
-1 0 0 1 246.1 159 Tm
-0 Tw
-() Tj
-ET
-0 0 0 rg
-BT
-/F1 10 Tf
-1 0 0 1 261.1 156 Tm
-0 Tw
-() Tj
-ET
-BT
-/F1 12 Tf
-1 0 0 1 270.7 166.3 Tm
-0 Tw
-(paperwidth) Tj
-ET
-1 1 1 rg
-1 w
-539.09 202.391 m
-539.09 636.484 l
-S
-0 0 0 rg
-0 w
-539.09 194.391 m
-539.09 203.391 l
-542.09 203.391 l
-539.09 194.391 l
-536.09 203.391 l
-539.09 203.391 l
-539.09 194.391 l
-f*
-539.09 644.484 m
-539.09 635.484 l
-536.09 635.484 l
-539.09 644.484 l
-542.09 635.484 l
-539.09 635.484 l
-539.09 644.484 l
-f*
-BT
-/F1 12 Tf
-0 1 -1 0 553.2 390.1 Tm
-0 Tw
-(paperheight) Tj
-ET
-1 1 1 rg
-BT
-/F2 18 Tf
-1 0 0 1 262.6 421.4 Tm
-0 Tw
-(bodytext) Tj
-ET
-endstream
-endobj
-8 0 obj
-5066
-endobj
-10 0 obj
-<<
-/F1 11 0 R
-/F2 12 0 R
->>
-endobj
-11 0 obj
-<<
-/Type /Font
-/Subtype /TrueType
-/Name /F1
-/BaseFont /Arial
-/Encoding /WinAnsiEncoding
-/FirstChar 30
-/LastChar 255
-/Widths [ 750 750 278 278 355 556 556 889 667 191 333 333 389 584 278 333
- 278 278 556 556 556 556 556 556 556 556 556 556 278 278 584 584
- 584 556 1015 667 667 722 722 667 611 778 722 278 500 667 556 833
- 722 778 667 778 722 667 611 722 667 944 667 667 611 278 278 278
- 469 556 333 556 556 500 556 556 278 556 556 222 222 500 222 833
- 556 556 556 556 333 500 278 556 500 722 500 500 500 334 260 334
- 584 750 556 750 222 556 333 1000 556 556 333 1000 667 333 1000 750
- 611 750 750 222 222 333 333 350 556 1000 333 1000 500 333 944 750
- 500 667 278 333 556 556 556 556 260 556 333 737 370 556 584 333
- 737 552 400 549 333 333 333 576 537 278 333 333 365 556 834 834
- 834 611 667 667 667 667 667 667 1000 722 667 667 667 667 278 278
- 278 278 722 722 778 778 778 778 778 584 778 722 722 722 722 667
- 667 611 556 556 556 556 556 556 889 500 556 556 556 556 278 278
- 278 278 556 556 556 556 556 556 556 549 611 556 556 556 556 500
- 556 500]
-/FontDescriptor 13 0 R
->>
-endobj
-12 0 obj
-<<
-/Type /Font
-/Subtype /TrueType
-/Name /F2
-/BaseFont /Arial,Bold
-/Encoding /WinAnsiEncoding
-/FirstChar 30
-/LastChar 255
-/Widths [ 750 750 278 333 474 556 556 889 722 238 333 333 389 584 278 333
- 278 278 556 556 556 556 556 556 556 556 556 556 333 333 584 584
- 584 611 975 722 722 722 722 667 611 778 722 278 556 722 611 833
- 722 778 667 778 722 667 611 722 667 944 667 667 611 333 278 333
- 584 556 333 556 611 556 611 556 333 611 611 278 278 556 278 889
- 611 611 611 611 389 556 333 611 556 778 556 556 500 389 280 389
- 584 750 556 750 278 556 500 1000 556 556 333 1000 667 333 1000 750
- 611 750 750 278 278 500 500 350 556 1000 333 1000 556 333 944 750
- 500 667 278 333 556 556 556 556 280 556 333 737 370 556 584 333
- 737 552 400 549 333 333 333 576 556 278 333 333 365 556 834 834
- 834 611 722 722 722 722 722 722 1000 722 667 667 667 667 278 278
- 278 278 722 722 778 778 778 778 778 584 778 722 722 722 722 667
- 667 611 556 556 556 556 556 556 889 556 556 556 556 556 278 278
- 278 278 611 611 611 611 611 611 611 549 611 611 611 611 611 556
- 611 556]
-/FontDescriptor 14 0 R
->>
-endobj
-13 0 obj
-<<
-/Type /FontDescriptor
-/FontName /Arial
-/FontBBox [ -665 -325 2000 1006 ]
-/Ascent 905
-/Descent -212
-/CapHeight 905
-/XHeight 724
-/ItalicAngle 0
-/Flags 32
-/StemV 70
->>
-endobj
-14 0 obj
-<<
-/Type /FontDescriptor
-/FontName /Arial,Bold
-/FontBBox [ -628 -376 2000 1010 ]
-/Ascent 905
-/Descent -212
-/CapHeight 905
-/XHeight 724
-/ItalicAngle 0
-/Flags 32
-/StemV 120
->>
-endobj
-9 0 obj
-<<
->>
-endobj
-xref
-0 15
-0000000000 65535 f
-0000000010 00000 n
-0000000063 00000 n
-0000000135 00000 n
-0000000187 00000 n
-0000000253 00000 n
-0000000417 00000 n
-0000000450 00000 n
-0000005573 00000 n
-0000008294 00000 n
-0000005596 00000 n
-0000005646 00000 n
-0000006767 00000 n
-0000007892 00000 n
-0000008090 00000 n
-trailer
-<<
-/Size 15
-/Root 2 0 R
-/Info 1 0 R
->>
-startxref
-8319
-%%EOF
diff --git a/doc/context/sources/general/manuals/start/graphics/fig-page-parameters-en.md b/doc/context/sources/general/manuals/start/graphics/fig-page-parameters-en.md deleted file mode 100644 index 35c04b445..000000000 --- a/doc/context/sources/general/manuals/start/graphics/fig-page-parameters-en.md +++ /dev/null @@ -1,1371 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: Mayura Draw, Version 4.3 -%%Title: fig-page-parameters-en.md -%%CreationDate: Fri Jan 10 17:04:54 2014 -%%BoundingBox: 8 230 580 790 -%%DocumentFonts: ArialMT -%%Orientation: Portrait -%%EndComments -%%BeginProlog -%%BeginResource: procset MayuraDraw_ops -%%Version: 4.3 -%%Copyright: (c) 1993-2003 Mayura Software -/PDXDict 100 dict def -PDXDict begin -% width height matrix proc key cache -% definepattern -\> font -/definepattern { %def - 7 dict begin - /FontDict 9 dict def - FontDict begin - /cache exch def - /key exch def - /proc exch cvx def - /mtx exch matrix invertmatrix def - /height exch def - /width exch def - /ctm matrix currentmatrix def - /ptm matrix identmatrix def - /str - (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) - def - end - /FontBBox [ %def - 0 0 FontDict /width get - FontDict /height get - ] def - /FontMatrix FontDict /mtx get def - /Encoding StandardEncoding def - /FontType 3 def - /BuildChar { %def - pop begin - FontDict begin - width 0 cache { %ifelse - 0 0 width height setcachedevice - }{ %else - setcharwidth - } ifelse - 0 0 moveto width 0 lineto - width height lineto 0 height lineto - closepath clip newpath - gsave proc grestore - end end - } def - FontDict /key get currentdict definefont - end -} bind def - -% dict patternpath - -% dict matrix patternpath - -/patternpath { %def - dup type /dicttype eq { %ifelse - begin FontDict /ctm get setmatrix - }{ %else - exch begin FontDict /ctm get setmatrix - concat - } ifelse - currentdict setfont - FontDict begin - FontMatrix concat - width 0 dtransform - round width div exch round width div exch - 0 height dtransform - round height div exch - round height div exch - 0 0 transform round exch round exch - ptm astore setmatrix - - pathbbox - height div ceiling height mul 4 1 roll - width div ceiling width mul 4 1 roll - height div floor height mul 4 1 roll - width div floor width mul 4 1 roll - - 2 index sub height div ceiling cvi exch - 3 index sub width div ceiling cvi exch - 4 2 roll moveto - - FontMatrix ptm invertmatrix pop - { %repeat - gsave - ptm concat - dup str length idiv { %repeat - str show - } repeat - dup str length mod str exch - 0 exch getinterval show - grestore - 0 height rmoveto - } repeat - pop - end end -} bind def - -% dict patternfill - -% dict matrix patternfill - -/patternfill { %def - gsave - eoclip patternpath - grestore - newpath -} bind def - -/img { %def - gsave - /imgh exch def - /imgw exch def - concat - imgw imgh 8 - [imgw 0 0 imgh neg 0 imgh] - /colorstr 768 string def - /colorimage where { - pop - { currentfile colorstr readhexstring pop } - false 3 colorimage - }{ - /graystr 256 string def - { - currentfile colorstr readhexstring pop - length 3 idiv - dup 1 sub 0 1 3 -1 roll - { - graystr exch - colorstr 1 index 3 mul get 30 mul - colorstr 2 index 3 mul 1 add get 59 mul - colorstr 3 index 3 mul 2 add get 11 mul - add add 100 idiv - put - } for - graystr 0 3 -1 roll getinterval - } image - } ifelse - grestore -} bind def - -/arrowhead { - gsave - [] 0 setdash - strokeC strokeM strokeY strokeK setcmykcolor - 2 copy moveto - 4 2 roll exch 4 -1 roll exch - sub 3 1 roll sub - exch atan rotate dup scale - arrowtype - dup 0 eq { - -1 2 rlineto 7 -2 rlineto -7 -2 rlineto - closepath fill - } if - dup 1 eq { - 0 3 rlineto 9 -3 rlineto -9 -3 rlineto - closepath fill - } if - dup 2 eq { - -6 -6 rmoveto 6 6 rlineto -6 6 rlineto - -1.4142 -1.4142 rlineto 4.5858 -4.5858 rlineto - -4.5858 -4.5858 rlineto closepath fill - } if - dup 3 eq { - -6 0 rmoveto -1 2 rlineto 7 -2 rlineto -7 -2 rlineto - closepath fill - } if - dup 4 eq { - -9 0 rmoveto 0 3 rlineto 9 -3 rlineto -9 -3 rlineto - closepath fill - } if - dup 5 eq { - currentpoint newpath 3 0 360 arc - closepath fill - } if - dup 6 eq { - 2.5 2.5 rmoveto 0 -5 rlineto -5 0 rlineto 0 5 rlineto - closepath fill - } if - pop - grestore -} bind def - -/setcmykcolor where { %ifelse - pop -}{ %else - /setcmykcolor { - /black exch def /yellow exch def - /magenta exch def /cyan exch def - cyan black add dup 1 gt { pop 1 } if 1 exch sub - magenta black add dup 1 gt { pop 1 } if 1 exch sub - yellow black add dup 1 gt { pop 1 } if 1 exch sub - setrgbcolor - } bind def -} ifelse - -/RE { %def - findfont begin - currentdict dup length dict begin - { %forall - 1 index /FID ne { def } { pop pop } ifelse - } forall - /FontName exch def dup length 0 ne { %if - /Encoding Encoding 256 array copy def - 0 exch { %forall - dup type /nametype eq { %ifelse - Encoding 2 index 2 index put - pop 1 add - }{ %else - exch pop - } ifelse - } forall - } if pop - currentdict dup end end - /FontName get exch definefont pop -} bind def - -/spacecount { %def - 0 exch - ( ) { %loop - search { %ifelse - pop 3 -1 roll 1 add 3 1 roll - }{ pop exit } ifelse - } loop -} bind def - -/WinAnsiEncoding [ - 39/quotesingle 96/grave 130/quotesinglbase/florin/quotedblbase - /ellipsis/dagger/daggerdbl/circumflex/perthousand - /Scaron/guilsinglleft/OE 145/quoteleft/quoteright - /quotedblleft/quotedblright/bullet/endash/emdash - /tilde/trademark/scaron/guilsinglright/oe/dotlessi - 159/Ydieresis 164/currency 166/brokenbar 168/dieresis/copyright - /ordfeminine 172/logicalnot 174/registered/macron/ring - 177/plusminus/twosuperior/threesuperior/acute/mu - 183/periodcentered/cedilla/onesuperior/ordmasculine - 188/onequarter/onehalf/threequarters 192/Agrave/Aacute - /Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla - /Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute - /Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute - /Ocircumflex/Otilde/Odieresis/multiply/Oslash - /Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn - /germandbls/agrave/aacute/acircumflex/atilde/adieresis - /aring/ae/ccedilla/egrave/eacute/ecircumflex - /edieresis/igrave/iacute/icircumflex/idieresis - /eth/ntilde/ograve/oacute/ocircumflex/otilde - /odieresis/divide/oslash/ugrave/uacute/ucircumflex - /udieresis/yacute/thorn/ydieresis -] def - -/SymbolEncoding [ - 32/space/exclam/universal/numbersign/existential/percent - /ampersand/suchthat/parenleft/parenright/asteriskmath/plus - /comma/minus/period/slash/zero/one/two/three/four/five/six - /seven/eight/nine/colon/semicolon/less/equal/greater/question - /congruent/Alpha/Beta/Chi/Delta/Epsilon/Phi/Gamma/Eta/Iota - /theta1/Kappa/Lambda/Mu/Nu/Omicron/Pi/Theta/Rho/Sigma/Tau - /Upsilon/sigma1/Omega/Xi/Psi/Zeta/bracketleft/therefore - /bracketright/perpendicular/underscore/radicalex/alpha - /beta/chi/delta/epsilon/phi/gamma/eta/iota/phi1/kappa/lambda - /mu/nu/omicron/pi/theta/rho/sigma/tau/upsilon/omega1/omega - /xi/psi/zeta/braceleft/bar/braceright/similar - 161/Upsilon1/minute/lessequal/fraction/infinity/florin/club - /diamond/heart/spade/arrowboth/arrowleft/arrowup/arrowright - /arrowdown/degree/plusminus/second/greaterequal/multiply - /proportional/partialdiff/bullet/divide/notequal/equivalence - /approxequal/ellipsis/arrowvertex/arrowhorizex/carriagereturn - /aleph/Ifraktur/Rfraktur/weierstrass/circlemultiply - /circleplus/emptyset/intersection/union/propersuperset - /reflexsuperset/notsubset/propersubset/reflexsubset/element - /notelement/angle/gradient/registerserif/copyrightserif - /trademarkserif/product/radical/dotmath/logicalnot/logicaland - /logicalor/arrowdblboth/arrowdblleft/arrowdblup/arrowdblright - /arrowdbldown/lozenge/angleleft/registersans/copyrightsans - /trademarksans/summation/parenlefttp/parenleftex/parenleftbt - /bracketlefttp/bracketleftex/bracketleftbt/bracelefttp - /braceleftmid/braceleftbt/braceex - 241/angleright/integral/integraltp/integralex/integralbt - /parenrighttp/parenrightex/parenrightbt/bracketrighttp - /bracketrightex/bracketrightbt/bracerighttp/bracerightmid - /bracerightbt -] def - -/patarray [ -/leftdiagonal /rightdiagonal /crossdiagonal /horizontal -/vertical /crosshatch /fishscale /wave /brick -] def -/arrowtype 0 def -/fillC 0 def /fillM 0 def /fillY 0 def /fillK 0 def -/strokeC 0 def /strokeM 0 def /strokeY 0 def /strokeK 1 def -/pattern -1 def -/mat matrix def -/mat2 matrix def -/nesting 0 def -/deferred /N def -/c /curveto load def -/c2 { pop pop c } bind def -/C /curveto load def -/C2 { pop pop C } bind def -/e { gsave concat 0 0 moveto } bind def -/F { - nesting 0 eq { %ifelse - pattern -1 eq { %ifelse - fillC fillM fillY fillK setcmykcolor eofill - }{ %else - gsave fillC fillM fillY fillK setcmykcolor eofill grestore - 0 0 0 1 setcmykcolor - patarray pattern get findfont patternfill - } ifelse - }{ %else - /deferred /F def - } ifelse -} bind def -/f { closepath F } bind def -/K { /strokeK exch def /strokeY exch def - /strokeM exch def /strokeC exch def } bind def -/k { /fillK exch def /fillY exch def - /fillM exch def /fillC exch def } bind def -/opc { pop } bind def -/Opc { pop } bind def -/L /lineto load def -/L2 { pop pop L } bind def -/m /moveto load def -/m2 { pop pop m } bind def -/n /newpath load def -/N { - nesting 0 eq { %ifelse - newpath - }{ %else - /deferred /N def - } ifelse -} def -/S { - nesting 0 eq { %ifelse - strokeC strokeM strokeY strokeK setcmykcolor stroke - }{ %else - /deferred /S def - } ifelse -} bind def -/s { closepath S } bind def -/Tx { fillC fillM fillY fillK setcmykcolor show - 0 leading neg translate 0 0 moveto } bind def -/T { grestore } bind def -/TX { pop } bind def -/Ts { pop } bind def -/tal { pop } bind def -/tld { pop } bind def -/tbx { pop exch pop sub /jwidth exch def } def -/tpt { %def - fillC fillM fillY fillK setcmykcolor - moveto show -} bind def -/tpj { %def - fillC fillM fillY fillK setcmykcolor - moveto - dup stringwidth pop - 3 -1 roll - exch sub - 1 index spacecount - dup 0 eq { %ifelse - pop pop show - }{ %else - div 0 8#040 4 -1 roll widthshow - } ifelse -} bind def -/u {} def -/U {} def -/*u { /nesting nesting 1 add def } def -/*U { - /nesting nesting 1 sub def - nesting 0 eq { - deferred cvx exec - } if -} def -/w /setlinewidth load def -/d /setdash load def -/B { - nesting 0 eq { %ifelse - gsave F grestore S - }{ %else - /deferred /B def - } ifelse -} bind def -/b { closepath B } bind def -/z { /align exch def pop /leading exch def exch findfont - exch scalefont setfont } bind def -/tfn { exch findfont - exch scalefont setfont } bind def -/Pat { /pattern exch def } bind def -/cm { 6 array astore concat } bind def -/q { mat2 currentmatrix pop } bind def -/Q { mat2 setmatrix } bind def -/Ah { - pop /arrowtype exch def - currentlinewidth 5 1 roll arrowhead -} bind def -/Arc { - mat currentmatrix pop - translate scale 0 0 1 5 -2 roll arc - mat setmatrix -} bind def -/Arc2 { pop pop Arc } bind def -/Bx { - mat currentmatrix pop - concat /y1 exch def /x1 exch def /y2 exch def /x2 exch def - x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto - mat setmatrix -} bind def -/Rr { - mat currentmatrix pop - concat /yrad exch def /xrad exch def - 2 copy gt { exch } if /x2 exch def /x1 exch def - 2 copy gt { exch } if /y2 exch def /y1 exch def - x1 xrad add y2 moveto - matrix currentmatrix x1 xrad add y2 yrad sub translate xrad yrad scale - 0 0 1 90 -180 arc setmatrix - matrix currentmatrix x1 xrad add y1 yrad add translate xrad yrad scale - 0 0 1 180 270 arc setmatrix - matrix currentmatrix x2 xrad sub y1 yrad add translate xrad yrad scale - 0 0 1 270 0 arc setmatrix - matrix currentmatrix x2 xrad sub y2 yrad sub translate xrad yrad scale - 0 0 1 0 90 arc setmatrix - closepath - mat setmatrix -} bind def -/Ov { - mat currentmatrix pop - concat translate scale 1 0 moveto 0 0 1 0 360 arc closepath - mat setmatrix -} bind def -end -%%EndResource -%%EndProlog -%%BeginSetup -%PDX g 3 3 1 1 -%%IncludeFont: ArialMT -PDXDict begin -%%EndSetup -%%Page: 1 1 -%%BeginPageSetup -/_PDX_savepage save def - -15 15 [300 72 div 0 0 300 72 div 0 0] -{ %definepattern - 2 setlinecap - 7.5 0 moveto 15 7.5 lineto - 0 7.5 moveto 7.5 15 lineto - 2 setlinewidth stroke -} bind -/rightdiagonal true definepattern pop - -15 15 [300 72 div 0 0 300 72 div 0 0] -{ %definepattern - 2 setlinecap - 7.5 0 moveto 0 7.5 lineto - 15 7.5 moveto 7.5 15 lineto - 2 setlinewidth stroke -} bind -/leftdiagonal true definepattern pop - -15 15 [300 72 div 0 0 300 72 div 0 0] -{ %definepattern - 2 setlinecap - 0 7.5 moveto 15 7.5 lineto - 2 setlinewidth stroke -} bind -/horizontal true definepattern pop - -15 15 [300 72 div 0 0 300 72 div 0 0] -{ %definepattern - 2 setlinecap - 7.5 0 moveto 7.5 15 lineto - 2 setlinewidth stroke -} bind -/vertical true definepattern pop - -15 15 [300 72 div 0 0 300 72 div 0 0] -{ %definepattern - 2 setlinecap - 0 7.5 moveto 15 7.5 lineto - 7.5 0 moveto 7.5 15 lineto - 2 setlinewidth stroke -} bind -/crosshatch true definepattern pop - -30 30 [300 72 div 0 0 300 72 div 0 0] -{ %definepattern - 2 setlinecap - 0 7.5 moveto 30 7.5 lineto - 0 22.5 moveto 30 22.5 lineto - 7.5 0 moveto 7.5 7.5 lineto - 7.5 22.5 moveto 7.5 30 lineto - 22.5 7.5 moveto 22.5 22.5 lineto - 1 setlinewidth stroke -} bind -/brick true definepattern pop - -30 30 [300 72 div 0 0 300 72 div 0 0] -{ %definepattern - 2 2 scale - 2 setlinecap - 7.5 0 moveto 15 7.5 lineto - 0 7.5 moveto 7.5 15 lineto - 7.5 0 moveto 0 7.5 lineto - 15 7.5 moveto 7.5 15 lineto - 0.5 setlinewidth stroke -} bind -/crossdiagonal true definepattern pop - -30 30 [300 72 div 0 0 300 72 div 0 0] -{ %definepattern - 2 2 scale - 1 setlinecap - 0 7.5 moveto 0 15 7.5 270 360 arc - 7.5 15 moveto 15 15 7.5 180 270 arc - 0 7.5 moveto 7.5 7.5 7.5 180 360 arc - 0.5 setlinewidth stroke -} bind -/fishscale true definepattern pop - -30 30 [300 72 div 0 0 300 72 div 0 0] -{ %definepattern - 1 setlinecap 0.5 setlinewidth - 7.5 0 10.6 135 45 arcn - 22.5 15 10.6 225 315 arc - stroke - 7.5 15 10.6 135 45 arcn - 22.5 30 10.6 225 315 arc - stroke -} bind -/wave true definepattern pop - -WinAnsiEncoding /_ArialMT /ArialMT RE - -newpath 2 setlinecap 0 setlinejoin 2 setmiterlimit -[] 0 setdash -8 230 moveto 8 790 lineto 580 790 lineto 580 230 lineto closepath clip -newpath -%%EndPageSetup -0.862745 0.956863 -1.42109e-016 0 K -2 w -543 249 -9 789 [1 0 0 1 27 -9] Bx -s -0.133333 0.133333 0.133333 0 k -0.133333 0.133333 0.133333 0 K -0.5 w -150 480 90 510 [1 0 0 1 -15 180] Bx -b -150 480 90 510 [1 0 0 1 60.33 180] Bx -b -150 480 90 510 [1 0 0 1 299.8 180] Bx -b -240 480 90 510 [1 0 0 1 135 180] Bx -b -150 480 90 510 [1 0 0 1 375.3 180] Bx -b -[1 0 0 1 15.05 0.702] e -33 681 33 681 tbx -0 tal -13 tld -1 1 1 0 k -/_ArialMT 12 tfn -(top) 33 670.14 tpt -T -0.133333 0.133333 0.133333 0 k -150 480 90 510 [1 0 0 1 -15 135] Bx -b -150 480 90 510 [1 0 0 1 60 135] Bx -b -150 480 90 510 [1 0 0 1 300 135] Bx -b -240 480 90 510 [1 0 0 1 135 135] Bx -b -150 480 90 510 [1 0 0 1 375 135] Bx -b -[1 0 0 1 -5.627 6.702] e -33 630 33 630 tbx -0 tal -13 tld -1 1 1 0 k -/_ArialMT 12 tfn -(header) 33 619.14 tpt -T -0.133333 0.133333 0.133333 0 k -150 480 90 510 [1 0 0 1 -15 -90.7] Bx -b -150 480 90 510 [1 0 0 1 60 -90.7] Bx -b -150 480 90 510 [1 0 0 1 300 -90.7] Bx -b -240 480 90 510 [1 0 0 1 135 -90.7] Bx -b -150 480 90 510 [1 0 0 1 375 -90.7] Bx -b -[1 0 0 1 1.045 9] e -33 402 33 402 tbx -0 tal -13 tld -1 1 1 0 k -/_ArialMT 12 tfn -(footer) 33 391.14 tpt -T -0.133333 0.133333 0.133333 0 k -150 480 90 510 [1 0 0 1 -15 -135] Bx -b -150 480 90 510 [1 0 0 1 60 -135] Bx -b -150 480 90 510 [1 0 0 1 300 -135] Bx -b -240 480 90 510 [1 0 0 1 135 -135] Bx -b -150 480 90 510 [1 0 0 1 375 -135] Bx -b -[1 0 0 1 -7.957 3.702] e -36 363 36 363 tbx -0 tal -13 tld -1 1 1 0 k -/_ArialMT 12 tfn -(bottom) 36 352.14 tpt -T -0.133333 0.133333 0.133333 0 k -150 345 90 510 [1 0 0 1 -15 90] Bx -b -150 345 90 510 [1 0 0 1 60 90] Bx -b -150 345 90 510 [1 0 0 1 300 90] Bx -b --1.42109e-016 0.4 0.8 0 k -240 345 90 510 [1 0 0 1 135 90] Bx -b -0.133333 0.133333 0.133333 0 k -150 345 90 510 [1 0 0 1 375 90] Bx -b -[1 0 0 1 21.38 17.2] e -24 507 24 507 tbx -0 tal -13 tld -1 1 1 0 k -/_ArialMT 12 tfn -(text) 24 496.14 tpt -T -[1 0 0 1 -11.02 51.19] e -93 705 93 705 tbx -0 tal -13 tld -/_ArialMT 12 tfn -(left edge) 93 694.14 tpt -T -[1 0 0 1 -4.5 48.19] e -159 708 159 708 tbx -0 tal -13 tld -/_ArialMT 12 tfn -(left margin) 159 697.14 tpt -T -[1 0 0 1 17.33 51.19] e -273 705 273 705 tbx -0 tal -13 tld -/_ArialMT 12 tfn -(text) 273 694.14 tpt -T -[1 0 0 1 -13.87 54.19] e -402 702 402 702 tbx -0 tal -13 tld -/_ArialMT 12 tfn -(right margin) 402 691.14 tpt -T -[1 0 0 1 -11.34 51.19] e -480 705 480 705 tbx -0 tal -13 tld -/_ArialMT 12 tfn -(right edge) 480 694.14 tpt -T -[1 0 0 1 -13.64 0.702] e -75 352.596 39 366 tbx -0 tal -13 tld -/_ArialMT 12 tfn -() 39 355.14 tpt -T --1.42109e-016 -1.42109e-016 -1.42109e-016 0 k -1 1 1 0 K -1 w -q -1 0 0 1 91.45 14.02 cm -150 712 150 720 m2 -150 638 150 630 L2 -Q -S -q -1 0 0 1 91.45 14.02 cm -150 630 150 720 4 1 Ah -150 720 150 630 4 2 Ah -Q -q -1 0 0 1 165 -30 cm -150 712 150 720 m2 -150 698 150 690 L2 -Q -S -q -1 0 0 1 165 -30 cm -150 690 150 720 4 1 Ah -150 720 150 690 4 2 Ah -Q -q -1 0 0 1 -47.91 0 cm -130.909 705 122.909 705 m2 -265 705 273 705 L2 -Q -S -q -1 0 0 1 -47.91 0 cm -273 705 122.909 705 4 1 Ah -122.909 705 273 705 4 2 Ah -Q -q -1 0 0 1 -45 -150 cm -128 705 120 705 m2 -172 705 180 705 L2 -Q -S -q -1 0 0 1 -45 -150 cm -180 705 120 705 4 1 Ah -120 705 180 705 4 2 Ah -Q -0.25 w -q -1 0 0 1 0.09051 53.27 cm -225 660 m -225 645 L -Q -S -q -1 0 0 1 6.094 0 cm -228 645 m -243 645 L -Q -S -[1 0 0 1 -2.909 66] e -126 654 126 654 tbx -0 tal -13 tld -1 1 1 0 k -/_ArialMT 12 tfn -(backspace) 126 643.14 tpt -T -[1 0 0 1 -9 30] e -255 690 255 690 tbx -0 tal -13 tld -/_ArialMT 12 tfn -(topspace) 255 679.14 tpt -T --1.42109e-016 -1.42109e-016 -1.42109e-016 0 k -1 w -q -1 0 0 1 29.91 -210 cm -128 705 120 705 m2 -172 705 180 705 L2 -Q -S -q -1 0 0 1 29.91 -210 cm -180 705 120 705 4 1 Ah -120 705 180 705 4 2 Ah -Q -q -1 0 0 1 270 -210 cm -128 705 120 705 m2 -172 705 180 705 L2 -Q -S -q -1 0 0 1 270 -210 cm -180 705 120 705 4 1 Ah -120 705 180 705 4 2 Ah -Q -q -1 0 0 1 345 -150 cm -128 705 120 705 m2 -172 705 180 705 L2 -Q -S -q -1 0 0 1 345 -150 cm -180 705 120 705 4 1 Ah -120 705 180 705 4 2 Ah -Q -q -1 0 0 1 165 -75 cm -150 712 150 720 m2 -150 698 150 690 L2 -Q -S -q -1 0 0 1 165 -75 cm -150 690 150 720 4 1 Ah -150 720 150 690 4 2 Ah -Q -q -1 0 0 1 165 -300 cm -150 712 150 720 m2 -150 698 150 690 L2 -Q -S -q -1 0 0 1 165 -300 cm -150 690 150 720 4 1 Ah -150 720 150 690 4 2 Ah -Q -q -1 0 0 1 165 -345 cm -150 712 150 720 m2 -150 698 150 690 L2 -Q -S -q -1 0 0 1 165 -345 cm -150 690 150 720 4 1 Ah -150 720 150 690 4 2 Ah -Q -0.862745 0.956863 -1.42109e-016 0 K -2 w -q -1 0 0 1 104.9 -150 cm -136 705 120 705 m2 -254.094 705 270.094 705 L2 -Q -S -q -1 0 0 1 104.9 -150 cm -270.094 705 120 705 4 1 Ah -120 705 270.094 705 4 2 Ah -Q -q -1 0 0 1 105 -118.5 cm -150 747.547 150 763.547 m2 -150 524.547 150 508.547 L2 -Q -S -q -1 0 0 1 105 -118.5 cm -150 508.547 150 763.547 4 1 Ah -150 763.547 150 508.547 4 2 Ah -Q -[1 0 0 1 -3 6.702] e -324 675 324 675 tbx -0 tal -13 tld -1 1 1 0 k -/_ArialMT 12 tfn -(top) 324 664.14 tpt -T -[1 0 0 1 -3 3.702] e -324 633 324 633 tbx -0 tal -13 tld -/_ArialMT 12 tfn -(header) 324 622.14 tpt -T -[1 0 0 1 0 0] e -261 498 261 498 tbx -0 tal -13 tld -0.862745 0.956863 -1.42109e-016 0 k -/_ArialMT 12 tfn -(height) 261 487.14 tpt -T -[1 0 0 1 -14.05 7.406] e -291 564 291 564 tbx -0 tal -13 tld -/_ArialMT 12 tfn -(width) 291 553.14 tpt -T -[1 0 0 1 0 9.702] e -321 402 321 402 tbx -0 tal -13 tld -1 1 1 0 k -/_ArialMT 12 tfn -(footer) 321 391.14 tpt -T -[1 0 0 1 0 9.702] e -321 357 321 357 tbx -0 tal -13 tld -/_ArialMT 12 tfn -(bottom) 321 346.14 tpt -T -[1 0 0 1 -0.348 7.5] e -84 564 84 564 tbx -0 tal -13 tld -/_ArialMT 12 tfn -(leftedge) 84 553.14 tpt -T -[1 0 0 1 -13.08 4.359] e -168 507 168 507 tbx -0 tal -13 tld -/_ArialMT 12 tfn -(leftmargin) 168 496.14 tpt -T -[1 0 0 1 -17.44 7.359] e -408 504 408 504 tbx -0 tal -13 tld -/_ArialMT 12 tfn -(rightmargin) 408 493.14 tpt -T -[1 0 0 1 -13.01 7.5] e -483 564 483 564 tbx -0 tal -13 tld -/_ArialMT 12 tfn -(rightedge) 483 553.14 tpt -T --1.42109e-016 -1.42109e-016 -1.42109e-016 0 k -1 1 1 0 K -1 w -q -1 0 0 1 165 -120 cm -150 712 150 720 m2 -150 563 150 555 L2 -Q -S -q -1 0 0 1 165 -120 cm -150 555 150 720 4 1 Ah -150 720 150 555 4 2 Ah -Q -[1 0 0 1 0 0] e -402 460.596 333 474 tbx -0 tal -13 tld -1 1 1 0 k -/_ArialMT 12 tfn -() 333 463.14 tpt -T -[1 0 0 1 -33 15.64] e -354 468 354 468 tbx -0 tal -13 tld -/_ArialMT 12 tfn -(textheight) 354 457.14 tpt -T -u --1.42109e-016 -1.42109e-016 -1.42109e-016 0 k -0.5 w -q -1 0 0 1 255 -60 cm -150 716 150 720 m2 -150 709 150 705 L2 -Q -S -q -1 0 0 1 255 -60 cm -150 705 150 720 4 1 Ah -150 720 150 705 4 2 Ah -Q -[1 0 0 1 -2.33 7.659] e -411 651 411 651 tbx -0 tal -11 tld -1 1 1 0 k -/_ArialMT 10 tfn -(topdistance) 411 641.95 tpt -T -U --1.42109e-016 -1.42109e-016 -1.42109e-016 0 k -q -1 0 0 1 255 -105 cm -150 716 150 720 m2 -150 709 150 705 L2 -Q -S -q -1 0 0 1 255 -105 cm -150 705 150 720 4 1 Ah -150 720 150 705 4 2 Ah -Q -[1 0 0 1 -2.33 -37.34] e -411 651 411 651 tbx -0 tal -11 tld -1 1 1 0 k -/_ArialMT 10 tfn -(headerdistance) 411 641.95 tpt -T --1.42109e-016 -1.42109e-016 -1.42109e-016 0 k -q -1 0 0 1 255 -285 cm -150 716 150 720 m2 -150 709 150 705 L2 -Q -S -q -1 0 0 1 255 -285 cm -150 705 150 720 4 1 Ah -150 720 150 705 4 2 Ah -Q -[1 0 0 1 -2.33 -217.3] e -411 651 411 651 tbx -0 tal -11 tld -1 1 1 0 k -/_ArialMT 10 tfn -(footerdistance) 411 641.95 tpt -T --1.42109e-016 -1.42109e-016 -1.42109e-016 0 k -q -1 0 0 1 255 -330 cm -150 716 150 720 m2 -150 709 150 705 L2 -Q -S -q -1 0 0 1 255 -330 cm -150 705 150 720 4 1 Ah -150 720 150 705 4 2 Ah -Q -[1 0 0 1 -2.33 -262.3] e -411 651 411 651 tbx -0 tal -11 tld -1 1 1 0 k -/_ArialMT 10 tfn -(bottomdistance) 411 641.95 tpt -T -u --1.42109e-016 -1.42109e-016 -1.42109e-016 0 k -q -1 0 0 1 45 0 cm -109 330 105 330 m2 -120 330 L -Q -S -q -1 0 0 1 45 0 cm -120 330 105 330 4 1 Ah -Q -q -1 0 0 1 30 0 cm -101 330 105 330 m2 -90 330 L -Q -S -q -1 0 0 1 30 0 cm -90 330 105 330 4 1 Ah -Q -U -u -q -1 0 0 1 120 -15 cm -109 330 105 330 m2 -120 330 L -Q -S -q -1 0 0 1 120 -15 cm -120 330 105 330 4 1 Ah -Q -q -1 0 0 1 105 -15 cm -101 330 105 330 m2 -90 330 L -Q -S -q -1 0 0 1 105 -15 cm -90 330 105 330 4 1 Ah -Q -U -u -q -1 0 0 1 285 -15 cm -109 330 105 330 m2 -120 330 L -Q -S -q -1 0 0 1 285 -15 cm -120 330 105 330 4 1 Ah -Q -q -1 0 0 1 270 -15 cm -101 330 105 330 m2 -90 330 L -Q -S -q -1 0 0 1 270 -15 cm -90 330 105 330 4 1 Ah -Q -U -u -q -1 0 0 1 360 0 cm -109 330 105 330 m2 -120 330 L -Q -S -q -1 0 0 1 360 0 cm -120 330 105 330 4 1 Ah -Q -q -1 0 0 1 345 0 cm -101 330 105 330 m2 -90 330 L -Q -S -q -1 0 0 1 345 0 cm -90 330 105 330 4 1 Ah -Q -U -[1 0 0 1 -15 5.998] e -123 321 123 321 tbx -0 tal -11 tld -1 1 1 0 k -/_ArialMT 10 tfn -(leftedgedistance) 123 311.95 tpt -T -[1 0 0 1 -36 9.633] e -300.14 291.83 219 303 tbx -0 tal -11 tld -/_ArialMT 10 tfn -(leftmargindistance) 219 293.95 tpt -T -[1 0 0 1 120.2 8.906] e -306.25 291.83 219 303 tbx -0 tal -11 tld -/_ArialMT 10 tfn -(rightmargindistance) 219 293.95 tpt -T -[1 0 0 1 -27 8.998] e -450 318 450 318 tbx -0 tal -11 tld -/_ArialMT 10 tfn -(rightedgedistance) 450 308.95 tpt -T -[1 0 0 1 -6 58.55] e -183 246.83 120 258 tbx -0 tal -11 tld -/_ArialMT 10 tfn -(edgedistance) 120 248.95 tpt -T -[1 0 0 1 18 53.27] e -171 249 171 249 tbx -0 tal -11 tld -/_ArialMT 10 tfn -(margindistance) 171 239.95 tpt -T -[1 0 0 1 180 53.27] e -171 249 171 249 tbx -0 tal -11 tld -/_ArialMT 10 tfn -(margindistance) 171 239.95 tpt -T -[1 0 0 1 312 58.55] e -183 246.83 120 258 tbx -0 tal -11 tld -/_ArialMT 10 tfn -(edgedistance) 120 248.95 tpt -T -u --1.42109e-016 -1.42109e-016 -1.42109e-016 0 k -1 w -q -1 0 0 1 -15 0 cm -60 285 m -90 285 L -Q -S -q -1 0 0 1 0 0 cm -75 285 m -75 255 L -Q -S -U -u -q --1 0 0 1 615 0 cm -60 285 m -90 285 L -Q -S -q --1 0 0 1 600 0 cm -75 285 m -75 255 L -Q -S -U -u -q -0 -1 -1 0 810 825 cm -60 285 m -90 285 L -Q -S -q -0 -1 -1 0 810 810 cm -75 285 m -75 255 L -Q -S -U -u -q -0 -1 1 0 -210 825 cm -60 285 m -90 285 L -Q -S -q -0 -1 1 0 -210 810 cm -75 285 m -75 255 L -Q -S -U -0.5 w -[3 3] 0 d -525 735 75 285 [1 0 0 1 0 0] Bx -s -1 w -[] 0 d -q -1 0 0 1 -45.09 -435 cm -128 705 120 705 m2 -562.094 705 570.094 705 L2 -Q -S -q -1 0 0 1 -45.09 -435 cm -570.094 705 120 705 4 1 Ah -120 705 570.094 705 4 2 Ah -Q -[1 0 0 1 0 0] e -271.57 246.83 246 258 tbx -0 tal -11 tld -0.862745 0.956863 -1.42109e-016 0 k -/_ArialMT 10 tfn -() 246 248.95 tpt -T -[1 0 0 1 0 0] e -261 255 261 255 tbx -0 tal -11 tld -1 1 1 0 k -/_ArialMT 10 tfn -() 261 245.95 tpt -T -[1 0 0 1 9.607 12.09] e -261 255 261 255 tbx -0 tal -13 tld -/_ArialMT 12 tfn -(paperwidth) 261 244.14 tpt -T --1.42109e-016 -1.42109e-016 -1.42109e-016 0 k -q -0 1 -1 0 1244 164.3 cm -128 705 120 705 m2 -562.094 705 570.094 705 L2 -Q -S -q -0 1 -1 0 1244 164.3 cm -570.094 705 120 705 4 1 Ah -120 705 570.094 705 4 2 Ah -Q -[0 1 -1 0 797.2 219] e -261 255 261 255 tbx -0 tal -13 tld -1 1 1 0 k -/_ArialMT 12 tfn -(paperheight) 261 244.14 tpt -T -[1 0 0 1 -12 12] e -285 540 285 540 tbx -0 tal -13 tld -/_ArialMT 12 tfn -(textwidth) 285 529.14 tpt -T -[1 0 0 1 0 12] e -90 540 90 540 tbx -0 tal -13 tld -/_ArialMT 12 tfn -(edge) 90 529.14 tpt -T -[1 0 0 1 0 9] e -162 483 162 483 tbx -0 tal -13 tld -/_ArialMT 12 tfn -(margin) 162 472.14 tpt -T -[1 0 0 1 -6.336 12] e -408 480 408 480 tbx -0 tal -13 tld -/_ArialMT 12 tfn -(margin) 408 469.14 tpt -T -[1 0 0 1 -6 18] e -489 534 489 534 tbx -0 tal -13 tld -/_ArialMT 12 tfn -(edge) 489 523.14 tpt -T --1.42109e-016 -1.42109e-016 -1.42109e-016 0 k -q -1 0 0 1 252.1 0 cm -130.909 705 122.909 705 m2 -265 705 273 705 L2 -Q -S -q -1 0 0 1 252.1 0 cm -273 705 122.909 705 4 1 Ah -122.909 705 273 705 4 2 Ah -Q -0.25 w -q -1 0 0 1 150.1 52.55 cm -225 660 m -225 645 L -Q -S -[1 0 0 1 297.1 66] e -126 654 126 654 tbx -0 tal -13 tld -1 1 1 0 k -/_ArialMT 12 tfn -(cutspace) 126 643.14 tpt -T -%%PageTrailer -_PDX_savepage restore -%%Trailer -end -showpage -%%EOF diff --git a/doc/context/sources/general/manuals/start/graphics/fig-page-parameters-en.pdf b/doc/context/sources/general/manuals/start/graphics/fig-page-parameters-en.pdf deleted file mode 100644 index 1dd1f75b1..000000000 --- a/doc/context/sources/general/manuals/start/graphics/fig-page-parameters-en.pdf +++ /dev/null @@ -1,1216 +0,0 @@ -%PDF-1.0
-1 0 obj
-<<
-/Creator (Mayura Draw 4.3)
->>
-endobj
-2 0 obj
-<<
-/Type /Catalog
-/Pages 4 0 R
-/Outlines 3 0 R
->>
-endobj
-3 0 obj
-<<
-/Type /Outlines
-/Count 0
->>
-endobj
-4 0 obj
-<<
-/Type /Pages
-/Count 1
-/Kids [ 5 0 R ]
->>
-endobj
-5 0 obj
-<<
-/Type /Page
-/Parent 4 0 R
-/MediaBox [ 8 230 580 790 ]
-/Resources <<
-/ProcSet 6 0 R
-/XObject 9 0 R
-/Font 10 0 R
->>
-/Contents 7 0 R
->>
-endobj
-6 0 obj
-[ /PDF /Text ]
-endobj
-7 0 obj
-<< /Length 8 0 R >>
-stream
-1 1 1 rg
-0.137255 0.0431373 1 RG
-2 w
-18 780 m
-18 240 l
-570 240 l
-570 780 l
-18 780 l
-s
-0.866667 0.866667 0.866667 rg
-0.866667 0.866667 0.866667 RG
-0.5 w
-75 690 m
-75 660 l
-135 660 l
-135 690 l
-75 690 l
-b*
-150.33 690 m
-150.33 660 l
-210.33 660 l
-210.33 690 l
-150.33 690 l
-b*
-389.8 690 m
-389.8 660 l
-449.8 660 l
-449.8 690 l
-389.8 690 l
-b*
-225 690 m
-225 660 l
-375 660 l
-375 690 l
-225 690 l
-b*
-465.3 690 m
-465.3 660 l
-525.3 660 l
-525.3 690 l
-465.3 690 l
-b*
-0 0 0 rg
-BT
-/F1 12 Tf
-1 0 0 1 48.05 670.8 Tm
-0 Tw
-(top) Tj
-ET
-0.866667 0.866667 0.866667 rg
-75 645 m
-75 615 l
-135 615 l
-135 645 l
-75 645 l
-b*
-150 645 m
-150 615 l
-210 615 l
-210 645 l
-150 645 l
-b*
-390 645 m
-390 615 l
-450 615 l
-450 645 l
-390 645 l
-b*
-225 645 m
-225 615 l
-375 615 l
-375 645 l
-225 645 l
-b*
-465 645 m
-465 615 l
-525 615 l
-525 645 l
-465 645 l
-b*
-0 0 0 rg
-BT
-/F1 12 Tf
-1 0 0 1 27.37 625.8 Tm
-0 Tw
-(header) Tj
-ET
-0.866667 0.866667 0.866667 rg
-75 419.3 m
-75 389.3 l
-135 389.3 l
-135 419.3 l
-75 419.3 l
-b*
-150 419.3 m
-150 389.3 l
-210 389.3 l
-210 419.3 l
-150 419.3 l
-b*
-390 419.3 m
-390 389.3 l
-450 389.3 l
-450 419.3 l
-390 419.3 l
-b*
-225 419.3 m
-225 389.3 l
-375 389.3 l
-375 419.3 l
-225 419.3 l
-b*
-465 419.3 m
-465 389.3 l
-525 389.3 l
-525 419.3 l
-465 419.3 l
-b*
-0 0 0 rg
-BT
-/F1 12 Tf
-1 0 0 1 34.04 400.1 Tm
-0 Tw
-(footer) Tj
-ET
-0.866667 0.866667 0.866667 rg
-75 375 m
-75 345 l
-135 345 l
-135 375 l
-75 375 l
-b*
-150 375 m
-150 345 l
-210 345 l
-210 375 l
-150 375 l
-b*
-390 375 m
-390 345 l
-450 345 l
-450 375 l
-390 375 l
-b*
-225 375 m
-225 345 l
-375 345 l
-375 375 l
-225 375 l
-b*
-465 375 m
-465 345 l
-525 345 l
-525 375 l
-465 375 l
-b*
-0 0 0 rg
-BT
-/F1 12 Tf
-1 0 0 1 28.04 355.8 Tm
-0 Tw
-(bottom) Tj
-ET
-0.866667 0.866667 0.866667 rg
-75 600 m
-75 435 l
-135 435 l
-135 600 l
-75 600 l
-b*
-150 600 m
-150 435 l
-210 435 l
-210 600 l
-150 600 l
-b*
-390 600 m
-390 435 l
-450 435 l
-450 600 l
-390 600 l
-b*
-1 0.6 0.2 rg
-225 600 m
-225 435 l
-375 435 l
-375 600 l
-225 600 l
-b*
-0.866667 0.866667 0.866667 rg
-465 600 m
-465 435 l
-525 435 l
-525 600 l
-465 600 l
-b*
-0 0 0 rg
-BT
-/F1 12 Tf
-1 0 0 1 45.38 513.3 Tm
-0 Tw
-(text) Tj
-ET
-BT
-/F1 12 Tf
-1 0 0 1 81.98 745.3 Tm
-0 Tw
-(left edge) Tj
-ET
-BT
-/F1 12 Tf
-1 0 0 1 154.5 745.3 Tm
-0 Tw
-(left margin) Tj
-ET
-BT
-/F1 12 Tf
-1 0 0 1 290.3 745.3 Tm
-0 Tw
-(text) Tj
-ET
-BT
-/F1 12 Tf
-1 0 0 1 388.1 745.3 Tm
-0 Tw
-(right margin) Tj
-ET
-BT
-/F1 12 Tf
-1 0 0 1 468.7 745.3 Tm
-0 Tw
-(right edge) Tj
-ET
-BT
-/F1 12 Tf
-1 0 0 1 25.36 355.8 Tm
-0 Tw
-() Tj
-ET
-1 1 1 rg
-0 0 0 RG
-1 w
-241.45 726.02 m
-241.45 652.02 l
-S
-0 0 0 rg
-0 w
-241.45 734.02 m
-241.45 725.02 l
-238.45 725.02 l
-241.45 734.02 l
-244.45 725.02 l
-241.45 725.02 l
-241.45 734.02 l
-f*
-241.45 644.02 m
-241.45 653.02 l
-244.45 653.02 l
-241.45 644.02 l
-238.45 653.02 l
-241.45 653.02 l
-241.45 644.02 l
-f*
-1 1 1 rg
-1 w
-315 682 m
-315 668 l
-S
-0 0 0 rg
-0 w
-315 690 m
-315 681 l
-312 681 l
-315 690 l
-318 681 l
-315 681 l
-315 690 l
-f*
-315 660 m
-315 669 l
-318 669 l
-315 660 l
-312 669 l
-315 669 l
-315 660 l
-f*
-1 1 1 rg
-1 w
-83 705 m
-217.091 705 l
-S
-0 0 0 rg
-0 w
-75 705 m
-84 705 l
-84 702 l
-75 705 l
-84 708 l
-84 705 l
-75 705 l
-f*
-225.091 705 m
-216.091 705 l
-216.091 708 l
-225.091 705 l
-216.091 702 l
-216.091 705 l
-225.091 705 l
-f*
-1 1 1 rg
-1 w
-83 555 m
-127 555 l
-S
-0 0 0 rg
-0 w
-75 555 m
-84 555 l
-84 552 l
-75 555 l
-84 558 l
-84 555 l
-75 555 l
-f*
-135 555 m
-126 555 l
-126 558 l
-135 555 l
-126 552 l
-126 555 l
-135 555 l
-f*
-1 1 1 rg
-0.25 w
-225.091 713.273 m
-225.091 698.273 l
-S
-234.094 645 m
-249.094 645 l
-S
-0 0 0 rg
-BT
-/F1 12 Tf
-1 0 0 1 123.1 709.1 Tm
-0 Tw
-(backspace) Tj
-ET
-BT
-/F1 12 Tf
-1 0 0 1 246 709.1 Tm
-0 Tw
-(topspace) Tj
-ET
-1 1 1 rg
-1 w
-157.91 495 m
-201.91 495 l
-S
-0 0 0 rg
-0 w
-149.91 495 m
-158.91 495 l
-158.91 492 l
-149.91 495 l
-158.91 498 l
-158.91 495 l
-149.91 495 l
-f*
-209.91 495 m
-200.91 495 l
-200.91 498 l
-209.91 495 l
-200.91 492 l
-200.91 495 l
-209.91 495 l
-f*
-1 1 1 rg
-1 w
-398 495 m
-442 495 l
-S
-0 0 0 rg
-0 w
-390 495 m
-399 495 l
-399 492 l
-390 495 l
-399 498 l
-399 495 l
-390 495 l
-f*
-450 495 m
-441 495 l
-441 498 l
-450 495 l
-441 492 l
-441 495 l
-450 495 l
-f*
-1 1 1 rg
-1 w
-473 555 m
-517 555 l
-S
-0 0 0 rg
-0 w
-465 555 m
-474 555 l
-474 552 l
-465 555 l
-474 558 l
-474 555 l
-465 555 l
-f*
-525 555 m
-516 555 l
-516 558 l
-525 555 l
-516 552 l
-516 555 l
-525 555 l
-f*
-1 1 1 rg
-1 w
-315 637 m
-315 623 l
-S
-0 0 0 rg
-0 w
-315 645 m
-315 636 l
-312 636 l
-315 645 l
-318 636 l
-315 636 l
-315 645 l
-f*
-315 615 m
-315 624 l
-318 624 l
-315 615 l
-312 624 l
-315 624 l
-315 615 l
-f*
-1 1 1 rg
-1 w
-315 412 m
-315 398 l
-S
-0 0 0 rg
-0 w
-315 420 m
-315 411 l
-312 411 l
-315 420 l
-318 411 l
-315 411 l
-315 420 l
-f*
-315 390 m
-315 399 l
-318 399 l
-315 390 l
-312 399 l
-315 399 l
-315 390 l
-f*
-1 1 1 rg
-1 w
-315 367 m
-315 353 l
-S
-0 0 0 rg
-0 w
-315 375 m
-315 366 l
-312 366 l
-315 375 l
-318 366 l
-315 366 l
-315 375 l
-f*
-315 345 m
-315 354 l
-318 354 l
-315 345 l
-312 354 l
-315 354 l
-315 345 l
-f*
-1 1 1 rg
-0.137255 0.0431373 1 RG
-2 w
-240.9 555 m
-358.994 555 l
-S
-0.137255 0.0431373 1 rg
-0 w
-224.9 555 m
-242.9 555 l
-242.9 549 l
-224.9 555 l
-242.9 561 l
-242.9 555 l
-224.9 555 l
-f*
-374.994 555 m
-356.994 555 l
-356.994 561 l
-374.994 555 l
-356.994 549 l
-356.994 555 l
-374.994 555 l
-f*
-1 1 1 rg
-2 w
-255 629.047 m
-255 406.047 l
-S
-0.137255 0.0431373 1 rg
-0 w
-255 645.047 m
-255 627.047 l
-249 627.047 l
-255 645.047 l
-261 627.047 l
-255 627.047 l
-255 645.047 l
-f*
-255 390.047 m
-255 408.047 l
-261 408.047 l
-255 390.047 l
-249 408.047 l
-255 408.047 l
-255 390.047 l
-f*
-0 0 0 rg
-BT
-/F1 12 Tf
-1 0 0 1 321 670.8 Tm
-0 Tw
-(top) Tj
-ET
-BT
-/F1 12 Tf
-1 0 0 1 321 625.8 Tm
-0 Tw
-(header) Tj
-ET
-0.137255 0.0431373 1 rg
-BT
-/F1 12 Tf
-1 0 0 1 261 487.1 Tm
-0 Tw
-(height) Tj
-ET
-BT
-/F1 12 Tf
-1 0 0 1 277 560.5 Tm
-0 Tw
-(width) Tj
-ET
-0 0 0 rg
-BT
-/F1 12 Tf
-1 0 0 1 321 400.8 Tm
-0 Tw
-(footer) Tj
-ET
-BT
-/F1 12 Tf
-1 0 0 1 321 355.8 Tm
-0 Tw
-(bottom) Tj
-ET
-BT
-/F1 12 Tf
-1 0 0 1 83.65 560.6 Tm
-0 Tw
-(leftedge) Tj
-ET
-BT
-/F1 12 Tf
-1 0 0 1 154.9 500.5 Tm
-0 Tw
-(leftmargin) Tj
-ET
-BT
-/F1 12 Tf
-1 0 0 1 390.6 500.5 Tm
-0 Tw
-(rightmargin) Tj
-ET
-BT
-/F1 12 Tf
-1 0 0 1 470 560.6 Tm
-0 Tw
-(rightedge) Tj
-ET
-1 1 1 rg
-0 0 0 RG
-1 w
-315 592 m
-315 443 l
-S
-0 0 0 rg
-0 w
-315 600 m
-315 591 l
-312 591 l
-315 600 l
-318 591 l
-315 591 l
-315 600 l
-f*
-315 435 m
-315 444 l
-318 444 l
-315 435 l
-312 444 l
-315 444 l
-315 435 l
-f*
-BT
-/F1 12 Tf
-1 0 0 1 333 463.1 Tm
-0 Tw
-() Tj
-ET
-BT
-/F1 12 Tf
-1 0 0 1 321 472.8 Tm
-0 Tw
-(textheight) Tj
-ET
-1 1 1 rg
-0.5 w
-405 656 m
-405 649 l
-S
-0 0 0 rg
-0 w
-405 660 m
-405 655.5 l
-403.5 655.5 l
-405 660 l
-406.5 655.5 l
-405 655.5 l
-405 660 l
-f*
-405 645 m
-405 649.5 l
-406.5 649.5 l
-405 645 l
-403.5 649.5 l
-405 649.5 l
-405 645 l
-f*
-BT
-/F1 10 Tf
-1 0 0 1 408.7 649.6 Tm
-0 Tw
-(topdistance) Tj
-ET
-1 1 1 rg
-0.5 w
-405 611 m
-405 604 l
-S
-0 0 0 rg
-0 w
-405 615 m
-405 610.5 l
-403.5 610.5 l
-405 615 l
-406.5 610.5 l
-405 610.5 l
-405 615 l
-f*
-405 600 m
-405 604.5 l
-406.5 604.5 l
-405 600 l
-403.5 604.5 l
-405 604.5 l
-405 600 l
-f*
-BT
-/F1 10 Tf
-1 0 0 1 408.7 604.6 Tm
-0 Tw
-(headerdistance) Tj
-ET
-1 1 1 rg
-0.5 w
-405 431 m
-405 424 l
-S
-0 0 0 rg
-0 w
-405 435 m
-405 430.5 l
-403.5 430.5 l
-405 435 l
-406.5 430.5 l
-405 430.5 l
-405 435 l
-f*
-405 420 m
-405 424.5 l
-406.5 424.5 l
-405 420 l
-403.5 424.5 l
-405 424.5 l
-405 420 l
-f*
-BT
-/F1 10 Tf
-1 0 0 1 408.7 424.7 Tm
-0 Tw
-(footerdistance) Tj
-ET
-1 1 1 rg
-0.5 w
-405 386 m
-405 379 l
-S
-0 0 0 rg
-0 w
-405 390 m
-405 385.5 l
-403.5 385.5 l
-405 390 l
-406.5 385.5 l
-405 385.5 l
-405 390 l
-f*
-405 375 m
-405 379.5 l
-406.5 379.5 l
-405 375 l
-403.5 379.5 l
-405 379.5 l
-405 375 l
-f*
-BT
-/F1 10 Tf
-1 0 0 1 408.7 379.7 Tm
-0 Tw
-(bottomdistance) Tj
-ET
-1 1 1 rg
-0.5 w
-154 330 m
-165 330 l
-S
-0 0 0 rg
-0 w
-150 330 m
-154.5 330 l
-154.5 328.5 l
-150 330 l
-154.5 331.5 l
-154.5 330 l
-150 330 l
-f*
-1 1 1 rg
-0.5 w
-131 330 m
-120 330 l
-S
-0 0 0 rg
-0 w
-135 330 m
-130.5 330 l
-130.5 331.5 l
-135 330 l
-130.5 328.5 l
-130.5 330 l
-135 330 l
-f*
-1 1 1 rg
-0.5 w
-229 315 m
-240 315 l
-S
-0 0 0 rg
-0 w
-225 315 m
-229.5 315 l
-229.5 313.5 l
-225 315 l
-229.5 316.5 l
-229.5 315 l
-225 315 l
-f*
-1 1 1 rg
-0.5 w
-206 315 m
-195 315 l
-S
-0 0 0 rg
-0 w
-210 315 m
-205.5 315 l
-205.5 316.5 l
-210 315 l
-205.5 313.5 l
-205.5 315 l
-210 315 l
-f*
-1 1 1 rg
-0.5 w
-394 315 m
-405 315 l
-S
-0 0 0 rg
-0 w
-390 315 m
-394.5 315 l
-394.5 313.5 l
-390 315 l
-394.5 316.5 l
-394.5 315 l
-390 315 l
-f*
-1 1 1 rg
-0.5 w
-371 315 m
-360 315 l
-S
-0 0 0 rg
-0 w
-375 315 m
-370.5 315 l
-370.5 316.5 l
-375 315 l
-370.5 313.5 l
-370.5 315 l
-375 315 l
-f*
-1 1 1 rg
-0.5 w
-469 330 m
-480 330 l
-S
-0 0 0 rg
-0 w
-465 330 m
-469.5 330 l
-469.5 328.5 l
-465 330 l
-469.5 331.5 l
-469.5 330 l
-465 330 l
-f*
-1 1 1 rg
-0.5 w
-446 330 m
-435 330 l
-S
-0 0 0 rg
-0 w
-450 330 m
-445.5 330 l
-445.5 331.5 l
-450 330 l
-445.5 328.5 l
-445.5 330 l
-450 330 l
-f*
-BT
-/F1 10 Tf
-1 0 0 1 108 317.9 Tm
-0 Tw
-(leftedgedistance) Tj
-ET
-BT
-/F1 10 Tf
-1 0 0 1 183 303.6 Tm
-0 Tw
-(leftmargindistance) Tj
-ET
-BT
-/F1 10 Tf
-1 0 0 1 339.2 302.9 Tm
-0 Tw
-(rightmargindistance) Tj
-ET
-BT
-/F1 10 Tf
-1 0 0 1 423 317.9 Tm
-0 Tw
-(rightedgedistance) Tj
-ET
-BT
-/F1 10 Tf
-1 0 0 1 114 307.5 Tm
-0 Tw
-(edgedistance) Tj
-ET
-BT
-/F1 10 Tf
-1 0 0 1 189 293.2 Tm
-0 Tw
-(margindistance) Tj
-ET
-BT
-/F1 10 Tf
-1 0 0 1 351 293.2 Tm
-0 Tw
-(margindistance) Tj
-ET
-BT
-/F1 10 Tf
-1 0 0 1 432 307.5 Tm
-0 Tw
-(edgedistance) Tj
-ET
-1 1 1 rg
-1 w
-45 285 m
-75 285 l
-S
-75 285 m
-75 255 l
-S
-555 285 m
-525 285 l
-S
-525 285 m
-525 255 l
-S
-525 765 m
-525 735 l
-S
-525 735 m
-555 735 l
-S
-75 765 m
-75 735 l
-S
-75 735 m
-45 735 l
-S
-0.5 w
-[3 3] 0 d
-75 285 m
-75 735 l
-525 735 l
-525 285 l
-75 285 l
-s
-1 w
-[] 0 d
-82.91 270 m
-517.004 270 l
-S
-0 0 0 rg
-0 w
-74.91 270 m
-83.91 270 l
-83.91 267 l
-74.91 270 l
-83.91 273 l
-83.91 270 l
-74.91 270 l
-f*
-525.004 270 m
-516.004 270 l
-516.004 273 l
-525.004 270 l
-516.004 267 l
-516.004 270 l
-525.004 270 l
-f*
-0.137255 0.0431373 1 rg
-BT
-/F1 10 Tf
-1 0 0 1 246 248.9 Tm
-0 Tw
-() Tj
-ET
-0 0 0 rg
-BT
-/F1 10 Tf
-1 0 0 1 261 245.9 Tm
-0 Tw
-() Tj
-ET
-BT
-/F1 12 Tf
-1 0 0 1 270.6 256.2 Tm
-0 Tw
-(paperwidth) Tj
-ET
-1 1 1 rg
-1 w
-539 292.3 m
-539 726.394 l
-S
-0 0 0 rg
-0 w
-539 284.3 m
-539 293.3 l
-542 293.3 l
-539 284.3 l
-536 293.3 l
-539 293.3 l
-539 284.3 l
-f*
-539 734.394 m
-539 725.394 l
-536 725.394 l
-539 734.394 l
-542 725.394 l
-539 725.394 l
-539 734.394 l
-f*
-BT
-/F1 12 Tf
-0 1 -1 0 553.1 480 Tm
-0 Tw
-(paperheight) Tj
-ET
-BT
-/F1 12 Tf
-1 0 0 1 273 541.1 Tm
-0 Tw
-(textwidth) Tj
-ET
-BT
-/F1 12 Tf
-1 0 0 1 90 541.1 Tm
-0 Tw
-(edge) Tj
-ET
-BT
-/F1 12 Tf
-1 0 0 1 162 481.1 Tm
-0 Tw
-(margin) Tj
-ET
-BT
-/F1 12 Tf
-1 0 0 1 401.7 481.1 Tm
-0 Tw
-(margin) Tj
-ET
-BT
-/F1 12 Tf
-1 0 0 1 483 541.1 Tm
-0 Tw
-(edge) Tj
-ET
-1 1 1 rg
-1 w
-383 705 m
-517.091 705 l
-S
-0 0 0 rg
-0 w
-375 705 m
-384 705 l
-384 702 l
-375 705 l
-384 708 l
-384 705 l
-375 705 l
-f*
-525.091 705 m
-516.091 705 l
-516.091 708 l
-525.091 705 l
-516.091 702 l
-516.091 705 l
-525.091 705 l
-f*
-1 1 1 rg
-0.25 w
-375.091 712.545 m
-375.091 697.545 l
-S
-0 0 0 rg
-BT
-/F1 12 Tf
-1 0 0 1 423.1 709.1 Tm
-0 Tw
-(cutspace) Tj
-ET
-endstream
-endobj
-8 0 obj
-11561
-endobj
-10 0 obj
-<<
-/F1 11 0 R
->>
-endobj
-11 0 obj
-<<
-/Type /Font
-/Subtype /TrueType
-/Name /F1
-/BaseFont /Arial
-/Encoding /WinAnsiEncoding
-/FirstChar 30
-/LastChar 255
-/Widths [ 750 750 278 278 355 556 556 889 667 191 333 333 389 584 278 333
- 278 278 556 556 556 556 556 556 556 556 556 556 278 278 584 584
- 584 556 1015 667 667 722 722 667 611 778 722 278 500 667 556 833
- 722 778 667 778 722 667 611 722 667 944 667 667 611 278 278 278
- 469 556 333 556 556 500 556 556 278 556 556 222 222 500 222 833
- 556 556 556 556 333 500 278 556 500 722 500 500 500 334 260 334
- 584 750 556 750 222 556 333 1000 556 556 333 1000 667 333 1000 750
- 611 750 750 222 222 333 333 350 556 1000 333 1000 500 333 944 750
- 500 667 278 333 556 556 556 556 260 556 333 737 370 556 584 333
- 737 552 400 549 333 333 333 576 537 278 333 333 365 556 834 834
- 834 611 667 667 667 667 667 667 1000 722 667 667 667 667 278 278
- 278 278 722 722 778 778 778 778 778 584 778 722 722 722 722 667
- 667 611 556 556 556 556 556 556 889 500 556 556 556 556 278 278
- 278 278 556 556 556 556 556 556 556 549 611 556 556 556 556 500
- 556 500]
-/FontDescriptor 12 0 R
->>
-endobj
-12 0 obj
-<<
-/Type /FontDescriptor
-/FontName /Arial
-/FontBBox [ -665 -325 2000 1006 ]
-/Ascent 905
-/Descent -212
-/CapHeight 905
-/XHeight 724
-/ItalicAngle 0
-/Flags 32
-/StemV 70
->>
-endobj
-9 0 obj
-<<
->>
-endobj
-xref
-0 13
-0000000000 65535 f
-0000000010 00000 n
-0000000063 00000 n
-0000000135 00000 n
-0000000187 00000 n
-0000000253 00000 n
-0000000417 00000 n
-0000000450 00000 n
-0000012068 00000 n
-0000013449 00000 n
-0000012092 00000 n
-0000012130 00000 n
-0000013251 00000 n
-trailer
-<<
-/Size 13
-/Root 2 0 R
-/Info 1 0 R
->>
-startxref
-13474
-%%EOF
diff --git a/doc/context/sources/general/manuals/start/graphics/ma-cb-00.eps b/doc/context/sources/general/manuals/start/graphics/ma-cb-00.eps deleted file mode 100644 index dece521c5..000000000 --- a/doc/context/sources/general/manuals/start/graphics/ma-cb-00.eps +++ /dev/null @@ -1,2799 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%BoundingBox: 154 313 441 529 -%%Creator: CorelDRAW! -%%Title: GRACHT.EPS -%%CreationDate: Wed Aug 13 17:01:56 1997 - -%%DocumentFonts: -%%DocumentProcessColors: Cyan Magenta Yellow Black -%%EndComments -%%BeginProlog -/AutoFlatness false def -% -------------- POSTSCRIPT PROLOG FOR CORELDRAW 3.X ------ -% Copyright 1992 Corel Corporation. All rights reserved. -/wCorelDict 300 dict def wCorelDict begin/bd{bind def}bind def -/ld{load def}bd/xd{exch def}bd/_ null def -/$c 0 def/$m 0 def/$y 0 def/$k 0 def/$t 1 def -/$n _ def/$o 0 def/$fil 0 def/$bkg false def -/$C 0 def/$M 0 def/$Y 0 def/$K 0 def/$T 1 def -/$N _ def/$O 0 def/$PF false def/$ctm matrix currentmatrix def -/$ptm matrix def/$ttm matrix def/$stm matrix def -/$fst 128 def/$pad 0 def/$rox 0 def/$roy 0 def -currentscreen/@dsp xd/$dsp/@dsp def/$dsa xd -/$dsf xd/$sdf false def/$SDF false def/$Scra 0.0 def -/$sv 0 def/@cp/closepath ld/@gs/gsave ld/@gr/grestore ld -/@np/newpath ld/@sv{/$sv save def}bd/@rs{$sv restore}bd -/@ss{exch $Scra add exch load setscreen}bd -AutoFlatness{/$cpx ([Error: PathTooComplex; OffendingCommand: AnyPaintingOperator]\n) def -/@err1{$cpx print flush newpath}bd/@ifl{dup currentflat exch sub 10 gt -{@err1 exit}{currentflat 2 add setflat}ifelse}bd -/@fill/fill ld/fill{currentflat{{@fill}stopped{@ifl}{exit}ifelse -}bind loop setflat}bd/@eofill/eofill ld/eofill{currentflat{{@eofill} -stopped{@ifl}{exit}ifelse}bind loop setflat}bd -/@clip/clip ld/clip{currentflat{{@clip}stopped{initclip @ifl}{exit -}ifelse}bind loop setflat}bd/@eoclip/eoclip ld -/eoclip{currentflat{{@eoclip}stopped{initclip @ifl}{exit}ifelse -}bind loop setflat}bd/@stroke/stroke ld/stroke{currentflat{{@stroke} -stopped{@ifl}{exit}ifelse}bind loop setflat}bd}if -/InRange{3 -1 roll 2 copy le{pop}{exch pop}ifelse -2 copy ge{pop}{exch pop}ifelse}bd/wDstChck{2 1 roll dup 3 -1 roll -eq{1 add}if}bd/@dot{dup mul exch dup mul add 1 exch sub 2 div}bd -/@lin{exch pop abs 1 exch sub}bd/@MN{2 copy le{pop}{exch pop}ifelse}bd -/setcmykcolor where{pop}{/setcmykcolor{4 1 roll -3{3 index add 1 @MN 1 exch sub 3 1 roll}repeat -setrgbcolor pop}bd}ifelse/setoverprint{/$op xd}bd -/currentoverprint{$op}bd/setsepcolor{1 exch sub setgray}bd -/checksepcolor{1 exch sub dup setgray 1 eq exch 1 eq and not}bd -/setprocesscolor{ColorSeparationMode 0 eq{setcmykcolor}{ -0 4 $ink sub index exch pop 5 1 roll 4{pop}repeat -setsepcolor}ifelse}bd/findcmykcustomcolor{5 array astore}bd -/setcustomcolor where{pop}{/setcustomcolor{ColorSeparationMode 0 eq{ -exch aload pop pop 4{4 index mul 4 1 roll}repeat -5 -1 roll pop setcmykcolor}{exch aload pop -CurrentInkName eq{4 index}{0}ifelse 6 1 roll -5{pop}repeat setsepcolor}ifelse}bd}ifelse/colorimage where{pop}{ -/colorimage{pop pop pop pop pop{currentfile $dat readhexstring pop pop} -repeat pop}bd}ifelse/@tc{dup 1 ge{pop}{4{dup -6 -1 roll mul exch}repeat pop}ifelse}bd/@scc{1 eq setoverprint -dup _ eq{pop setprocesscolor pop}{findcmykcustomcolor -exch setcustomcolor}ifelse ColorSeparationMode 0 eq{true}{ -currentgray 1 eq currentoverprint and not}ifelse}bd -/@sft{/$tx $tllx $pxf add dup $tllx gt{$pwid sub}if def -/$ty $tury $pyf sub dup $tury lt{$phei add}if def}bd -/@stb{pathbbox/$ury xd/$urx xd/$lly xd/$llx xd}bd -/@ep{{cvx exec}forall}bd/@tp{@sv/$in true def -2 copy dup $lly le{/$in false def}if $phei sub $ury ge{/$in false def}if -dup $urx ge{/$in false def}if $pwid add $llx le{/$in false def}if -$in{@np 2 copy m $pwid 0 rl 0 $phei neg rl $pwid neg 0 rl -0 $phei rl clip @np $pn cvlit load aload pop -7 -1 roll 5 index sub 7 -1 roll 3 index sub translate -/$ctm matrix currentmatrix def @ep pop pop pop pop}{pop pop}ifelse -@rs}bd/@th{@sft 0 1 $tly 1 sub{dup $psx mul $tx add{ -dup $llx gt{$pwid sub}{exit}ifelse}loop exch $phei mul $ty exch sub -0 1 $tlx 1 sub{$pwid mul 3 copy 3 -1 roll add exch -@tp pop}for pop pop}for}bd/@tv{@sft 0 1 $tlx 1 sub{dup $pwid mul $tx add -exch $psy mul $ty exch sub{dup $ury lt{$phei add}{exit}ifelse}loop -0 1 $tly 1 sub{$phei mul 3 copy sub @tp pop}for -pop pop}for}bd/@pf{@gs $ctm setmatrix $pm concat -@stb eoclip Bburx Bbury $pm itransform/$tury xd/$turx xd -Bbllx Bblly $pm itransform/$tlly xd/$tllx xd -/$wid $turx $tllx sub def/$hei $tury $tlly sub def -@gs $vectpat{1 0 0 0 0 _ $o @scc{eofill}if}{$t $c $m $y $k $n $o @scc{ -$tllx $tlly translate $wid $hei scale <00> 8 1 false [ 8 0 0 1 0 0 ]{}imagemask -/$bkg true def}if}ifelse @gr $wid 0 gt $hei 0 gt and{ -$pn cvlit load aload pop/$pd xd 3 -1 roll sub/$phei xd -exch sub/$pwid xd/$tlx $wid $pwid div ceiling 1 add def -/$tly $hei $phei div ceiling 1 add def $psx 0 eq{@tv}{@th}ifelse}if -@gr @np/$bkg false def}bd/@dlt{ColorSeparationMode 0 eq{ -/$dc $toc $tot mul $frc $frt mul dup/$c xd sub $fst 1 sub div def -/$dm $tom $tot mul $frm $frt mul dup/$m xd sub $fst 1 sub div def -/$dy $toy $tot mul $fry $frt mul dup/$y xd sub $fst 1 sub div def -/$dk $tok $tot mul $frk $frt mul dup/$k xd sub $fst 1 sub div def -true}{$frt $frc $frm $fry $frk $frn $o @scc -dup{/$frk 1 currentgray sub def}{/$frk 0 def}ifelse -$tot $toc $tom $toy $tok $ton $o @scc dup{/$tok 1 currentgray sub def}{ -/$tok 0 def}ifelse or dup{/$c 0 def/$m 0 def/$y 0 def/$k $frk def -/$dc 0 def/$dm 0 def/$dy 0 def/$dk $tok $frk sub $fst 1 sub div def}if -}ifelse}bd/@ftl{1 index 4 index sub dup $pad mul dup/$pdw xd -2 mul sub $fst div/$wid xd 2 index sub/$hei xd -pop translate $c $m $y $k 4 copy ColorSeparationMode 0 ne -{1 exch sub setgray pop pop pop}{setcmykcolor}ifelse -0 0 moveto 0 $hei lineto $pdw $hei lineto $pdw 0 lineto 0 0 lineto fill -$pdw 0 translate $fst{4 copy ColorSeparationMode 0 ne -{1 exch sub setgray pop pop pop}{setcmykcolor}ifelse -0 0 moveto 0 $hei lineto $wid $hei lineto $wid 0 lineto 0 0 lineto fill -$wid 0 translate $dk add 4 1 roll $dy add 4 1 roll -$dm add 4 1 roll $dc add 4 1 roll}repeat $dk sub 4 1 roll -$dy sub 4 1 roll $dm sub 4 1 roll $dc sub 4 1 roll -ColorSeparationMode 0 ne{1 exch sub setgray pop pop pop} -{setcmykcolor}ifelse 0 0 moveto 0 $hei lineto $pdw $hei lineto $pdw 0 lineto 0 0 lineto fill -}bd/@ftr{1 index 4 index sub dup $rox mul/$row xd -2 div 1 index 4 index sub dup $roy mul/$roh xd -2 div 2 copy dup mul exch dup mul add sqrt -$row dup mul $roh dup mul add sqrt add dup/$hei xd $fst div/$wid xd -4 index add $roh add exch 5 index add $row add -exch translate pop pop pop pop currentflat dup 5 mul setflat -$c $m $y $k 4 copy ColorSeparationMode 0 ne -{1 exch sub setgray pop pop pop}{setcmykcolor}ifelse -$wid 0 moveto 0 0 $hei 0 360 arc fill 1.0 $pad 2 mul sub dup scale -$fst{4 copy ColorSeparationMode 0 ne{1 exch sub setgray pop pop pop} -{setcmykcolor}ifelse $wid 0 moveto 0 0 $hei 0 360 arc fill -/$hei $hei $wid sub def $dk add 4 1 roll $dy add 4 1 roll -$dm add 4 1 roll $dc add 4 1 roll}repeat pop pop pop pop -setflat}bd/@ff{@gs @dlt{$ctm setmatrix eoclip -newpath Bbllx Bblly moveto Bbllx Bbury lineto -Bburx Bbury lineto Bburx Bblly lineto $fan rotate -pathbbox newpath $fty 1 eq{@ftr}{@ftl}ifelse}if -@gr @np}bd/@Pf{@sv ColorSeparationMode 0 eq $ink 3 eq or{0 J 0 j [] 0 d -$t $c $m $y $k $n $o @scc pop $ctm setmatrix -72 1000 div dup matrix scale dup concat dup Bburx exch Bbury exch itransform -ceiling cvi/Bbury xd ceiling cvi/Bburx xd Bbllx exch Bblly exch itransform -floor cvi/Bblly xd floor cvi/Bbllx xd $Prm aload pop -$Psn load exec}{1 setgray eofill}ifelse @rs -@np}bd/g{1 exch sub/$k xd/$c 0 def/$m 0 def/$y 0 def/$t 1 def/$n _ def/$fil 0 def -}bd/G{1 exch sub/$K xd/$C 0 def/$M 0 def/$Y 0 def/$T 1 def/$N _ def}bd -/k{/$k xd/$y xd/$m xd/$c xd/$t 1 def/$n _ def/$fil 0 def}bd -/K{/$K xd/$Y xd/$M xd/$C xd/$T 1 def/$N _ def}bd -/x{/$t xd/$n xd/$k xd/$y xd/$m xd/$c xd/$fil 0 def}bd -/X{/$T xd/$N xd/$K xd/$Y xd/$M xd/$C xd}bd -/d/setdash ld/i{dup 0 ne{setflat}{pop}ifelse}bd -/j/setlinejoin ld/J/setlinecap ld/M/setmiterlimit ld -/w/setlinewidth ld/O{/$o xd}bd/R{/$O xd}bd -/c/curveto ld/C/c ld/v{4 -2 roll 2 copy 6 -2 roll curveto}bd -/V/v ld/y{2 copy curveto}bd/Y/y ld/l/lineto ld -/L/l ld/rl/rlineto ld/m/moveto ld/n/newpath ld -/N/newpath ld/F{matrix currentmatrix $sdf{$scf $sca $scp @ss}if -$fil 1 eq{@pf}{$fil 2 eq{@ff}{$fil 3 eq{@Pf}{$t $c $m $y $k $n $o @scc -{eofill}{@np}ifelse}ifelse}ifelse}ifelse $sdf{$dsf $dsa $dsp @ss}if -setmatrix}bd/f{@cp F}bd/S{matrix currentmatrix -$ctm setmatrix $SDF{$SCF $SCA $SCP @ss}if $T $C $M $Y $K $N $O @scc{ -matrix currentmatrix $ptm concat stroke setmatrix}{@np}ifelse -$SDF{$dsf $dsa $dsp @ss}if setmatrix}bd/s{@cp -S}bd/B{@gs F @gr S}bd/b{@cp B}bd/W{eoclip}bd -/p{/$pm xd 7{pop}repeat/$pyf xd/$pxf xd/$pn xd -/$fil 1 def}bd/P{11{pop}repeat}bd/u{}bd/U{}bd -/A{pop}bd/q/@gs ld/Q/@gr ld/E{5 array astore -exch cvlit exch def}bd/`{}bd/~{}bd/@{}bd/&{}bd -/CorelDrawReencodeVect [ 16#82/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl -16#88/circumflex/perthousand/Scaron/guilsinglleft/OE -16#91/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash/emdash -16#98/tilde/trademark/scaron/guilsinglright/oe -16#9F/Ydieresis 16#A1/exclamdown/cent/sterling/currency/yen/brokenbar/section -16#a8/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/minus/registered/macron -16#b0/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered -16#b8/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown -16#c0/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla -16#c8/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis -16#d0/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply -16#d8/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls -16#e0/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla -16#e8/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis -16#f0/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide -16#f8/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis -] def/@cc{currentfile $dat readhexstring pop}bd -/@sm{/$ctm $ctm currentmatrix def}bd/@E{/Bbury xd/Bburx xd -/Bblly xd/Bbllx xd}bd/@c{@cp}bd/@p{/$fil 1 def -1 eq/$vectpat xd/$pm xd/$psy xd/$psx xd/$pyf xd/$pxf xd -/$pn xd}bd/@P{/$fil 3 def/$Psn xd array astore -/$Prm xd}bd/@k{/$fil 2 def/$roy xd/$rox xd/$pad xd -/$fty xd/$fan xd $fty 1 eq{/$fan 0 def}if/$tok xd/$toy xd/$tom xd/$toc xd -/$frk xd/$fry xd/$frm xd/$frc xd/$frn _ def/$frt 1 def/$ton _ def/$tot 1 def -}bd/@x{/$fil 2 def/$roy xd/$rox xd/$pad xd -/$fty xd/$fan xd/$tot xd/$ton xd/$tok xd/$toy xd/$tom xd/$toc xd -/$frt xd/$frn xd/$frk xd/$fry xd/$frm xd/$frc xd}bd -/@ii{concat 3 index 3 index m 3 index 1 index l -2 copy l 1 index 3 index l 3 index 3 index l -clip pop pop pop pop}bd/@i{@sm @gs @ii 6 index 1 ne{/$frg true def -pop pop}{1 eq{$T $C $M $Y $K $N $O @scc/$frg xd}{/$frg false def -}ifelse 1 eq{@gs $ctm setmatrix $t $c $m $y $k $n $o @scc{eofill}if -@gr}if}ifelse/$frg $frg $bkg or def @np/$ury xd/$urx xd/$lly xd/$llx xd -/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul 8 div ceiling cvi string def -$frg{$SDF{$SCF $SCA $SCP @ss}if $llx $lly translate -$urx $llx sub $ury $lly sub scale $wid $hei abs -$bts 1 eq{false}{$bts}ifelse [ $wid 0 0 $hei neg 0 -$hei 0 gt{$hei}{0}ifelse]/@cc load $bts 1 eq{imagemask}{image}ifelse -$SDF{$dsf $dsa $dsp @ss}if}{$hei abs{@cc pop}repeat}ifelse -@gr $ctm setmatrix}def/@M{@sv}bd/@N{/@cc{}def -1 eq{12 -1 roll neg 12 1 roll @I}{13 -1 roll neg 13 1 roll -@i}ifelse @rs}bd/@I{@sm @gs @ii @np/$ury xd/$urx xd/$lly xd/$llx xd -/$ncl xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul $ncl mul 8 div ceiling cvi string def -$llx $lly translate $urx $llx sub $ury $lly sub scale -$wid $hei abs $bts [ $wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse] -/@cc load false $ncl colorimage @gr $ctm setmatrix}bd -/z{exch findfont exch scalefont setfont}bd -/ZB{9 dict dup begin 4 1 roll/FontType 3 def -/FontMatrix xd/FontBBox xd/Encoding 256 array def -0 1 255{Encoding exch/.notdef put}for/CharStrings 256 dict def -CharStrings/.notdef{}put/Metrics 256 dict def -Metrics/.notdef 3 -1 roll put/BuildChar{exch -dup/$char exch/Encoding get 3 index get def -dup/Metrics get $char get aload pop setcachedevice -begin Encoding exch get CharStrings exch get -end exec}def end definefont pop}bd/ZBAddChar{findfont begin -dup 4 1 roll dup 6 1 roll Encoding 3 1 roll put -CharStrings 3 1 roll put Metrics 3 1 roll put -end}bd/Z{findfont dup maxlength 2 add dict exch -dup{1 index/FID ne{3 index 3 1 roll put}{pop pop}ifelse}forall -pop dup dup/Encoding get 256 array copy dup/$fe xd -/Encoding exch put dup/Fontname 3 index put -3 -1 roll dup length 0 ne{0 exch{dup type 0 type eq{exch pop}{ -$fe exch 2 index exch put 1 add}ifelse}forall -pop}if dup 256 dict dup/$met xd/Metrics exch put -dup/FontMatrix get 0 get 1000 mul 1 exch div -3 index length 256 eq{0 1 255{dup $fe exch get -dup/.notdef eq{pop pop}{5 index 3 -1 roll get -2 index mul $met 3 1 roll put}ifelse}for}if -pop definefont pop pop}bd/@ftx{{currentpoint 3 -1 roll -(0) dup 3 -1 roll 0 exch put dup @gs true charpath -$ctm setmatrix @@txt @gr @np stringwidth pop 3 -1 roll add exch moveto -}forall}bd/@ft{matrix currentmatrix exch $sdf{$scf $sca $scp @ss}if -$fil 1 eq{/@@txt/@pf ld @ftx}{$fil 2 eq{/@@txt/@ff ld @ftx}{$fil 3 eq -{/@@txt/@Pf ld @ftx}{$t $c $m $y $k $n $o @scc{show}{pop}ifelse}ifelse -}ifelse}ifelse $sdf{$dsf $dsa $dsp @ss}if setmatrix}bd -/@st{matrix currentmatrix exch $SDF{$SCF $SCA $SCP @ss}if -$T $C $M $Y $K $N $O @scc{{currentpoint 3 -1 roll -(0) dup 3 -1 roll 0 exch put dup @gs true charpath -$ctm setmatrix $ptm concat stroke @gr @np stringwidth pop 3 -1 roll add exch moveto -}forall}{pop}ifelse $SDF{$dsf $dsa $dsp @ss}if -setmatrix}bd/@te{@ft}bd/@tr{@st}bd/@ta{dup -@gs @ft @gr @st}bd/@t@a{dup @gs @st @gr @ft}bd -/@tm{/$textsave save def @sm concat}bd/e{/t{@te}def}bd -/r{/t{@tr}def}bd/o{/t{pop}def}bd/a{/t{@ta}def}bd -/@a{/t{@t@a}def}bd/t{@te}def/T{@np $ctm setmatrix -/$ttm matrix def $textsave restore}bd/@t{/$stm $stm currentmatrix def -3 1 roll moveto $ttm concat t $stm setmatrix}def -/@n{/$ttm exch matrix rotate def}bd/@s{}bd -/@l{}bd/@B{@gs S @gr F}bd/@b{@cp @B}bd/@w{matrix rotate/$ptm xd -matrix scale $ptm dup concatmatrix/$ptm xd -1 eq{$ptm exch dup concatmatrix/$ptm xd}if -1 w}bd/@g{1 eq dup/$sdf xd{/$scp xd/$sca xd -/$scf xd}if}bd/@G{1 eq dup/$SDF xd{/$SCP xd -/$SCA xd/$SCF xd}if}bd/@D{3 copy @ss/$dsp xd -/$dsa xd/$dsf xd}bd/@j{@sv @np}bind def/@J{@rs}bind def -/@sep{/ColorSeparationMode where{pop}{/ColorSeparationMode 0 def -/CurrentInkName (Composite) def}ifelse ColorSeparationMode 0 eq{ -/CurrentInkName (Composite) def}if/CurrentInkName where{pop}{ -/CurrentInkName (Composite) def}ifelse CurrentInkName (Composite) eq -{/$ink -1 def}{CurrentInkName (Cyan) eq{/$ink 0 def}{ -CurrentInkName (Magenta) eq{/$ink 1 def}{CurrentInkName (Yellow) eq -{/$ink 2 def}{CurrentInkName (Black) eq{/$ink 3 def}{/$ink 4 def -}ifelse}ifelse}ifelse}ifelse}ifelse}bd @sep -/@whi{@gs -72000 dup moveto -72000 72000 lineto -72000 dup lineto 72000 -72000 lineto closepath 1 setgray fill -@gr}bd/@neg{ [{1 exch sub}/exec cvx currenttransfer/exec cvx] cvx settransfer -@whi}bd/@reg{[] 0 d 0 setgray .3 setlinewidth -2 copy 5.4 0 360 arc closepath 2 copy moveto 9 0 rlineto -2 copy moveto -9 0 rlineto 2 copy moveto 0 9 rlineto -moveto 0 -9 rlineto stroke}bd/leftbracket{(\050)}def -/rightbracket{(\051)}def - -%%EndProlog -%%BeginSetup -11.4737 setmiterlimit -1.00 setflat -/$fst 128 def - -%%EndSetup -@sv -/$ctm matrix currentmatrix def -@sv -%%Note: Object -188.06 385.92 440.57 527.47 @E - 0 O 0 @g -0.20 0.10 0.00 0.00 k -%%CURV 5 -188.06 527.47 m -440.57 527.47 L -439.20 385.92 L -192.17 396.86 L -188.06 527.47 L -@c -F -%%Note: Object -216.00 452.23 288.86 468.65 @E - 0 O 0 @g -0.00 0.00 0.00 0.05 k -%%CURV 24 -216.00 465.91 m -216.00 465.91 228.24 463.18 231.62 465.91 c -235.08 468.65 252.07 465.91 252.07 465.91 c -252.07 465.91 260.21 461.81 265.68 461.81 c -271.15 461.81 284.76 460.37 284.76 460.37 c -288.86 453.53 l -288.86 453.53 284.11 452.88 277.92 452.88 c -271.80 452.88 252.72 452.23 252.72 452.23 c -236.38 452.23 L -226.15 458.35 L -218.02 460.37 L -216.00 465.91 L -@c -F -%%Note: Object -223.49 392.04 439.92 439.85 @E - 0 O 0 @g -0.00 0.00 0.00 0.10 k -%%CURV 20 -356.11 425.52 m -354.82 439.85 L -338.47 430.99 L -324.86 429.62 L -304.42 430.34 L -295.63 427.61 L -258.19 428.26 L -241.13 428.26 L -223.49 426.17 L -228.96 420.77 L -260.21 421.42 L -294.98 421.42 L -301.03 423.50 L -319.39 423.50 L -318.74 417.38 L -326.88 416.74 L -439.92 392.04 L -439.20 411.91 L -425.59 413.93 L -356.11 425.52 L -@c -F -%%Note: Object -413.78 461.88 439.92 506.23 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.80 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.60 0.60 0.00 k -%%CURV 6 -439.92 506.23 m -413.78 506.23 L -413.78 501.70 L -431.35 461.88 L -439.92 468.72 L -439.92 506.23 L -@c -B -%%Note: Object -385.85 414.00 427.32 483.62 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.60 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.10 0.10 0.00 k -%%CURV 7 -385.85 478.66 m -389.95 482.69 L -400.75 483.62 L -427.32 462.82 L -426.89 414.00 L -389.02 420.34 L -385.85 478.66 L -@c -B -%%Note: Object -322.99 428.69 340.63 446.26 @E - 0 O 0 @g -0.50 0.00 0.50 0.50 k -%%CURV 40 -332.28 446.26 m -332.28 446.26 329.98 445.39 329.11 443.09 c -328.25 440.78 326.38 438.62 326.38 438.62 c -326.38 438.62 324.86 437.47 324.00 434.88 c -323.21 432.36 322.99 432.14 322.99 431.06 c -322.99 429.98 323.21 429.19 324.43 429.41 c -325.73 429.55 326.81 430.63 326.81 430.63 c -329.33 429.84 l -329.33 429.84 329.90 429.62 331.42 430.85 c -332.86 432.14 333.29 434.52 333.72 433.22 c -334.15 431.93 333.94 432.58 334.73 431.06 c -335.59 429.55 337.03 428.98 338.11 429.41 c -339.19 429.84 338.47 428.69 339.55 430.20 c -340.63 431.71 339.19 435.74 339.19 435.74 c -336.24 445.39 L -332.28 446.26 L -@c -F -%%Note: Object -325.51 428.04 361.44 475.92 @E - 0 O 0 @g -0.60 0.00 0.60 0.40 k -%%CURV 42 -357.19 445.82 m -361.44 445.82 352.58 438.84 348.55 436.61 c -344.45 434.30 342.65 428.04 338.11 433.87 c -333.65 439.70 338.54 445.61 334.51 446.04 c -330.48 446.54 331.85 445.18 328.68 446.54 c -325.51 447.84 326.45 453.31 326.45 453.31 c -326.45 453.31 329.98 458.71 331.42 461.88 c -332.78 465.05 331.42 465.91 331.85 468.22 c -332.28 470.52 335.02 472.32 335.02 472.32 c -344.02 471.82 L -346.25 475.78 l -346.25 475.78 350.78 475.92 353.02 474.12 c -355.25 472.32 355.25 469.58 355.25 469.58 c -357.98 468.22 L -357.55 460.58 L -355.68 456.12 l -355.68 456.12 355.82 452.95 357.19 450.72 C -358.56 448.42 356.76 445.82 357.19 445.82 c -@c -F -%%Note: Object -154.87 359.28 227.88 448.34 @E - 0 O 0 @g -0.00 0.00 0.00 0.20 k -%%CURV 7 -155.38 448.34 m -217.94 442.01 L -221.98 427.97 L -227.88 421.63 L -211.68 402.26 L -154.87 359.28 L -155.38 448.34 L -@c -F -%%Note: Object -197.28 425.66 300.74 440.21 @E - 0 O 0 @g -0.60 0.00 0.60 0.40 k -%%CURV 65 -295.27 433.87 m -294.84 434.23 297.65 435.46 293.62 436.32 c -289.51 437.26 288.65 435.67 283.25 435.67 c -277.85 435.67 278.28 433.87 276.05 435.67 c -273.82 437.47 273.38 439.27 269.28 439.27 c -265.25 439.27 263.45 439.70 260.78 437.90 c -258.05 436.10 256.68 436.10 254.45 436.10 c -252.22 436.10 250.34 436.18 247.68 436.61 c -245.02 437.04 242.78 437.47 240.05 437.90 c -237.31 438.41 234.58 438.84 231.91 438.41 c -229.25 437.90 224.28 437.47 220.68 437.90 c -217.08 438.41 214.34 440.21 211.18 438.41 c -208.08 436.61 203.11 436.61 203.11 436.61 c -198.14 435.67 L -199.08 428.90 l -199.08 428.90 197.28 426.60 203.54 426.60 c -209.88 426.60 212.98 426.60 218.88 426.60 c -224.71 426.60 223.42 425.66 230.11 427.03 c -236.88 428.47 240.98 428.47 245.88 428.47 c -250.85 428.47 254.88 427.97 259.85 427.97 c -264.82 427.97 266.62 427.97 272.02 427.97 c -277.42 427.97 279.22 427.54 290.02 427.54 c -300.74 427.54 300.74 428.90 300.74 428.90 c -299.88 433.37 L -295.27 433.87 L -@c -F -%%Note: Object -154.87 380.95 228.31 427.03 @E - 0 O 0 @g -0.00 0.00 0.00 0.50 k -%%CURV 8 -159.84 411.26 m -181.51 422.14 L -200.38 426.60 L -224.28 427.03 L -228.31 422.57 L -203.54 418.54 L -154.87 380.95 L -159.84 411.26 L -@c -F -%%Note: Object -154.73 314.06 260.78 423.00 @E - 0 O 0 @g -0.00 0.50 0.80 0.20 k -%%CURV 17 -259.85 421.20 m -260.78 398.23 L -227.88 397.30 L -220.25 351.14 L -190.80 314.06 L -154.73 314.06 L -154.87 362.88 l -154.87 362.88 178.78 380.09 190.08 387.79 c -201.31 395.50 224.28 417.60 226.51 420.34 c -228.74 423.00 231.48 421.20 231.48 421.20 C -259.85 421.20 L -@c -F -%%Note: Object -229.25 398.23 259.85 420.77 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.80 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.30 0.60 0.40 k -%%RECT 56.088 -41.400 0.000 -229.25 420.77 m -259.85 420.77 L -259.85 398.23 L -229.25 398.23 L -229.25 420.77 L -@c -B -%%Note: Object -271.22 374.90 272.59 384.19 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.00 K -0 2.23 2.23 0.00 @w -%%CURV 2 -272.59 384.19 m -271.22 374.90 L -S -%%Note: Object -191.23 313.85 421.34 420.77 @E - 0 O 0 @g -0.10 0.05 0.00 0.00 k -%%CURV 12 -420.48 314.57 m -421.34 358.92 L -312.84 395.35 L -303.26 394.20 L -298.15 399.31 L -294.84 420.77 L -258.84 420.26 L -259.92 399.31 L -268.92 353.45 L -209.59 351.58 L -191.23 313.85 L -420.48 314.57 L -@c -F -%%Note: Object -189.65 314.06 322.34 353.09 @E - 0 O 0 @g -1.00 0.80 0.00 0.00 k -%%CURV 16 -209.16 353.09 m -267.98 350.21 L -307.94 338.90 l -307.94 338.90 277.42 330.84 299.88 327.67 c -322.34 324.43 312.91 324.00 306.65 320.40 c -300.31 316.80 272.95 314.06 267.48 314.06 c -262.08 314.06 189.65 314.06 189.65 314.06 C -209.16 353.09 L -@c -F -%%Note: Object -300.96 431.06 303.77 470.59 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 1.00 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.30 1.00 0.00 k -%%RECT 5.040 -73.800 0.000 -300.96 470.59 m -303.77 470.59 L -303.77 431.06 L -300.96 431.06 L -300.96 470.59 L -@c -B -%%Note: Object -262.66 467.86 334.37 474.05 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.70 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.30 1.00 0.00 k -%%CURV 5 -263.16 474.05 m -334.37 471.53 L -330.41 467.86 L -262.66 470.30 L -263.16 474.05 L -@c -B -%%Note: Object -261.65 472.54 346.18 479.74 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.70 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.10 1.00 0.00 k -%%CURV 5 -261.65 479.74 m -346.18 475.27 L -343.94 472.54 L -262.15 475.99 L -261.65 479.74 L -@c -B -%%Note: Object -303.77 423.07 307.80 476.86 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 1.00 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.10 1.00 0.00 k -%%RECT 7.416 -75.024 0.000 -303.77 476.86 m -307.80 476.86 L -307.80 423.07 L -303.77 423.07 L -303.77 476.86 L -@c -B -%%Note: Object -258.77 422.14 266.26 478.30 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.30 0.60 0.40 K -0 2.23 2.23 0.00 @w -%%CURV 2 -266.26 478.30 m -258.77 422.14 L -S -%%Note: Object -256.75 429.62 263.59 472.82 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.30 0.60 0.40 K -0 2.23 2.23 0.00 @w -%%CURV 2 -263.59 472.82 m -256.75 429.62 L -S -%%Note: Object -307.73 442.30 317.38 463.61 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 1.00 K -0 0.86 0.86 0.00 @w -%%CURV 2 -307.73 463.61 m -317.38 442.30 L -S -%%Note: Object -307.51 437.33 317.09 453.17 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 1.00 K -0 0.86 0.86 0.00 @w -%%CURV 2 -307.51 453.17 m -317.09 437.33 L -S -%%Note: Object -316.58 427.90 322.99 443.74 @E - 0 O 0 @g -1.00 0.80 0.00 0.00 k -%%RECT 11.736 -29.016 0.000 -316.58 443.74 m -322.99 443.74 L -322.99 427.90 L -316.58 427.90 L -316.58 443.74 L -@c -F -%%Note: Object -307.22 428.90 316.58 436.10 @E - 0 O 0 @g -1.00 0.60 0.00 0.00 k -%%RECT 17.136 -13.176 0.000 -307.22 436.10 m -316.58 436.10 L -316.58 428.90 L -307.22 428.90 L -307.22 436.10 L -@c -F -%%Note: Object -255.89 430.42 303.05 430.92 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.30 0.60 0.40 K -0 0.86 0.86 0.00 @w -%%CURV 2 -255.89 430.92 m -303.05 430.42 L -S -%%Note: Object -257.98 426.46 304.56 426.67 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.30 0.60 0.40 K -0 2.02 2.02 0.00 @w -%%CURV 2 -257.98 426.46 m -304.56 426.67 L -S -%%Note: Object -256.25 420.77 300.82 422.71 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 1.00 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.30 0.60 0.40 k -%%RECT 81.792 -3.600 0.000 -256.25 422.71 m -300.82 422.71 L -300.82 420.77 L -256.25 420.77 L -256.25 422.71 L -@c -B -%%Note: Object -244.44 430.92 246.17 471.02 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.70 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.00 0.00 0.00 k -%%RECT 2.736 -73.512 0.000 -244.44 471.02 m -246.17 471.02 L -246.17 430.92 L -244.44 430.92 L -244.44 471.02 L -@c -B -%%Note: Object -315.86 405.22 318.10 407.88 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 1.00 K -0 0.86 0.86 0.00 @w -%%RECT 4.104 -4.968 0.000 -315.86 407.88 m -318.10 407.88 L -318.10 405.22 L -315.86 405.22 L -315.86 407.88 L -@c -S -%%Note: Object -301.32 400.97 303.05 417.10 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 1.00 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.50 0.80 0.20 k -%%RECT 3.168 -29.448 0.000 -301.32 417.10 m -303.05 417.10 L -303.05 400.97 L -301.32 400.97 L -301.32 417.10 L -@c -B -%%Note: Object -302.54 400.68 304.27 417.60 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 1.00 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.30 0.60 0.40 k -%%RECT 3.168 -30.888 0.000 -302.54 417.60 m -304.27 417.60 L -304.27 400.68 L -302.54 400.68 L -302.54 417.60 L -@c -B -%%Note: Object -295.20 400.25 301.10 420.55 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.80 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.30 0.60 0.40 k -%%RECT 10.872 -37.224 0.000 -295.20 420.55 m -301.10 420.55 L -301.10 400.25 L -295.20 400.25 L -295.20 420.55 L -@c -B -%%Note: Object -295.49 394.20 315.22 401.18 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.70 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -1.00 0.25 0.00 0.00 k -%%CURV 5 -295.49 401.18 m -307.58 401.18 L -315.22 394.99 L -297.22 394.20 L -295.49 401.18 L -@c -B -%%Note: Object -300.53 400.97 319.10 423.22 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.60 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.60 1.00 0.00 k -%%CURV 7 -300.53 423.22 m -319.10 423.22 L -319.10 416.09 L -316.80 416.09 L -306.94 400.97 L -301.32 400.97 L -300.53 423.22 L -@c -B -%%Note: Object -306.43 343.66 439.92 417.31 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.30 0.60 0.40 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.50 1.00 0.00 k -%%CURV 15 -439.92 391.39 m -317.09 417.31 L -306.43 401.69 L -314.57 395.50 l -314.57 395.50 319.39 392.76 329.62 387.29 c -339.84 381.82 341.86 384.55 346.61 380.45 c -351.36 376.34 369.65 375.05 369.65 375.05 c -439.63 343.66 L -439.92 391.39 L -@c -B -%%Note: Object -155.38 429.62 222.98 527.47 @E - 0 O 0 @g -0.70 0.00 0.70 0.10 k -%%CURV 33 -194.18 527.47 m -201.67 527.47 191.02 515.59 194.40 508.82 c -197.78 501.98 195.05 507.46 201.89 500.62 c -208.66 493.78 213.41 491.76 213.41 486.29 c -213.41 480.82 213.41 479.45 214.13 472.61 c -214.78 465.77 218.81 458.93 219.53 454.82 c -220.25 450.79 222.98 447.34 220.25 443.95 c -217.51 440.57 216.79 440.57 206.64 440.57 c -196.49 440.57 196.49 443.30 187.63 438.48 c -178.78 433.73 179.50 429.62 172.66 433.73 c -165.89 437.76 155.66 441.22 155.66 441.22 c -155.38 527.47 L -194.18 527.47 L -@c -F -%%Note: Object -208.87 338.18 276.41 368.64 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.80 K -0 1.44 1.44 0.00 @w - 0 O 0 @g -1.00 0.50 0.00 0.00 k -%%CURV 30 -276.41 364.90 m -276.41 364.90 275.76 365.47 274.25 362.38 c -272.66 359.21 272.66 357.34 269.86 352.94 c -267.05 348.48 268.27 349.49 264.53 345.67 c -260.71 341.93 263.38 345.38 258.34 341.93 c -253.30 338.47 248.26 339.34 243.79 339.70 c -239.40 339.98 230.62 338.18 226.87 340.34 c -223.13 342.58 221.90 343.51 219.74 347.26 c -217.58 351.00 217.58 351.00 215.71 354.46 c -213.84 357.91 213.34 361.58 212.26 363.31 c -208.87 368.64 L -276.41 364.90 L -@c -B -%%Note: Object -354.53 420.26 388.87 480.10 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 1.00 K -0 0.86 0.86 0.00 @w -%%CURV 5 -356.04 469.87 m -354.53 425.81 L -388.87 420.26 L -387.29 480.10 L -356.04 469.87 L -@c -S -%%Note: Object -356.76 473.26 400.90 502.63 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.80 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.75 0.75 0.00 k -%%CURV 5 -400.90 502.63 m -377.06 490.32 L -356.76 473.26 L -384.55 483.55 L -400.90 502.63 L -@c -B -%%Note: Object -384.98 482.83 428.76 501.98 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.80 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.60 0.60 0.00 k -%%CURV 4 -400.25 501.98 m -384.98 483.62 L -428.76 482.83 L -400.25 501.98 L -@c -B -%%Note: Object -384.62 434.45 436.90 507.38 @E - 0 O 0 @g -0.70 0.00 0.70 0.00 k -%%CURV 40 -409.75 435.10 m -406.30 435.10 407.02 434.45 402.26 438.48 c -397.51 442.58 396.79 439.20 393.41 448.06 c -390.02 456.91 388.01 454.18 388.66 461.66 c -389.30 469.22 384.62 468.50 390.02 476.06 c -395.42 483.55 394.13 479.45 399.53 487.66 c -405.00 495.79 404.28 498.53 409.03 499.90 c -413.78 501.26 412.49 507.38 418.61 499.90 c -424.66 492.41 425.30 487.58 430.06 486.94 c -434.88 486.29 436.25 488.95 436.25 480.82 c -436.25 472.61 436.90 467.86 431.50 462.38 c -426.02 456.91 421.27 458.28 420.55 450.07 c -419.90 441.86 420.55 437.83 417.17 437.11 C -413.78 436.39 409.75 435.10 409.75 435.10 c -@c -F -%%Note: Object -424.66 313.63 430.78 365.47 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 1.00 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.50 0.80 0.20 k -%%RECT 11.232 -94.968 0.000 -424.66 365.47 m -430.78 365.47 L -430.78 313.63 L -424.66 313.63 L -424.66 365.47 L -@c -B -%%Note: Object -244.58 465.84 246.02 471.02 @E - 0 O 0 @g -0.00 0.90 0.90 0.10 k -%%RECT 2.664 -9.576 0.000 -244.58 471.02 m -246.02 471.02 L -246.02 465.84 L -244.58 465.84 L -244.58 471.02 L -@c -F -%%Note: Object -244.58 455.47 246.02 460.66 @E - 0 O 0 @g -0.00 0.90 0.90 0.10 k -%%RECT 2.664 -9.576 0.000 -244.58 460.66 m -246.02 460.66 L -246.02 455.47 L -244.58 455.47 L -244.58 460.66 L -@c -F -%%Note: Object -244.58 445.25 246.02 450.43 @E - 0 O 0 @g -0.00 0.90 0.90 0.10 k -%%RECT 2.664 -9.576 0.000 -244.58 450.43 m -246.02 450.43 L -246.02 445.25 L -244.58 445.25 L -244.58 450.43 L -@c -F -%%Note: Object -244.58 435.96 246.02 441.14 @E - 0 O 0 @g -0.00 0.90 0.90 0.10 k -%%RECT 2.664 -9.576 0.000 -244.58 441.14 m -246.02 441.14 L -246.02 435.96 L -244.58 435.96 L -244.58 441.14 L -@c -F -%%Note: Object -353.38 468.29 390.02 482.98 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 1.00 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.10 1.00 0.00 k -%%CURV 7 -357.34 473.98 m -354.53 473.98 L -353.38 468.29 L -387.22 480.17 L -390.02 482.98 L -384.34 482.98 L -357.34 473.98 L -@c -B -%%Note: Object -356.11 420.77 389.52 479.59 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.20 K -0 0.22 0.22 0.00 @w - 0 O 0 @g -0.00 0.00 0.30 0.00 k -%%CURV 5 -386.14 479.59 m -389.52 420.77 L -356.11 425.52 L -356.83 468.65 L -386.14 479.59 L -@c -B -%%Note: Object -368.42 458.35 371.81 470.66 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.70 K -0 0.86 0.86 0.00 @w -%%CURV 5 -368.42 469.30 m -368.42 458.35 L -371.81 459.07 L -371.16 470.66 L -368.42 469.30 L -@c -S -%%Note: Object -373.75 421.42 384.77 446.04 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.60 K -0 1.44 1.44 0.00 @w -%%CURV 5 -373.90 446.04 m -373.75 422.86 L -384.77 421.42 L -384.12 446.04 L -373.90 446.04 L -@c -S -%%Note: Object -350.06 430.34 378.65 466.42 @E - 0 O 0 @g -0.80 0.00 0.80 0.20 k -%%CURV 25 -366.34 431.64 m -371.16 435.10 373.82 430.34 375.19 439.20 c -376.56 448.13 378.65 450.86 375.91 454.25 c -373.18 457.70 367.06 459.07 367.06 459.07 c -367.06 459.07 367.70 465.26 362.30 462.46 c -356.83 459.72 350.06 466.42 350.06 458.93 c -350.06 451.37 354.10 448.13 357.55 444.67 c -360.94 441.29 360.22 440.57 361.58 437.18 C -362.95 433.73 366.34 431.64 366.34 431.64 c -@c -F -%%Note: Object -405.86 405.07 411.34 435.10 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.30 0.60 0.40 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.30 0.60 0.40 k -%%RECT 9.936 -55.080 0.000 -405.86 435.10 m -411.34 435.10 L -411.34 405.07 L -405.86 405.07 L -405.86 435.10 L -@c -B -%%Note: Object -209.16 359.21 277.06 377.42 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.80 K -0 1.44 1.44 0.00 @w - 0 O 0 @g -0.40 0.15 0.00 0.00 k -%%CURV 29 -270.50 375.84 m -270.50 375.84 277.06 370.22 277.06 367.99 c -277.06 365.83 276.98 364.25 272.66 362.95 c -268.27 361.73 258.62 360.79 256.10 360.79 c -253.58 360.79 247.32 359.86 245.45 359.86 c -243.58 359.86 231.05 359.21 228.53 359.86 c -226.08 360.43 219.82 359.21 217.58 360.79 c -215.42 362.38 212.33 362.95 210.74 365.47 c -209.16 367.99 209.16 368.35 209.16 371.16 c -209.16 373.97 213.84 377.42 213.84 377.42 C -270.50 375.84 L -@c -B -%%Note: Object -217.37 363.60 270.29 396.50 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 1.00 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.20 0.10 0.00 0.00 k -%%CURV 25 -217.37 394.42 m -217.37 394.42 235.51 396.50 241.85 396.50 c -248.18 396.50 265.82 395.14 265.82 395.14 c -265.82 395.14 268.06 384.41 268.06 383.04 c -268.06 381.74 269.64 377.64 269.64 377.64 c -270.29 367.63 l -270.29 367.63 252.50 365.54 247.25 365.54 c -241.99 365.54 223.27 363.60 221.47 364.25 c -219.67 364.90 219.67 372.82 219.67 372.82 c -217.37 376.49 L -217.37 394.42 L -@c -B -%%Note: Object -220.10 381.53 239.18 392.54 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.60 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.00 0.00 0.00 k -%%CURV 22 -220.68 391.25 m -222.91 392.26 228.24 392.26 229.82 392.26 c -231.34 392.26 238.25 392.54 238.25 392.54 c -239.18 390.02 L -239.18 385.63 L -237.60 383.76 L -237.60 383.76 234.22 383.76 231.05 383.11 c -227.88 382.46 222.26 381.53 222.26 381.53 c -222.26 381.53 220.10 382.46 220.10 384.05 C -220.10 385.63 220.68 391.25 220.68 391.25 c -@c -B -%%Note: Object -245.16 383.40 263.30 392.83 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.60 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.00 0.00 0.00 k -%%CURV 21 -247.03 392.83 m -259.85 392.54 l -259.85 392.54 262.37 392.26 262.66 390.31 c -262.94 388.44 263.30 385.92 263.30 385.92 c -263.30 385.92 262.94 383.76 261.43 383.76 c -259.85 383.76 247.61 383.40 247.61 383.40 c -247.61 383.40 245.45 384.34 245.45 385.92 c -245.45 387.50 245.16 390.31 245.16 390.31 C -247.03 392.83 L -@c -B -%%Note: Object -247.03 367.70 264.82 374.33 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.60 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.00 0.00 0.00 k -%%CURV 16 -249.48 374.33 m -252.65 374.33 262.01 374.33 262.01 374.33 c -264.82 371.81 L -264.82 369.29 L -262.01 368.35 250.42 367.99 250.42 367.99 c -250.42 367.99 247.32 367.70 247.32 369.29 c -247.32 370.87 247.03 372.38 247.03 372.38 C -249.48 374.33 L -@c -B -%%Note: Object -223.20 366.12 242.35 373.03 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.60 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.00 0.00 0.00 k -%%CURV 13 -238.54 373.03 m -242.28 371.81 L -242.28 368.64 l -242.28 368.64 242.35 367.70 240.12 367.70 c -237.96 367.70 225.72 366.12 225.72 366.12 c -223.20 367.70 L -223.20 370.51 L -225.43 372.74 L -238.54 373.03 L -@c -B -%%Note: Object -219.38 372.82 269.64 379.66 @E -0 J 0 j [] 0 d 0 R 0 @G -1.00 0.30 0.00 0.00 K -0 2.23 2.23 0.00 @w -%%CURV 7 -219.38 372.82 m -224.64 376.06 235.22 379.66 242.28 379.44 c -249.26 379.22 265.97 378.29 269.64 374.47 C -S -%%Note: Object -217.58 394.20 265.82 400.39 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.80 K -0 1.44 1.44 0.00 @w - 0 O 0 @g -0.60 0.20 0.00 0.00 k -%%CURV 18 -265.82 395.14 m -259.92 399.46 l -259.92 399.46 249.98 400.39 247.90 400.39 c -245.88 400.39 235.94 400.39 235.94 400.39 c -228.24 400.39 L -222.34 397.87 L -217.58 394.92 L -218.95 394.20 l -218.95 394.20 233.42 396.50 241.34 396.29 C -249.26 396.07 265.61 395.14 265.82 395.14 C -@c -B -%%Note: Object -210.82 375.77 276.62 386.93 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.00 K -0 2.81 2.81 0.00 @w -%%CURV 40 -267.84 385.85 m -268.92 385.85 270.29 385.85 272.16 384.70 c -273.96 383.54 273.53 383.54 275.11 381.96 c -276.62 380.38 275.98 379.22 275.98 379.22 c -275.98 379.22 274.82 378.58 273.02 378.58 c -271.22 378.58 265.82 378.07 263.74 378.07 c -261.72 378.07 257.40 378.07 253.80 378.07 c -250.20 378.07 244.94 377.86 242.28 377.86 c -239.54 377.86 233.42 377.14 230.47 376.92 c -227.52 376.70 223.49 376.70 220.10 376.70 c -216.72 376.70 217.80 375.77 215.35 377.14 c -212.83 378.58 211.97 377.21 211.97 379.66 c -211.97 382.18 210.82 382.46 213.34 384.70 c -215.78 386.93 215.35 386.06 217.15 386.06 C -S -%%Note: Object -211.82 372.17 212.11 380.09 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.00 K -0 2.23 2.23 0.00 @w -%%CURV 2 -211.97 380.09 m -211.97 372.17 L -S -%%Note: Object -216.79 364.25 217.08 375.77 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.00 K -0 2.23 2.23 0.00 @w -%%CURV 2 -216.94 375.77 m -216.94 364.25 L -S -%%Note: Object -244.30 361.94 245.45 377.86 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.00 K -0 2.23 2.23 0.00 @w -%%CURV 2 -244.30 377.86 m -245.45 361.94 L -S -%%Note: Object -274.61 367.63 275.26 379.01 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.00 K -0 2.23 2.23 0.00 @w -%%CURV 2 -275.26 379.01 m -274.61 367.63 L -S -%%Note: Object -214.92 379.01 216.00 385.85 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.00 K -0 2.23 2.23 0.00 @w -%%CURV 2 -214.92 385.85 m -216.00 379.01 L -S -%%Note: Object -268.56 380.38 268.85 385.56 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.00 K -0 2.23 2.23 0.00 @w -%%CURV 2 -268.70 385.56 m -268.70 380.38 L -S -%%Note: Object -238.61 400.10 238.90 407.38 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.00 K -0 2.81 2.81 0.00 @w -%%CURV 2 -238.61 400.10 m -238.90 407.38 L -S -%%Note: Object -250.70 399.46 250.99 403.78 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.00 K -0 2.81 2.81 0.00 @w -%%CURV 2 -250.85 399.46 m -250.85 403.78 L -S -%%Note: Object -248.11 404.21 253.15 409.25 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.90 0.90 0.10 K -0 2.23 2.23 0.00 @w - 0 O 0 @g -0.00 0.10 1.00 0.00 k -%%ELLI 9.216 -9.216 270.000 270.000 0 -250.63 409.25 m -252.00 409.25 253.15 408.17 253.15 406.73 c -253.15 405.29 252.00 404.21 250.63 404.21 c -249.26 404.21 248.11 405.29 248.11 406.73 c -248.11 408.17 249.26 409.25 250.63 409.25 c -@c -B -%%Note: Object -431.14 313.70 439.99 342.43 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.30 0.60 0.40 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.60 1.00 0.00 k -%%RECT 14.976 -52.632 0.000 -431.14 342.43 m -439.99 342.43 L -439.99 313.70 L -431.14 313.70 L -431.14 342.43 L -@c -B -%%Note: Object -425.16 361.94 430.70 365.62 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 1.00 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.00 0.00 0.00 k -%%CURV 5 -425.16 364.75 m -430.49 365.62 L -430.70 362.95 L -425.16 361.94 L -425.16 364.75 L -@c -B -%%Note: Object -430.85 342.36 439.56 345.53 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 1.00 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.00 0.00 0.00 k -%%CURV 5 -439.56 342.36 m -439.27 345.53 L -430.85 345.53 L -431.64 342.36 L -439.56 342.36 L -@c -B -%%Note: Object -319.82 415.08 326.95 417.53 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 1.00 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.00 0.00 0.00 k -%%RECT 13.104 -4.536 0.000 -319.82 417.53 m -326.95 417.53 L -326.95 415.08 L -319.82 415.08 L -319.82 417.53 L -@c -B -%%Note: Object -316.30 390.38 318.10 405.22 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.70 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.30 0.60 0.40 k -%%RECT 3.168 -25.920 0.000 -316.37 405.22 m -316.58 405.22 316.87 405.22 317.16 405.22 c -317.52 405.22 317.81 405.22 318.10 405.22 C -318.02 402.77 318.02 400.32 318.02 397.87 c -318.02 395.35 318.02 392.90 318.10 390.38 C -317.81 390.53 317.52 390.67 317.16 390.74 c -316.94 390.82 316.58 391.03 316.37 391.03 C -316.30 393.41 316.30 395.78 316.30 398.16 c -316.30 400.46 316.37 402.91 316.37 405.22 C -@c -B -%%Note: Object -315.94 405.65 318.31 406.66 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.80 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.00 0.00 0.00 k -%%RECT 4.248 1.800 0.000 -315.94 405.65 m -318.31 405.65 L -318.31 406.66 L -315.94 406.66 L -315.94 405.65 L -@c -B -%%Note: Object -301.25 417.53 304.34 418.90 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.90 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.00 0.00 0.00 k -%%RECT 5.688 -2.520 0.000 -301.25 418.90 m -304.34 418.90 L -304.34 417.53 L -301.25 417.53 L -301.25 418.90 L -@c -B -%%Note: Object -259.85 382.39 313.78 406.80 @E - 0 O 0 @g -1.00 0.30 0.00 0.00 k -%%CURV 33 -259.85 403.63 m -264.82 405.50 264.82 405.00 267.98 405.94 c -271.08 406.80 271.58 405.50 274.25 405.50 c -276.91 405.50 282.67 405.00 284.62 405.00 c -289.58 405.00 L -295.85 406.37 L -297.22 395.50 L -308.45 395.50 L -313.78 392.33 l -313.78 392.33 313.34 385.13 309.74 385.13 c -306.22 385.13 301.61 382.39 298.08 385.13 c -294.55 387.79 290.88 388.22 288.22 387.79 c -285.55 387.36 280.94 386.93 277.42 386.93 c -273.82 386.93 267.05 386.93 267.05 386.93 c -265.25 395.93 L -259.85 400.46 L -259.85 403.63 L -@c -F -%%Note: Object -258.55 404.93 293.18 417.89 @E - 0 O 0 @g -1.00 0.60 0.00 0.00 k -%%CURV 33 -263.88 413.93 m -270.22 416.45 273.82 416.23 277.85 416.66 c -281.95 417.10 286.49 417.89 287.35 417.60 c -292.75 415.80 L -290.02 412.63 l -290.02 412.63 292.25 406.30 290.02 408.10 c -287.78 409.90 284.18 409.90 281.02 410.33 c -277.85 410.76 272.45 408.53 275.18 408.53 c -277.85 408.53 285.98 408.53 288.65 407.23 c -293.18 404.93 l -293.18 404.93 266.18 404.93 262.51 404.93 c -258.91 404.93 258.55 409.03 260.78 409.03 c -263.02 409.03 269.78 411.70 269.78 411.70 c -261.65 413.06 L -263.88 413.93 L -@c -F -%%Note: Object -194.98 412.63 208.94 441.07 @E - 0 O 0 @g -0.00 0.30 0.60 0.40 k -%%CURV 18 -199.94 441.07 m -199.94 441.07 199.08 435.60 199.94 431.57 c -200.88 427.54 199.94 426.17 201.31 423.43 c -202.68 420.77 204.48 417.17 204.48 417.17 c -208.94 414.50 L -206.71 412.63 L -201.74 412.63 L -197.21 416.30 L -195.91 427.03 L -195.41 436.10 L -194.98 440.64 L -199.94 441.07 L -@c -F -%%Note: Object -185.04 407.23 199.08 441.07 @E - 0 O 0 @g -0.00 0.30 0.60 0.40 k -%%CURV 24 -199.08 408.17 m -199.08 408.17 196.27 411.70 195.41 414.94 c -194.54 418.10 192.74 424.37 192.74 427.97 c -192.74 431.57 192.74 441.07 192.74 441.07 c -185.54 437.04 l -185.54 437.04 185.04 432.50 185.54 429.34 c -185.98 426.17 186.84 421.20 187.34 418.10 c -187.78 414.94 188.21 413.57 188.21 410.83 c -188.21 408.17 193.68 407.23 193.68 407.23 C -199.08 408.17 L -@c -F -%%Note: Object -167.98 398.23 181.94 436.61 @E - 0 O 0 @g -0.00 0.30 0.60 0.40 k -%%CURV 24 -181.94 400.46 m -181.94 400.46 181.51 409.46 181.51 412.20 c -181.51 414.94 181.51 426.17 181.51 426.17 c -181.08 433.37 L -176.98 432.07 L -169.34 436.61 l -169.34 436.61 169.34 426.60 169.34 423.94 c -169.34 421.20 169.78 414.50 169.34 409.97 c -168.91 405.43 169.78 405.00 168.91 401.83 c -167.98 398.66 175.18 399.53 175.18 399.53 c -180.14 398.23 L -181.94 400.46 L -@c -F -%%Note: Object -155.38 390.53 169.34 440.64 @E - 0 O 0 @g -0.00 0.30 0.60 0.40 k -%%CURV 16 -155.38 391.39 m -169.34 390.53 l -169.34 390.53 168.84 393.70 167.54 396.36 c -166.18 399.10 161.64 399.96 160.78 405.86 c -159.84 411.77 158.54 415.80 158.54 420.77 c -158.54 425.74 158.11 440.21 158.11 440.21 c -155.38 440.64 L -155.38 391.39 L -@c -F -%%Note: Object -371.45 343.94 421.42 376.92 @E - 0 O 0 @g -1.00 0.25 0.00 0.00 k -%%CURV 29 -374.62 376.92 m -371.45 371.52 L -377.78 364.68 l -377.78 364.68 384.98 360.22 388.15 359.28 c -391.32 358.34 398.52 356.54 398.52 356.54 c -411.12 356.54 L -415.66 357.05 L -421.42 355.68 L -420.55 349.34 L -413.78 345.74 l -413.78 345.74 408.46 343.94 402.98 345.74 c -397.58 347.54 394.92 347.11 390.38 347.98 c -385.85 348.91 376.42 350.71 375.98 353.45 c -375.55 356.11 373.32 362.02 373.32 362.02 c -371.45 367.42 L -372.38 375.55 L -374.62 376.92 L -@c -F -%%Note: Object -372.82 354.74 420.98 376.92 @E - 0 O 0 @g -0.00 0.30 0.60 0.40 k -%%CURV 17 -373.75 376.92 m -389.02 376.92 l -389.02 376.92 392.18 376.92 397.15 375.12 c -402.12 373.32 411.12 369.22 411.12 369.22 c -416.09 364.25 L -420.98 361.58 L -420.98 355.68 L -414.72 357.05 L -400.32 354.74 L -385.42 359.78 L -376.42 365.18 L -372.82 370.15 L -373.75 376.92 L -@c -F -%%Note: Object -377.78 359.28 410.18 374.69 @E - 0 O 0 @g -0.00 0.10 1.00 0.00 k -%%CURV 18 -377.78 368.78 m -381.38 373.75 L -385.42 374.69 l -385.42 374.69 389.88 374.69 392.62 374.26 c -395.35 373.75 399.38 372.38 402.12 370.58 c -404.78 368.78 410.18 365.62 410.18 365.62 c -408.89 361.58 L -403.42 359.28 L -397.58 361.08 L -391.75 366.05 L -387.65 367.92 L -377.78 368.78 L -@c -F -%%Note: Object -375.34 355.25 405.29 369.22 @E - 0 O 0 @g -0.00 0.00 0.00 0.60 k -%%CURV 14 -375.34 367.42 m -378.65 363.38 l -378.65 363.38 383.62 360.65 386.35 359.78 c -389.02 358.85 394.56 357.62 394.92 357.48 c -400.75 355.25 L -405.29 361.08 L -397.58 364.25 L -390.02 367.42 L -383.18 369.22 L -375.34 367.42 L -@c -F -%%Note: Object -372.38 351.65 421.42 376.06 @E - 0 O 0 @g -0.00 0.00 0.00 0.20 k -%%CURV 32 -373.32 376.06 m -373.32 371.02 L -378.22 364.25 l -378.22 364.25 385.92 360.22 389.02 358.85 c -392.18 357.48 397.15 356.11 399.89 356.11 c -402.55 356.11 407.09 356.11 409.75 356.11 c -412.42 356.11 416.02 357.05 418.32 356.11 c -420.55 355.25 421.42 353.45 421.42 353.45 c -416.09 351.65 l -416.09 351.65 409.75 351.65 405.65 351.65 c -401.62 351.65 394.92 352.51 391.32 353.45 c -387.65 354.31 380.88 356.98 377.78 360.22 c -374.62 363.38 372.38 366.98 372.38 366.98 C -373.32 376.06 L -@c -F -%%Note: Object -420.34 314.42 426.17 367.20 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.80 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.30 0.60 0.40 k -%%CURV 7 -425.45 365.90 m -425.23 314.42 L -420.34 314.42 L -420.41 367.20 L -420.41 367.20 426.17 366.19 425.45 365.90 C -@c -B -%%Note: Object -420.26 361.94 425.16 367.13 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 1.00 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.00 0.00 0.00 k -%%CURV 5 -425.16 364.75 m -420.26 367.13 L -420.26 363.89 L -425.16 361.94 L -425.16 364.75 L -@c -B -%%Note: Object -257.62 338.47 349.99 364.68 @E - 0 O 0 @g -0.40 0.15 0.00 0.00 k -%%CURV 47 -275.98 361.08 m -283.82 361.51 292.90 361.51 297.36 361.51 c -301.75 361.51 311.69 364.68 317.52 362.02 c -323.42 359.28 322.99 357.05 328.82 356.54 c -334.66 356.11 343.66 352.51 343.66 352.51 c -343.66 352.51 344.52 348.84 347.26 347.04 c -349.99 345.24 339.62 342.50 339.62 342.50 c -327.89 348.84 l -327.89 348.84 310.32 353.88 306.72 353.88 c -303.12 353.88 288.79 352.94 288.79 352.94 c -288.79 352.94 284.69 347.47 294.19 347.04 c -303.55 346.61 311.69 343.94 311.69 343.94 c -311.69 343.94 310.32 338.47 306.72 338.47 c -303.12 338.47 283.82 339.41 279.36 339.41 c -274.82 339.41 257.62 341.21 262.51 343.94 c -267.48 346.61 270.79 354.31 270.79 354.31 c -270.79 354.31 272.59 359.71 275.98 361.08 C -@c -F -%%Note: Object -420.12 364.46 430.70 367.99 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.80 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.00 0.00 0.00 k -%%CURV 5 -420.12 367.13 m -425.30 364.46 L -430.70 365.62 L -427.68 367.99 L -420.12 367.13 L -@c -B -%%Note: Object -330.19 468.07 343.73 472.75 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 1.00 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.30 0.60 0.40 k -%%CURV 5 -343.73 472.75 m -339.05 468.07 L -330.19 468.07 L -335.09 472.75 L -343.73 472.75 L -@c -B -%%Note: Object -344.38 416.16 349.06 436.54 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.30 0.60 0.40 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.30 0.60 0.40 k -%%CURV 20 -345.24 434.45 m -345.24 431.71 345.24 428.54 345.24 426.89 c -345.24 425.16 345.60 422.35 345.24 420.91 c -344.81 419.54 344.38 418.46 344.38 418.46 c -344.59 416.16 L -347.98 417.02 L -348.41 419.54 l -348.41 419.54 348.41 424.94 348.41 426.02 c -348.41 427.03 349.06 436.54 349.06 436.54 C -345.24 434.45 L -@c -B -%%Note: Object -365.40 411.55 370.58 433.37 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.30 0.60 0.40 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.30 0.60 0.40 k -%%CURV 29 -370.58 411.55 m -370.58 413.21 370.15 412.34 370.01 415.73 c -369.79 419.11 369.14 420.12 369.14 423.22 c -369.14 426.46 369.14 429.98 369.14 431.06 c -369.14 432.14 369.14 433.37 369.14 433.37 c -366.19 432.36 l -366.19 432.36 366.19 431.71 366.19 429.98 c -366.19 428.33 366.19 426.17 366.19 424.30 c -366.19 422.42 366.19 422.50 366.19 419.98 c -366.19 417.46 366.05 414.94 366.05 414.94 c -365.40 412.34 L -367.27 411.70 L -370.58 411.55 L -@c -B -%%Note: Object -336.67 421.78 338.54 429.19 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.70 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.30 0.60 0.40 k -%%CURV 11 -338.54 421.78 m -338.54 427.46 L -337.46 429.19 L -336.67 427.46 l -336.67 427.46 336.82 426.24 336.82 425.16 c -336.82 424.08 336.82 422.64 336.82 422.64 C -338.54 421.78 L -@c -B -%%Note: Object -330.98 422.64 332.42 430.85 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.70 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.30 0.60 0.40 k -%%CURV 11 -332.28 430.85 m -332.28 430.85 332.42 428.76 332.42 427.68 c -332.42 426.60 332.42 424.30 332.42 424.30 c -330.98 422.64 L -330.98 426.46 L -330.98 429.55 L -332.28 430.85 L -@c -B -%%Note: Object -333.29 421.99 334.73 431.06 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.70 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.30 0.60 0.40 k -%%CURV 16 -334.51 422.21 m -334.51 422.21 334.30 422.50 334.51 425.16 c -334.73 427.90 334.73 430.85 334.73 430.85 c -333.50 431.06 l -333.50 431.06 333.50 428.90 333.50 427.90 c -333.50 426.89 333.29 423.86 333.29 423.86 c -333.50 421.99 L -334.51 422.21 L -@c -B -@rs -@sv -%%Note: Object -336.24 446.90 349.06 464.98 @E - 0 O 0 @g -0.50 0.00 0.50 0.50 k -%%CURV 23 -346.46 463.97 m -339.55 463.54 336.60 464.98 336.38 461.88 c -336.24 458.71 338.54 463.97 339.34 458.28 c -340.20 452.59 340.85 451.51 340.85 449.21 c -340.85 446.90 342.86 446.90 343.30 449.42 c -343.73 451.94 344.02 453.89 346.10 455.11 c -348.19 456.41 349.06 459.94 345.46 459.50 c -341.86 459.14 344.59 462.89 344.59 462.89 C -346.46 463.97 L -@c -F -%%Note: Object -375.77 458.93 381.17 476.06 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.70 K -0 0.86 0.86 0.00 @w -%%CURV 5 -375.77 472.61 m -381.17 476.06 L -380.52 459.65 L -376.42 458.93 L -375.77 472.61 L -@c -S -%%Note: Object -359.28 462.10 361.80 468.43 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.70 K -0 0.86 0.86 0.00 @w -%%CURV 3 -361.80 468.43 m -359.28 466.92 L -359.28 462.10 L -S -%%Note: Object -358.63 430.63 363.24 438.48 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.60 K -0 1.44 1.44 0.00 @w -%%CURV 3 -358.63 438.48 m -358.63 431.28 L -363.24 430.63 L -S -%%Note: Object -378.00 461.88 378.14 473.90 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.70 K -0 0.86 0.86 0.00 @w -%%CURV 2 -378.00 473.90 m -378.14 461.88 L -S -%%Note: Object -376.06 467.78 380.88 470.09 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.70 K -0 0.86 0.86 0.00 @w -%%CURV 2 -376.06 467.78 m -380.88 470.09 L -S -%%Note: Object -369.79 458.71 370.01 464.62 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.70 K -0 0.86 0.86 0.00 @w -%%CURV 2 -370.01 464.62 m -369.79 458.71 L -S -%%Note: Object -377.50 437.40 382.18 443.52 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.60 K -0 1.44 1.44 0.00 @w -%%CURV 3 -377.50 443.52 m -381.96 443.52 L -382.18 437.40 L -S -%%Note: Object -376.70 428.11 382.39 431.28 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.60 K -0 1.44 1.44 0.00 @w -%%CURV 3 -376.70 431.28 m -376.70 428.76 L -382.39 428.11 L -S -%%Note: Object -376.27 436.18 381.53 436.32 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.60 K -0 1.44 1.44 0.00 @w -%%CURV 2 -376.27 436.32 m -381.53 436.18 L -S -%%Note: Object -390.82 426.17 395.35 439.70 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.50 K -0 0.22 0.22 0.00 @w - 0 O 0 @g -0.00 0.00 0.00 0.00 k -%%CURV 5 -394.42 439.27 m -390.82 439.70 L -390.82 426.17 L -395.35 426.17 L -394.42 439.27 L -@c -B -%%Note: Object -396.65 424.80 402.55 439.70 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.50 K -0 0.22 0.22 0.00 @w - 0 O 0 @g -0.00 0.00 0.00 0.00 k -%%CURV 6 -400.75 439.70 m -396.65 439.70 L -397.58 425.23 L -402.12 424.80 L -402.55 432.07 L -400.75 439.70 L -@c -B -%%Note: Object -412.27 424.66 417.24 436.82 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.50 K -0 0.22 0.22 0.00 @w - 0 O 0 @g -0.00 0.00 0.00 0.00 k -%%CURV 6 -412.70 432.79 m -412.70 424.66 L -416.74 424.66 L -417.24 436.82 L -412.27 435.96 L -412.70 432.79 L -@c -B -%%Note: Object -418.82 423.22 424.73 439.49 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.50 K -0 0.22 0.22 0.00 @w - 0 O 0 @g -0.00 0.00 0.00 0.00 k -%%CURV 5 -423.36 439.49 m -418.82 439.49 L -419.33 423.22 L -424.73 423.22 L -423.36 439.49 L -@c -B -%%Note: Object -427.32 411.26 439.92 469.58 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.70 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.20 0.20 0.00 k -%%CURV 5 -427.32 414.50 m -439.92 411.26 L -439.92 469.58 L -427.32 458.28 L -427.32 414.50 L -@c -B -%%Note: Object -430.92 420.77 439.92 438.41 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.40 K -0 1.44 1.44 0.00 @w - 0 O 0 @g -0.00 0.00 0.00 0.05 k -%%CURV 5 -431.86 438.41 m -430.92 422.57 L -439.92 420.77 L -439.49 436.61 L -431.86 438.41 L -@c -B -%%Note: Object -432.29 436.61 439.92 445.18 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.40 K -0 1.44 1.44 0.00 @w - 0 O 0 @g -0.00 0.00 0.00 0.10 k -%%CURV 5 -432.29 438.84 m -439.49 436.61 L -439.92 444.24 L -432.29 445.18 L -432.29 438.84 L -@c -B -%%Note: Object -391.32 434.16 394.42 434.45 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.40 K -0 0.86 0.86 0.00 @w -%%CURV 2 -391.32 434.30 m -394.42 434.30 L -S -%%Note: Object -397.15 433.87 402.12 434.30 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.50 K -0 0.86 0.86 0.00 @w -%%CURV 2 -397.15 434.30 m -402.12 433.87 L -S -%%Note: Object -413.35 432.94 416.52 433.37 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.50 K -0 0.86 0.86 0.00 @w -%%CURV 2 -413.35 433.37 m -416.52 432.94 L -S -%%Note: Object -419.69 433.87 423.22 434.30 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.50 K -0 0.86 0.86 0.00 @w -%%CURV 2 -419.69 434.30 m -423.22 433.87 L -S -%%Note: Object -320.04 388.58 326.74 414.94 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.80 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.30 0.60 0.40 k -%%RECT 12.168 -43.128 0.000 -320.04 414.86 m -321.12 414.94 322.20 414.94 323.35 414.94 c -324.43 414.94 325.51 414.94 326.74 414.86 C -326.66 410.54 326.66 406.15 326.66 401.76 c -326.66 397.37 326.66 392.98 326.74 388.58 C -325.51 389.09 324.43 389.59 323.35 390.02 c -322.27 390.46 321.12 390.96 320.04 391.32 C -320.04 395.28 320.04 399.17 320.04 403.13 c -320.04 407.02 320.04 410.98 320.04 414.86 C -@c -B -%%Note: Object -157.39 457.70 189.43 508.32 @E - 0 O 0 @g -0.60 0.00 0.60 0.40 k -%%CURV 31 -179.21 464.54 m -189.43 470.66 187.34 474.05 186.70 482.33 c -186.05 490.54 183.31 496.01 184.68 502.13 c -186.05 508.32 179.93 500.04 177.84 494.57 c -175.82 489.17 167.62 484.34 167.62 484.34 c -167.62 484.34 159.48 480.89 162.86 492.55 c -166.25 504.22 159.48 502.78 159.48 498.02 c -159.48 493.27 157.39 483.62 159.48 477.50 c -161.50 471.38 166.32 470.66 166.97 474.05 c -167.62 477.50 171.07 472.68 171.07 465.19 C -171.07 457.70 179.21 464.54 179.21 464.54 c -@c -F -%%Note: Object -188.06 447.41 213.26 491.18 @E - 0 O 0 @g -0.60 0.00 0.60 0.40 k -%%CURV 20 -192.82 456.98 m -198.29 463.18 198.29 468.00 198.29 472.75 c -198.29 477.50 197.57 491.18 200.30 487.73 c -203.04 484.34 207.79 476.86 207.79 471.38 c -207.79 465.91 200.38 461.09 205.13 456.98 c -209.88 452.88 213.26 449.50 204.41 449.50 c -195.55 449.50 188.06 447.41 188.06 447.41 C -192.82 456.98 L -@c -F -%%Note: Object -405.14 442.66 423.58 483.70 @E - 0 O 0 @g -0.80 0.00 0.80 0.20 k -%%CURV 21 -408.60 450.86 m -408.60 458.42 405.14 461.16 408.60 468.00 c -411.98 474.84 415.44 483.70 415.44 483.70 c -415.44 483.70 416.74 483.70 416.74 478.94 c -416.74 474.12 422.93 469.30 422.93 469.30 c -423.58 462.46 L -416.09 454.97 l -416.09 454.97 416.09 452.23 416.09 447.48 C -416.09 442.66 408.60 450.86 408.60 450.86 c -@c -F -%%Note: Object -201.67 479.52 360.29 518.54 @E - 0 O 0 @g -0.00 0.00 0.00 0.05 k -%%CURV 43 -234.36 510.34 m -271.80 510.34 252.07 515.81 277.92 515.81 c -303.77 515.81 304.42 516.53 316.66 513.79 c -328.97 511.06 328.25 508.25 339.84 506.23 c -351.43 504.22 360.29 502.78 358.92 498.02 c -357.55 493.27 334.44 487.15 328.97 489.82 c -323.50 492.55 309.17 497.38 304.42 497.38 c -299.66 497.38 264.31 505.58 264.31 505.58 c -264.31 505.58 256.82 501.41 269.14 498.74 c -281.38 496.01 308.52 491.90 296.28 485.71 c -284.04 479.52 269.78 489.17 260.93 489.17 c -252.07 489.17 239.18 489.82 232.99 492.55 c -226.87 495.29 215.28 503.50 208.51 506.95 c -201.67 510.34 203.69 518.54 213.26 517.18 C -222.77 515.81 234.36 510.34 234.36 510.34 c -@c -F -%%Note: Object -166.25 331.20 199.66 372.89 @E - 0 O 0 @g -0.00 0.60 1.00 0.00 k -%%CURV 20 -168.34 353.81 m -175.82 358.56 186.70 366.05 188.78 369.50 c -190.80 372.89 191.45 362.66 191.45 362.66 c -199.66 370.15 L -199.66 360.65 l -199.66 360.65 196.20 355.82 193.54 351.00 c -190.80 346.25 176.47 331.20 176.47 331.20 c -173.81 338.04 L -179.21 347.62 L -177.84 354.46 L -166.25 348.26 L -168.34 353.81 L -@c -F -%%Note: Object -409.25 405.72 432.43 409.18 @E - 0 O 0 @g -0.00 0.00 0.00 0.70 k -%%CURV 5 -411.98 409.18 m -432.43 407.81 L -418.18 405.72 L -409.25 405.72 L -411.98 409.18 L -@c -F -%%Note: Object -369.14 410.54 384.77 415.37 @E - 0 O 0 @g -0.00 0.00 0.00 0.60 k -%%CURV 10 -369.14 415.37 m -369.14 415.37 371.16 413.28 374.54 413.28 c -378.00 413.28 384.77 412.56 384.77 412.56 c -381.31 411.19 L -369.79 410.54 L -369.14 415.37 L -@c -F -%%Note: Object -347.33 413.93 358.92 417.38 @E - 0 O 0 @g -0.00 0.00 0.00 0.60 k -%%CURV 5 -347.98 417.38 m -358.92 417.38 L -357.55 413.93 L -347.33 415.37 L -347.98 417.38 L -@c -F -%%Note: Object -313.06 313.70 420.12 331.70 @E - 0 O 0 @g -1.00 0.50 0.00 0.00 k -%%CURV 26 -420.12 324.86 m -414.65 328.25 405.79 331.70 400.32 331.70 c -394.85 331.70 393.48 330.34 384.62 330.34 c -375.70 330.34 366.91 328.97 360.07 330.34 c -353.23 331.70 345.74 329.62 340.92 329.62 c -336.17 329.62 337.54 324.14 332.06 323.50 c -326.59 322.78 325.94 318.67 321.84 318.67 c -317.74 318.67 313.06 313.85 322.49 313.85 c -331.92 313.85 420.12 313.70 420.12 314.42 C -420.12 324.86 L -@c -F -%%Note: Object -155.02 313.85 440.28 528.34 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.70 K -0 0.86 0.86 0.00 @w -%%RECT 522.576 -392.976 0.000 -155.02 528.34 m -440.28 528.34 L -440.28 313.85 L -155.02 313.85 L -155.02 528.34 L -@c -S -%%Note: Object -431.42 344.66 440.28 348.84 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 1.00 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.00 0.00 0.00 k -%%CURV 5 -440.28 344.66 m -434.81 348.84 L -431.42 348.84 L -431.42 344.66 L -440.28 344.66 L -@c -B -%%Note: Object -223.27 498.24 235.58 505.73 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.60 K -0 2.81 2.81 0.00 @w - 0 O 0 @g -0.00 0.00 0.00 0.70 k -%%CURV 5 -223.27 505.73 m -228.74 503.71 229.46 498.89 229.46 498.89 c -235.58 498.24 L -S -%%Note: Object -216.14 489.60 226.44 493.27 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.60 K -0 2.81 2.81 0.00 @w - 0 O 0 @g -0.00 0.00 0.00 0.70 k -%%CURV 5 -216.14 491.62 m -221.54 489.60 223.70 489.89 223.70 489.89 c -226.44 493.27 L -S -%%Note: Object -206.35 502.27 215.21 509.11 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.60 K -0 2.81 2.81 0.00 @w - 0 O 0 @g -0.00 0.00 0.00 0.70 k -%%CURV 5 -206.35 509.11 m -211.82 507.02 212.47 502.27 212.47 502.27 c -215.21 505.66 L -S -%%Note: Object -327.17 341.50 329.18 343.73 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 1.00 K -0 2.23 2.23 0.00 @w - 0 O 0 @g -0.00 0.00 0.00 1.00 k -%%CURV 5 -327.17 343.73 m -327.17 342.72 327.38 341.50 327.38 341.50 c -329.18 342.07 L -S -%%Note: Object -322.13 342.36 329.98 347.40 @E - 0 O 0 @g -0.00 0.00 0.00 0.80 k -%%CURV 13 -322.99 345.74 m -324.50 347.40 325.51 346.18 326.88 345.53 c -328.25 344.88 329.98 345.31 329.11 344.23 c -328.32 343.22 322.56 342.36 322.56 342.65 c -322.63 343.94 L -322.13 344.66 L -322.99 345.74 L -@c -F -%%Note: Object -327.24 345.31 329.33 347.54 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.80 K -0 2.23 2.23 0.00 @w -%%CURV 5 -327.24 345.31 m -327.24 346.32 327.46 347.54 327.46 347.54 c -329.33 346.97 L -S -%%Note: Object -338.33 335.16 340.42 337.39 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 1.00 K -0 2.23 2.23 0.00 @w - 0 O 0 @g -0.00 0.00 0.00 1.00 k -%%CURV 5 -338.33 337.39 m -338.33 336.38 338.54 335.16 338.54 335.16 c -340.42 335.81 L -S -%%Note: Object -333.29 336.02 341.14 341.06 @E - 0 O 0 @g -0.00 0.00 0.00 0.80 k -%%CURV 13 -334.22 339.41 m -335.74 341.06 336.67 339.84 338.04 339.19 c -339.41 338.54 341.14 338.98 340.34 337.97 c -339.55 336.89 333.72 336.02 333.72 336.31 c -333.86 337.61 L -333.29 338.40 L -334.22 339.41 L -@c -F -%%Note: Object -338.47 338.98 340.56 341.21 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.80 K -0 2.23 2.23 0.00 @w -%%CURV 5 -338.47 338.98 m -338.47 339.98 338.69 341.21 338.69 341.21 c -340.56 340.63 L -S -%%Note: Object -349.70 345.53 351.79 347.83 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 1.00 K -0 2.23 2.23 0.00 @w - 0 O 0 @g -0.00 0.00 0.00 1.00 k -%%CURV 5 -349.70 347.83 m -349.70 346.75 349.92 345.53 349.92 345.53 c -351.79 346.18 L -S -%%Note: Object -344.66 346.46 352.51 351.50 @E - 0 O 0 @g -0.00 0.00 0.00 0.80 k -%%CURV 13 -345.60 349.78 m -347.04 351.50 348.05 350.28 349.42 349.63 c -350.78 348.91 352.51 349.34 351.72 348.34 c -350.86 347.33 345.10 346.46 345.10 346.68 c -345.24 348.05 L -344.66 348.77 L -345.60 349.78 L -@c -F -%%Note: Object -349.85 349.34 351.94 351.65 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.80 K -0 2.23 2.23 0.00 @w -%%CURV 5 -349.85 349.34 m -349.85 350.42 350.06 351.65 350.06 351.65 c -351.94 351.00 L -S -%%Note: Object -352.44 336.96 354.53 339.26 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 1.00 K -0 2.23 2.23 0.00 @w - 0 O 0 @g -0.00 0.00 0.00 1.00 k -%%CURV 5 -352.44 339.26 m -352.44 338.18 352.66 336.96 352.66 336.96 c -354.53 337.61 L -S -%%Note: Object -347.40 337.90 355.25 342.94 @E - 0 O 0 @g -0.00 0.00 0.00 0.80 k -%%CURV 13 -348.34 341.21 m -349.85 342.94 350.78 341.71 352.15 341.06 c -353.52 340.34 355.25 340.78 354.46 339.77 c -353.66 338.76 347.83 337.90 347.83 338.11 c -347.98 339.48 L -347.40 340.20 L -348.34 341.21 L -@c -F -%%Note: Object -352.58 340.78 354.67 343.08 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.80 K -0 2.23 2.23 0.00 @w -%%CURV 5 -352.58 340.78 m -352.58 341.86 352.80 343.08 352.80 343.08 c -354.67 342.43 L -S -%%Note: Object -311.47 331.78 313.56 334.08 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 1.00 K -0 2.23 2.23 0.00 @w - 0 O 0 @g -0.00 0.00 0.00 1.00 k -%%CURV 5 -311.47 334.08 m -311.47 333.00 311.76 331.78 311.76 331.78 c -313.56 332.42 L -S -%%Note: Object -306.43 332.71 314.35 337.75 @E - 0 O 0 @g -0.00 0.00 0.00 0.80 k -%%CURV 13 -307.37 336.02 m -308.88 337.75 309.82 336.53 311.18 335.88 c -312.62 335.16 314.35 335.59 313.49 334.58 c -312.70 333.58 306.86 332.71 306.86 332.93 c -307.01 334.30 L -306.43 335.02 L -307.37 336.02 L -@c -F -%%Note: Object -311.62 335.59 313.70 337.90 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.80 K -0 2.23 2.23 0.00 @w -%%CURV 5 -311.62 335.59 m -311.62 336.67 311.83 337.90 311.83 337.90 c -313.70 337.25 L -S -%%Note: Object -268.70 422.71 268.99 426.60 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.30 0.60 0.40 K -0 0.86 0.86 0.00 @w -%%CURV 2 -268.85 426.60 m -268.85 422.71 L -S -%%Note: Object -278.50 422.28 278.78 426.60 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.30 0.60 0.40 K -0 0.86 0.86 0.00 @w -%%CURV 2 -278.64 426.60 m -278.64 422.28 L -S -%%Note: Object -288.86 422.93 289.15 426.46 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.30 0.60 0.40 K -0 0.86 0.86 0.00 @w -%%CURV 2 -289.01 426.46 m -289.01 422.93 L -S -%%Note: Object -297.94 423.07 298.22 426.46 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.30 0.60 0.40 K -0 0.86 0.86 0.00 @w -%%CURV 2 -298.08 426.46 m -298.08 423.07 L -S -%%Note: Object -345.38 380.38 373.39 402.98 @E - 0 O 0 @g -0.00 0.30 0.60 0.40 k -%%CURV 9 -345.38 402.98 m -366.55 396.79 L -366.55 391.32 L -373.39 385.13 L -372.02 380.38 L -358.34 387.22 L -359.06 393.34 L -346.10 398.88 L -345.38 402.98 L -@c -F -%%Note: Object -402.70 378.29 429.98 389.95 @E - 0 O 0 @g -0.00 0.30 0.60 0.40 k -%%CURV 9 -429.98 386.50 m -417.02 389.95 L -412.27 384.48 L -404.06 385.85 L -402.70 380.38 L -415.01 378.29 L -421.13 384.48 L -429.98 381.10 L -429.98 386.50 L -@c -F -%%Note: Object -223.27 388.58 229.46 389.95 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.60 K -0 0.86 0.86 0.00 @w -%%CURV 2 -223.27 388.58 m -229.46 389.95 L -S -%%Note: Object -252.86 389.52 259.92 390.67 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.70 K -0 0.86 0.86 0.00 @w -%%CURV 2 -252.86 390.67 m -259.92 389.52 L -S -%%Note: Object -226.94 387.14 230.40 387.65 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.50 K -0 0.86 0.86 0.00 @w -%%CURV 2 -226.94 387.14 m -230.40 387.65 L -S -%%Note: Object -255.17 387.50 259.63 388.44 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.60 K -0 0.86 0.86 0.00 @w -%%CURV 2 -255.17 388.44 m -259.63 387.50 L -S -%%Note: Object -168.19 375.34 171.43 381.74 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.70 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.30 0.60 0.40 k -%%RECT 5.904 11.736 1.584 -169.06 375.34 m -170.57 375.34 l -171.07 375.34 171.43 375.70 171.43 376.20 c -171.43 380.88 l -171.43 381.38 171.07 381.74 170.57 381.74 c -169.06 381.74 l -168.55 381.74 168.19 381.38 168.19 380.88 c -168.19 376.20 l -168.19 375.70 168.55 375.34 169.06 375.34 c -@c -B -%%Note: Object -166.32 380.02 173.02 383.11 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.70 K -0 1.44 1.44 0.00 @w - 0 O 0 @g -0.00 0.00 0.00 0.00 k -%%RECT 12.168 -5.760 1.800 -167.33 383.11 m -172.01 383.11 l -172.58 383.11 173.02 382.68 173.02 382.18 c -173.02 380.95 l -173.02 380.45 172.58 380.02 172.01 380.02 c -167.33 380.02 l -166.75 380.02 166.32 380.45 166.32 380.95 c -166.32 382.18 l -166.32 382.68 166.75 383.11 167.33 383.11 c -@c -B -%%Note: Object -215.86 362.45 217.73 366.26 @E -0 J 0 j [] 0 d 0 R 0 @G -1.00 0.80 0.00 0.00 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.10 0.05 0.00 0.00 k -%%RECT 5.904 11.736 1.584 -216.36 362.45 m -217.22 362.45 l -217.51 362.45 217.73 362.66 217.73 362.95 c -217.73 365.76 l -217.73 366.05 217.51 366.26 217.22 366.26 c -216.36 366.26 l -216.00 366.26 215.86 366.05 215.86 365.76 c -215.86 362.95 l -215.86 362.66 216.00 362.45 216.36 362.45 c -@c -B -%%Note: Object -214.70 365.18 218.66 367.06 @E -0 J 0 j [] 0 d 0 R 0 @G -1.00 0.80 0.00 0.00 K -0 1.44 1.44 0.00 @w - 0 O 0 @g -0.10 0.05 0.00 0.00 k -%%RECT 12.168 -5.760 1.800 -215.35 367.06 m -218.09 367.06 l -218.38 367.06 218.66 366.84 218.66 366.48 c -218.66 365.83 l -218.66 365.47 218.38 365.18 218.09 365.18 c -215.35 365.18 l -214.99 365.18 214.70 365.47 214.70 365.83 c -214.70 366.48 l -214.70 366.84 214.99 367.06 215.35 367.06 c -@c -B -%%Note: Object -272.23 364.46 274.10 368.21 @E -0 J 0 j [] 0 d 0 R 0 @G -1.00 0.80 0.00 0.00 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.10 0.05 0.00 0.00 k -%%RECT 5.904 11.736 1.584 -272.74 364.46 m -273.60 364.46 l -273.89 364.46 274.10 364.61 274.10 364.97 c -274.10 367.70 l -274.10 367.99 273.89 368.21 273.60 368.21 c -272.74 368.21 l -272.38 368.21 272.23 367.99 272.23 367.70 c -272.23 364.97 l -272.23 364.61 272.38 364.46 272.74 364.46 c -@c -B -%%Note: Object -271.08 367.20 274.97 369.00 @E -0 J 0 j [] 0 d 0 R 0 @G -1.00 0.80 0.00 0.00 K -0 1.44 1.44 0.00 @w - 0 O 0 @g -0.10 0.05 0.00 0.00 k -%%RECT 12.168 -5.760 1.800 -271.73 369.00 m -274.46 369.00 l -274.75 369.00 274.97 368.78 274.97 368.42 c -274.97 367.78 l -274.97 367.49 274.75 367.20 274.46 367.20 c -271.73 367.20 l -271.37 367.20 271.08 367.49 271.08 367.78 c -271.08 368.42 l -271.08 368.78 271.37 369.00 271.73 369.00 c -@c -B -%%Note: Object -205.13 403.34 207.36 407.88 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.70 K -0 0.86 0.86 0.00 @w - 0 O 0 @g -0.00 0.30 0.60 0.40 k -%%RECT 5.904 11.736 1.584 -205.70 403.34 m -206.78 403.34 l -207.14 403.34 207.36 403.63 207.36 403.99 c -207.36 407.30 l -207.36 407.66 207.14 407.88 206.78 407.88 c -205.70 407.88 l -205.34 407.88 205.13 407.66 205.13 407.30 c -205.13 403.99 l -205.13 403.63 205.34 403.34 205.70 403.34 c -@c -B -%%Note: Object -203.83 406.66 208.51 408.89 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.70 K -0 1.44 1.44 0.00 @w - 0 O 0 @g -0.00 0.00 0.00 0.00 k -%%RECT 12.168 -5.760 1.800 -204.48 408.89 m -207.79 408.89 l -208.22 408.89 208.51 408.60 208.51 408.24 c -208.51 407.38 l -208.51 406.94 208.22 406.66 207.79 406.66 c -204.48 406.66 l -204.12 406.66 203.83 406.94 203.83 407.38 c -203.83 408.24 l -203.83 408.60 204.12 408.89 204.48 408.89 c -@c -B -%%Note: Object -207.00 380.88 217.58 405.65 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.80 K -0 1.44 1.44 0.00 @w -%%CURV 7 -207.00 405.65 m -207.00 401.83 209.30 393.41 211.54 389.88 c -213.77 386.35 217.58 380.88 217.58 380.88 C -S -%%Note: Object -169.85 362.52 217.15 379.30 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 0.80 K -0 2.02 2.02 0.00 @w -%%CURV 7 -217.15 365.26 m -217.15 365.26 211.03 362.52 195.98 365.98 c -180.94 369.36 170.86 379.01 169.85 379.30 C -S -%%Note: Object -241.70 426.89 248.54 436.46 @E - 0 O 0 @g -0.00 0.90 0.90 0.10 k -%%RECT 12.528 -17.568 0.000 -241.70 436.46 m -248.54 436.46 L -248.54 426.89 L -241.70 426.89 L -241.70 436.46 L -@c -F -@rs -@rs -%%Trailer - end diff --git a/doc/context/sources/general/manuals/start/graphics/ma-cb-00.mp b/doc/context/sources/general/manuals/start/graphics/ma-cb-00.mp deleted file mode 100644 index be9ad9b28..000000000 --- a/doc/context/sources/general/manuals/start/graphics/ma-cb-00.mp +++ /dev/null @@ -1,1282 +0,0 @@ -% Converted from PostScript(TM) to MetaPost by pstoedit -% MetaPost backend contributed by Scott Pakin <pakin@uiuc.edu> -% pstoedit is Copyright (C) 1993 - 1999 Wolfgang Glunz <wglunz@geocities.com> - -% Generate structured PostScript -prologues := 1; - -% Display a given string with its *baseline* at a given location -% and with a given rotation angle -vardef showtext(expr origin)(expr angle)(expr string) = - draw string infont defaultfont scaled defaultscale - rotated angle shifted origin; -enddef; - -beginfig(1); -drawoptions (withcolor (0.8,0.9,1)); -linecap := butt; -linejoin := mitered; -fill (34.0598,214.47)--(286.57,214.47)--(285.2,72.9199) - --(38.1699,83.8599)--(34.0598,214.47)--cycle; -drawoptions (withcolor (0.95,0.95,0.95)); -fill (62,152.91)..controls (62,152.91) and (74.24,150.18)..(77.6199,152.91) - ..controls (81.0798,155.65) and (98.0698,152.91)..(98.0698,152.91) - ..controls (98.0698,152.91) and (106.21,148.81)..(111.68,148.81) - ..controls (117.15,148.81) and (130.76,147.37)..(130.76,147.37) - --(134.86,140.53)..controls (134.86,140.53) and (130.11,139.88)..(123.92,139.88) - ..controls (117.8,139.88) and (98.72,139.23)..(98.72,139.23) - --(82.3799,139.23)--(72.1499,145.35)--(64.0198,147.37) - --(62,152.91)--cycle; -drawoptions (withcolor (0.9,0.9,0.9)); -fill (202.11,112.52)--(200.82,126.85)--(184.47,117.99) - --(170.86,116.62)--(150.42,117.34)--(141.63,114.61) - --(104.19,115.26)--(87.1299,115.26)--(69.49,113.17) - --(74.96,107.77)--(106.21,108.42)--(140.98,108.42) - --(147.03,110.5)--(165.39,110.5)--(164.74,104.38) - --(172.88,103.74)--(285.92,79.0398)--(285.2,98.9099) - --(271.59,100.93)--(202.11,112.52)--cycle; -drawoptions (withcolor (1,0.4,0.4)); -fill (285.92,193.23)--(259.78,193.23)--(259.78,188.7) - --(277.35,148.88)--(285.92,155.72)--(285.92,193.23) - --cycle; -drawoptions (withcolor (0.2,0.2,0.2)); -pickup pencircle scaled 0.86bp; -draw (285.92,193.23)--(259.78,193.23)--(259.78,188.7) - --(277.35,148.88)--(285.92,155.72)--(285.92,193.23); -drawoptions (withcolor (1,0.9,0.9)); -pickup pencircle scaled 0bp; -fill (231.85,165.66)--(235.95,169.69)--(246.75,170.62) - --(273.32,149.82)--(272.89,101)--(235.02,107.34) - --(231.85,165.66)--cycle; -drawoptions (withcolor (0.4,0.4,0.4)); -pickup pencircle scaled 0.86bp; -draw (231.85,165.66)--(235.95,169.69)--(246.75,170.62) - --(273.32,149.82)--(272.89,101)--(235.02,107.34) - --(231.85,165.66); -drawoptions (withcolor (0,0.5,0)); -pickup pencircle scaled 0bp; -fill (178.28,133.26)..controls (178.28,133.26) and (175.98,132.39)..(175.11,130.09) - ..controls (174.25,127.78) and (172.38,125.62)..(172.38,125.62) - ..controls (172.38,125.62) and (170.86,124.47)..(170,121.88) - ..controls (169.21,119.36) and (168.99,119.14)..(168.99,118.06) - ..controls (168.99,116.98) and (169.21,116.19)..(170.43,116.41) - ..controls (171.73,116.55) and (172.81,117.63)..(172.81,117.63) - --(175.33,116.84)..controls (175.33,116.84) and (175.9,116.62)..(177.42,117.85) - ..controls (178.86,119.14) and (179.29,121.52)..(179.72,120.22) - ..controls (180.15,118.93) and (179.94,119.58)..(180.73,118.06) - ..controls (181.59,116.55) and (183.03,115.98)..(184.11,116.41) - ..controls (185.19,116.84) and (184.47,115.69)..(185.55,117.2) - ..controls (186.63,118.71) and (185.19,122.74)..(185.19,122.74) - --(182.24,132.39)--(178.28,133.26)--cycle; -drawoptions (withcolor (0,0.6,0)); -fill (203.19,132.82)..controls (207.44,132.82) and (198.58,125.84)..(194.55,123.61) - ..controls (190.45,121.3) and (188.65,115.04)..(184.11,120.87) - ..controls (179.65,126.7) and (184.54,132.61)..(180.51,133.04) - ..controls (176.48,133.54) and (177.85,132.18)..(174.68,133.54) - ..controls (171.51,134.84) and (172.45,140.31)..(172.45,140.31) - ..controls (172.45,140.31) and (175.98,145.71)..(177.42,148.88) - ..controls (178.78,152.05) and (177.42,152.91)..(177.85,155.22) - ..controls (178.28,157.52) and (181.02,159.32)..(181.02,159.32) - --(190.02,158.82)--(192.25,162.78)..controls (192.25,162.78) and (196.78,162.92)..(199.02,161.12) - ..controls (201.25,159.32) and (201.25,156.58)..(201.25,156.58) - --(203.98,155.22)--(203.55,147.58)--(201.68,143.12) - ..controls (201.68,143.12) and (201.82,139.95)..(203.19,137.72) - ..controls (204.56,135.42) and (202.76,132.82)..(203.19,132.82) - --cycle; -drawoptions (withcolor (0.8,0.8,0.8)); -fill (1.37988,135.34)--(63.9399,129.01)--(67.98,114.97) - --(73.8799,108.63)--(57.6799,89.26)--(0.869873,46.2798) - --(1.37988,135.34)--cycle; -drawoptions (withcolor (0,0.6,0)); -fill (141.27,120.87)..controls (140.84,121.23) and (143.65,122.46)..(139.62,123.32) - ..controls (135.51,124.26) and (134.65,122.67)..(129.25,122.67) - ..controls (123.85,122.67) and (124.28,120.87)..(122.05,122.67) - ..controls (119.82,124.47) and (119.38,126.27)..(115.28,126.27) - ..controls (111.25,126.27) and (109.45,126.7)..(106.78,124.9) - ..controls (104.05,123.1) and (102.68,123.1)..(100.45,123.1) - ..controls (98.22,123.1) and (96.3398,123.18)..(93.6799,123.61) - ..controls (91.0198,124.04) and (88.7798,124.47)..(86.0498,124.9) - ..controls (83.3098,125.41) and (80.5798,125.84)..(77.9099,125.41) - ..controls (75.25,124.9) and (70.2798,124.47)..(66.6799,124.9) - ..controls (63.0798,125.41) and (60.3398,127.21)..(57.1799,125.41) - ..controls (54.0798,123.61) and (49.1099,123.61)..(49.1099,123.61) - --(44.1399,122.67)--(45.0798,115.9)..controls (45.0798,115.9) and (43.2798,113.6)..(49.5398,113.6) - ..controls (55.8799,113.6) and (58.98,113.6)..(64.8799,113.6) - ..controls (70.71,113.6) and (69.4199,112.66)..(76.1099,114.03) - ..controls (82.8799,115.47) and (86.98,115.47)..(91.8799,115.47) - ..controls (96.8499,115.47) and (100.88,114.97)..(105.85,114.97) - ..controls (110.82,114.97) and (112.62,114.97)..(118.02,114.97) - ..controls (123.42,114.97) and (125.22,114.54)..(136.02,114.54) - ..controls (146.74,114.54) and (146.74,115.9)..(146.74,115.9) - --(145.88,120.37)--(141.27,120.87)--cycle; -drawoptions (withcolor (0.5,0.5,0.5)); -fill (5.83984,98.26)--(27.5098,109.14)--(46.3799,113.6) - --(70.2798,114.03)--(74.3098,109.57)--(49.5398,105.54) - --(0.869873,67.95)--(5.83984,98.26)--cycle; -drawoptions (withcolor (0.8,0.3,0)); -fill (105.85,108.2)--(106.78,85.23)--(73.8799,84.2998) - --(66.25,38.1399)--(36.7998,1.05981)--(0.72998,1.05981) - --(0.869873,49.8799)..controls (0.869873,49.8799) and (24.7798,67.0898)..(36.0798,74.7898) - ..controls (47.3098,82.5) and (70.2798,104.6)..(72.5098,107.34) - ..controls (74.74,110) and (77.48,108.2)..(77.48,108.2) - --(105.85,108.2)--cycle; -drawoptions (withcolor (0.6,0.3,0)); -fill (75.25,107.77)--(105.85,107.77)--(105.85,85.23) - --(75.25,85.23)--(75.25,107.77)--cycle; -drawoptions (withcolor (0.2,0.2,0.2)); -pickup pencircle scaled 0.86bp; -draw (75.25,107.77)--(105.85,107.77)--(105.85,85.23) - --(75.25,85.23)--(75.25,107.77); -drawoptions (withcolor (1,1,1)); -pickup pencircle scaled 2.23bp; -draw (118.59,71.1899)--(117.22,61.8999); -drawoptions (withcolor (0.9,0.95,1)); -pickup pencircle scaled 0bp; -fill (266.48,1.56982)--(267.34,45.9199)--(158.84,82.3499) - --(149.26,81.2)--(144.15,86.3098)--(140.84,107.77) - --(104.84,107.26)--(105.92,86.3098)--(114.92,40.45) - --(55.5898,38.5798)--(37.23,0.849854)--(266.48,1.56982) - --cycle; -drawoptions (withcolor (0,0.2,1)); -fill (55.1599,40.0898)--(113.98,37.21)--(153.94,25.8999) - ..controls (153.94,25.8999) and (123.42,17.8398)..(145.88,14.6699) - ..controls (168.34,11.4299) and (158.91,11)..(152.65,7.3999) - ..controls (146.31,3.7998) and (118.95,1.05981)..(113.48,1.05981) - ..controls (108.08,1.05981) and (35.6499,1.05981)..(35.6499,1.05981) - --(55.1599,40.0898)--cycle; -drawoptions (withcolor (1,0.7,0)); -fill (146.96,157.59)--(149.77,157.59)--(149.77,118.06) - --(146.96,118.06)--(146.96,157.59)--cycle; -drawoptions (withcolor (0,0,0)); -pickup pencircle scaled 0.86bp; -draw (146.96,157.59)--(149.77,157.59)--(149.77,118.06) - --(146.96,118.06)--(146.96,157.59); -drawoptions (withcolor (1,0.7,0)); -pickup pencircle scaled 0bp; -fill (109.16,161.05)--(180.37,158.53)--(176.41,154.86) - --(108.66,157.3)--(109.16,161.05)--cycle; -drawoptions (withcolor (0.3,0.3,0.3)); -pickup pencircle scaled 0.86bp; -draw (109.16,161.05)--(180.37,158.53)--(176.41,154.86) - --(108.66,157.3)--(109.16,161.05); -drawoptions (withcolor (1,0.9,0)); -pickup pencircle scaled 0bp; -fill (107.65,166.74)--(192.18,162.27)--(189.94,159.54) - --(108.15,162.99)--(107.65,166.74)--cycle; -drawoptions (withcolor (0.3,0.3,0.3)); -pickup pencircle scaled 0.86bp; -draw (107.65,166.74)--(192.18,162.27)--(189.94,159.54) - --(108.15,162.99)--(107.65,166.74); -drawoptions (withcolor (1,0.9,0)); -pickup pencircle scaled 0bp; -fill (149.77,163.86)--(153.8,163.86)--(153.8,110.07) - --(149.77,110.07)--(149.77,163.86)--cycle; -drawoptions (withcolor (0,0,0)); -pickup pencircle scaled 0.86bp; -draw (149.77,163.86)--(153.8,163.86)--(153.8,110.07) - --(149.77,110.07)--(149.77,163.86); -drawoptions (withcolor (0.6,0.3,0)); -pickup pencircle scaled 2.23bp; -draw (112.26,165.3)--(104.77,109.14); -draw (109.59,159.82)--(102.75,116.62); -drawoptions (withcolor (0,0,0)); -pickup pencircle scaled 0.86bp; -draw (153.73,150.61)--(163.38,129.3); -draw (153.51,140.17)--(163.09,124.33); -drawoptions (withcolor (0,0.2,1)); -pickup pencircle scaled 0bp; -fill (162.58,130.74)--(168.99,130.74)--(168.99,114.9) - --(162.58,114.9)--(162.58,130.74)--cycle; -drawoptions (withcolor (0,0.4,1)); -fill (153.22,123.1)--(162.58,123.1)--(162.58,115.9) - --(153.22,115.9)--(153.22,123.1)--cycle; -drawoptions (withcolor (0.6,0.3,0)); -pickup pencircle scaled 0.86bp; -draw (101.89,117.92)--(149.05,117.42); -pickup pencircle scaled 2.02bp; -draw (103.98,113.46)--(150.56,113.67); -pickup pencircle scaled 0bp; -fill (102.25,109.71)--(146.82,109.71)--(146.82,107.77) - --(102.25,107.77)--(102.25,109.71)--cycle; -drawoptions (withcolor (0,0,0)); -pickup pencircle scaled 0.86bp; -draw (102.25,109.71)--(146.82,109.71)--(146.82,107.77) - --(102.25,107.77)--(102.25,109.71); -drawoptions (withcolor (1,1,1)); -pickup pencircle scaled 0bp; -fill (90.4399,158.02)--(92.1699,158.02)--(92.1699,117.92) - --(90.4399,117.92)--(90.4399,158.02)--cycle; -drawoptions (withcolor (0.3,0.3,0.3)); -pickup pencircle scaled 0.86bp; -draw (90.4399,158.02)--(92.1699,158.02)--(92.1699,117.92) - --(90.4399,117.92)--(90.4399,158.02); -drawoptions (withcolor (0,0,0)); -draw (161.86,94.8799)--(164.1,94.8799)--(164.1,92.22) - --(161.86,92.22)--(161.86,94.8799); -drawoptions (withcolor (0.8,0.3,0)); -pickup pencircle scaled 0bp; -fill (147.32,104.1)--(149.05,104.1)--(149.05,87.97) - --(147.32,87.97)--(147.32,104.1)--cycle; -drawoptions (withcolor (0,0,0)); -pickup pencircle scaled 0.86bp; -draw (147.32,104.1)--(149.05,104.1)--(149.05,87.97) - --(147.32,87.97)--(147.32,104.1); -drawoptions (withcolor (0.6,0.3,0)); -pickup pencircle scaled 0bp; -fill (148.54,104.6)--(150.27,104.6)--(150.27,87.6799) - --(148.54,87.6799)--(148.54,104.6)--cycle; -drawoptions (withcolor (0,0,0)); -pickup pencircle scaled 0.86bp; -draw (148.54,104.6)--(150.27,104.6)--(150.27,87.6799) - --(148.54,87.6799)--(148.54,104.6); -drawoptions (withcolor (0.6,0.3,0)); -pickup pencircle scaled 0bp; -fill (141.2,107.55)--(147.1,107.55)--(147.1,87.25) - --(141.2,87.25)--(141.2,107.55)--cycle; -drawoptions (withcolor (0.2,0.2,0.2)); -pickup pencircle scaled 0.86bp; -draw (141.2,107.55)--(147.1,107.55)--(147.1,87.25) - --(141.2,87.25)--(141.2,107.55); -drawoptions (withcolor (0,0.75,1)); -pickup pencircle scaled 0bp; -fill (141.49,88.1799)--(153.58,88.1799)--(161.22,81.99) - --(143.22,81.2)--(141.49,88.1799)--cycle; -drawoptions (withcolor (0.3,0.3,0.3)); -pickup pencircle scaled 0.86bp; -draw (141.49,88.1799)--(153.58,88.1799)--(161.22,81.99) - --(143.22,81.2)--(141.49,88.1799); -drawoptions (withcolor (1,0.4,0)); -pickup pencircle scaled 0bp; -fill (146.53,110.22)--(165.1,110.22)--(165.1,103.09) - --(162.8,103.09)--(152.94,87.97)--(147.32,87.97) - --(146.53,110.22)--cycle; -drawoptions (withcolor (0.4,0.4,0.4)); -pickup pencircle scaled 0.86bp; -draw (146.53,110.22)--(165.1,110.22)--(165.1,103.09) - --(162.8,103.09)--(152.94,87.97)--(147.32,87.97) - --(146.53,110.22); -drawoptions (withcolor (1,0.5,0)); -pickup pencircle scaled 0bp; -fill (285.92,78.3899)--(163.09,104.31)--(152.43,88.6899) - --(160.57,82.5)..controls (160.57,82.5) and (165.39,79.76)..(175.62,74.2898) - ..controls (185.84,68.8198) and (187.86,71.5498)..(192.61,67.45) - ..controls (197.36,63.3398) and (215.65,62.0498)..(215.65,62.0498) - --(285.63,30.6599)--(285.92,78.3899)--cycle; -drawoptions (withcolor (0.6,0.3,0)); -pickup pencircle scaled 0.86bp; -draw (285.92,78.3899)--(163.09,104.31)--(152.43,88.6899) - --(160.57,82.5)..controls (160.57,82.5) and (165.39,79.76)..(175.62,74.2898) - ..controls (185.84,68.8198) and (187.86,71.5498)..(192.61,67.45) - ..controls (197.36,63.3398) and (215.65,62.0498)..(215.65,62.0498) - --(285.63,30.6599)--(285.92,78.3899); -drawoptions (withcolor (0.2,0.9,0.2)); -pickup pencircle scaled 0bp; -fill (40.1799,214.47)..controls (47.6699,214.47) and (37.0198,202.59)..(40.3999,195.82) - ..controls (43.7798,188.98) and (41.0498,194.46)..(47.8899,187.62) - ..controls (54.6599,180.78) and (59.4099,178.76)..(59.4099,173.29) - ..controls (59.4099,167.82) and (59.4099,166.45)..(60.1299,159.61) - ..controls (60.7798,152.77) and (64.8098,145.93)..(65.5298,141.82) - ..controls (66.25,137.79) and (68.98,134.34)..(66.25,130.95) - ..controls (63.5098,127.57) and (62.7898,127.57)..(52.6399,127.57) - ..controls (42.49,127.57) and (42.49,130.3)..(33.6299,125.48) - ..controls (24.7798,120.73) and (25.5,116.62)..(18.6599,120.73) - ..controls (11.8899,124.76) and (1.65991,128.22)..(1.65991,128.22) - --(1.37988,214.47)--(40.1799,214.47)--cycle; -drawoptions (withcolor (0,0.5,1)); -fill (122.41,51.8999)..controls (122.41,51.8999) and (121.76,52.47)..(120.25,49.3799) - ..controls (118.66,46.21) and (118.66,44.3398)..(115.86,39.9399) - ..controls (113.05,35.48) and (114.27,36.49)..(110.53,32.6699) - ..controls (106.71,28.9299) and (109.38,32.3799)..(104.34,28.9299) - ..controls (99.2998,25.47) and (94.2598,26.3398)..(89.7898,26.7) - ..controls (85.3999,26.98) and (76.6199,25.1799)..(72.8699,27.3398) - ..controls (69.1299,29.5798) and (67.8999,30.51)..(65.74,34.26) - ..controls (63.5798,38) and (63.5798,38)..(61.71,41.46) - ..controls (59.8398,44.9099) and (59.3398,48.5798)..(58.2598,50.3098) - --(54.8699,55.6399)--(122.41,51.8999)--cycle; -drawoptions (withcolor (0.2,0.2,0.2)); -pickup pencircle scaled 1.44bp; -draw (122.41,51.8999)..controls (122.41,51.8999) and (121.76,52.47)..(120.25,49.3799) - ..controls (118.66,46.21) and (118.66,44.3398)..(115.86,39.9399) - ..controls (113.05,35.48) and (114.27,36.49)..(110.53,32.6699) - ..controls (106.71,28.9299) and (109.38,32.3799)..(104.34,28.9299) - ..controls (99.2998,25.47) and (94.2598,26.3398)..(89.7898,26.7) - ..controls (85.3999,26.98) and (76.6199,25.1799)..(72.8699,27.3398) - ..controls (69.1299,29.5798) and (67.8999,30.51)..(65.74,34.26) - ..controls (63.5798,38) and (63.5798,38)..(61.71,41.46) - ..controls (59.8399,44.9099) and (59.3398,48.5798)..(58.2598,50.3098) - --(54.8699,55.6399)--(122.41,51.8999); -drawoptions (withcolor (0,0,0)); -pickup pencircle scaled 0.86bp; -draw (202.04,156.87)--(200.53,112.81)--(234.87,107.26) - --(233.29,167.1)--(202.04,156.87); -drawoptions (withcolor (1,0.25,0.25)); -pickup pencircle scaled 0bp; -fill (246.9,189.63)--(223.06,177.32)--(202.76,160.26) - --(230.55,170.55)--(246.9,189.63)--cycle; -drawoptions (withcolor (0.2,0.2,0.2)); -pickup pencircle scaled 0.86bp; -draw (246.9,189.63)--(223.06,177.32)--(202.76,160.26) - --(230.55,170.55)--(246.9,189.63); -drawoptions (withcolor (1,0.4,0.4)); -pickup pencircle scaled 0bp; -fill (246.25,188.98)--(230.98,170.62)--(274.76,169.83) - --(246.25,188.98)--cycle; -drawoptions (withcolor (0.2,0.2,0.2)); -pickup pencircle scaled 0.86bp; -draw (246.25,188.98)--(230.98,170.62)--(274.76,169.83) - --(246.25,188.98); -drawoptions (withcolor (0.3,1,0.3)); -pickup pencircle scaled 0bp; -fill (255.75,122.1)..controls (252.3,122.1) and (253.02,121.45)..(248.26,125.48) - ..controls (243.51,129.58) and (242.79,126.2)..(239.41,135.06) - ..controls (236.02,143.91) and (234.01,141.18)..(234.66,148.66) - ..controls (235.3,156.22) and (230.62,155.5)..(236.02,163.06) - ..controls (241.42,170.55) and (240.13,166.45)..(245.53,174.66) - ..controls (251,182.79) and (250.28,185.53)..(255.03,186.9) - ..controls (259.78,188.26) and (258.49,194.38)..(264.61,186.9) - ..controls (270.66,179.41) and (271.3,174.58)..(276.06,173.94) - ..controls (280.88,173.29) and (282.25,175.95)..(282.25,167.82) - ..controls (282.25,159.61) and (282.9,154.86)..(277.5,149.38) - ..controls (272.02,143.91) and (267.27,145.28)..(266.55,137.07) - ..controls (265.9,128.86) and (266.55,124.83)..(263.17,124.11) - ..controls (259.78,123.39) and (255.75,122.1)..(255.75,122.1) - --cycle; -drawoptions (withcolor (0.8,0.3,0)); -fill (270.66,52.47)--(276.78,52.47)--(276.78,0.629883) - --(270.66,0.629883)--(270.66,52.47)--cycle; -drawoptions (withcolor (0,0,0)); -pickup pencircle scaled 0.86bp; -draw (270.66,52.47)--(276.78,52.47)--(276.78,0.629898) - --(270.66,0.629898)--(270.66,52.47); -drawoptions (withcolor (0.9,0,0)); -pickup pencircle scaled 0bp; -fill (90.5798,158.02)--(92.0198,158.02)--(92.0198,152.84) - --(90.5798,152.84)--(90.5798,158.02)--cycle; -fill (90.5798,147.66)--(92.0198,147.66)--(92.0198,142.47) - --(90.5798,142.47)--(90.5798,147.66)--cycle; -fill (90.5798,137.43)--(92.0198,137.43)--(92.0198,132.25) - --(90.5798,132.25)--(90.5798,137.43)--cycle; -fill (90.5798,128.14)--(92.0198,128.14)--(92.0198,122.96) - --(90.5798,122.96)--(90.5798,128.14)--cycle; -drawoptions (withcolor (1,0.9,0)); -fill (203.34,160.98)--(200.53,160.98)--(199.38,155.29) - --(233.22,167.17)--(236.02,169.98)--(230.34,169.98) - --(203.34,160.98)--cycle; -drawoptions (withcolor (0,0,0)); -pickup pencircle scaled 0.86bp; -draw (203.34,160.98)--(200.53,160.98)--(199.38,155.29) - --(233.22,167.17)--(236.02,169.98)--(230.34,169.98) - --(203.34,160.98); -drawoptions (withcolor (1,1,0.7)); -pickup pencircle scaled 0bp; -fill (232.14,166.59)--(235.52,107.77)--(202.11,112.52) - --(202.83,155.65)--(232.14,166.59)--cycle; -drawoptions (withcolor (0.8,0.8,0.8)); -pickup pencircle scaled 0.22bp; -draw (232.14,166.59)--(235.52,107.77)--(202.11,112.52) - --(202.83,155.65)--(232.14,166.59); -drawoptions (withcolor (0.3,0.3,0.3)); -pickup pencircle scaled 0.86bp; -draw (214.42,156.3)--(214.42,145.35)--(217.81,146.07) - --(217.16,157.66)--(214.42,156.3); -drawoptions (withcolor (0.4,0.4,0.4)); -pickup pencircle scaled 1.44bp; -draw (219.9,133.04)--(219.75,109.86)--(230.77,108.42) - --(230.12,133.04)--(219.9,133.04); -drawoptions (withcolor (0,0.8,0)); -pickup pencircle scaled 0bp; -fill (212.34,118.64)..controls (217.16,122.1) and (219.82,117.34)..(221.19,126.2) - ..controls (222.56,135.13) and (224.65,137.86)..(221.91,141.25) - ..controls (219.18,144.7) and (213.06,146.07)..(213.06,146.07) - ..controls (213.06,146.07) and (213.7,152.26)..(208.3,149.46) - ..controls (202.83,146.72) and (196.06,153.42)..(196.06,145.93) - ..controls (196.06,138.37) and (200.1,135.13)..(203.55,131.67) - ..controls (206.94,128.29) and (206.22,127.57)..(207.58,124.18) - ..controls (208.95,120.73) and (212.34,118.64)..(212.34,118.64) - --cycle; -drawoptions (withcolor (0.6,0.3,0)); -fill (251.86,122.1)--(257.34,122.1)--(257.34,92.0698) - --(251.86,92.0698)--(251.86,122.1)--cycle; -pickup pencircle scaled 0.86bp; -draw (251.86,122.1)--(257.34,122.1)--(257.34,92.0698) - --(251.86,92.0698)--(251.86,122.1); -drawoptions (withcolor (0.6,0.85,1)); -pickup pencircle scaled 0bp; -fill (116.5,62.8398)..controls (116.5,62.8398) and (123.06,57.22)..(123.06,54.99) - ..controls (123.06,52.8298) and (122.98,51.25)..(118.66,49.95) - ..controls (114.27,48.73) and (104.62,47.7898)..(102.1,47.7898) - ..controls (99.5798,47.7898) and (93.3198,46.8599)..(91.45,46.8599) - ..controls (89.5798,46.8599) and (77.0498,46.21)..(74.5298,46.8599) - ..controls (72.0798,47.4299) and (65.8198,46.21)..(63.5798,47.7898) - ..controls (61.4199,49.3799) and (58.3298,49.95)..(56.74,52.47) - ..controls (55.1599,54.99) and (55.1599,55.3499)..(55.1599,58.1599) - ..controls (55.1599,60.97) and (59.8398,64.4199)..(59.8398,64.4199) - --(116.5,62.8398)--cycle; -drawoptions (withcolor (0.2,0.2,0.2)); -pickup pencircle scaled 1.44bp; -draw (116.5,62.8398)..controls (116.5,62.8398) and (123.06,57.22)..(123.06,54.99) - ..controls (123.06,52.8298) and (122.98,51.25)..(118.66,49.95) - ..controls (114.27,48.73) and (104.62,47.7898)..(102.1,47.7898) - ..controls (99.5798,47.7898) and (93.3198,46.8599)..(91.45,46.8599) - ..controls (89.5798,46.8599) and (77.0498,46.21)..(74.5298,46.8599) - ..controls (72.0798,47.4299) and (65.8198,46.21)..(63.5798,47.7898) - ..controls (61.4199,49.3799) and (58.3298,49.95)..(56.74,52.47) - ..controls (55.1599,54.99) and (55.1599,55.3498)..(55.1599,58.1599) - ..controls (55.1599,60.97) and (59.8399,64.4199)..(59.8399,64.4199) - --(116.5,62.8398); -drawoptions (withcolor (0.8,0.9,1)); -pickup pencircle scaled 0bp; -fill (63.3699,81.4199)..controls (63.3699,81.4199) and (81.5098,83.5)..(87.8499,83.5) - ..controls (94.1799,83.5) and (111.82,82.1399)..(111.82,82.1399) - ..controls (111.82,82.1399) and (114.06,71.4099)..(114.06,70.0398) - ..controls (114.06,68.74) and (115.64,64.6399)..(115.64,64.6399) - --(116.29,54.6299)..controls (116.29,54.6299) and (98.5,52.5398)..(93.25,52.5398) - ..controls (87.99,52.5398) and (69.2698,50.5999)..(67.47,51.25) - ..controls (65.6699,51.8999) and (65.6699,59.8198)..(65.6699,59.8198) - --(63.3699,63.49)--(63.3699,81.4199)--cycle; -drawoptions (withcolor (0,0,0)); -pickup pencircle scaled 0.86bp; -draw (63.3699,81.4199)..controls (63.3699,81.4199) and (81.5098,83.5)..(87.8499,83.5) - ..controls (94.1799,83.5) and (111.82,82.1399)..(111.82,82.1399) - ..controls (111.82,82.1399) and (114.06,71.4099)..(114.06,70.0398) - ..controls (114.06,68.74) and (115.64,64.6399)..(115.64,64.6399) - --(116.29,54.6299)..controls (116.29,54.6299) and (98.5,52.5398)..(93.25,52.5398) - ..controls (87.99,52.5398) and (69.2698,50.5999)..(67.47,51.25) - ..controls (65.6699,51.8999) and (65.6699,59.8198)..(65.6699,59.8198) - --(63.3699,63.49)--(63.3699,81.4199); -drawoptions (withcolor (1,1,1)); -pickup pencircle scaled 0bp; -fill (66.6799,78.25)..controls (68.9099,79.26) and (74.24,79.26)..(75.8198,79.26) - ..controls (77.3398,79.26) and (84.25,79.5398)..(84.25,79.5398) - --(85.1799,77.0198)--(85.1799,72.6299)--(83.5999,70.76) - ..controls (83.5999,70.76) and (80.22,70.76)..(77.0498,70.1099) - ..controls (73.8799,69.46) and (68.2598,68.5298)..(68.2598,68.5298) - ..controls (68.2598,68.5298) and (66.0999,69.46)..(66.0999,71.0498) - ..controls (66.0999,72.6299) and (66.6799,78.25)..(66.6799,78.25) - --cycle; -drawoptions (withcolor (0.4,0.4,0.4)); -pickup pencircle scaled 0.86bp; -draw (66.6799,78.25)..controls (68.9099,79.26) and (74.24,79.26)..(75.8198,79.26) - ..controls (77.3398,79.26) and (84.25,79.5398)..(84.25,79.5398) - --(85.1799,77.0198)--(85.1799,72.6299)--(83.5999,70.76) - ..controls (83.5999,70.76) and (80.22,70.76)..(77.0498,70.1099) - ..controls (73.8799,69.46) and (68.2598,68.5298)..(68.2598,68.5298) - ..controls (68.2598,68.5298) and (66.0999,69.46)..(66.0999,71.0498) - ..controls (66.0999,72.6299) and (66.6799,78.25)..(66.6799,78.25) - --cycle; -drawoptions (withcolor (1,1,1)); -pickup pencircle scaled 0bp; -fill (93.0298,79.8298)--(105.85,79.5398)..controls (105.85,79.5398) and (108.37,79.26)..(108.66,77.3098) - ..controls (108.94,75.4399) and (109.3,72.9199)..(109.3,72.9199) - ..controls (109.3,72.9199) and (108.94,70.76)..(107.43,70.76) - ..controls (105.85,70.76) and (93.6099,70.3999)..(93.6099,70.3999) - ..controls (93.6099,70.3999) and (91.45,71.3398)..(91.45,72.9199) - ..controls (91.45,74.5) and (91.1599,77.3098)..(91.1599,77.3098) - --(93.0298,79.8298)--cycle; -drawoptions (withcolor (0.4,0.4,0.4)); -pickup pencircle scaled 0.86bp; -draw (93.0298,79.8298)--(105.85,79.5398)..controls (105.85,79.5398) and (108.37,79.26)..(108.66,77.3098) - ..controls (108.94,75.4399) and (109.3,72.9199)..(109.3,72.9199) - ..controls (109.3,72.9199) and (108.94,70.76)..(107.43,70.76) - ..controls (105.85,70.76) and (93.6098,70.3999)..(93.6098,70.3999) - ..controls (93.6098,70.3999) and (91.45,71.3399)..(91.45,72.9199) - ..controls (91.45,74.5) and (91.1599,77.3098)..(91.1599,77.3098) - --(93.0298,79.8298); -drawoptions (withcolor (1,1,1)); -pickup pencircle scaled 0bp; -fill (95.48,61.3298)..controls (98.6499,61.3298) and (108.01,61.3298)..(108.01,61.3298) - --(110.82,58.8098)--(110.82,56.2898)..controls (108.01,55.3499) and (96.4199,54.99)..(96.4199,54.99) - ..controls (96.4199,54.99) and (93.3198,54.7)..(93.3198,56.2898) - ..controls (93.3198,57.8699) and (93.0298,59.3799)..(93.0298,59.3799) - --(95.48,61.3298)--cycle; -drawoptions (withcolor (0.4,0.4,0.4)); -pickup pencircle scaled 0.86bp; -draw (95.48,61.3298)..controls (98.6499,61.3298) and (108.01,61.3298)..(108.01,61.3298) - --(110.82,58.8098)--(110.82,56.2898)..controls (108.01,55.3499) and (96.4199,54.99)..(96.4199,54.99) - ..controls (96.4199,54.99) and (93.3198,54.7)..(93.3198,56.2898) - ..controls (93.3198,57.8699) and (93.0298,59.3799)..(93.0298,59.3799) - --(95.48,61.3298); -drawoptions (withcolor (1,1,1)); -pickup pencircle scaled 0bp; -fill (84.5398,60.0298)--(88.2798,58.8098)--(88.2798,55.6399) - ..controls (88.2798,55.6399) and (88.3499,54.7)..(86.1199,54.7) - ..controls (83.96,54.7) and (71.72,53.1199)..(71.72,53.1199) - --(69.2,54.7)--(69.2,57.51)--(71.4299,59.74) - --(84.5398,60.0298)--cycle; -drawoptions (withcolor (0.4,0.4,0.4)); -pickup pencircle scaled 0.86bp; -draw (84.5398,60.0298)--(88.2798,58.8098)--(88.2798,55.6399) - ..controls (88.2798,55.6399) and (88.3499,54.7)..(86.1199,54.7) - ..controls (83.96,54.7) and (71.72,53.1199)..(71.72,53.1199) - --(69.2,54.7)--(69.2,57.51)--(71.4299,59.74) - --(84.5398,60.0298); -drawoptions (withcolor (0,0.7,1)); -pickup pencircle scaled 2.23bp; -draw (65.3799,59.8198)..controls (70.6399,63.0598) and (81.22,66.6599)..(88.2798,66.4399) - ..controls (95.2598,66.22) and (111.97,65.2898)..(115.64,61.47); -drawoptions (withcolor (0.4,0.8,1)); -pickup pencircle scaled 0bp; -fill (111.82,82.1399)--(105.92,86.46)..controls (105.92,86.46) and (95.98,87.3899)..(93.8999,87.3899) - ..controls (91.8799,87.3899) and (81.9399,87.3899)..(81.9399,87.3899) - --(74.24,87.3899)--(68.3398,84.8699)--(63.5798,81.9199) - --(64.95,81.2)..controls (64.95,81.2) and (79.4199,83.5)..(87.3398,83.2898) - ..controls (95.2598,83.0698) and (111.61,82.1399)..(111.82,82.1399) - --cycle; -drawoptions (withcolor (0.2,0.2,0.2)); -pickup pencircle scaled 1.44bp; -draw (111.82,82.1399)--(105.92,86.46)..controls (105.92,86.46) and (95.98,87.3899)..(93.8999,87.3899) - ..controls (91.8799,87.3899) and (81.9399,87.3899)..(81.9399,87.3899) - --(74.24,87.3899)--(68.3398,84.8699)--(63.5798,81.9199) - --(64.95,81.2)..controls (64.95,81.2) and (79.4199,83.5)..(87.3398,83.2898) - ..controls (95.2598,83.0698) and (111.61,82.1399)..(111.82,82.1399) - --cycle; -drawoptions (withcolor (1,1,1)); -pickup pencircle scaled 2.81bp; -draw (113.84,72.8498)..controls (114.92,72.8498) and (116.29,72.8498)..(118.16,71.7) - ..controls (119.96,70.5398) and (119.53,70.5398)..(121.11,68.96) - ..controls (122.62,67.3799) and (121.98,66.22)..(121.98,66.22) - ..controls (121.98,66.22) and (120.82,65.5798)..(119.02,65.5798) - ..controls (117.22,65.5798) and (111.82,65.0698)..(109.74,65.0698) - ..controls (107.72,65.0698) and (103.4,65.0698)..(99.7998,65.0698) - ..controls (96.2,65.0698) and (90.9399,64.8599)..(88.2798,64.8599) - ..controls (85.5398,64.8599) and (79.4199,64.1399)..(76.47,63.9199) - ..controls (73.5198,63.7) and (69.49,63.7)..(66.0999,63.7) - ..controls (62.72,63.7) and (63.7998,62.7698)..(61.3499,64.1399) - ..controls (58.8298,65.5798) and (57.97,64.2099)..(57.97,66.6599) - ..controls (57.97,69.1799) and (56.8198,69.46)..(59.3398,71.7) - ..controls (61.7798,73.9299) and (61.3499,73.0598)..(63.1499,73.0598); -pickup pencircle scaled 2.23bp; -draw (57.97,67.0899)--(57.97,59.1699); -draw (62.9399,62.7698)--(62.9399,51.25); -draw (90.2998,64.8598)--(91.45,48.9399); -draw (121.26,66.01)--(120.61,54.6299); -draw (60.9199,72.8499)--(62,66.01); -draw (114.7,72.5598)--(114.7,67.3799); -pickup pencircle scaled 2.81bp; -draw (84.6099,87.0999)--(84.8999,94.3799); -draw (96.8498,86.46)--(96.8498,90.7798); -drawoptions (withcolor (1,0.9,0)); -pickup pencircle scaled 0bp; -fill (96.6299,96.25)..controls (98,96.25) and (99.1499,95.1699)..(99.1499,93.73) - ..controls (99.1499,92.2898) and (98,91.21)..(96.6299,91.21) - ..controls (95.2598,91.21) and (94.1099,92.2898)..(94.1099,93.73) - ..controls (94.1099,95.1699) and (95.2598,96.25)..(96.6299,96.25) - --cycle; -drawoptions (withcolor (0.9,0,0)); -pickup pencircle scaled 2.23bp; -draw (96.6299,96.25)..controls (98,96.25) and (99.1499,95.1699)..(99.1499,93.73) - ..controls (99.1499,92.2898) and (98,91.21)..(96.6299,91.21) - ..controls (95.2598,91.21) and (94.1099,92.2898)..(94.1099,93.73) - ..controls (94.1099,95.1699) and (95.2598,96.25)..(96.6299,96.25) - --cycle; -drawoptions (withcolor (1,0.4,0)); -pickup pencircle scaled 0bp; -fill (277.14,29.4299)--(285.99,29.4299)--(285.99,0.699951) - --(277.14,0.699951)--(277.14,29.4299)--cycle; -drawoptions (withcolor (0.6,0.3,0)); -pickup pencircle scaled 0.86bp; -draw (277.14,29.4299)--(285.99,29.4299)--(285.99,0.699936) - --(277.14,0.699936)--(277.14,29.4299); -drawoptions (withcolor (1,1,1)); -pickup pencircle scaled 0bp; -fill (271.16,51.75)--(276.49,52.6199)--(276.7,49.95) - --(271.16,48.9399)--(271.16,51.75)--cycle; -drawoptions (withcolor (0,0,0)); -pickup pencircle scaled 0.86bp; -draw (271.16,51.75)--(276.49,52.6199)--(276.7,49.95) - --(271.16,48.9399)--(271.16,51.75); -drawoptions (withcolor (1,1,1)); -pickup pencircle scaled 0bp; -fill (285.56,29.3599)--(285.27,32.5298)--(276.85,32.5298) - --(277.64,29.3599)--(285.56,29.3599)--cycle; -drawoptions (withcolor (0,0,0)); -pickup pencircle scaled 0.86bp; -draw (285.56,29.3599)--(285.27,32.5298)--(276.85,32.5298) - --(277.64,29.3599)--(285.56,29.3599); -drawoptions (withcolor (1,1,1)); -pickup pencircle scaled 0bp; -fill (165.82,104.53)--(172.95,104.53)--(172.95,102.08) - --(165.82,102.08)--(165.82,104.53)--cycle; -drawoptions (withcolor (0,0,0)); -pickup pencircle scaled 0.86bp; -draw (165.82,104.53)--(172.95,104.53)--(172.95,102.08) - --(165.82,102.08)--(165.82,104.53); -drawoptions (withcolor (0.6,0.3,0)); -pickup pencircle scaled 0bp; -fill (162.37,92.22)..controls (162.58,92.22) and (162.87,92.22)..(163.16,92.22) - ..controls (163.52,92.22) and (163.81,92.22)..(164.1,92.22) - ..controls (164.02,89.7698) and (164.02,87.3198)..(164.02,84.8699) - ..controls (164.02,82.3499) and (164.02,79.8999)..(164.1,77.3799) - ..controls (163.81,77.5298) and (163.52,77.6699)..(163.16,77.74) - ..controls (162.94,77.8198) and (162.58,78.0298)..(162.37,78.0298) - ..controls (162.3,80.4099) and (162.3,82.7798)..(162.3,85.1599) - ..controls (162.3,87.46) and (162.37,89.9099)..(162.37,92.22) - --cycle; -drawoptions (withcolor (0.3,0.3,0.3)); -pickup pencircle scaled 0.86bp; -draw (162.37,92.22)..controls (162.58,92.22) and (162.87,92.22)..(163.16,92.22) - ..controls (163.52,92.22) and (163.81,92.22)..(164.1,92.22) - ..controls (164.02,89.7698) and (164.02,87.3198)..(164.02,84.8699) - ..controls (164.02,82.3499) and (164.02,79.8999)..(164.1,77.3799) - ..controls (163.81,77.5298) and (163.52,77.6699)..(163.16,77.74) - ..controls (162.94,77.8198) and (162.58,78.0298)..(162.37,78.0298) - ..controls (162.3,80.4099) and (162.3,82.7798)..(162.3,85.1599) - ..controls (162.3,87.46) and (162.37,89.9099)..(162.37,92.22) - --cycle; -drawoptions (withcolor (1,1,1)); -pickup pencircle scaled 0bp; -fill (161.94,92.6499)--(164.31,92.6499)--(164.31,93.6599) - --(161.94,93.6599)--(161.94,92.6499)--cycle; -drawoptions (withcolor (0.2,0.2,0.2)); -pickup pencircle scaled 0.86bp; -draw (161.94,92.6499)--(164.31,92.6499)--(164.31,93.6599) - --(161.94,93.6599)--(161.94,92.6499); -drawoptions (withcolor (1,1,1)); -pickup pencircle scaled 0bp; -fill (147.25,105.9)--(150.34,105.9)--(150.34,104.53) - --(147.25,104.53)--(147.25,105.9)--cycle; -drawoptions (withcolor (0.1,0.1,0.1)); -pickup pencircle scaled 0.86bp; -draw (147.25,105.9)--(150.34,105.9)--(150.34,104.53) - --(147.25,104.53)--(147.25,105.9); -drawoptions (withcolor (0,0.7,1)); -pickup pencircle scaled 0bp; -fill (105.85,90.6299)..controls (110.82,92.5) and (110.82,92)..(113.98,92.9399) - ..controls (117.08,93.7998) and (117.58,92.5)..(120.25,92.5) - ..controls (122.91,92.5) and (128.67,92)..(130.62,92) - --(135.58,92)--(141.85,93.3699)--(143.22,82.5) - --(154.45,82.5)--(159.78,79.3298)..controls (159.78,79.3298) and (159.34,72.1299)..(155.74,72.1299) - ..controls (152.22,72.1299) and (147.61,69.3899)..(144.08,72.1299) - ..controls (140.55,74.7898) and (136.88,75.22)..(134.22,74.7898) - ..controls (131.55,74.3599) and (126.94,73.9299)..(123.42,73.9299) - ..controls (119.82,73.9299) and (113.05,73.9299)..(113.05,73.9299) - --(111.25,82.9299)--(105.85,87.46)--(105.85,90.6299) - --cycle; -drawoptions (withcolor (0,0.4,1)); -fill (109.88,100.93)..controls (116.22,103.45) and (119.82,103.23)..(123.85,103.66) - ..controls (127.95,104.1) and (132.49,104.89)..(133.35,104.6) - --(138.75,102.8)--(136.02,99.6299)..controls (136.02,99.6299) and (138.25,93.2998)..(136.02,95.0999) - ..controls (133.78,96.8999) and (130.18,96.8999)..(127.02,97.3298) - ..controls (123.85,97.76) and (118.45,95.5298)..(121.18,95.5298) - ..controls (123.85,95.5298) and (131.98,95.5298)..(134.65,94.23) - --(139.18,91.9299)..controls (139.18,91.9299) and (112.18,91.9299)..(108.51,91.9299) - ..controls (104.91,91.9299) and (104.55,96.0298)..(106.78,96.0298) - ..controls (109.02,96.0298) and (115.78,98.7)..(115.78,98.7) - --(107.65,100.06)--(109.88,100.93)--cycle; -drawoptions (withcolor (0.6,0.3,0)); -fill (45.9399,128.07)..controls (45.9399,128.07) and (45.0798,122.6)..(45.9399,118.57) - ..controls (46.8799,114.54) and (45.9399,113.17)..(47.3098,110.43) - ..controls (48.6799,107.77) and (50.48,104.17)..(50.48,104.17) - --(54.9399,101.5)--(52.71,99.6299)--(47.74,99.6299) - --(43.21,103.3)--(41.9099,114.03)--(41.4099,123.1) - --(40.98,127.64)--(45.9399,128.07)--cycle; -fill (45.0798,95.1699)..controls (45.0798,95.1699) and (42.2698,98.7)..(41.4099,101.94) - ..controls (40.5398,105.1) and (38.74,111.37)..(38.74,114.97) - ..controls (38.74,118.57) and (38.74,128.07)..(38.74,128.07) - --(31.5398,124.04)..controls (31.5398,124.04) and (31.0398,119.5)..(31.5398,116.34) - ..controls (31.98,113.17) and (32.8398,108.2)..(33.3398,105.1) - ..controls (33.7798,101.94) and (34.21,100.57)..(34.21,97.8298) - ..controls (34.21,95.1699) and (39.6799,94.23)..(39.6799,94.23) - --(45.0798,95.1699)--cycle; -fill (27.9399,87.46)..controls (27.9399,87.46) and (27.5098,96.46)..(27.5098,99.2) - ..controls (27.5098,101.94) and (27.5098,113.17)..(27.5098,113.17) - --(27.0798,120.37)--(22.98,119.07)--(15.3398,123.61) - ..controls (15.3398,123.61) and (15.3398,113.6)..(15.3398,110.94) - ..controls (15.3398,108.2) and (15.7798,101.5)..(15.3398,96.97) - ..controls (14.9099,92.4299) and (15.7798,92)..(14.9099,88.8298) - ..controls (13.98,85.6599) and (21.1799,86.5298)..(21.1799,86.5298) - --(26.1399,85.23)--(27.9399,87.46)--cycle; -fill (1.37988,78.3899)--(15.3398,77.5298)..controls (15.3398,77.5298) and (14.8398,80.7)..(13.5398,83.3599) - ..controls (12.1799,86.0999) and (7.63989,86.96)..(6.77979,92.8599) - ..controls (5.83984,98.7698) and (4.53979,102.8)..(4.53979,107.77) - ..controls (4.53979,112.74) and (4.10986,127.21)..(4.10986,127.21) - --(1.37988,127.64)--(1.37988,78.3899)--cycle; -drawoptions (withcolor (0,0.75,1)); -fill (220.62,63.9199)--(217.45,58.5198)--(223.78,51.6799) - ..controls (223.78,51.6799) and (230.98,47.22)..(234.15,46.2798) - ..controls (237.32,45.3398) and (244.52,43.5398)..(244.52,43.5398) - --(257.12,43.5398)--(261.66,44.0498)--(267.42,42.6799) - --(266.55,36.3398)--(259.78,32.74)..controls (259.78,32.74) and (254.46,30.9399)..(248.98,32.74) - ..controls (243.58,34.5398) and (240.92,34.1099)..(236.38,34.98) - ..controls (231.85,35.9099) and (222.42,37.71)..(221.98,40.45) - ..controls (221.55,43.1099) and (219.32,49.0198)..(219.32,49.0198) - --(217.45,54.4199)--(218.38,62.5498)--(220.62,63.9199) - --cycle; -drawoptions (withcolor (0.6,0.3,0)); -fill (219.75,63.9199)--(235.02,63.9199)..controls (235.02,63.9199) and (238.18,63.9199)..(243.15,62.1199) - ..controls (248.12,60.3198) and (257.12,56.22)..(257.12,56.22) - --(262.09,51.25)--(266.98,48.5798)--(266.98,42.6799) - --(260.72,44.0498)--(246.32,41.74)--(231.42,46.7798) - --(222.42,52.1799)--(218.82,57.1499)--(219.75,63.9199) - --cycle; -drawoptions (withcolor (1,0.9,0)); -fill (223.78,55.7798)--(227.38,60.75)--(231.42,61.6899) - ..controls (231.42,61.6899) and (235.88,61.6899)..(238.62,61.26) - ..controls (241.35,60.75) and (245.38,59.3799)..(248.12,57.5798) - ..controls (250.78,55.7798) and (256.18,52.6199)..(256.18,52.6199) - --(254.89,48.5798)--(249.42,46.2798)--(243.58,48.0798) - --(237.75,53.0498)--(233.65,54.9199)--(223.78,55.7798) - --cycle; -drawoptions (withcolor (0.4,0.4,0.4)); -fill (221.34,54.4199)--(224.65,50.3799)..controls (224.65,50.3799) and (229.62,47.6499)..(232.35,46.7798) - ..controls (235.02,45.8499) and (240.56,44.6199)..(240.92,44.48) - --(246.75,42.25)--(251.29,48.0798)--(243.58,51.25) - --(236.02,54.4199)--(229.18,56.22)--(221.34,54.4199) - --cycle; -drawoptions (withcolor (0.8,0.8,0.8)); -fill (219.32,63.0598)--(219.32,58.0198)--(224.22,51.25) - ..controls (224.22,51.25) and (231.92,47.22)..(235.02,45.8499) - ..controls (238.18,44.48) and (243.15,43.1099)..(245.89,43.1099) - ..controls (248.55,43.1099) and (253.09,43.1099)..(255.75,43.1099) - ..controls (258.42,43.1099) and (262.02,44.0498)..(264.32,43.1099) - ..controls (266.55,42.25) and (267.42,40.45)..(267.42,40.45) - --(262.09,38.6499)..controls (262.09,38.6499) and (255.75,38.6499)..(251.65,38.6499) - ..controls (247.62,38.6499) and (240.92,39.51)..(237.32,40.45) - ..controls (233.65,41.3098) and (226.88,43.98)..(223.78,47.22) - ..controls (220.62,50.3799) and (218.38,53.98)..(218.38,53.98) - --(219.32,63.0598)--cycle; -drawoptions (withcolor (0.6,0.3,0)); -fill (271.45,52.8999)--(271.23,1.41992)--(266.34,1.41992) - --(266.41,54.2)..controls (266.41,54.2) and (272.17,53.1899)..(271.45,52.8999) - --cycle; -drawoptions (withcolor (0.2,0.2,0.2)); -pickup pencircle scaled 0.86bp; -draw (271.45,52.8999)--(271.23,1.41992)--(266.34,1.41992) - --(266.41,54.2)..controls (266.41,54.2) and (272.17,53.1899)..(271.45,52.8999) - --cycle; -drawoptions (withcolor (1,1,1)); -pickup pencircle scaled 0bp; -fill (271.16,51.75)--(266.26,54.1299)--(266.26,50.8899) - --(271.16,48.9399)--(271.16,51.75)--cycle; -drawoptions (withcolor (0,0,0)); -pickup pencircle scaled 0.86bp; -draw (271.16,51.75)--(266.26,54.1299)--(266.26,50.8899) - --(271.16,48.9399)--(271.16,51.75); -drawoptions (withcolor (0.6,0.85,1)); -pickup pencircle scaled 0bp; -fill (121.98,48.0798)..controls (129.82,48.51) and (138.9,48.51)..(143.36,48.51) - ..controls (147.75,48.51) and (157.69,51.6799)..(163.52,49.0198) - ..controls (169.42,46.2798) and (168.99,44.0498)..(174.82,43.5398) - ..controls (180.66,43.1099) and (189.66,39.51)..(189.66,39.51) - ..controls (189.66,39.51) and (190.52,35.8398)..(193.26,34.0398) - ..controls (195.99,32.24) and (185.62,29.5)..(185.62,29.5) - --(173.89,35.8398)..controls (173.89,35.8398) and (156.32,40.8799)..(152.72,40.8799) - ..controls (149.12,40.8799) and (134.79,39.9399)..(134.79,39.9399) - ..controls (134.79,39.9399) and (130.69,34.47)..(140.19,34.0398) - ..controls (149.55,33.6099) and (157.69,30.9399)..(157.69,30.9399) - ..controls (157.69,30.9399) and (156.32,25.47)..(152.72,25.47) - ..controls (149.12,25.47) and (129.82,26.4099)..(125.36,26.4099) - ..controls (120.82,26.4099) and (103.62,28.21)..(108.51,30.9399) - ..controls (113.48,33.6099) and (116.79,41.3098)..(116.79,41.3098) - ..controls (116.79,41.3098) and (118.59,46.71)..(121.98,48.0798) - --cycle; -drawoptions (withcolor (1,1,1)); -fill (266.12,54.1299)--(271.3,51.46)--(276.7,52.6199) - --(273.68,54.99)--(266.12,54.1299)--cycle; -drawoptions (withcolor (0.2,0.2,0.2)); -pickup pencircle scaled 0.86bp; -draw (266.12,54.1299)--(271.3,51.46)--(276.7,52.6199) - --(273.68,54.99)--(266.12,54.1299); -drawoptions (withcolor (0.6,0.3,0)); -pickup pencircle scaled 0bp; -fill (189.73,159.75)--(185.05,155.07)--(176.19,155.07) - --(181.09,159.75)--(189.73,159.75)--cycle; -drawoptions (withcolor (0,0,0)); -pickup pencircle scaled 0.86bp; -draw (189.73,159.75)--(185.05,155.07)--(176.19,155.07) - --(181.09,159.75)--(189.73,159.75); -drawoptions (withcolor (0.6,0.3,0)); -pickup pencircle scaled 0bp; -fill (191.24,121.45)..controls (191.24,118.71) and (191.24,115.54)..(191.24,113.89) - ..controls (191.24,112.16) and (191.6,109.35)..(191.24,107.91) - ..controls (190.81,106.54) and (190.38,105.46)..(190.38,105.46) - --(190.59,103.16)--(193.98,104.02)--(194.41,106.54) - ..controls (194.41,106.54) and (194.41,111.94)..(194.41,113.02) - ..controls (194.41,114.03) and (195.06,123.54)..(195.06,123.54) - --(191.24,121.45)--cycle; -pickup pencircle scaled 0.86bp; -draw (191.24,121.45)..controls (191.24,118.71) and (191.24,115.54)..(191.24,113.89) - ..controls (191.24,112.16) and (191.6,109.35)..(191.24,107.91) - ..controls (190.81,106.54) and (190.38,105.46)..(190.38,105.46) - --(190.59,103.16)--(193.98,104.02)--(194.41,106.54) - ..controls (194.41,106.54) and (194.41,111.94)..(194.41,113.02) - ..controls (194.41,114.03) and (195.06,123.54)..(195.06,123.54) - --(191.24,121.45); -pickup pencircle scaled 0bp; -fill (216.58,98.5498)..controls (216.58,100.21) and (216.15,99.3398)..(216.01,102.73) - ..controls (215.79,106.11) and (215.14,107.12)..(215.14,110.22) - ..controls (215.14,113.46) and (215.14,116.98)..(215.14,118.06) - ..controls (215.14,119.14) and (215.14,120.37)..(215.14,120.37) - --(212.19,119.36)..controls (212.19,119.36) and (212.19,118.71)..(212.19,116.98) - ..controls (212.19,115.33) and (212.19,113.17)..(212.19,111.3) - ..controls (212.19,109.42) and (212.19,109.5)..(212.19,106.98) - ..controls (212.19,104.46) and (212.05,101.94)..(212.05,101.94) - --(211.4,99.3398)--(213.27,98.7)--(216.58,98.5498) - --cycle; -pickup pencircle scaled 0.86bp; -draw (216.58,98.5498)..controls (216.58,100.21) and (216.15,99.3399)..(216.01,102.73) - ..controls (215.79,106.11) and (215.14,107.12)..(215.14,110.22) - ..controls (215.14,113.46) and (215.14,116.98)..(215.14,118.06) - ..controls (215.14,119.14) and (215.14,120.37)..(215.14,120.37) - --(212.19,119.36)..controls (212.19,119.36) and (212.19,118.71)..(212.19,116.98) - ..controls (212.19,115.33) and (212.19,113.17)..(212.19,111.3) - ..controls (212.19,109.42) and (212.19,109.5)..(212.19,106.98) - ..controls (212.19,104.46) and (212.05,101.94)..(212.05,101.94) - --(211.4,99.3399)--(213.27,98.6999)--(216.58,98.5498); -pickup pencircle scaled 0bp; -fill (184.54,108.78)--(184.54,114.46)--(183.46,116.19) - --(182.67,114.46)..controls (182.67,114.46) and (182.82,113.24)..(182.82,112.16) - ..controls (182.82,111.08) and (182.82,109.64)..(182.82,109.64) - --(184.54,108.78)--cycle; -drawoptions (withcolor (0.3,0.3,0.3)); -pickup pencircle scaled 0.86bp; -draw (184.54,108.78)--(184.54,114.46)--(183.46,116.19) - --(182.67,114.46)..controls (182.67,114.46) and (182.82,113.24)..(182.82,112.16) - ..controls (182.82,111.08) and (182.82,109.64)..(182.82,109.64) - --(184.54,108.78); -drawoptions (withcolor (0.6,0.3,0)); -pickup pencircle scaled 0bp; -fill (178.28,117.85)..controls (178.28,117.85) and (178.42,115.76)..(178.42,114.68) - ..controls (178.42,113.6) and (178.42,111.3)..(178.42,111.3) - --(176.98,109.64)--(176.98,113.46)--(176.98,116.55) - --(178.28,117.85)--cycle; -drawoptions (withcolor (0.3,0.3,0.3)); -pickup pencircle scaled 0.86bp; -draw (178.28,117.85)..controls (178.28,117.85) and (178.42,115.76)..(178.42,114.68) - ..controls (178.42,113.6) and (178.42,111.3)..(178.42,111.3) - --(176.98,109.64)--(176.98,113.46)--(176.98,116.55) - --(178.28,117.85); -drawoptions (withcolor (0.6,0.3,0)); -pickup pencircle scaled 0bp; -fill (180.51,109.21)..controls (180.51,109.21) and (180.3,109.5)..(180.51,112.16) - ..controls (180.73,114.9) and (180.73,117.85)..(180.73,117.85) - --(179.5,118.06)..controls (179.5,118.06) and (179.5,115.9)..(179.5,114.9) - ..controls (179.5,113.89) and (179.29,110.86)..(179.29,110.86) - --(179.5,108.99)--(180.51,109.21)--cycle; -drawoptions (withcolor (0.3,0.3,0.3)); -pickup pencircle scaled 0.86bp; -draw (180.51,109.21)..controls (180.51,109.21) and (180.3,109.5)..(180.51,112.16) - ..controls (180.73,114.9) and (180.73,117.85)..(180.73,117.85) - --(179.5,118.06)..controls (179.5,118.06) and (179.5,115.9)..(179.5,114.9) - ..controls (179.5,113.89) and (179.29,110.86)..(179.29,110.86) - --(179.5,108.99)--(180.51,109.21); -drawoptions (withcolor (0,0.5,0)); -pickup pencircle scaled 0bp; -fill (192.46,150.97)..controls (185.55,150.54) and (182.6,151.98)..(182.38,148.88) - ..controls (182.24,145.71) and (184.54,150.97)..(185.34,145.28) - ..controls (186.2,139.59) and (186.85,138.51)..(186.85,136.21) - ..controls (186.85,133.9) and (188.86,133.9)..(189.3,136.42) - ..controls (189.73,138.94) and (190.02,140.89)..(192.1,142.11) - ..controls (194.19,143.41) and (195.06,146.94)..(191.46,146.5) - ..controls (187.86,146.14) and (190.59,149.89)..(190.59,149.89) - --(192.46,150.97)--cycle; -drawoptions (withcolor (0.3,0.3,0.3)); -pickup pencircle scaled 0.86bp; -draw (221.77,159.61)--(227.17,163.06)--(226.52,146.65) - --(222.42,145.93)--(221.77,159.61); -draw (207.8,155.43)--(205.28,153.92)--(205.28,149.1); -drawoptions (withcolor (0.4,0.4,0.4)); -pickup pencircle scaled 1.44bp; -draw (204.63,125.48)--(204.63,118.28)--(209.24,117.63); -drawoptions (withcolor (0.3,0.3,0.3)); -pickup pencircle scaled 0.86bp; -draw (224,160.9)--(224.14,148.88); -draw (222.06,154.78)--(226.88,157.09); -draw (216.01,151.62)--(215.79,145.71); -drawoptions (withcolor (0.4,0.4,0.4)); -pickup pencircle scaled 1.44bp; -draw (223.5,130.52)--(227.96,130.52)--(228.18,124.4); -draw (222.7,118.28)--(222.7,115.76)--(228.39,115.11); -draw (222.27,123.32)--(227.53,123.18); -drawoptions (withcolor (1,1,1)); -pickup pencircle scaled 0bp; -fill (240.42,126.27)--(236.82,126.7)--(236.82,113.17) - --(241.35,113.17)--(240.42,126.27)--cycle; -drawoptions (withcolor (0.5,0.5,0.5)); -pickup pencircle scaled 0.22bp; -draw (240.42,126.27)--(236.82,126.7)--(236.82,113.17) - --(241.35,113.17)--(240.42,126.27); -drawoptions (withcolor (1,1,1)); -pickup pencircle scaled 0bp; -fill (246.75,126.7)--(242.65,126.7)--(243.58,112.23) - --(248.12,111.8)--(248.55,119.07)--(246.75,126.7) - --cycle; -drawoptions (withcolor (0.5,0.5,0.5)); -pickup pencircle scaled 0.22bp; -draw (246.75,126.7)--(242.65,126.7)--(243.58,112.23) - --(248.12,111.8)--(248.55,119.07)--(246.75,126.7); -drawoptions (withcolor (1,1,1)); -pickup pencircle scaled 0bp; -fill (258.7,119.79)--(258.7,111.66)--(262.74,111.66) - --(263.24,123.82)--(258.27,122.96)--(258.7,119.79) - --cycle; -drawoptions (withcolor (0.5,0.5,0.5)); -pickup pencircle scaled 0.22bp; -draw (258.7,119.79)--(258.7,111.66)--(262.74,111.66) - --(263.24,123.82)--(258.27,122.96)--(258.7,119.79); -drawoptions (withcolor (1,1,1)); -pickup pencircle scaled 0bp; -fill (269.36,126.49)--(264.82,126.49)--(265.33,110.22) - --(270.73,110.22)--(269.36,126.49)--cycle; -drawoptions (withcolor (0.5,0.5,0.5)); -pickup pencircle scaled 0.22bp; -draw (269.36,126.49)--(264.82,126.49)--(265.33,110.22) - --(270.73,110.22)--(269.36,126.49); -drawoptions (withcolor (1,0.8,0.8)); -pickup pencircle scaled 0bp; -fill (273.32,101.5)--(285.92,98.26)--(285.92,156.58) - --(273.32,145.28)--(273.32,101.5)--cycle; -drawoptions (withcolor (0.3,0.3,0.3)); -pickup pencircle scaled 0.86bp; -draw (273.32,101.5)--(285.92,98.26)--(285.92,156.58) - --(273.32,145.28)--(273.32,101.5); -drawoptions (withcolor (0.95,0.95,0.95)); -pickup pencircle scaled 0bp; -fill (277.86,125.41)--(276.92,109.57)--(285.92,107.77) - --(285.49,123.61)--(277.86,125.41)--cycle; -drawoptions (withcolor (0.6,0.6,0.6)); -pickup pencircle scaled 1.44bp; -draw (277.86,125.41)--(276.92,109.57)--(285.92,107.77) - --(285.49,123.61)--(277.86,125.41); -drawoptions (withcolor (0.9,0.9,0.9)); -pickup pencircle scaled 0bp; -fill (278.29,125.84)--(285.49,123.61)--(285.92,131.24) - --(278.29,132.18)--(278.29,125.84)--cycle; -drawoptions (withcolor (0.6,0.6,0.6)); -pickup pencircle scaled 1.44bp; -draw (278.29,125.84)--(285.49,123.61)--(285.92,131.24) - --(278.29,132.18)--(278.29,125.84); -pickup pencircle scaled 0.86bp; -draw (237.32,121.3)--(240.42,121.3); -drawoptions (withcolor (0.5,0.5,0.5)); -draw (243.15,121.3)--(248.12,120.87); -draw (259.35,120.37)--(262.52,119.94); -draw (265.69,121.3)--(269.22,120.87); -drawoptions (withcolor (0.6,0.3,0)); -pickup pencircle scaled 0bp; -fill (166.04,101.86)..controls (167.12,101.94) and (168.2,101.94)..(169.35,101.94) - ..controls (170.43,101.94) and (171.51,101.94)..(172.74,101.86) - ..controls (172.66,97.5398) and (172.66,93.1499)..(172.66,88.76) - ..controls (172.66,84.3699) and (172.66,79.98)..(172.74,75.5798) - ..controls (171.51,76.0898) and (170.43,76.5898)..(169.35,77.0198) - ..controls (168.27,77.46) and (167.12,77.96)..(166.04,78.3198) - ..controls (166.04,82.2798) and (166.04,86.1699)..(166.04,90.1299) - ..controls (166.04,94.0198) and (166.04,97.98)..(166.04,101.86) - --cycle; -drawoptions (withcolor (0.2,0.2,0.2)); -pickup pencircle scaled 0.86bp; -draw (166.04,101.86)..controls (167.12,101.94) and (168.2,101.94)..(169.35,101.94) - ..controls (170.43,101.94) and (171.51,101.94)..(172.74,101.86) - ..controls (172.66,97.5398) and (172.66,93.1499)..(172.66,88.76) - ..controls (172.66,84.3699) and (172.66,79.98)..(172.74,75.5798) - ..controls (171.51,76.0899) and (170.43,76.5898)..(169.35,77.0198) - ..controls (168.27,77.4599) and (167.12,77.9599)..(166.04,78.3198) - ..controls (166.04,82.2798) and (166.04,86.1699)..(166.04,90.1299) - ..controls (166.04,94.0198) and (166.04,97.98)..(166.04,101.86) - --cycle; -drawoptions (withcolor (0,0.6,0)); -pickup pencircle scaled 0bp; -fill (25.21,151.54)..controls (35.4299,157.66) and (33.3398,161.05)..(32.7,169.33) - ..controls (32.0498,177.54) and (29.3098,183.01)..(30.6799,189.13) - ..controls (32.0498,195.32) and (25.9299,187.04)..(23.8398,181.57) - ..controls (21.8198,176.17) and (13.6199,171.34)..(13.6199,171.34) - ..controls (13.6199,171.34) and (5.47998,167.89)..(8.85986,179.55) - ..controls (12.25,191.22) and (5.47998,189.78)..(5.47998,185.02) - ..controls (5.47998,180.27) and (3.38989,170.62)..(5.47998,164.5) - ..controls (7.5,158.38) and (12.3198,157.66)..(12.97,161.05) - ..controls (13.6199,164.5) and (17.0698,159.68)..(17.0698,152.19) - ..controls (17.0698,144.7) and (25.21,151.54)..(25.21,151.54) - --cycle; -fill (38.8198,143.98)..controls (44.2898,150.18) and (44.2898,155)..(44.2898,159.75) - ..controls (44.2898,164.5) and (43.5698,178.18)..(46.2998,174.73) - ..controls (49.0398,171.34) and (53.7898,163.86)..(53.7898,158.38) - ..controls (53.7898,152.91) and (46.3799,148.09)..(51.1299,143.98) - ..controls (55.8799,139.88) and (59.2598,136.5)..(50.4099,136.5) - ..controls (41.5498,136.5) and (34.0598,134.41)..(34.0598,134.41) - --(38.8198,143.98)--cycle; -drawoptions (withcolor (0,0.8,0)); -fill (254.6,137.86)..controls (254.6,145.42) and (251.14,148.16)..(254.6,155) - ..controls (257.98,161.84) and (261.44,170.7)..(261.44,170.7) - ..controls (261.44,170.7) and (262.74,170.7)..(262.74,165.94) - ..controls (262.74,161.12) and (268.93,156.3)..(268.93,156.3) - --(269.58,149.46)--(262.09,141.97)..controls (262.09,141.97) and (262.09,139.23)..(262.09,134.48) - ..controls (262.09,129.66) and (254.6,137.86)..(254.6,137.86) - --cycle; -drawoptions (withcolor (0.95,0.95,0.95)); -fill (80.3599,197.34)..controls (117.8,197.34) and (98.0698,202.81)..(123.92,202.81) - ..controls (149.77,202.81) and (150.42,203.53)..(162.66,200.79) - ..controls (174.97,198.06) and (174.25,195.25)..(185.84,193.23) - ..controls (197.43,191.22) and (206.29,189.78)..(204.92,185.02) - ..controls (203.55,180.27) and (180.44,174.15)..(174.97,176.82) - ..controls (169.5,179.55) and (155.17,184.38)..(150.42,184.38) - ..controls (145.66,184.38) and (110.31,192.58)..(110.31,192.58) - ..controls (110.31,192.58) and (102.82,188.41)..(115.14,185.74) - ..controls (127.38,183.01) and (154.52,178.9)..(142.28,172.71) - ..controls (130.04,166.52) and (115.78,176.17)..(106.93,176.17) - ..controls (98.0698,176.17) and (85.1799,176.82)..(78.99,179.55) - ..controls (72.8699,182.29) and (61.2798,190.5)..(54.5098,193.95) - ..controls (47.6699,197.34) and (49.6899,205.54)..(59.2598,204.18) - ..controls (68.7698,202.81) and (80.3599,197.34)..(80.3599,197.34) - --cycle; -drawoptions (withcolor (1,0.4,0)); -fill (14.3398,40.8098)..controls (21.8198,45.5598) and (32.7,53.0498)..(34.7798,56.5) - ..controls (36.7998,59.8899) and (37.45,49.6599)..(37.45,49.6599) - --(45.6599,57.1499)--(45.6599,47.6499)..controls (45.6599,47.6499) and (42.2,42.8198)..(39.5398,38) - ..controls (36.7998,33.25) and (22.47,18.2)..(22.47,18.2) - --(19.8098,25.0398)--(25.21,34.6199)--(23.8398,41.46) - --(12.25,35.26)--(14.3398,40.8098)--cycle; -drawoptions (withcolor (0.3,0.3,0.3)); -fill (257.98,96.1799)--(278.43,94.8098)--(264.18,92.72) - --(255.25,92.72)--(257.98,96.1799)--cycle; -drawoptions (withcolor (0.4,0.4,0.4)); -fill (215.14,102.37)..controls (215.14,102.37) and (217.16,100.28)..(220.54,100.28) - ..controls (224,100.28) and (230.77,99.5598)..(230.77,99.5598) - --(227.31,98.1899)--(215.79,97.5398)--(215.14,102.37) - --cycle; -fill (193.98,104.38)--(204.92,104.38)--(203.55,100.93) - --(193.33,102.37)--(193.98,104.38)--cycle; -drawoptions (withcolor (0,0.5,1)); -fill (266.12,11.8599)..controls (260.65,15.25) and (251.79,18.7)..(246.32,18.7) - ..controls (240.85,18.7) and (239.48,17.3398)..(230.62,17.3398) - ..controls (221.7,17.3398) and (212.91,15.97)..(206.07,17.3398) - ..controls (199.23,18.7) and (191.74,16.6199)..(186.92,16.6199) - ..controls (182.17,16.6199) and (183.54,11.1399)..(178.06,10.5) - ..controls (172.59,9.77979) and (171.94,5.66992)..(167.84,5.66992) - ..controls (163.74,5.66992) and (159.06,0.849854)..(168.49,0.849854) - ..controls (177.92,0.849854) and (266.12,0.699951)..(266.12,1.41992) - --(266.12,11.8599)--cycle; -drawoptions (withcolor (0.3,0.3,0.3)); -pickup pencircle scaled 0.86bp; -draw (1.01978,215.34)--(286.28,215.34)--(286.28,0.849854) - --(1.01978,0.849854)--(1.01978,215.34); -drawoptions (withcolor (1,1,1)); -pickup pencircle scaled 0bp; -fill (286.28,31.6599)--(280.81,35.8398)--(277.42,35.8398) - --(277.42,31.6599)--(286.28,31.6599)--cycle; -drawoptions (withcolor (0,0,0)); -pickup pencircle scaled 0.86bp; -draw (286.28,31.6599)--(280.81,35.8398)--(277.42,35.8398) - --(277.42,31.6599)--(286.28,31.6599); -drawoptions (withcolor (0.4,0.4,0.4)); -pickup pencircle scaled 2.81bp; -draw (69.2698,192.73)..controls (74.74,190.71) and (75.46,185.89)..(75.46,185.89) - --(81.5798,185.24); -draw (62.1399,178.62)..controls (67.5398,176.6) and (69.7,176.89)..(69.7,176.89) - --(72.4399,180.27); -draw (52.3499,196.11)..controls (57.8198,194.02) and (58.47,189.27)..(58.47,189.27) - --(61.21,192.66); -drawoptions (withcolor (0,0,0)); -pickup pencircle scaled 2.23bp; -draw (173.17,30.73)..controls (173.17,29.72) and (173.38,28.5)..(173.38,28.5) - --(175.18,29.0698); -drawoptions (withcolor (0.2,0.2,0.2)); -pickup pencircle scaled 0bp; -fill (168.99,32.74)..controls (170.5,34.3999) and (171.51,33.1799)..(172.88,32.5298) - ..controls (174.25,31.8799) and (175.98,32.3098)..(175.11,31.23) - ..controls (174.32,30.22) and (168.56,29.3599)..(168.56,29.6499) - --(168.63,30.9399)--(168.13,31.6599)--(168.99,32.74) - --cycle; -pickup pencircle scaled 2.23bp; -draw (173.24,32.3098)..controls (173.24,33.3198) and (173.46,34.5398)..(173.46,34.5398) - --(175.33,33.97); -drawoptions (withcolor (0,0,0)); -draw (184.33,24.3899)..controls (184.33,23.3799) and (184.54,22.1599)..(184.54,22.1599) - --(186.42,22.8098); -drawoptions (withcolor (0.2,0.2,0.2)); -pickup pencircle scaled 0bp; -fill (180.22,26.4099)..controls (181.74,28.0598) and (182.67,26.8398)..(184.04,26.1899) - ..controls (185.41,25.5398) and (187.14,25.98)..(186.34,24.97) - ..controls (185.55,23.8899) and (179.72,23.0198)..(179.72,23.3098) - --(179.86,24.6099)--(179.29,25.3999)--(180.22,26.4099) - --cycle; -pickup pencircle scaled 2.23bp; -draw (184.47,25.98)..controls (184.47,26.98) and (184.69,28.21)..(184.69,28.21) - --(186.56,27.6299); -drawoptions (withcolor (0,0,0)); -draw (195.7,34.8298)..controls (195.7,33.75) and (195.92,32.5298)..(195.92,32.5298) - --(197.79,33.1799); -drawoptions (withcolor (0.2,0.2,0.2)); -pickup pencircle scaled 0bp; -fill (191.6,36.7798)..controls (193.04,38.5) and (194.05,37.2798)..(195.42,36.6299) - ..controls (196.78,35.9099) and (198.51,36.3398)..(197.72,35.3398) - ..controls (196.86,34.3298) and (191.1,33.46)..(191.1,33.6799) - --(191.24,35.0498)--(190.66,35.7698)--(191.6,36.7798) - --cycle; -pickup pencircle scaled 2.23bp; -draw (195.85,36.3398)..controls (195.85,37.4199) and (196.06,38.6499)..(196.06,38.6499) - --(197.94,38); -drawoptions (withcolor (0,0,0)); -draw (198.44,26.26)..controls (198.44,25.1799) and (198.66,23.96)..(198.66,23.96) - --(200.53,24.6099); -drawoptions (withcolor (0.2,0.2,0.2)); -pickup pencircle scaled 0bp; -fill (194.34,28.21)..controls (195.85,29.9399) and (196.78,28.71)..(198.15,28.0598) - ..controls (199.52,27.3398) and (201.25,27.7798)..(200.46,26.7698) - ..controls (199.66,25.76) and (193.83,24.8999)..(193.83,25.1099) - --(193.98,26.48)--(193.4,27.2)--(194.34,28.21) - --cycle; -pickup pencircle scaled 2.23bp; -draw (198.58,27.7798)..controls (198.58,28.8599) and (198.8,30.0798)..(198.8,30.0798) - --(200.67,29.4299); -drawoptions (withcolor (0,0,0)); -draw (157.47,21.0798)..controls (157.47,20) and (157.76,18.7798)..(157.76,18.7798) - --(159.56,19.4199); -drawoptions (withcolor (0.2,0.2,0.2)); -pickup pencircle scaled 0bp; -fill (153.37,23.0198)..controls (154.88,24.75) and (155.82,23.5298)..(157.18,22.8799) - ..controls (158.62,22.1599) and (160.35,22.5898)..(159.49,21.5798) - ..controls (158.7,20.5798) and (152.86,19.71)..(152.86,19.9299) - --(153.01,21.2998)--(152.43,22.0198)--(153.37,23.0198) - --cycle; -pickup pencircle scaled 2.23bp; -draw (157.62,22.5899)..controls (157.62,23.6699) and (157.83,24.8999)..(157.83,24.8999) - --(159.7,24.25); -drawoptions (withcolor (0.6,0.3,0)); -pickup pencircle scaled 0.86bp; -draw (114.85,113.6)--(114.85,109.71); -draw (124.64,113.6)--(124.64,109.28); -draw (135.01,113.46)--(135.01,109.93); -draw (144.08,113.46)--(144.08,110.07); -pickup pencircle scaled 0bp; -fill (191.38,89.98)--(212.55,83.7898)--(212.55,78.3198) - --(219.39,72.1299)--(218.02,67.3799)--(204.34,74.22) - --(205.06,80.3398)--(192.1,85.8799)--(191.38,89.98) - --cycle; -fill (275.98,73.5)--(263.02,76.95)--(258.27,71.48) - --(250.06,72.8499)--(248.7,67.3799)--(261.01,65.2898) - --(267.13,71.48)--(275.98,68.0999)--(275.98,73.5) - --cycle; -drawoptions (withcolor (0.4,0.4,0.4)); -pickup pencircle scaled 0.86bp; -draw (69.2698,75.5798)--(75.46,76.95); -drawoptions (withcolor (0.3,0.3,0.3)); -draw (98.8599,77.6699)--(105.92,76.5198); -drawoptions (withcolor (0.5,0.5,0.5)); -draw (72.9399,74.1399)--(76.3999,74.6499); -drawoptions (withcolor (0.4,0.4,0.4)); -draw (101.17,75.4399)--(105.63,74.5); -drawoptions (withcolor (0.6,0.3,0)); -pickup pencircle scaled 0bp; -fill (15.0598,62.3398)--(16.5698,62.3398)..controls (17.0698,62.3398) and (17.4299,62.7)..(17.4299,63.2) - --(17.4299,67.8799)..controls (17.4299,68.3799) and (17.0698,68.74)..(16.5698,68.74) - --(15.0598,68.74)..controls (14.5498,68.74) and (14.1899,68.3799)..(14.1899,67.8799) - --(14.1899,63.2)..controls (14.1899,62.7) and (14.5498,62.3398)..(15.0598,62.3398) - --cycle; -drawoptions (withcolor (0.3,0.3,0.3)); -pickup pencircle scaled 0.86bp; -draw (15.0598,62.3399)--(16.5698,62.3399)..controls (17.0698,62.3399) and (17.4299,62.7)..(17.4299,63.2) - --(17.4299,67.8799)..controls (17.4299,68.3799) and (17.0698,68.74)..(16.5698,68.74) - --(15.0598,68.74)..controls (14.5498,68.74) and (14.1899,68.3799)..(14.1899,67.8799) - --(14.1899,63.2)..controls (14.1899,62.7) and (14.5498,62.3399)..(15.0598,62.3399) - --cycle; -drawoptions (withcolor (1,1,1)); -pickup pencircle scaled 0bp; -fill (13.3298,70.1099)--(18.0098,70.1099)..controls (18.5798,70.1099) and (19.0198,69.6799)..(19.0198,69.1799) - --(19.0198,67.95)..controls (19.0198,67.45) and (18.5798,67.0198)..(18.0098,67.0198) - --(13.3298,67.0198)..controls (12.75,67.0198) and (12.3198,67.45)..(12.3198,67.95) - --(12.3198,69.1799)..controls (12.3198,69.6799) and (12.75,70.1099)..(13.3298,70.1099) - --cycle; -drawoptions (withcolor (0.3,0.3,0.3)); -pickup pencircle scaled 1.44bp; -draw (13.3298,70.1098)--(18.0098,70.1098)..controls (18.5798,70.1098) and (19.0198,69.6799)..(19.0198,69.1799) - --(19.0198,67.9499)..controls (19.0198,67.45) and (18.5798,67.0198)..(18.0098,67.0198) - --(13.3298,67.0198)..controls (12.75,67.0198) and (12.3198,67.45)..(12.3198,67.9499) - --(12.3198,69.1799)..controls (12.3198,69.6799) and (12.75,70.1098)..(13.3298,70.1098) - --cycle; -drawoptions (withcolor (0.9,0.95,1)); -pickup pencircle scaled 0bp; -fill (62.3599,49.45)--(63.22,49.45)..controls (63.5098,49.45) and (63.73,49.6599)..(63.73,49.95) - --(63.73,52.76)..controls (63.73,53.0498) and (63.5098,53.26)..(63.22,53.26) - --(62.3599,53.26)..controls (62,53.26) and (61.8599,53.0498)..(61.8599,52.76) - --(61.8599,49.95)..controls (61.8599,49.6599) and (62,49.45)..(62.3599,49.45) - --cycle; -drawoptions (withcolor (0,0.2,1)); -pickup pencircle scaled 0.86bp; -draw (62.3599,49.45)--(63.22,49.45)..controls (63.5098,49.45) and (63.73,49.6599)..(63.73,49.95) - --(63.73,52.76)..controls (63.73,53.0498) and (63.5098,53.26)..(63.22,53.26) - --(62.3599,53.26)..controls (62,53.26) and (61.8599,53.0498)..(61.8599,52.76) - --(61.8599,49.95)..controls (61.8599,49.6599) and (62,49.45)..(62.3599,49.45) - --cycle; -drawoptions (withcolor (0.9,0.95,1)); -pickup pencircle scaled 0bp; -fill (61.3499,54.0598)--(64.0898,54.0598)..controls (64.3799,54.0598) and (64.6599,53.8398)..(64.6599,53.48) - --(64.6599,52.8298)..controls (64.6599,52.47) and (64.3799,52.1799)..(64.0898,52.1799) - --(61.3499,52.1799)..controls (60.99,52.1799) and (60.7,52.47)..(60.7,52.8298) - --(60.7,53.48)..controls (60.7,53.8398) and (60.99,54.0598)..(61.3499,54.0598) - --cycle; -drawoptions (withcolor (0,0.2,1)); -pickup pencircle scaled 1.44bp; -draw (61.3499,54.0598)--(64.0899,54.0598)..controls (64.3799,54.0598) and (64.6599,53.8398)..(64.6599,53.48) - --(64.6599,52.8298)..controls (64.6599,52.47) and (64.3799,52.1799)..(64.0899,52.1799) - --(61.3499,52.1799)..controls (60.99,52.1799) and (60.7,52.47)..(60.7,52.8298) - --(60.7,53.48)..controls (60.7,53.8398) and (60.99,54.0598)..(61.3499,54.0598) - --cycle; -drawoptions (withcolor (0.9,0.95,1)); -pickup pencircle scaled 0bp; -fill (118.74,51.46)--(119.6,51.46)..controls (119.89,51.46) and (120.1,51.6099)..(120.1,51.97) - --(120.1,54.7)..controls (120.1,54.99) and (119.89,55.21)..(119.6,55.21) - --(118.74,55.21)..controls (118.38,55.21) and (118.23,54.99)..(118.23,54.7) - --(118.23,51.97)..controls (118.23,51.6099) and (118.38,51.46)..(118.74,51.46) - --cycle; -drawoptions (withcolor (0,0.2,1)); -pickup pencircle scaled 0.86bp; -draw (118.74,51.46)--(119.6,51.46)..controls (119.89,51.46) and (120.1,51.6098)..(120.1,51.97) - --(120.1,54.7)..controls (120.1,54.99) and (119.89,55.21)..(119.6,55.21) - --(118.74,55.21)..controls (118.38,55.21) and (118.23,54.99)..(118.23,54.7) - --(118.23,51.97)..controls (118.23,51.6098) and (118.38,51.46)..(118.74,51.46) - --cycle; -drawoptions (withcolor (0.9,0.95,1)); -pickup pencircle scaled 0bp; -fill (117.73,56)--(120.46,56)..controls (120.75,56) and (120.97,55.7798)..(120.97,55.4199) - --(120.97,54.7798)..controls (120.97,54.49) and (120.75,54.2)..(120.46,54.2) - --(117.73,54.2)..controls (117.37,54.2) and (117.08,54.49)..(117.08,54.7798) - --(117.08,55.4199)..controls (117.08,55.7798) and (117.37,56)..(117.73,56) - --cycle; -drawoptions (withcolor (0,0.2,1)); -pickup pencircle scaled 1.44bp; -draw (117.73,56)--(120.46,56)..controls (120.75,56) and (120.97,55.7798)..(120.97,55.4199) - --(120.97,54.7798)..controls (120.97,54.49) and (120.75,54.2)..(120.46,54.2) - --(117.73,54.2)..controls (117.37,54.2) and (117.08,54.49)..(117.08,54.7798) - --(117.08,55.4199)..controls (117.08,55.7798) and (117.37,56)..(117.73,56) - --cycle; -drawoptions (withcolor (0.6,0.3,0)); -pickup pencircle scaled 0bp; -fill (51.7,90.3398)--(52.7798,90.3398)..controls (53.1399,90.3398) and (53.3599,90.6299)..(53.3599,90.99) - --(53.3599,94.2998)..controls (53.3599,94.6599) and (53.1399,94.8799)..(52.7798,94.8799) - --(51.7,94.8799)..controls (51.3398,94.8799) and (51.1299,94.6599)..(51.1299,94.2998) - --(51.1299,90.99)..controls (51.1299,90.6299) and (51.3398,90.3398)..(51.7,90.3398) - --cycle; -drawoptions (withcolor (0.3,0.3,0.3)); -pickup pencircle scaled 0.86bp; -draw (51.7,90.3399)--(52.7798,90.3399)..controls (53.1399,90.3399) and (53.3599,90.6299)..(53.3599,90.99) - --(53.3599,94.2998)..controls (53.3599,94.6599) and (53.1399,94.8799)..(52.7798,94.8799) - --(51.7,94.8799)..controls (51.3398,94.8799) and (51.1299,94.6599)..(51.1299,94.2998) - --(51.1299,90.99)..controls (51.1299,90.6299) and (51.3398,90.3399)..(51.7,90.3399) - --cycle; -drawoptions (withcolor (1,1,1)); -pickup pencircle scaled 0bp; -fill (50.48,95.8899)--(53.7898,95.8899)..controls (54.22,95.8899) and (54.5098,95.5999)..(54.5098,95.24) - --(54.5098,94.3799)..controls (54.5098,93.9399) and (54.22,93.6599)..(53.7898,93.6599) - --(50.48,93.6599)..controls (50.1199,93.6599) and (49.8298,93.9399)..(49.8298,94.3799) - --(49.8298,95.24)..controls (49.8298,95.5999) and (50.1199,95.8899)..(50.48,95.8899) - --cycle; -drawoptions (withcolor (0.3,0.3,0.3)); -pickup pencircle scaled 1.44bp; -draw (50.48,95.8899)--(53.7898,95.8899)..controls (54.22,95.8899) and (54.5098,95.5998)..(54.5098,95.24) - --(54.5098,94.3799)..controls (54.5098,93.9399) and (54.22,93.6599)..(53.7898,93.6599) - --(50.48,93.6599)..controls (50.1199,93.6599) and (49.8298,93.9399)..(49.8298,94.3799) - --(49.8298,95.24)..controls (49.8298,95.5998) and (50.1199,95.8899)..(50.48,95.8899) - --cycle; -drawoptions (withcolor (0.2,0.2,0.2)); -draw (53,92.6499)..controls (53,88.8298) and (55.2998,80.4099)..(57.5398,76.8799) - ..controls (59.7698,73.3498) and (63.5798,67.8799)..(63.5798,67.8799); -pickup pencircle scaled 2.02bp; -draw (63.1499,52.26)..controls (63.1499,52.26) and (57.0298,49.5198)..(41.98,52.98) - ..controls (26.9399,56.3599) and (16.8599,66.01)..(15.8498,66.2998); -drawoptions (withcolor (0.9,0,0)); -pickup pencircle scaled 0bp; -fill (87.7,123.46)--(94.5398,123.46)--(94.5398,113.89) - --(87.7,113.89)--(87.7,123.46)--cycle; -endfig; -end - diff --git a/doc/context/sources/general/manuals/start/graphics/ma-cb-00.pdf b/doc/context/sources/general/manuals/start/graphics/ma-cb-00.pdf Binary files differdeleted file mode 100644 index 118276b5d..000000000 --- a/doc/context/sources/general/manuals/start/graphics/ma-cb-00.pdf +++ /dev/null diff --git a/doc/context/sources/general/manuals/start/graphics/ma-cb-01.png b/doc/context/sources/general/manuals/start/graphics/ma-cb-01.png Binary files differdeleted file mode 100644 index be41b9e22..000000000 --- a/doc/context/sources/general/manuals/start/graphics/ma-cb-01.png +++ /dev/null diff --git a/doc/context/sources/general/manuals/start/graphics/ma-cb-03.png b/doc/context/sources/general/manuals/start/graphics/ma-cb-03.png Binary files differdeleted file mode 100644 index 2a0b2de58..000000000 --- a/doc/context/sources/general/manuals/start/graphics/ma-cb-03.png +++ /dev/null diff --git a/doc/context/sources/general/manuals/start/graphics/ma-cb-04.png b/doc/context/sources/general/manuals/start/graphics/ma-cb-04.png Binary files differdeleted file mode 100644 index 5487062fd..000000000 --- a/doc/context/sources/general/manuals/start/graphics/ma-cb-04.png +++ /dev/null diff --git a/doc/context/sources/general/manuals/start/graphics/ma-cb-07.png b/doc/context/sources/general/manuals/start/graphics/ma-cb-07.png Binary files differdeleted file mode 100644 index e69c2877f..000000000 --- a/doc/context/sources/general/manuals/start/graphics/ma-cb-07.png +++ /dev/null diff --git a/doc/context/sources/general/manuals/start/graphics/ma-cb-08.png b/doc/context/sources/general/manuals/start/graphics/ma-cb-08.png Binary files differdeleted file mode 100644 index e49426e89..000000000 --- a/doc/context/sources/general/manuals/start/graphics/ma-cb-08.png +++ /dev/null diff --git a/doc/context/sources/general/manuals/start/graphics/ma-cb-12.png b/doc/context/sources/general/manuals/start/graphics/ma-cb-12.png Binary files differdeleted file mode 100644 index f27252027..000000000 --- a/doc/context/sources/general/manuals/start/graphics/ma-cb-12.png +++ /dev/null diff --git a/doc/context/sources/general/manuals/start/graphics/ma-cb-13.png b/doc/context/sources/general/manuals/start/graphics/ma-cb-13.png Binary files differdeleted file mode 100644 index 9e8d72e6c..000000000 --- a/doc/context/sources/general/manuals/start/graphics/ma-cb-13.png +++ /dev/null diff --git a/doc/context/sources/general/manuals/start/graphics/ma-cb-15.png b/doc/context/sources/general/manuals/start/graphics/ma-cb-15.png Binary files differdeleted file mode 100644 index 8c7ed6ae7..000000000 --- a/doc/context/sources/general/manuals/start/graphics/ma-cb-15.png +++ /dev/null diff --git a/doc/context/sources/general/manuals/start/graphics/ma-cb-16.png b/doc/context/sources/general/manuals/start/graphics/ma-cb-16.png Binary files differdeleted file mode 100644 index e22eab8dc..000000000 --- a/doc/context/sources/general/manuals/start/graphics/ma-cb-16.png +++ /dev/null diff --git a/doc/context/sources/general/manuals/start/graphics/ma-cb-18.png b/doc/context/sources/general/manuals/start/graphics/ma-cb-18.png Binary files differdeleted file mode 100644 index 25a529b33..000000000 --- a/doc/context/sources/general/manuals/start/graphics/ma-cb-18.png +++ /dev/null diff --git a/doc/context/sources/general/manuals/start/graphics/ma-cb-19.png b/doc/context/sources/general/manuals/start/graphics/ma-cb-19.png Binary files differdeleted file mode 100644 index d1af184c4..000000000 --- a/doc/context/sources/general/manuals/start/graphics/ma-cb-19.png +++ /dev/null diff --git a/doc/context/sources/general/manuals/start/graphics/ma-cb-20.png b/doc/context/sources/general/manuals/start/graphics/ma-cb-20.png Binary files differdeleted file mode 100644 index 289738886..000000000 --- a/doc/context/sources/general/manuals/start/graphics/ma-cb-20.png +++ /dev/null diff --git a/doc/context/sources/general/manuals/start/graphics/ma-cb-21.png b/doc/context/sources/general/manuals/start/graphics/ma-cb-21.png Binary files differdeleted file mode 100644 index af876a546..000000000 --- a/doc/context/sources/general/manuals/start/graphics/ma-cb-21.png +++ /dev/null diff --git a/doc/context/sources/general/manuals/start/graphics/ma-cb-22.png b/doc/context/sources/general/manuals/start/graphics/ma-cb-22.png Binary files differdeleted file mode 100644 index 55ded4c35..000000000 --- a/doc/context/sources/general/manuals/start/graphics/ma-cb-22.png +++ /dev/null diff --git a/doc/context/sources/general/manuals/start/graphics/ma-cb-23.png b/doc/context/sources/general/manuals/start/graphics/ma-cb-23.png Binary files differdeleted file mode 100644 index 9a1bf14e8..000000000 --- a/doc/context/sources/general/manuals/start/graphics/ma-cb-23.png +++ /dev/null diff --git a/doc/context/sources/general/manuals/start/graphics/ma-cb-24.png b/doc/context/sources/general/manuals/start/graphics/ma-cb-24.png Binary files differdeleted file mode 100644 index 47b4409e0..000000000 --- a/doc/context/sources/general/manuals/start/graphics/ma-cb-24.png +++ /dev/null diff --git a/doc/context/sources/general/manuals/start/graphics/ma-cb-25.png b/doc/context/sources/general/manuals/start/graphics/ma-cb-25.png Binary files differdeleted file mode 100644 index 079b8556a..000000000 --- a/doc/context/sources/general/manuals/start/graphics/ma-cb-25.png +++ /dev/null diff --git a/doc/context/sources/general/manuals/start/graphics/ma-cb-26.png b/doc/context/sources/general/manuals/start/graphics/ma-cb-26.png Binary files differdeleted file mode 100644 index f4294dc57..000000000 --- a/doc/context/sources/general/manuals/start/graphics/ma-cb-26.png +++ /dev/null diff --git a/doc/context/sources/general/manuals/start/graphics/minibook-en.pdf b/doc/context/sources/general/manuals/start/graphics/minibook-en.pdf Binary files differdeleted file mode 100644 index a75e7e491..000000000 --- a/doc/context/sources/general/manuals/start/graphics/minibook-en.pdf +++ /dev/null diff --git a/doc/context/sources/general/manuals/start/graphics/minibook-en.tex b/doc/context/sources/general/manuals/start/graphics/minibook-en.tex deleted file mode 100644 index 1bde2de3c..000000000 --- a/doc/context/sources/general/manuals/start/graphics/minibook-en.tex +++ /dev/null @@ -1,20 +0,0 @@ -\setuppapersize[A10][A10] -\setuplayout[cutspace=2mm,backspace=6mm,width=15mm] -\setupbodyfont[6pt] -\setuppagenumbering[state=stop] -\setupbackgrounds[text][text][background=color,backgroundcolor=orange] -\setupbackgrounds[header,text,footer][leftmargin][background=color,backgroundcolor=lightgreen] -\setupbackgrounds[header,text,footer][leftmargin,text,rightmargin][frame=on] -\setupfootertexts[margin][\midaligned{l}][\midaligned{r}][\midaligned{r}][\midaligned{l}] -\starttext -\midaligned{design page} \page -\setuppagenumbering[alternative={singlesided}] -\inmargin{\midaligned{m}}\midaligned{left page} \page -\inmargin{\midaligned{m}}\midaligned{right page} \page -\setuppagenumbering[alternative={singlesided,doublesided}] -\inmargin{\midaligned{m}}\midaligned{left page} \page -\inmargin{\midaligned{m}}\midaligned{right page} \page -\setuppagenumbering[alternative={doublesided}] -\inmargin{\midaligned{m}}\midaligned{left page} \page -\inmargin{\midaligned{m}}\midaligned{right page} -\stoptext diff --git a/doc/context/sources/general/manuals/start/ma-cb-abbreviations.tex b/doc/context/sources/general/manuals/start/ma-cb-abbreviations.tex deleted file mode 100644 index 1f5f10744..000000000 --- a/doc/context/sources/general/manuals/start/ma-cb-abbreviations.tex +++ /dev/null @@ -1,7 +0,0 @@ -\startenvironment ma-cb-abbreviations - -% a weird one: (\keycap) ... volledige lijst maken ... symbol - -\logo [Enter] {\type{Enter}} - -\stopenvironment diff --git a/doc/context/sources/general/manuals/start/ma-cb-colofon.tex b/doc/context/sources/general/manuals/start/ma-cb-colofon.tex deleted file mode 100644 index feb77726a..000000000 --- a/doc/context/sources/general/manuals/start/ma-cb-colofon.tex +++ /dev/null @@ -1,95 +0,0 @@ -\startcomponent ma-cb-colophon - -\unprotect - -\startmakeup[\v!standard] - - % This reference is needed for the interactive version. - - \pagereference[colofon] - - % We align the text in the middle. - - \setupalign - [\v!middle] - - % We use the default \framed macro but add a background. For most - % texts an offset of 20pt is adequate. - - \defineframed - [colofon] - [\c!frame=\v!off, - \c!background=basic-shape-dark, - \c!rulethickness=10pt, - \c!align=\v!middle, - \c!offset=15pt] - - \bfa \setupinterlinespace - - \doifsomething {\documentvariable{author}} { - - \dontleavehmode \startframed[colofon] - \labeltext{document:author}:\space - \documentvariable{author} - \stopframed - - \vfill - - } - - \doifsomething {\documentvariable{translator}} { - - \dontleavehmode \startframed[colofon] - \labeltext{document:translations}:\space - \documentvariable{translator} - \stopframed - - \vfill - - } - - \doifsomething {\documentvariable{contributer}} { - - \dontleavehmode \startframed[colofon] - \labeltext{document:contributions}:\space - \documentvariable{contributer} - \stopframed - - \vfill - - } - - \dontleavehmode \startframed[colofon] - \labeltext{document:design}:\space - Hans Hagen - \stopframed - - \vfill - - \dontleavehmode \startframed[colofon] - \labeltext{document:illustrations}:\space - Johan Jonker - \stopframed - - \vfill - - \dontleavehmode \startframed[colofon][offset=25pt] - PRAGMA ADE\\ - Ridderstraat 27\\ - 8061GH Hasselt NL\\ - www.pragma-ade.com - \stopframed - - \vfill - - \dontleavehmode \startframed[colofon] - \currentdate - \stopframed - - \vfill - -\stopmakeup - -\protect - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/ma-cb-copyright.tex b/doc/context/sources/general/manuals/start/ma-cb-copyright.tex deleted file mode 100644 index abb344eef..000000000 --- a/doc/context/sources/general/manuals/start/ma-cb-copyright.tex +++ /dev/null @@ -1,41 +0,0 @@ -\startcomponent ma-cb-copyright - -% The copyright page. English it is and english it will be. - -\unprotect - -\page - [\v!right] - -\startmakeup[\v!standard] - - \switchtobodyfont - [\v!small] - - \setupframed - [\c!frame=\v!off, - \c!width=.8\textwidth, - \c!align=\v!normal, - \c!background=basic-shape-dark, - \c!rulethickness=10pt, - \c!offset=30pt] - - \vfill - - \hfill \startframed - This document is produced with \CONTEXT\ \MKIV\ and \LUATEX. The source is edited - with \SCITE\ and previewed with \SUMATRAPDF. - \stopframed - - \blank[3*\v!big] - - \hfill \startframed - \copyright\ 1991\endash\currentdate[\v!year]\ PRAGMA ADE, Ridderstraat 27, 8061GH - Hasselt, The Netherlands, www.pragma-ade.com - \stopframed - -\stopmakeup - -\protect - -\stopcomponent diff --git a/doc/context/sources/general/manuals/start/ma-cb-graphics.tex b/doc/context/sources/general/manuals/start/ma-cb-graphics.tex deleted file mode 100644 index bb85c0031..000000000 --- a/doc/context/sources/general/manuals/start/ma-cb-graphics.tex +++ /dev/null @@ -1,266 +0,0 @@ -\startenvironment ma-cb-graphics - -% These graphics were made when I had little experience in MetaPost so -% they are not that efficient or nicely codes. Sorry about that. - -\definecolor[ShapeDarkLine] [s=.4] -\definecolor[ShapeDarkDots] [r=1] -\definecolor[ShapeDarkEnd] [g=1] -\definecolor[ShapeLightLine] [s=.95] -\definecolor[ShapeLightDots] [r=.9,g=,5,b=.5] -\definecolor[ShapeLightFill] [s=.95] -\definecolor[ShapeLightFrame][r=.5,g=.50,b=.9] - -\startuseMPgraphic{basic-shape-dark} - color shapedotscolor ; shapedotscolor := \MPcolor{ShapeDarkDots} ; - color shapelinecolor ; shapelinecolor := \MPcolor{ShapeDarkLine} ; - \includeMPgraphic{basic-shape} -\stopuseMPgraphic - -\startuseMPgraphic{basic-shape-light} - color shapedotscolor ; shapedotscolor := \MPcolor{ShapeLightDots} ; - color shapelinecolor ; shapelinecolor := \MPcolor{ShapeLightLine} ; - \includeMPgraphic{basic-shape} -\stopuseMPgraphic - -\startuseMPgraphic{basic-shape} - w := OverlayWidth ; width := 100 ; wfactor := w/width ; - h := OverlayHeight ; height := 100 ; hfactor := h/height ; - d := OverlayOffset ; - % - def random_delta (expr d) = - d - (uniformdeviate 2d) - enddef; - % - z1 = (0,height) ; - z2 = (0,0) ; - z3 = (width,0) ; - z4 = (width,height) ; - % - z5 = ( width+random_delta(.2width),height+random_delta(.2height)) ; - z6 = (.5width+random_delta(.1width),height+random_delta(.1height)) ; - % - pickup pencircle - xscaled (OverlayLineWidth/ wfactor) - yscaled (OverlayLineWidth/(2*hfactor)) - rotated 30 ; - % - draw z5 .. z1 .. z2 .. z3 .. z4 .. z6 withcolor shapelinecolor ; - % - pickup pencircle - xscaled (OverlayLineWidth/wfactor) - yscaled (OverlayLineWidth/hfactor) ; - % - draw z1 withcolor shapedotscolor ; - draw z2 withcolor shapedotscolor ; - draw z3 withcolor shapedotscolor ; - draw z4 withcolor shapedotscolor ; - draw z5 withcolor shapedotscolor ; - draw z6 withcolor shapedotscolor ; - % - currentpicture := currentpicture xysized (w,h) ; -\stopuseMPgraphic - -\startuniqueMPpagegraphic{chapter-state} - color shapelinecolor ; shapelinecolor := \MPcolor{ShapeDarkLine} ; - % - delta := OverlayOffset ; - width := OverlayWidth - 2*delta ; - height := (OverlayHeight - 2*delta) / 3 ; - % - z1 = (0,3height) ; - z2 = (0,2height) ; - z3 = (if not odd RealPageNumber : - fi width,1.5height) ; - z4 = (0,height) ; - z5 = (0,0) ; - % - pickup pencircle - xscaled delta - yscaled .5delta - rotated 30 ; - % - draw z1 -- z2{up} .. z3 .. {up} z4 -- z5 withcolor shapelinecolor ; - % - pickup pencircle - scaled delta ; - % - draw z1 withcolor red ; - draw z2 withcolor red ; - draw z3 withcolor red ; - draw z4 withcolor red ; - draw z5 withcolor red ; - % -\stopuniqueMPpagegraphic - -\startreusableMPgraphic{pagenumber-state} - color shapelinecolor ; shapelinecolor := \MPcolor{ShapeDarkLine} ; - % - delta := OverlayOffset ; - width := OverlayWidth - 2delta ; - height := OverlayHeight - 2delta ; - lines := 5*OverlayOffset ; - % - z1 = (0,0) ; - z2 = (lines,0) ; - z3 = (.5width,height) ; - z4 = (width-lines,0) ; - z5 = (width,0) ; - % - pickup pencircle - xscaled delta - yscaled .5delta - rotated 30; - % - draw z1 -- z2 {dir 135} ... z3 ... {dir -135} z4 -- z5 withcolor shapelinecolor ; - % - pickup pencircle - scaled delta ; - % - draw z1 withcolor red ; - draw z2 withcolor red ; - draw z3 withcolor red ; - draw z4 withcolor red ; - draw z5 withcolor red ; - % -\stopreusableMPgraphic - -\startreusableMPgraphic{manualsymbol} - logo_type := 401 ; - input "mp-prag" ; - currentpicture := currentpicture scaled 0.25 ; -\stopreusableMPgraphic - -\startuseMPgraphic{frame-shape} - delta := OverlayOffset ; - width := OverlayWidth - 2delta ; - height := OverlayHeight - 2delta ; - % - vardef gamma = - g := OverlayOffset ; ((g/3) + (uniformdeviate (2g/3))) - enddef; - % - z1 = (0,0) ; - z2 = (width,0) ; - z3 = (width,height) ; - z4 = (0,height) ; - % - x12= .5[x1,x2] ; y12=y1 + gamma ; - y23= .5[y2,y3] ; x23=x2 - gamma ; - x34= .5[x3,x4] ; y34=y3 - gamma ; - y41= .5[y4,y1] ; x41=x4 + gamma ; - % - pickup pencircle - xscaled OverlayLineWidth - yscaled .5OverlayLineWidth - rotated 30; - % - path p; - p := - z1..z12..z2 & - z2..z23..z3 & - z3..z34..z4 & - z4..z41..z1 & - cycle ; - % - fill p withcolor shapefillcolor ; - draw p withcolor shapelinecolor ; -\stopuseMPgraphic - -\startuseMPgraphic{setup-shape} - color shapelinecolor ; shapelinecolor := \MPcolor{ShapeLightFrame} ; - color shapefillcolor ; shapefillcolor := \MPcolor{ShapeLightFill} ; - \includeMPgraphic{frame-shape} -\stopuseMPgraphic - -% \startuseMPgraphic{setup-shape-x} -% color shapelinecolor ; shapelinecolor := \MPcolor{ShapeLightFrame} ; -% color shapelinecolor ; shapelinecolor := \MPcolor{ShapeLightFill} ; -% \includeMPgraphic{frame-shape} -% \stopuseMPgraphic - -\startuniqueMPgraphic{note-rule} - color shapelinecolor ; shapelinecolor := \MPcolor{ShapeDarkLine} ; - color shapeendcolor ; shapeendcolor := \MPcolor{ShapeDarkEnd} ; - % - draw bottomboundary OverlayBox withcolor shapelinecolor withpen pencircle scaled OverlayLineWidth ; - draw llcorner OverlayBox withcolor shapeendcolor withpen pencircle scaled 3OverlayLineWidth ; - draw lrcorner OverlayBox withcolor shapeendcolor withpen pencircle scaled 3OverlayLineWidth ; - % -\stopuniqueMPgraphic - -\startuniqueMPgraphic{column-rule} - color shapelinecolor ; shapelinecolor := \MPcolor{ShapeDarkLine} ; - color shapeendcolor ; shapeendcolor := \MPcolor{ShapeDarkEnd} ; - % - draw leftboundary OverlayBox withcolor shapelinecolor withpen pencircle scaled OverlayLineWidth ; - draw ulcorner OverlayBox withcolor shapeendcolor withpen pencircle scaled 3OverlayLineWidth ; - draw llcorner OverlayBox withcolor shapeendcolor withpen pencircle scaled 3OverlayLineWidth ; - % -\stopuniqueMPgraphic - -% alternative implemenation -% -% \startuniqueMPgraphic{column-rule}{height,linewidth} -% color shapelinecolor ; shapelinecolor := \MPcolor{ShapeDarkLine} ; -% color shapeendcolor ; shapeendcolor := \MPcolor{ShapeDarkEnd} ; -% numeric shapelinewidth ; shapelinewidth := \MPvar{linewidth} ; -% pair shapeboundary ; shapeboundary := (0,\MPvar{height}) ; -% % -% draw origin -- shapeboundary withcolor shapelinecolor withpen pencircle scaled shapelinewidth ; -% draw origin withcolor shapeendcolor withpen pencircle scaled 3shapelinewidth ; -% draw shapeboundary withcolor shapeendcolor withpen pencircle scaled 3shapelinewidth ; -% % -% \stopuniqueMPgraphic - -% todo - -% \startreusableMPgraphic{clip:six} -% % -% delta := OverlayOffset ; -% height := OverlayWidth - delta ; -% % -% color green; green := (.1,.8,.1) ; -% % -% z1 = (0,0) ; -% z2 = (0,height) ; -% % -% pickup pencircle -% scaled OverlayLineWidth ; -% % -% draw z1 -- z2 withcolor .5white ; -% % -% pickup pencircle -% scaled 3OverlayLineWidth ; -% % -% draw z1 withcolor green ; -% draw z2 withcolor green ; -% % -% \stopreusableMPgraphic - -% \startreusableMPgraphic{clip:seven} -% % -% width := OverlayWidth ; -% height := OverlayHeight ; -% delta := OverlayOffset ; -% % -% color green ; green := (.1,.8,.1) ; -% % -% x1 = x4 = 0 ; x2 = x3 = width ; -% y1 = y2 = 0 ; y3 = y4 = height ; -% % -% pickup pencircle -% scaled OverlayLineWidth ; -% % -% draw z1 -- z2 -- z3 -- z4 -- cycle withcolor .white ; -% % -% pickup pencircle -% scaled 3OverlayLineWidth ; -% % -% draw z1 withcolor green ; -% draw z2 withcolor green ; -% draw z3 withcolor green ; -% draw z4 withcolor green ; -% % -% \stopreusableMPgraphic - -\stopenvironment diff --git a/doc/context/sources/general/manuals/start/ma-cb-links.tex b/doc/context/sources/general/manuals/start/ma-cb-links.tex deleted file mode 100644 index d2e03944d..000000000 --- a/doc/context/sources/general/manuals/start/ma-cb-links.tex +++ /dev/null @@ -1,268 +0,0 @@ -\startenvironment ma-cb-links - -% Links to external document for referencing. - -% --- www - -\useURL - [www:pragma] - [http://www.pragma-ade.com] - [] - [Pragma ADE] - -\useURL - [www:garden] - [http://wiki.contextgarden.net] - [] - [ConTeXt garden] - -\useURL - [www:showweb] - [http://texshow.contextgarden.net] - [] - [Show-web] - -\useURL - [www:wiki-modules] - [http://wiki.contextgarden.net/Modules] - [] - [Wiki Modules] - -\useURL - [www:supelec] - [https://foundry.supelec.fr] - [] - [Supelec] - -\useURL - [www:dir] - [http://www.pragma-ade.com/dir/general] - [] - [http://www.pragma-ade.com/dir/general] - -\useURL - [www:cstug] - [http://www.cstug.cz] - [] - [\CSTUG] - -\useURL - [modul:storm] - [http://modules.contextgarden.net/stormfontsupport] - [] - [http://modules.contextgarden.net/stormfontsupport] - -\useURL - [modul:storm-catalog] - [http://dl.contextgarden.net/modules/stormfontsupport/cont-storm-catalog.pdf] - [] - [cont-storm-catalog.pdf] - -% --- usergroups - -\useURL - [list:context] - [http://www.ntg.nl/mailman/listinfo/ntg-context] - [] - [] - -\useURL - [group:tug] - [https://tug.org] - [] - [] - -\useURL - [group:ntg] - [www.ntg.nl] - [] - [] - -\useURL - [group:context] - [www.????] - [] - [] - -\useURL - [install] - [http://wiki.contextgarden.net/ConTeXt_Standalone] - [] - [] - - -% --- manuals - -\useURL - [manual:general] - [http://www.pragma-ade.com/general/manuals/cont-eni.pdf] - [] - [cont-eni.pdf] - -\useURL - [manual:metafun] - [http://www.pragma-ade.com/general/manuals/metafun-s.pdf] - [] - [metafun-s.pdf] - -\useURL - [manual:columns] - [http://www.pragma-ade.com/general/manuals/columns.pdf] - [] - [columns.pdf] - -\useURL - [manual:nattab] - [http://www.pragma-ade.com/general/manuals/enattab.pdf] - [] - [enattab.pdf] - -\useURL - [manual:extab] - [http://www.pragma-ade.com/general/manuals/xtables-mkiv.pdf] - [] - [xtables-mkiv.pdf] - -\useURL - [manual:details] - [http://www.pragma-ade.com/general/manuals/details.pdf] - [] - [details.pdf] - -\useURL - [manual:fonts] - [http://www.pragma-ade.com/general/manuals/mfonts.pdf] - [] - [mfonts.pdf] - -\useURL - [manual:charts] - [http://www.pragma-ade.com/general/manuals/mcharts.pdf] - [] - [mcharts.pdf] - -\useURL - [manual:context] - [http://www.pragma-ade.com/general/manuals/cont-enp.pdf] - [] - [cont-enp.pdf] - -\useURL - [manual:chemic] - [http://www.pragma-ade.com/general/manuals/mp-ch-en.pdf] - [] - [mp-ch-en.pdf] - -\useURL - [manual:chemic-ex] - [http://www.pragma-ade.com/general/manuals/eppchtex.pdf] - [] - [eppchtex.pdf] - -\useURL - [manual:labels] - [http://www.pragma-ade.com/general/manuals/mlabels.pdf] - [] - [mlabels.pdf] - -\useURL - [manual:widgets] - [http://www.pragma-ade.com/general/manuals/mwidget.pdf] - [] - [mwidget.pdf] - -\useURL - [manual:style] - [http://www.pragma-ade.com/general/manuals/style.pdf] - [] - [style.pdf] - -\useURL - [manual:xml] - [http://www.pragma-ade.com/general/manuals/xml-mkiv.pdf] - [] - [xml-mkiv.pdf] - -\useURL - [manual:units] - [http://www.pragma-ade.com/general/manuals/units-mkiv.pdf] - [] - [units-mkiv.pdf] - -\useURL - [manual:scite] - [http://www.pragma-ade.com/general/manuals/scite-context-readme.pdf] - [] - [scite-context-readme.pdf] - -\useURL - [manual:qr-en] - [http://www.pragma-ade.com/general/qrcs/setup-en.pdf] - [] - [setup-en.pdf] - -\useURL - [manual:qr-nl] - [http://www.pragma-ade.com/general/qrcs/setup-nl.pdf] - [] - [setup-nl.pdf] - -\useURL - [manual:tools] - [http://www.pragma-ade.com/general/manuals/tools-mkiv.pdf] - [] - [tools-mkiv.pdf] - -\useURL - [manual:figures] - [http://www.pragma-ade.com/general/manuals/xfigures-p.pdf] - [] - [xfigures-p.pdf] - -\useURL - [manual:color] - [http://www.pragma-ade.nl/general/manuals/msplit.pdf] - [] - [msplit.pdf] - -% --- magazins - -\useURL - [thisway:shapes] - [http://www.pragma-ade.com/general/myway/mag-0010.pdf] - [] - [mag-0010.pdf] - -\useURL - [thisway:crossrefs] - [http://www.pragma-ade.com/general/magazines/mag-1103.pdf] - [] - [mag-1103.pdf] - -\useURL - [thisway:proj-struc] - [http://www.pragma-ade.com/general/magazines/mag-1101.pdf] - [] - [mag-1103.pdf] - -\useURL - [myway:nattab] - [http://www.pragma-ade.com/general/myway/NaturalTables.pdf] - [] - [NaturalTables.pdf] - -\useURL - [myway:startalign] - [http://www.pragma-ade.com/general/myway/mathalign.pdf] - [] - [mathalign.pdf] - -% AFO 2013: needed for example in manual - -\useURL - [loc:cityplan] - [http://www.stadindex.nl/plattegrond/hasselt] - [] - [] - -\stopenvironment diff --git a/doc/context/sources/general/manuals/start/ma-cb-screen.tex b/doc/context/sources/general/manuals/start/ma-cb-screen.tex deleted file mode 100644 index c3af1f783..000000000 --- a/doc/context/sources/general/manuals/start/ma-cb-screen.tex +++ /dev/null @@ -1,201 +0,0 @@ -\startenvironment ma-cb-screen - -% This setups adds some functionality as well as redefines -% some of the previously defined layout. - -\unprotect - -\definepapersize - [LocalPaperFormat] - [\c!width=28cm, - \c!height=21cm] - -\setuppapersize - [LocalPaperFormat] - [LocalPaperFormat] - -\setuplayout - [\c!location=\v!middle, - \c!topspace=.5cm, - \c!header=1.5cm, - \c!height=20cm, - \c!rightedge=5cm, - \c!rightedgedistance=1cm] - -\setupinteractionscreen - [\c!width=28cm, - \c!height=21cm, - \c!option=\v!max] - -% We place the pagenumber (not that useful in an interactive -% document) somewhere else and the chapter number in the -% footer. - -\setuppagenumbering - [\c!alternative=\v!singlesided, - \c!location=, - \c!command=\NummerCommando] - -\unexpanded\def\NummerCommando#1% uitlijnen op onderkant voet - {\hbox to \rightedgewidth - {\scratchcounter=\lastpage - \advance\scratchcounter by -\realpageno - \hskip0pt plus \realpageno cm - \framed - [\c!background=NummerAchtergrond, - \c!frame=\v!off, - \c!offset=4pt]% - {\lower.5\dp\strutbox\hbox spread 60pt{\hss\tx#1\hss}}% {\hss#1\hss}}% - \hskip0pt plus \scratchcounter cm}} - -\setupfootertexts - [\v!edge] - [][\v!pagenumber] - -\unexpanded\def\PlaatsHoofdstukStatus - {\determineheadnumber[\v!chapter]% - \ifnum\currentheadnumber>0 - \hbox to \hsize - {\hss - \framed - [\c!background=NummerAchtergrond, - \c!frame=\v!off, - \c!offset=6pt] - {\lower.5\dp\strutbox\hbox spread 60pt - {\hss\getmarking[\v!chapter\v!number]\hss}}% - \hss} - \fi} - -\setupfootertexts - [\v!margin] - [][] - -\setupfootertexts - [\v!text] - [][\PlaatsHoofdstukStatus] - -\setupinteraction - [\c!state=\v!start, - \c!color=, - \c!menu=\v!on] - -% We let users click on the whole table of contents line and -% provide some menus. - -\setuplist - [\v!chapter] - [\c!interaction=\v!all] - -\setupinteractionmenu - [\v!right] - [\c!state=\v!start, - \c!color=, - \c!offset=4pt, - \c!background=MenuAchtergrond, - \c!frame=\v!off] - -\startmode[**nl] - - \setupinteractionmenu - [\v!right] - [ {inhoud[contents]}, - {index[subind]}, - {commando's[comind]}, - {definities[comdefs]}, - {colofon[colofon]}, - {\vfill}, - {stoppen[\v!CloseDocument]}, - {\ZoekEnZoek{zoeken}}, - {terug[\v!PreviousJump]}, - {\HeenEnWeer}] - -\stopmode - -\startmode[**en,**uk] - - \setupinteractionmenu - [\v!right] - [ {contents[contents]}, - {index[subind]}, - {commands[comind]}, - {definitions[comdefs]}, - {colofon[colofon]}, - {\vfill}, - {exit[\v!CloseDocument]}, - {\ZoekEnZoek{search}}, - {go back[\v!PreviousJump]}, - {\HeenEnWeer}] - -\stopmode - -\startmode[**cz] - - \setupinteractionmenu - [\v!right] - [ {obsah[contents]}, - {rejst\rcaron\iacute k[subind]}, - {seznam p\rcaron\iacute kaz\uring[comind]}, - {definice p\rcaron\iacute kaz\uring[comdefs]}, - {tir\aacute\zcaron[colofon]}, - {\vfill}, - {konec[\v!CloseDocument]}, - {\ZoekEnZoek{vyhledej}}, - {krok zp\ecaron t[\v!PreviousJump]}, - {\HeenEnWeer}] - -\stopmode - -\startmode[**fr] - - \setupinteractionmenu - [\v!right] - [ {table des mati\egrave res[contents]}, - {index[subind]}, - {commandes[comind]}, - {d\eacute finitions[comdefs]}, - {colophon[colofon]}, - {\vfill}, - {quitter[\v!CloseDocument]}, - {\ZoekEnZoek{recherche}}, - {retour[\v!PreviousJump]}, - {\HeenEnWeer}] - -\stopmode - -\startmode[**vn] - - \setupinteractionmenu - [\v!right] - [ {mục lục[contents]}, - {bảng tra[subind]}, - {lệnh[comind]}, - {định nghĩa[comdefs]}, - {trang cuối[colofon]}, - {\vfill}, - {thoát[\v!CloseDocument]}, - {\ZoekEnZoek{tìm kiếm}}, - {quay lại[\v!PreviousJump]}, - {\HeenEnWeer}] - -\stopmode - -% This not that \TEX nical definition deals with the two sets -% of buttons. Someday I'll make a general macro for this. - -\def\TwoMenuButtons#1[#2]#3[#4]% - {\hbox to \hsize - {\dimen0=\hsize - \advance\hsize by -12pt - \menubutton[\v!right][\c!width=.5\hsize]{#1}[#2]% - \hss - \menubutton[\v!right][\c!width=.5\hsize]{#3}[#4]}} - -\def\HeenEnWeer - {\TwoMenuButtons{--}[\v!previouspage]{+}[\v!nextpage]} - -\def\ZoekEnZoek#1% - {\TwoMenuButtons{#1}[\v!SearchDocument]{+}[\v!SearchAgain]} - -\protect - -\stopenvironment diff --git a/doc/context/sources/general/manuals/start/ma-cb-style.tex b/doc/context/sources/general/manuals/start/ma-cb-style.tex deleted file mode 100644 index 294e4a5cc..000000000 --- a/doc/context/sources/general/manuals/start/ma-cb-style.tex +++ /dev/null @@ -1,678 +0,0 @@ -% macros=mkvi - -\startenvironment ma-cb-style - -\usemodule[chart] - -\usemodule[s][abr-03] -\usemodule[x][set-11] - -\unprotect - -% Setups are kind of special. - -\loadsetups[cont-\currentmainlanguage.xml] - -\setupsetup - [\c!criterium=\v!used] - -\setupframedtexts - [setuptext] - [\c!before={\blank[\v!big]}, - \c!after={\blank[\v!big]}, - \c!background=setup-shape, - \c!backgroundoffset=10pt, - \c!rulethickness=5pt, - \c!offset=15pt, - \c!frame=\v!off] - -\setupexternalfigures - [\c!directory={../graphics}] - -% The layout dimensions are based on the A4 paper dimensions because that way users -% can print this manual themselves. Let's be economical with paper. We also assume a -% decent doublesided A4 printer. We use equal margins so that a single sided run or -% print also comes out all right. - -\setuplayout - [\c!backspace=22.5mm, - \c!width=\v!fit, - \c!cutspace=22.5mm, - \c!margin=20mm, - \c!margindistance=5mm, - \c!topspace=15mm, - \c!header=10mm, - \c!headerdistance=5mm, - \c!height=\v!fit, - \c!footerdistance=5mm, - \c!footer=15mm, - \c!bottomspace=15mm] - -\setuppagenumbering - [\c!alternative=\v!doublesided] - -% The lucida fonts look a bit more informal. - -\doifmodeelse {atpragma} { - \setupbodyfont[lucidaot,10pt] -} { - \setupbodyfont[palatino,10pt] -} - -% All colors will go here. - -% todo - -% Let's keep the text compact. - -\setupwhitespace - [\v!medium] - -\setupblank - [\v!medium] - -% We indent verbatim with the default indenting value. - -\setuptyping - [\c!margin=\v!standard, - \c!blank=\v!medium] - -% Manuals as usual need a bit more tolerance, because a lot of in||line verbatim is -% used. - -\setuptolerance - [\v!verytolerant,\v!stretch] - -% This manual makes heavy use of backgrounds. During a run about many metaclips are -% generated. - -\defineoverlay [chapter-state] [\uniqueMPpagegraphic{chapter-state}] -\defineoverlay [pagenumber-state] [\uniqueMPgraphic{pagenumber-state}] - -\defineoverlay [basic-shape-light] [\useMPgraphic{basic-shape-light}] -\defineoverlay [basic-shape-dark] [\useMPgraphic{basic-shape-dark}] - -\defineoverlay [setup-shape] [\useMPgraphic{setup-shape}] -\defineoverlay [note-rule] [\uniqueMPgraphic{note-rule}] -\defineoverlay [column-rule] [\uniqueMPgraphic{column-rule}] - -% \defineoverlay -% [MenuAchtergrond] -% [\MPclipTwoA{\overlaywidth}{\overlayheight}{3pt}{3pt}{red}{white}] - -\starttexdefinition unexpanded FootnoteRule - \blank[2*\v!big] - \framed - [\c!background=note-rule, - \c!width=.4\makeupwidth, - \c!height=2pt, - \c!offset=\v!overlay, - \c!rulethickness=2pt, - \c!frame=\v!off] - {} - \blank[\v!small] -\stoptexdefinition - -\setupfootnotes - [\c!rule=off, - \c!before=\FootnoteRule] - -% Chapter titles have a fancy shape around them. Because we have a lot of small -% chapters, we don't go to a new page. Titles look the same, but there we go to -% a new page. - -\setuphead - [\v!chapter] - [\c!command=\HeadCommand, - \c!page=, - \c!before={\blank[3*\v!big]}, - \c!after={\blank[2*\v!big,\v!samepage]}] - -\setuphead - [\v!title] - [\c!page=\v!right] - -\starttexdefinition unexpanded HeadCommand #number #title - \alignedline {\v!outer} {\v!left} { - \framed [ - \c!background=basic-shape-dark, - \c!rulethickness=10pt, - \c!frame=\v!off, - \c!strut=\v!no, - \c!offset=24pt, - \c!align=\v!middle - ] { - \doifmode {*\v!sectionnumber} { - #number - \kern.5em - \blackrule [ - color=green, - width=1pt, - height=1.5\ht\strutbox, - depth=1.25\dp\strutbox - ] - \kern.5em - } - #title - } - } -\stoptexdefinition - -% The current chapter number is typeset in the (outer) margin and slowly moves -% down. We could have directly put it in the margin but using the footermargin as -% starting point works better. This is an old command and there is no reason to -% change the definition to more fabce MkIV version. - -\setupfootertexts - [\v!margin] - [][\fastsetup{chapterindicator}] - -\startsetups chapterindicator - \determineheadnumber[\v!chapter] - \ifcase\currentheadnumber\else - \vbox to \makeupheight { - \scratchcounter=\numexpr\lastpage-\realpageno\relax - \vskip2cm - \vskip0pt plus \realpageno cm - \framed [ - \c!background=chapter-state, - \c!width=36pt, - \c!height=72pt, - \c!backgroundoffset=5pt, - %\c!align={\v!lohi,\v!middle}, - \c!frame=\v!off - ] { - \lower.5\dp\strutbox\hbox { - \bfb - \getmarking[\v!chapter\v!number] - } - } - \vskip0pt plus \scratchcounter cm - \vskip2cm - } - \fi -\stopsetups - -% The index is put on a double collumned grid. The numbers is surrounded by a -% shape. - -\setupregister - [\v!index] - [\c!command=\IndexCommand, - \c!before={\blank[\v!line]}, - \c!after=] - -\starttexdefinition unexpanded IndexCommand #text - \framed [ - \c!background=basic-shape-dark, - \c!width=36pt, - \c!frame=\v!off, - \c!offset=4pt, - \c!align=\v!middle, - \c!rulethickness=4pt - ] { - #text - } -\stoptexdefinition - -% When bound, we use a double sided layout and put the pagenumber in the margin, -% enhanced by a fancy background. - -\setuppagenumbering - [\c!location={\v!footer,\v!middle}, - \c!command=\PageNumberCommand] - -\starttexdefinition unexpanded PageNumberCommand #pagenumber - \framed [ - \c!background=pagenumber-state, - \c!backgroundoffset=5pt, - \c!frame=\v!off, - \c!offset=6pt - ] { - \lower.5\dp\strutbox\hbox spread 60pt { - \hss - #pagenumber - \hss - } - } -\stoptexdefinition - -% We put the chapter title in the head. If we wouldn't have to center, the more -% simple setting would be: - -\setupheadertexts - [{\getmarking[\v!chapter]}] - -% Guess what the next one does. - -\setupitemgroup - [\v!itemize] - [1] - [\v!autointro] - -% The coverpage looks more complex than it is. We can reuse it. - -\newbox\CoverBackgroundBox % reuse saves .8 sec, could be an object! - -\starttexdefinition unexpanded ShowSetupOnCover #n #tag #xmlroot - \dontleavehmode - \framed [ - \c!background=basic-shape-light, - \c!backgroundoffset=5pt, - \c!rulethickness=2pt, - \c!frame=\v!off - ] { - \xmlsetup{#xmlroot}{xml:setups:assemblename} - \tttf - \texescape\currentSETUPfullname - } - \hskip1.25em plus 1em minus 1em\relax -\stoptexdefinition - -% \startsetups coverbackground -% -% \ifvoid\CoverBackgroundBox -% -% \global\setbox\CoverBackgroundBox=\vbox to \paperheight \bgroup -% \hsize\paperwidth -% \emergencystretch3em -% \parfillskip0pt -% \switchtobodyfont -% [6pt] -% \baselineskip 0pt plus 1pt minus 1pt -% \setupsorting -% [texcommand] -% [\c!command=\ShowSetupOnCover, -% \c!criterium=\v!all] -% \beginofshapebox -% \leftskip3pt -% \rightskip3pt -% \placelistofsorts -% [texcommand] -% \endofshapebox -% \doreshapebox -% {\box\shapebox} -% {\penalty\shapepenalty} -% {\kern\shapekern} -% {\vfil} -% \kern3pt -% \vfilneg -% \flushshapebox -% \vfilneg -% \kern3pt -% \egroup -% -% \fi -% -% \copy\CoverBackgroundBox -% -% \stopsetups - -\startsetups coverbackground - - \ifvoid\CoverBackgroundBox - - \global\setbox\CoverBackgroundBox - \startnicelyfilledbox - [\c!width=\paperwidth, - \c!height=\paperheight, - \c!offset=\exheight, - \c!strut=\v!no] - \switchtobodyfont - [6pt] - \placelistofsorts - [texcommand] - [\c!command=\ShowSetupOnCover, - \c!criterium=\v!all] - \stopnicelyfilledbox - - \fi - - \copy\CoverBackgroundBox - -\stopsetups - -\defineoverlay[coverbackground][\setups{coverbackground}] - -\setupdocument - [author={Ton Otten\crlf PRAGMA ADE}, - translator=, - contributer=, - before=\setups{coverpage}, - after=\setups{backpage}] - -\defineoverlay[gotocontents][\overlaybutton{contents}] - -\startsetups coverpage - - \setupbackgrounds - [\v!rightpage] - [\c!background=coverbackground] - - \setupbackgrounds - [\v!text] - [\v!text] - [\c!background=gotocontents] - - \startmakeup - [\v!standard] - [\c!doublesided=\v!empty, - \c!headerstate=\v!none, - \c!footerstate=\v!none] - - \hbox to \hsize \bgroup - \hss - \definedfont[SansBold*default at 40pt] - \framed - [\c!background=basic-shape-dark, - \c!frame=\v!off, - \c!rulethickness=15pt, - \c!align=\v!middle, - \c!offset=40pt] - {\documentvariable{title}} - \egroup - - \vfill - - \doifsomething {\documentvariable{subtitle}} { - - \hbox to \hsize \bgroup - \definedfont[SansBold*default at 14pt] - \framed - [\c!background=basic-shape-dark, - \c!frame=\v!off, - \c!rulethickness=10pt, - \c!align=\v!middle, - \c!offset=20pt] - {\documentvariable{subtitle}} - \hss - \egroup - - } - - \hbox to \hsize \bgroup - \hss - \definedfont[SansBold*default at 20pt] - \framed - [\c!background=basic-shape-dark, - \c!frame=\v!off, - \c!rulethickness=12.5pt, - \c!align=\v!middle, - \c!offset=35pt] - {\documentvariable{author}} - \egroup - - \stopmakeup - - \setupbackgrounds - [\v!text] - [\v!text] - [\c!background=] - - \setupbackgrounds - [\v!rightpage] - [\c!background=] - - \doifmode {screen} { - - \setupbackgrounds - [\v!page] - [\c!background=\v!screen, - \c!backgroundscreen=.95] - - \setupbackgrounds - [\v!text] - [\v!text] - [\c!backgroundoffset=.25cm, - \c!depth=.125cm, - \c!background=\v!color, - \c!backgroundcolor=white] - - } - - \component[ma-cb-copyright] - -\stopsetups - -% The backpage uses the same background and overlays a piece of text. - -\startsetups backpage - - \page - [\v!yes,\v!blank,\v!right] - - \component[ma-cb-colofon] - - \page - [\v!yes,\v!blank,\v!left] - - \setupbackgrounds - [\v!leftpage] - [\c!background=coverbackground] - - \startmakeup - [\v!standard] - [\c!page=, - \c!doublesided=\v!no, - \c!headerstate=\v!none, - \c!footerstate=\v!none] - - \setuptolerance - [\v!verytolerant] - - \vfill - - \hbox to \hsize \bgroup - - \framed - [\c!background=\v!color, - \c!backgroundcolor=white, - \c!frame=\v!off, - \c!offset=10pt, - \c!corner=\v!round, - \c!width=.4\makeupwidth, - \c!height=\textheight, - \c!align=\v!middle, - \c!strut=\v!no] - { - \vfil - \component[ma-cb-en-backpage] - \vfil - } - - \hss - - \egroup - - \vfill - - \stopmakeup - -\stopsetups - -% To save space we don't start chapters on a new page, except in appendices and the -% introduction. These settings happen in dedicated setups sections (see later). We -% also add some white space between table of content entries. - -\setupsectionblock [\v!frontpart] [\c!page=\v!right,\c!before=\setups{frontpart}] -\setupsectionblock [\v!bodypart] [\c!page=\v!right,\c!before=\setups{bodypart}] -\setupsectionblock [\v!appendix] [\c!page=\v!right,\c!before=\setups{appendix}] -\setupsectionblock [\v!backpart] [\c!page=\v!right,\c!before=\setups{backpart}] - -\setuplist - [\v!chapter] - [\c!criterium=\v!all, - \c!before=, - \c!after=] - -\startsetups frontpart - - \setuphead[\v!chapter][\c!page=\v!right] - - \writebetweenlist[\v!chapter]{\blank} - - \startnamedsection[\v!chapter][\c!title=\labeltext{document:contents}] - - \startmixedcolumns[documentcolumns] - \placelist[\v!chapter] - \stopmixedcolumns - - \stopnamedsection - - \page[\v!right] - -\stopsetups - -\startsetups bodypart - - \setuphead[\v!chapter][\c!page=] - - \writebetweenlist[\v!chapter]{\blank} - -\stopsetups - -\startsetups appendix - - \setuphead[\v!chapter][\c!page=\v!right] - - \writebetweenlist[\v!chapter]{\blank} - - \startnamedsection[\v!chapter][\c!title=\labeltext{document:commanddefinitions},\c!reference=commandsetups] - - \component[ma-cb-\currentmainlanguage-commandlist] - - \blank[2*\v!big] - - \start - - \switchtobodyfont[8pt] - - \startmixedcolumns[documentcolumns] - \placelistofsorts[texcommand] - \stopmixedcolumns - - \stop - - \stopnamedsection - - \startnamedsection[\v!chapter][\c!title=\labeltext{document:commandindex}] - - \startmixedcolumns[documentcolumns] - \placeregister[Command] - \stopmixedcolumns - - \stopnamedsection - - \startnamedsection[\v!chapter][\c!title=\labeltext{document:subjectindex}] - - \startmixedcolumns[documentcolumns] - \placeregister[\v!index] - \stopmixedcolumns - - \stopnamedsection - - \startnamedsection[\v!chapter][\c!title=\labeltext{document:supportandreading}] - - \index{support} - - \startnamedsection[\v!section][\c!title=\labeltext{document:support}] - - \component[ma-cb-\currentmainlanguage-support] - - \stopnamedsection - - \startnamedsection[\v!section][\c!title=\labeltext{document:manuals}] - - % this will be done from a bib file - - \startlines - \goto {Chemical Formulas in \CONTEXT} [ url (manual:chemic-ex) ] - \goto {Color Separation} [ url (manual:color) ] - \goto {Columns} [ url (manual:columns) ] - \goto {\CONTEXT, the manual} [ url (manual:context) ] - \goto {Dealing with \XML} [ url (manual:xml) ] - \goto {Extreme Tables} [ url (manual:extab) ] - \goto {Figures} [ url (manual:figures) ] - \goto {Fonts in \CONTEXT} [ url (manual:fonts) ] - \goto {luatools, mtxrun, context} [ url (manual:tools) ] - \goto {\METAFUN\ manual} [ url (manual:metafun) ] - \goto {Natural Tables} [ url (manual:nattab) ] - \goto {\PPCHTEX\ Manual} [ url (manual:chemic) ] - \goto {Quick Reference (dutch)} [ url (manual:qr-nl) ] - \goto {Quick Reference (english)} [ url (manual:qr-en) ] - \goto {\SCITE\ in \CONTEXT} [ url (manual:scite) ] - \goto {Units} [ url (manual:units) ] - \goto {Widgets} [ url (manual:widgets) ] - \stoplines - - \stopnamedsection - - \startnamedsection[\v!section][\c!title=\labeltext{document:magazines}] - - % this will be done from a bib file - - \startlines - \goto {\CONTEXT\ Magazine 1103} [ url (thisway:crossrefs) ] - \goto {Project structure} [ url (thisway:proj-struc) ] - \stoplines - - \stopnamedsection - - \stopnamedsection - -\stopsetups - -\startsetups backpart - - \setuphead[\v!chapter][\c!page=\v!right] - - \writebetweenlist[\v!chapter]{\blank} - -\stopsetups - -% In normal documents one will never find awful things like below. Because we want -% an international setup, we just call the chapters in an indirect way. - -% We draw a nice line between columns. The next command does the job. Of course a -% normal line can be set more easily, but here we hook in a command. - -\installmixedcolumnseparator{ColumnRule}% - {\framed - [\c!background=column-rule, - \c!height=\mixedcolumnseparatorheight, - \c!depth=\mixedcolumnseparatordepth, - \c!width=\mixedcolumnseparatorwidth, - \c!offset=\v!overlay, - \c!rulethickness=2pt, - \c!frame=\v!off] - {}} - -% alternative implemenation -% -% \installmixedcolumnseparator{ColumnRule}% -% {\lower\mixedcolumnseparatordepth\hbox{\uniqueMPgraphic -% {column-rule}% -% {height=\the\dimexpr\mixedcolumnseparatorheight+\mixedcolumnseparatordepth,linewidth=2pt}}} - -\setupmixedcolumns - [\c!n=2, - \c!distance=36pt, - \c!separator=ColumnRule] - -\definemixedcolumns - [documentcolumns] - [\c!n=2, - \c!distance=36pt, - \c!separator=ColumnRule] - -\defineregister - [Command] - -\setupregister - [Command] - [\c!indicator=\v!off, - c!before={\blank[\v!line]}] - -\protect - -\stopenvironment diff --git a/doc/context/sources/general/manuals/start/ma-cb.tex b/doc/context/sources/general/manuals/start/ma-cb.tex deleted file mode 100644 index 7f23597a1..000000000 --- a/doc/context/sources/general/manuals/start/ma-cb.tex +++ /dev/null @@ -1,17 +0,0 @@ -\startproject ma-cb - - \environment ma-cb-language - - \environment ma-cb-abbreviations - \environment ma-cb-graphics - \environment ma-cb-style - \environment ma-cb-links - - \startmode[screen] - \environment ma-cb-screen - \stopmode - - \product ma-cb-en - \product ma-cb-nl - -\stopproject diff --git a/doc/context/sources/general/manuals/steps/steps-mkiv.tex b/doc/context/sources/general/manuals/steps/steps-mkiv.tex deleted file mode 100644 index 947f08fbb..000000000 --- a/doc/context/sources/general/manuals/steps/steps-mkiv.tex +++ /dev/null @@ -1,655 +0,0 @@ -\environment manuals-xml-environment.tex - -\useMPlibrary [ove] - -\usemodule[x][mathml] -\usemodule[m][steps] - -\startdocument[title=Steps,author=Hans Hagen,palet=steps] - -\startbuffer -\startSTEPchart -\cell {A} -\cell {one} \text{+2} -\cell {two} \text{+3} -\cell {three} \text{+4} -\cell {four} \text{+5} -\cell {five} -\stopSTEPchart -\stopbuffer - -\startsection[title=Description] - -This module is written in the process of defining a couple of styles for an -educational math book. The macros provide you a way to visualize steps in for -instance solving equations. - -The horizontal visualization is called stepchart, while the vertical alternative -carries the name steptable. The vertical alternative has a special case that -permits alignment on a mid symbol (in most cases a relation). - -The implementation uses a combination of \TEX\ and \METAPOST, and is set up in -such a way that hyperlinks and alike will work okay. - -\stopsection - -\startsection[title=Structure] - -The horizontal stepcharts have at most four rows: two rows of cells with each an -associated row of texts. The plural elements \type {cells} and \type {texts} each -have two subelements. The \type {texts} elements are put between \type {cells}. - -\startbuffer -<stepchart> - <cells> <top> some text </top> <bot> some text </bot> </cells> - <texts> <top> text </top> <bot> text </bot> </texts> - <cells> <top> some text </top> <bot> some text </bot> </cells> -</stepchart> -\stopbuffer - -\typebuffer \processxmlbuffer - -When a singular \type {cell} element is used in combination with the plural \type -{texts}, we get one row of step cells with both top and bottom texts. - -\startbuffer -<stepchart> - <cell> some text </cell> - <texts> <top> text </top> <bot> text </bot> </texts> - <cell> some text </cell> -</stepchart> -\stopbuffer - -\typebuffer \processxmlbuffer - -The third horizontal alternative only has singular elements, and as a result the -texts are put above the step cells. - -\startbuffer -<stepchart> - <cell> some cell </cell> - <cell> another cell </cell> <text> a bit of text </text> - <cell> third cell </cell> <text> more text </text> - <cell> last cell </cell> -</stepchart> -\stopbuffer - -\typebuffer \processxmlbuffer - -Normally, the lines go from cell to cell via a text. When you let the \type -{cell} element follow by more than one \type {text} element (or their plural -forms), all lines will start at the same point. - -\startbuffer -<stepchart> - <cell> some text </cell> - <cell> some text </cell> <text> text 1 </text> <text> text 2 </text> - <cell> some text </cell> - <cell> some text </cell> <text> text 3 </text> - <cell> some text </cell> -</stepchart> -\stopbuffer - -\typebuffer \processxmlbuffer - -The vertical alternative (of course) looks different and permits pretty long -explanations. - -\startbuffer -<steptable> - <cell> cell 1 </cell> - <text> text 1 </text> - <cell> cell 2 </cell> - <text> text 2 </text> - <cell> cell 3 </cell> -</steptable> -\stopbuffer - -\typebuffer \processxmlbuffer - -When the plural element \type {cells} is used, three sub||elements are expected. -These align around the mid element \type {c2}. - -\startbuffer -<stepaligntable> - <cells> <c1> left </c1> <c2> center </c2> <c3> right </c3> </cells> - <text> text </text> - <cells> <c1> lft </c1> <c2> ctr </c2> <c3> rgt </c3> </cells> - <text> text </text> - <cells> <c1> l </c1> <c2> c </c2> <c3> r </c3> </cells> -</stepaligntable> -\stopbuffer - -\typebuffer \processxmlbuffer - -\stopsection - -\startsection[title=Usage] - -The step chart module is loaded with: - -\starttyping -\usemodule[cell] % was step -\stoptyping - -\noindentation but in the case of embedded math, you should also load the \MATHML\ module: - -\starttyping -\usemodule[cell,mathml] -\stoptyping - -\stopsection - -\startsection[title=\XML\ example] - -Because we don't want to clutter the examples with \MATHML\ we stick to a simple -mapping: - -\startbuffer -\startxmlsetups xml:math:simple - \xmlsetsetup {#1} {m} {xml:math:simple:tex} -\stopxmlsetups - -\startxmlsetups xml:math:simple:tex - \mathematics{\xmlflush{#1}} -\stopxmlsetups - -\xmlregistersetup{xml:math:simple} -\stopbuffer - -\typebuffer \getbuffer - -So, in the next examples the \type {m} element contains \TEX\ math. - -\startbuffer -<stepchart> - <cells> <top> A </top> <bot> B </bot> </cells> - <cells> <top> one </top> <bot> five </bot> </cells> - <texts> <top> <m> +2 </m> </top> <bot> <m> -2 </m> </bot> </texts> - <cells> <top> two </top> <bot> four </bot> </cells> - <texts> <top> <m> +3 </m> </top> <bot> <m> -3 </m> </bot> </texts> - <cells> <top> three </top> <bot> three </bot> </cells> - <texts> <top> <m> +4 </m> </top> <bot> <m> -4 </m> </bot> </texts> - <cells> <top> four </top> <bot> two </bot> </cells> - <texts> <top> <m> +5 </m> </top> <bot> <m> -5 </m> </bot> </texts> - <cells> <top> five </top> <bot> one </bot> </cells> -</stepchart> -\stopbuffer - -\typebuffer \processxmlbuffer - -\startbuffer -<stepchart> - <cell> A </cell> - <cell> one </cell> <text> <m> +2 </m> </text> - <cell> two </cell> <text> <m> +3 </m> </text> - <cell> three </cell> <text> <m> +4 </m> </text> - <cell> four </cell> <text> <m> +5 </m> </text> - <cell> five </cell> -</stepchart> -\stopbuffer - -\typebuffer \processxmlbuffer - -\startbuffer -<steptable> - <cell> - <math xmlns="mathml"> - <apply> <eq/> <ci> c </ci> - <apply> <plus/> - <apply> <times/> <cn> 2 </cn> <ci> a </ci> </apply> - <apply> <times/> <cn> 3 </cn> <ci> b </ci> </apply> - </apply> - </apply> - </math> - </cell> - <text> with - <math xmlns="mathml"> - <apply> <eq/> <ci> a </ci> <cn> 5 </cn> </apply> - </math> - </text> - <cell> - <math xmlns="mathml"> - <apply> <eq/> <ci> c </ci> - <apply> <plus/> <cn> 10 </cn> - <apply> <times/> <cn> 3 </cn> <ci> b </ci> </apply> - </apply> - </apply> - </math> - </cell> - <text> and - <math xmlns="mathml"> - <apply> <eq/> <ci> b </ci> <cn> 6 </cn> </apply> - </math> - </text> - <cell> - <math xmlns="mathml"> - <apply> <eq/> <ci> c </ci> - <apply> <plus/> <cn> 10 </cn> <cn> 18 </cn> </apply> - </apply> - </math> - </cell> - <text> - we get - </text> - <cell> - <math xmlns="mathml"> - <apply> <eq/> <ci> c </ci> <cn> 28 </cn> </apply> - </math> - </cell> -</steptable> -\stopbuffer - -\typebuffer \processxmlbuffer - -\startbuffer -<stepaligntable> - <cells> - <c1> <m>c</m> </c1> <c2> <m>=</m> </c2> <c3> <m>2a+3b</m> </c3> - </cells> - <text> - with <m>a=5</m> - </text> - <cells> - <c1> <m>c</m> </c1> <c2> <m>=</m> </c2> <c3> <m>10+3b</m> </c3> - </cells> - <text> - and <m>b=6</m> - </text> - <cells> - <c1> <m>c</m> </c1> <c2> <m>=</m> </c2> <c3> <m>10+18</m> </c3> - </cells> - <text> - we get - </text> - <cells> - <c1> <m>c</m> </c1> <c2> <m>=</m> </c2> <c3> <m>28</m> </c3> - </cells> -</stepaligntable> -\stopbuffer - -\typebuffer \processxmlbuffer - -\stopsection - -\startsection[title=\TEX\ example] - -\startbuffer -\startSTEPchart -\cells {A} {B} -\cells {one} {five or more} \texts{$+2$}{$-2$} -\cells {two} {four} \texts{$+3$}{$-3$} -\cells {three} {three} \texts{$+4$}{$-4$} -\cells {four} {two} \texts{$+5$}{$-5$} -\cells {five or more} {one} -\stopSTEPchart -\stopbuffer - -\typebuffer \getbuffer - -\startbuffer -\startSTEPchart -\cell {A} -\cell {one} \texts{$+2$}{$-2$} -\cell {two} \texts{$+3$}{$-3$} -\cell {three} \texts{$+4$}{$-4$} -\cell {four} \texts{$+5$}{$-5$} -\cell {five or more} -\stopSTEPchart -\stopbuffer - -\typebuffer \getbuffer - -\startbuffer -\startSTEPchart -\cells {A} {B} -\cells {one} {five or more} \texts{$+2$}{} -\cells {two} {four} \texts{}{$-3$} -\cells {three} {three} \texts{$+4$}{} -\cells {four} {two} \texts{}{$-5$} -\cells {five or more} {one} -\stopSTEPchart -\stopbuffer - -\typebuffer \getbuffer - -\startbuffer -\startSTEPchart -\cell {A} -\cell {one} \text{+2} \text{+3} \text{+4} \text{+5} -\cell {two} -\cell {three} -\cell {four} -\cell {five} -\stopSTEPchart -\stopbuffer - -\typebuffer \getbuffer - -\startbuffer -\startSTEPchart -\cell {A} -\cell {one} \texts{}{+2} \texts{}{+3} -\cell {two} -\cell {three} \texts{+4}{} \texts{+5}{} -\cell {four} -\cell {five} -\stopSTEPchart -\stopbuffer - -\typebuffer \getbuffer - -\startbuffer -\startSTEPchart -\cell {A} -\cell {one} \text{+2} -\cell {two} \text{+3} -\cell {three} \text{+4} -\cell {four} \text{+5} -\cell {five} -\stopSTEPchart -\stopbuffer - -\typebuffer \getbuffer - -\startbuffer -\startSTEPtable -\cell {$c=2a+3b$} -\text {with $a=5$} -\cell {$c=10+3b$} -\text {and $b=6$} -\cell {$c=10+18$} -\text {we get} -\cell {$c=28$} -\stopSTEPtable -\stopbuffer - -\typebuffer \getbuffer - -\startbuffer -\startSTEPaligntable -\cells {$2c$} {$=$} {$2a+3b$} -\text {with $a=5$} -\cells {$2c$}{$=$} {$10+3b$} -\text {and $b=6$} -\cells {$2c$} {$=$} {$10+18$} -\text {we get} -\cells {$2c$} {$=$} {$28$} -\text {and therefore} -\cells {$c$} {$=$} {$28/2$} -\text {which reduces to} -\cells {$c$} {$=$} {$14$} -\stopSTEPaligntable -\stopbuffer - -\typebuffer \getbuffer - -\startbuffer -\startSTEPchart - \cells {A} {B} - \cells {one} {five} \texts{$+2$}{$-2$} - \cells {two} {four} \texts{$+3$}{$-3$} - \cells {three} {three} \texts{$+4$}{$-4$} - \cells {four} {two} \texts{$+5$}{$-5$} - \cells {five} {one} -\stopSTEPchart -\stopbuffer - -\typebuffer \getbuffer - -\stopsection - -\startsection[title=Configuring] - -The charts and tables can have their own spacing set. Quite certainly the -distances between cells will differ. - -\starttabulate[|Tl|l|] -\HL -\NC \rlap{\tex{setupSTEPcharts} \tex{setupSTEPtables}} \NC \NC \NR -\HL -\NC after \NC hook for commands to execute after the table \NC \NR -\NC before \NC hook for commands to execute before the table \NC \NR -% \NC method \NC line drawing method\NC \NR -% \NC height \NC height of the connecting line \NC \NR -% \NC offset \NC the distance between lines and cells and texts \NC \NR -% \NC hoffset \NC the horizontal distance between cells \NC \NR -% \NC voffset \NC the vertical distance between cells \NC \NR -\HL -\stoptabulate - -Both charts and tables have common settings with respect to the cells, texts and -lines. - -\starttabulate[|Tl|l|] -\HL -\NC \rlap{\tex{setupSTEPcells} \tex{setupSTEPtexts}} \NC \NC \NR -\HL -\NC alternative \NC the kind of shape to be drawn \NC \NR -\NC backgroundcolor \NC the background color identified by name \NC \NR -\NC rulethickness \NC the width of frame around cells \NC \NR -\NC framecolor \NC the frame color identified by name \NC \NR -\NC offset \NC the space between content and frame \NC \NR -\NC style \NC a (preferable named) style \NC \NR -\NC color \NC the color of the content \NC \NR -\HL -\stoptabulate - -\starttabulate[|Tl|l|] -\HL -\NC \rlap{\tex{setupSTEPlines}} \NC \NC \NR -\HL -\NC alternative \NC the kind of line to draw between cells \NC \NR -\NC distance \NC the distance between lines and text \NC \NR -\NC offset \NC the shift to the right of the start of the line \NC \NR -\NC height \NC the height of the (curved) line \NC \NR -\NC rulethickness \NC the width of the lines between cells \NC \NR -\NC color \NC the line color identified by name \NC \NR -\HL -\stoptabulate - -In \TEX, some of the settings, like \type {style} and \type {color} can be set -between elements. In \XML, the settings are passed as processing instructions. - -\startbuffer -\startSTEPchart -\cell {A} -\cell {one} \text{+2} -\cell {two} \text{+3} -\start - \setupSTEPcells[color=darkred,style=bold] - \cell {three} \text{+4} - \cell {four} \text{+5} -\stop -\cell {five} -\stopSTEPchart -\stopbuffer - -\typebuffer \getbuffer - -There are a couple of alternative shapes available. The most relevant ones are: -\removeunwantedspaces \dostepwiserecurse {5} {9} {1} { \TestShape {\recurselevel}} -\removeunwantedspaces \dostepwiserecurse {12} {19} {1} { \TestShape {\recurselevel}} -\removeunwantedspaces \dostepwiserecurse {22} {29} {1} { \TestShape {\recurselevel}}. - -Although it is not too wise to set up the layout in the middle of a document, for -graphics one can seldom get by some local fine||tuning. Here we encounter a -rather fundamental difference between \TEX\ and \XML. In \TEX, you can easily -change settings on a temporary basis by using groups. In \XML\ on the other hand, -settings are bound to a category. So, in \TEX\ you can do this: - -\startbuffer -\setupSTEPcells - [important] - [color=darkgreen, - style=bold] - -\startSTEPchart -\cell {A} -\cell {one} \text{+2} -\cell {two} \text{+3} -\cell [important] {three} \text{+4} -\cell [important] {four} \text{+5} -\cell {five} -\stopSTEPchart -\stopbuffer - -\typebuffer \getbuffer - -\noindentation An \XML\ example is: - -\startbuffer -\setupSTEPcells[demo-1][alternative=5] -\setupSTEPcells[demo-1][framecolor=darkred] -\setupSTEPtexts[demo-1][framecolor=darkgreen] -\setupSTEPlines[demo-1][alternative=4] -\setupSTEPtexts[demo-2][style=bold] -\stopbuffer - -\typebuffer \getbuffer - -\noindentation This will be applied to: - -\startbuffer -<steptable class="demo-1"> - <cell> type 5 </cell> - <text> type 6 </text> - <cell> type 7 </cell> - <text class="demo-2"> type 8 </text> - <cell> type 9 </cell> -</steptable> -\stopbuffer - -\typebuffer - -\noindentation so that we get: - -\processxmlbuffer - -You can also use processing instructions: - -\startbuffer -<stepchart> - <cells> <top> some text 1 </top> <bot> some text 2 </bot> </cells> - <?context-stepchart-directive text color darkred ?> - <texts> <top> text 3 </top> <bot> text 4 </bot> </texts> - <cells> <top> some text 5 </top> <bot> some text 6 </bot> </cells> - <?context-stepchart-directive text color darkblue ?> - <texts> <top> text 7t </top> </texts> - <cells> <top> some text 8 </top> </cells> -</stepchart> -\stopbuffer - -\typebuffer \processxmlbuffer - -\startbuffer -<steptable> - <?context-stepchart-directive cell alternative 12 ?> - <cell> cell 12 </cell> <text> 12 to 13 </text> - <?context-stepchart-directive cell alternative 13 ?> - <cell> cell 13 </cell> <text> 13 to 14 </text> - <?context-stepchart-directive cell alternative 14 ?> - <cell> cell 14 </cell> <text> 14 to 15 </text> - <?context-stepchart-directive cell alternative 15 ?> - <cell> cell 15 </cell> -</steptable> -\stopbuffer - -\typebuffer \processxmlbuffer - -Some settings apply to the whole chart. In \TEX\ this is easy since we -can group the whole chart including settings but in \XML\ this is somewhat -problematic. We can however fall back on basic tex commands but it's -probably better to use as category (class), like: - -\startbuffer -\setupSTEPtexts[demo-5][distance=3em] -\stopbuffer - -\typebuffer \getbuffer - -\noindentation So, the following works as expected: - -\startbuffer -<document> - <?context-tex-directive start ?> - <?context-stepchart-directive text distance 1em ?> - <stepaligntable> - <cells> <c1>a</c1> <c2>b</c2> <c3>c</c3> </cells> - <text> test 1 </text> - <cells> <c1>aa</c1> <c2>b</c2> <c3>ccc</c3> </cells> - </stepaligntable> - <?context-tex-directive stop ?> - <stepaligntable> - <cells> <c1>a</c1> <c2>b</c2> <c3>c</c3> </cells> - <text> test 2 </text> - <cells> <c1>aa</c1> <c2>b</c2> <c3>ccc</c3> </cells> - </stepaligntable> - <stepaligntable class="demo-5"> - <cells> <c1>a</c1> <c2>b</c2> <c3>c</c3> </cells> - <text> test 3 </text> - <cells> <c1>aa</c1> <c2>b</c2> <c3>ccc</c3> </cells> - </stepaligntable> -</document> -\stopbuffer - -\typebuffer \processxmlbuffer - -\startbuffer -<document> - <?context-tex-directive start ?> - <?context-stepchart-directive cell dx 10ex ?> - <stepchart> - <cells> <top> from here </top> <bot> there </bot> </cells> - <texts> <top> to </top> <bot> to </bot> </texts> - <cells> <top> and here </top> <bot> there </bot> </cells> - </stepchart> - <?context-tex-directive stop ?> -</document> -\stopbuffer - -\typebuffer \processxmlbuffer - -\startbuffer -<document> - <?context-tex-directive start ?> - <?context-stepchart-directive line height 30pt ?> - <?context-stepchart-directive line offset 5pt ?> - <steptable> - <cell> some cell </cell> - <cell> another cell </cell> <text> a bit of text </text> - <cell> third cell </cell> <text> more text </text> - <cell> last cell </cell> - </steptable> - <?context-tex-directive stop ?> -</document> -\stopbuffer - -\typebuffer \processxmlbuffer - -\startbuffer -<document> - <?context-tex-directive start ?> - <?context-stepchart-directive line height 30pt ?> - <?context-stepchart-directive line offset 15pt ?> - <stepchart> - <cell> some cell </cell> - <cell> another cell </cell> <text> a bit of text </text> - <cell> third cell </cell> <text> more text </text> - <cell> last cell </cell> - </stepchart> - <?context-tex-directive stop ?> -</document> -\stopbuffer - -\typebuffer \processxmlbuffer - -\stopsection - -\startsection[title=Documentation] - -There is no additional documentation on this module. - -\stopsection - -\stopdocument diff --git a/doc/context/sources/general/manuals/swiglib/swiglib-mkiv-gm-1.jpg b/doc/context/sources/general/manuals/swiglib/swiglib-mkiv-gm-1.jpg Binary files differdeleted file mode 100644 index 8c45b41b9..000000000 --- a/doc/context/sources/general/manuals/swiglib/swiglib-mkiv-gm-1.jpg +++ /dev/null diff --git a/doc/context/sources/general/manuals/swiglib/swiglib-mkiv-gm-1.pdf b/doc/context/sources/general/manuals/swiglib/swiglib-mkiv-gm-1.pdf Binary files differdeleted file mode 100644 index d576c7d91..000000000 --- a/doc/context/sources/general/manuals/swiglib/swiglib-mkiv-gm-1.pdf +++ /dev/null diff --git a/doc/context/sources/general/manuals/swiglib/swiglib-mkiv-gm-1.png b/doc/context/sources/general/manuals/swiglib/swiglib-mkiv-gm-1.png Binary files differdeleted file mode 100644 index fba526e9f..000000000 --- a/doc/context/sources/general/manuals/swiglib/swiglib-mkiv-gm-1.png +++ /dev/null diff --git a/doc/context/sources/general/manuals/swiglib/swiglib-mkiv.tex b/doc/context/sources/general/manuals/swiglib/swiglib-mkiv.tex deleted file mode 100644 index c24be76bf..000000000 --- a/doc/context/sources/general/manuals/swiglib/swiglib-mkiv.tex +++ /dev/null @@ -1,352 +0,0 @@ -% language=uk - -% 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. - -\usemodule[art-01,abr-02] - -\definecolor - [maincolor] - [r=.4] - -\definecolor - [extracolor] - [g=.4] - -\setupbodyfont - [11pt] - -\setuptype - [color=maincolor] - -\setuptyping - [color=maincolor] - -\definefontsynonym - [TitlePageMono] - [file:lmmonoproplt10-bold*default] - -\setuphead - [color=maincolor] - -\usesymbols - [cc] - -\setupinteraction - [hidden] - -\loadfontgoodies[lm] - -\startdocument - [metadata:author=Hans Hagen, - metadata:title=SwigLib basics, - author=Hans Hagen, - affiliation=PRAGMA ADE, - location=Hasselt NL, - title=SwigLib basics, - support=www.contextgarden.net, - website=www.pragma-ade.nl] - -\startluasetups[swiglib] - for i=1,640 do - context.definedfont { string.formatters["TitlePageMono at %p"](65536*(10+math.random(5))) } - context("SwigLib ") - end - context.removeunwantedspaces() -\stopluasetups - -\startMPpage - -StartPage ; - - fill Page enlarged 1cm withcolor \MPcolor{extracolor} ; - - draw textext("\framed[loffset=2pt,roffset=2pt,frame=off,width=\paperwidth,align={normal,paragraph,verytolerant,stretch}]{\luasetup{swiglib}}") - xysized (PaperWidth,PaperHeight) - shifted center Page - withcolor .8white ; - - draw textext.ulft("\definedfont[TitlePageMono]basics") - xsized .75PaperWidth - shifted lrcorner Page - shifted (-1cm,2cm) - withcolor \MPcolor{maincolor} ; - - % draw textext.ulft("\definedfont[TitlePageMono]in context mkiv") - % xsized .6PaperWidth - % shifted lrcorner Page - % shifted (-1cm,6cm) - % withcolor \MPcolor{maincolor} ; - -StopPage ; - -\stopMPpage - -\dontcomplain - -\startsubject[title=Contents] - -\placelist[section][alternative=a] - -\stopsubject - -\startsection[title=Introduction] - -The \SWIGLIB\ project is related to \LUATEX\ and aims as adding portable library -support to this \TEX\ engine without too much fixed binding. The project does not -provide \LUA\ code, unless really needed, because it assumes that macro packages -have different demands. It also fits in the spirit of \TEX\ and \LUA\ to minimize -the core components. - -The technical setup is by Luigi Scarso and documentation about how to build the -libraries is part of the \SWIGLIB\ repository. Testing happens with help of the -\CONTEXT\ (garden) infrastructure. This short document only deals with usage in -\CONTEXT\ but also covers rather plain usage. - -\blank \start \em todo: reference to Luigi's manual \stop \blank - -\stopsection - -\startsection[title=Inside \CONTEXT] - -The recommended way to load a library in \CONTEXT\ is by using the -\type {swiglib} function. This function lives in the global namespace. - -\starttyping -local gm = swiglib("gmwand.core") -\stoptyping - -After this call you have the functionality available in the \type {gm} -namespace. This way of loading makes \CONTEXT\ aware that such a library -has been loading and it will report the loaded libraries as part of the -statistics. - -If you want, you can use the more ignorant \type {require} instead but in -that case you need to be more explicit. - -\starttyping -local gm = require("swiglib.gmwand.core") -\stoptyping - -Here is an example of using such a library (by Luigi): - -\startbuffer -\startluacode -local gm = swiglib("gmwand.core") -local findfile = resolvers.findfile - -if not gm then - -- no big deal for this manual as we use a system in flux - logs.report("swiglib","no swiglib libraries loaded") - return -end - -gm.InitializeMagick(".") - -local magick_wand = gm.NewMagickWand() -local drawing_wand = gm.NewDrawingWand() -local pixel_wand = gm.NewPixelWand(); - -gm.MagickSetSize(magick_wand,800,600) -gm.MagickReadImage(magick_wand,"xc:gray") - -gm.DrawPushGraphicContext(drawing_wand) - -gm.DrawSetFillColor(drawing_wand,pixel_wand) - -gm.DrawSetFont(drawing_wand,findfile("dejavuserifbold.ttf")) -gm.DrawSetFontSize(drawing_wand,96) -gm.DrawAnnotation(drawing_wand,200,200,"ConTeXt 1") - -gm.DrawSetFont(drawing_wand,findfile("texgyreschola-bold.otf")) -gm.DrawSetFontSize(drawing_wand,78) -gm.DrawAnnotation(drawing_wand,250,300,"ConTeXt 2") - -gm.DrawSetFont(drawing_wand,findfile("lmroman10-bold.otf")) -gm.DrawSetFontSize(drawing_wand,48) -gm.DrawAnnotation(drawing_wand,300,400,"ConTeXt 3") - -gm.DrawPopGraphicContext(drawing_wand) - -gm.MagickDrawImage(magick_wand,drawing_wand) - -gm.MagickWriteImages(magick_wand,"./swiglib-mkiv-gm-1.png",1) -gm.MagickWriteImages(magick_wand,"./swiglib-mkiv-gm-1.jpg",1) -gm.MagickWriteImages(magick_wand,"./swiglib-mkiv-gm-1.pdf",1) - -gm.DestroyDrawingWand(drawing_wand) -gm.DestroyPixelWand(pixel_wand) -gm.DestroyMagickWand(magick_wand) -\stopluacode -\stopbuffer - -\typebuffer - -\getbuffer - -In practice you will probably stay away from manipulating text this way, but it -illustrates that you can use the regular \CONTEXT\ helpers to locate files. - -\startlinecorrection[big] - \startcombination[3*1] - {\externalfigure[swiglib-mkiv-gm-1.png][width=.3\textwidth]} {png} - {\externalfigure[swiglib-mkiv-gm-1.pdf][width=.3\textwidth]} {pdf} - {\externalfigure[swiglib-mkiv-gm-1.jpg][width=.3\textwidth]} {jpg} - \stopcombination -\stoplinecorrection - -You'd better make sure to use unique filenames for such graphics. Of course a more -clever mechanism would only run time consuming tasks once for each iteration of a -document. - -\stopsection - -\startsection[title=Outside \CONTEXT] - -In the \CONTEXT\ distribution we ship some generic macros and code for usage in -plain \TEX\ but there is no reason why they shouldn't work in other macro packages -as well. A rather plain example is this: - -\starttyping -\input luatex-swiglib.tex - -\directlua { - dofile("luatex-swiglib-test.lua") -} - -\pdfximage {luatex-swiglib-test.jpg} \pdfrefximage\pdflastximage - -\end -\stoptyping - -Assuming that you made the \type {luatex-plain} format, such a file can be processed using: - -\starttyping -luatex --fmt=luatex=plain luatex-swiglib-test.tex -\stoptyping - -The loaded \LUA\ file \type {luatex-swiglib-test.lua} liike like this: - -\starttyping -local gm = swiglib("gmwand.core") - -gm.InitializeMagick(".") - -local magick_wand = gm.NewMagickWand() -local drawing_wand = gm.NewDrawingWand() - -gm.MagickSetSize(magick_wand,800,600) -gm.MagickReadImage(magick_wand,"xc:red") -gm.DrawPushGraphicContext(drawing_wand) -gm.DrawSetFillColor(drawing_wand,gm.NewPixelWand()) -gm.DrawPopGraphicContext(drawing_wand) -gm.MagickDrawImage(magick_wand,drawing_wand) -gm.MagickWriteImages(magick_wand,"./luatex-swiglib-test.jpg",1) - -gm.DestroyDrawingWand(drawing_wand) -gm.DestroyMagickWand(magick_wand) -\stoptyping - -Instead of loading a library with the \type {swiglib} function, you can also -use \type {require}: - -\starttyping -local gm = require("swiglib.gmwand.core") -\stoptyping - -Watch the explicit \type {swiglib} reference. Both methods are equivalent. - -\stopsection - -\startsection[title={The libraries}] - -Most libraries are small but some can be rather large and have additional files. -This is why we keep them separated. On my system they are collected in the -platform binary tree: - -\starttyping -e:/tex-context/tex/texmf-mswin/bin/lib/luatex/lua/swiglib/gmwand -e:/tex-context/tex/texmf-mswin/bin/lib/luatex/lua/swiglib/mysql -e:/tex-context/tex/texmf-mswin/bin/lib/luatex/lua/swiglib/.... -\stoptyping - -One can modulate on this: - -\starttyping -...tex/texmf-mswin/bin/lib/luatex/lua/swiglib/mysql/core.dll -...tex/texmf-mswin/bin/lib/luajittex/lua/swiglib/mysql/core.dll -...tex/texmf-mswin/bin/lib/luatex/context/lua/swiglib/mysql/core.dll -\stoptyping - -are all valid. When versions are used you can provide an additional argument to the -\type {swiglib} loader: - -\starttyping -tex/texmf-mswin/bin/lib/luatex/lua/swiglib/mysql/5.6/core.dll -\stoptyping - -This works with: - -\starttyping -local mysql = swiglib("mysql.core","5.6") -\stoptyping - -as well as: - -\starttyping -local mysql = swiglib("mysql.core") -\stoptyping - -It is hard to predict how operating systems look up libraries and especially -nested loads, but as long as the root of the \type {swiglib} path is known to the -file search routine. We've kept the main conditions for success simple: the core -library is called \type {core.dll} or \type {core.so}. Each library has an -(automatically called) initialize function named \type {luaopen_core}. There is no -reason why (sym)links from the \type {swiglib} path to someplace else shouldn't -work. - -In \type {texmfcnf.lua} you will find an entry like: - -\starttyping -CLUAINPUTS = ".;$SELFAUTOLOC/lib/{$engine/context,$engine}/lua//" -\stoptyping - -Which in practice boils down to a search for \type {luatex} or \type {luajittex} -specific libraries. When both binaries are compatible and there are no \type -{luajittex} binaries, the regular \type {luatex} libraries will be used. - -The \type {swiglib} loader function mentioned in previous sections load libraries -in a special way: it changes dir to the specific path and then loads the library -in the usual way. After that it returns to the path where it started out. After -this, when the library needs additional libraries (and for instance graphicmagick -needs a lot of them) it will first look on its own path (which is remembered). - -The \MKIV\ lookups are somewhat more robust in the sense that they first check -for matches on engine specific paths. This comes in handy when the search -patterns are too generic and one can match on for instance \type {luajittex} -while \type {luatex} is used. - -\stopsection - -\startsection[title=Colofon] - -\starttabulate[|B|p|] -\NC author \NC \getvariable{document}{author}, \getvariable{document}{affiliation}, \getvariable{document}{location} \NC \NR -\NC version \NC \currentdate \NC \NR -\NC website \NC \getvariable{document}{website} \endash\ \getvariable{document}{support} \NC \NR -\NC comment \NC the swiglib infrastructure is implemented by Luigi Scarso \NC \NR -\stoptabulate - -\stopsection - -\stopdocument diff --git a/doc/context/sources/general/manuals/templates/templates-mkiv.tex b/doc/context/sources/general/manuals/templates/templates-mkiv.tex deleted file mode 100644 index 01f2c429e..000000000 --- a/doc/context/sources/general/manuals/templates/templates-mkiv.tex +++ /dev/null @@ -1,283 +0,0 @@ -% language=uk - -% 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. - -\usemodule[art-01,abr-02] - -\definecolor[maincolor] [r=.4] -\definecolor[extracolor][b=.4] - -\setupbodyfont - [10pt] - -\usesymbols - [cc] - -\setuptyping - [color=extracolor] - -\setuptype - [color=extracolor] - -\setuphead - [section] - [color=maincolor] - -\setupinteraction - [hidden] - -\startdocument - [metadata:author=Hans Hagen, - metadata:title=LMX Templates, - author=Hans Hagen, - affiliation=PRAGMA ADE, - location=Hasselt NL, - title=LMX Templates, - extra-1=LMX, - extra-2=TEMPLATES, - extra-3=HANS HAGEN, - support=www.contextgarden.net, - website=www.pragma-ade.nl] - -\startMPpage - - StartPage; - - numeric n, m ; n := 3 * 4 ; m := 4 * 4 ; - numeric w, h ; w := PaperWidth/n ; h := PaperHeight/m ; - numeric max ; max := 20 ; - - for i=1 upto n : - for j=1 upto m : - fill - unitsquare - xysized (w,h) - shifted ((i-1)*w,(j-1)*h) - withcolor (.5[red,blue] randomized(.75,.75,.75)) - ; - endfor ; - endfor ; - - path p ; p := Page enlarged -5mm ; - - pair a[] ; % < - - a[1] := .80[lrcorner p,urcorner p] ; - a[2] := .50[llcorner p,ulcorner p] ; - a[3] := .20[lrcorner p,urcorner p] ; - - pair b[] ; % \ - - b[1] := ulcorner p ; - b[2] := center p ; - b[3] := lrcorner p ; - - path c[] ; % from < (xml) to \ (tex) - - c[1] := a[1] .. b[1] ; - c[2] := a[2] .. b[2] ; - c[3] := a[3] .. b[3] ; - - linecap := butt ; - - numeric fraction ; - - for i=1 step 1 until max : - fraction := i/max ; - draw - ((point fraction along c[1]) -- (point fraction along c[2]) -- (point fraction along c[3])) - withpen pencircle scaled 5mm - withcolor .75[(max+1-i)*green/n,i*yellow/max] - withtransparency (1,.5) - ; - endfor ; - - draw - textext.rt("\ssbf{\documentvariable{extra-1}}") - xsized (7w) - shifted (.8w,3h) - withcolor white - ; - - draw - textext.rt("\ssbf{\documentvariable{extra-2}}") - xsized (8w) - shifted (w,h) - withcolor white - ; - - draw - textext.ulft("\ssbf{\documentvariable{extra-3}}") - rotated 90 - ysized (5.9h) - shifted (PaperWidth-1.2w,PaperHeight/2+2.95h) - withcolor white - ; - - StopPage; - -\stopMPpage - -\startsubject[title={Contents}] - -\placelist[section][criterium=all,interaction=all] - -\stopsubject - -\startsection [title={Introduction}] - -{\em This manual is not finished yet. The main reason is that what is described -here is an afternoon experiment resulting in a dozen lines of \LUA\ glue code -that builds upon an already existing mechanism. When users like this, I will -extend the basic \LMX\ handler to suit the \TEX\ end better. There will also be -also support for cache based and in||document templates.)} - -The acronym \type {lmx} stands for document that are a mix of \LUA\ and \XML\ and -is just the three letters \type {xml} reversed. Such documents showed up pretty -soon in \MKIV\ while I was exploring ways to present debugging and error -information to users using \XML. As a consequence this is one of the older -mechanisms available, although I doubt if users start looking for it when they -start using \CONTEXT. - -Anyhow, because we also use \LMX\ for populating web pages, at some point I wondered -if using the same approach for \TEX\ files made sense. I'm still not sure about it -but who knows where this ends up. Currently code is shared but in the future we might -end up with a variant that adds some more flexibility. - -\stopsection - -\startsection [title={How it works}] - -First of all, using this mechanism involves yet another kind of \type {mk}, so -now we have: - -\starttabulate[|TB||] -\HL -\NC mkii \NC The old version of \CONTEXT, using \PDFTEX,\XETEX, etc. \NC \NR -\HL -\NC mkiv \NC The new version of \CONTEXT, using \LUATEX. \NC \NR -\NC mkvi \NC Similar to \MKIV\ but with named macro parameters. \NC \NR -\HL -\NC mkix \NC A \MKIV\ file mixed with \LUA\ wrapped in \XML\ processing instructions. \NC \NR -\NC mkxi \NC Similar to \MKIX\ but with named macro parameters. \NC \NR -\HL -\stoptabulate - -The nice thing about sticking to wrapping in angle brackets is that it plays nice -with syntax highlighting. Before we show an example of such a mix, we first point -out that loading (and thereby conversion) happens automatically. A \type {mkix} or -\type {mkxi} file is just a regular \CONTEXT\ file. In the test suite there -is a demo file that can be included like this: - -\starttyping -\input lmxlike-001.mkxi -\stoptyping - -This file is loaded and converted on the fly. No caching takes place, but in due time -we can use the cache built into the \LMX\ handlers if needed. The template itself -can be fed with variables in the \type {document} namespace: - -\starttyping -\starttext - - \startluacode - document.variables.text = "set" - \stopluacode - - \input lmxlike-001.mkxi - -\stoptext -\stoptyping - -Instead of a special suffix, you can also force conversion with the \type {macros} -directive: - -\starttyping -% macros=mkix -\stoptyping - -Part of the mentioned looks as follows: - -\starttyping -\bTABLE - <?lua for i=1,40 do ?> - \bTR - <?lua for j=1,5 do ?> - \bTD - cell (<?lua inject(i) ?>,<?lua inject(j)?>) - is <?lua inject(variables.text or "unset") ?> - \eTD - <?lua end ?> - \eTR - <?lua end ?> -\eTABLE -\stoptyping - -The \type {<?lua ... ?>} command is conceptually different from (say) \type -{\ctxlua} in the sense that the later executes some \LUA\ code at that spot, -while in a template a \LUA\ function is constructed out of the whole that gets -executed. In fact, we use \LUA\ to construct an input file. - -For the moment we only mention the predefined \type {inject} command. There are -some more but they make more sense for \XML\ and \HTML\ and in due time this will -be decoupled so that we can have dedicated helpers. Even the \XML\ and \HTML\ -part is somewhat in flux. - -The previous example can of course also be done differently. It's a matter of -taste and usage what method gets used: - -\starttyping -\startluacode - context.bTABLE() - for i=1,40 do - context.bTR() - for j=1,5 do - context.bTD() - context("cell (%s,%s) is %s",i,j,document.variables.text or "unset") - context.eTD() - end - context.eTR() - end - context.eTABLE() -\stopluacode -\stoptyping - -The difference between a \MKIX\ and \MKXI\ file is the same as between a \MKIV\ -and \MKVI\ file: the way macros can be defined: - -\starttyping -\def\testmacro#one#two{[#one,#two]} - -\testmacro{1}{2} -\testmacro{one}{two} -\testmacro{second}{first} -\stoptyping - -In practice one will seldom need macro definitions in a template file but the -possibility is provided. - -\stopsection - -\startsubject[title={Colofon}] - -\starttabulate[|B|p|] -\NC author \NC \getvariable{document}{author}, \getvariable{document}{affiliation}, \getvariable{document}{location} \NC \NR -\NC version \NC \currentdate \NC \NR -\NC website \NC \getvariable{document}{website} \endash\ \getvariable{document}{support} \NC \NR -\NC copyright \NC \symbol[cc][cc-by-sa-nc] \NC \NR -\stoptabulate - -\stopsubject - -\stopdocument diff --git a/doc/context/sources/general/manuals/tiptrick/tiptrick.tex b/doc/context/sources/general/manuals/tiptrick/tiptrick.tex deleted file mode 100644 index 54a785134..000000000 --- a/doc/context/sources/general/manuals/tiptrick/tiptrick.tex +++ /dev/null @@ -1,117 +0,0 @@ -% interface=en -% -% author: Hans Hagen - Pragma ADE - www.pragma-ade.com - -\setupbodyfont - [dejavu] - -\setuppapersize - [HD-] - -\setuplayout - [location=middle, - header=0pt, - footer=0pt, - backspace=2.25cm, - topspace=2.25cm, - width=middle, - height=middle] - -\setupcolors - [state=start] - -\startreusableMPgraphic{page} - StartPage ; - picture p ; path s ; - fill Page withcolor .5red ; - draw Page withpen pensquare scaled 2cm withcolor .75[.5red,white] ; - s := (Field[Text][Text] enlarged .5cm) squeezed (.1cm,.15cm) ; - fill s withcolor .75[.5red,white] ; - if false : - p := image (graphictext "\ss TIP" withfillcolor .2white ;) ; - else : - p := textext.raw("\ss TIP") ; - setbounds p to (boundingbox p rightenlarged -0.025bbwidth(p)) ; - fi ; - p := p xysized(PaperWidth-1cm,PaperHeight-1cm) ; - p := p shifted .5(bbwidth(Page)-bbwidth(p),bbheight(Page)-bbheight(p)) ; - draw p withcolor .2white ; - clip p to s ; - draw p withcolor .875[.5red,white] ; ; - StopPage ; -\stopreusableMPgraphic - -\defineoverlay - [page] - [\reuseMPgraphic{page}] - -\setupbackgrounds - [page] - [background=page, - state=repeat] - -\definecolor[red][r=.5] - -\setuphead - [chapter] - [style=\tfb, - before=, - after={\blank[line]}] - -\setupblank - [halfline] - -% xml interface - -\startxmlsetups xml:tips - \xmlflush{#1} -\stopxmlsetups - -\startxmlsetups xml:tip - \startstandardmakeup - \startnamedsection[title][title=\xmlfirst{#1}{/title}] - \xmlall{#1}{/(remark|command)} - \vfill - \stopnamedsection - \stopstandardmakeup -\stopxmlsetups - -\startxmlsetups xml:remark - \blank - \xmlflush{#1} - \blank -\stopxmlsetups - -\definehighlight - [command] - [style=mono, - color=red, - command=no] - -\startxmlsetups xml:command - \blank - \starthighlight[command] - \xmlflush{#1} - \stophighlight - \blank -\stopxmlsetups - -\startxmlsetups xml:reference - \vfill - \hfill\strut see:\space - \xmlflush{#1} -\stopxmlsetups - -\startxmlsetups xml:initialize - \xmlsetsetup {#1} { - tips|tip|remark|command|reference - } {xml:*} -\stopxmlsetups - -\xmlregisterdocumentsetup{main}{xml:initialize} - -\starttext - - \xmlprocessfile{main}{tiptrick.xml}{} - -\stoptext diff --git a/doc/context/sources/general/manuals/tiptrick/tiptrick.xml b/doc/context/sources/general/manuals/tiptrick/tiptrick.xml deleted file mode 100644 index 8b4a30011..000000000 --- a/doc/context/sources/general/manuals/tiptrick/tiptrick.xml +++ /dev/null @@ -1,53 +0,0 @@ -<?xml version='1.0'?> - -<!-- author: Hans Hagen - Pragma ADE - www.pragma-ade.com --> - -<!-- feel free to submit more tips --> - -<tips xmlns="www.pragma-ade.com/schemas/tip.rng"> - - <tip> - <title>Generating Formats</title> - <remark>for all languages:</remark> - <command>context --make --all</command> - <remark>only english interface:</remark> - <command>context --make en</command> - <remark>for plain tex:</remark> - <command>mtxrun --script plain --make</command> - <!-- reference>mtexexec.pdf</reference --> - </tip> - - <tip> - <title>Updating</title> - <remark>when installed from the wiki:</remark> - <command>..../first-setup(.cmd)</command> - <remark>when downloaded from the website:</remark> - <command>cd ..../tex/texmf-context</command> - <command>wget http://www.pragma-ade.com/context/current/cont-tmf.zip</command> - <command>unzip cont-tmf.zip</command> - <command>mtxrun --generate</command> - <!-- reference>minstall.pdf</reference --> - </tip> - - <tip> - <title>Generating Command Lists</title> - <remark>quick reference document of english and dutch commands:</remark> - <command>context --interface=nl --global --result=setup-nl x-set-12.mkiv</command> - <command>context --interface=en --global --result=setup-en x-set-12.mkiv</command> - </tip> - - <tip> - <title>Module Documentation</title> - <remark>pretty printed, annotated module documentation:</remark> - <command>mtxrun --script modules syst-aux.mkiv</command> - </tip> - - <tip> - <title>Listings</title> - <remark>verbatim listings of (ascii) files:</remark> - <command>context --extra=listing --bodyfont=8pt --scite somefile.tex</command> - <command>context --extra=listing --bodyfont=8pt --scite somefile.lua</command> - <command>context --extra=listing --bodyfont=8pt --scite somefile.xml</command> - </tip> - -</tips> diff --git a/doc/context/sources/general/manuals/tools/tools-mkiv.tex b/doc/context/sources/general/manuals/tools/tools-mkiv.tex deleted file mode 100644 index 2ac1e15f4..000000000 --- a/doc/context/sources/general/manuals/tools/tools-mkiv.tex +++ /dev/null @@ -1,511 +0,0 @@ -% language=uk - -% 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. - -\usemodule[abr-02] - -\setuplayout - [width=middle, - height=middle, - backspace=2cm, - topspace=1cm, - footer=0pt, - bottomspace=2cm] - -\definecolor - [DocumentColor] - [r=.5] - -\setuptype - [color=DocumentColor] - -\setuptyping - [color=DocumentColor] - -\usetypescript - [iwona] - -\setupbodyfont - [iwona] - -\setuphead - [chapter] - [style=\bfc, - color=DocumentColor] - -\setuphead - [section] - [style=\bfb, - color=DocumentColor] - -\setupinteraction - [hidden] - -\setupwhitespace - [big] - -\setupheadertexts - [] - -\setupheadertexts - [] - [{\DocumentColor \type {luatools mtxrun context}\quad\pagenumber}] - -\usesymbols[cc] - -\def\sTEXMFSTART{\type{texmfstart}} -\def\sLUATOOLS {\type{luatools}} -\def\sMTXRUN {\type{mtxrun}} -\def\sCONTEXT {\type{context}} -\def\sKPSEWHICH {\type{kpsewhich}} -\def\sMKTEXLSR {\type{mktexlsr}} -\def\sXSLTPROC {\type{xsltproc}} - -\usemodule[narrowtt] - -\startdocument - [metadata:author=Hans Hagen, - metadata:title={Tools: luatools, mtxrun, context}, - author=Hans Hagen, - affiliation=PRAGMA ADE, - location=Hasselt NL, - title=Tools, - extra-1=luatools, - extra-2=mtxrun, - extra-3=context, - support=www.contextgarden.net, - website=www.pragma-ade.nl] - -\startMPpage - StartPage ; - picture p ; p := image ( - for i=1 upto 21 : - for j=1 upto 30 : - drawarrow (fullcircle rotated uniformdeviate 360) scaled 10 shifted (i*15,j*15) ; - endfor ; - endfor ; - ) ; - p := p ysized (bbheight(Page)-4mm) ; - fill Page enlarged 2mm withcolor \MPcolor{DocumentColor} ; - draw p shifted (center Page - center p) withpen pencircle scaled 2 withcolor .5white ; - numeric dx ; dx := bbwidth(Page)/21 ; - numeric dy ; dy := bbheight(Page)/30 ; - p := textext("\tt\bf\white\getvariable{document}{extra-1}") xsized(14*dx) ; - p := p shifted (-lrcorner p) shifted lrcorner Page shifted (-1dx,8dy) ; - draw p ; - p := textext("\tt\bf\white\getvariable{document}{extra-2}") xsized(14*dx) ; - p := p shifted (-lrcorner p) shifted lrcorner Page shifted (-1dx,5dy) ; - draw p ; - p := textext("\tt\bf\white\getvariable{document}{extra-3}") xsized(14*dx) ; - p := p shifted (-lrcorner p) shifted lrcorner Page shifted (-1dx,2dy) ; - draw p ; - setbounds currentpicture to Page ; - StopPage -\stopMPpage - -\startsubject[title=Contents] - -\placelist[section][alternative=a] - -\stopsubject - -\startsection[title={Remark}] - -This manual is work in progress. Feel free to submit additions or corrections. -Before you start reading, it is good to know that in order to get starting with -\CONTEXT, the easiest way to do that is to download the standalone distribution -from \type {contextgarden.net}. After that you only need to make sure that \type -{luatex} is in your path. The main command you use is then \type {context} and -normally it does all the magic it needs itself. - -\stopsection - -\startsection[title={Introduction}] - -Right from the start \CONTEXT\ came with programs that managed the process of -\TEX-ing. Although you can perfectly well run \TEX\ directly, it is a fact that -often multiple runs are needed as well as that registers need to be sorted. -Therefore managing a job makes sense. - -First we had \TEXEXEC\ and \TEXUTIL, and both were written in \MODULA, and as -this language was not supported on all platforms the programs were rewritten in -\PERL. Following that a few more tools were shipped with \CONTEXT. - -When we moved on to \RUBY\ all the \PERL\ scripts were rewritten and when -\CONTEXT\ \MKIV\ showed up, \LUA\ replaced \RUBY. As we use \LUATEX\ this means -that currently the tools and the main program share the same language. For \MKII\ -scripts like \TEXEXEC\ will stay around but the idea is that there will be \LUA\ -alternatives for them as well. - -Because we shipped many scripts, and because the de facto standard \TEX\ -directory structure expects scripts to be in certain locations we not only ship -tools but also some more generic scripts that locate and run these tools. - -\stopsection - -\startsection[title={The location}] - -Normally you don't need to know so many details about where the scripts -are located but here they are: - -\starttyping -<texroot>/scripts/context/perl -<texroot>/scripts/context/ruby -<texroot>/scripts/context/lua -<texroot>/scripts/context/stubs -\stoptyping - -This hierarchy was actually introduced because \CONTEXT\ was shipped with a bunch -of tools. As mentioned, we nowadays focus on \LUA\ but we keep a few of the older -scripts around in the \PERL\ and \RUBY\ paths.Now, if you're only using \CONTEXT\ -\MKIV, and this is highly recommended, you can forget about all but the \LUA\ -scripts. - -\stopsection - -\startsection[title={The traditional finder}] - -When you run scripts multiple times, and in the case of \CONTEXT\ they are even -run inside other scripts, you want to minimize the startup time. Unfortunately -the traditional way to locate a script, using \sKPSEWHICH, is not that fast, -especially in a setup with many large trees Also, because not all tasks can be -done with the traditional scripts (take format generation) we provided a runner -that could deal with this: \sTEXMFSTART. As this script was also used in more -complex workflows, it had several tasks: - -\startitemize[packed] -\item locate scripts in the distribution and run them using the right - interpreter -\item do this selectively, for instance identify the need for a run using - checksums for potentially changed files (handy for image conversion) -\item pass information to child processes so that lookups are avoided -\item choose a distribution among several installed versions (set the root - of the \TEX\ tree) -\item change the working directory before running the script -\item resolve paths and names on demand and launch programs with arguments - where names are expanded controlled by prefixes (handy for - \TEX-unware programs) -\item locate and open documentation, mostly as part the help systems in - editors, but also handy for seeing what configuration file is used -\item act as a \KPSEWHICH\ server cq.\ client (only used in special cases, - and using its own database) -\stopitemize - -Of course there were the usual more obscure and undocumented features as -well. The idea was to use this runner as follows: - -\starttyping -texmfstart texexec <further arguments> -texmfstart --tree <rootoftree> texexec <further arguments> -\stoptyping - -These are just two ways of calling this program. As \sTEXMFSTART\ can initialize -the environment as well, it is basically the only script that has to be present -in the binary path. This is quite comfortable as this avoids conflicts in names -between the called scripts and other installed programs. - -Of course calls like above can be wrapped in a shell script or batch file without -penalty as long as \sTEXMFSTART\ itself is not wrapped in a caller script that -applies other inefficient lookups. If you use the \CONTEXT\ minimals you can be -sure that the most efficient method is chosen, but we've seen quite inefficient -call chains elsewhere. - -In the \CONTEXT\ minimals this script has been replaced by the one we will -discuss in the next section: \sMTXRUN\ but a stub is still provided. - -\stopsection - -\startsection[title={The current finder}] - -In \MKIV\ we went a step further and completely abandoned the traditional lookup -methods and do everything in \LUA. As we want a clear separation between -functionality we have two main controlling scripts: \sMTXRUN\ and \sLUATOOLS. The -last name may look somewhat confusing but the name is just one on in a series. -\footnote {We have \type {ctxtools}, \type {exatools}, \type {mpstools}, \type -{mtxtools}, \type {pdftools}, \type {rlxtools}, \type {runtools}, \type -{textools}, \type {tmftools} and \type {xmltools}. Most if their funtionality is -already reimplemented.} - -In \MKIV\ the \sLUATOOLS\ program is nowadays seldom used. It's just a drop in -for \sKPSEWHICH\ plus a bit more. In that respect it's rather dumb in that it -does not use the database, but clever at the same time because it can make one -based on the little information available when it runs. It can also be used to -generate format files either or not using \LUA\ stubs but in practice this is not -needed at all. - -For \CONTEXT\ users, the main invocation of this tool is when the \TEX\ tree is -updated. For instance, after adding a font to the tree or after updating -\CONTEXT, you need to run: - -\starttyping -mtxrun --generate -\stoptyping - -After that all tools will know where to find stuff and how to behave well within -the tree. This is because they share the same code, mostly because they are -started using \sMTXRUN. For instance, you process a file with: - -\starttyping -mtxrun --script context <somefile> -\stoptyping - -Because this happens often, there's also a shortcut: - -\starttyping -context <somefile> -\stoptyping - -But this does use \sMTXRUN\ as well. The help information of \sMTXRUN\ is rather -minimalistic and if you have no clue what an option does, you probably never -needed it anyway. Here we discuss a few options. We already saw that we can -explicitly ask for a script: - -\starttyping -mtxrun --script context <somefile> -\stoptyping - -but - -\starttyping -mtxrun context <somefile> -\stoptyping - -also works. However, by using \type {--script} you limit te lookup to the valid -\CONTEXT\ \MKIV\ scripts. In the \TEX\ tree these have names prefixed by \type -{mtx-} and a lookup look for a plural as well. So, the next two lookups are -equivalent: - -\starttyping -mtxrun --script font -mtxrun --script fonts -\stoptyping - -Both will run \type {mtx-fonts.lua}. Actually, this is one of the scripts that -you might need when your font database is somehow outdated and not updated -automatically: - -\starttyping -mtxrun --script fonts --reload --force -\stoptyping - -Normally \sMTXRUN\ is all you need in order to run a script. However, there are a -few more options: - -\ctxlua{os.execute("mtxrun > tools-mkiv-help.tmp")} - -\typefile[ntyping]{tools-mkiv-help.tmp} - -Don't worry,you only need those obscure features when you integrate \CONTEXT\ in -for instance a web service or when you run large projects where runs and paths -take special care. - -\stopsection - -\startsection[title={Updating}] - -There are two ways to update \CONTEXT\ \MKIV. When you manage your -trees yourself or when you use for instance \TEXLIVE, you act as -follows: - -\startitemize[packed] -\item download the file cont-tmf.zip from \type {www.pragma-ade.com} or elsewhere -\item unzip this file in a subtree, for instance \type {tex/texmf-local} -\item run \type {mtxrun --generate} -\item run \type {mtxrun --script font --reload} -\item run \type {mtxrun --script context --make} -\stopitemize - -Or shorter: - -\startitemize[packed] -\item run \type {mtxrun --generate} -\item run \type {mtxrun font --reload} -\item run \type {context --make} -\stopitemize - -Normally these commands are not even needed, but they are a nice test if your -tree is still okay. To some extend \sCONTEXT\ is clever enough to decide if the -databases need to be regenerated and|/|or a format needs to be remade and|/|or if -a new font database is needed. - -Now, if you also want to run \MKII, you need to add: - -\startitemize[packed] -\item run \type {mktexlsr} -\item run \type {texexec --make} -\stopitemize - -The question is, how to act when \sLUATOOLS\ and \sMTXRUN\ have been updated -themselves? In that case, after unzipping the archive, you need to do the -following: - -\startitemize[packed] -\item run \type {luatools --selfupdate} -\item run \type {mtxrun --selfupdate} -\stopitemize - -For quite a while we shipped so called \CONTEXT\ minimals. These zip files -contained only the resources and programs that made sense for running \CONTEXT. -Nowadays the minimals are installed and synchronized via internet. \footnote -{This project was triggered by Mojca Miklavec who is also charge of this bit of -the \CONTEXT\ infrastructure. More information can be found at \type -{contextgarden.net}.} You can just run the installer again and no additional -commands are needed. In the console you will see several calls to \sMTXRUN\ and -\sLUATOOLS\ fly by. - -\stopsection - -\startsection[title={The tools}] - -We only mention the tools here. The most important ones are \sCONTEXT\ and \type -{fonts}. You can ask for a list of installed scripts with: - -\starttyping -mtxrun --script -\stoptyping - -On my machine this gives: - -\ctxlua{os.execute("mtxrun --script > tools-mkiv-help.tmp")} - -\typefile[ntyping]{tools-mkiv-help.tmp} - -The most important scripts are \type {mtx-fonts} and \type {mtx-context}. By -default fonts are looked up by filename (the \type {file:} prefix before font -names in \CONTEXT\ is default). But you can also lookup fonts by name (\type -{name:}) or by specification (\type {spec:}). If you want to use these two -methods, you need to generate a font database as mentioned in the previous -section. You can also use the font tool to get information about the fonts -installed on your system. - -\stopsection - -\startsection[title={Running \CONTEXT}] - -The \sCONTEXT\ tool is what you will use most as it manages your -run. - -\ctxlua{os.execute("context > tools-mkiv-help.tmp")} - -\typefile[ntyping]{tools-mkiv-help.tmp} - -There are few exert options too: - -\ctxlua{os.execute("context --expert > tools-mkiv-help.tmp")} - -\typefile[ntyping]{tools-mkiv-help.tmp} - -You might as well forget about these unless you are one of the -\CONTEXT\ developers. - -\stopsection - -\startsection[title={Prefixes}] - -A handy feature of \sMTXRUN\ (and as most features an inheritance of -\sTEXMFSTART) is that it will resolve prefixed arguments. This can be of help -when you run programs that are unaware of the \TEX\ tree but nevertheless need to -locate files in it. - -\ctxlua{os.execute("mtxrun --prefixes > tools-mkiv-help.tmp")} - -\typefile[ntyping]{tools-mkiv-help.tmp} - -An example is: - -\starttyping -mtxrun --execute xsltproc file:whatever.xsl file:whatever.xml -\stoptyping - -The call to \sXSLTPROC\ will get two arguments, being the complete path to the -files (given that it can be resolved). This permits you to organize the files in -a similar was as \TEX\ files. - -\stopsection - -\startsection[title={Stubs}] - -As the tools are written in the \LUA\ language we need a \LUA\ interpreter and or -course we use \LUATEX\ itself. On \UNIX\ we can copy \sLUATOOLS\ and \sMTXRUN\ to -files in the binary path with the same name but without suffix. Starting them in -another way is a waste of time, especially when \sKPSEWHICH\ is used to find -then, something which is useless in \MKIV\ anyway. Just use these scripts -directly as they are self contained. - -For \sCONTEXT\ and other scripts that we want convenient access to, stubs are -needed, like: - -\starttyping -#!/bin/sh -mtxrun --script context "$@" -\stoptyping - -This is also quite efficient as the \sCONTEXT\ script \type {mtx-context} is -loaded in \sMTXRUN\ and uses the same database. - -On \WINDOWS\ you can copy the scripts as|-|is and associate the suffix with -\LUATEX\ (or more precisely: \type {texlua}) but then all \LUA\ script will be -run that way which is not what you might want. - -In \TEXLIVE\ stubs for starting scripts were introduced by Fabrice Popineau. Such -a stub would start for instance \sTEXMFSTART, that is: it located the script -(\PERL\ or \RUBY) in the \TEX\ tree and launched it with the right interpreter. -Later we shipped pseudo binaries of \sTEXMFSTART: a \RUBY\ interpreter plus -scripts wrapped into a self contained binary. - -For \MKIV\ we don't need such methods and started with simple batch files, -similar to the \UNIX\ startup scripts. However, these have the disadvantage that -they cannot be used in other batch files without using the \type {start} command. -In \TEXLIVE\ this is taken care of by a small binary written bij T.M.\ Trzeciak -so on \TEXLIVE\ 2009 we saw a call chain from \type {exe} to \type {cmd} to \type -{lua} which is somewhat messy. - -This is why we now use an adapted and stripped down version of that program that -is tuned for \sMTXRUN, \sLUATOOLS\ and \sCONTEXT. So, we moved from the original -\type {cmd} based approach to an \type {exe} one. - -\starttyping -mtxrun.dll -mtxrun.exe -\stoptyping - -You can copy \type {mtxrun.exe} to for instance \type {context.exe} and it will -still use \sMTXRUN\ for locating the right script. It also takes care of mapping -\sTEXMFSTART\ to \sMTXRUN. So we've removed the intermediate \type {cmd} step, -can not run the script as any program, and most of all, we're as efficient as can -be. - -Of course this program is only meaningful for the \CONTEXT\ approach to tools. - -It may all sound more complex than it is but once it works users will not notice -those details. Als, in practice not that much has changed in running the tools -between \MKII\ and \MKIV\ as we've seen no reason to change the methods. - -\stopsection - -\startsubject[title={Colofon}] - -\starttabulate[|B|p|] - \NC author \NC \documentvariable{author}, - \documentvariable{affiliation}, - \documentvariable{location} \NC \NR - \NC version \NC \currentdate \NC \NR - \NC website \NC \documentvariable{website} \endash\ - \documentvariable{support} \NC \NR - \NC copyright \NC \symbol[cc][cc-by-sa-nc] \NC \NR -\stoptabulate - -\stopsubject - -\stopdocument diff --git a/doc/context/sources/general/manuals/units/units-mkiv.tex b/doc/context/sources/general/manuals/units/units-mkiv.tex deleted file mode 100644 index 0d91c67df..000000000 --- a/doc/context/sources/general/manuals/units/units-mkiv.tex +++ /dev/null @@ -1,538 +0,0 @@ -% language=uk - -\usemodule[art-01,abr-02,physics-units] - -\definecolor[red] [darkred] -\definecolor[green] [darkgreen] -\definecolor[blue] [darkblue] -\definecolor[yellow] [darkyellow] -\definecolor[magenta][darkmagenta] -\definecolor[cyan] [darkcyan] - -\definecolor[maincolor] [darkcyan] -\definecolor[extracolor][darkmagenta] - -\setupbodyfont - [10pt] - -\setuptyping - [color=extracolor] - -\setuptype - [color=extracolor] % darkyellow - -% \setupnumbering -% [alternative=doublesided] - -\setupinteraction - [hidden] - -\setuphead - [section] - [color=maincolor] - -\usesymbols[cc] - -\startdocument - [metadata:author=Hans Hagen, - metadata:title=Units, - author=Hans Hagen, - affiliation=PRAGMA ADE, - location=Hasselt NL, - title=Units, - extra=ConTeXt MkIV, - support=www.contextgarden.net, - website=www.pragma-ade.nl] - -\unexpanded\def\UnitsHack#1#2% - {\setbox\scratchbox\hbox{\bf\strut#1#2/}% kerning and such - \hbox to \wd\scratchbox{\bf\strut#1\hss/\hss#2}} - -\startMPpage - - StartPage ; - fill Page enlarged 2mm withcolor \MPcolor{darkcyan} ; - pickup pencircle scaled 2mm ; - picture p, q, r ; - p := textext("\ssbf\WORD{\documentvariable{title}}") xsized (bbheight Page - 2cm) rotated 90 ; - q := textext("\ssbf\WORD{\documentvariable{author}}") ysized 1cm ; - r := textext("\ssbf\WORD{\documentvariable{extra}}") xsized bbwidth q ; - draw anchored.rt (p, center rightboundary Page shifted (-1cm, 0mm)) withcolor white ; - draw anchored.lft(q, ulcorner Page shifted ( 1cm, -84mm)) withcolor white ; % \MPcolor{darkred} ; - draw anchored.lft(r, ulcorner Page shifted ( 1cm,-108mm)) withcolor white ; % \MPcolor{darkred} ; - StopPage ; - -\stopMPpage - -% \page[empty] \setuppagenumber[start=1] - -\startsubject[title={Contents}] - -\placelist[section][criterium=all,interaction=all] - -\stopsubject - -\startsection[title={Introduction}] - -In \CONTEXT\ \MKII\ there is a module that implements consistent -typesetting of units (quantities and dimensions). In \MKIV\ this -functionality is now part of the physics core modules. This is -also one of the mechanisms that got a new user interface: instead -of using commands we now parse text. Thanks to those users who -provided input we're more complete now that in \MKII. You can browse -the mailing list archive to get some sense of history. - -\stopsection - -\startsection[title={The main command}] - -The core command is \type {\unit}. The argument to this command gets -parsed and converted into a properly typeset dimension. Normally there -will be a quantity in front. - -\starttabulate -\NC \type{10 meter} \NC \unit{10 meter} \NC \NR -\NC \type{10 meter per second} \NC \unit{10 meter per second} \NC \NR -\NC \type{10 square meter per second} \NC \unit{10 square meter per second} \NC \NR -\stoptabulate - -The parser knows about special cases, like synonyms: - -\starttabulate -\NC \type{10 degree celsius} \NC \unit{10 degree celsius} \NC \NR -\NC \type{10 degrees celsius} \NC \unit{10 degrees celsius} \NC \NR -\NC \type{10 celsius} \NC \unit{10 celsius} \NC \NR -\stoptabulate - -The units can be rather complex, for example: - -\startbuffer -\unit{30 kilo pascal square meter / second kelvin} -\stopbuffer - -\typebuffer - -This comes out as: \ignorespaces\getbuffer\removeunwantedspaces. Depending -on the unit at had, recognition is quite flexible. The following variants -all work out ok. - -\starttabulate -\NC \type{10 kilogram} \NC \unit{10 kilogram} \NC \NR -\NC \type{10 kilo gram} \NC \unit{10 kilo gram} \NC \NR -\NC \type{10 k gram} \NC \unit{10 k gram} \NC \NR -\NC \type{10 kilo g} \NC \unit{10 kilo g} \NC \NR -\NC \type{10 k g} \NC \unit{10 k g} \NC \NR -\NC \type{10 kg} \NC \unit{10 kg} \NC \NR -\NC \type{10 kilog} \NC \unit{10 kilog} \NC \NR -\NC \type{10 kgram} \NC \unit{10 kgram} \NC \NR -\stoptabulate - -Of course being consistent makes sense, so normally you will use -a consistent mix of short or long keywords. - -You can provide a qualifier that gets lowered and appended to -the preceding unit. - -\startbuffer -\unit{112 decibel (A)} -\stopbuffer - -\typebuffer - -This gives: \ignorespaces\getbuffer\removeunwantedspaces. Combinations -are also possible: - -\starttabulate -\NC \type{5 watt per meter celsius} \NC \unit{5 watt per meter celsius} \NC \NR -\NC \type{5 watt per meter degrees celsius} \NC \unit{5 watt per meter degrees celsius} \NC \NR -\NC \type{5 watt per meter kelvin} \NC \unit{5 watt per meter kelvin} \NC \NR -\NC \type{5 watt per meter per kelvin} \NC \unit{5 watt per meter per kelvin} \NC \NR -\NC \type{10 arcminute} \NC \unit{10 arcminute} \NC \NR -\NC \type{10 arcminute 20 arcsecond} \NC \unit{10 arcminute 20 arcsecond} \NC \NR -\stoptabulate - -\stopsection - -\startsection[title={Extra units}] - -To some extent units can be tuned. You can for instance -influence the spacing between a number and a unit: - -\startbuffer - \unit{35 kilogram per cubic meter} -\setupunit[space=normal] \unit{35 kilogram per cubic meter} -\setupunit[space=big] \unit{35 kilogram per cubic meter} -\setupunit[space=medium] \unit{35 kilogram per cubic meter} -\setupunit[space=small] \unit{35 kilogram per cubic meter} -\setupunit[space=none] \unit{35 kilogram per cubic meter} -\stopbuffer - -\typebuffer - -Of course no spacing looks rather bad: - -\startlines -\getbuffer -\stoplines - -Another parameter is \type {separator}. In order to demonstrate -this we define an extra unit command: - -\startbuffer -\defineunit[sunit][separator=small] -\defineunit[nunit][separator=none] -\stopbuffer - -\typebuffer \getbuffer - -We now have two more commands: - -\startbuffer -\unit {35 kilogram cubic meter} -\sunit{35 kilogram cubic meter} -\nunit{35 kilogram cubic meter} -\stopbuffer - -\typebuffer - -These three commands give different results: - -\startlines -\getbuffer -\stoplines - -Valid separators are \type {normal}, \type {big}, \type {medium}, -\type {small}, \type {none}. You can let units stand out by -applying color or a specific style. - -\startbuffer -\setupunit[style=\bi,color=maincolor] -\unit{10 square meter per second} -\stopbuffer - -\typebuffer - -Keep in mind that all defined units inherit from their parent -definition unless they are set up themselves. - -\start \blank \getbuffer \blank \stop - -To some extent you can control rendering in text and math mode. As -an example we define an extra instance. - -\startbuffer -\defineunit[textunit][alternative=text] -\stopbuffer - -\typebuffer \getbuffer - -\startbuffer -test \unit {10 cubic meter per second} test -test \textunit{10 cubic meter per second} test -test $\unit {10 cubic meter per second}$ test -test $\textunit{10 cubic meter per second}$ test -test 10 \unit {cubic meter per second} test -test 10 \textunit{cubic meter per second} test -test $10 \unit {cubic meter per second}$ test -test $10 \textunit{cubic meter per second}$ test -\stopbuffer - -\typebuffer - -\startlines -\getbuffer -\stoplines - -\stopsection - -\startsection[title={Labels}] - -The units, prefixes and operators are typeset using the label -mechanism which means that they can be made to adapt to a language -and|/|or adapted. Instead of language specific labels you can also -introduce mappings that don't relate to a language at all. As an -example we define some bogus mapping. - -\startbuffer -\setupunittext - [whatever] - [meter=retem, - second=dnoces] - -\setupprefixtext - [whatever] - [kilo=olik] - -\setupoperatortext - [whatever] - [solidus={ rep }] -\stopbuffer - -\typebuffer \getbuffer - -Such a mapping can be partial and the current language will -be the default fallback and itselfs falls back on the English -language mapping. - -\startbuffer -\unit{10 km/s} -\unit{10 Kilo Meter/s} -\unit{10 kilo Meter/s} -\unit{10 Kilo m/s} -\unit{10 k Meter/s} -\stopbuffer - -\typebuffer - -When we typeset this we get the normal rendering: - -\startlines -\getbuffer -\stoplines - -However, when we change the language parameter, we get -a different result: - -\startlines -\setupunit[language=whatever]\getbuffer -\stoplines - -The alternative rendering is set up as follows: - -\starttyping -\setupunit[language=whatever] -\stoptyping - -You can also decide to use a special instance of units: - -\starttyping -\defineunit[wunit][language=whatever] -\stoptyping - -This will define the \type {\wunit} command and leave the original -\type {\unit} command untouched. - -\stopsection - -\startsection[title={Digits}] - -In addition to units we have digits. These can be used independently -but the same functionality is also integrated in the unit commands. -The main purpose of this command is formatting in tables, of which -we give an example below. - -\starttabulate[|l|r|] -\NC \type{12,345.67 kilogram} \NC \unit{12,345.67 kilogram} \NR -\NC \type{__,__1.23 kilogram} \NC \unit{__,__1.23 kilogram} \NR -\NC \type{__,___.12 kilogram} \NC \unit{__,___.12 kilogram} \NR -\NC \type{__,__1.== kilogram} \NC \unit{__,__1.== kilogram} \NR -\NC \type{__,___:23 kilogram} \NC \unit{__,___:23 kilogram} \NR -\stoptabulate - -The \type {_} character serves as placeholders. There are some -assumptions to how numbers are constructed. In principe the input -assumes a comma to separate thousands and a period to separate the -fraction. - -\getbuffer - -You can swap periods and commas in the output. In fact there are a -few methods available. For instance we can separate the thousands -with a small space instead of a symbol. - -\startbuffer -\starttabulate[|c|r|r|] -\HL -\NC 0 \NC \setupunit[method=0]\unit{00,000.10 kilogram} - \NC \setupunit[method=0]\unit{@@,@@0.10 kilogram} \NC \NR -\NC 1 \NC \setupunit[method=1]\unit{00,000.10 kilogram} - \NC \setupunit[method=1]\unit{@@,@@0.10 kilogram} \NC \NR -\NC 2 \NC \setupunit[method=2]\unit{00,000.10 kilogram} - \NC \setupunit[method=2]\unit{@@,@@0.10 kilogram} \NC \NR -\NC 3 \NC \setupunit[method=3]\unit{00,000.10 kilogram} - \NC \setupunit[method=3]\unit{@@,@@0.10 kilogram} \NC \NR -\NC 4 \NC \setupunit[method=4]\unit{00,000.10 kilogram} - \NC \setupunit[method=4]\unit{@@,@@0.10 kilogram} \NC \NR -\NC 5 \NC \setupunit[method=5]\unit{00,000.10 kilogram} - \NC \setupunit[method=5]\unit{@@,@@0.10 kilogram} \NC \NR -\NC 6 \NC \setupunit[method=6]\unit{00,000.10 kilogram} - \NC \setupunit[method=6]\unit{@@,@@0.10 kilogram} \NC \NR -\HL -\stoptabulate -\stopbuffer - -\typebuffer % [bodyfont=9pt] - -\getbuffer - -The digit modes can be summarized as:: - -\startitemize[n,packed] -\item periods/comma -\item commas/period -\item thinmuskips/comma -\item thinmuskips/period -\item thickmuskips/comma -\item thickmuskips/period -\stopitemize - -You can reverse the order of commas and period in the input by -setting the parameter \type {order} to \type {reverse}. - -The digit parser handles a bunch of special characters as -well as different formats. We strongly suggest you to use -the grouped call. - -\starttabulate[|l|l|l|] -\NC \type{.} \NC , . \NC comma or period \NC \NR -\NC \type{,} \NC , . \NC comma or period \NC \NR -\NC \type{:} \NC \NC invisible period \NC \NR -\NC \type{;} \NC \NC invisible comma \NC \NR -\NC \type{_} \NC \NC invisible space \NC \NR -\NC \type{/} \NC \NC invisible sign \NC \NR -\NC \type{-} \NC $-$ \NC minus sign \NC \NR -\NC \type{+} \NC $+$ \NC plus sign \NC \NR -\NC \type{//} \NC \NC invisible high sign \NC \NR -\NC \type{--} \NC $\negative$ \NC high minus sign \NC \NR -\NC \type{++} \NC $\positive$ \NC high plus sign \NC \NR -\NC \type{=} \NC $\zeroamount$ \NC zero padding \NC \NR -\stoptabulate - -Let's give some examples: - -\starttabulate[|l|r|] -\NC \type{1} \NC \ruledhbox{\strut\digits{1}} \NC \NR -\NC \type{12} \NC \ruledhbox{\strut\digits{12}} \NC \NR -\NC \type{12.34} \NC \ruledhbox{\strut\digits{12.34}} \NC \NR -\NC \type{123,456} \NC \ruledhbox{\strut\digits{123,456}} \NC \NR -\NC \type{123,456.78} \NC \ruledhbox{\strut\digits{123,456.78}} \NC \NR -\NC \type{12,34} \NC \ruledhbox{\strut\digits{12,34}} \NC \NR -\NC \type{.1234} \NC \ruledhbox{\strut\digits{.1234}} \NC \NR -\NC \type{1234} \NC \ruledhbox{\strut\digits{1234}} \NC \NR -\NC \type{123,456.78^9} \NC \ruledhbox{\strut\digits{123,456.78^9}} \NC \NR -\NC \type{123,456.78e9} \NC \ruledhbox{\strut\digits{123,456.78e9}} \NC \NR -\NC \type{/123,456.78e-9} \NC \ruledhbox{\strut\digits{/123,456.78e-9}} \NC \NR -\NC \type{-123,456.78e-9} \NC \ruledhbox{\strut\digits{-123,456.78e-9}} \NC \NR -\NC \type{+123,456.78e-9} \NC \ruledhbox{\strut\digits{+123,456.78e-9}} \NC \NR -\NC \type{//123,456.78e-9} \NC \ruledhbox{\strut\digits{//123,456.78e-9}} \NC \NR -\NC \type{--123,456.78e-9} \NC \ruledhbox{\strut\digits{--123,456.78e-9}} \NC \NR -\NC \type{++123,456.78e-9} \NC \ruledhbox{\strut\digits{++123,456.78e-9}} \NC \NR -\NC \type{___,___,123,456,789.00} \NC \ruledhbox{\strut\digits{___,___,123,456,789.00}} \NC \NR -\NC \type{___,___,_12,345,678.==} \NC \ruledhbox{\strut\digits{___,___,_12,345,678.==}} \NC \NR -\stoptabulate - -\stopsection - -\startsection[title={Adding units}] - -It is possible to add extra snippets. This is a two step process: -first some snippet is defined, next a proper label is set up. In the -next example we define a couple of \TEX\ dimensions: - -\startbuffer -\registerunit - [unit] - [point=point, - basepoint=basepoint, - scaledpoint=scaledpoint, - didot=didot, - cicero=cicero] -\stopbuffer - -\typebuffer \getbuffer - -Possible categories are: \type {prefix}, \type {unit}, \type {operator}, -\type {suffix}, \type {symbol},\type {packaged}. Next we define labels: - -\startbuffer -\setupunittext - [point=pt, - basepoint=bp, - scaledpoint=sp, - didot=dd, - cicero=cc] -\stopbuffer - -\typebuffer \getbuffer - -Now we can use use these: - -\startbuffer -\unit{10 point / second} -\stopbuffer - -\typebuffer - -Of course you can wonder what this means. - -\blank \getbuffer \blank - -When no label is defined the long name is used: - -\startbuffer -\registerunit - [unit] - [page=page] -\stopbuffer - -\typebuffer \getbuffer - -This is used as: - -\startbuffer -\unit{10 point / page} -\stopbuffer - -\typebuffer - -Which gives: - -\blank \getbuffer \blank - -\stopsection - -\startsection[title={Built in keywords}] - -A given sequence of keywords is translated in an list of internal -keywords. For instance \type {m}, \type {Meter} and \type {meter} -all become \type {meter} and that one is used when resolving a -label. In the next tables the right column mentions the internal -keyword. The right column shows the Cased variant, but a lowercase -one is built|-|in as well. - -The following prefixes are built|-|in: - -\showunits[prefixes] - -The following units are supported, including some combinations: - -\showunits[units] - -The amount of operators is small: - -\showunits[operators] - -There is also a small set of (names) suffixes: - -\showunits[suffixes] - -Some symbols get a special treatment: - -\showunits[symbols] - -These are also special: - -\showunits[packaged] - -\startsection[title={Colofon}] - -\starttabulate[|B|p|] -\NC author \NC \getvariable{document}{author}, \getvariable{document}{affiliation}, \getvariable{document}{location} \NC \NR -\NC version \NC \currentdate \NC \NR -\NC website \NC \getvariable{document}{website} \endash\ \getvariable{document}{support} \NC \NR -\NC copyright \NC \symbol[cc][cc-by-sa-nc] \NC \NR -\stoptabulate - -\stopsection - -\stopdocument diff --git a/doc/context/sources/general/manuals/workflows/workflows-contents.tex b/doc/context/sources/general/manuals/workflows/workflows-contents.tex deleted file mode 100644 index a32f4737d..000000000 --- a/doc/context/sources/general/manuals/workflows/workflows-contents.tex +++ /dev/null @@ -1,13 +0,0 @@ -% language=uk - -\environment workflows-style - -\startcomponent workflows-contents - -\starttitle[title=Contents] - - \placelist[chapter] - -\stoptitle - -\stopcomponent diff --git a/doc/context/sources/general/manuals/workflows/workflows-graphics.tex b/doc/context/sources/general/manuals/workflows/workflows-graphics.tex deleted file mode 100644 index 55a8ad701..000000000 --- a/doc/context/sources/general/manuals/workflows/workflows-graphics.tex +++ /dev/null @@ -1,157 +0,0 @@ -% language=uk - -\environment workflows-style - -\startcomponent workflows-graphics - -\startchapter[title=Graphics] - -\startsection[title=Bad names] - -After many years of using \CONTEXT\ in workflows where large amounts of source files -as well as graphics were involved we can safely say that it's hard for publishers to -control the way these are named. This is probably due to the fact that in a -click|-|and|-|point based desktop publishing workflow names don't matter as one stays on -one machine, and names are only entered once (after that these names become abstractions and -get cut and pasted). Proper consistent resource managament is simply not part of the flow. - -This means that you get names like: - -\starttyping -foo_Bar_01_03-a.EPS -foo__Bar-01a_03.eps -foo__Bar-01a_03.eps -foo BarA 01-03.eps -\stoptyping - -Especially when a non proportional screen font is used multiple spaces can look -like one. In fancy screen fonts upper and lowercase usage might get obscured. It -really makes one wonder if copy|-|editing or adding labels to graphics isn't -suffering from the same problem. - -Anyhow, as in an automated rendering workflow the rendering is often the last step you -can imagine that when names get messed up it's that last step that gets blamed. It's not -that hard to sanitize names of files on disk as well as in the files that refer to them, -and we normally do that we have complete control. This is no option when all the resources -are synchronzied from elsewhere. In that case the only way out is signaling potential -issues. Say that in the source file there is a reference: - -\starttyping -foo_Bar_01_03-a.EPS -\stoptyping - -and that the graphic on disk has the same name, but for some reason after an update -has become: - -\starttyping -foo-Bar_01_03-a.EPS -\stoptyping - -The old image is probably still there so the update is not reflected in the final -product. This is not that uncommon when you deal with tens of thousands of files, -many editors and graphic designers, and no strict filename policy. - -For this we provide the following tracing option: - -\starttyping -\enabletrackers[graphics.lognames] -\stoptyping - -This will put information in the log file about included graphics, like: - -\starttyping -system > graphics > start names - -used graphic > asked : cow.pdf -used graphic > comment : not found -used graphic > asked : t:/sources/cow.pdf -used graphic > format : pdf -used graphic > found : t:/sources/cow.pdf -used graphic > used : t:/sources/cow.pdf - -system > graphics > stop names -\stoptyping - -You can also add information to the file itself: - -\starttyping -\usemodule[s-figures-names] -\stoptyping - -Of course that has to be done at the end of the document. Bad names are reported -and suitable action can be taken. - -\stopsection - -\startsection[title=Downsampling] - -You can plug in you rown converter, here is an example: - -\starttyping -\startluacode - -figures.converters.jpg = figures.converters.jpg or { } - -figures.converters.jpg["lowresjpg.pdf"] = - function(oldname,newname,resolution) - figures.programs.run ( - [[gm]], - [[convert -geometry %nx%x%ny% -compress JPEG "%old%" "%new%"]], - { - old = old, - new = new, - nx = resolution or 300, - ny = resolution or 300, - } - ) - end -\stopluacode -\stoptyping - -You can limit the search to a few types and set the resolution with: - -\starttyping -\setupexternalfigures - [order={pdf,jpg}, - resolution=100, - method=auto] -\stoptyping - -And use it like: - -\starttyping -\externalfigure[verybig.jpg][height=10cm] -\stoptyping - -The second string passed to the \type {run} helper contains the arguments to the -first one. The variables between percent signs get replaced by the variables in -the tables passed as third argument. - -\stopsection - -\startsection[title=Trackers] - -If you want a lot of info you can say: - -\starttyping -\enabletrackers[figures.*] -\stoptyping - -But you can be more specific. With \type {graphics.locating} you will get some -insight in where files are looked for. The \type {graphics.inclusion} tracker -gives some more info about actual inclusion. The \type {graphics.bases} is kind -of special and only makes sense when you use the graphic database options. The -\type {graphics.conversion} and related tracker \type {graphics.programs} show if -and how conversion of images takes place. - -The \type {graphics.lognames} will make sure that some extra information about -used graphics is saved in the log file, while \type {graphics.usage} will produce -a file \typ {<jobname>-figures-usage.lua} that contains information about found -(or not found) images and the way they are used. - -\stopsection - -\stopchapter - -\stopcomponent - diff --git a/doc/context/sources/general/manuals/workflows/workflows-injectors.tex b/doc/context/sources/general/manuals/workflows/workflows-injectors.tex deleted file mode 100644 index daae11c82..000000000 --- a/doc/context/sources/general/manuals/workflows/workflows-injectors.tex +++ /dev/null @@ -1,102 +0,0 @@ -% language=uk - -\environment workflows-style - -\startcomponent workflows-injectors - -\startchapter[title={Injectors}] - -When you have no control over the source but need to manually tweak some aspects -of the typesetting, like an occasional page break of column switch, you can use -the injector mechanism. This mechanism is part of list and register building but -can also be used elsewhere. - -\startbuffer[one] -\startmixedcolumns[balance=yes] - \dotestinjector{test}line 1 \par - \dotestinjector{test}line 2 \par - \dotestinjector{test}line 3 \par - \dotestinjector{test}line 4 \par - \dotestinjector{test}line 5 -\stopmixedcolumns -\stopbuffer - -\startbuffer[two] -\startmixedcolumns[balance=yes] - \dotestinjector{test}line 1 \par - \dotestinjector{test}line 2 \par - \dotestinjector{test}line 3 \par - \dotestinjector{test}line 4 \par - \dotestinjector{test}line 5 -\stopmixedcolumns -\stopbuffer - -We have two buffers: - -\typebuffer[one] - -and - -\typebuffer[two] - -When typeset these come out as: - -\blank \startpacked \bf \getbuffer[one] \stoppacked \blank - -and - -\blank \startpacked \bf \getbuffer[two] \stoppacked \blank - -We can enable (and show) the injectors with: - -\startbuffer -\doactivateinjector{test} \showinjector -\stopbuffer - -\typebuffer \getbuffer - -Now we get: - -\blank \startpacked \bf \getbuffer[one] \stoppacked \blank - -and - -\blank \startpacked \bf \getbuffer[two] \stoppacked \blank - -The small numbers are injector points. These will of course change when we add -more in|-|between. Let's add actions to some of the injection points: - -\startbuffer -\setinjector[test][13][{\column}] -\setinjector[test][17][{\column}] -\stopbuffer - -\typebuffer \getbuffer - -As expected we now get column breaks: - -\blank \startpacked \bf \getbuffer[one] \stoppacked \blank - -and - -\blank \startpacked \bf \getbuffer[two] \stoppacked \blank - -\stopchapter - -\stopcomponent - -% to be described: - -% \setinjector[register][3][\column] -% \setinjector[list] [2][{\blank[3*big]}] - -% \starttext -% \placelist[section][criterium=text] -% \blank[3*big] -% \placeregister[index][criterium=text] -% \page -% \startsection[title=Alpha] first \index{first} \stopsection -% \startsection[title=Beta] second \index{second} \stopsection -% \startsection[title=Gamma] third \index{third} \stopsection -% \startsection[title=Delta] fourth \index{fourth} \stopsection -% \stoptext diff --git a/doc/context/sources/general/manuals/workflows/workflows-introduction.tex b/doc/context/sources/general/manuals/workflows/workflows-introduction.tex deleted file mode 100644 index a88640b27..000000000 --- a/doc/context/sources/general/manuals/workflows/workflows-introduction.tex +++ /dev/null @@ -1,25 +0,0 @@ -% language=uk - -\environment workflows-style - -\startcomponent workflows-introduction - -\startchapter[title=Introduction] - -This manual contains some information about features that can help you to manage -workflows or \CONTEXT\ related processes. Because we use \CONTEXT\ ourselves all -that we need ends up in the distribution. When you discover something workflow -related that is not yet covered here, you can tell me. I simply forget about all -there is, especially if it's made for projects. Don't expect this manual to be -complete or extensive, it's just a goodie. - -\startlines -\documentvariable{author}, -\documentvariable{affiliation} -\documentvariable{location} -\currentdate[month,year] -\stoplines - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/workflows/workflows-mkiv.tex b/doc/context/sources/general/manuals/workflows/workflows-mkiv.tex deleted file mode 100644 index 3820e04fa..000000000 --- a/doc/context/sources/general/manuals/workflows/workflows-mkiv.tex +++ /dev/null @@ -1,32 +0,0 @@ -\setupbackend[export=yes] - -\environment workflows-style - -\startdocument - [metadata:author=Hans Hagen, - metadata:title=Workflow support in context, - author=Hans Hagen, - affiliation=PRAGMA ADE, - location=Hasselt NL, - title=workflow, - extra=support in context, - support=www.contextgarden.net, - website=www.pragma-ade.nl] - -\component workflows-titlepage - -\startfrontmatter - \component workflows-contents - \component workflows-introduction -\stopfrontmatter - -\startbodymatter - \component workflows-resources - \component workflows-graphics - \component workflows-suspects - \component workflows-injectors - \component workflows-xml - \component workflows-setups -\stopbodymatter - -\stopdocument diff --git a/doc/context/sources/general/manuals/workflows/workflows-resources.tex b/doc/context/sources/general/manuals/workflows/workflows-resources.tex deleted file mode 100644 index cbed64864..000000000 --- a/doc/context/sources/general/manuals/workflows/workflows-resources.tex +++ /dev/null @@ -1,156 +0,0 @@ -% language=uk - -\environment workflows-style - -\startcomponent workflows-resources - -\startchapter[title=Accessing resources] - -One of the benefits of \TEX\ is that you can use it in automated workflows -where large quantities of data is involved. A document can consist of -several files and normally also includes images. Of course there are styles -involved too. At \PRAGMA\ normally put styles and fonts in: - -\starttyping -/data/site/context/tex/texmf-project/tex/context/user/<project>/... -/data/site/context/tex/texmf-fonts/data/<foundry>/<collection>/... -\stoptyping - -alongside - -\starttyping -/data/framework/... -\stoptyping - -where the job management services are put, while we put resources in: - -\starttyping -/data/resources/... -\stoptyping - -The processing happens in: - -\starttyping -/data/work/<uuid user space>/ -\stoptyping - -Putting styles (and resources like logos and common images) and fonts (if the -project has specific ones not present in the distribution) in the \TEX\ tree -makes sense because that is where such files are normally searched. Of course you -need to keep the distributions file database upto|-|date after adding files there. - -Processing has to happen isolated from other runs so there we use unique -locations. The services responsible for running also deal with regular cleanup -of these temporary files. - -Resources are somewhat special. They can be stable, i.e.\ change seldom, but more -often they are updated or extended periodically (or even daily). We're not -talking of a few files here but of thousands. In one project we have 20 thousand -resources, that can be combined into arbitrary books, and in another one, each -chapter alone is about 400 \XML\ and image files. That means we can have 5000 -files per book and as we have at least 20 books, we end up with 100K files. In -the first case accessing the resources is easy because there is a well defined -structure (under our control) so we know exactly where each file sits in the -resource tree. In the 100K case there is a deeper structure which is in itself -predictable but because many authors are involved the references to these files -are somewhat instable (and undefined). It is surprising to notice that publishers -don't care about filenames (read: cannot control all the parties involved) which -means that we have inconsist use of mixed case in filenames, and spaces, -underscores and dashes creeping in. Because typesetting for paper is always at -the end of the pipeline (which nowadays is mostly driven by (limitations) of web -products) we need to have a robust and flexible lookup mechanism. It's a side -effect of the click and point culture: if objects are associated (filename in -source file with file on the system) anything you key in will work, and -consistency completely depends on the user. And bad things then happen when files -are copied, renamed, etc. In that stadium we can better be tolerant than try to -get it fixed. \footnote {From what we normally receive we often conclude that -copy|-|editing and image production companies don't impose any discipline or -probably simply lack the tools and methods to control this. Some of our workflows -had checkers and fixers, so that when we got 5000 new resources while only a few -needed to be replaced we could filter the right ones. It was not uncommon to find -duplicates for thousands of pictures: similar or older variants.} - -\starttyping -foo.jpg -bar/foo.jpg -images/bar/foo.jpg -images/foo.jpg -\stoptyping - -The xml files have names like: - -\starttyping -b-c.xml -a/b-c.jpg -a/b/b-c.jpg -a/b/c/b-c.jpg -\stoptyping - -So it's sort of a mess, especially if you add arbitrary casing to this. Of course -one can argue that a wrong (relative) location is asking for problems, it's less -an issue here because each image has a unique name. We could flatten the resource -tree but having tens of thousands of files on one directory is asking for -problems when you want to manage them. - -The typesetting (and related services) run on virtual machines. The three -directories: - -\starttyping -/data/site -/data/resources -/data/work -\stoptyping - -are all mounted as nfs shares on a network storage. For the styles (and binaries) -this is no big deal as normally these files are cached, but the resources are -another story. Scanning the complete (mounted) resource tree each run is no -option so there we use a special mechanism in \CONTEXT\ for locating files. - -Already early in the development of \MKIV\ one of the locating mechanisms was -the following: - -\starttyping -tree:////data/resources/foo/**/drawing.jpg -tree:////data/resources/foo/**/Drawing.jpg -\stoptyping - -Here the tree is scanned once per run, which is normally quite okay when there -are not that many files and when the files reside on the machine itself. For a -more high performance approach using network shares we have a different -mechanism. This time it looks like this: - -\starttyping -dirlist:/data/resources/**/drawing.jpg -dirlist:/data/resources/**/Drawing.jpg -dirlist:/data/resources/**/just/some/place/drawing.jpg -dirlist:/data/resources/**/images/drawing.jpg -dirlist:/data/resources/**/images/drawing.jpg?option=fileonly -dirfile:/data/resources/**/images/drawing.jpg -\stoptyping - -The first two lookups are wildcard. If there is a file with that name, it will be -found. If there are more, the first hit is used. The second and third examples -are more selective. Here the part after the \type {**} has to match too. So here -we can deal with multiple files named \type {drawing.jpg}. The last two -equivalent examples are more tolerant. If no explicit match is found, a lookup -happens without being selective. The case of a name is ignored but when found, a -name with the right case is used. - -You can hook a path into the resolver for source files, for example: - -\starttyping -\usepath [dirfile://./resources/**] -\setupexternalfigures[directory=dirfile://./resources/**] -\stoptyping - -You need to make sure that file(name)s in that location don't override ones in -the regular \TEX\ tree. These extra paths are only used for source file lookups -so for instance font lookups are not affected. - -When you add, remove or move files the tree, you need to remove the \type -{dirlist.*} files in the root because these are used for locating files. A new -file will be generated automatically. Don't forget this! - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/workflows/workflows-setups.tex b/doc/context/sources/general/manuals/workflows/workflows-setups.tex deleted file mode 100644 index e9d120f7b..000000000 --- a/doc/context/sources/general/manuals/workflows/workflows-setups.tex +++ /dev/null @@ -1,72 +0,0 @@ -% language=uk - -\environment workflows-style - -\startcomponent workflows-setups - -\startchapter[title={Setups}] - -Setups are a powerful way to organize styles. They are basically macros but live -in their own namespace. One advantage is that spaces in a setup are ignored so -you can code without bothering about spurious spaces. Here is a trick that you -can use when one style contains directives for multiple products: - -\startbuffer -\startsetups tex:whatever - \fastsetup{tex:whatever:\documentvariable{stylevariant}} -\stopsetups - -\startsetups tex:whatever:foo - FOO -\stopsetups - -\startsetups tex:whatever:bar - BAR -\stopsetups -\stopbuffer - -\typebuffer \getbuffer - -Here we define a main setup \type {tex:whatever} that gets expanded in one of two -variants, controlled by a document variable. - -\startbuffer -\setups{tex:whatever} - -\setupdocument - [stylevariant=foo] - -\setups{tex:whatever} - -\setupdocument - [stylevariant=bar] - -\setups{tex:whatever} -\stopbuffer - -\typebuffer - -These lines result in: - -\getbuffer - -In a similar fashion you can define \XML\ setups that are used to render -elements: - -\starttyping -\startxmlsetups xml:whatever - \xmlsetup{#1}{xml:whatever:\documentvariable{stylevariant}} -\stopxmlsetups - -\startxmlsetups xml:whatever:foo - FOO: \xmlflush{#1} -\stopxmlsetups - -\startxmlsetups xml:whatever:bar - BAR: \xmlflush{#1} -\stopxmlsetups -\stoptyping - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/workflows/workflows-style.tex b/doc/context/sources/general/manuals/workflows/workflows-style.tex deleted file mode 100644 index f29129fcd..000000000 --- a/doc/context/sources/general/manuals/workflows/workflows-style.tex +++ /dev/null @@ -1,49 +0,0 @@ -\startenvironment workflows-style - -\usemodule - [abr-03] - -\setupbodyfont - [bookman,11pt] - -\definecolor - [maincolor] - [s=.35] - -\setuplayout - [height=middle, - width=middle, - footer=0pt] - -\setupwhitespace - [big] - -\setuphead - [chapter] - [style=\bfc, - color=maincolor, - header=high] - -\setuphead - [section] - [style=\bfb, - color=maincolor] - -\setuptyping - [color=maincolor] - -\setuptype - [color=maincolor] - -\setupdocument - [metadata:author=<author>, - metadata:title=<title>, - author=<author>, - affiliation=<affiliation>, - location=<location>, - title=<title>, - extra=<extra>, - support=<support>, - website=<website>] - -\stopenvironment diff --git a/doc/context/sources/general/manuals/workflows/workflows-suspects.tex b/doc/context/sources/general/manuals/workflows/workflows-suspects.tex deleted file mode 100644 index 621fd6f59..000000000 --- a/doc/context/sources/general/manuals/workflows/workflows-suspects.tex +++ /dev/null @@ -1,54 +0,0 @@ -% language=uk - -\environment workflows-style - -\startcomponent workflows-suspects - -\startchapter[title={Suspects}] - -When many authors and editors are involved there is the danger of inconsistent -spacing being applied. We're not only talking of the (often invisible in editing -programs) nobreak spaces, but also spacing inside or outside quotations and -before and after punctuation or around math. - -In \CONTEXT\ we have a built||in suspects checker that you can enable with the -following command: - -\starttyping -\enabletrackers[typesetters.suspects] -\stoptyping - -The next table shows some identified suspects. - -\starttexdefinition ShowSample #1 - \NC \type{#1} - \NC \enabletrackers[typesetters.suspects]#1\disabletrackers[typesetters.spacing] - \NC \NR -\stoptexdefinition - -\starttabulate[|||][before=,after=] - \ShowSample{foo$x$} - \ShowSample{$x$bar} - \ShowSample{foo$x$bar} - \ShowSample{$f+o+o$:} - \ShowSample{;$f+o+o$} - \ShowSample{; bar} - \ShowSample{foo:bar} - \ShowSample{\quote{ foo }} - \ShowSample{\quote{bar }} - \ShowSample{\quote{ bar}} - \ShowSample{(foo )} - \ShowSample{\{foo \}} - \ShowSample{foo{\bf gnu}bar} - \ShowSample{foo{\it gnu}bar} - \ShowSample{foo$x^2$bar} - \ShowSample{foo\nobreakspace bar} -\stoptabulate - -Of course this analysis is not perfect but we use it in final checking of complex -documents that are generated automatically from \XML. \footnote {Think of math -school books where each book is assembled from over a thousands files.} - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/workflows/workflows-titlepage.tex b/doc/context/sources/general/manuals/workflows/workflows-titlepage.tex deleted file mode 100644 index f184152b3..000000000 --- a/doc/context/sources/general/manuals/workflows/workflows-titlepage.tex +++ /dev/null @@ -1,37 +0,0 @@ -% language=uk - -\environment workflows-style - -\startcomponent workflows-titlepage - -\definefontfeature[LatinModernMonoVariable][default][liga=no] -\definefont[LatinModernMonoVariable][LMTypewriterVarWd-Regular*LatinModernMonoVariable sa 1] - -\startMPpage - - fill fullsquare xysized(PaperWidth,PaperHeight) withcolor .4white ; - - draw image ( - fill arrowhead fullcircle scaled .5 rotated 0 scaled 10 withcolor white ; - fill arrowhead fullcircle scaled .5 rotated 120 scaled 10 withcolor white ; - fill arrowhead fullcircle scaled .5 rotated 240 scaled 10 withcolor white ; - fill arrowhead fullcircle scaled .5 rotated 60 scaled 10 withcolor white ; - fill arrowhead fullcircle scaled .5 rotated 180 scaled 10 withcolor white ; - fill arrowhead fullcircle scaled .5 rotated 300 scaled 10 withcolor white ; - ) xsized (.9PaperWidth) shifted (0,.2PaperWidth) ; - - draw image ( - fill arrowhead fullcircle scaled .5 rotated 0 scaled 10 withcolor .4red withtransparency (1,.5) ; - fill arrowhead fullcircle scaled .5 rotated 120 scaled 10 withcolor .4green withtransparency (1,.5) ; - fill arrowhead fullcircle scaled .5 rotated 240 scaled 10 withcolor .4blue withtransparency (1,.5) ; - fill arrowhead fullcircle scaled .5 rotated 60 scaled 10 withcolor .4cyan withtransparency (1,.5) ; - fill arrowhead fullcircle scaled .5 rotated 180 scaled 10 withcolor .4magenta withtransparency (1,.5) ; - fill arrowhead fullcircle scaled .5 rotated 300 scaled 10 withcolor .4yellow withtransparency (1,.5) ; - ) xsized (.9PaperWidth) shifted (0,.2PaperWidth) ; - - draw textext ("\LatinModernMonoVariable \documentvariable{title}") xsized (.9PaperWidth) shifted (0,-.425PaperWidth) withcolor white ; - draw textext ("\LatinModernMonoVariable \documentvariable{extra}") xsized (.9PaperWidth) shifted (0,-.575PaperWidth) withcolor white ; - -\stopMPpage - -\stopcomponent diff --git a/doc/context/sources/general/manuals/workflows/workflows-xml.tex b/doc/context/sources/general/manuals/workflows/workflows-xml.tex deleted file mode 100644 index 0f29f5f55..000000000 --- a/doc/context/sources/general/manuals/workflows/workflows-xml.tex +++ /dev/null @@ -1,96 +0,0 @@ -% language=uk - -\environment workflows-style - -\startcomponent workflows-xml - -\startluacode - for i=1,10 do - local filename = string.formatters["temp-%02i.xml"](i) - local filedata = string.formatters["<?xml version='1.0'?><p>snippet %i</p>"](i) - io.savedata(filename,filedata) - end -\stopluacode - -\startchapter[title={XML}] - -When you have an \XML\ project with many files involved, finding the right spot -of something that went wrong can be a pain. In one of our project the production of -some 50 books involves 60.000 \XML\ files and 20.000 images. Say that we have the -following file: - -\startbuffer[demo] -<?xml version='1.0'?> -<document> - <include name="temp-01.xml"/> <include name="temp-02.xml"/> - <include name="temp-03.xml"/> <include name="temp-04.xml"/> - <include name="temp-05.xml"/> <include name="temp-06.xml"/> - <include name="temp-07.xml"/> <include name="temp-08.xml"/> - <include name="temp-09.xml"/> <include name="temp-10.xml"/> -</document> -\stopbuffer - -\typebuffer[demo] - -Before we process this file we will merge the content of the files defined -as includes into it. When this happens the filename is automatically -registered so it can be accessed later. - -\startbuffer -\startxmlsetups xml:initialize - \xmlincludeoptions{#1}{include}{filename|name}{recurse,basename} - \xmlsetsetup{#1}{p|document}{xml:*} -\stopxmlsetups - -\startxmlsetups xml:document - \xmlflush{#1} -\stopxmlsetups - -\startxmlsetups xml:p - \inleftmargin{\infofont\xmlinclusion{#1}} - \xmlflush{#1} - \par -\stopxmlsetups - -\xmlregistersetup{xml:initialize} - -\xmlprocessbuffer{main}{demo}{} -\stopbuffer - -\typebuffer - -In this case we put the name of the file in the margin. Depending on when and how -elements are flushed other solutions, like overlays, can be used. - -\startpacked -\getbuffer -\stoppacked - -At any moment you can see what the current node contains. The whole (merged) -document is also available: - -\startbuffer -\xmlshow{main} -\stopbuffer - -\typebuffer - -A small font is used to typeset the (sub)tree: - -\blank \getbuffer \blank - -You can also save the tree: - -\startbuffer -\xmlsave{main}{temp.xml} -\stopbuffer - -\typebuffer \getbuffer - -This file looks like: - -\typefile{temp.xml} - -\stopchapter - -\stopcomponent diff --git a/doc/context/sources/general/manuals/xml/xml-mkiv-01.xml b/doc/context/sources/general/manuals/xml/xml-mkiv-01.xml deleted file mode 100644 index c2feac218..000000000 --- a/doc/context/sources/general/manuals/xml/xml-mkiv-01.xml +++ /dev/null @@ -1,15 +0,0 @@ -<name>Land Of Dreams</name> -<tracks> - <track length="248">Dixie Flyer</track> - <track length="212">New Orleans Wins The War</track> - <track length="218">Four Eyes</track> - <track length="181">Falling In Love</track> - <track length="187">Something Special</track> - <track length="168">Bad News From Home</track> - <track length="207">Roll With The Punches</track> - <track length="209">Masterman And Baby J</track> - <track length="134">Follow The Flag</track> - <track length="246">I Want You To Hurt Like I Do</track> - <track length="248">It's Money That Matters</track> - <track length="156">Red Bandana</track> -</tracks> diff --git a/doc/context/sources/general/manuals/xml/xml-mkiv-02.xml b/doc/context/sources/general/manuals/xml/xml-mkiv-02.xml deleted file mode 100644 index 997123ad6..000000000 --- a/doc/context/sources/general/manuals/xml/xml-mkiv-02.xml +++ /dev/null @@ -1,15 +0,0 @@ -<name>Bad Love</name> -<tracks> - <track length="340">My Country</track> - <track length="295">Shame</track> - <track length="205">I'm Dead (But I Don't Know It)</track> - <track length="213">Every Time It Rains</track> - <track length="206">The Great Nations of Europe</track> - <track length="220">The One You Love</track> - <track length="164">The World Isn't Fair</track> - <track length="264">Big Hat, No Cattle</track> - <track length="243">Better Off Dead</track> - <track length="236">I Miss You</track> - <track length="126">Going Home</track> - <track length="180">I Want Everyone To Like Me</track> -</tracks> diff --git a/doc/context/sources/general/manuals/xml/xml-mkiv.tex b/doc/context/sources/general/manuals/xml/xml-mkiv.tex deleted file mode 100644 index 3933c0063..000000000 --- a/doc/context/sources/general/manuals/xml/xml-mkiv.tex +++ /dev/null @@ -1,3812 +0,0 @@ -% language=uk - -% to be checked: -% -% \Ux in index -% -% undocumented: -% -% \processXMLbuffer -% \processxmlbuffer -% \processxmlfile -% -% kind of special ... tricky explanation needed: -% -% \xmldirect - -\input lxml-ctx.mkiv - -\settrue \xmllshowtitle -\setfalse\xmllshowwarning - -\usemodule[set-11] - -\loadsetups[i-en-xml.xml] - -% \definehspace[squad][1em plus .25em minus .25em] - -\usemodule[abr-02] - -\setuplayout - [location=middle, - marking=on, - backspace=20mm, - cutspace=20mm, - topspace=15mm, - header=15mm, - footer=15mm, - height=middle, - width=middle] - -\setuppagenumbering - [alternative=doublesided, - location=] - -\setupfootertexts - [][pagenumber] - -\setupheadertexts - [][chapter] - -\setupheader - [color=colortwo, - style=bold] - -\setupfooter - [color=colortwo, - style=bold] - -\setuphead - [chapter] - [page={yes,header,right}, - header=empty, - style=\bfc] - -\setupsectionblock - [page={yes,header,right}] - -\starttexdefinition unexpanded section:chapter:number #1 - \doifmode{*sectionnumber} { - \llap{<\enspace}#1\enspace> - } -\stoptexdefinition - -\starttexdefinition unexpanded section:section:number #1 - \doifmode{*sectionnumber} { - \llap{<<\enspace}#1\enspace>> - } -\stoptexdefinition - -\starttexdefinition unexpanded section:subsection:number #1 - \doifmode{*sectionnumber} { - \llap{<<<\enspace}#1\enspace>>> - } -\stoptexdefinition - -\setuphead[chapter] [numbercolor=black,numbercommand=\texdefinition{section:chapter:number}] -\setuphead[section] [numbercolor=black,numbercommand=\texdefinition{section:section:number}] -\setuphead[subsection][numbercolor=black,numbercommand=\texdefinition{section:subsection:number}] - -\setuphead - [section] - [style=\bfa] - -\setuplist - [chapter] - [style=bold] - -\setupinteractionscreen - [option=doublesided] - -\setupalign - [tolerant,stretch] - -\setupwhitespace - [big] - -\setuptolerance - [tolerant] - -\doifelsemode {atpragma} { - \setupbodyfont[lucidaot,10pt] -} { - \setupbodyfont[dejavu,10pt] -} - -\definecolor[colorone] [b=.5] -\definecolor[colortwo] [s=.3] -\definecolor[colorthree][y=.5] - -\setuptype - [color=colorone] - -\setuptyping - [color=colorone] - -\setuphead - [lshowtitle] - [style=\tt, - color=colorone] - -\setuphead - [chapter,section] - [numbercolor=colortwo, - color=colorone] - -\definedescription - [xmlcmd] - [alternative=hanging, - width=line, - distance=1em, - margin=2em, - headstyle=monobold, - headcolor=colorone] - -\setupframedtext - [setuptext] - [framecolor=colorone, - rulethickness=1pt, - corner=round] - -\usemodule[punk] - -\usetypescript[punk] - -\definelayer - [page] - [width=\paperwidth, - height=\paperheight] - -\starttext - -\setuplayout[page] - -\startstandardmakeup - \startfontclass[none] % nil the current fontclass since it may append its features - \EnableRandomPunk - \setlayerframed - [page] - [width=\paperwidth,height=\paperheight, - background=color,backgroundcolor=colorone,backgroundoffset=1ex,frame=off] - {} - \definedfont[demo@punk at 18pt] - \setbox\scratchbox\vbox { - \hsize\dimexpr\paperwidth+2ex\relax - \setupinterlinespace - \baselineskip 1\baselineskip plus 1pt minus 1pt - \raggedcenter - \color[colortwo]{\dorecurse{1000}{XML }} - } - \setlayer - [page] - [preset=middle] - {\vsplit\scratchbox to \dimexpr\paperheight+2ex\relax} - \definedfont[demo@punk at 90pt] - \setstrut - \setlayerframed - [page] - [preset=rightbottom,offset=10mm] - [foregroundcolor=colorthree,align=flushright,offset=overlay,frame=off] - {Dealing\\with XML in\\Con\TeX t MkIV} - \definedfont[demo@punk at 18pt] - \setstrut - \setlayerframed - [page] - [preset=righttop,offset=10mm,x=3mm,rotation=90] - [foregroundcolor=colorthree,align=flushright,offset=overlay,frame=off] - {Hans Hagen, Pragma ADE, \currentdate} - \tightlayer[page] - \stopfontclass -\stopstandardmakeup - -\setuplayout - -\startfrontmatter - -\starttitle[title=Contents] - -\placelist - [chapter,section] - -\stoptitle - -\startchapter[title={Introduction}] - -This manual presents the \MKIV\ way of dealing with \XML. Although the -traditional \MKII\ streaming parser has a charming simplicity in its control, for -complex documents the tree based \MKIV\ method is more convenient. It is for this -reason that the old method has been removed from \MKIV. If you are familiar with -\XML\ processing in \MKII, then you will have noticed that the \MKII\ commands -have \type {XML} in their name. The \MKIV\ commands have a lowercase \type {xml} -in their names. That way there is no danger for confusion or a mixup. - -You may wonder why we do these manipulations in \TEX\ and not use \XSLT\ (or -other transformation methods) instead. The advantage of an integrated approach is -that it simplifies usage. Think of not only processing the document, but also -using \XML\ for managing resources in the same run. An \XSLT\ approach is just as -verbose (after all, you still need to produce \TEX\ code) and probably less -readable. In the case of \MKIV\ the integrated approach is also faster and gives -us the option to manipulate content at runtime using \LUA. It has the additional -advantage that to some extend we can handle a mix of \TEX\ and \XML\ because we -know when we're doing one or the other. - -This manual is dedicated to Taco Hoekwater, one of the first \CONTEXT\ users, and -also the first to use it for processing \XML. Who could have thought at that time -that we would have a more convenient way of dealing with those angle brackets. -The second version for this manual is dedicated to Thomas Schmitz, a power user -who occasionally became victim of the evolving mechanisms. - -\blank - -\startlines -Hans Hagen -\PRAGMA -Hasselt NL -2008\endash2016 -\stoplines - -\stopchapter - -\stopfrontmatter - -\startbodymatter - -\startchapter[title={Setting up a converter}] - -\startsection[title={from structure to setup}] - -We use a very simple document structure for demonstrating how a converter is -defined. In practice a mapping will be more complex, especially when we have a -style with complex chapter openings using data coming from all kind of places, -different styling of sections with the same name, selectively (out of order) -flushed content, special formatting, etc. - -\typefile{manual-demo-1.xml} - -Say that this document is stored in the file \type {demo.xml}, then the following -code can be used as starting point: - -\starttyping -\startxmlsetups xml:demo:base - \xmlsetsetup{#1}{*}{-} - \xmlsetsetup{#1}{document|section|p}{xml:demo:*} -\stopxmlsetups - -\xmlregisterdocumentsetup{demo}{xml:demo:base} - -\startxmlsetups xml:demo:document - \starttitle[title={Contents}] - \placelist[chapter] - \stoptitle - \xmlflush{#1} -\stopxmlsetups - -\startxmlsetups xml:demo:section - \startchapter[title=\xmlfirst{#1}{/title}] - \xmlfirst{#1}{/content} - \stopchapter -\stopxmlsetups - -\startxmlsetups xml:demo:p - \xmlflush{#1}\endgraf -\stopxmlsetups - -\xmlprocessfile{demo}{demo.xml}{} -\stoptyping - -Watch out! These are not just setups, but specific \XML\ setups which get an -argument passed (the \type {#1}). If for some reason your \XML\ processing fails, -it might be that you mistakenly have used a normal setup definition. The argument -\type {#1} represents the current node (element) and is a unique identifier. For -instance a \type {<p>..</p>} can have an identifier {demo::5}. So, we can get -something: - -\starttyping -\xmlflush{demo::5}\endgraf -\stoptyping - -but as well: - -\starttyping -\xmlflush{demo::6}\endgraf -\stoptyping - -Keep in mind that the references tor the actual nodes (elements) are -abstractions, you never see those \type {<id>::<number>}'s, because we will use -either the abstract \type {#1} (any node) or an explicit reference like \type -{demo}. The previous setup when issued will be like: - -\starttyping -\startchapter[title=\xmlfirst{demo::3}{/title}] - \xmlfirst{demo::4}{/content} -\stopchapter -\stoptyping - -Here the \type {title} is used to typeset the chapter title but also for an entry -in the table of contents. At the moment the title is typeset the \XML\ node gets -looked up and expanded in real text. However, for the list it gets stored for -later use. One can argue that this is not needed for \XML, because one can just -filter all the titles and use page references, but then one also looses the -control one normally has over such titles. For instance it can be that some -titles are rendered differently and for that we need to keep track of usage. -Doing that with transformations or filtering is often more complex than leaving -that to \TEX. As soon as the list gets typeset, the reference (\type {demo::#3}) -is used for the lookup. This is because by default the title is stored as given. -So, as long as we make sure the \XML\ source is loaded before the table of -contents is typeset we're ok. Later we will look into this in more detail, for -now it's enough to know that in most cases the abstract \type {#1} reference will -work out ok. - -Contrary to the style definitions this interface looks rather low level (with no -optional arguments) and the main reason for this is that we want processing to be -fast. So, the basic framework is: - -\starttyping -\startxmlsetups xml:demo:base - % associate setups with elements -\stopxmlsetups - -\xmlregisterdocumentsetup{demo}{xml:demo:base} - -% define setups for matches - -\xmlprocessfile{demo}{demo.xml}{} -\stoptyping - -In this example we mostly just flush the content of an element and in the case of -a section we flush explicit child elements. The \type {#1} in the example code -represents the current element. The line: - -\starttyping -\xmlsetsetup{demo}{*}{-} -\stoptyping - -sets the default for each element to \quote {just ignore it}. A \type {+} would -make the default to always flush the content. This means that at this point we -only handle: - -\starttyping -<section> - <title>Some title</title> - <content> - <p>a paragraph of text</p> - </content> -</section> -\stoptyping - -In the next section we will deal with the slightly more complex itemize and -figure placement. At first sight all these setups may look overkill but keep in -mind that normally the number of elements is rather limited. The complexity is -often in the style and having access to each snippet of content is actually -quite handy for that. - -\stopsection - -\startsection[title={alternative solutions}] - -Dealing with an itemize is rather simple (as long as we forget about -attributes that control the behaviour): - -\starttyping -<itemize> - <item>first</item> - <item>second</item> -</itemize> -\stoptyping - -First we need to add \type {itemize} to the setup assignment (unless we've used -the wildcard \type {*}): - -\starttyping -\xmlsetsetup{demo}{document|section|p|itemize}{xml:demo:*} -\stoptyping - -The setup can look like: - -\starttyping -\startxmlsetups xml:demo:itemize - \startitemize - \xmlfilter{#1}{/item/command(xml:demo:itemize:item)} - \stopitemize -\stopxmlsetups - -\startxmlsetups xml:demo:itemize:item - \startitem - \xmlflush{#1} - \stopitem -\stopxmlsetups -\stoptyping - -An alternative is to map item directly: - -\starttyping -\xmlsetsetup{demo}{document|section|p|itemize|item}{xml:demo:*} -\stoptyping - -and use: - -\starttyping -\startxmlsetups xml:demo:itemize - \startitemize - \xmlflush{#1} - \stopitemize -\stopxmlsetups - -\startxmlsetups xml:demo:item - \startitem - \xmlflush{#1} - \stopitem -\stopxmlsetups -\stoptyping - -Sometimes, a more local solution using filters and \type {/command(...)} makes more -sense, especially when the \type {item} tag is used for other purposes as well. - -Explicit flushing with \type {command} is definitely the way to go when you have -complex products. In one of our projects we compose math school books from many -thousands of small \XML\ files, and from one source set several products are -typeset. Within a book sections get done differently, content gets used, ignored -or interpreted differently depending on the kind of content, so there is a -constant checking of attributes that drive the rendering. In that a generic setup -for a title element makes less sense than explicit ones for each case. (We're -talking of huge amounts of files here, including multiple images on each rendered -page.) - -When using \type {command} you can pass two arguments, the first is the setup for -the match, the second one for the miss, as in: - -\starttyping -\xmlfilter{#1}{/element/command(xml:true,xml:false)} -\stoptyping - -Back to the example, this leaves us with dealing with the resources, like -figures: - -\starttyping -<resource type='figure'> - <caption>A picture of a cow.</caption> - <content><external file="cow.pdf"/></content> -</resource> -\stoptyping - -Here we can use a more restricted match: - -\starttyping -\xmlsetsetup{demo}{resource[@type='figure']}{xml:demo:figure} -\xmlsetsetup{demo}{external}{xml:demo:*} -\stoptyping - -and the definitions: - -\starttyping -\startxmlsetups xml:demo:figure - \placefigure - {\xmlfirst{#1}{/caption}} - {\xmlfirst{#1}{/content}} -\stopxmlsetups - -\startxmlsetups xml:demo:external - \externalfigure[\xmlatt{#1}{file}] -\stopxmlsetups -\stoptyping - -At this point it is good to notice that \type {\xmlatt{#1}{file}} is passed as it -is: a macro call. This means that when a macro like \type {\externalfigure} uses -the first argument frequently without first storing its value, the lookup is done -several times. A solution for this is: - -\starttyping -\startxmlsetups xml:demo:external - \expanded{\externalfigure[\xmlatt{#1}{file}]} -\stopxmlsetups -\stoptyping - -Because the lookup is rather fast, normally there is no need to bother about this -too much because internally \CONTEXT\ already makes sure such expansion happens -only once. - -An alternative definition for placement is the following: - -\starttyping -\xmlsetsetup{demo}{resource}{xml:demo:resource} -\stoptyping - -with: - -\starttyping -\startxmlsetups xml:demo:resource - \placefloat - [\xmlatt{#1}{type}] - {\xmlfirst{#1}{/caption}} - {\xmlfirst{#1}{/content}} -\stopxmlsetups -\stoptyping - -This way you can specify \type {table} as type too. Because you can define your -own float types, more complex variants are also possible. In that case it makes -sense to provide some default behaviour too: - -\starttyping -\definefloat[figure-here][figure][default=here] -\definefloat[figure-left][figure][default=left] -\definefloat[table-here] [table] [default=here] -\definefloat[table-left] [table] [default=left] - -\startxmlsetups xml:demo:resource - \placefloat - [\xmlattdef{#1}{type}{figure}-\xmlattdef{#1}{location}{here}] - {\xmlfirst{#1}{/caption}} - {\xmlfirst{#1}{/content}} -\stopxmlsetups -\stoptyping - -In this example we support two types and two locations. We default to a figure -placed (when possible) at the current location. - -\stopsection - -\stopchapter - -\startchapter[title={Filtering content}] - -\startsection[title={\TEX\ versus \LUA}] - -It will not come as a surprise that we can access \XML\ files from \TEX\ as well -as from \LUA. In fact there are two methods to deal with \XML\ in \LUA. First -there are the low level \XML\ functions in the \type {xml} namespace. On top of -those functions there is a set of functions in the \type {lxml} namespace that -deals with \XML\ in a more \TEX ie way. Most of these have similar commands at -the \TEX\ end. - -\startbuffer -\startxmlsetups first:demo:one - \xmlfilter {#1} {artist/name[text()='Randy Newman']/.. - /albums/album[position()=3]/command(first:demo:two)} -\stopxmlsetups - -\startxmlsetups first:demo:two - \blank \start \tt - \xmldisplayverbatim{#1} - \stop \blank -\stopxmlsetups - -\xmlprocessfile{demo}{music-collection.xml}{first:demo:one} -\stopbuffer - -\typebuffer - -This gives the following snippet of verbatim \XML\ code. The indentation is -conform the indentation in the whole \XML\ file. \footnote {The (probably -outdated) \XML\ file contains the collection stores on my slimserver instance. -You can use the \type {mtxrun --script flac} to generate such files.} - -\doifmodeelse {atpragma} { - \getbuffer -} { - \typefile{xml-mkiv-01.xml} -} - -An alternative written in \LUA\ looks as follows: - -\startbuffer -\blank \start \tt \startluacode - local m = lxml.load("mine","music-collection.xml") -- m == lxml.id("mine") - local p = "artist/name[text()='Randy Newman']/../albums/album[position()=4]" - local l = lxml.filter(m,p) -- returns a list (with one entry) - lxml.displayverbatim(l[1]) -\stopluacode \stop \blank -\stopbuffer - -\typebuffer - -This produces: - -\doifmodeelse {atpragma} { - \getbuffer -} { - \typefile{xml-mkiv-02.xml} -} - -You can use both methods mixed but in practice we will use the \TEX\ commands in -regular styles and the mixture in modules, for instance in those dealing with -\MATHML\ and cals tables. For complex matters you can write your own finalizers -(the last action to be taken in a match) in \LUA\ and use them at the \TEX\ end. - -\stopsection - -\startsection[title={a few details}] - -In \CONTEXT\ setups are a rather common variant on macros (\TEX\ commands) but -with their own namespace. An example of a setup is: - -\starttyping -\startsetup doc:print - \setuppapersize[A4][A4] -\stopsetup - -\startsetup doc:screen - \setuppapersize[S6][S4] -\stopsetup -\stoptyping - -Given the previous definitions, later on we can say something like: - -\starttyping -\doifmodeelse {paper} { - \setup[doc:print] -} { - \setup[doc:screen] -} -\stoptyping - -Another example is: - -\starttyping -\startsetup[doc:header] - \marking[chapter] - \space - -- - \space - \pagenumber -\stopsetup -\stoptyping - -in combination with: - -\starttyping -\setupheadertexts[\setup{doc:header}] -\stoptyping - -Here the advantage is that instead of ending up with an unreadable header -definitions, we use a nicely formatted setup. An important property of setups and -the reason why they were introduced long ago is that spaces and newlines are -ignored in the definition. This means that we don't have to worry about so called -spurious spaces but it also means that when we do want a space, we have to use -the \type {\space} command. - -The only difference between setups and \XML\ setups is that the following ones -get an argument (\type {#1}) that reflects the current node in the \XML\ tree. - -\stopsection - -\startsection[title={CDATA}] - -What to do with \type {CDATA}? There are a few methods at tle \LUA\ end for -dealing with it but here we just mention how you can influence the rendering. -There are four macros that play a role here: - -\starttyping -\unexpanded\def\xmlcdataobeyedline {\obeyedline} -\unexpanded\def\xmlcdataobeyedspace{\strut\obeyedspace} -\unexpanded\def\xmlcdatabefore {\begingroup\tt} -\unexpanded\def\xmlcdataafter {\endgroup} -\stoptyping - -Technically you can overload them but beware of side effects. Normally you won't -see much \type {CDATA} and whenever we do, it involves special data that needs -very special treatment anyway. - -\stopsection - -\startsection[title={Entities}] - -As usual with any way of encoding documents you need escapes in order to encode -the characters that are used in tagging the content, embedding comments, escaping -special characters in strings (in programming languages), etc. In \XML\ this -means that in order characters like \type {<} you need an escape like \type -{<} and in order then to encode an \type {&} you need \type {&}. - -In a typesetting workflow using a programming language like \TEX, another problem -shows up. There we have different special characters, like \type {$ $} for triggering -math, but also the backslash, braces etc. Even one such special character is already -enough to have yet another escaping mechanism at work. - -Ideally a user should not worry about these issues but it helps figuring out issues -when you know what happens under the hood. Also it is good to know that in the -code there are several ways to deal with these issues. Take the following document: - -\starttyping -<text> - Here we have a bit of a <&mess>: - - # # - % % - \ \ - { { - | | - } } - ~ ~ -</text> -\stoptyping - -When the file is read the \type {<} entity will be replaced by \type {<} and -the \type {>} by \type {>}. The numeric entities will be replaced by the -characters they refer to. The \type {&mess} is kind of special. We do preload -a huge list of more or less standardized entities but \type {mess} is not in -there. However, it is possible to have it defined in the document preamble, like: - -\starttyping -<!DOCTYPE dummy SYSTEM "dummy.dtd" [ - <!ENTITY mess "what a mess" > -]> -\stoptyping - -or even this: - -\starttyping -<!DOCTYPE dummy SYSTEM "dummy.dtd" [ - <!ENTITY mess "<p>what a mess</p>" > -]> -\stoptyping - -You can also define it in your document style using one of: - -\startxmlcmd {\cmdbasicsetup{xmlsetentity}} - replaces entity with name \cmdinternal {cd:name} by \cmdinternal {cd:text} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmltexentity}} - replaces entity with name \cmdinternal {cd:name} by \cmdinternal {cd:text} - typeset under a \TEX\ regime -\stopxmlcmd - -Such a definition will always have a higher priority than the one defined -in the document. Anyway, when the document is read in all entities are -resolved and those that need a special treatment because they map to some -text are stored in such a way that we can roundtrip them. As a consequence, -as soon as the content gets pushed into \TEX, we need not only to intercept -special characters but also have to make sure that the following works: - -\starttyping -\xmltexentity {tex} {\TEX} -\stoptyping - -Here the backslash starts a control sequence while in regular content a -backslash is just that: a backslash. - -Special characters are really special when we have to move text around -in a \TEX\ ecosystem. - -\starttyping -<text> - <title>About #3</title> -</text> -\stoptyping - -If we map and define title as follows: - -\starttyping -\startxmlsetup xml:title - \title{\xmlflush{#1}} -\stopxmlsetup -\stoptyping - -normally something \type {\xmlflush {id::123}} will be written to the -auxiliary file and in most cases that is quite okay, but if we have this: - -\starttyping -\setuphead[title][expansion=yes] -\stoptyping - -then we don't want the \type {#} to end up as hash because later on \TEX\ -can get very confused about it because it sees some argument then in a -probably unexpected way. This is solved by escaping the hash like this: - -\starttyping -About \Ux{23}3 -\stoptyping - -The \type {\Ux} command will convert its hexadecimal argument into a -character. Of course one then needs to typeset such a text under a \TEX\ -character regime but that is normally the case anyway. - -\stopsection - -\stopchapter - -\startchapter[title={Commands}] - -\startsection[title={nodes and lpaths}] - -The amount of commands available for manipulating the \XML\ file is rather large. -Many of the commands cooperate with the already discussed setups, a fancy name -for a collection of macro calls either or not mixed with text. - -Most of the commands are just shortcuts to \LUA\ calls, which means that the real -work is done by \LUA. In fact, what happens is that we have a continuous transfer -of control from \TEX\ to \LUA, where \LUA\ prints back either data (like element -content or attribute values) or just invokes a setup whereby it passes a -reference to the node resolved conform the path expression. The invoked setup -itself might return control to \LUA\ again, etc. - -This sounds complicated but examples will show what we mean here. First we -present the whole repertoire of commands. Because users can read the source code, -they might uncover more commands, but only the ones discussed here are official. -The commands are grouped in categories. - -In the following sections \cmdinternal {cd:node} means a reference to a node: -this can be the identifier of the root (the loaded xml tree) or a reference to a -node in that tree (often the result of some lookup. A \cmdinternal {cd:lpath} is -a fancy name for a path expression (as with \XSLT) but resolved by \LUA. - -\stopsection - -\startsection[title={commands}] - -There are a lot of commands available but you probably can ignore most of them. -We try to be complete which means that there is for instance \type {\xmlfirst} as -well as \type {\xmllast} but you probably never need the last one. There are also -commands that were used when testing this interface and we see no reason to -remove them. Some obscure ones are used in modules and after a while even I often -forget that they exist. To give you an idea of what commands are important we -show their use in generating the \CONTEXT\ command definitions (\type -{x-set-11.mkiv}) per Januari 2016: - -\startcolumns[n=2,balance=yes] -\starttabulate[|l|r|] -\NC \type {\xmlall} \NC 1 \NC \NR -\NC \type {\xmlatt} \NC 23 \NC \NR -\NC \type {\xmlattribute} \NC 1 \NC \NR -\NC \type {\xmlcount} \NC 1 \NC \NR -\NC \type {\xmldoif} \NC 2 \NC \NR -\NC \type {\xmldoifelse} \NC 1 \NC \NR -\NC \type {\xmlfilterlist} \NC 4 \NC \NR -\NC \type {\xmlflush} \NC 5 \NC \NR -\NC \type {\xmlinclude} \NC 1 \NC \NR -\NC \type {\xmlloadonly} \NC 1 \NC \NR -\NC \type {\xmlregisterdocumentsetup} \NC 1 \NC \NR -\NC \type {\xmlsetsetup} \NC 1 \NC \NR -\NC \type {\xmlsetup} \NC 4 \NC \NR -\stoptabulate -\stopcolumns - -As you can see filtering, flushing and accessing attributes score high. Below we show -the statistics of a quite complex rendering (5 variants of schoolbooks: basic book, -answers, teachers guide, worksheets, full blown version with extensive tracing). - -\startcolumns[n=2,balance=yes] -\starttabulate[|l|r|] -\NC \type {\xmladdindex} \NC 3 \NC \NR -\NC \type {\xmlall} \NC 5 \NC \NR -\NC \type {\xmlappendsetup} \NC 1 \NC \NR -\NC \type {\xmlapplyselectors} \NC 1 \NC \NR -\NC \type {\xmlatt} \NC 40 \NC \NR -\NC \type {\xmlattdef} \NC 9 \NC \NR -\NC \type {\xmlattribute} \NC 10 \NC \NR -\NC \type {\xmlbadinclusions} \NC 3 \NC \NR -\NC \type {\xmlconcat} \NC 3 \NC \NR -\NC \type {\xmlcount} \NC 1 \NC \NR -\NC \type {\xmldelete} \NC 11 \NC \NR -\NC \type {\xmldoif} \NC 39 \NC \NR -\NC \type {\xmldoifelse} \NC 28 \NC \NR -\NC \type {\xmldoifelsetext} \NC 13 \NC \NR -\NC \type {\xmldoifnot} \NC 2 \NC \NR -\NC \type {\xmldoifnotselfempty} \NC 1 \NC \NR -\NC \type {\xmlfilter} \NC 100 \NC \NR -\NC \type {\xmlfirst} \NC 51 \NC \NR -\NC \type {\xmlflush} \NC 69 \NC \NR -\NC \type {\xmlflushcontext} \NC 2 \NC \NR -\NC \type {\xmlinclude} \NC 1 \NC \NR -\NC \type {\xmlincludeoptions} \NC 5 \NC \NR -\NC \type {\xmlinclusion} \NC 16 \NC \NR -\NC \type {\xmlinjector} \NC 1 \NC \NR -\NC \type {\xmlloaddirectives} \NC 1 \NC \NR -\NC \type {\xmlmapvalue} \NC 4 \NC \NR -\NC \type {\xmlmatch} \NC 1 \NC \NR -\NC \type {\xmlprependsetup} \NC 5 \NC \NR -\NC \type {\xmlregisterdocumentsetup} \NC 2 \NC \NR -\NC \type {\xmlregistersetup} \NC 1 \NC \NR -\NC \type {\xmlremapnamespace} \NC 1 \NC \NR -\NC \type {\xmlsetfunction} \NC 2 \NC \NR -\NC \type {\xmlsetinjectors} \NC 2 \NC \NR -\NC \type {\xmlsetsetup} \NC 11 \NC \NR -\NC \type {\xmlsetup} \NC 76 \NC \NR -\NC \type {\xmlstrip} \NC 1 \NC \NR -\NC \type {\xmlstripanywhere} \NC 1 \NC \NR -\NC \type {\xmltag} \NC 1 \NC \NR -\NC \type {\xmltext} \NC 53 \NC \NR -\NC \type {\xmlvalue} \NC 2 \NC \NR -\stoptabulate -\stopcolumns - -Here many more are used but this is an exceptional case. The top is again -dominated by filtering, flushing and attribute consulting. The list can actually -be smaller. For instance, the \type {\xmlcount} can just as well be \type -{\xmlfilter} with a \type {count} finalizer. There are also some special ones, -like the injectors, that are needed for finetuning the final result. - -\stopsection - -\startsection[title={loading}] - -\startxmlcmd {\cmdbasicsetup{xmlloadfile}} - loads the file \cmdinternal {cd:file} and registers it under \cmdinternal - {cd:name} and applies either given or standard \cmdinternal - {cd:xmlsetup} (alias: \type {\xmlload}) -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlloadbuffer}} - loads the buffer \cmdinternal {cd:buffer} and registers it under - \cmdinternal {cd:name} and applies either given or standard - \cmdinternal {cd:xmlsetup} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlloaddata}} - loads \cmdinternal {cd:text} and registers it under \cmdinternal - {cd:name} and applies either given or standard \cmdinternal - {cd:xmlsetup} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlloadonly}} - loads \cmdinternal {cd:text} and registers it under \cmdinternal - {cd:name} and applies either given or standard \cmdinternal - {cd:xmlsetup} but doesn't flush the content -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlinclude}} - includes the file specified by attribute \cmdinternal {cd:name} of the - element located by \cmdinternal {cd:lpath} at node \cmdinternal {cd:node} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlprocessfile}} - registers file \cmdinternal {cd:file} as \cmdinternal {cd:name} and - process the tree starting with \cmdinternal {cd:xmlsetup} (alias: - \type {\xmlprocess}) -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlprocessbuffer}} - registers buffer \cmdinternal {cd:name} as \cmdinternal {cd:name} and process - the tree starting with \cmdinternal {cd:xmlsetup} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlprocessdata}} - registers \cmdinternal {cd:text} as \cmdinternal {cd:name} and process - the tree starting with \cmdinternal {cd:xmlsetup} -\stopxmlcmd - -The initial setup defaults to \type {xml:process} that is defined -as follows: - -\starttyping -\startsetups xml:process - \xmlregistereddocumentsetups\xmldocument - \xmlmain\xmldocument -\stopsetups -\stoptyping - -First we apply the setups associated with the document (including common setups) -and then we flush the whole document. The macro \type {\xmldocument} expands to -the current document id. There is also \type {\xmlself} which expands to the -current node number (\type {#1} in setups). - -\startxmlcmd {\cmdbasicsetup{xmlmain}} - returns the whole document -\stopxmlcmd - -Normally such a flush will trigger a chain reaction of setups associated with the -child elements. - -\stopsection - -\startsection[title={saving}] - -\startxmlcmd {\cmdbasicsetup{xmlsave}} - saves the given node \cmdinternal {cd:node} in the file \cmdinternal {cd:file} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmltofile}} - saves the match of \cmdinternal {cd:lpath} in the file \cmdinternal {cd:file} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmltobuffer}} - saves the match of \cmdinternal {cd:lpath} in the buffer \cmdinternal {cd:buffer} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmltobufferverbose}} - saves the match of \cmdinternal {cd:lpath} verbatim in the buffer \cmdinternal - {cd:buffer} -\stopxmlcmd - -% \startxmlcmd {\cmdbasicsetup{xmltoparameters}} -% converts the match of \cmdinternal {cd:lpath} to key|/|values (for tracing) -% \stopxmlcmd - -The next command is only needed when you have messed with the tree using -\LUA\ code. - -\startxmlcmd {\cmdbasicsetup{xmladdindex}} - (re)indexes a tree -\stopxmlcmd - -The following macros are only used in special situations and are not really meant -for users. - -\startxmlcmd {\cmdbasicsetup{xmlraw}} - flush the content if \cmdinternal {cd:node} with original entities -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{startxmlraw}} - flush the wrapped content with original entities -\stopxmlcmd - -\stopsection - -\startsection[title={flushing data}] - -When we flush an element, the associated \XML\ setups are expanded. The most -straightforward way to flush an element is the following. Keep in mind that the -returned values itself can trigger setups and therefore flushes. - -\startxmlcmd {\cmdbasicsetup{xmlflush}} - returns all nodes under \cmdinternal {cd:node} -\stopxmlcmd - -You can restrict flushing by using commands that accept a specification. - -\startxmlcmd {\cmdbasicsetup{xmltext}} - returns the text of the matching \cmdinternal {cd:lpath} under \cmdinternal - {cd:node} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlpure}} - returns the text of the matching \cmdinternal {cd:lpath} under \cmdinternal - {cd:node} without \type {\Ux} escaped special \TEX\ characters -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlflushtext}} - returns the text of the \cmdinternal {cd:node} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlflushpure}} - returns the text of the \cmdinternal {cd:node} without \type {\Ux} escaped - special \TEX\ characters -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlnonspace}} - returns the text of the matching \cmdinternal {cd:lpath} under \cmdinternal - {cd:node} without embedded spaces -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlall}} - returns all nodes under \cmdinternal {cd:node} that matches \cmdinternal - {cd:lpath} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmllastmatch}} - returns all nodes found in the last match -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlfirst}} - returns the first node under \cmdinternal {cd:node} that matches \cmdinternal - {cd:lpath} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmllast}} - returns the last node under \cmdinternal {cd:node} that matches \cmdinternal - {cd:lpath} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlfilter}} - at a match of \cmdinternal {cd:lpath} a given filter \type {filter} is applied - and the result is returned -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlsnippet}} - returns the \cmdinternal {cd:number}\high{th} element under \cmdinternal - {cd:node} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlposition}} - returns the \cmdinternal {cd:number}\high{th} match of \cmdinternal - {cd:lpath} at node \cmdinternal {cd:node}; a negative number starts at the - end (alias: \type {\xmlindex}) -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlelement}} - returns the \cmdinternal {cd:number}\high{th} child of node \cmdinternal {cd:node}; - a negative number starts at the end -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlpos}} - returns the index (position) in the parent node of \cmdinternal {cd:node} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlconcat}} - returns the sequence of nodes that match \cmdinternal {cd:lpath} at - \cmdinternal {cd:node} whereby \cmdinternal {cd:text} is put between each - match -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlconcatrange}} - returns the \cmdinternal {cd:first}\high {th} upto \cmdinternal - {cd:last}\high {th} of nodes that match \cmdinternal {cd:lpath} at - \cmdinternal {cd:node} whereby \cmdinternal {cd:text} is put between each - match -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlcommand}} - apply the given \cmdinternal {cd:xmlsetup} to each match of \cmdinternal - {cd:lpath} at node \cmdinternal {cd:node} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlstrip}} - remove leading and trailing spaces from nodes under \cmdinternal {cd:node} - that match \cmdinternal {cd:lpath} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlstripped}} - remove leading and trailing spaces from nodes under \cmdinternal {cd:node} - that match \cmdinternal {cd:lpath} and return the content afterwards -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlstripnolines}} - remove leading and trailing spaces as well as collapse embedded spaces - from nodes under \cmdinternal {cd:node} that match \cmdinternal {cd:lpath} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlstrippednolines}} - remove leading and trailing spaces as well as collapse embedded spaces from - nodes under \cmdinternal {cd:node} that match \cmdinternal {cd:lpath} and - return the content afterwards -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlverbatim}} - flushes the content verbatim code (without any wrapping, i.e. no fonts - are selected and such) -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlinlineverbatim}} - return the content of the node as inline verbatim code; no further - interpretation (expansion) takes place and spaces are honoured; it uses the - following wrapper -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{startxmlinlineverbatim}} - wraps inline verbatim mode using the environment specified (a prefix \type - {xml:} is added to the environment name) -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmldisplayverbatim}} - return the content of the node as display verbatim code; no further - interpretation (expansion) takes place and leading and trailing spaces and - newlines are treated special; it uses the following wrapper -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{startxmldisplayverbatim}} - wraps the content in display verbatim using the environment specified (a prefix - \type {xml:} is added to the environment name) -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlprettyprint}} - pretty print (with colors) the node \cmdinternal {cd:node}; use the \CONTEXT\ - \SCITE\ lexers when available (\type {\usemodule [scite]}) -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlflushspacewise}} - flush node \cmdinternal {cd:node} obeying spaces and newlines -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlflushlinewise}} - flush node \cmdinternal {cd:node} obeying newlines -\stopxmlcmd - -\stopsection - -\startsection[title={information}] - -The following commands return strings. Normally these are used in tests. - -\startxmlcmd {\cmdbasicsetup{xmlname}} - returns the complete name (including namespace prefix) of the - given \cmdinternal {cd:node} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlnamespace}} - returns the namespace of the given \cmdinternal {cd:node} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmltag}} - returns the tag of the element, without namespace prefix -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlcount}} - returns the number of matches of \cmdinternal {cd:lpath} at node \cmdinternal - {cd:node} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlatt}} - returns the value of attribute \cmdinternal {cd:name} or empty if no such - attribute exists -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlattdef}} - returns the value of attribute \cmdinternal {cd:name} or \cmdinternal - {cd:string} if no such attribute exists -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlrefatt}} - returns the value of attribute \cmdinternal {cd:name} or empty if no such - attribute exists; a leading \type {#} is removed (nicer for tex) -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlchainatt}} - returns the value of attribute \cmdinternal {cd:name} or empty if no such - attribute exists; backtracks till a match is found -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlchainattdef}} - returns the value of attribute \cmdinternal {cd:name} or \cmdinternal - {cd:string} if no such attribute exists; backtracks till a match is found -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlattribute}} - finds a first match for \cmdinternal {cd:lpath} at \cmdinternal {cd:node} and - returns the value of attribute \cmdinternal {cd:name} or empty if no such - attribute exists -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlattributedef}} - finds a first match for \cmdinternal {cd:lpath} at \cmdinternal {cd:node} and - returns the value of attribute \cmdinternal {cd:name} or \cmdinternal - {cd:text} if no such attribute exists -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmllastatt}} - returns the last attribute found (this avoids a lookup) -\stopxmlcmd - -\stopsection - -\startsection[title={manipulation}] - -You can use \LUA\ code to manipulate the tree and it makes no sense to duplicate -this in \TEX. In the future we might provide an interface to some of this -functionality. Keep in mind that manipuating the tree might have side effects as -we maintain several indices into the tree that also needs to be updated then. - -\stopsection - -\startsection[title={integration}] - -If you write a module that deals with \XML, for instance processing cals tables, -then you need ways to control specific behaviour. For instance, you might want to -add a background to the table. Such directives are collected in \XML\ files and -can be loaded on demand. - -\startxmlcmd {\cmdbasicsetup{xmlloaddirectives}} - loads \CONTEXT\ directives from \cmdinternal {cd:file} that will get - interpreted when processing documents -\stopxmlcmd - -A directives definition file looks as follows: - -\starttyping -<?xml version="1.0" standalone="yes"?> - -<directives> - <directive attribute='id' value="100" - setup="cdx:100"/> - <directive attribute='id' value="101" - setup="cdx:101"/> - <directive attribute='cdx' value="colors" element="cals:table" - setup="cdx:cals:table:colors"/> - <directive attribute='cdx' value="vertical" element="cals:table" - setup="cdx:cals:table:vertical"/> - <directive attribute='cdx' value="noframe" element="cals:table" - setup="cdx:cals:table:noframe"/> - <directive attribute='cdx' value="*" element="cals:table" - setup="cdx:cals:table:*"/> -</directives> -\stoptyping - -Examples of usage can be found in \type {x-cals.mkiv}. The directive is triggered -by an attribute. Instead of a setup you can specify a setup to be applied before -and after the node gets flushed. - -\startxmlcmd {\cmdbasicsetup{xmldirectives}} - apply the setups directive associated with the node -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmldirectivesbefore}} - apply the before directives associated with the node -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmldirectivesafter}} - apply the after directives associated with the node -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlinstalldirective}} - defines a directive that hooks into a handler -\stopxmlcmd - -Normally a directive will be put in the \XML\ file, for instance as: - -\starttyping -<?context-mathml-directive minus reduction yes ?> -\stoptyping - -Here the \type {mathml} is the general class of directives and \type {minus} a -subclass, in our case a specific element. - -\stopsection - -\startsection[title={setups}] - -The basic building blocks of \XML\ processing are setups. These are just -collections of macros that are expanded. These setups get one argument passed -(\type {#1}): - -\starttyping -\startxmlsetups somedoc:somesetup - \xmlflush{#1} -\stopxmlsetups -\stoptyping - -This argument is normally a number that internally refers to a specific node in -the \XML\ tree. The user should see it as an abstract reference and not depend on -its numeric property. Just think of it as \quote {the current node}. You can (and -probably will) call such setups using: - -\startxmlcmd {\cmdbasicsetup{xmlsetup}} - expands setup \cmdinternal {cd:setup} and pass \cmdinternal {cd:node} as - argument -\stopxmlcmd - -However, in most cases the setups are associated to specific elements, -something that users of \XSLT\ might recognize as templates. - -\startxmlcmd {\cmdbasicsetup{xmlsetfunction}} - associates function \cmdinternal {cd:luafunction} to the elements in - namespace \cmdinternal {cd:name} that match \cmdinternal {cd:lpath} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlsetsetup}} - associates setups \cmdinternal {cd:setup} (\TEX\ code) with the matching - nodes of \cmdinternal {cd:lpath} or root \cmdinternal {cd:node} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlprependsetup}} - pushes \cmdinternal {cd:setup} to the front of global list of setups -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlappendsetup}} - adds \cmdinternal {cd:setup} to the global list of setups to be applied - (alias: \type{\xmlregistersetup}) -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlbeforesetup}} - pushes \cmdinternal {cd:setup} into the global list of setups; the - last setup is the position -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlaftersetup}} - adds \cmdinternal {cd:setup} to the global list of setups; the last setup - is the position -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlremovesetup}} - removes \cmdinternal {cd:setup} from the global list of setups -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlprependdocumentsetup}} - pushes \cmdinternal {cd:setup} to the front of list of setups to be applied - to \cmdinternal {cd:name} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlappenddocumentsetup}} - adds \cmdinternal {cd:setup} to the list of setups to be applied to - \cmdinternal {cd:name} (you can also use the alias: \type - {\xmlregisterdocumentsetup}) -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlbeforedocumentsetup}} - pushes \cmdinternal {cd:setup} into the setups to be applied to \cmdinternal - {cd:name}; the last setup is the position -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlafterdocumentsetup}} - adds \cmdinternal {cd:setup} to the setups to be applied to \cmdinternal - {cd:name}; the last setup is the position -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlremovedocumentsetup}} - removes \cmdinternal {cd:setup} from the global list of setups to be applied - to \cmdinternal {cd:name} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlresetsetups}} - removes all global setups -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlresetdocumentsetups}} - removes all setups from the \cmdinternal {cd:name} specific list of setups to - be applied -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlflushdocumentsetups}{setup}} - applies \cmdinternal {cd:setup} (can be a list) to \cmdinternal {cd:name} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlregisteredsetups}} - applies all global setups to the current document -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlregistereddocumentsetups}} - applies all document specific \cmdinternal {cd:setup} to document - \cmdinternal {cd:name} -\stopxmlcmd - -\stopsection - -\startsection[title={testing}] - -The following test macros all take a \cmdinternal {cd:node} as first argument -and an \cmdinternal {cd:lpath} as second: - -\startxmlcmd {\cmdbasicsetup{xmldoif}} - expands to \cmdinternal {cd:true} when \cmdinternal {cd:lpath} matches at - node \cmdinternal {cd:node} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmldoifnot}} - expands to \cmdinternal {cd:true} when \cmdinternal {cd:lpath} does not match - at node \cmdinternal {cd:node} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmldoifelse}} - expands to \cmdinternal {cd:true} when \cmdinternal {cd:lpath} matches at - node \cmdinternal {cd:node} and to \cmdinternal {cd:false} otherwise -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmldoiftext}} - expands to \cmdinternal {cd:true} when the node matching \cmdinternal - {cd:lpath} at node \cmdinternal {cd:node} has some content -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmldoifnottext}} - expands to \cmdinternal {cd:true} when the node matching \cmdinternal - {cd:lpath} at node \cmdinternal {cd:node} has no content -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmldoifelsetext}} - expands to \cmdinternal {cd:true} when the node matching \cmdinternal - {cd:lpath} at node \cmdinternal {cd:node} has content and to \cmdinternal - {cd:false} otherwise -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmldoifelseempty}} - expands to \cmdinternal {cd:true} when the node matching \cmdinternal - {cd:lpath} at node \cmdinternal {cd:node} is empty and to \cmdinternal - {cd:false} otherwise -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmldoifelseselfempty}} - expands to \cmdinternal {cd:true} when the node is empty and to \cmdinternal - {cd:false} otherwise -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmldoifselfempty}} - expands to \cmdinternal {cd:true} when \cmdinternal {cd:node} is empty -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmldoifnotselfempty}} - expands to \cmdinternal {cd:true} when \cmdinternal {cd:node} is not empty -\stopxmlcmd - -\stopsection - -\startsection[title={initialization}] - -The general setup command (not to be confused with setups) that deals with the -\MKIV\ tree handler is \type {\setupxml}. There are currently only a few options. - -\cmdfullsetup{setupxml} - -When you set \type {default} to \cmdinternal {cd:text} elements with no setup -assigned will end up as text. When set to \type {hidden} such elements will be -hidden. You can apply the default yourself using: - -\startxmlcmd {\cmdbasicsetup{xmldefaulttotext}} - presets the tree with root \cmdinternal {cd:node} to the handlers set up with - \type {\setupxml} option \cmdinternal{default} -\stopxmlcmd - -You can set \type {compress} to \type {yes} in which case comment is stripped -from the tree when the file is read. - -\startxmlcmd {\cmdbasicsetup{xmlregisterns}} - associates an internal namespace (like \type {mml}) with one given in the - document as \URL\ (like mathml) -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlremapname}} - changes the namespace and tag of the matching elements -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlremapnamespace}} - replaces all references to the given namespace to a new one (applied - recursively) -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlchecknamespace}} - sets the namespace of the matching elements unless a namespace is already set -\stopxmlcmd - -\stopsection - -\startsection[title={helpers}] - -Often an attribute will determine the rendering and this may result in many -tests. Especially when we have multiple attributes that control the output such -tests can become rather extensive and redundant because one gets $n\times m$ or -more such tests. - -Therefore we have a convenient way to map attributes onto for instance strings or -commands. - -\startxmlcmd {\cmdbasicsetup{xmlmapvalue}} - associate a \cmdinternal {cd:text} with a \cmdinternal {cd:category} and - \cmdinternal {cd:name} (alias: \type{\xmlmapval}) -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlvalue}} - expand the value associated with a \cmdinternal {cd:category} and - \cmdinternal {cd:name} and if not resolved, expand to the \cmdinternal - {cd:text} (alias: \type{\xmlval}) -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmldoifelsevalue}} - associate a \cmdinternal {cd:text} with a \cmdinternal {cd:category} and - \cmdinternal {cd:name} -\stopxmlcmd - -This is used as follows. We define a couple of mappings in the same category: - -\starttyping -\xmlmapvalue{emph}{bold} {\bf} -\xmlmapvalue{emph}{italic}{\it} -\stoptyping - -Assuming that we have associated the following setup with the \type {emph} -element, we can say (with \type {#1} being the current element): - -\starttyping -\startxmlsetups demo:emph - \begingroup - \xmlvalue{emph}{\xmlatt{#1}{type}}{} - \endgroup -\stopxmlsetups -\stoptyping - -In this case we have no default. The \type {type} attribute triggers the actions, -as in: - -\starttyping -normal <emph type='bold'>bold</emph> normal -\stoptyping - -This mechanism is not really bound to elements and attributes so you can use this -mechanism for other purposes as well. - -\stopsection - -\stopchapter - -\startchapter[title={Expressions and filters}] - -\startsection[title={path expressions}] - -In the previous chapters we used \cmdinternal {cd:lpath} expressions, which are a variant -on \type {xpath} expressions as in \XSLT\ but in this case more geared towards -usage in \TEX. This mechanisms will be extended when demands are there. - -A path is a sequence of matches. A simple path expression is: - -\starttyping -a/b/c/d -\stoptyping - -Here each \type {/} goes one level deeper. We can go backwards in a lookup with -\type {..}: - -\starttyping -a/b/../d -\stoptyping - -We can also combine lookups, as in: - -\starttyping -a/(b|c)/d -\stoptyping - -A negated lookup is preceded by a \type {!}: - -\starttyping -a/(b|c)/!d -\stoptyping - -A wildcard is specified with a \type {*}: - -\starttyping -a/(b|c)/!d/e/*/f -\stoptyping - -In addition to these tag based lookups we can use attributes: - -\starttyping -a/(b|c)/!d/e/*/f[@type=whatever] -\stoptyping - -An \type {@} as first character means that we are dealing with an attribute. -Within the square brackets there can be boolean expressions: - -\starttyping -a/(b|c)/!d/e/*/f[@type=whatever and @id>100] -\stoptyping - -You can use functions as in: - -\starttyping -a/(b|c)/!d/e/*/f[something(text()) == "oeps"] -\stoptyping - -There are a couple of predefined functions: - -\starttabulate[|l|l|p|] -\NC \type{rootposition} \type{order} \NC number \NC the index of the matched root element (kind of special) \NC \NR -\NC \type{position} \NC number \NC the current index of the matched element in the match list \NC \NR -\NC \type{match} \NC number \NC the current index of the matched element sub list with the same parent \NC \NR -\NC \type{first} \NC number \NC \NC \NR -\NC \type{last} \NC number \NC \NC \NR -\NC \type{index} \NC number \NC the current index of the matched element in its parent list \NC \NR -\NC \type{firstindex} \NC number \NC \NC \NR -\NC \type{lastindex} \NC number \NC \NC \NR -\NC \type{element} \NC number \NC the element's index \NC \NR -\NC \type{firstelement} \NC number \NC \NC \NR -\NC \type{lastelement} \NC number \NC \NC \NR -\NC \type{text} \NC string \NC the textual representation of the matched element \NC \NR -\NC \type{content} \NC table \NC the node of the matched element \NC \NR -\NC \type{name} \NC string \NC the full name of the matched element: namespace and tag \NC \NR -\NC \type{namespace} \type{ns} \NC string \NC the namespace of the matched element \NC \NR -\NC \type{tag} \NC string \NC the tag of the matched element \NC \NR -\NC \type{attribute} \NC string \NC the value of the attribute with the given name of the matched element \NC \NR -\stoptabulate - -There are fundamental differences between \type {position}, \type {match} and -\type {index}. Each step results in a new list of matches. The \type {position} -is the index in this new (possibly intermediate) list. The \type {match} is also -an index in this list but related to the specific match of element names. The -\type {index} refers to the location in the parent element. - -Say that we have: - -\starttyping -<collection> - <resources> - <manual> - <screen>.1.</screen> - <paper>.1.</paper> - </manual> - <manual> - <paper>.2.</paper> - <screen>.2.</screen> - </manual> - <resources> - <resources> - <manual> - <screen>.3.</screen> - <paper>.3.</paper> - </manual> - <resources> -<collection> -\stoptyping - -The following then applies: - -\starttabulate[|l|l|] -\NC \type {collection/resources/manual[position()==1]/paper} \NC \type{.1.} \NC \NR -\NC \type {collection/resources/manual[match()==1]/paper} \NC \type{.1.} \type{.3.} \NC \NR -\NC \type {collection/resources/manual/paper[index()==1]} \NC \type{.2.} \NC \NR -\stoptabulate - -In most cases the \type {position} test is more restrictive than the \type -{match} test. - -You can pass your own functions too. Such functions are defined in the the \type -{xml.expressions} namespace. We have defined a few shortcuts: - -\starttabulate[|l|l|] -\NC \type {find(str,pattern)} \NC \type{string.find} \NC \NR -\NC \type {contains(str)} \NC \type{string.find} \NC \NR -\NC \type {oneof(str,...)} \NC is \type{str} in list \NC \NR -\NC \type {upper(str)} \NC \type{characters.upper} \NC \NR -\NC \type {lower(str)} \NC \type{characters.lower} \NC \NR -\NC \type {number(str)} \NC \type{tonumber} \NC \NR -\NC \type {boolean(str)} \NC \type{toboolean} \NC \NR -\NC \type {idstring(str)} \NC removes leading hash \NC \NR -\NC \type {name(index)} \NC full tag name \NC \NR -\NC \type {tag(index)} \NC tag name \NC \NR -\NC \type {namespace(index)} \NC namespace of tag \NC \NR -\NC \type {text(index)} \NC content \NC \NR -\NC \type {error(str)} \NC quit and show error \NC \NR -\NC \type {quit()} \NC quit \NC \NR -\NC \type {print()} \NC print message \NC \NR -\NC \type {count(pattern)} \NC number of matches \NC \NR -\NC \type {child(pattern)} \NC take child that matches \NC \NR -\stoptabulate - - -You can also use normal \LUA\ functions as long as you make sure that you pass -the right arguments. There are a few predefined variables available inside such -functions. - -\starttabulate[|Tl|l|p|] -\NC \type{list} \NC table \NC the list of matches \NC \NR -\NC \type{l} \NC number \NC the current index in the list of matches \NC \NR -\NC \type{ll} \NC element \NC the current element that matched \NC \NR -\NC \type{order} \NC number \NC the position of the root of the path \NC \NR -\stoptabulate - -The given expression between \type {[]} is converted to a \LUA\ expression so you -can use the usual operators: - -\starttyping -== ~= <= >= < > not and or () -\stoptyping - -In addition, \type {=} equals \type {==} and \type {!=} is the same as \type -{~=}. If you mess up the expression, you quite likely get a \LUA\ error message. - -\stopsection - -\startsection[title={functions as filters}] - -At the \LUA\ end a whole \cmdinternal {cd:lpath} expression results in a (set of) node(s) -with its environment, but that is hardly usable in \TEX. Think of code like: - -\starttyping -for e in xml.collected(xml.load('text.xml'),"title") do - -- e = the element that matched -end -\stoptyping - -The older variant is still supported but you can best use the previous variant. - -\starttyping -for r, d, k in xml.elements(xml.load('text.xml'),"title") do - -- r = root of the title element - -- d = data table - -- k = index in data table -end -\stoptyping - -Here \type {d[k]} points to the \type {title} element and in this case all titles -in the tree pass by. In practice this kind of code is encapsulated in function -calls, like those returning elements one by one, or returning the first or last -match. The result is then fed back into \TEX, possibly after being altered by an -associated setup. We've seen the wrappers to such functions already in a previous -chapter. - -In addition to the previously discussed expressions, one can add so called -filters to the expression, for instance: - -\starttyping -a/(b|c)/!d/e/text() -\stoptyping - -In a filter, the last part of the \cmdinternal {cd:lpath} expression is a -function call. The previous example returns the text of each element \type {e} -that results from matching the expression. When running \TEX\ the following -functions are available. Some are also available when using pure \LUA. In \TEX\ -you can often use one of the macros like \type {\xmlfirst} instead of a \type -{\xmlfilter} with finalizer \type {first()}. The filter can be somewhat faster -but that is hardly noticeable. - -\starttabulate[|l|l|p|] -\NC \type {context()} \NC string \NC the serialized text with \TEX\ catcode regime \NC \NR -%NC \type {ctxtext()} \NC string \NC \NC \NR -\NC \type {function()} \NC string \NC depends on the function \NC \NR -% -\NC \type {name()} \NC string \NC the (remapped) namespace \NC \NR -\NC \type {tag()} \NC string \NC the name of the element \NC \NR -\NC \type {tags()} \NC list \NC the names of the element \NC \NR -% -\NC \type {text()} \NC string \NC the serialized text \NC \NR -\NC \type {upper()} \NC string \NC the serialized text uppercased \NC \NR -\NC \type {lower()} \NC string \NC the serialized text lowercased \NC \NR -\NC \type {stripped()} \NC string \NC the serialized text stripped \NC \NR -\NC \type {lettered()} \NC string \NC the serialized text only letters (cf. \UNICODE) \NC \NR -% -\NC \type {count()} \NC number \NC the number of matches \NC \NR -\NC \type {index()} \NC number \NC the matched index in the current path \NC \NR -\NC \type {match()} \NC number \NC the matched index in the preceding path \NC \NR -% -%NC \type {lowerall()} \NC string \NC \NC \NR -%NC \type {upperall()} \NC string \NC \NC \NR -% -\NC \type {attribute(name)} \NC content \NC returns the attribute with the given name \NC \NR -\NC \type {chainattribute(name)} \NC content \NC sidem, but backtracks till one is found \NC \NR -\NC \type {command(name)} \NC content \NC expands the setup with the given name for each found element \NC \NR -\NC \type {position(n)} \NC content \NC processes the \type {n}\high{th} instance of the found element \NC \NR -\NC \type {all()} \NC content \NC processes all instances of the found element \NC \NR -%NC \type {default} \NC content \NC all \NC \NR -\NC \type {reverse()} \NC content \NC idem in reverse order \NC \NR -\NC \type {first()} \NC content \NC processes the first instance of the found element \NC \NR -\NC \type {last()} \NC content \NC processes the last instance of the found element \NC \NR -\NC \type {concat(...)} \NC content \NC concatinates the match \NC \NC \NR -\NC \type {concatrange(from,to,...)} \NC content \NC concatinates a range of matches \NC \NC \NR -\stoptabulate - -The extra arguments of the concatinators are: \type {separator} (string), \type -{lastseparator} (string) and \type {textonly} (a boolean). - -These filters are in fact \LUA\ functions which means that if needed more of them -can be added. Indeed this happens in some of the \XML\ related \MKIV\ modules, -for instance in the \MATHML\ processor. - -\stopsection - -\startsection[title={example}] - -The number of commands is rather large and if you want to avoid them this is -often possible. Take for instance: - -\starttyping -\xmlall{#1}{/a/b[position()>3]} -\stoptyping - -Alternatively you can use: - -\starttyping -\xmlfilter{#1}{/a/b[position()>3]/all()} -\stoptyping - -and actually this is also faster as internally it avoids a function call. Of -course in practice this is hardly measurable. - -In previous examples we've already seen quite some expressions, and it might be -good to point out that the syntax is modelled after \XSLT\ but is not quite the -same. The reason is that we started with a rather minimal system and have already -styles in use that depend on compatibility. - -\starttyping -namespace:// axis node(set) [expr 1]..[expr n] / ... / filter -\stoptyping - -When we are inside a \CONTEXT\ run, the namespace is \type {tex}. Hoewever, if -you want not to print back to \TEX\ you need to be more explicit. Say that we -typeset examns and have a (not that logical) structure like: - -\starttyping -<question> - <text>...</text> - <answer> - <item>one</item> - <item>two</item> - <item>three</item> - </answer> - <alternative> - <condition>true</condition> - <score>1</score> - </alternative> - <alternative> - <condition>false</condition> - <score>0</score> - </alternative> - <alternative> - <condition>true</condition> - <score>2</score> - </alternative> -</question> -\stoptyping - -Say that we typeset the questions with: - -\starttyping -\startxmlsetups question - \blank - score: \xmlfunction{#1}{totalscore} - \blank - \xmlfirst{#1}{text} - \startitemize - \xmlfilter{#1}{/answer/item/command(answer:item)} - \stopitemize - \endgraf - \blank -\stopxmlsetups -\stoptyping - -Each item in the answer results in a call to: - -\starttyping -\startxmlsetups answer:item - \startitem - \xmlflush{#1} - \endgraf - \xmlfilter{#1}{../../alternative[position()=rootposition()]/ - condition/command(answer:condition)} - \stopitem -\stopxmlsetups -\stoptyping - -\starttyping -\startxmlsetups answer:condition - \endgraf - condition: \xmlflush{#1} - \endgraf -\stopxmlsetups -\stoptyping - -Now, there are two rather special filters here. The first one involves -calculating the total score. As we look forward we use a function to deal with -this. - -\starttyping -\startluacode -function xml.functions.totalscore(root) - local score = 0 - for e in xml.collected(root,"/alternative") do - score = score + xml.filter(e,"xml:///score/number()") or 0 - end - tex.write(score) -end -\stopluacode -\stoptyping - -Watch how we use the namespace to keep the results at the \LUA\ end. - -The second special trick shown here is to limit a match using the current -position of the root (\type {#}) match. - -As you can see, a path expression can be more than just filtering a few nodes. At -the end of this manual you will find a bunch of examples. - -\stopsection - -\startsection[title={tables}] - -If you want to know how the internal \XML\ tables look you can print such a -table: - -\starttyping -print(table.serialize(e)) -\stoptyping - -This produces for instance: - -% s = xml.convert("<document><demo label='whatever'>some text</demo></document>") -% print(table.serialize(xml.filter(s,"demo")[1])) - -\starttyping -t={ - ["at"]={ - ["label"]="whatever", - }, - ["dt"]={ "some text" }, - ["ns"]="", - ["rn"]="", - ["tg"]="demo", -} -\stoptyping - -The \type {rn} entry is the renamed namespace (when renaming is applied). If you -see tags like \type {@pi@} this means that we don't have an element, but (in this -case) a processing instruction. - -\starttabulate[|l|p|] -\NC \type {@rt@} \NC the root element \NC \NR -\NC \type {@dd@} \NC document definition \NC \NR -\NC \type {@cm@} \NC comment, like \type {<!-- whatever -->} \NC \NR -\NC \type {@cd@} \NC so called \type {CDATA} \NC \NR -\NC \type {@pi@} \NC processing instruction, like \type {<?whatever we want ?>} \NC \NR -\stoptabulate - -There are many ways to deal with the content, but in the perspective of \TEX\ -only a few matter. - -\starttabulate[|l|p|] -\NC \type {xml.sprint(e)} \NC print the content to \TEX\ and apply setups if needed \NC \NR -\NC \type {xml.tprint(e)} \NC print the content to \TEX\ (serialize elements verbose) \NC \NR -\NC \type {xml.cprint(e)} \NC print the content to \TEX\ (used for special content) \NC \NR -\stoptabulate - -Keep in mind that anything low level that you uncover is not part of the official -interface unless mentioned in this manual. - -\stopsection - -\stopchapter - -\startchapter[title={Tips and tricks}] - -\startsection[title={tracing}] - -It can be hard to debug code as much happens kind of behind the screens. -Therefore we have a couple of tracing options. Of course you can typeset some -status information, using for instance: - -\startxmlcmd {\cmdbasicsetup{xmlshow}} - typeset the tree given by \cmdinternal {cd:node} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlinfo}} - typeset the name if the element given by \cmdinternal {cd:node} -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlpath}} - returns the complete path (including namespace prefix and index) of the - given \cmdinternal {cd:node} -\stopxmlcmd - -\startbuffer[demo] -<?xml version "1.0"?> -<document> - <section> - <content> - <p>first</p> - <p><b>second</b></p> - </content> - </section> - <section> - <content> - <p><b>third</b></p> - <p>fourth</p> - </content> - </section> -</document> -\stopbuffer - -Say that we have the following \XML: - -\typebuffer[demo] - -and the next definitions: - -\startbuffer -\startxmlsetups xml:demo:base - \xmlsetsetup{#1}{p|b}{xml:demo:*} -\stopxmlsetups - -\startxmlsetups xml:demo:p - \xmlflush{#1} - \par -\stopxmlsetups - -\startxmlsetups xml:demo:b - \par - \xmlpath{#1} : \xmlflush{#1} - \par -\stopxmlsetups - -\xmlregisterdocumentsetup{example-10}{xml:demo:base} - -\xmlprocessbuffer{example-10}{demo}{} -\stopbuffer - -\typebuffer - -This will give us: - -\blank \startpacked \getbuffer \stoppacked \blank - -If you use \type {\xmlshow} you will get a complete subtree which can -be handy for tracing but can also lead to large documents. - -We also have a bunch of trackers that can be enabled, like: - -\starttyping -\enabletrackers[xml.show,xml.parse] -\stoptyping - -The full list (currently) is: - -\starttabulate[|lT|p|] -\NC xml.entities \NC show what entities are seen and replaced \NC \NR -\NC xml.path \NC show the result of parsing an lpath expression \NC \NR -\NC xml.parse \NC show stepwise resolving of expressions \NC \NR -\NC xml.profile \NC report all parsed lpath expressions (in the log) \NC \NR -\NC xml.remap \NC show what namespaces are remapped \NC \NR -\NC lxml.access \NC report errors with respect to resolving (symbolic) nodes \NC \NR -\NC lxml.comments \NC show the comments that are encountered (if at all) \NC \NR -\NC lxml.loading \NC show what files are loaded and converted \NC \NR -\NC lxml.setups \NC show what setups are being associated to elements \NC \NR -\stoptabulate - -In one of our workflows we produce books from \XML\ where the (educational) -content is organized in many small files. Each book has about 5~chapters and each -chapter is made of sections that contain text, exercises, resources, etc.\ and so -the document is assembled from thousands of files (don't worry, runtime inclusion -is pretty fast). In order to see where in the sources content resides we can -trace the filename. - -\startxmlcmd {\cmdbasicsetup{xmlinclusion}} - returns the file where the node comes from -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlinclusions}} - returns the list of files where the node comes from -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlbadinclusions}} - returns a list of files that were not included due to some problem -\stopxmlcmd - -Of course you have to make sure that these names end up somewhere visible, for -instance in the margin. - -\stopsection - -\startsection[title={expansion}] - -For novice users the concept of expansion might sound frightening and to some -extend it is. However, it is important enough to spend some words on it here. - -It is good to realize that most setups are sort of immediate. When one setup is -issued, it can call another one and so on. Normally you won't notice that but -there are cases where that can be a problem. In \TEX\ you can define a macro, -take for instance: - -\starttyping -\startxmlsetups xml:foo - \def\foobar{\xmlfirst{#1}{/bar}} -\stopxmlsetups -\stoptyping - -you store the reference top node \type {bar} in \type {\foobar} maybe for later use. In -this case the content is not yet fetched, it will be done when \type {\foobar} is -called. - -\starttyping -\startxmlsetups xml:foo - \edef\foobar{\xmlfirst{#1}{/bar}} -\stopxmlsetups -\stoptyping - -Here the content of \type {bar} becomes the body of the macro. But what if -\type {bar} itself contains elements that also contain elements. When there -is a setup for \type {bar} it will be triggered and so on. - -When that setup looks like: - -\starttyping -\startxmlsetups xml:bar - \def\barfoo{\xmlflush{#1}} -\stopxmlsetups -\stoptyping - -Here we get something like: - -\starttyping -\foobar => {\def\barfoo{...}} -\stoptyping - -When \type {\barfoo} is not defined we get an error and when it is known and expands -to something weird we might also get an error. - -Especially when you don't know what content can show up, this can result in errors -when an expansion fails, for example because some macro being used is not defined. -To prevent this we can define a macro: - -\starttyping -\starttexdefinition unexpanded xml:bar:macro #1 - \def\barfoo{\xmlflush{#1}} -\stoptexdefinition - -\startxmlsetups xml:bar - \texdefinition{xml:bar:macro}{#1} -\stopxmlsetups -\stoptyping - -The setup \type {xml:bar} will still expand but the replacement text now is just the -call to the macro, think of: - -\starttyping -\foobar => {\texdefinition{xml:bar:macro}{#1}} -\stoptyping - -But this is often not needed, most \CONTEXT\ commands can handle the expansions -quite well but it's good to know that there is a way out. So, now to some -examples. Imagine that we have an \XML\ file that looks as follows: - -\starttyping -<?xml version='1.0' ?> -<demo> - <chapter> - <title>Some <em>short</em> title</title> - <content> - zeta - <index> - <key>zeta</key> - <content>zeta again</content> - </index> - alpha - <index> - <key>alpha</key> - <content>alpha <em>again</em></content> - </index> - gamma - <index> - <key>gamma</key> - <content>gamma</content> - </index> - beta - <index> - <key>beta</key> - <content>beta</content> - </index> - delta - <index> - <key>delta</key> - <content>delta</content> - </index> - done! - </content> - </chapter> -</demo> -\stoptyping - -There are a few structure related elements here: a chapter (with its list entry) -and some index entries. Both are multipass related and therefore travel around. -This means that when we let data end up in the auxiliary file, we need to make -sure that we end up with either expanded data (i.e.\ no references to the \XML\ -tree) or with robust forward and backward references to elements in the tree. - -Here we discuss three approaches (and more may show up later): pushing \XML\ into -the auxiliary file and using references to elements either or not with an -associated setup. We control the variants with a switch. - -\starttyping -\newcount\TestMode - -\TestMode=0 % expansion=xml -\TestMode=1 % expansion=yes, index, setup -\TestMode=2 % expansion=yes -\stoptyping - -We apply a couple of setups: - -\starttyping -\startxmlsetups xml:mysetups - \xmlsetsetup{\xmldocument}{demo|index|content|chapter|title|em}{xml:*} -\stopxmlsetups - -\xmlregistersetup{xml:mysetups} -\stoptyping - -The main document is processed with: - -\starttyping -\startxmlsetups xml:demo - \xmlflush{#1} - \subject{contents} - \placelist[chapter][criterium=all] - \subject{index} - \placeregister[index][criterium=all] - \page % else buffer is forgotten when placing header -\stopxmlsetups -\stoptyping - -First we show three alternative ways to deal with the chapter. The first case -expands the \XML\ reference so that we have an \XML\ stream in the auxiliary -file. This stream is processed as a small independent subfile when needed. The -second case registers a reference to the current element (\type {#1}). This means -that we have access to all data of this element, like attributes, title and -content. What happens depends on the given setup. The third variant does the same -but here the setup is part of the reference. - -\starttyping -\startxmlsetups xml:chapter - \ifcase \TestMode - % xml code travels around - \setuphead[chapter][expansion=xml] - \startchapter[title=eh: \xmltext{#1}{title}] - \xmlfirst{#1}{content} - \stopchapter - \or - % index is used for access via setup - \setuphead[chapter][expansion=yes,xmlsetup=xml:title:flush] - \startchapter[title=\xmlgetindex{#1}] - \xmlfirst{#1}{content} - \stopchapter - \or - % tex call to xml using index is used - \setuphead[chapter][expansion=yes] - \startchapter[title=hm: \xmlreference{#1}{xml:title:flush}] - \xmlfirst{#1}{content} - \stopchapter - \fi -\stopxmlsetups - -\startxmlsetups xml:title:flush - \xmltext{#1}{title} -\stopxmlsetups -\stoptyping - -We need to deal with emphasis and the content of the chapter. - -\starttyping -\startxmlsetups xml:em - \begingroup\em\xmlflush{#1}\endgroup -\stopxmlsetups - -\startxmlsetups xml:content - \xmlflush{#1} -\stopxmlsetups -\stoptyping - -A similar approach is followed with the index entries. Watch how we use the -numbered entries variant (in this case we could also have used just \type -{entries} and \type {keys}). - -\starttyping -\startxmlsetups xml:index - \ifcase \TestMode - \setupregister[index][expansion=xml,xmlsetup=] - \setstructurepageregister - [index] - [entries:1=\xmlfirst{#1}{content}, - keys:1=\xmltext{#1}{key}] - \or - \setupregister[index][expansion=yes,xmlsetup=xml:index:flush] - \setstructurepageregister - [index] - [entries:1=\xmlgetindex{#1}, - keys:1=\xmltext{#1}{key}] - \or - \setupregister[index][expansion=yes,xmlsetup=] - \setstructurepageregister - [index] - [entries:1=\xmlreference{#1}{xml:index:flush}, - keys:1=\xmltext{#1}{key}] - \fi -\stopxmlsetups - -\startxmlsetups xml:index:flush - \xmlfirst{#1}{content} -\stopxmlsetups -\stoptyping - -Instead of this flush, you can use the predefined setup \type {xml:flush} -unless it is overloaded by you. - -The file is processed by: - -\starttyping -\starttext - \xmlprocessfile{main}{test.xml}{} -\stoptext -\stoptyping - -We don't show the result here. If you're curious what the output is, you can test -it yourself. In that case it also makes sense to peek into the \type {test.tuc} -file to see how the information travels around. The \type {metadata} fields carry -information about how to process the data. - -The first case, the \XML\ expansion one, is somewhat special in the sense that -internally we use small pseudo files. You can control the rendering by tweaking -the following setups: - -\starttyping -\startxmlsetups xml:ctx:sectionentry - \xmlflush{#1} -\stopxmlsetups - -\startxmlsetups xml:ctx:registerentry - \xmlflush{#1} -\stopxmlsetups -\stoptyping - -{\em When these methods work out okay the other structural elements will be -dealt with in a similar way.} - -\stopsection - -\startsection[title={special cases}] - -Normally the content will be flushed under a special (so called) catcode regime. -This means that characters that have a special meaning in \TEX\ will have no such -meaning in an \XML\ file. If you want content to be treated as \TEX\ code, you can -use one of the following: - -\startxmlcmd {\cmdbasicsetup{xmlflushcontext}} - flush the given \cmdinternal {cd:node} using the \TEX\ character - interpretation scheme -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlcontext}} - flush the match of \cmdinternal {cd:lpath} for the given \cmdinternal - {cd:node} using the \TEX\ character interpretation scheme -\stopxmlcmd - -We use this in cases like: - -\starttyping -.... - \xmlsetsetup {#1} { - tm|texformula| - } {xml:*} -.... - -\startxmlsetups xml:tm - \mathematics{\xmlflushcontext{#1}} -\stopxmlsetups - -\startxmlsetups xml:texformula - \placeformula\startformula\xmlflushcontext{#1}\stopformula -\stopxmlsetups -\stoptyping - -\stopsection - -\startsection[title={collecting}] - -Say that your document has - -\starttyping -<table> - <tr> - <td>foo</td> - <td>bar<td> - </tr> -</table> -\stoptyping - -And that you need to convert that to \TEX\ speak like: - -\starttyping -\bTABLE - \bTR - \bTD foo \eTD - \bTD bar \eTD - \eTR -\eTABLE -\stoptyping - -A simple mapping is: - -\starttyping -\startxmlsetups xml:table - \bTABLE \xmlflush{#1} \eTABLE -\stopxmlsetups -\startxmlsetups xml:tr - \bTR \xmlflush{#1} \eTR -\stopxmlsetups -\startxmlsetups xml:td - \bTD \xmlflush{#1} \eTD -\stopxmlsetups -\stoptyping - -The \type {\bTD} command is a so called delimited command which means that it -picks up its argument by looking for an \type {\eTD}. For the simple case here -this works quite well because the flush is inside the pair. This is not the case -in the following variant: - -\starttyping -\startxmlsetups xml:td:start - \bTD -\stopxmlsetups -\startxmlsetups xml:td:stop - \eTD -\stopxmlsetups -\startxmlsetups xml:td - \xmlsetup{#1}{xml:td:start} - \xmlflush{#1} - \xmlsetup{#1}{xml:td:stop} -\stopxmlsetups -\stoptyping - -When for some reason \TEX\ gets confused you can revert to a mechanism that -collects content. - -\starttyping -\startxmlsetups xml:td:start - \startcollect - \bTD - \stopcollect -\stopxmlsetups -\startxmlsetups xml:td:stop - \startcollect - \eTD - \stopcollect -\stopxmlsetups -\startxmlsetups xml:td - \startcollecting - \xmlsetup{#1}{xml:td:start} - \xmlflush{#1} - \xmlsetup{#1}{xml:td:stop} - \stopcollecting -\stopxmlsetups -\stoptyping - -You can even implement solutions that effectively do this: - -\starttyping -\startcollecting - \startcollect \bTABLE \stopcollect - \startcollect \bTR \stopcollect - \startcollect \bTD \stopcollect - \startcollect foo\stopcollect - \startcollect \eTD \stopcollect - \startcollect \bTD \stopcollect - \startcollect bar\stopcollect - \startcollect \eTD \stopcollect - \startcollect \eTR \stopcollect - \startcollect \eTABLE \stopcollect -\stopcollecting -\stoptyping - -Of course you only need to go that complex when the situation demands it. Here is -another weird one: - -\starttyping -\startcollecting - \startcollect \setupsomething[\stopcollect - \startcollect foo=\stopcollect - \startcollect FOO,\stopcollect - \startcollect bar=\stopcollect - \startcollect BAR,\stopcollect - \startcollect ]\stopcollect -\stopcollecting -\stoptyping - -\stopsection - -\startsection[title={selectors and injectors}] - -This section describes a bit special feature, one that we needed for a project -where we could not touch the original content but could add specific sections for -our own purpose. Hopefully the example demonstrates its useability. - -\enabletrackers[lxml.selectors] - -\startbuffer[foo] -<?xml version="1.0" encoding="UTF-8"?> - -<?context-directive message info 1: this is a demo file ?> -<?context-message-directive info 2: this is a demo file ?> - -<one> - <two> - <?context-select begin t1 t2 t3 ?> - <three> - t1 t2 t3 - <?context-directive injector crlf t1 ?> - t1 t2 t3 - </three> - <?context-select end ?> - <?context-select begin t4 ?> - <four> - t4 - </four> - <?context-select end ?> - <?context-select begin t8 ?> - <four> - t8.0 - t8.0 - </four> - <?context-select end ?> - <?context-include begin t4 ?> - <!-- - <three> - t4.t3 - <?context-directive injector crlf t1 ?> - t4.t3 - </three> - --> - <three> - t3 - <?context-directive injector crlf t1 ?> - t3 - </three> - <?context-include end ?> - <?context-select begin t8 ?> - <four> - t8.1 - t8.1 - </four> - <?context-select end ?> - <?context-select begin t8 ?> - <four> - t8.2 - t8.2 - </four> - <?context-select end ?> - <?context-select begin t4 ?> - <four> - t4 - t4 - </four> - <?context-select end ?> - <?context-directive injector page t7 t8 ?> - foo - <?context-directive injector blank t1 ?> - bar - <?context-directive injector page t7 t8 ?> - bar - </two> -</one> -\stopbuffer - -\typebuffer[foo] - -First we show how to plug in a directive. Processing instructions like the -following are normally ignored by an \XML\ processor, unless they make sense -to it. - -\starttyping -<?context-directive message info 1: this is a demo file ?> -<?context-message-directive info 2: this is a demo file ?> -\stoptyping - -We can define a message handler as follows: - -\startbuffer -\def\MyMessage#1#2#3{\writestatus{#1}{#2 #3}} - -\xmlinstalldirective{message}{MyMessage} -\stopbuffer - -\typebuffer \getbuffer - -When this file is processed you will see this on the console: - -\starttyping -info > 1: this is a demo file -info > 2: this is a demo file -\stoptyping - -The file has some sections that can be used or ignored. The recipe for -obeying \type {t1} and \type {t4} is the following: - -\startbuffer -\xmlsetinjectors[t1] -\xmlsetinjectors[t4] - -\startxmlsetups xml:initialize - \xmlapplyselectors{#1} - \xmlsetsetup {#1} { - one|two|three|four - } {xml:*} -\stopxmlsetups - -\xmlregistersetup{xml:initialize} - -\startxmlsetups xml:one - [ONE \xmlflush{#1} ONE] -\stopxmlsetups - -\startxmlsetups xml:two - [TWO \xmlflush{#1} TWO] -\stopxmlsetups - -\startxmlsetups xml:three - [THREE \xmlflush{#1} THREE] -\stopxmlsetups - -\startxmlsetups xml:four - [FOUR \xmlflush{#1} FOUR] -\stopxmlsetups -\stopbuffer - -\typebuffer \getbuffer - -This typesets: - -\startnarrower -\xmlprocessbuffer{main}{foo}{} -\stopnarrower - -The include coding is kind of special: it permits adding content (in a comment) -and ignoring the rest so that we indeed can add something without interfering -with the original. Of course in a normal workflow such messy solutions are -not needed, but alas, often workflows are not that clean, especially when one -has no real control over the source. - -\startxmlcmd {\cmdbasicsetup{xmlsetinjectors}} - enables a list of injectors that will be used -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlresetinjectors}} - resets the list of injectors -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlinjector}} - expands an injection (command); normally this one is only used - (in some setup) or for testing -\stopxmlcmd - -\startxmlcmd {\cmdbasicsetup{xmlapplyselectors}} - analyze the tree \cmdinternal {cd:node} for marked sections that - will be injected -\stopxmlcmd - -We have some injections predefined: - -\starttyping -\startsetups xml:directive:injector:page - \page -\stopsetups - -\startsetups xml:directive:injector:column - \column -\stopsetups - -\startsetups xml:directive:injector:blank - \blank -\stopsetups -\stoptyping - -In the example we see: - -\starttyping -<?context-directive injector page t7 t8 ?> -\stoptyping - -When we set \type {\xmlsetinjector[t7]} a pagebreak will injected in that spot. -Tags like \type {t7}, \type {t8} etc.\ can represent versions. - -\stopsection - -\startsection[title=preprocessing] - -% local match = lpeg.match -% local replacer = lpeg.replacer("BAD TITLE:","<bold>BAD TITLE:</bold>") -% -% function lxml.preprocessor(data,settings) -% return match(replacer,data) -% end - -\startbuffer[pre-code] -\startluacode - function lxml.preprocessor(data,settings) - return string.find(data,"BAD TITLE:") - and string.gsub(data,"BAD TITLE:","<bold>BAD TITLE:</bold>") - or data - end -\stopluacode -\stopbuffer - -\startbuffer[pre-xml] -\startxmlsetups pre:demo:initialize - \xmlsetsetup{#1}{*}{pre:demo:*} -\stopxmlsetups - -\xmlregisterdocumentsetup{pre:demo}{pre:demo:initialize} - -\startxmlsetups pre:demo:root - \xmlflush{#1} -\stopxmlsetups - -\startxmlsetups pre:demo:bold - \begingroup\bf\xmlflush{#1}\endgroup -\stopxmlsetups - -\starttext - \xmlprocessbuffer{pre:demo}{demo}{} -\stoptext -\stopbuffer - -Say that you have the following \XML\ setup: - -\typebuffer[pre-xml] - -and that (such things happen) the input looks like this: - -\startbuffer[demo] -<root> -BAD TITLE: crap crap crap ... - -BAD TITLE: crap crap crap ... -</root> -\stopbuffer - -\typebuffer[demo] - -You can then clean up these \type {BAD TITLE}'s as follows: - -\typebuffer[pre-code] - -and get as result: - -\start \getbuffer[pre-code,pre-xml] \stop - -The preprocessor function gets as second argument the current settings, an d -the field \type {currentresource} can be used to limit the actions to -specific resources, in our case it's \type {buffer: demo}. Afterwards you can -reset the proprocessor with: - -\startluacode -lxml.preprocessor = nil -\stopluacode - -Future versions might give some more control over preprocessors. For now consider -it to be a quick hack. - -\stopsection - -\stopchapter - -\startchapter[title={Lookups using lpaths}] - -\startsection[title={introduction}] - -There is not that much system in the following examples. They resulted from tests -with different documents. The current implementation evolved out of the -experimental code. For instance, I decided to add the multiple expressions in row -handling after a few email exchanges with Jean|-|Michel Huffen. - -One of the main differences between the way \XSLT\ resolves a path and our way is -the anchor. Take: - -\starttyping -/something -something -\stoptyping - -The first one anchors in the current (!) element so it will only consider direct -children. The second one does a deep lookup and looks at the descendants as well. -Furthermore we have a few extra shortcuts like \type {**} in \type {a/**/b} which -represents all descendants. - -The expressions (between square brackets) has to be valid \LUA\ and some -preprocessing is done to resolve the built in functions. So, you might use code -like: - -\starttyping -my_lpeg_expression:match(text()) == "whatever" -\stoptyping - -given that \type {my_lpeg_expression} is known. In the examples below we use the -visualizer to show the steps. Some are shown more than once as part of a set. - -\stopsection - -\startsection[title={special cases}] - -\xmllshow{} -\xmllshow{*} -\xmllshow{.} -\xmllshow{/} - -\stopsection - -\startsection[title={wildcards}] - -\xmllshow{*} -\xmllshow{*:*} -\xmllshow{/*} -\xmllshow{/*:*} -\xmllshow{*/*} -\xmllshow{*:*/*:*} - -\xmllshow{a/*} -\xmllshow{a/*:*} -\xmllshow{/a/*} -\xmllshow{/a/*:*} - -\xmllshow{/*} -\xmllshow{/**} -\xmllshow{/***} - -\stopsection - -\startsection[title={multiple steps}] - -\xmllshow{answer} -\xmllshow{answer/test/*} -\xmllshow{answer/test/child::} -\xmllshow{answer/*} -\xmllshow{answer/*[tag()='p' and position()=1 and text()!='']} - -\stopsection - -\startsection[title={pitfals}] - -\xmllshow{[oneof(lower(@encoding),'tex','context','ctx')]} -\xmllshow{.[oneof(lower(@encoding),'tex','context','ctx')]} - -\stopsection - -\startsection[title={more special cases}] - -\xmllshow{**} -\xmllshow{*} -\xmllshow{..} -\xmllshow{.} -\xmllshow{//} -\xmllshow{/} - -\xmllshow{**/} -\xmllshow{**/*} -\xmllshow{**/.} -\xmllshow{**//} - -\xmllshow{*/} -\xmllshow{*/*} -\xmllshow{*/.} -\xmllshow{*//} - -\xmllshow{/**/} -\xmllshow{/**/*} -\xmllshow{/**/.} -\xmllshow{/**//} - -\xmllshow{/*/} -\xmllshow{/*/*} -\xmllshow{/*/.} -\xmllshow{/*//} - -\xmllshow{./} -\xmllshow{./*} -\xmllshow{./.} -\xmllshow{.//} - -\xmllshow{../} -\xmllshow{../*} -\xmllshow{../.} -\xmllshow{..//} - -\stopsection - -\startsection[title={more wildcards}] - -\xmllshow{one//two} -\xmllshow{one/*/two} -\xmllshow{one/**/two} -\xmllshow{one/***/two} -\xmllshow{one/x//two} -\xmllshow{one//x/two} -\xmllshow{//x/two} - -\stopsection - -\startsection[title={special axis}] - -\xmllshow{descendant::whocares/ancestor::whoknows} -\xmllshow{descendant::whocares/ancestor::whoknows/parent::} -\xmllshow{descendant::whocares/ancestor::} -\xmllshow{child::something/child::whatever/child::whocares} -\xmllshow{child::something/child::whatever/child::whocares|whoknows} -\xmllshow{child::something/child::whatever/child::(whocares|whoknows)} -\xmllshow{child::something/child::whatever/child::!(whocares|whoknows)} -\xmllshow{child::something/child::whatever/child::(whocares)} -\xmllshow{child::something/child::whatever/child::(whocares)[position()>2]} -\xmllshow{child::something/child::whatever[position()>2][position()=1]} -\xmllshow{child::something/child::whatever[whocares][whocaresnot]} -\xmllshow{child::something/child::whatever[whocares][not(whocaresnot)]} -\xmllshow{child::something/child::whatever/self::whatever} - -There is also \type {last-match::} that starts with the last found set of nodes. -This can save some runtime when you do lots of tests combined with a same check -afterwards. - -\stopsection - -\startsection[title={some more examples}] - -\xmllshow{/something/whatever} -\xmllshow{something/whatever} -\xmllshow{/**/whocares} -\xmllshow{whoknows/whocares} -\xmllshow{whoknows} -\xmllshow{whocares[contains(text(),'f') or contains(text(),'g')]} -\xmllshow{whocares/first()} -\xmllshow{whocares/last()} -\xmllshow{whatever/all()} -\xmllshow{whocares/position(2)} -\xmllshow{whocares/position(-2)} -\xmllshow{whocares[1]} -\xmllshow{whocares[-1]} -\xmllshow{whocares[2]} -\xmllshow{whocares[-2]} -\xmllshow{whatever[3]/attribute(id)} -\xmllshow{whatever[2]/attribute('id')} -\xmllshow{whatever[3]/text()} -\xmllshow{/whocares/first()} -\xmllshow{/whocares/last()} - -\xmllshow{xml://whatever/all()} -\xmllshow{whatever/all()} -\xmllshow{//whocares} -\xmllshow{..[2]} -\xmllshow{../*[2]} - -\xmllshow{/(whocares|whocaresnot)} -\xmllshow{/!(whocares|whocaresnot)} -\xmllshow{/!whocares} - -\xmllshow{/interface/command/command(xml:setups:register)} -\xmllshow{/interface/command[@name='xxx']/command(xml:setups:typeset)} -\xmllshow{/arguments/*} -\xmllshow{/sequence/first()} -\xmllshow{/arguments/text()} -\xmllshow{/sequence/variable/first()} -\xmllshow{/interface/define[@name='xxx']/first()} -\xmllshow{/parameter/command(xml:setups:parameter:measure)} - -\xmllshow{/(*:library|figurelibrary)/*:figure/*:label} -\xmllshow{/(*:library|figurelibrary)/figure/*:label} -\xmllshow{/(*:library|figurelibrary)/figure/label} -\xmllshow{/(*:library|figurelibrary)/figure:*/label} - -\xmlshow {whatever//br[tag(1)='br']} - -\stopsection - -\stopchapter - -\startchapter[title=Examples] - -\startsection[title=attribute chains] - -In \CSS, when an attribute is not present, the parent element is checked, and when -not found again, the lookup follows the chain till a match is found or the root is -reached. The following example demonstrates how such a chain lookup works. - -\startbuffer[test] -<something mine="1" test="one" more="alpha"> - <whatever mine="2" test="two"> - <whocares mine="3"> - <!-- this is a test --> - </whocares> - </whatever> -</something> -\stopbuffer - -\typebuffer[test] - -We apply the following setups to this tree: - -\startbuffer[setups] -\startxmlsetups xml:common - [ - \xmlchainatt{#1}{mine}, - \xmlchainatt{#1}{test}, - \xmlchainatt{#1}{more}, - \xmlchainatt{#1}{none} - ]\par -\stopxmlsetups - -\startxmlsetups xml:something - something: \xmlsetup{#1}{xml:common} - \xmlflush{#1} -\stopxmlsetups - -\startxmlsetups xml:whatever - whatever: \xmlsetup{#1}{xml:common} - \xmlflush{#1} -\stopxmlsetups - -\startxmlsetups xml:whocares - whocares: \xmlsetup{#1}{xml:common} - \xmlflush{#1} -\stopxmlsetups - -\startxmlsetups xml:mysetups - \xmlsetsetup{#1}{something|whatever|whocares}{xml:*} -\stopxmlsetups - -\xmlregisterdocumentsetup{example-1}{xml:mysetups} - -\xmlprocessbuffer{example-1}{test}{} -\stopbuffer - -\typebuffer[setups] - -This gives: - -\start - \getbuffer[setups] -\stop - -\stopsection - -\startsection[title=conditional setups] - -Say that we have this code: - -\starttyping -\xmldoifelse {#1} {/what[@a='1']} { - \xmlfilter {#1} {/what/command('xml:yes')} -} { - \xmlfilter {#1} {/what/command('xml:nop')} -} -\stoptyping - -Here we first determine if there is a child \type {what} with attribute \type {a} -set to \type {1}. Depending on the outcome again we check the child nodes for -being named \type {what}. A faster solution which also takes less code is this: - -\starttyping -\xmlfilter {#1} {/what[@a='1']/command('xml:yes','xml:nop')} -\stoptyping - -\stopsection - -\startsection[title=manipulating] - -Assume that we have the following \XML\ data: - -\startbuffer[test] -<A> - <B>right</B> - <B>wrong</B> -</A> -\stopbuffer - -\typebuffer[test] - -But, instead of \type {right} we want to see \type {okay}. We can do that with a -finalizer: - -\startbuffer -\startluacode -local rehash = { - ["right"] = "okay", -} - -function xml.finalizers.tex.Okayed(collected,what) - for i=1,#collected do - if what == "all" then - local str = xml.text(collected[i]) - context(rehash[str] or str) - else - context(str) - end - end -end -\stopluacode -\stopbuffer - -\typebuffer \getbuffer - -\startbuffer -\startxmlsetups xml:A - \xmlflush{#1} -\stopxmlsetups - -\startxmlsetups xml:B - (It's \xmlfilter{#1}{./Okayed("all")}) -\stopxmlsetups - -\startxmlsetups xml:testsetups - \xmlsetsetup{#1}{A|B}{xml:*} -\stopxmlsetups - -\xmlregisterdocumentsetup{example-2}{xml:testsetups} -\xmlprocessbuffer{example-2}{test}{} -\stopbuffer - -\typebuffer - -The result is: \start \inlinebuffer \stop - -\stopsection - -\startsection[title=cross referencing] - -A rather common way to add cross references to \XML\ files is to borrow the -asymmetrical id's from \HTML. This means that one cannot simply use a value -of (say) \type {href} to locate an \type {id}. The next example came up on -the \CONTEXT\ mailing list. - -\startbuffer[test] -<doc> - <p>Text - <a href="#fn1" class="footnoteref" id="fnref1"><sup>1</sup></a> and - <a href="#fn2" class="footnoteref" id="fnref2"><sup>2</sup></a> - </p> - <div class="footnotes"> - <hr /> - <ol> - <li id="fn1"><p>A footnote.<a href="#fnref1">↩</a></p></li> - <li id="fn2"><p>A second footnote.<a href="#fnref2">↩</a></p></li> - </ol> - </div> -</doc> -\stopbuffer - -\typebuffer[test] - -We give two variants for dealing with such references. The first solution does -lookups and depending on the size of the file can be somewhat inefficient. - -\startbuffer -\startxmlsetups xml:doc - \blank - \xmlflush{#1} - \blank -\stopxmlsetups - -\startxmlsetups xml:p - \xmlflush{#1} -\stopxmlsetups - -\startxmlsetups xml:footnote - (variant 1)\footnote - {\xmlfirst - {example-3-1} - {div[@class='footnotes']/ol/li[@id='\xmlrefatt{#1}{href}']}} -\stopxmlsetups - -\startxmlsetups xml:initialize - \xmlsetsetup{#1}{p|doc}{xml:*} - \xmlsetsetup{#1}{a[@class='footnoteref']}{xml:footnote} - \xmlsetsetup{#1}{div[@class='footnotes']}{xml:nothing} -\stopxmlsetups - -\xmlresetdocumentsetups{*} -\xmlregisterdocumentsetup{example-3-1}{xml:initialize} - -\xmlprocessbuffer{example-3-1}{test}{} -\stopbuffer - -\typebuffer - -This will typeset two footnotes. - -\getbuffer - -The second variant collects the references so that the time spend on lookups is -less. - -\startbuffer -\startxmlsetups xml:doc - \blank - \xmlflush{#1} - \blank -\stopxmlsetups - -\startxmlsetups xml:p - \xmlflush{#1} -\stopxmlsetups - -\startluacode - userdata.notes = {} -\stopluacode - -\startxmlsetups xml:collectnotes - \ctxlua{userdata.notes['\xmlrefatt{#1}{id}'] = '#1'} -\stopxmlsetups - -\startxmlsetups xml:footnote - (variant 2)\footnote - {\xmlflush - {\cldcontext{userdata.notes['\xmlrefatt{#1}{href}']}}} -\stopxmlsetups - -\startxmlsetups xml:initialize - \xmlsetsetup{#1}{p|doc}{xml:*} - \xmlsetsetup{#1}{a[@class='footnoteref']}{xml:footnote} - \xmlfilter{#1}{div[@class='footnotes']/ol/li/command(xml:collectnotes)} - \xmlsetsetup{#1}{div[@class='footnotes']}{} -\stopxmlsetups - -\xmlregisterdocumentsetup{example-3-2}{xml:initialize} - -\xmlprocessbuffer{example-3-2}{test}{} -\stopbuffer - -\typebuffer - -This will again typeset two footnotes: - -\getbuffer - -\stopsection - -\startsection[title=mapping values] - -One way to process options \type {frame} in the example below is to map the -values to values known by \CONTEXT. - -\startbuffer[test] -<a> - <nattable frame="on"> - <tr><td>#1</td><td>#2</td><td>#3</td><td>#4</td></tr> - <tr><td>#5</td><td>#6</td><td>#7</td><td>#8</td></tr> - </nattable> - <nattable frame="off"> - <tr><td>#1</td><td>#2</td><td>#3</td><td>#4</td></tr> - <tr><td>#5</td><td>#6</td><td>#7</td><td>#8</td></tr> - </nattable> - <nattable frame="no"> - <tr><td>#1</td><td>#2</td><td>#3</td><td>#4</td></tr> - <tr><td>#5</td><td>#6</td><td>#7</td><td>#8</td></tr> - </nattable> -</a> -\stopbuffer - -\typebuffer[test] - -\startbuffer -\startxmlsetups xml:a - \xmlflush{#1} -\stopxmlsetups - -\xmlmapvalue {nattable:frame} {on} {on} -\xmlmapvalue {nattable:frame} {yes} {on} -\xmlmapvalue {nattable:frame} {off} {off} -\xmlmapvalue {nattable:frame} {no} {off} - -\startxmlsetups xml:nattable - \startplacetable[title=#1] - \setupTABLE[frame=\xmlval{nattable:frame}{\xmlatt{#1}{frame}}{on}]% - \bTABLE - \xmlflush{#1} - \eTABLE - \stopplacetable -\stopxmlsetups - -\startxmlsetups xml:tr - \bTR - \xmlflush{#1} - \eTR -\stopxmlsetups - -\startxmlsetups xml:td - \bTD - \xmlflush{#1} - \eTD -\stopxmlsetups - -\startxmlsetups xml:testsetups - \xmlsetsetup{example-4}{a|nattable|tr|td|}{xml:*} -\stopxmlsetups - -\xmlregisterdocumentsetup{example-4}{xml:testsetups} - -\xmlprocessbuffer{example-4}{test}{} -\stopbuffer - -The \type {\xmlmapvalue} mechanism is rather efficient and involves a minimum -of testing. - -\typebuffer - -We get: - -\getbuffer - -\stopsection - -\startsection[title=using \LUA] - -In this example we demonstrate how you can delegate rendering to \LUA. We -will construct a so called extreme table. The input is: - -\startbuffer[demo] -<?xml version="1.0" encoding="utf-8"?> - -<a> - <b> <c>1</c> <d>Text</d> </b> - <b> <c>2</c> <d>More text</d> </b> - <b> <c>2</c> <d>Even more text</d> </b> - <b> <c>2</c> <d>And more</d> </b> - <b> <c>3</c> <d>And even more</d> </b> - <b> <c>2</c> <d>The last text</d> </b> -</a> -\stopbuffer - -\typebuffer[demo] - -The processor code is: - -\startbuffer[process] -\startxmlsetups xml:test_setups - \xmlsetsetup{#1}{a|b|c|d}{xml:*} -\stopxmlsetups - -\xmlregisterdocumentsetup{example-5}{xml:test_setups} - -\xmlprocessbuffer{example-5}{demo}{} -\stopbuffer - -\typebuffer - -We color a sequence of the same titles (numbers here) differently. The first -solution remembers the last title: - -\startbuffer -\startxmlsetups xml:a - \startembeddedxtable - \xmlflush{#1} - \stopembeddedxtable -\stopxmlsetups - -\startxmlsetups xml:b - \xmlfunction{#1}{test_ba} -\stopxmlsetups - -\startluacode -local lasttitle = nil - -function xml.functions.test_ba(t) - local title = xml.text(t, "/c") - local content = xml.text(t, "/d") - context.startxrow() - context.startxcell { - background = "color", - backgroundcolor = lasttitle == title and "colorone" or "colortwo", - foregroundstyle = "bold", - foregroundcolor = "white", - } - context(title) - lasttitle = title - context.stopxcell() - context.startxcell() - context(content) - context.stopxcell() - context.stopxrow() -end -\stopluacode -\stopbuffer - -\typebuffer \getbuffer - -The \type {embeddedxtable} environment is needed because the table is picked up -as argument. - -\startlinecorrection \getbuffer[process] \stoplinecorrection - -The second implemetation remembers what titles are already processed so here we -can color the last one too. - -\startbuffer -\startxmlsetups xml:a - \ctxlua{xml.functions.reset_bb()} - \startembeddedxtable - \xmlflush{#1} - \stopembeddedxtable -\stopxmlsetups - -\startxmlsetups xml:b - \xmlfunction{#1}{test_bb} -\stopxmlsetups - -\startluacode -local titles - -function xml.functions.reset_bb(t) - titles = { } -end - -function xml.functions.test_bb(t) - local title = xml.text(t, "/c") - local content = xml.text(t, "/d") - context.startxrow() - context.startxcell { - background = "color", - backgroundcolor = titles[title] and "colorone" or "colortwo", - foregroundstyle = "bold", - foregroundcolor = "white", - } - context(title) - titles[title] = true - context.stopxcell() - context.startxcell() - context(content) - context.stopxcell() - context.stopxrow() -end -\stopluacode -\stopbuffer - -\typebuffer \getbuffer - -\startlinecorrection \getbuffer[process] \stoplinecorrection - -A solution without any state variable is given below. - -\startbuffer -\startxmlsetups xml:a - \startembeddedxtable - \xmlflush{#1} - \stopembeddedxtable -\stopxmlsetups - -\startxmlsetups xml:b - \xmlfunction{#1}{test_bc} -\stopxmlsetups - -\startluacode -function xml.functions.test_bc(t) - local title = xml.text(t, "/c") - local content = xml.text(t, "/d") - context.startxrow() - local okay = xml.text(t,"./preceding-sibling::/[-1]") == title - context.startxcell { - background = "color", - backgroundcolor = okay and "colorone" or "colortwo", - foregroundstyle = "bold", - foregroundcolor = "white", - } - context(title) - context.stopxcell() - context.startxcell() - context(content) - context.stopxcell() - context.stopxrow() -end -\stopluacode -\stopbuffer - -\typebuffer \getbuffer - -\startlinecorrection \getbuffer[process] \stoplinecorrection - -Here is a solution that delegates even more to \LUA. The previous variants were -actually not that safe with repect to special characters and didn't handle -nested elements either but the next one does. - -\startbuffer[demo] -<?xml version="1.0" encoding="utf-8"?> - -<a> - <b> <c>#1</c> <d>Text</d> </b> - <b> <c>#2</c> <d>More text</d> </b> - <b> <c>#2</c> <d>Even more text</d> </b> - <b> <c>#2</c> <d>And more</d> </b> - <b> <c>#3</c> <d>And even more</d> </b> - <b> <c>#2</c> <d>Something <i>nested</i> </d> </b> -</a> -\stopbuffer - -\typebuffer[demo] - -We also need to map the \type {i} element. - -\startbuffer -\startxmlsetups xml:a - \starttexcode - \xmlfunction{#1}{test_a} - \stoptexcode -\stopxmlsetups - -\startxmlsetups xml:c - \xmlflush{#1} -\stopxmlsetups - -\startxmlsetups xml:d - \xmlflush{#1} -\stopxmlsetups - -\startxmlsetups xml:i - {\em\xmlflush{#1}} -\stopxmlsetups - -\startluacode -function xml.functions.test_a(t) - context.startxtable() - local previous = false - for b in xml.collected(lxml.getid(t),"/b") do - context.startxrow() - local current = xml.text(b,"/c") - context.startxcell { - background = "color", - backgroundcolor = (previous == current) and "colorone" or "colortwo", - foregroundstyle = "bold", - foregroundcolor = "white", - } - lxml.first(b,"/c") - context.stopxcell() - context.startxcell() - lxml.first(b,"/d") - context.stopxcell() - previous = current - context.stopxrow() - end - context.stopxtable() -end -\stopluacode - -\startxmlsetups xml:test_setups - \xmlsetsetup{#1}{a|b|c|d|i}{xml:*} -\stopxmlsetups - -\xmlregisterdocumentsetup{example-5}{xml:test_setups} - -\xmlprocessbuffer{example-5}{demo}{} -\stopbuffer - -\typebuffer - -\startlinecorrection \getbuffer \stoplinecorrection - -The question is, do we really need \LUA ? Often we don't, apart maybe from an -occasional special finalizer. A pure \TEX\ solution is given next: - -\startbuffer -\startxmlsetups xml:a - \glet\MyPreviousTitle\empty - \glet\MyCurrentTitle \empty - \startembeddedxtable - \xmlflush{#1} - \stopembeddedxtable -\stopxmlsetups - -\startxmlsetups xml:b - \startxrow - \xmlflush{#1} - \stopxrow -\stopxmlsetups - -\startxmlsetups xml:c - \xdef\MyCurrentTitle{\xmltext{#1}{.}} - \doifelse {\MyPreviousTitle} {\MyCurrentTitle} { - \startxcell - [background=color, - backgroundcolor=colorone, - foregroundstyle=bold, - foregroundcolor=white] - } { - \glet\MyPreviousTitle\MyCurrentTitle - \startxcell - [background=color, - backgroundcolor=colortwo, - foregroundstyle=bold, - foregroundcolor=white] - } - \xmlflush{#1} - \stopxcell -\stopxmlsetups - -\startxmlsetups xml:d - \startxcell - \xmlflush{#1} - \stopxcell -\stopxmlsetups - -\startxmlsetups xml:i - {\em\xmlflush{#1}} -\stopxmlsetups - -\startxmlsetups xml:test_setups - \xmlsetsetup{#1}{*}{xml:*} -\stopxmlsetups - -\xmlregisterdocumentsetup{example-5}{xml:test_setups} - -\xmlprocessbuffer{example-5}{demo}{} -\stopbuffer - -\typebuffer - -\startlinecorrection \getbuffer \stoplinecorrection - -You can even save a few lines of code: - -\starttyping -\startxmlsetups xml:c - \xdef\MyCurrentTitle{\xmltext{#1}{.}} - \startxcell - [background=color, - backgroundcolor=color\ifx\MyPreviousTitle\MyCurrentTitle one\else two\fi, - foregroundstyle=bold, - foregroundcolor=white] - \xmlflush{#1} - \stopxcell - \glet\MyPreviousTitle\MyCurrentTitle -\stopxmlsetups -\stoptyping - -Or if you prefer: - -\starttyping -\startxmlsetups xml:c - \xdef\MyCurrentTitle{\xmltext{#1}{.}} - \doifelse {\MyPreviousTitle} {\MyCurrentTitle} { - \xmlsetup{#1}{xml:c:one} - } { - \xmlsetup{#1}{xml:c:two} - } -\stopxmlsetups - -\startxmlsetups xml:c:one - \startxcell - [background=color, - backgroundcolor=colorone, - foregroundstyle=bold, - foregroundcolor=white] - \xmlflush{#1} - \stopxcell -\stopxmlsetups - -\startxmlsetups xml:c:two - \startxcell - [background=color, - backgroundcolor=colortwo, - foregroundstyle=bold, - foregroundcolor=white] - \xmlflush{#1} - \stopxcell - \global\let\MyPreviousTitle\MyCurrentTitle -\stopxmlsetups -\stoptyping - -These examples demonstrate that it doesn't hurt to know a little bit of \TEX\ -programming: defining macros and basic comparisons can come in handy. There are -examples in the test suite, you can peek in the source code, you can consult -the wiki or you can just ask on the list. - -\stopsection - -\startsection[title=last match] - -For the next example we use the following \XML\ input: - -\startbuffer[demo] -<?xml version "1.0"?> -<document> - <section id="1"> - <content> - <p>first</p> - <p>second</p> - </content> - </section> - <section id="2"> - <content> - <p>third</p> - <p>fourth</p> - </content> - </section> -</document> -\stopbuffer - -\typebuffer[demo] - -If you check if some element is present and then act accordingly, you can -end up with doing the same lookup twice. Although it might sound inefficient, -in practice it's often not measureable. - -\startbuffer -\startxmlsetups xml:demo:document - \type{\xmlall{#1}{/section[@id='2']/content/p}}\par - \xmldoif{#1}{/section[@id='2']/content/p} { - \xmlall{#1}{/section[@id='2']/content/p} - } - \type{\xmllastmatch}\par - \xmldoif{#1}{/section[@id='2']/content/p} { - \xmllastmatch - } - \type{\xmlall{#1}{last-match::}}\par - \xmldoif{#1}{/section[@id='2']/content/p} { - \xmlall{#1}{last-match::} - } - \type{\xmlfilter{#1}{last-match::/command(xml:demo:p)}}\par - \xmldoif{#1}{/section[@id='2']/content/p} { - \xmlfilter{#1}{last-match::/command(xml:demo:p)} - } -\stopxmlsetups - -\startxmlsetups xml:demo:p - \quad\xmlflush{#1}\endgraf -\stopxmlsetups - -\startxmlsetups xml:demo:base - \xmlsetsetup{#1}{document|p}{xml:demo:*} -\stopxmlsetups - -\xmlregisterdocumentsetup{example-6}{xml:demo:base} - -\xmlprocessbuffer{example-6}{demo}{} -\stopbuffer - -\typebuffer - -In the second check we just flush the last match, so effective we do an \type -{\xmlall} here. The third and fourth alternatives demonstrate how we can use -\type {last-match} as axis. The gain is 10\% or more on the lookup but of course -typesetting often takes relatively more time than the lookup. - -\startpacked -\getbuffer -\stoppacked - -\stopsection - -\stopchapter - -\stopbodymatter - -\stoptext diff --git a/doc/context/sources/general/manuals/xtables/xtables-mkiv.tex b/doc/context/sources/general/manuals/xtables/xtables-mkiv.tex deleted file mode 100644 index a41282622..000000000 --- a/doc/context/sources/general/manuals/xtables/xtables-mkiv.tex +++ /dev/null @@ -1,1235 +0,0 @@ -% language=uk - -% 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. - -\usemodule[art-01,abr-02] - -\definecolor[red] [darkred] -\definecolor[green] [darkgreen] -\definecolor[blue] [darkblue] -\definecolor[yellow] [darkyellow] -\definecolor[magenta][darkmagenta] -\definecolor[cyan] [darkcyan] - -\setupexternalfigures - [location={local,default}] - -\setupbodyfont - [10pt] - -\setuptyping - [color=darkyellow] - -\setuptype - [color=darkcyan] - -% \setupnumbering -% [alternative=doublesided] - -\setuphead - [section] - [color=darkmagenta] - -\setupinteraction - [hidden] - -\startdocument - [metadata:author=Hans Hagen, - metadata:title=Extreme Tables, - author=Hans Hagen, - affiliation=PRAGMA ADE, - location=Hasselt NL, - title=Extreme Tables, - extra=ConTeXt MkIV, - support=www.contextgarden.net, - website=www.pragma-ade.nl] - -\startMPpage - - StartPage ; - fill Page enlarged 2mm withcolor magenta/4 ; - pickup pencircle scaled 2mm ; - numeric n ; n := bbheight Page ; - forever : - n := n / 1.5 ; - draw bottomboundary Page shifted (0, n) withcolor 2yellow/3 withtransparency (1,0.5) ; - draw topboundary Page shifted (0,-n) withcolor 2yellow/3 withtransparency (1,0.5) ; - exitif n < 2cm ; - endfor ; - numeric n ; n := bbheight Page ; - forever : - n := n / 1.5 ; - draw leftboundary Page shifted ( n,0) withcolor 2cyan/3 withtransparency (1,0.5) ; - draw rightboundary Page shifted (-n,0) withcolor 2cyan/3 withtransparency (1,0.5) ; - exitif n < 2cm ; - endfor ; - picture p, q, r ; - p := textext("\ssbf\WORD{\documentvariable{title}}") xsized (bbheight Page - 2cm) rotated 90 ; - q := textext("\ssbf\WORD{\documentvariable{author}}") ysized 1cm ; - r := textext("\ssbf\WORD{\documentvariable{extra}}") xsized bbwidth q ; - draw anchored.rt (p, center rightboundary Page shifted (-1cm,0cm)) withcolor white ; - draw anchored.bot(q, center bottomboundary Page shifted ( 1cm,4.4cm)) withcolor white ; - draw anchored.bot(r, center bottomboundary Page shifted ( 1cm,2.8cm)) withcolor white ; - StopPage ; - -\stopMPpage - -% \page[empty] \setuppagenumber[start=1] - -\startsubject[title={Contents}] - -\placelist[section][criterium=all,interaction=all] - -\stopsubject - -\startsection[title={Introduction}] - -This is a short introduction to yet another table mechanism built in \CONTEXT. It -is a variant of the so called natural tables but it has a different -configuration. Also, the implementation is completely different. The reason for -writing it is that in one of our projects we had to write styles for documents -that had tables spanning 30 or more pages and apart from memory constraints this -is quite a challenge for the other mechanisms, if only because splitting them -into successive floats is not possible due to limitations of \TEX. The extreme -table mechanism can handle pretty large tables and split them too. As each cell -is basically a \type {\framed} and as we need to do two passes over the table, -this mechanism is not the fastest but it is some two times faster than the -natural tables mechanism, and in most cases can be used instead. - -\stopsection - -\startsection[title={The structure}] - -The structure of the tables is summarized here. There can be the usual head, body -and foot specifications and we also support the optional header in following -pages. - -\starttyping -\definextable [tag] | [tag][parent] -\setupxtable [settings] | [tag][settings] - -\startxtable[tag|settings] - \startxtablehead|next|body|foot[tag|settings] - \startxrowgroup[tag|settings] - \startxrow[settings] - \startxcellgroup[tag|settings] - \startxcell[settings] ... \stopxcell - \stopxcellgroup - \stopxrow - \startxrowgroup - \stopxtablehead|next|body|foot -\stopxtable -\stoptyping - -Contrary to what you might expect, the definition command defines a new set of -command. You don't need to use this in order to set up a new settings -environment. Settings and definitions can inherit so you can build a chain of -parent|-|child settings. The grouping is nothing more than a switch to a new set -of settings. - -\stopsection - -\startsection[title={Direct control}] - -A simple table with just frames is defined as follows: - -\startbuffer -\startxtable - \startxrow - \startxcell one \stopxcell - \startxcell two \stopxcell - \stopxrow - \startxrow - \startxcell alpha \stopxcell - \startxcell beta \stopxcell - \stopxrow -\stopxtable -\stopbuffer - -\typebuffer - -\startlinecorrection[blank] \getbuffer \stoplinecorrection - -You can pass parameters for tuning the table: - -\startbuffer -\startxtable[offset=1cm] - \startxrow - \startxcell one \stopxcell - \startxcell two \stopxcell - \stopxrow - \startxrow - \startxcell alpha \stopxcell - \startxcell beta \stopxcell - \stopxrow -\stopxtable -\stopbuffer - -\typebuffer - -\startlinecorrection[blank] \getbuffer \stoplinecorrection - -You can (for as much as they make sense) use the same settings as the \type -{\framed} command, as long as you keep in mind that messing with the frame -related offsets can have side effects. - -\stopsection - -\startsection[title={Sets of settings}] - -Instead of directly passing settings you can use a predefined set. Of course you -can also combine these methods. - -\startbuffer -\definextable - [myxtable] - -\definextable - [myxtable:important] - [myxtable] - -\setupxtable - [myxtable] - [width=4cm, - foregroundcolor=red] - -\setupxtable - [myxtable:important] - [background=color, - backgroundcolor=red, - foregroundcolor=white] -\stopbuffer - -\typebuffer \getbuffer - -We can use these settings in table. Although it is not really needed to define a -set beforehand (i.e.\ you can just use the setup command) it is cleaner and more -efficient too. - -\startbuffer -\startxtable[myxtable] - \startxrow[foregroundcolor=green] - \startxcell one \stopxcell - \startxcell two \stopxcell - \startxcellgroup[foregroundcolor=blue] - \startxcell tree \stopxcell - \startxcell four \stopxcell - \stopxcellgroup - \stopxrow - \startxrow - \startxcell alpha \stopxcell - \startxcell beta \stopxcell - \startxcellgroup[myxtable:important] - \startxcell gamma \stopxcell - \startxcell delta \stopxcell - \stopxcellgroup - \stopxrow -\stopxtable -\stopbuffer - -\typebuffer - -\startlinecorrection[blank] \getbuffer \stoplinecorrection - -The overhead of (chained) settings is quite acceptable and it helps to keep the -source of the table uncluttered from specific settings. - -\stopsection - -\startsection[title={Defining}] - -If needed you can define your own encapsulating commands. The following example -demonstrates this: - -\startbuffer -\definextable[mytable] -\stopbuffer - -\getbuffer \typebuffer - -We now can use the \type{mytable} wrapper: - -\startbuffer -\startmytable[height=4cm,width=8cm,align={middle,lohi}] - \startxrow - \startxcell test \stopxcell - \stopxrow -\stopmytable -\stopbuffer - -\typebuffer - -\startlinecorrection[blank] \getbuffer \stoplinecorrection - -One drawback of using buffers is that they don't play well in macro definitions. -In that case you need to use the following wrapper: - -\startbuffer -\starttexdefinition MyTable #1#2#3#4 - \startembeddedxtable - \startxrow - \startxcell #1 \stopxcell - \startxcell #2 \stopxcell - \stopxrow - \startxrow - \startxcell #3 \stopxcell - \startxcell #4 \stopxcell - \stopxrow - \stopembeddedxtable -\stoptexdefinition -\stopbuffer - -\typebuffer \getbuffer - -This macro is used as any other macro with arguments: - -\startbuffer -\MyTable{one}{two}{three}{four} -\stopbuffer - -\typebuffer - -\startlinecorrection[blank] \getbuffer \stoplinecorrection - -\stopsection - -\startsection[title={Stretching}] - -If you don't give the width of a cell, the widest natural size will be taken. -Otherwise the given width applies to the whole column. - -\startbuffer -\startxtable - \startxrow - \startxcell[width=1cm] one \stopxcell - \startxcell[width=2cm] two \stopxcell - \startxcell[width=3cm] tree \stopxcell - \startxcell[width=4cm] four \stopxcell - \stopxrow - \startxrow - \startxcell alpha \stopxcell - \startxcell beta \stopxcell - \startxcell gamma \stopxcell - \startxcell delta \stopxcell - \stopxrow -\stopxtable -\stopbuffer - -\typebuffer - -\startlinecorrection[blank] \getbuffer \stoplinecorrection - -You can let the cells stretch so that the whole width of the text area is taken. - -\startbuffer[one] -\startxtable[option=stretch] - \startxrow - \startxcell[width=1cm] one \stopxcell - \startxcell[width=2cm] two \stopxcell - \startxcell[width=3cm] tree \stopxcell - \startxcell[width=4cm] four \stopxcell - \stopxrow - \startxrow - \startxcell alpha \stopxcell - \startxcell beta \stopxcell - \startxcell gamma \stopxcell - \startxcell delta \stopxcell - \stopxrow -\stopxtable -\stopbuffer - -\typebuffer[one] - -The available left over space is equally distributed among the cells. - -\startlinecorrection[blank] \getbuffer[one] \stoplinecorrection - -\startbuffer[two] -\startxtable[option={stretch,width}] - \startxrow - \startxcell[width=1cm] one \stopxcell - \startxcell[width=2cm] two \stopxcell - \startxcell[width=3cm] tree \stopxcell - \startxcell[width=4cm] four \stopxcell - \stopxrow - \startxrow - \startxcell alpha \stopxcell - \startxcell beta \stopxcell - \startxcell gamma \stopxcell - \startxcell delta \stopxcell - \stopxrow -\stopxtable -\stopbuffer - -An alternative is to distribute the space proportionally: - -\typebuffer[two] - -\startlinecorrection[blank] \getbuffer[two] \stoplinecorrection - -Just to stress the difference we show both alongside now: - -\startlinecorrection[blank] - \getbuffer[one] - \blank - \getbuffer[two] -\stoplinecorrection - -You can specify the width of a cell with each cell but need to keep into mind -that that value is then used for the whole column: - -\startbuffer -\startxtable - \startxrow - \startxcell[width=1em] one \stopxcell - \startxcell[width=2em] two \stopxcell - \startxcell[width=3em] tree \stopxcell - \startxcell[width=4em] four \stopxcell - \stopxrow - \startxrow - \startxcell alpha \stopxcell - \startxcell beta \stopxcell - \startxcell gamma \stopxcell - \startxcell delta \stopxcell - \stopxrow -\stopxtable -\stopbuffer - -\typebuffer - -\startlinecorrection[blank] \getbuffer \stoplinecorrection - -You can enforce that larger columns win via the \type {option} parameter: - -\startbuffer -\startxtable[option=max] - \startxrow - \startxcell[width=1em] one \stopxcell - \startxcell[width=2em] two \stopxcell - \startxcell[width=3em] tree \stopxcell - \startxcell[width=4em] four \stopxcell - \stopxrow - \startxrow - \startxcell alpha \stopxcell - \startxcell beta \stopxcell - \startxcell gamma \stopxcell - \startxcell delta \stopxcell - \stopxrow -\stopxtable -\stopbuffer - -\typebuffer - -\startlinecorrection[blank] \getbuffer \stoplinecorrection - -\stopsection - -\startsection[title={Spacing}] - -It is possible to separate the cells by horizontal and/or vertical space. As an -example we create a setup. - -\startbuffer -\setupxtable - [myztable] - [option=stretch, - foregroundcolor=blue, - columndistance=10pt, - leftmargindistance=20pt, - rightmargindistance=30pt] -\stopbuffer - -\typebuffer \getbuffer - -You can use the \type {textwidth} parameter to set a specific maximum width. We -now apply the previous settings to an extreme table: - -\startbuffer -\startxtable[myztable] - \startxrow - \startxcell[width=1cm] one \stopxcell - \startxcell[width=2cm,distance=5pt] two \stopxcell - \startxcell[width=3cm] tree \stopxcell - \startxcell[width=4cm] four \stopxcell - \stopxrow - \startxrow - \startxcell[width=1cm] alpha \stopxcell - \startxcell[width=2cm] beta \stopxcell - \startxcell[width=3cm] gamma \stopxcell - \startxcell[width=4cm] delta \stopxcell - \stopxrow -\stopxtable -\stopbuffer - -\typebuffer - -As you can see here, we can still locally overload the settings but keep in mind -that these apply to the whole column then, not to the specific cell. - -\startlinecorrection[blank] \getbuffer \stoplinecorrection - -Vertical spacing is (currently) setup differently, i.e.\ as an argument to the -\type {\blank} command. - -\startbuffer -\startxtable[spaceinbetween=medium] - \startxrow - \startxcell one \stopxcell - \startxcell two \stopxcell - \startxcell tree \stopxcell - \startxcell four \stopxcell - \stopxrow - \startxrow - \startxcell alpha \stopxcell - \startxcell beta \stopxcell - \startxcell gamma \stopxcell - \startxcell delta \stopxcell - \stopxrow -\stopxtable -\stopbuffer - -\typebuffer - -Specifying spacing this way improves consistency with the rest of the document -spacing. - -\startlinecorrection[blank] \getbuffer \stoplinecorrection - -\stopsection - -\startsection[title={Spanning}] - -Of course we can span cells horizontally as well as vertically. Future versions -might provide more advanced options but the basics work okay. - -\startbuffer -\startxtable - \startxrow - \startxcell one \stopxcell - \startxcell[nx=2] two + three \stopxcell - \startxcell four \stopxcell - \startxcell five \stopxcell - \stopxrow - \startxrow - \startxcell[nx=3] alpha + beta + gamma \stopxcell - \startxcell[nx=2] delta + epsilon \stopxcell - \stopxrow -\stopxtable -\stopbuffer - -\typebuffer - -This spans a few cells horizontally: - -\startlinecorrection[blank] \getbuffer \stoplinecorrection - -The next example gives a span in two directions: - -\startbuffer -\startxtable - \startxrow - \startxcell alpha 1 \stopxcell - \startxcell beta 1 \stopxcell - \startxcell gamma 1 \stopxcell - \startxcell delta 1 \stopxcell - \stopxrow - \startxrow - \startxcell alpha 2 \stopxcell - \startxcell[nx=2,ny=2] whatever \stopxcell - \startxcell delta 2 \stopxcell - \stopxrow - \startxrow - \startxcell alpha 3 \stopxcell - \startxcell delta 3 \stopxcell - \stopxrow - \startxrow - \startxcell alpha 4 \stopxcell - \startxcell beta 4 \stopxcell - \startxcell gamma 4 \stopxcell - \startxcell delta 4 \stopxcell - \stopxrow -\stopxtable -\stopbuffer - -\typebuffer - -Of course, spanning is always a compromise but the best fit found by this -mechanism takes natural width, given width and available space into account. - -\startlinecorrection[blank] \getbuffer \stoplinecorrection - -\stopsection - -\startsection[title={Partitioning}] - -You can partition a table as follows: - -\startbuffer -\startxtable - \startxtablehead - \startxrow - \startxcell head one \stopxcell - \startxcell head two \stopxcell - \startxcell head tree \stopxcell - \startxcell head four \stopxcell - \stopxrow - \stopxtablehead - \startxtablenext - \startxrow - \startxcell next one \stopxcell - \startxcell next two \stopxcell - \startxcell next tree \stopxcell - \startxcell next four \stopxcell - \stopxrow - \stopxtablenext - \startxtablebody - \startxrow - \startxcell body one \stopxcell - \startxcell body two \stopxcell - \startxcell body tree \stopxcell - \startxcell body four \stopxcell - \stopxrow - \stopxtablebody - \startxtablefoot - \startxrow - \startxcell foot one \stopxcell - \startxcell foot two \stopxcell - \startxcell foot tree \stopxcell - \startxcell foot four \stopxcell - \stopxrow - \stopxtablefoot -\stopxtable -\stopbuffer - -\typebuffer - -There can be multiple such partitions and they are collected in head, next, body -and foot groups. Normally the header ends up at the beginning and the footer at -the end. When a table is split, the first page gets the header and the following -pages the next one. - -You can let headers and footers be repeated by setting the \type {header} -and|/|or \type {footer} parameters to \type {repeat}. - -\starttyping -\setupxtable - [split=yes, - header=repeat, - footer=repeat] -\stoptyping - -The table can be flushed in the running text but also in successive -floats. Given that the table is in a buffer: - -\starttyping -\placetable[here,split]{A big table.}{\getbuffer} -\stoptyping - -When you specify \type {split} as \type {yes} the caption is taken into account -when calculating the available space. - -There are actually three different split methods. The \type {yes} option works in -text mode as well as in floats, but in text mode no headers and footers get -repeated. If you want that feature in a text flush you have to set \type {split} -to \type {repeat} as well. - -You can keep rows together by passing a \type {samepage} directive. This -parameter can get the values \type {before}, \type {after} and \type {both}. - -\starttyping -\startxtable[split=yes] - \startxrow \startxcell \tttf .01. \stopxcell \stopxrow - \startxrow \startxcell \tttf .... \stopxcell \stopxrow - \startxrow \startxcell \tttf \red .21. \stopxcell \stopxrow - \startxrow[samepage=both] \startxcell \tttf \red .22. \stopxcell \stopxrow - \startxrow[samepage=both] \startxcell \tttf \red .23. \stopxcell \stopxrow - \startxrow \startxcell \tttf .... \stopxcell \stopxrow - \startxrow \startxcell \tttf .99. \stopxcell \stopxrow -\stopxtable -\stoptyping - -\stopsection - -\startsection[title={Options}] - -On the average a table will come out okay but you need to keep in mind that when -(complex) spans are used the results can be less that optimal. However, as -normally one pays attention to creating tables, the amount of control provided -often makes it possible to get what you want. - -In the following situations, the first cell width is determined by the span. It -is possible to make a more clever analyzer but we need to keep in mind that in -the same column there can be entries that span a different amount of columns. Not -only would that be inefficient but it would also be rather unpredictable unless -you know exactly what happens deep down. The following two examples demonstrate -default behaviour. - -\startbuffer -\startxtable - \startxrow - \startxcell[nx=3] - 1/2/3 - \stopxcell - \stopxrow - \startxrow - \startxcell 1 \stopxcell - \startxcell 2 \stopxcell - \startxcell 3 \stopxcell - \stopxrow -\stopxtable -\stopbuffer - -\typebuffer \getbuffer - -\startbuffer -\startxtable - \startxrow - \startxcell[nx=3] - 1 / 2 / 3 - \stopxcell - \stopxrow - \startxrow - \startxcell 1 \stopxcell - \startxcell 2 \stopxcell - \startxcell 3 \stopxcell - \stopxrow -\stopxtable -\stopbuffer - -\typebuffer \getbuffer - -In practice you will set the width of the columns, as in: - -\startbuffer -\startxtable - \startxrow - \startxcell[nx=3] - 1/2/3 - \stopxcell - \stopxrow - \startxrow - \startxcell[width=\dimexpr\textwidth/3] 1 \stopxcell - \startxcell[width=\dimexpr\textwidth/3] 2 \stopxcell - \startxcell[width=\dimexpr\textwidth/3] 3 \stopxcell - \stopxrow -\stopxtable -\stopbuffer - -\typebuffer \getbuffer - -But, if you want you can control the enforced width by setting an option: - -\startbuffer -\startxtable - \startxrow - \startxcell[nx=3,option=tight] - 1/2/3 - \stopxcell - \stopxrow - \startxrow - \startxcell 1 \stopxcell - \startxcell 2 \stopxcell - \startxcell 3 \stopxcell - \stopxrow -\stopxtable -\stopbuffer - -\typebuffer \getbuffer - -\startbuffer -\startxtable - \startxrow - \startxcell[nx=3,option=tight] - 1 / 2 / 3 - \stopxcell - \stopxrow - \startxrow - \startxcell 1 \stopxcell - \startxcell 2 \stopxcell - \startxcell 3 \stopxcell - \stopxrow -\stopxtable -\stopbuffer - -\typebuffer \getbuffer - -There is also a global setting: - -\startbuffer -\startxtable[option=tight] - \startxrow - \startxcell[nx=3] - 1/2/3 - \stopxcell - \stopxrow - \startxrow - \startxcell 1 \stopxcell - \startxcell 2 \stopxcell - \startxcell 3 \stopxcell - \stopxrow -\stopxtable -\stopbuffer - -\typebuffer \getbuffer - -\stopsection - -\startsection[title={Nesting}] - -Extreme tables can be nested but you need to keep an eye on inheritance here as -the inner table uses the settings from the encapsulating cell. The widths and -heights of the inner table default to \type {fit}. We could cook up a more -complex nesting model but this one is easy to follow. - -\startbuffer -\startxtable - \startxrow - \startxcell[offset=0pt] - \startxtable[background=color,backgroundcolor=green, - foregroundcolor=white,offset=1ex] - \startxrow - \startxcell[width=1cm] one \stopxcell - \startxcell[width=2cm] two \stopxcell - \stopxrow - \startxrow - \startxcell[width=3cm] alpha \stopxcell - \startxcell[width=4cm] beta \stopxcell - \stopxrow - \stopxtable - \stopxcell - \startxcell two \stopxcell - \stopxrow - \startxrow - \startxcell alpha \stopxcell - \startxcell - \startxtable[background=color,backgroundcolor=red, - foregroundcolor=white] - \startxrow - \startxcell one \stopxcell - \startxcell two \stopxcell - \stopxrow - \startxrow - \startxcell alpha \stopxcell - \startxcell beta \stopxcell - \stopxrow - \stopxtable - \stopxcell - \stopxrow -\stopxtable -\stopbuffer - -\typebuffer - -Here we just manipulate the offset a bit. - -\startlinecorrection[blank] \getbuffer \stoplinecorrection - -\stopsection - -\startsection[title={Buffers}] - -When you don't want to clutter your document source too much buffers can be if -help: - -\startbuffer -\startbuffer[test] -\startxtable - \startxrow - \startxcell[width=1cm] one \stopxcell - \startxcell[width=2cm] two \stopxcell - \stopxrow - \startxrow - \startxcell alpha \stopxcell - \startxcell beta \stopxcell - \stopxrow -\stopxtable -\stopbuffer -\stopbuffer - -\typebuffer \getbuffer - -One way of getting this table typeset is to say: - -\starttyping -\getbuffer[test] -\stoptyping - -Normally this is quite okay. However, internally extreme tables become also -buffers. If you don't like the overhead of this double buffering you can use the -following command: - -\starttyping -\processxtablebuffer[test] -\stoptyping - -This can save you some memory and runtime, but don't expect miracles. Also, this -way of processing does not support nested tables (unless \type {{}} is used). - -\stopsection - -\startsection[title={XML}] - -The following example demonstrates that we can use this mechanism in \XML\ too. -The example was provided by Thomas Schmitz. First we show how a table looks like -in \XML: - -\startbuffer[test] -<table> - <tablerow> - <tablecell> - One - </tablecell> - <tablecell> - Two - </tablecell> - </tablerow> - <tablerow> - <tablecell> - <b>Three</b> - </tablecell> - <tablecell> - Four - </tablecell> - </tablerow> -</table> -\stopbuffer - -\typebuffer[test] - -We need to map these elements to setups: - -\startbuffer -\startxmlsetups xml:testsetups - \xmlsetsetup{main}{b|table|tablerow|tablecell}{xml:*} -\stopxmlsetups - -\xmlregistersetup{xml:testsetups} -\stopbuffer - -\typebuffer \getbuffer - -The setups themselves are rather simple as we don't capture any attributes. - -\startbuffer -\startxmlsetups xml:b - \bold{\xmlflush{#1}} -\stopxmlsetups - -\startxmlsetups xml:table - \startembeddedxtable - \xmlflush{#1} - \stopembeddedxtable -\stopxmlsetups - -\startxmlsetups xml:tablerow - \startxrow - \xmlflush{#1} - \stopxrow -\stopxmlsetups - -\startxmlsetups xml:tablecell - \startxcell - \xmlflush{#1} - \stopxcell -\stopxmlsetups -\stopbuffer - -\typebuffer \getbuffer - -We now process the example. Of course it will also work for files. - -\startbuffer - \xmlprocessbuffer{main}{test}{} -\stopbuffer - -\typebuffer - -The result is: - -\startlinecorrection[blank] \getbuffer \stoplinecorrection - -\stopsection - -\startsection[title={Natural tables}] - -For the impatient a small additional module is provided that remaps the natural -table commands onto extreme tables: - -\startbuffer -\usemodule[ntb-to-xtb] -\stopbuffer - -\typebuffer \getbuffer - -After that: - -\startbuffer -\bTABLE - \bTR - \bTD[background=color,backgroundcolor=red] one \eTD - \bTD[width=2cm] two \eTD - \eTR - \bTR - \bTD[width=5cm] alpha \eTD - \bTD[background=color,backgroundcolor=yellow] beta \eTD - \eTR -\eTABLE -\stopbuffer -\stopbuffer - -\typebuffer - -Will come out as: - -\startlinecorrection[blank] -\getbuffer -\stoplinecorrection - -You can restore and remap the commands with the following helpers: - -\starttyping -\restoreTABLEfromxtable -\mapTABLEtoxtable -\stoptyping - -Of course not all functionality of the natural tables maps onto similar -functionality of extreme tables, but on the average the result will look rather -similar. - -\stopsection - -\startsection[title={Colofon}] - -\starttabulate[|B|p|] -\NC author \NC \getvariable{document}{author}, \getvariable{document}{affiliation}, \getvariable{document}{location} \NC \NR -\NC version \NC \currentdate \NC \NR -\NC website \NC \getvariable{document}{website} \endash\ \getvariable{document}{support} \NC \NR -\NC copyright \NC \symbol[cc][cc-by-sa-nc] \NC \NR -\stoptabulate - -\stopsection - -\startsection[title={Examples}] - -On the following pages we show some examples of (experimental) features. For this -we will use the usual quotes from Ward, Tufte and Davis etc.\ that you can find -in the distribution. - -\page - -\startbuffer -\startxtable[bodyfont=6pt] - \startxrow - \startxcell \input ward \stopxcell - \startxcell \input tufte \stopxcell - \startxcell \input davis \stopxcell - \stopxrow -\stopxtable -\stopbuffer - -\typebuffer \getbuffer - -\startbuffer -\startxtable[bodyfont=6pt,option=width] - \startxrow - \startxcell \input ward \stopxcell - \startxcell \input tufte \stopxcell - \startxcell \input davis \stopxcell - \stopxrow -\stopxtable -\stopbuffer - -\typebuffer \getbuffer - -\page - -\startbuffer -\startxtable[bodyfont=6pt] - \startxrow - \startxcell \externalfigure[cow.pdf][width=3cm] \stopxcell - \startxcell \input tufte \stopxcell - \startxcell \input davis \stopxcell - \stopxrow -\stopxtable -\stopbuffer - -\typebuffer \getbuffer - -\startbuffer -\startxtable[bodyfont=6pt,option=width] - \startxrow - \startxcell \externalfigure[cow.pdf][width=3cm] \stopxcell - \startxcell \input tufte \stopxcell - \startxcell \input davis \stopxcell - \stopxrow -\stopxtable -\stopbuffer - -\typebuffer \getbuffer - -\page - -\startbuffer -\startxtable[option=stretch] - \startxrow - \startxcell bla \stopxcell - \startxcell bla bla \stopxcell - \startxcell bla bla bla \stopxcell - \stopxrow -\stopxtable -\stopbuffer - -\typebuffer \getbuffer - -\startbuffer -\startxtable[option={stretch,width}] - \startxrow - \startxcell bla \stopxcell - \startxcell bla bla \stopxcell - \startxcell bla bla bla \stopxcell - \stopxrow -\stopxtable -\stopbuffer - -\typebuffer \getbuffer - -\page - -\startbuffer -\setupxtable[suffix][align=middle,foregroundcolor=red] -\setupxtable[blabla][foregroundstyle=slanted] -\setupxtable[crap] [foregroundcolor=blue] -\setupxtable[bold] [crap][foregroundstyle=bold] - -\startxtable % [frame=off] - \startxtablehead - \startxrow[bold] - \startxcell[suffix] head a \stopxcell - \startxcell[blabla] head b \stopxcell - \startxcell head c \stopxcell - \stopxrow - \stopxtablehead - \startxtablebody - \startxrow - \startxcell[suffix][ny=2] cell a 1 \stopxcell - \startxcell cell b 1 \stopxcell - \startxcell cell c 1 \stopxcell - \stopxrow - \startxrow - \startxcell cell b 2 \stopxcell - \startxcell cell c 2 \stopxcell - \stopxrow - \startxrow - \startxcell[suffix] cell a 3 \stopxcell - \startxcell cell b 3 \stopxcell - \startxcell cell c 3 \stopxcell - \stopxrow - \startxrow - \startxcell[suffix] cell a 4 \stopxcell - \startxcell cell b 4 \stopxcell - \startxcell cell c 4 \stopxcell - \stopxrow - \startxrow - \startxcell[suffix] cell a 5 \stopxcell - \startxcell cell b 5 \stopxcell - \startxcell cell c 5 \stopxcell - \stopxrow - \stopxtablebody -\stopxtable -\stopbuffer - -\typebuffer \start \getbuffer \stop - -\page - -\startbuffer -\startxtable[option=stretch] - \startxrow - \startxcell[option=fixed] first cell \stopxcell - \startxcell 101 \stopxcell - \startxcell 102 \stopxcell - \startxcell 103 \stopxcell - \stopxrow - \startxrow - \startxcell 2\high{nd} cell \stopxcell - \startxcell a \stopxcell - \startxcell b \stopxcell - \startxcell c \stopxcell - \stopxrow -\stopxtable -\stopbuffer - -\typebuffer \start \getbuffer \stop - -\page - -\startbuffer[demo] -\startxtable -\startxrow - \startxcell[demo][nx=4] 1 / 2 / 3 / 4 \stopxcell -\stopxrow -\startxrow - \startxcell[demo][nx=3] 1 / 2 / 3 \stopxcell - \startxcell 4 \stopxcell -\stopxrow -\startxrow - \startxcell 1 \stopxcell - \startxcell[demo][nx=3] 2 / 3 / 4 \stopxcell -\stopxrow -\startxrow - \startxcell[demo][nx=2] 1 / 2 \stopxcell - \startxcell 3 \stopxcell - \startxcell 4 \stopxcell -\stopxrow -\startxrow - \startxcell 1 \stopxcell - \startxcell[demo][nx=2] 2 / 3 \stopxcell - \startxcell 4 \stopxcell -\stopxrow -\startxrow - \startxcell 1 \stopxcell - \startxcell 2 \stopxcell - \startxcell[demo][nx=2] 3 / 4 \stopxcell -\stopxrow -\startxrow - \startxcell[demo][nx=2] 1 / 2 \stopxcell - \startxcell[demo][nx=2] 3 / 4 \stopxcell -\stopxrow -\startxrow - \startxcell 1 \stopxcell - \startxcell 2 \stopxcell - \startxcell 3 \stopxcell - \startxcell 4 \stopxcell -\stopxrow -\stopxtable -\stopbuffer - -\startbuffer[tight] -\setupxtable[demo][option=tight] -\stopbuffer - -\startbuffer[normal] -\setupxtable[demo][option=] -\stopbuffer - -\typebuffer[demo] - -\page - -\typebuffer[tight] \start \getbuffer[tight,demo] \stop -\typebuffer[normal] \start \getbuffer[normal,demo] \stop - -% \ruledhbox{\getbuffer[normal,demo]} - -\stopdocument |