From c710c4ab57f84965c89205af58bc4fe204dfb79c Mon Sep 17 00:00:00 2001
From: Hans Hagen <pragma@wxs.nl>
Date: Mon, 23 Apr 2001 00:00:00 +0200
Subject: stable 2001.04.23

---
 tex/context/base/colo-ini.tex  |  200 +-
 tex/context/base/colo-pra.tex  |   64 +
 tex/context/base/colo-run.tex  |  203 +
 tex/context/base/cont-old.tex  |    3 +
 tex/context/base/cont-sys.ori  |   92 +
 tex/context/base/cont-sys.rme  |   87 -
 tex/context/base/context.tex   |    7 +-
 tex/context/base/core-reg.tex  |   81 +-
 tex/context/base/core-spa.tex  | 1870 +++++++++
 tex/context/base/enco-def.tex  |   35 +-
 tex/context/base/enco-ini.tex  |    9 +-
 tex/context/base/enco-run.tex  |   32 +-
 tex/context/base/font-aer.tex  |   69 -
 tex/context/base/font-ams.tex  |  506 ---
 tex/context/base/font-ant.tex  |   28 -
 tex/context/base/font-arb.tex  |    2 +
 tex/context/base/font-ber.tex  |   92 -
 tex/context/base/font-chi.tex  |    2 +
 tex/context/base/font-cmr.tex  |  613 ---
 tex/context/base/font-con.tex  |   65 -
 tex/context/base/font-csr.tex  |  111 -
 tex/context/base/font-eul.tex  |  177 -
 tex/context/base/font-fil.tex  |  121 -
 tex/context/base/font-heb.tex  |    2 +
 tex/context/base/font-ini.tex  | 2343 +++++------
 tex/context/base/font-lbr.tex  |  302 --
 tex/context/base/font-map.tex  |    2 +
 tex/context/base/font-pcr.tex  |   32 -
 tex/context/base/font-phv.tex  |   26 -
 tex/context/base/font-plr.tex  |  130 -
 tex/context/base/font-pos.tex  |   21 -
 tex/context/base/font-ppl.tex  |   26 -
 tex/context/base/font-ptm.tex  |   26 -
 tex/context/base/font-run.tex  |  221 +
 tex/context/base/font-unk.tex  |  169 +-
 tex/context/base/font-vnr.tex  |    4 +
 tex/context/base/lang-ini.tex  |    6 +-
 tex/context/base/main-001.tex  | 1863 +--------
 tex/context/base/math-ams.tex  |  317 ++
 tex/context/base/math-eul.tex  |  127 +
 tex/context/base/math-ini.tex  |  351 ++
 tex/context/base/math-lbr.tex  |  167 +
 tex/context/base/math-tex.tex  |  495 +++
 tex/context/base/math-tim.tex  |  371 ++
 tex/context/base/mult-sys.tex  |    7 +
 tex/context/base/s-mod-00.tex  |  408 ++
 tex/context/base/s-mod-01.tex  |  144 +
 tex/context/base/s-mod-02.tex  |  409 ++
 tex/context/base/s-pre-00.tex  |   31 +-
 tex/context/base/setupa.tex    |  771 ++++
 tex/context/base/setupb.tex    | 8635 ++++++++++++++++++++++++++++++++++++++++
 tex/context/base/setupd.tex    |  182 +
 tex/context/base/supp-box.tex  |   12 +-
 tex/context/base/supp-fil.tex  |    8 +-
 tex/context/base/syst-con.tex  |   21 +-
 tex/context/base/syst-gen.tex  |    2 +-
 tex/context/base/syst-new.tex  |    7 +-
 tex/context/base/thrd-ran.tex  |   13 +-
 tex/context/base/type-enc.tex  |  528 +++
 tex/context/base/type-exa.tex  |   69 +
 tex/context/base/type-ini.tex  |  253 ++
 tex/context/base/type-map.tex  |   26 +
 tex/context/base/type-pre.tex  |  210 +
 tex/context/base/type-run.tex  |   53 +
 tex/context/base/type-siz.tex  |  554 +++
 tex/context/base/type-spe.tex  |   38 +
 tex/context/base/type-syn.tex  |  274 ++
 tex/context/base/verb-ini.tex  |   12 +-
 tex/context/base/x-fig-00.tex  |    2 +-
 tex/context/base/xtag-ini.tex  |   16 +-
 tex/context/base/xtag-run.tex  |  122 +
 tex/context/base/xtag-vis.tex  |  122 -
 tex/context/extra/setup-qr.tex |  178 +
 tex/context/sample/douglas.tex |   23 +
 tex/context/sample/knuth.tex   |   16 +
 tex/context/sample/materie.tex |   50 +
 tex/context/sample/reich.tex   |   11 +
 tex/context/sample/tufte.tex   |   13 +
 tex/context/sample/zapf.tex    |   11 +
 tex/context/user/cont-sys.rme  |   92 +
 80 files changed, 18874 insertions(+), 5919 deletions(-)
 create mode 100644 tex/context/base/colo-pra.tex
 create mode 100644 tex/context/base/colo-run.tex
 create mode 100644 tex/context/base/cont-sys.ori
 delete mode 100644 tex/context/base/cont-sys.rme
 create mode 100644 tex/context/base/core-spa.tex
 delete mode 100644 tex/context/base/font-aer.tex
 delete mode 100644 tex/context/base/font-ams.tex
 delete mode 100644 tex/context/base/font-ant.tex
 delete mode 100644 tex/context/base/font-ber.tex
 delete mode 100644 tex/context/base/font-cmr.tex
 delete mode 100644 tex/context/base/font-con.tex
 delete mode 100644 tex/context/base/font-csr.tex
 delete mode 100644 tex/context/base/font-eul.tex
 delete mode 100644 tex/context/base/font-fil.tex
 delete mode 100644 tex/context/base/font-lbr.tex
 delete mode 100644 tex/context/base/font-pcr.tex
 delete mode 100644 tex/context/base/font-phv.tex
 delete mode 100644 tex/context/base/font-plr.tex
 delete mode 100644 tex/context/base/font-pos.tex
 delete mode 100644 tex/context/base/font-ppl.tex
 delete mode 100644 tex/context/base/font-ptm.tex
 create mode 100644 tex/context/base/font-run.tex
 create mode 100644 tex/context/base/math-ams.tex
 create mode 100644 tex/context/base/math-eul.tex
 create mode 100644 tex/context/base/math-ini.tex
 create mode 100644 tex/context/base/math-lbr.tex
 create mode 100644 tex/context/base/math-tex.tex
 create mode 100644 tex/context/base/math-tim.tex
 create mode 100644 tex/context/base/s-mod-00.tex
 create mode 100644 tex/context/base/s-mod-01.tex
 create mode 100644 tex/context/base/s-mod-02.tex
 create mode 100644 tex/context/base/setupa.tex
 create mode 100644 tex/context/base/setupb.tex
 create mode 100644 tex/context/base/setupd.tex
 create mode 100644 tex/context/base/type-enc.tex
 create mode 100644 tex/context/base/type-exa.tex
 create mode 100644 tex/context/base/type-ini.tex
 create mode 100644 tex/context/base/type-map.tex
 create mode 100644 tex/context/base/type-pre.tex
 create mode 100644 tex/context/base/type-run.tex
 create mode 100644 tex/context/base/type-siz.tex
 create mode 100644 tex/context/base/type-spe.tex
 create mode 100644 tex/context/base/type-syn.tex
 create mode 100644 tex/context/base/xtag-run.tex
 delete mode 100644 tex/context/base/xtag-vis.tex
 create mode 100644 tex/context/extra/setup-qr.tex
 create mode 100644 tex/context/sample/douglas.tex
 create mode 100644 tex/context/sample/knuth.tex
 create mode 100644 tex/context/sample/materie.tex
 create mode 100644 tex/context/sample/reich.tex
 create mode 100644 tex/context/sample/tufte.tex
 create mode 100644 tex/context/sample/zapf.tex
 create mode 100644 tex/context/user/cont-sys.rme

(limited to 'tex')

diff --git a/tex/context/base/colo-ini.tex b/tex/context/base/colo-ini.tex
index 4bbf139af..41233ed90 100644
--- a/tex/context/base/colo-ini.tex
+++ b/tex/context/base/colo-ini.tex
@@ -1169,72 +1169,7 @@
 %D
 %D \showsetup{\y!showpalet}
 
-\def\showpalet%
-  {\dodoubleargument\doshowpalet}
-
-\def\doshowpalet[#1][#2]%
-  {\doifdefined{\??pa#1}
-     {\doifinsetelse{\v!vertikaal}{#2}
-        {\showverticalpalet[#1][#2]}
-        {\showhorizontalpalet[#1][#2]}}}
-
-\def\showverticalpalet[#1][#2]%
-  {\localvbox
-     {\offinterlineskip
-      \setuppalet[#1]
-      \def\rule%
-        {\vrule\!!width3em\!!height\ht\strutbox\!!depth\dp\strutbox}
-      \tabskip\!!zeropoint
-      \def\doshowpalet##1%
-        {\doifinsetelse{\v!nummer}{#2}{##1\hskip.5em}{}&
-         \color[##1]{\rule}\graycolor[##1]{\rule}&
-         \doifinset{\v!waarde}{#2}{\hskip.5em\colorvalue{##1}}\crcr}
-      \halign
-        {\hss##&\hss##\hss&##\cr
-         &\doifinset{\v!naam}{#2}{\strut#1}&\cr%
-         \processpalet[#1]\doshowpalet\crcr}}}
-
-\def\showhorizontalpalet[#1][#2]%
-  {\localvbox
-     {\offinterlineskip
-      \setuppalet[#1]
-      \tabskip\!!zeropoint
-      \!!widtha=\!!zeropoint
-      \doifinset{\v!nummer}{#2}
-        {\def\doshowpalet##1%
-           {\setbox0=\hbox{##1}%
-            \ifdim\!!widtha<\wd0\!!widtha=\wd0\fi}%
-         \processpalet[#1]\doshowpalet}%
-      \advance\!!widtha by 1em
-      \ifdim\!!widtha<5em
-        \!!widtha=5em
-      \fi
-      \halign
-        {##&&\hbox to \!!widtha{\hss##\hss}\cr
-         \doifinset{\v!nummer}{#2}
-           {\def\doshowpalet##1{&\strut##1}%
-            \processpalet[#1]\doshowpalet}\cr
-         \doifinset{\v!naam}{#2}{#1\hskip.5em}% 
-         \def\doshowpalet##1%
-           {&\color[##1]{\vrule\!!width\!!widtha\!!height\ht\strutbox\!!depth\!!zeropoint}}%
-         \processpalet[#1]\doshowpalet\crcr
-         \def\doshowpalet##1%
-           {&\graycolor[##1]{\vrule\!!width\!!widtha\!!height\!!zeropoint\!!depth\dp\strutbox}}%
-         \processpalet[#1]\doshowpalet\crcr
-         \doifinset{\v!waarde}{#2}
-           {\def\doshowpalet##1%
-             {&\vbox
-                {\hsize\!!widtha
-                 \vskip.25ex
-                 \everypar{\strut}
-                 \veryraggedcenter
-                 \let\colorformatseparator=\endgraf
-                 \colorvalue{##1}}}%
-            \processpalet[#1]\doshowpalet}%
-         \crcr}}}
-
-\def\processpalet[#1]%
-  {\expanded{\globalprocesscommalist[\getvalue{\??pa#1}]}}
+\fetchruntimecommand \showpalet {\f!coloprefix\s!run}
 
 %D \macros
 %D   {definecolorgroup}
@@ -1311,60 +1246,7 @@
 %D
 %D \showsetup{\y!showcolorgroup}
 
-\def\showcolorgroup%
-  {\dodoubleargument\doshowcolorgroup} 
-
-\def\doshowcolorgroup[#1][#2]%
-  {\doifdefined{\??cr#1:1}
-     {\doifinsetelse{\v!vertikaal}{#2}
-        {\showverticalcolorgroup[#1][#2]}
-        {\showhorizontalcolorgroup[#1][#2]}}}
-
-\def\showhorizontalcolorgroup[#1][#2]%
-  {\localvbox
-     {\offinterlineskip
-      \setuppalet
-      \tabskip\!!zeropoint
-      \def\rule%
-        {\vrule\!!width4em\!!height\ht\strutbox\!!depth\dp\strutbox}
-      \def\colorformatseparator{\strut\cr}
-      \def\dodoshowgroup##1%
-        {\halign
-           {\hss####\hss\cr
-            \doifinset{\v!nummer}{#2}{\strut##1}\cr
-            \color[#1:##1]{\vrule\!!width4em\!!height\ht\strutbox\!!depth\!!zeropoint}\cr
-            \graycolor[#1:##1]{\vrule\!!width4em\!!height\!!zeropoint\!!depth\dp\strutbox}\cr
-            \doifinset{\v!waarde}{#2}{\colorvalue{#1:##1}\strut}\crcr}}
-      \def\doshowgroup##1%
-        {\doifdefined{\??cr#1:##1}
-           {\vbox{\dodoshowgroup{##1}}}}
-      \hbox 
-        {\doifinset{\v!naam}{#2}
-           {\strut
-            \doifinsetelse{\v!waarde}{#2}
-              {\raise3\lineheight\hbox{#1\hskip.5em}}
-              {#1}%
-            \hskip.5em}%
-         \doshowgroup1\doshowgroup2\doshowgroup3\doshowgroup4%
-         \doshowgroup5\doshowgroup6\doshowgroup7\doshowgroup8}}}
-
-\def\showverticalcolorgroup[#1][#2]%
-  {\localvbox
-     {\offinterlineskip
-      \setuppalet
-      \tabskip\!!zeropoint
-      \def\rule%
-        {\vrule\!!width2.5em\!!height\ht\strutbox\!!depth\dp\strutbox}
-      \def\doshowgroup##1%
-        {\doifdefined{\??cr#1:##1}
-           {\doifinset{\v!nummer}{#2}{##1\hskip.5em}&
-            \color[#1:##1]{\rule}\graycolor[#1:##1]{\rule}&
-            \doifinset{\v!waarde}{#2}{\hskip.5em\colorvalue{#1:##1}}\crcr}}
-      \halign
-        {\hss##&\hss##\hss&##\hss\cr
-         &\doifinset{\v!naam}{#2}{\strut#1}&\crcr   
-         \doshowgroup1\doshowgroup2\doshowgroup3\doshowgroup4%
-         \doshowgroup5\doshowgroup6\doshowgroup7\doshowgroup8}}}
+\fetchruntimecommand \showcolorgroup {\f!coloprefix\s!run}
 
 %D There are ten predefined color groups, like
 %D \color[groen]{\em groen}, \color[rood]{\em rood},
@@ -1423,37 +1305,7 @@
 %D 
 %D \showsetup{\y!comparepalet}
 
-\def\comparepalet%
-  {\dosingleargument\docomparepalet}
-
-\def\docomparepalet[#1]%
-  {\doifdefined{\??pa#1}
-     {\hbox
-        {\dodocomparepalet\color[#1]%
-         \quad
-         \dodocomparepalet\graycolor[#1]}}}
-
-\def\dodocomparepalet#1[#2]%
-  {\localvbox
-     {\offinterlineskip
-      \setuppalet[#2]
-      \getcommacommandsize[\getvalue{\??pa#2}]
-      \!!widtha=2em\relax
-      \hsize=\commalistsize\!!widtha
-      \def\rule%
-        {\vrule\!!width.5\!!widtha\!!height2.25ex\!!depth-.75ex}
-      \def\dododocomparepalet##1%
-        {\hbox
-           {\setbox0=\hbox
-              {#1[##1]{\vrule\!!width\hsize\!!height3ex}}%
-            \wd0=\!!zeropoint\box0
-            \hbox to \hsize
-              {\def\dododocomparepalet####1%
-                 {\hbox to \!!widtha
-                    {\hss#1[####1]{\rule}\hss}}%
-               \processcommacommand[\getvalue{\??pa#2}]\dododocomparepalet}}
-         \endgraf}
-      \processcommacommand[\getvalue{\??pa#2}]\dododocomparepalet}}
+\fetchruntimecommand \comparepalet {\f!coloprefix\s!run}
 
 %D \macros
 %D   {comparecolorgroup}
@@ -1476,34 +1328,7 @@
 %D
 %D \showsetup{\y!comparecolorgroup}
 
-\def\comparecolorgroup%
-  {\dosingleargument\docomparecolorgroup}
-
-\def\docomparecolorgroup[#1]%
-  {\doifdefined{\??cr#1:1}
-     {\hbox
-        {\dodocomparecolorgroup\color[#1]%
-         \quad
-         \dodocomparecolorgroup\graycolor[#1]}}}
-
-\def\dodocomparecolorgroup#1[#2]%
-  {\localvbox
-     {\!!counta=0
-      \dorecurse{15}
-        {\doifdefined{\??cr#2:\recurselevel}{\advance\!!counta by 1}}
-      \!!widtha=2em\relax
-      \hsize=\!!counta\!!widtha
-      \def\rule%
-        {\vrule\!!width.5\!!widtha\!!height2.25ex\!!depth-.75ex}
-      \def\dododocomparecolorgroup##1%
-        {\hbox to \hsize
-           {\setbox0=\hbox
-              {#1[#2:##1]{\vrule\!!width\hsize\!!height3ex}}%
-            \wd0=\!!zeropoint\box0
-            \hbox to \hsize
-              {\hss\dorecurse{\!!counta}{#1[#2:\recurselevel]{\rule}\hss}}}
-         \endgraf}
-      \dorecurse{\!!counta}{\dododocomparecolorgroup\recurselevel}}}
+\fetchruntimecommand \comparecolorgroup {\f!coloprefix\s!run}
 
 %D \macros 
 %D   {showcolor}
@@ -1519,22 +1344,7 @@
 %D
 %D \showsetup{\y!showcolor}
 
-\def\showcolor[#1]%
-  {\bgroup
-     \setupcolor[#1]
-     \stelwitruimtein[\v!geen]
-     \def\rule%
-       {\vrule\!!width4em\!!height\ht\strutbox\!!depth\dp\strutbox}
-     \def\docommand##1%
-       {\hbox 
-          {\graycolor[##1]{\rule}\quad
-           \color[##1]{\rule}\quad
-           \grayvalue{##1}\quad
-           \hbox to 12em{\colorvalue{##1}\hss}%
-           \strut##1}
-        \endgraf}
-     \processcommacommand[\colorlist]\docommand
-   \egroup}
+\fetchruntimecommand \showcolor {\f!coloprefix\s!run}
 
 %D \macros
 %D   {negativecolorbox}
diff --git a/tex/context/base/colo-pra.tex b/tex/context/base/colo-pra.tex
new file mode 100644
index 000000000..a915762cb
--- /dev/null
+++ b/tex/context/base/colo-pra.tex
@@ -0,0 +1,64 @@
+%D \module
+%D   [       file=colo-pra,
+%D        version=1997.1.3,
+%D          title=\CONTEXT\ Color Macros,
+%D       subtitle=PRAGMA,
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
+%C details. 
+
+%D This module is not meant for third party use and defines
+%D some \PRAGMA\ specific colors.
+
+% huisstijl
+
+\definecolor [pragmaburcolor]   [r=1,g=0.62,b=0.06] % (Pantone 138 CV) 
+\definecolor [pragmaburkleur]   [pragmaburcolor]
+
+\definecolor [pragmaadecolor]   [r=1,g=0.62,b=0.06] % (Pantone 138 CV) 
+\definecolor [pragmaadekleur]   [pragmaadecolor]
+
+\definecolor [pragmapodcolor]   [r=.6,g=.7,b=.8]    % (rather mathematic)
+\definecolor [pragmapodkleur]   [pragmapodcolor]
+
+\definecolor [pragmacolor]      [pragmaburcolor]
+\definecolor [pragmakleur]      [pragmaburcolor]
+
+\definecolor [texprettyone]     [r=.8, g=0,  b=0]  % red
+\definecolor [texprettytwo]     [r=0,  g=.6, b=0]  % green
+\definecolor [texprettythree]   [r=.0, g=.0, b=.9] % blue
+\definecolor [texprettyfour]    [r=.8, g=.8, b=.6] % yellow
+
+\definecolor [BackgroundColor]  [r=1,  g=1,  b=.7]
+\definecolor [InteractionColor] [r=.1, g=.5, b=.8]
+
+\definecolor [AchtergrondKleur] [BackgroundColor]
+\definecolor [InteractieKleur]  [InteractionColor]
+
+\definecolor [DemoRed]          [r=1, g=.6, b=.6]
+\definecolor [DemoRood]         [DemoRed]
+
+\definecolor [DemoBlue]         [r=.6, g=.8, b=1]
+\definecolor [DemoBlauw]        [DemoBlue]
+
+\definecolor [DemoYellow]       [BackgroundColor]
+\definecolor [DemoGeel]         [BackgroundColor]
+
+% demonstratiekleuren
+
+\definecolor [cyaan:x]       [r=.3,  g=.85, b=1]
+\definecolor [cyaan:y]       [r=.4,  g=.8,  b=1]
+\definecolor [cyaan:z]       [r=.5,  g=.75, b=1]
+
+% schermkleuren
+
+\definecolor [schermgroen]   [r=0,   g=.8,  b=0]
+\definecolor [schermrood]    [r=.8,  g=0,   b=0]
+\definecolor [schermcyaan]   [r=0,   g=.8,  b=.8]
+\definecolor [schermgeel]    [r=.9,  g=.9,  b=0]
+
+\endinput
diff --git a/tex/context/base/colo-run.tex b/tex/context/base/colo-run.tex
new file mode 100644
index 000000000..0b6c6da68
--- /dev/null
+++ b/tex/context/base/colo-run.tex
@@ -0,0 +1,203 @@
+\unprotect 
+
+\gdef\showpalet%
+  {\dodoubleargument\doshowpalet}
+
+\gdef\doshowpalet[#1][#2]%
+  {\doifdefined{\??pa#1}
+     {\doifinsetelse{\v!vertikaal}{#2}
+        {\showverticalpalet[#1][#2]}
+        {\showhorizontalpalet[#1][#2]}}}
+
+\gdef\showverticalpalet[#1][#2]%
+  {\localvbox
+     {\offinterlineskip
+      \setuppalet[#1]
+      \def\rule%
+        {\vrule\!!width3em\!!height\ht\strutbox\!!depth\dp\strutbox}
+      \tabskip\!!zeropoint
+      \def\doshowpalet##1%
+        {\doifinsetelse{\v!nummer}{#2}{##1\hskip.5em}{}&
+         \color[##1]{\rule}\graycolor[##1]{\rule}&
+         \doifinset{\v!waarde}{#2}{\hskip.5em\colorvalue{##1}}\crcr}
+      \halign
+        {\hss##&\hss##\hss&##\cr
+         &\doifinset{\v!naam}{#2}{\strut#1}&\cr%
+         \processpalet[#1]\doshowpalet\crcr}}}
+
+\gdef\showhorizontalpalet[#1][#2]%
+  {\localvbox
+     {\offinterlineskip
+      \setuppalet[#1]
+      \tabskip\!!zeropoint
+      \!!widtha=\!!zeropoint
+      \doifinset{\v!nummer}{#2}
+        {\def\doshowpalet##1%
+           {\setbox0=\hbox{##1}%
+            \ifdim\!!widtha<\wd0\!!widtha=\wd0\fi}%
+         \processpalet[#1]\doshowpalet}%
+      \advance\!!widtha by 1em
+      \ifdim\!!widtha<5em
+        \!!widtha=5em
+      \fi
+      \halign
+        {##&&\hbox to \!!widtha{\hss##\hss}\cr
+         \doifinset{\v!nummer}{#2}
+           {\def\doshowpalet##1{&\strut##1}%
+            \processpalet[#1]\doshowpalet}\cr
+         \doifinset{\v!naam}{#2}{#1\hskip.5em}% 
+         \def\doshowpalet##1%
+           {&\color[##1]{\vrule\!!width\!!widtha\!!height\ht\strutbox\!!depth\!!zeropoint}}%
+         \processpalet[#1]\doshowpalet\crcr
+         \def\doshowpalet##1%
+           {&\graycolor[##1]{\vrule\!!width\!!widtha\!!height\!!zeropoint\!!depth\dp\strutbox}}%
+         \processpalet[#1]\doshowpalet\crcr
+         \doifinset{\v!waarde}{#2}
+           {\def\doshowpalet##1%
+             {&\vbox
+                {\hsize\!!widtha
+                 \vskip.25ex
+                 \everypar{\strut}
+                 \veryraggedcenter
+                 \let\colorformatseparator=\endgraf
+                 \colorvalue{##1}}}%
+            \processpalet[#1]\doshowpalet}%
+         \crcr}}}
+
+\gdef\processpalet[#1]%
+  {\expanded{\globalprocesscommalist[\getvalue{\??pa#1}]}}
+
+\gdef\showcolorgroup%
+  {\dodoubleargument\doshowcolorgroup} 
+
+\gdef\doshowcolorgroup[#1][#2]%
+  {\doifdefined{\??cr#1:1}
+     {\doifinsetelse{\v!vertikaal}{#2}
+        {\showverticalcolorgroup[#1][#2]}
+        {\showhorizontalcolorgroup[#1][#2]}}}
+
+\gdef\showhorizontalcolorgroup[#1][#2]%
+  {\localvbox
+     {\offinterlineskip
+      \setuppalet
+      \tabskip\!!zeropoint
+      \def\rule%
+        {\vrule\!!width4em\!!height\ht\strutbox\!!depth\dp\strutbox}
+      \def\colorformatseparator{\strut\cr}
+      \def\dodoshowgroup##1%
+        {\halign
+           {\hss####\hss\cr
+            \doifinset{\v!nummer}{#2}{\strut##1}\cr
+            \color[#1:##1]{\vrule\!!width4em\!!height\ht\strutbox\!!depth\!!zeropoint}\cr
+            \graycolor[#1:##1]{\vrule\!!width4em\!!height\!!zeropoint\!!depth\dp\strutbox}\cr
+            \doifinset{\v!waarde}{#2}{\colorvalue{#1:##1}\strut}\crcr}}
+      \def\doshowgroup##1%
+        {\doifdefined{\??cr#1:##1}
+           {\vbox{\dodoshowgroup{##1}}}}
+      \hbox 
+        {\doifinset{\v!naam}{#2}
+           {\strut
+            \doifinsetelse{\v!waarde}{#2}
+              {\raise3\lineheight\hbox{#1\hskip.5em}}
+              {#1}%
+            \hskip.5em}%
+         \doshowgroup1\doshowgroup2\doshowgroup3\doshowgroup4%
+         \doshowgroup5\doshowgroup6\doshowgroup7\doshowgroup8}}}
+
+\gdef\showverticalcolorgroup[#1][#2]%
+  {\localvbox
+     {\offinterlineskip
+      \setuppalet
+      \tabskip\!!zeropoint
+      \def\rule%
+        {\vrule\!!width2.5em\!!height\ht\strutbox\!!depth\dp\strutbox}
+      \def\doshowgroup##1%
+        {\doifdefined{\??cr#1:##1}
+           {\doifinset{\v!nummer}{#2}{##1\hskip.5em}&
+            \color[#1:##1]{\rule}\graycolor[#1:##1]{\rule}&
+            \doifinset{\v!waarde}{#2}{\hskip.5em\colorvalue{#1:##1}}\crcr}}
+      \halign
+        {\hss##&\hss##\hss&##\hss\cr
+         &\doifinset{\v!naam}{#2}{\strut#1}&\crcr   
+         \doshowgroup1\doshowgroup2\doshowgroup3\doshowgroup4%
+         \doshowgroup5\doshowgroup6\doshowgroup7\doshowgroup8}}}
+
+\gdef\showcolor[#1]%
+  {\bgroup
+     \setupcolor[#1]
+     \stelwitruimtein[\v!geen]
+     \def\rule%
+       {\vrule\!!width4em\!!height\ht\strutbox\!!depth\dp\strutbox}
+     \def\docommand##1%
+       {\hbox 
+          {\graycolor[##1]{\rule}\quad
+           \color[##1]{\rule}\quad
+           \grayvalue{##1}\quad
+           \hbox to 12em{\colorvalue{##1}\hss}%
+           \strut##1}
+        \endgraf}
+     \processcommacommand[\colorlist]\docommand
+   \egroup}
+
+\gdef\comparepalet%
+  {\dosingleargument\docomparepalet}
+
+\gdef\docomparepalet[#1]%
+  {\doifdefined{\??pa#1}
+     {\hbox
+        {\dodocomparepalet\color[#1]%
+         \quad
+         \dodocomparepalet\graycolor[#1]}}}
+
+\gdef\dodocomparepalet#1[#2]%
+  {\localvbox
+     {\offinterlineskip
+      \setuppalet[#2]
+      \getcommacommandsize[\getvalue{\??pa#2}]
+      \!!widtha=2em\relax
+      \hsize=\commalistsize\!!widtha
+      \def\rule%
+        {\vrule\!!width.5\!!widtha\!!height2.25ex\!!depth-.75ex}
+      \def\dododocomparepalet##1%
+        {\hbox
+           {\setbox0=\hbox
+              {#1[##1]{\vrule\!!width\hsize\!!height3ex}}%
+            \wd0=\!!zeropoint\box0
+            \hbox to \hsize
+              {\def\dododocomparepalet####1%
+                 {\hbox to \!!widtha
+                    {\hss#1[####1]{\rule}\hss}}%
+               \processcommacommand[\getvalue{\??pa#2}]\dododocomparepalet}}
+         \endgraf}
+      \processcommacommand[\getvalue{\??pa#2}]\dododocomparepalet}}
+
+\gdef\comparecolorgroup%
+  {\dosingleargument\docomparecolorgroup}
+
+\gdef\docomparecolorgroup[#1]%
+  {\doifdefined{\??cr#1:1}
+     {\hbox
+        {\dodocomparecolorgroup\color[#1]%
+         \quad
+         \dodocomparecolorgroup\graycolor[#1]}}}
+
+\gdef\dodocomparecolorgroup#1[#2]%
+  {\localvbox
+     {\!!counta=0
+      \dorecurse{15}
+        {\doifdefined{\??cr#2:\recurselevel}{\advance\!!counta by 1}}
+      \!!widtha=2em\relax
+      \hsize=\!!counta\!!widtha
+      \def\rule%
+        {\vrule\!!width.5\!!widtha\!!height2.25ex\!!depth-.75ex}
+      \def\dododocomparecolorgroup##1%
+        {\hbox to \hsize
+           {\setbox0=\hbox
+              {#1[#2:##1]{\vrule\!!width\hsize\!!height3ex}}%
+            \wd0=\!!zeropoint\box0
+            \hbox to \hsize
+              {\hss\dorecurse{\!!counta}{#1[#2:\recurselevel]{\rule}\hss}}}
+         \endgraf}
+      \dorecurse{\!!counta}{\dododocomparecolorgroup\recurselevel}}}
+
+\protect \endinput 
diff --git a/tex/context/base/cont-old.tex b/tex/context/base/cont-old.tex
index 5451de8b0..6fb82c4dd 100644
--- a/tex/context/base/cont-old.tex
+++ b/tex/context/base/cont-old.tex
@@ -82,6 +82,9 @@
 %substitutecommand \showcorpsenvironment    \showbodyfontenvironment
 
               %def \corpssize               {\bodyfontsize}
+
+\substitutecommand \showencoding            {\showaccents\showcharacters}
+
 \protect
 
 \endinput
diff --git a/tex/context/base/cont-sys.ori b/tex/context/base/cont-sys.ori
new file mode 100644
index 000000000..cbeee6a1e
--- /dev/null
+++ b/tex/context/base/cont-sys.ori
@@ -0,0 +1,92 @@
+%D \module
+%D   [       file=cont-sys,
+%D        version=1995.10.10,
+%D          title=\CONTEXT\ Miscellaneous Macros,
+%D       subtitle=System Specific Setups,
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
+%C details. 
+
+\unprotect
+
+% Here you can take care of overloading some (style) 
+% defaults. What goes here, depends on your local system. 
+%
+% Set default file name mapping:
+%
+% \usetypescript [ber] 
+%
+% Overload Lucida by Adobe-15:
+%
+% \definetypescriptsynonym [lbr] [pos] 
+%
+% Compensate for missing files:
+%
+% \definefontsynonym [Courier-Bold]        [Courier]
+% \definefontsynonym [Courier-BoldOblique] [Courier]
+%
+% \definefontsynonym [gbhei]   [gbsong]
+% \definefontsynonym [gbheisl] [gbsong]
+% \definefontsynonym [gbheisl] [gbsong]
+%
+% Setting up a global figure path (beware, \c!gebied may change): 
+%
+% \setupexternalfigures
+%   [\c!gebied={e:/fig/eps,t:/pragma/metapost/symbols}]
+%
+% Loading a specific special driver: 
+%
+% \setupoutput 
+%   [dviwindo]
+%
+% Enabling \CONTEXT\ navigation symbols as well as \euro's. 
+
+\usesymbols
+  [nav,eur] 
+
+\setupsymbolset
+  [navigation 1]
+
+\setupinteraction
+  [\c!symboolset=navigation 1]
+
+% Changing language defaults: 
+% 
+% \setuplanguage
+%   [nl]
+%   [\c!leftquote=\upperleftsinglesixquote,
+%    \c!leftquotation=\upperleftdoublesixquote]
+%
+% So far for the settings. 
+
+% Loading local preferences: 
+%
+% \input prag-gen % company styles 
+% \input prag-log % more company styles 
+%
+% Enabling run time \METAPOST\ (also enable \write18 in texmf.cnf):
+
+   \runMPgraphicstrue 
+\runMPTEXgraphicstrue
+  \recycleMPslotstrue 
+\useMETAFUNformattrue
+
+% Enabling nested pretty printing:
+
+       \newprettytrue 
+
+% Protect filenames: 
+
+  \protectbufferstrue
+
+% not really needed
+
+% \runutilityfiletrue 
+
+% So far. 
+
+\protect \endinput
diff --git a/tex/context/base/cont-sys.rme b/tex/context/base/cont-sys.rme
deleted file mode 100644
index d4be0d79a..000000000
--- a/tex/context/base/cont-sys.rme
+++ /dev/null
@@ -1,87 +0,0 @@
-%D \module
-%D   [       file=cont-sys,
-%D        version=1995.10.10,
-%D          title=\CONTEXT\ Miscellaneous Macros,
-%D       subtitle=System Specific Setups,
-%D         author=Hans Hagen,
-%D           date=\currentdate,
-%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
-%C details. 
-
-\unprotect
-
-% Some examples of missing font sets and font files:   
-%
-% \setupbodyfont [ber] % berry names
-%
-% \definefilesynonym [font-lbr] [font-cmr] 
-%
-% \definefontsynonym [Courier-Bold]        [Courier]
-% \definefontsynonym [Courier-BoldOblique] [Courier]
-%
-% \definefontsynonym [gbhei]   [gbsong]
-% \definefontsynonym [gbheisl] [gbsong]
-% \definefontsynonym [gbheisl] [gbsong]
-%
-% Setting up a global figure path (beware, \c!gebied may change): 
-%
-% \setupexternalfigures
-%   [\c!gebied={e:/fig/eps,t:/pragma/metapost/symbols}]
-%
-% Loading a specific special driver: 
-%
-% \setupoutput 
-%   [dviwindo]
-%
-% Enabling \CONTEXT\ navigation symbols as well as \euro's. 
-%
-% \usesymbols
-%   [nav,eur] 
-%
-% \setupsymbolset
-%   [navigation 1]
-%
-% \setupinteraction
-%   [\c!symboolset=navigation 1]
-%
-% Changing language defaults: 
-% 
-% \setuplanguage
-%   [nl]
-%   [\c!leftquote=\upperleftsinglesixquote,
-%    \c!leftquotation=\upperleftdoublesixquote]
-%
-% So far for the settings. 
-
-\protect 
-
-% Loading local preferences: 
-%
-% \input prag-gen % company styles 
-% \input prag-log % more company styles 
-%
-% Enabling run time \METAPOST\ (also enable \write18 in texmf.cnf):
-
-   \runMPgraphicstrue 
-\runMPTEXgraphicstrue
-  \recycleMPslotstrue 
-\useMETAFUNformattrue
-
-% Enabling nested pretty printing:
-
-       \newprettytrue 
-
-% Protect filenames: 
-
-  \protectbufferstrue
-
-% not really needed
-
-% \runutilityfiletrue 
-
-% So far. 
-
-\endinput
diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex
index 512010c0d..c04c6ce80 100644
--- a/tex/context/base/context.tex
+++ b/tex/context/base/context.tex
@@ -13,7 +13,7 @@
 
 \catcode`\{=1 \catcode`\}=2 
 
-\def\contextversion{2001.4.9}
+\def\contextversion{2001.4.23}
 
 %D Welcome to the main module. When this module is ran through
 %D \type{initex} or \type{tex -i} or \type{whatevertex} using
@@ -171,6 +171,7 @@
 \input core-mat.tex
 \input core-syn.tex 
 \input core-mul.tex % moved 
+\input core-spa.tex 
 \input main-001.tex % still to be split  
 \input core-sec.tex 
 \input core-pag.tex
@@ -215,6 +216,10 @@
 \input font-ini.tex
 \input font-uni.tex
 
+\input type-ini.tex
+
+\input math-ini.tex
+
 %D Now we're ready for more core modules.
 
 \input core-fnt.tex
diff --git a/tex/context/base/core-reg.tex b/tex/context/base/core-reg.tex
index 3b996ee09..841df4e46 100644
--- a/tex/context/base/core-reg.tex
+++ b/tex/context/base/core-reg.tex
@@ -72,48 +72,92 @@
    \processseparatedlist[#1][+]\docommando
    \!!stringa}
 
-\def\doprocesspageregister[#1]#2%
+% \def\doprocesspageregister[#1]#2%
+%   {\begingroup
+%    \thisisnextinternal{\s!ind}%
+%    \ifduplicate\getlastregisterentry{#2}\fi
+%    \convertexpanded{\??id\currentregister}{#2}\asciiregisterentry
+%    \makesectionformat
+%    \edef\schrijfwegnaarregister%
+%      {\writeutility%
+%         {r \ifcase\registerpagestatus\space\or e \or f \or t \fi
+%          {\currentregister} %
+%          {\nextinternalreference} %
+%          {#1} %
+%          {\asciiregisterentry} %
+%          {\sectionformat::\noexpand\pagenumber} %
+%          {\noexpand\realfolio}}}%
+%    \schrijfwegnaarregister
+%    \getfirstcharacter\currentregister
+%    \registerinfo{> \firstcharacter}{#2}%
+%    \endgroup}
+
+\def\doprocesspageregister[#1]#2#3% key altnum entry 
   {\begingroup
    \thisisnextinternal{\s!ind}%
-   \ifduplicate\getlastregisterentry{#2}\fi
-   \convertexpanded{\??id\currentregister}{#2}\asciiregisterentry
+   \ifduplicate\getlastregisterentry{#3}\fi
+   \convertexpanded{\??id\currentregister}{#3}\asciiregisterentry
    \makesectionformat
-   \edef\schrijfwegnaarregister%
+   \doifelsevalue{\??id\currentregister\c!eigennummer}{\v!ja}{\donetrue}{\donefalse}%
+   \edef\schrijfwegnaarregister% spaces between } { are essential for texutil's split  
      {\writeutility%
         {r \ifcase\registerpagestatus\space\or e \or f \or t \fi
          {\currentregister} %
          {\nextinternalreference} %
          {#1} %
          {\asciiregisterentry} %
-         {\sectionformat::\noexpand\pagenumber} %
+%         {\sectionformat::\noexpand\pagenumber} %
+         {\sectionformat::\ifdone#2\else\noexpand\pagenumber\fi} %
          {\noexpand\realfolio}}}%
    \schrijfwegnaarregister
    \getfirstcharacter\currentregister
-   \registerinfo{> \firstcharacter}{#2}%
+   \registerinfo{> \firstcharacter}{#3}%
    \endgroup}
 
-\def\complexdoregister[#1]#2%
-  {\doprocesspageregister[#1]{#2}%
-   \ifvmode\nobreak\fi
-   \GotoPar}
+%\def\complexdoregister[#1]#2%
+%  {\doprocesspageregister[#1]{#2}%
+%   \ifvmode\nobreak\fi
+%   \GotoPar}
 
 %\def\doregister#1%
 %  {\def\currentregister{#1}%
 %   \complexorsimpleempty\doregister}
 
+%\def\doregister#1%
+%  {\chardef\registerpagestatus=1
+%   \def\currentregister{#1}%
+%   \complexorsimpleempty\doregister}
+
 \def\doregister#1%
   {\chardef\registerpagestatus=1
    \def\currentregister{#1}%
-   \complexorsimpleempty\doregister}
+   \doifelsevalue{\??id\currentregister\c!eigennummer}{\v!ja}
+     {\def\next{\dosingleempty\dodoregister}}
+     {\def\next{\dosingleempty\donoregister}}%
+   \next}
+
+\def\donoregister[#1]%
+  {\dodoregister[#1]{}}
+
+\def\dodoregister[#1]#2#3%
+  {\doprocesspageregister[#1]{#2}{#3}%
+   \ifvmode\nobreak\fi
+   \GotoPar}
 
 \def\startregister%
   {\dodoubleargument\dostartregister}
 
+%\def\dostartregister[#1][#2]#3%
+%  {\chardef\registerpagestatus=2
+%   \def\currentregister{#1}%
+%   \setgvalue{\??id#1\??id#2}{\dodostopregister[#1][#2]{#3}}%
+%   \complexdoregister[#2]{#3}}
+
 \def\dostartregister[#1][#2]#3%
   {\chardef\registerpagestatus=2
    \def\currentregister{#1}%
    \setgvalue{\??id#1\??id#2}{\dodostopregister[#1][#2]{#3}}%
-   \complexdoregister[#2]{#3}}
+   \donoregister[#2]{#3}}
 
 \def\stopregister%
   {\dodoubleargument\dostopregister}
@@ -121,10 +165,15 @@
 \def\dostopregister[#1][#2]%
   {\getvalue{\??id#1\??id#2}\setgvalue{\??id#1\??id#2}{}}
 
+%\def\dodostopregister[#1][#2]%
+%  {\chardef\registerpagestatus=3
+%   \def\currentregister{#1}%
+%   \complexdoregister[#2]}
+
 \def\dodostopregister[#1][#2]%
   {\chardef\registerpagestatus=3
    \def\currentregister{#1}%
-   \complexdoregister[#2]}
+   \donoregister[#2]}
 
 \def\complexdozieregister[#1]#2#3%
   {\begingroup
@@ -150,9 +199,13 @@
   {\def\currentregister{#1}%
    \complexorsimpleempty\dozieregister}
 
+%\def\doschrijfnaarregister[#1]%  % de twee-traps-aanroep is nodig
+%  {\edef\currentregister{#1}%    % om gebruik van \ExpandBothAfter
+%   \doprocesspageregister}       % mogelijk te maken
+
 \def\doschrijfnaarregister[#1]%  % de twee-traps-aanroep is nodig
   {\edef\currentregister{#1}%    % om gebruik van \ExpandBothAfter
-   \doprocesspageregister}       % mogelijk te maken
+   \doprocesspageregister{}}     % mogelijk te maken
 
 \def\schrijfnaarregister%
   {\dodoubleempty\doschrijfnaarregister}
diff --git a/tex/context/base/core-spa.tex b/tex/context/base/core-spa.tex
new file mode 100644
index 000000000..87983690f
--- /dev/null
+++ b/tex/context/base/core-spa.tex
@@ -0,0 +1,1870 @@
+%D \module
+%D   [       file=core-spa,
+%D        version=1997.03.31,
+%D          title=\CONTEXT\ Core Macros,
+%D       subtitle=Spacing,
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{Context Spacing Macros}
+
+\unprotect 
+
+\newevery \everybodyfont \Everybodyfont % just to be sure
+
+\appendtoks \presetnormallineheight \to \everybodyfont
+\appendtoks \setnormalbaselines     \to \everybodyfont
+\appendtoks \setstrut               \to \everybodyfont
+\appendtoks \settopskip             \to \everybodyfont
+\appendtoks \setmaxdepth            \to \everybodyfont
+\appendtoks \spacing               1\to \everybodyfont
+\appendtoks \stelinspringenin       \to \everybodyfont
+\appendtoks \stelblankoin           \to \everybodyfont
+\appendtoks \stelwitruimtein        \to \everybodyfont
+%\appendtoks\setupfootnotes         \to \everybodyfont
+\appendtoks \stelspatieringin       \to \everybodyfont % nieuw
+\appendtoks \setdisplayskips        \to \everybodyfont % nieuw
+
+\def\stelfactorenin%
+  {\stelwitruimtein
+   \stelblankoin
+   \settopskip
+   \setmaxdepth}
+
+%D There are two ways to influence the interline spacing. The
+%D most general and often most consistent way is using
+%D
+%D \showsetup{\y!stelinterliniein}
+%D
+%D For instance
+%D
+%D \starttypen
+%D \setupinterlinespace[line=2.8ex]
+%D \stoptypen
+%D
+%D This setting adapts itself to the bodyfontsize, while for
+%D instance saying
+%D
+%D \starttypen
+%D \setupinterlinespace[line=12pt]
+%D \stoptypen
+%D
+%D sets things fixed for all sizes, which is definitely not
+%D what we want. Therefore one can also say:
+%D
+%D \starttypen
+%D \definecorpsenvironment[9pt][interlinespace=11pt]
+%D \stoptypen
+%D
+%D One can still use \type{\setupinterlinespace} (without
+%D arguments) to set the interline space according to the
+%D current font, e.g. a \type{\bfa}.
+
+\newif\iflocalinterlinespace
+
+% font-ini
+
+\ifx\bodyfontinterlinespecs\undefined
+
+  \let\bodyfontinterlinespecs\empty
+  \let\bodyfontinterlinespace\empty
+
+\fi
+
+\def\presetnormallineheight%
+  {\edef\normallineheight{\@@itregel}%
+   \iflocalinterlinespace \else
+     \doifdefined{\bodyfontinterlinespecs}
+       {\doifsomething{\bodyfontinterlinespace}
+          {\edef\normallineheight{\bodyfontinterlinespace}}}%
+   \fi}
+
+\def\complexstelinterliniein[#1]% \commalistelement ipv #1
+  {\doifassignmentelse{#1}
+     {\getparameters[\??it][#1]%
+      \scratchdimen=0\@@ithoogte pt
+      \advance\scratchdimen by 0\@@itdiepte pt
+      \ifdim\scratchdimen>1pt
+        \showmessage{\m!layouts}{10}{\@@ithoogte,\@@itdiepte}%
+        \let\@@ithoogte=\strutheightfactor
+        \let\@@itdiepte=\strutdepthfactor
+      \else
+        \let\strutheightfactor=\@@ithoogte
+        \let\strutdepthfactor=\@@itdiepte
+      \fi
+      \let\minimallinedistance=\@@itafstand
+      \let\normallineheight=\@@itregel % let ! ! ! ! ! ivm ex 
+      \let\topskipfactor=\@@itboven
+      \let\maxdepthfactor=\@@itonder
+      \setfontparameters % redundant \setstrut
+      \updateraggedskips} % yes indeed
+     {\processallactionsinset % \regelwit = dummy !
+        [#1]
+        [     \v!aan=>\oninterlineskip,
+              \v!uit=>\offinterlineskip,
+            \v!reset=>\setfontparameters,
+          \s!unknown=>\assignvalue{#1}{\regelwit}{1.00}{1.25}{1.50}%
+                      \spacing{\regelwit}]}}
+
+\def\simplestelinterliniein%
+  {\localinterlinespacetrue
+   \setfontparameters
+   \updateraggedskips % funny one here
+   \localinterlinespacefalse}
+
+\definecomplexorsimple\stelinterliniein
+
+% In earlier versions \type{\bigskipamount} was
+% \type{\ht\strutbox} and the stretch was plus or minus
+% \type{.4\dp\strutbox}. Don't ask me why. The most recent
+% implementation is based on a user supplied distance, which
+% is by default \type{.75\normalskipamount} where
+% \type{\normalskipamount} equals the current baseline
+% distance.
+
+\newif\ifblankoreset        \blankoresetfalse
+\newif\ifblankoblokkeer     \blankoblokkeerfalse
+\newif\ifblankogeenwit      \blankogeenwitfalse
+\newif\ifdoeblanko          \doeblankofalse
+\newif\ifblankoflexibel     \blankoflexibeltrue
+\newif\ifblankobuiten
+\newif\ifblankoforceer
+
+\newskip\blankoskip         \blankoskip=\bigskipamount
+\newskip\blankoskipamount
+
+\def\skipfactor       {.75}
+\def\skipgluefactor   {.25}
+
+\def\normalskipamount%
+  {\openlineheight
+     \ifgridsnapping \else \ifblankoflexibel
+       \!!plus\skipgluefactor\openlineheight
+       \!!minus\skipgluefactor\openlineheight
+     \fi \fi
+   \relax}
+
+\def\regelafstand{\normalskipamount}
+
+\def\deblankoskip{\skipfactor\regelafstand}
+
+\def\laatsteblankoskip%
+  {\blankoskip}
+
+\def\geenblanko%
+  {\removelastskip}
+
+\def\dosingleblanko#1% ook nog \v!halveregel+fuzzysnap
+  {\doifelse{#1}{\v!regel}
+     {\blankoskipamount=\openlineheight}
+     {\ifgridsnapping
+        \assigndimension{#1}{\blankoskipamount}%
+          {.25\openlineheight}{.5\openlineheight}{\openlineheight}%
+      \else
+        \assigndimension{#1}{\blankoskipamount}%
+          {\smallskipamount}{\medskipamount}{\bigskipamount}%
+      \fi}%
+   \global\advance\blankoskip by \blankoskipamount}
+
+\newif\iffuzzyvskip
+
+% old
+%
+% \def\doblanko#1%
+%   {\processallactionsinset
+%      [#1]
+%      [    \v!groot=>\dosingleblanko\v!groot, % happens often
+%          \v!buiten=>\ifvmode\ifinner\blankobuitentrue\fi\fi,
+%           \v!reset=>\global\blankoresettrue,
+%        \v!flexibel=>\global\lokaalblankoflexibeltrue,
+%            \v!vast=>\global\lokaalblankovasttrue,
+%            \v!back=>\geenblanko,
+%             \v!wit=>\global\advance\blankoskip by \parskip,
+%         \v!formule=>\global\advance\blankoskip by \medskipamount,
+%         \v!geenwit=>\global\blankogeenwittrue,
+%            -\v!wit=>\global\advance\blankoskip by -\parskip,
+%        \v!blokkeer=>\global\blankoblokkeertrue,
+%         \v!forceer=>\global\blankoforceertrue,
+%           \v!regel=>\global\advance\blankoskip by \lineheight,
+%      \v!halveregel=>\global\fuzzyvskiptrue\global\advance\blankoskip by .5\lineheight,
+%         \s!unknown=>{\herhaalmetcommando[#1]\dosingleblanko}]}
+%
+% new, see below
+
+\def\doblanko#1%
+  {\processallactionsinset
+     [#1]
+     [    \v!groot=>\dosingleblanko\v!groot, % happens often
+         \v!buiten=>\ifvmode\ifinner\blankobuitentrue\fi\fi,
+          \v!reset=>\global\blankoresettrue,
+       \v!flexibel=>\global\lokaalblankoflexibeltrue,
+           \v!vast=>\global\lokaalblankovasttrue,
+           \v!back=>\geenblanko,
+            \v!wit=>\global\advance\blankoskip by \parskip,
+        \v!formule=>\global\advance\blankoskip by \medskipamount,
+        \v!geenwit=>\global\blankogeenwittrue,
+           -\v!wit=>\global\advance\blankoskip by -\parskip,
+       \v!blokkeer=>\global\blankoblokkeertrue,
+        \v!forceer=>\global\blankoforceertrue,
+          \v!regel=>\global\advance\blankoskip by \lineheight,
+     \v!halveregel=>\global\fuzzyvskiptrue\global\advance\blankoskip by .5\lineheight,
+        \s!unknown=>\doindirectblanko{#1}]}
+
+\def\oldprevdepth{\prevdepth}%
+\def\newprevdepth{-1001pt}
+
+\def\mindimen{0.00002pt} % beter 1sp 
+
+\newif\iflokaalblankovast
+\newif\iflokaalblankoflexibel
+
+\def\docomplexdoblanko[#1]% pas op \relax's zijn nodig ivm volgende \if
+  {\global\blankoresetfalse
+   \global\blankoblokkeerfalse
+   \global\blankogeenwitfalse
+   \global\lokaalblankoflexibelfalse
+   \global\lokaalblankovastfalse
+   \global\blankoskip=\!!zeropoint
+   \global\blankoforceerfalse
+   \blankobuitenfalse
+   \processcommalist[#1]\doblanko
+\ifdim\blankoskip=\!!zeropoint\relax
+  \iflokaalblankoflexibel \dosingleblanko\currentblanko \fi
+  \iflokaalblankovast     \dosingleblanko\currentblanko \fi
+\fi
+   \ifblankobuiten
+   \else
+     \par
+     \ifvmode          %in pos fonts gaat dit mis 
+       \ifblankoforceer%\ifdim\prevdepth>\!!zeropoint\else
+         % -1000pt signals top of page or column (\ejectcolumn)
+         \vbox{\strut}\kern-\lineheight
+       \fi%\fi
+       \ifblankoblokkeer
+         \global\doeblankofalse
+         \edef\oldprevdepth{\the\prevdepth}%
+         \prevdepth=\newprevdepth
+       \else
+         \global\doeblankotrue
+       \fi
+       \ifblankoreset
+         \global\doeblankotrue
+         \ifdim\prevdepth=\newprevdepth
+           \prevdepth=\oldprevdepth
+         \fi
+       \fi
+       \ifdoeblanko
+         \ifdim\lastskip<\blankoskip\relax
+           % else when \blanko[2*groot] + \blanko[3*groot] with parskip
+           % equaling 1*groot, gives a groot=\parskip so adding a small
+           % value makes it distinguishable; can also be done at parskip
+           % setting time (better)
+           \global\advance\blankoskip by \mindimen\relax % = skip
+           % test this on 2* + 3* and parskip groot
+           \ifblankogeenwit
+             \global\advance\blankoskip by -\parskip
+           \else
+             \ifdim\lastskip=\parskip
+             \else  % force this due to previous comment
+               \ifdim\parskip>\!!zeropoint\relax
+                 \ifdim\blankoskip<\parskip\relax
+                   \global\blankoskip=\!!zeropoint
+                 \else
+                   \global\advance\blankoskip by -\parskip
+                 \fi
+               \fi
+             \fi
+           \fi
+\ifblankoflexibel \else
+  \blankoskip=1\blankoskip 
+\fi
+\iflokaalblankovast 
+  \blankoskip=1\blankoskip 
+\fi
+\iflokaalblankoflexibel       
+  \blankoskip=1\blankoskip 
+    \!!plus\skipgluefactor\blankoskip
+    \!!minus\skipgluefactor\blankoskip
+\fi
+           \ifdim\prevdepth=\newprevdepth
+           \else
+             \iffuzzyvskip
+               \removelastfuzzyvskip
+               \fuzzyvskip\blankoskip\relax
+             \else
+               \removelastskip
+               \vskip\blankoskip\relax
+             \fi
+           \fi
+         \else
+           \iffuzzyvskip
+             \removelastfuzzyvskip
+             \fuzzyvskip\blankoskip\relax
+           \fi
+         \fi
+       \fi
+     \fi
+   \fi
+   \global\fuzzyvskipfalse
+   \presetindentation}
+
+\def\complexdodoblanko[#1]%
+  {\flushfootnotes
+   \ifopelkaar
+     \ifinpagebody
+       \expanded{\docomplexdoblanko[#1]}% \expanded=nieuw
+     \else
+       \par
+     \fi
+   \else
+     \expanded{\docomplexdoblanko[#1]}% \expanded = nieuw
+   \fi}
+
+% old
+%
+% \def\doindirectblanko#1%
+%   {\ifundefined{\??bo#1}% <-etex \expandafter\ifx\csname\??bo#1\endcsname\relax
+%      \expanded{\complexdodoblanko[#1]}%
+%    \else
+%      \expandafter\complexdoblanko\expandafter[\csname\??bo#1\endcsname]%
+%    \fi}
+%
+% \def\complexdoblanko[#1]% enables [force,8\bodyfontsize]
+%   {\doifinstringelse{,}{#1}
+%      {\expanded{\complexdodoblanko[#1]}}
+%      {\doifnumberelse{#1}
+%         {\expanded{\complexdodoblanko[#1]}}
+%         {\doindirectblanko{#1}}}}
+%
+% new, more robust 
+%
+% \def\doindirectblanko#1%
+%   {\edef\ascii{#1}\convertcommand\ascii\to\ascii
+%    \ifundefined{\??bo\ascii}% <-etex \expandafter\ifx\csname\??bo#1\endcsname\rel
+%      \herhaalmetcommando[#1]\dosingleblanko
+%    \else
+%      \expandafter\complexdoblanko\expandafter[\csname\??bo\ascii\endcsname]%
+%    \fi}
+% 
+% even more robust
+
+\def\doindirectblanko#1%
+  {\edef\ascii{#1}\convertcommand\ascii\to\ascii
+   \ifundefined{\??bo\ascii}% <-etex \expandafter\ifx\csname\??bo#1\endcsname
+     \expanded{\herhaalmetcommando[#1]\noexpand\dosingleblanko}%
+   \else
+     \expandafter\complexdoblanko\expandafter[\csname\??bo\ascii\endcsname]%
+   \fi}
+
+\def\complexdoblanko[#1]% enables [force,8\bodyfontsize]
+  {\expanded{\complexdodoblanko[#1]}}
+
+\def\currentblanko%
+  {\v!groot}
+
+%D For a long time we had: 
+%D
+%D \starttypen 
+%D \def\simpledoblanko%
+%D   {\doifelse{\currentwitruimte}{\v!geen}
+%D      {\blanko[\currentblanko]}
+%D      {\blanko[\currentwitruimte]}}
+%D \stoptypen
+%D
+%D But Berend de Boer wanted more control, so now we have:  
+
+\def\simpledoblanko%
+  {\doifelse{\currentwitruimte}{\v!geen}
+     {\blanko[\currentblanko]}
+     {\blanko[\s!default]}}
+
+%D Another useful definition would be:
+%D
+%D \starttypen 
+%D \definieerblanko
+%D   [\s!default]
+%D   [\v!groot]
+%D \stoptypen
+
+\def\blanko% % the \relax is definitely needed due to the many \if's
+  {\relax\complexorsimple\doblanko}
+
+%\def\dostelblankoin#1%
+%  {\bgroup % rommelig 
+%   \skip0=#1\relax
+%   \xdef\globalblanko{\the\skip0}%
+%   \egroup
+%   \bigskipamount=\globalblanko
+%   \smallskipamount=\globalblanko
+%   \medskipamount=\globalblanko
+%   \divide\medskipamount by 2\relax
+%   \divide\smallskipamount by 4\relax}%
+
+\def\dostelblankoin#1%
+  {\bigskipamount=#1\relax
+   \ifblankoflexibel \else
+     \bigskipamount=1\bigskipamount
+   \fi
+   \smallskipamount=\bigskipamount
+   \medskipamount=\bigskipamount
+   \divide\medskipamount by 2
+   \divide\smallskipamount by 4 }%
+
+\def\complexstelblankoin[#1]%
+  {\ifgridsnapping
+     \blankoflexibelfalse
+   \else
+     \ExpandFirstAfter\processallactionsinset
+       [#1]
+       [ \v!flexibel=>\blankoflexibeltrue,
+             \v!vast=>\blankoflexibelfalse]%
+   \fi
+   \ExpandFirstAfter\processallactionsinset
+     [#1]
+     [ \v!flexibel=>\dostelblankoin{\deblankoskip},
+           \v!vast=>\dostelblankoin{\deblankoskip},
+          \v!regel=>\edef\deblankoskip{\regelafstand}%
+                    \dostelblankoin{\deblankoskip}%
+                    \let\deblanko=\v!groot,
+     \v!halveregel=>\scratchskip=.5\regelafstand
+                    \edef\deblankoskip{\the\scratchskip}%
+                    \dostelblankoin{\deblankoskip}%
+                    \let\deblanko=\v!middel,
+          \v!groot=>\ifgridsnapping
+                      \edef\deblankoskip{\regelafstand}%
+                      \dostelblankoin{\deblankoskip}%
+                    \fi
+                    \def\currentblanko{\v!groot}%
+                    \let\deblanko=\v!groot,
+         \v!middel=>\def\currentblanko{\v!middel}%
+                    \let\deblanko=\v!middel,
+          \v!klein=>\def\currentblanko{\v!klein}%
+                    \let\deblanko=\v!klein,
+        \v!normaal=>\dostelblankoin{\deblankoskip}%
+                    \let\deblanko=\v!groot,
+      \v!standaard=>\edef\deblankoskip{\skipfactor\regelafstand}%
+                    \dostelblankoin{\deblankoskip}%
+                    \let\deblanko=\v!groot,
+        \s!default=>\dostelblankoin{\deblankoskip}%
+                    \let\deblanko=\v!groot,
+        \s!unknown=>\let\deblankoskip=\commalistelement
+                    \dostelblankoin{\deblankoskip}%
+                    \let\deblanko=\v!groot]%
+   \stelwitruimtein}
+
+% \definecomplexorsimpleempty\stelblankoin
+%
+% speed gain: 60 sec -> 30 sec
+
+\definecomplexorsimple\stelblankoin
+
+\def\simplestelblankoin% == snelle \stelblankoin[\s!default]
+  {\ifgridsnapping
+     \blankoflexibelfalse
+   \fi
+   \dostelblankoin{\deblankoskip}%
+   \let\deblanko\v!groot
+   \stelwitruimtein}
+
+\def\dodefinieerblanko[#1][#2]%
+  {\def\docommando##1{\setvalue{\??bo##1}{#2}}%
+   \processcommalist[#1]\docommando}
+
+\def\definieerblanko%
+  {\dodoubleargument\dodefinieerblanko}
+
+\def\savecurrentblanko%
+  {\edef\restorecurrentblanko%
+     {\bigskipamount=\the\bigskipamount
+      \medskipamount=\the\medskipamount
+      \smallskipamount=\the\smallskipamount
+      \noexpand\def\noexpand\currentblanko{\currentblanko}%
+      \ifblankoflexibel
+        \noexpand\blankoflexibeltrue
+      \else
+        \noexpand\blankoflexibelfalse
+      \fi}}
+
+\def\inhibitblank% the fast, local way
+  {\endgraf\ifvmode\prevdepth\newprevdepth\fi}
+
+%D Now. 
+
+\definieerblanko
+  [\s!default]
+  [\v!wit]
+
+\let\currentvoorwit=\empty
+
+\newdimen\voorwit
+
+\newif\ifindentfirstparagraph % \indentfirstparagraphtrue
+
+\def\presetindentation%
+  {\doifoutervmode
+     {\ifindentfirstparagraph\else\noindentation\fi}}
+
+%\def\dostelinspringenin[#1]%
+%  {\processallactionsinset
+%     [#1]
+%     [   \v!eerste=>\indentfirstparagraphtrue,
+%       \v!volgende=>\indentfirstparagraphfalse,
+%        \s!default=>\dodostelinspringenin,
+%        \s!unknown=>\edef\currentvoorwit{\commalistelement}%
+%                    \dodostelinspringenin]}
+%
+%\def\dodostelinspringenin%
+%  {\assigndimension{\currentvoorwit}{\voorwit}{1em}{1.5em}{2em}%
+%   \parindent=\voorwit\relax}
+%
+%\def\stelinspringenin%
+%  {\dosingleempty\dostelinspringenin}
+
+\definecomplexorsimple\stelinspringenin
+
+\def\complexstelinspringenin[#1]%
+  {\processallactionsinset
+     [#1]
+     [   \v!eerste=>\indentfirstparagraphtrue,
+       \v!volgende=>\indentfirstparagraphfalse,
+        \s!default=>\simplestelinspringenin,
+        \s!unknown=>\edef\currentvoorwit{\commalistelement}%
+                    \simplestelinspringenin]}
+
+\def\simplestelinspringenin%
+  {\assigndimension{\currentvoorwit}{\voorwit}{1em}{1.5em}{2em}%
+   \parindent=\voorwit\relax}
+
+\def\doinspringen[#1]%
+  {\processallactionsinset
+     [#1]
+     [    \v!nee=>\parindent=\voorwit\relax\noindent,
+         \v!niet=>\parindent=\voorwit\relax\noindent,
+           \v!ja=>\parindent=\voorwit\relax,            % geen \indent !
+       \v!eerste=>\indentfirstparagraphtrue,
+     \v!volgende=>\indentfirstparagraphfalse,
+       \v!altijd=>\parindent=\voorwit\relax,            % geen \indent !
+        \v!nooit=>\parindent=\!!zeropoint\relax]}
+
+\def\inspringen%
+  {\dosingleargument\doinspringen}
+
+\def\nietinspringen{\inspringen[\v!nee,\v!volgende]}
+\def\welinspringen {\inspringen[\v!ja,\v!eerste]}
+
+% \frenchspacing leidt soms tot afbreken tussen -, vandaar
+% de variant \newfrenchspacing.
+
+\def\dofrenchspacing#1%
+  {\sfcode`\.#1 \sfcode`\,#1\relax
+   \sfcode`\?#1 \sfcode`\!#1\relax
+   \sfcode`\:#1 \sfcode`\;#1\relax}
+
+\def\frenchspacing%
+  {\dofrenchspacing{1000}}   % \@m
+
+\def\newfrenchspacing%
+  {\dofrenchspacing{1050}}   % \@ml
+
+\def\complexstelspatieringin[#1]%
+  {\processaction
+     [#1]
+     [\v!opelkaar=>\newfrenchspacing,
+          \v!ruim=>\nonfrenchspacing]%
+   \updateraggedskips}
+
+\def\simplestelspatieringin%
+  {\updateraggedskips}
+
+\definecomplexorsimple\stelspatieringin
+
+\bgroup
+\catcode`\~=\@@active       % eigenlijk is ~ al actief
+\gdef\fixedspaces%          % in Plain \TeX, maar we weten
+  {\catcode`\~=\@@active    % nooit wat er inmiddels is
+   \def~{\fixedspace}}      % gebeurd, vandaar.
+\egroup
+
+\def\space      { }
+\def\fixedspace {\hskip.5em\relax}
+\def\nospace    {\unskip\ignorespaces}
+
+\let\spatie     \space
+\let\hardespatie\fixedspace
+\let\geenspatie \nospace
+
+\def\opelkaar%
+  {\nointerlineskip}
+
+\def\omlaag[#1]% nog eens mooier, relateren aan blanko
+  {\nointerlineskip
+   \vskip#1 }
+
+\newskip\tussenwit
+\tussenwit=\!!zeropoint
+
+\def\blankokleinmaat%
+  {\smallskipamount}
+
+\def\blankomiddelmaat%
+  {\medskipamount}
+
+\def\blankogrootmaat%
+  {\bigskipamount}
+
+\def\currentwitruimte%
+  {\!!zeropoint}
+
+\def\stelwitruimteopnieuwin%
+  {\expanded{\stelwitruimtein[\currentwitruimte]}}
+
+\newif\ifwitruimteflexibel \witruimteflexibeltrue
+
+%\def\dodostelwitruimtein[#1]%
+%  {%\witruimteflexibeltrue
+%   \processallactionsinset
+%     [#1]
+%     [\v!herstel=>,
+%         \v!vast=>\witruimteflexibelfalse,
+%     \v!flexibel=>\witruimteflexibeltrue,
+%        \v!regel=>\tussenwit=\baselineskip,
+%   \v!halveregel=>\tussenwit=.5\baselineskip,
+%      \s!default=>\doifnot{\currentwitruimte}{\v!geen}
+%                    {\stelwitruimteopnieuwin},
+%      \s!unknown=>\@EA\assigndimension\@EA{\commalistelement} % \@EA is nodig
+%                    {\tussenwit}
+%                    {\blankokleinmaat}{\blankomiddelmaat}{\blankogrootmaat}]%   % te vangen
+%   \edef\currentwitruimte%
+%     {\ifdim\tussenwit=\!!zeropoint
+%        \v!geen
+%      \else
+%        \ifgridsnapping\the\baselineskip\else\the\tussenwit\fi
+%      \fi}%
+%   \ifgridsnapping
+%     \witruimteflexibelfalse
+%     \tussenwit=1\tussenwit
+%     \ifdim\tussenwit>\!!zeropoint
+%       \tussenwit=\baselineskip
+%     \fi
+%   \else
+%     \ifwitruimteflexibel \else \tussenwit=1\tussenwit \fi
+%   \fi
+%   \parskip=\tussenwit}
+%
+%\def\dostelwitruimtein[#1]%
+%  {\expanded{\dodostelwitruimtein[#1]}}
+%
+%\def\stelwitruimtein%
+%  {\dosingleempty\dostelwitruimtein}
+
+\definecomplexorsimple\stelwitruimtein
+
+\def\complexstelwitruimtein[#1]%
+  {\expanded{\dostelwitruimtein[#1]}%
+   \dodostelwitruimtein}
+
+\def\dostelwitruimtein[#1]%
+  {\processallactionsinset
+     [#1]
+     [\v!herstel=>,
+         \v!vast=>\witruimteflexibelfalse,
+     \v!flexibel=>\witruimteflexibeltrue,
+        \v!regel=>\tussenwit=\baselineskip,
+   \v!halveregel=>\tussenwit=.5\baselineskip,
+      \s!default=>\doifnot{\currentwitruimte}{\v!geen}
+                    {\stelwitruimteopnieuwin},
+      \s!unknown=>\@EA\assigndimension\@EA{\commalistelement} % \@EA is nodig
+                    {\tussenwit}
+                    {\blankokleinmaat}{\blankomiddelmaat}{\blankogrootmaat}]}   % te vangen
+
+\def\dodostelwitruimtein%
+  {\edef\currentwitruimte%
+     {\ifdim\tussenwit=\!!zeropoint
+        \v!geen
+      \else
+        \ifgridsnapping\the\baselineskip\else\the\tussenwit\fi
+      \fi}%
+   \ifgridsnapping
+     \witruimteflexibelfalse
+     \tussenwit=1\tussenwit
+     \ifdim\tussenwit>\!!zeropoint
+       \tussenwit=\baselineskip
+     \fi
+   \else
+     \ifwitruimteflexibel \else \tussenwit=1\tussenwit \fi
+   \fi
+   \parskip=\tussenwit}
+
+\def\simplestelwitruimtein% == snelle \stelwitruimtein[\s!default]
+  {\doifnot{\currentwitruimte}{\v!geen}
+     {\stelwitruimteopnieuwin}%
+   \dodostelwitruimtein}
+
+\def\geenwitruimte%
+  {\ifdim\parskip>\!!zeropoint\relax
+     \ifdim\lastskip=-\parskip
+     \else
+       \vskip-\parskip
+     \fi
+   \fi}
+
+\def\savecurrentwitruimte%
+  {\edef\restorecurrentwitruimte%
+     {\tussenwit=\the\tussenwit
+      \parskip=\the\parskip
+      \noexpand\def\noexpand\currentwitruimte{\currentwitruimte}%
+      \ifwitruimteflexibel
+        \noexpand\witruimteflexibeltrue
+      \else
+        \noexpand\witruimteflexibelfalse
+      \fi}}
+
+% deze variant is nodig binnen \startopelkaar
+% steeds testen:
+%
+% \hoofdstuk{..}
+% \plaatslijst[..]
+% \hoofdstuk{..}
+% \input tufte
+%
+% met/zonder witruimte
+
+\def\witruimte%
+  {\par
+   \ifdim\parskip>\!!zeropoint\relax
+    %\ifdim\lastskip>\parskip \else
+     % \removelastskip interferes with blanko blokkeer en klein
+       \vskip\parskip
+    %\fi
+   \fi}
+
+\def\nonoblanko[#1]%
+  {\par}
+
+\def\noblanko%
+  {\dosingleempty\nonoblanko}
+
+% De onderstaande macro handelt ook de situatie dat er geen
+% tekst tussen \start ... \stop is geplaatst. Daartoe wordt de
+% laatste skip over de lege tekst heen gehaald. Dit komt goed
+% van pas bij het plaatsen van (mogelijk lege) lijsten.
+
+\newif\ifopelkaar
+
+\def\noparskipsignal {0.00001pt}
+\def\lastdoneparskip {0pt}
+
+\def\startopelkaar%
+  {\dosingleempty\dostartopelkaar}
+
+\def\dostartopelkaar[#1]% nesting afvangen
+  {\par
+   \ifvmode
+     \edef\lastdoneparskip{\the\lastskip}%
+\edef\lastdoneprevdepth{\the\prevdepth}% zeer recent toegevoegd
+     \ifdim\prevdepth=-1000pt   % toegevoegd omdat binnen
+     \else                      % een vbox een extra skip
+       \witruimte               % ongewenst is; dit kan
+\baselinecorrection %% zie in \plaatsregister[n=1]
+       \vskip\noparskipsignal   % waarschijnlijk ook in
+     \fi                        % blanko blokkeer
+     \bgroup
+     \doifelse{#1}{\v!blanko}
+       {\opelkaarfalse}
+       {\opelkaartrue}%
+     \blanko[\v!blokkeer]%
+     \stelwitruimtein[\v!geen]
+  \fi}
+
+\def\stopopelkaar%
+  {\par
+\ifvmode
+   \egroup
+   \ifdim\lastskip=\noparskipsignal\relax
+     \removelastskip
+     \geenwitruimte
+     \vskip-\lastdoneparskip
+     \vskip+\lastdoneparskip
+\prevdepth-\lastdoneprevdepth % zeer recent toegevoegd
+   \fi
+\fi}
+
+\def\startvanelkaar%
+  {\blanko
+   \leavevmode
+   \bgroup}
+
+\def\stopvanelkaar%
+  {\egroup
+   \blanko}
+
+% De onderstaande macro's moeten nog eens nader worden uitgewerkt.
+% Ze spelen een rol bij de spatiering rond omkaderde teksten
+% en/of boxen zonder diepte.
+
+\def\toonregelcorrectie   {\showbaselinecorrection}
+\def\regelcorrectie       {\baselinecorrection}
+
+\definecomplexorsimpleempty\startregelcorrectie
+
+% \prevdepth crosses pageboundaries!
+
+\let\dorondomregelcorrectie=\relax
+
+\def\complexstartregelcorrectie[#1]%
+  {\bgroup
+   \processaction
+     [#1]
+     [ \v!blanko=>\let\dorondomregelcorrectie=\blanko,
+      \s!default=>\let\dorondomregelcorrectie=\relax,
+      \s!unknown=>{\def\dorondomregelcorrectie{\blanko[#1]}}]%
+   \dorondomregelcorrectie
+   \startbaselinecorrection
+   \offbaselinecorrection}
+
+\def\stopregelcorrectie%
+  {\stopbaselinecorrection
+   \dorondomregelcorrectie
+   \egroup}
+
+\def\corrigeerwitruimte%
+  {\dowithnextbox
+     {\startbaselinecorrection
+      \box\nextbox
+      \stopbaselinecorrection}%
+   \vbox}
+
+\def\toonstruts%
+  {\setteststrut}
+
+% Hieronder volgen enkele instellingen en macro's ten behoeve
+% van de interlinie en \strut. De waarden 2.8, 0.07, 0.72 en
+% 0.28 zijn ooit eens ontleend aan INRS-TEX en moeten wellicht
+% nog eens instelbaar worden.
+%
+%   \lineheight        : de hoogte van een regel
+%   \spacing{getal}    : instellen interlinie
+%   \normalbaselines   : instellen regelafstend
+%
+%   \setstrut          : instellen \strut
+%   \setnostrut        : resetten \strut, \endstrut, \begstrut
+%
+%   \setteststrut      : instellen zichtbare struts
+%   \resetteststrut    : instellen onzichtbare struts
+%
+%   \setfontparameters : instellen na fontset
+%
+% De hoogte van een regel (\lineheight) is gelijk aan de
+% som van de hoogte (\ht) en diepte (\dp) van \strutbox.
+%
+%   \strut            : denkbeeldig blokje met hoogte en diepte
+%
+% Een \hbox kan als deze aan het begin van een regel staat
+% een breedte \hsize krijgen. Dit is soms te voorkomen met het
+% commando \leavevmode. Binnen een \vbox geeft dit echter
+% niet altijd het gewenste resultaat, vandaar het commando
+%
+%   \leaveoutervmode
+
+% Pas op: niet zomaar \topskip en \baselineskip aanpassen
+% en zeker niet \widowpenalty. Dit kan ernstige gevolgen
+% hebben voor kolommen.
+%
+% Enige glue kan op zich geen kwaad, echter als blanko=vast,
+% dan moet ook de rek 0 zijn. Binnen kolommen is rek ook
+% niet bepaald mooi. Een hele kleine waarde (0.025) voldoet,
+% omdat een positieve glue eindeloos rekbaar is.
+
+\newdimen\strutdimen
+\newdimen\lineheight
+\newdimen\openlineheight
+\newdimen\openstrutheight
+\newdimen\openstrutdepth
+\def\strutheightfactor      {.72}
+\def\strutdepthfactor       {.28}
+
+\def\baselinefactor         {2.8}
+\def\baselinegluefactor     {0}
+
+\def\normallineheight       {\baselinefactor ex}
+\def\minimallinedistance    {\lineskip} 
+
+\def\strutheight            {0pt}
+\def\strutdepth             {0pt}
+\def\strutwidth             {0pt}
+
+\def\spacingfactor          {1}
+
+\def\topskipfactor          {1.0}
+\def\maxdepthfactor         {0.5}
+
+\def\systemtopskipfactor    {\topskipfactor}
+\def\systemmaxdepthfactor   {\maxdepthfactor}
+
+% De onderstaande definitie wordt in de font-module overruled
+
+\ifx\globalbodyfontsize\undefined
+  \newdimen\globalbodyfontsize
+  \globalbodyfontsize=12pt
+\fi
+\ifx\normalizedbodyfontsize\undefined
+  \def\normalizedbodyfontsize{12pt}
+\fi
+
+% door een \dimen. Dit is geen probleem omdat (1) de default
+% korpsgrootte 12pt is en (2) de fonts nog niet geladen zijn
+% en de instellingen bij het laden nogmaals plaatsvinden.
+
+\def\topskipcorrection%
+  {\ifdim\topskip>\openstrutheight
+     \vskip\topskip
+     \vskip-\openstrutheight
+   \fi
+   \vbox{\strut}
+   \vskip-\openlineheight}
+
+\def\settopskip% the extra test is needed for the lbr family
+  {\topskip=\systemtopskipfactor\globalbodyfontsize
+   \ifgridsnapping \else
+     \ifr@ggedbottom\!!plus5\globalbodyfontsize\fi
+   \fi
+   \relax % the skip
+   \ifdim\topskip<\strutheightfactor\openlineheight
+     \topskip=\strutheightfactor\openlineheight\relax
+   \fi}
+
+\def\setmaxdepth%
+  {\maxdepth=\systemmaxdepthfactor\globalbodyfontsize}
+
+\def\normalbaselines%
+  {\baselineskip\normalbaselineskip
+   \lineskip\normallineskip
+   \lineskiplimit\normallineskiplimit}
+
+\def\setnormalbaselines%
+  {\lineheight=\normallineheight
+   \openlineheight=\spacingfactor\lineheight
+\openstrutheight=\strutheightfactor\openlineheight
+\openstrutdepth =\strutdepthfactor \openlineheight
+   \normalbaselineskip=
+     \openlineheight
+     \!!plus\baselinegluefactor\openlineheight
+     \!!minus\baselinegluefactor\openlineheight
+   \normallineskip\minimallinedistance\relax % \!!onepoint\relax
+   \normallineskiplimit\!!zeropoint\relax
+   \normalbaselines}
+
+\def\setspacingfactor#1\to#2\by#3\\%
+  {\strutdimen=#2pt\relax
+   \strutdimen=#3\strutdimen
+   \edef#1{\withoutpt{\the\strutdimen}}}
+
+\def\spacing#1%
+  {\ifgridsnapping
+     \edef\spacingfactor{1}%
+     \showmessage{\m!layouts}{11}{#1}%
+   \else
+     \edef\spacingfactor{#1}%
+   \fi
+   \setspacingfactor\systemtopskipfactor\to\topskipfactor\by#1\\%
+   \setspacingfactor\systemmaxdepthfactor\to\maxdepthfactor\by#1\\%
+   \setnormalbaselines
+   \setstrut}
+
+\def\setstrutdimen#1#2#3%              % een strut is n.m maal ex
+  {\strutdimen=\normallineheight       % wat niet per se \lineheight
+   \strutdimen=#2\strutdimen           % is omdat een strut lokaal
+   \strutdimen=#3\strutdimen           % kan afwijken van de globale
+   \edef#1{\the\strutdimen}}           % strut
+
+% plain definition:
+%
+% \def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi}
+%
+% could be: 
+%
+% \def\strut{\relax\ifmmode\copy\else\unhcopy\fi\strutbox}
+
+\let\normalstrut=\strut 
+
+% The double \hbox construction enables us to \backtrack
+% boxes.
+
+% \def\setstrut%
+%   {\setstrutdimen\strutheight\strutheightfactor\spacingfactor
+%    \setstrutdimen\strutdepth \strutdepthfactor \spacingfactor
+%    \let\strut=\normalstrut
+%    \setbox\strutbox=\normalhbox
+%      {\normalhbox
+%         {\vrule
+%            \!!width  \strutwidth
+%            \!!height \strutheight
+%            \!!depth  \strutdepth
+%            \normalkern-\strutwidth}}}
+
+\def\setstrut%
+  {\setstrutdimen\strutheight\strutheightfactor\spacingfactor
+   \setstrutdimen\strutdepth \strutdepthfactor \spacingfactor
+   \dosetstrut}
+
+\def\setcharstrut#1%
+  {\setbox\strutbox=\hbox{#1}% 
+   \edef\strutheight{\the\ht\strutbox}%
+   \edef\strutdepth {\the\dp\strutbox}%
+   \dosetstrut}
+
+\def\setcapstrut% could be M, but Q has descender
+  {\setcharstrut{Q}} 
+
+%D Centered looks nicer: 
+
+\def\dosetstrut%
+  {\let\strut=\normalstrut
+   \setbox\strutbox=\normalhbox
+     {\normalhbox to \!!zeropoint
+        {% \hss % new, will be option 
+         \vrule
+           \!!width \strutwidth
+           \!!height\strutheight
+           \!!depth \strutdepth
+         \hss}}}
+
+%D Sometimes a capstrut comes in handy
+%D
+%D \starttabulatie[|Tl|l|l|]
+%D \NC yes          \NC normal strut               \NC {\toonstruts\setupstrut[ja]\strut}  \NC \NR 
+%D \NC no           \NC no strut                   \NC {\toonstruts\setupstrut[nee]\strut}  \NC \NR 
+%D \NC kap          \NC a capital strut (i.e. Q)   \NC {\toonstruts\setupstrut[kap]\strut} \NC \NR 
+%D \NC A B \unknown \NC a character strut (e.g. A) \NC {\toonstruts\setupstrut[A]\strut}   \NC \NR 
+%D \NC              \NC a normal strut             \NC {\toonstruts\setupstrut\strut}      \NC \NR 
+%D \stoptabulatie
+
+\def\setupstrut%
+  {\dosingleempty\dosetupstrut}
+
+\def\dosetupstrut[#1]% yet undocumented 
+  {\processaction
+     [#1]
+     [     \v!ja=>\setstrut,
+          \v!nee=>\setnostrut,
+          \v!kap=>\setcapstrut,
+      \s!default=>\setstrut,
+      \s!unknown=>\setcharstrut{\commalistelement}]}
+
+\def\setteststrut%
+  {\def\strutwidth{.8pt}%
+   \setstrut}
+
+\def\begstrut%
+  {\relax\ifdim\ht\strutbox=\!!zeropoint\else
+     \strut
+     \normalpenalty\!!tenthousand
+     \normalhskip\!!zeropoint
+     \ignorespaces
+   \fi}
+
+\def\endstrut%
+  {\relax\ifhmode\ifdim\ht\strutbox=\!!zeropoint\else
+     \unskip\unskip\unskip
+     \normalpenalty\!!tenthousand
+     \normalhskip\!!zeropoint
+     \strut
+   \fi\fi}
+
+\def\setnostrut%
+  {\setbox\strutbox=\normalhbox{\normalhbox{}}%
+   \let\strut=\empty
+   \let\endstrut=\empty
+   \let\begstrut=\empty}
+
+% unsave:
+%
+% \def\pseudostrut%
+%   {\bgroup
+%    \setnostrut
+%    \normalstrut
+%    \egroup}
+%
+% try:
+%
+% \startchemie
+%   \chemie[ONE,Z0,SB15,MOV1,SB15,Z0][C,C]
+% \stopchemie
+%
+% so:
+
+\def\pseudostrut%
+  {\noindent} % better: \dontleavehmode
+
+\let\pseudobegstrut\pseudostrut
+
+\def\pseudoendstrut% removes all kind of signals 
+  {\ifhmode\unskip\unskip\unskip\unskip\fi}
+
+\def\resetteststrut%
+  {\let\strutwidth=\!!zeropoint
+   \setstrut}
+
+\ifx\setfontparameters\undefined
+  \def\setfontparameters{\the\everybodyfont}
+\fi
+
+%D Handy: 
+
+\def\baselinedistance{\the\lineheight}
+
+%D We need \type{\normaloffinterlineskip} because the new
+%D definition contains an assignment, and |<|don't ask me
+%D why|>| this assignment gives troubles in for instance the
+%D visual debugger.
+
+\ifx\undefined\normaloffinterlineskip
+  \let\normaloffinterlineskip=\offinterlineskip % knuth's original
+\fi
+
+\def\offinterlineskip%
+  {\ifdim\baselineskip>\!!zeropoint
+     \edef\oninterlineskip%
+       {\baselineskip=\the\baselineskip
+        \lineskip=\the\lineskip
+        \lineskiplimit=\the\lineskiplimit
+        \noexpand\let\noexpand\offinterlineskip=\noexpand\normaloffinterlineskip}%
+   \else
+     \let\oninterlineskip=\setnormalbaselines
+   \fi
+   \normaloffinterlineskip}
+
+\let\oninterlineskip=\relax
+
+\def\leaveoutervmode%
+  {\ifvmode\ifinner\else
+     \leavevmode
+   \fi\fi}
+
+% We stellen enkele penalties anders in dan Plain TEX:
+
+\def\defaultwidowpenalty{2000} % was: 1000
+\def\defaultclubpenalty {2000} % was:  800
+
+\widowpenalty=\defaultwidowpenalty\relax
+\clubpenalty =\defaultclubpenalty \relax
+
+% Bovendien definieren we enkele extra \fill's:
+
+\def\hfilll%
+  {\hskip\!!zeropoint\!!plus1filll\relax}
+
+\def\vfilll%
+  {\vskip\!!zeropoint\!!plus1filll\relax}
+
+% De onderstaande hulpmacro's moeten nog eens instelbaar worden
+% gemaakt.
+
+\def\tfskipsize{1em\relax}
+
+\def\tfkernsize{1ex\relax}
+
+\def\tfskip%
+  {{\tf\hskip\tfskipsize}}
+
+\def\tfkern%
+  {{\tf\kern\tfkernsize}}
+
+\newskip\linkssmaller
+\newskip\rechtssmaller
+\newskip\middensmaller
+
+\def\dosinglesmaller#1%
+  {\processaction
+     [#1]
+     [    \v!links=>\global\advance\linkssmaller  by \@@sllinks,
+         \v!midden=>\global\advance\middensmaller by \@@slmidden,
+         \v!rechts=>\global\advance\rechtssmaller by \@@slrechts,
+        \s!unknown=>\global\advance\middensmaller by \commalistelement]}
+
+\def\dosmaller[#1]%
+  {\processaction
+     [#1]
+     [    \v!links=>\global\advance\linkssmaller  by \@@sllinks,
+         \v!midden=>\global\advance\middensmaller by \@@slmidden,
+         \v!rechts=>\global\advance\rechtssmaller by \@@slrechts,
+        \s!unknown=>{\herhaalmetcommando[#1]\dosinglesmaller}]}
+
+\def\complexstartsmaller[#1]%
+  {\par
+   \bgroup
+   \global\linkssmaller=\!!zeropoint
+   \global\rechtssmaller=\!!zeropoint
+   \global\middensmaller=\!!zeropoint
+   \processcommalistwithparameters[#1]\dosmaller
+   \advance\leftskip  by \linkssmaller
+   \advance\rightskip by \rechtssmaller
+   \advance\leftskip  by \middensmaller
+   \advance\rightskip by \middensmaller}
+
+\def\simplestartsmaller%
+  {\startsmaller[\v!midden]}
+
+\definecomplexorsimple\startsmaller
+
+\def\stopsmaller%
+  {\par % else skips forgotten
+   \egroup}
+
+\def\stelsmallerin%
+  {\dodoubleargument\getparameters[\??sl]}
+
+\def\dodefinieerhbox[#1][#2]%
+  {\setvalue{hbox#1}##1%
+     {\hbox to #2{\begstrut##1\endstrut\hss}}}
+
+\def\definieerhbox%
+  {\dodoubleargument\dodefinieerhbox}
+
+\def\lrcbox#1#2#%
+  {\vbox#2\bgroup
+   \let\\=\endgraf
+   \forgetall#1\let\next=}
+
+\def\lbox%
+  {\lrcbox\raggedleft}
+
+\def\rbox%
+  {\lrcbox\raggedright}
+
+\def\cbox%
+  {\lrcbox\raggedcenter}
+
+\def\dosetraggedvbox#1%
+  {\processaction
+     [#1]
+     [  \v!links=>\def\raggedbox{\lbox},
+       \v!rechts=>\def\raggedbox{\rbox},
+       \v!midden=>\def\raggedbox{\cbox},
+          \v!nee=>\def\raggedbox{\vbox\bgroup\raggedright\let\next=},
+      \s!default=>\def\raggedbox{\vbox},
+      \s!unknown=>\def\raggedbox{\vbox}]}
+
+\def\dosetraggedhbox#1%
+  {\processaction
+     [#1]
+     [  \v!links=>\let\raggedbox\regellinks,
+       \v!rechts=>\let\raggedbox\regelrechts,
+       \v!midden=>\let\raggedbox\regelmidden,
+      \v!normaal=>\let\raggedbox\hbox,
+      \s!default=>\let\raggedbox\hbox,
+      \s!unknown=>\let\raggedbox\hbox]}
+
+% \def\dosetraggedcommand#1% ook ruim,rechts en zo
+%   {\processaction
+%      [#1]
+%      [  \v!links=>\def\raggedcommand{\raggedleft},
+%        \v!rechts=>\def\raggedcommand{\raggedright},
+%        \v!midden=>\def\raggedcommand{\raggedcenter},
+%           \v!nee=>\def\raggedcommand{\raggedright},
+%       \v!normaal=>\let\raggedcommand\relax,
+%       \s!default=>\def\raggedcommand{\raggedcenter},
+%       \s!unknown=>\let\raggedcommand\relax]}
+
+\def\dosetraggedcommand#1% 
+  {\expanded{\dodosetraggedcommand{#1}}}
+ 
+\def\dodosetraggedcommand#1% 
+  {\doifinsetelse{\v!ruim} {#1}{\!!doneatrue}{\!!doneafalse}%
+   \doifinsetelse{\v!breed}{#1}{\!!donebtrue}{\!!donebfalse}%
+   \let\raggedcommand\relax
+   \let\raggedtopcommand\empty
+   \let\raggedbottomcommand\empty
+   \!!donectrue
+   \ExpandFirstAfter\processallactionsinset
+     [#1]
+     [  \v!links=>\if!!donea      \def\raggedcommand{\veryraggedleft}%
+                  \else           \def\raggedcommand{\raggedleft}%
+                  \fi
+                  \!!donecfalse,                    % {\v!links,\v!midden}
+       \v!rechts=>\if!!donea      \def\raggedcommand{\veryraggedright}%
+                  \else           \def\raggedcommand{\raggedright}%
+                  \fi
+                  \!!donecfalse,                    % {\v!rechts,\v!midden}
+       \v!midden=>\if!!donec
+                    \if!!doneb      \def\raggedcommand{\raggedwidecenter}%
+                    \else\if!!donea \def\raggedcommand{\veryraggedcenter}%
+                    \else           \def\raggedcommand{\raggedcenter}%
+                    \fi\fi
+                    \!!donecfalse                   % {\v!midden,\v!midden}
+                  \else
+                    \let\raggedbottomcommand\vfilll % bonus, pretty strong 
+                    \let\raggedtopcommand   \vfilll % used with \framed for 
+                  \fi,                              % instance in tables
+         \v!hoog=>\let\raggedbottomcommand\vfilll,  % and since we lack a 
+         \v!laag=>\let\raggedtopcommand   \vfilll,  % proper keyword, but
+         \v!laho=>\let\raggedbottomcommand\vfilll   % we do support the 
+                  \let\raggedtopcommand   \vfilll,  % ugly laho (lohi)
+          \v!nee=>\def\raggedcommand{\raggedright},
+           \v!ja=>\let\raggedcommand\relax,
+      \v!normaal=>\let\raggedcommand\relax]}
+
+% Nodig i.v.m. inspringen eerste alineas
+
+\def\explicithmode%
+  {\unhbox\voidb@x}
+
+% Nodig voor gebruikers
+
+\def\geentest{\donottest}
+
+% Nog doen:
+%
+%  \goodbreak -> \allowbreak en \dosomebreak{..} in koppen
+%
+% bij koppen zowieso: \blanko[reset]
+
+% Nog in commando verwerken:
+%
+% \voorkeur � la \blanko
+%
+% Om ongewenste witruimte te voorkomen kan met \dosomebreak{\break}
+% een \penalty v��r witruimte worden geplaatst.
+
+\def\removelastskip% a redefinition of plain 
+  {\ifvmode\ifdim\lastskip=\z@\else\vskip-\lastskip\fi\fi}
+
+\def\dosomebreak#1%
+  {\skip0=\lastskip
+   \removelastskip
+   %\type{#1}%
+   #1\relax
+   \ifdim\skip0=\!!zeropoint
+   \else
+     \vskip\skip0
+   \fi}
+
+% beter, vooral in \vbox; nog in \pagina toepassen s!
+
+\def\doifoutervmode#1%
+  {\ifvmode\ifinner\else#1\fi\fi}
+
+\def\dosomebreak#1%
+  {\doifoutervmode
+     {\skip0=\lastskip
+      \removelastskip
+      %\leavevmode\type{#1}%
+      #1\relax
+      \ifdim\skip0=\!!zeropoint % else interference with footnotes
+      \else
+        \vskip\skip0
+      \fi}}
+
+% Idem:
+%
+% \springin
+
+%\def\noindentation% vervallen
+%   {\EveryPar
+%     {\ifdim\parindent=\!!zeropoint
+%      \else
+%        \bgroup
+%        \setbox0=\lastbox
+%        \egroup
+%      \fi
+%      \EveryPar{}}}
+
+\newif\ifindentation \indentationtrue  % documenteren, naar buiten
+
+\let\checkindentation=\relax
+
+\def\donoindentation%
+  {\ifdim\parindent=\!!zeropoint
+   \else
+     \bgroup
+     \setbox0=\lastbox
+     \egroup
+   \fi}
+
+\def\noindentation% made global
+  {\ifinpagebody \else
+     \global\indentationfalse
+     \gdef\checkindentation%
+       {\donoindentation
+        \gdef\checkindentation{\global\indentationtrue}}%
+   \fi}
+
+\def\nonoindentation% bv bij floats
+  {\ifinpagebody \else
+     \global\indentationtrue
+     \gdef\checkindentation{\global\indentationtrue}%
+   \fi}
+
+\def\indentation%
+  {\ifvmode \ifdim\parindent=\!!zeropoint \else
+     % was : \hskip\parindent 
+     % can be: \indent  
+     % but we test: 
+     \noindent\hskip\parindent 
+   \fi \fi}
+
+% vergeten
+
+\def\forgeteverypar%
+  {\everypar{}}
+
+\def\forgeteverypar%
+  {\everypar{\the\neverypar}}
+
+\def\forgetparindent%
+  {\forgeteverypar
+   \indentfirstparagraphtrue % recently added
+   \stelinspringenin[\v!geen]}
+
+\def\forgetparskip%
+  {\stelwitruimtein[\v!geen]}
+
+\def\forgetbothskips%
+  {\tolerance=1500
+   \leftskip\!!zeropoint
+   \rightskip\!!zeropoint\relax}
+
+\def\forgetspacing%
+  {\emergencystretch\!!zeropoint\relax}
+
+\def\forgetall%
+  {\the\everyforgetall}
+
+\appendtoks \let\par\endgraf    \to \everyforgetall % i.v.m. getpar etc
+\appendtoks \notragged          \to \everyforgetall 
+\appendtoks \forgetparskip      \to \everyforgetall  
+\appendtoks \forgetparindent    \to \everyforgetall 
+\appendtoks \forgetbothskips    \to \everyforgetall 
+\appendtoks \forgetspacing      \to \everyforgetall % i.v.m. funny spacing in pagebody
+\appendtoks \everypar\emptytoks \to \everyforgetall % indeed!
+
+\def\localvbox#1#%
+  {\vbox#1\bgroup
+     \forgetparskip
+     \setlocalhsize
+     \hsize=\localhsize
+     \forgetparindent
+     \forgetbothskips
+     \forgeteverypar
+     \let\next=}
+
+% ach ja
+
+\unexpanded\def\dostartattributes#1#2#3%
+  {\begingroup  % geen \bgroup, anders in mathmode lege \hbox
+   \doifdefinedelse{#1#2}
+     {\def\fontattribute{\getvalue{#1#2}}}
+     {\let\fontattribute=\empty}%
+   \doifdefinedelse{#1#3}
+     {\def\colorattribute{\getvalue{#1#3}}}
+     {\let\colorattribute=\empty}%
+   \startcolor[\colorattribute]%
+   \@EA\doconvertfont\@EA{\fontattribute}}
+
+\unexpanded\def\dostopattributes%
+  {\stopcolor
+   \endgroup}
+
+\unexpanded\def\doattributes#1#2#3#4%
+  {\dostartattributes{#1}{#2}{#3}{#4}\dostopattributes}
+
+% kan vaker worden toegepast:
+
+\newskip\leftskipadaption
+
+\def\doadaptleftskip#1%
+  {\dosetleftskipadaption{#1}%
+   \advance\leftskip by \leftskipadaption}
+
+\def\dosetleftskipadaption#1%
+  {\leftskipadaption\!!zeropoint
+   \processaction[#1] % \ExpandFirstAfter
+     [\v!standaard=>\leftskipadaption=
+                    \ifdim\voorwit=\!!zeropoint\@@sllinks\else\voorwit\fi,
+             \v!ja=>\leftskipadaption=
+                    \ifdim\voorwit=\!!zeropoint\@@sllinks\else\voorwit\fi,
+            \v!nee=>,
+        \s!unknown=>\leftskipadaption=#1]}
+
+% Dit hoort eigenlijk thuis onder het kopje boodschappen cq,
+% meldingen.
+
+\let\mindermeldingen\dontcomplain
+
+\definetwopasslist{\s!paragraph}
+
+\newcounter\nofraggedparagraphs
+
+\def\doparagraphreference% looks very much like domarginreference
+  {\doglobal\increment\nofraggedparagraphs\relax
+   \edef\writeparref%
+     {\writeutilitycommand%
+        {\twopassentry%
+           {\s!paragraph}%
+           {\nofraggedparagraphs}%
+           {\noexpand\realfolio}}}%
+   \writeparref}
+
+\def\setraggedparagraphmode#1#2%
+  {\ifinner
+     \ifdubbelzijdig
+       \gettwopassdata{\s!paragraph}%
+       \iftwopassdatafound
+         \ifodd\twopassdata#1\else#2\fi
+       \else
+         \ifodd\realfolio#1\else#2\fi
+       \fi
+       \doparagraphreference
+     \else
+       #2\relax
+     \fi
+   \else
+     #2\relax
+   \fi}
+
+% \let\doifrightpageelse\setraggedparagraphmode
+
+% De onderstaande macro's zijn opgenomen in Plain TeX.
+%
+% \def\raggedright%
+%   {\rightskip\z@ plus2em \spaceskip.3333em \xspaceskip.5em\relax}
+%
+% \def\ttraggedright%
+%   {\tttf\rightskip\z@ plus2em\relax}
+%
+% \newif\ifr@ggedbottom
+%
+% \def\raggedbottom%
+%   {\topskip 10\p@ plus60\p@ \r@ggedbottomtrue}
+%
+% \def\normalbottom%
+%   {\topskip 10\p@ \r@ggedbottomfalse}
+%
+% en worden hieronder wat aangepast.
+
+% the three boolean will become obsolete some day in favour 
+% of \bottomraggedness
+
+\chardef\bottomraggedness=0 % 0=ragged 1=normal/align 2=baseline
+
+\def\bottomalignlimit{3\lineheight}
+
+\newif\ifn@rmalbottom
+\newif\ifr@ggedbottom
+\newif\ifb@selinebottom
+
+\def\raggedbottom%
+  {\chardef\bottomraggedness=0
+   \n@rmalbottomfalse
+   \r@ggedbottomtrue
+   \b@selinebottomfalse
+   \settopskip}
+
+\def\alignbottom%
+  {\chardef\bottomraggedness=1
+   \n@rmalbottomtrue
+   \r@ggedbottomfalse
+   \b@selinebottomfalse
+   \settopskip}
+
+\def\baselinebottom%
+  {\chardef\bottomraggedness=2
+   \n@rmalbottomfalse
+   \r@ggedbottomfalse
+   \b@selinebottomtrue
+   \settopskip}
+
+\let\normalbottom=\alignbottom % downward compatible
+
+% so, the new one will be
+% 
+% \chardef\bottomraggedness=0 % 0=ragged 1=normal/align 2=baseline
+% 
+% \def\bottomalignlimit{3\lineheight} % will be settable 
+% 
+% \def\raggedbottom  {\chardef\bottomraggedness=0 \settopskip}
+% \def\alignbottom   {\chardef\bottomraggedness=1 \settopskip}
+% \def\baselinebottom{\chardef\bottomraggedness=2 \settopskip}
+%
+% \let\normalbottom  =\alignbottom
+
+% \hyphenpenalty  = ( 2.5 * \hsize ) / \raggedness
+% \tolerance     >= 1500 % was 200
+% \raggedness     = 2 .. 6\korpsgrootte
+
+\chardef\raggedstatus=0 % normal left center right 
+
+\def\leftraggedness   {2\bodyfontsize}
+\def\rightraggedness  {2\bodyfontsize}
+\def\middleraggedness {6\bodyfontsize}
+
+%D More hyphenation control, will be combined with align 
+%D setup. 
+
+\def\nohyphens%
+  {\ifx\dohyphens\relax
+     \edef\dohyphens%
+       {\hyphenpenalty\the\hyphenpenalty
+        \exhyphenpenalty\the\exhyphenpenalty\relax}%
+   \fi
+   \hyphenpenalty\@M
+   \exhyphenpenalty\@M}
+
+\let\dohyphens\relax
+
+%D To prevent unwanted side effects, we also have to check 
+%D for hyphens here: 
+
+\def\setraggedness#1%
+  {\ifnum\tolerance<1500\relax       % small values have
+     \tolerance=1500\relax           % unwanted side effects
+   \fi                               
+   \spaceskip=2.5\hsize              % we misuse these registers
+   \xspaceskip=#1\relax              % for temporary storage;
+   \divide\spaceskip by \xspaceskip  % they are changed anyway
+   \ifx\dohyphens\relax               
+     \hyphenpenalty=\spaceskip       % \else no hyphens is active 
+   \fi}                              
+
+\let\updateraggedskips\relax
+
+\def\setraggedskips#1#2#3#4#5#6#7% never change this name
+  {\def\updateraggedskips%
+     {\dosetraggedskips{#1}{#2}{#3}{#4}{#5}{#6}{#7}}%
+   \updateraggedskips}
+
+\def\dosetraggedskips#1#2#3#4#5#6#7%
+  {\chardef\raggedstatus=#1\relax 
+   \leftskip=1\leftskip\!!plus#2\relax   % zie: Tex By Topic 8.1.3
+   \rightskip=1\rightskip\!!plus#3\relax % zie: Tex By Topic 8.1.3
+   \spaceskip#4\relax
+   \xspaceskip#5\relax
+   \parfillskip\!!zeropoint\!!plus#6\relax
+   \parindent#7\relax}
+
+\def\notragged%
+  {\setraggedskips{0}{0em}{0em}{0em}{0em}{1fil}{\parindent}}
+
+\def\raggedleft%
+  {\setraggedness\leftraggedness
+   \setraggedskips{1}{\leftraggedness}{0em}{.3333em}{.5em}{0em}{0em}}
+
+\def\raggedcenter%
+  {\setraggedness\middleraggedness
+   \setraggedskips{2}{\middleraggedness}{\middleraggedness}{.3333em}{.5em}{0em}{0em}}
+
+%D We used to have:
+%D
+%D \starttypen
+%D \def\raggedright%
+%D   {\setraggedness\rightraggedness
+%D    \setraggedskips{3}{0em}{\rightraggedness}{.3333em}{.5em}{0em}{\parindent}}
+%D \stoptypen
+%D
+%D However, the next alternative, suggested by Taco, is better.
+
+\def\raggedright%
+  {\setraggedness\rightraggedness
+   \setraggedskips{3}{0em}{\rightraggedness}{.3333em}{.5em}{1fil}{\parindent}}
+
+\def\veryraggedleft%
+  {\setraggedskips{1}{1fil}{0em}{.3333em}{.5em}{0em}{0em}}
+
+%D When we want the last line to have a natural width:
+%D
+%D \starttypen
+%D \def\veryraggedleft%
+%D   {\setraggedskips{1}{1fil}{0em}{.3333em}{.5em}{0em}{-1fil}}
+%D \stoptypen
+%D
+%D but this one is not accepted by the macros.
+
+\def\veryraggedcenter%
+  {\setraggedskips{2}{1fil}{1fil}{.3333em}{.5em}{0em}{0em}}
+
+\def\veryraggedright%
+  {\setraggedskips{3}{0em}{1fil}{.3333em}{.5em}{0em}{\parindent}}
+
+\def\ttraggedright%
+  {\tttf
+   \setraggedskips{3}{0em}{\rightraggedness}{0em}{0em}{0em}{\parindent}} % {\voorwit}}
+
+%D A bonus one:
+
+\def\raggedwidecenter%
+  {\setraggedness\middleraggedness
+   \setraggedskips{2}{.5fil}{.5fil}{.3333em}{.5em}{0em}{0em}}
+
+\newif\if@@asragged \@@asraggedtrue % old method 
+
+\def\dodosteluitlijnenin[#1]%
+  {\doifinsetelse{\v!ruim} {#1}{\!!doneatrue}{\!!doneafalse}%
+   \doifinsetelse{\v!breed}{#1}{\!!donebtrue}{\!!donebfalse}%
+   \ExpandFirstAfter\processallactionsinset
+     [#1]
+     [   \v!regel=>\baselinebottom,
+         \v!onder=>\raggedbottom,
+        \v!hoogte=>\normalbottom,
+       \v!breedte=>\notragged,
+       \v!normaal=>\notragged,
+            \v!ja=>\notragged,
+           \v!nee=>\raggedright,
+\if@@asragged\v!binnen\else\v!buiten\fi
+                 =>\setraggedparagraphmode\raggedleft\raggedright,
+\if@@asragged\v!buiten\else\v!binnen\fi
+                 =>\setraggedparagraphmode\raggedright\raggedleft,
+\if@@asragged\v!links\else\v!rechts\fi
+                 =>\if!!donea\veryraggedleft  \else\raggedleft  \fi,
+\if@@asragged\v!rechts\else\v!links\fi
+                 =>\if!!donea\veryraggedright \else\raggedright \fi,
+        \v!midden=>\if!!doneb\raggedwidecenter\else
+                   \if!!donea\veryraggedcenter\else\raggedcenter\fi\fi,
+       \v!hangend=>\enableprotruding,
+   \v!niethangend=>\disableprotruding,
+    \v!afgebroken=>\dohyphens,
+\v!nietafgebroken=>\nohyphens,
+         \v!nieuw=>\@@asraggedfalse, % so new will give you consistency
+         \v!reset=>\notragged\normalbottom]}
+
+\def\dosteluitlijnenin[#1]%
+  {\expanded{\dodosteluitlijnenin[#1]}}
+
+\def\steluitlijnenin%
+  {\dosingleargument\dosteluitlijnenin}
+
+\def\startuitlijnen%
+  {\bgroup
+   \steluitlijnenin}
+
+\def\stopuitlijnen
+  {\par
+   \egroup}
+
+%\def\regellinks#1%
+%  {\noindent\leftline{{\strut#1}}}
+%
+%\def\regelrechts#1%
+%  {\noindent\rightline{{#1\strut}}}
+%
+%\def\regelmidden#1%
+%  {\noindent\centerline{{\strut#1}}}
+
+\def\doalignline#1#2%
+  {\dowithnextbox
+     {\noindent\hbox to \hsize
+        {\strut#1\unhbox\nextbox#2}}
+     \hbox}
+
+% also supporting \\
+%
+% \def\doalignline#1#2%
+%   {\dowithnextbox
+%      {\noindent\hbox to \hsize
+%         {\strut#1\unhbox\nextbox#2}}
+%      \hbox\bgroup
+%        \def\\{\egroup\par\doalignline#1#2\bgroup}\let\next=}
+
+\def\doalignline#1#2%
+  {\bgroup
+   \def\\{\egroup\par\doalignline#1#2\bgroup}%
+   \dowithnextbox
+     {\noindent\hbox to \hsize
+        {\strut#1\unhbox\nextbox#2}\egroup}
+     \hbox}
+
+% directe commando's
+
+\def\regellinks {\doalignline \relax \hss  }
+\def\regelrechts{\doalignline \hss   \relax}
+\def\regelmidden{\doalignline \hss   \hss  }
+
+\def\regelbegrensd#1{\limitatetext{#1}{\hsize}{\unknown}}
+
+% indirecte commando's
+
+\setvalue{regel\v!links }{\doalignline \relax \hss  }
+\setvalue{regel\v!rechts}{\doalignline \hss   \relax}
+\setvalue{regel\v!midden}{\doalignline \hss   \hss  }
+
+\def\doregelplaats#1%
+  {\getvalue{regel#1}}
+
+\def\dosteltolerantiein[#1]%
+  {\doifinsetelse{\v!vertikaal}{#1}%
+     {\ExpandFirstAfter\processallactionsinset
+        [#1]
+        [\v!zeerstreng=>\def\bottomtolerance{},
+             \v!streng=>\def\bottomtolerance{.050},
+             \v!soepel=>\def\bottomtolerance{.075},
+         \v!zeersoepel=>\def\bottomtolerance{.100}]}%
+     {\ExpandFirstAfter\processallactionsinset
+        [#1]
+        [       \v!rek=>\emergencystretch=\bodyfontsize,
+         \v!zeerstreng=>\tolerance=200,
+             \v!streng=>\tolerance=1500,
+             \v!soepel=>\tolerance=3000,
+         \v!zeersoepel=>\tolerance=4500]}}
+
+\def\steltolerantiein%
+  {\dosingleargument\dosteltolerantiein}
+
+\def\woordrechts%
+  {\groupedcommand{\hfill\hbox}{\parfillskip\!!zeropoint}}
+
+
+\stelwitruimtein
+  [\v!geen]
+
+\inspringen
+  [\v!nooit]
+
+\stelinspringenin
+  [\v!geen]
+
+\stelblankoin
+  [\v!standaard,
+   \v!groot]
+
+\definieerblanko[\v!default] [\currentblanko]
+\definieerblanko[\v!voor]    [\v!default]
+\definieerblanko[\v!tussen]  [\v!default]
+\definieerblanko[\v!na]      [\v!voor]
+
+% doen?
+
+\def\@@blankovoor  {\blanko[\v!voor]}   %
+\def\@@blankotussen{\blanko[\v!tussen]} %  scheelt 5 tokens == >20 bytes
+\def\@@blankona    {\blanko[\v!na]}     %
+
+\stelinterliniein
+  [\c!hoogte=.72,
+   \c!diepte=.28,
+   \c!boven=1.0,
+   \c!onder=0.4,
+   \c!afstand=1pt,
+   \c!regel=2.8ex]
+
+\stelsmallerin
+  [\c!links=1.5em,
+   \c!rechts=1.5em,
+   \c!midden=1.5em]
+
+\steltolerantiein
+  [\v!horizontaal,\v!zeerstreng]
+
+\steltolerantiein
+  [\v!vertikaal,\v!streng]
+
+\steluitlijnenin
+  [\v!onder,
+   \v!breedte]
+
+\stelspatieringin
+  [\v!opelkaar]
+
+\protect \endinput 
diff --git a/tex/context/base/enco-def.tex b/tex/context/base/enco-def.tex
index f49549e98..37f108b60 100644
--- a/tex/context/base/enco-def.tex
+++ b/tex/context/base/enco-def.tex
@@ -27,6 +27,7 @@
 \definecharacter textcaron         20 
 \definecharacter textbreve         21
 \definecharacter textmacron        22
+\definecharacter textring          23
 \definecharacter textcedilla       24 
 \definecharacter textogonek        24 % no ! 
 \definecharacter textbottomdot     46  
@@ -78,6 +79,8 @@
 \definecharacter atilde {\buildtextaccent\texttilde a}
 \definecharacter Itilde {\buildtextaccent\texttilde \dotlessI}
 \definecharacter itilde {\buildtextaccent\texttilde \dotlessi}
+\definecharacter Ntilde {\buildtextaccent\texttilde N}
+\definecharacter ntilde {\buildtextaccent\texttilde n}
 \definecharacter Otilde {\buildtextaccent\texttilde O}
 \definecharacter otilde {\buildtextaccent\texttilde o}
 \definecharacter Utilde {\buildtextaccent\texttilde U}
@@ -179,10 +182,10 @@
 \definecharacter Uogonek {\buildtextogonek U}
 \definecharacter uogonek {\buildtextogonek u}
 
-\definecharacter Aring {A}
-\definecharacter aring {a}
-\definecharacter Uring {U}
-\definecharacter uring {u}
+\definecharacter Aring {\buildtextaccent\textring A}
+\definecharacter aring {\buildtextaccent\textring a}
+\definecharacter Uring {\buildtextaccent\textring U}
+\definecharacter uring {\buildtextaccent\textring u}
 
 \definecharacter Abreve {\buildtextaccent\textbreve A}
 \definecharacter abreve {\buildtextaccent\textbreve a}
@@ -223,16 +226,22 @@
 \definecharacter dotlessI    {I}
 \definecharacter dotlessJ    {J}
 
-\definecharacter AEligature  {\char"1D }
-\definecharacter aeligature  {\char"1A }
-\definecharacter Lstroke     {\char32L}
-\definecharacter lstroke     {\char32l}
-\definecharacter Ostroke     {\char"1F }
-\definecharacter ostroke     {\char"1C }
-\definecharacter OEligature  {\char"1E }
-\definecharacter oeligature  {\char"1B }
+% \definecharacter ffligature  {\char11 }
+% \definecharacter filigature  {\char12 }
+% \definecharacter flligature  {\char13 }
+% \definecharacter ffiligature {\char14 }
+% \definecharacter fflligature {\char15 }
+
+\definecharacter AEligature  {\char29 } % "1D
+\definecharacter aeligature  {\char26 } % "1A
+\definecharacter Lstroke     {\hsmash{\char32}L}
+\definecharacter lstroke     {\hsmash{\char32}l}
+\definecharacter Ostroke     {\char31 } % "1F
+\definecharacter ostroke     {\char28 } % "1C
+\definecharacter OEligature  {\char30 } % "1E
+\definecharacter oeligature  {\char27 } % "1B
 \definecharacter Ssharp      {SS}
-\definecharacter ssharp      {\char"19 }
+\definecharacter ssharp      {\char25 } % "19 
 \definecharacter IJligature  {IJ}
 \definecharacter ijligature  {ij}
 
diff --git a/tex/context/base/enco-ini.tex b/tex/context/base/enco-ini.tex
index 3e9c1da1e..a65fa843b 100644
--- a/tex/context/base/enco-ini.tex
+++ b/tex/context/base/enco-ini.tex
@@ -386,8 +386,9 @@
    \ifx\enabledmapping\charactermapping \else
      \doifdefined{\@map@\charactermapping}
        {\the\csname\@map@\charactermapping\endcsname}%
+     \edef\enabledmapping{\charactermapping}%
      \enablelanguagespecifics[\currentlanguage]% new 
-     \edef\enabledmapping{\charactermapping\currentlanguage}%
+%     \edef\enabledmapping{\charactermapping\currentlanguage}%
    \fi
    \synchronizepatterns}
 
@@ -960,9 +961,9 @@
 %D can be used to check the correct loading of hyphenation 
 %D patterns. 
 
-\fetchruntimecommand \showaccents      {\f!encodingprefix run}
-\fetchruntimecommand \showcharacters   {\f!encodingprefix run}
-\fetchruntimecommand \showhyphenations {\f!encodingprefix run}
+\fetchruntimecommand \showaccents      {\f!encodingprefix\s!run}
+\fetchruntimecommand \showcharacters   {\f!encodingprefix\s!run}
+\fetchruntimecommand \showhyphenations {\f!encodingprefix\s!run}
 
 %D {\em The next section is experimental and implements font 
 %D specific features, like hanging punctuation.}
diff --git a/tex/context/base/enco-run.tex b/tex/context/base/enco-run.tex
index 02df0abde..082d89050 100644
--- a/tex/context/base/enco-run.tex
+++ b/tex/context/base/enco-run.tex
@@ -18,7 +18,7 @@
      {\ifcase##1\relax\red\or\blue\else\green\fi##1\hss##2}}% 
    \let\normalbuildtextaccent\buildtextaccent
    \let\normalbottomaccent   \bottomaccent
-%   \def\char{\green\normalchar}%
+  %\def\char{\green\normalchar}%
    \def\char% can be used in \oalign
      {\bgroup\def\char{\green\normalchar\scratchcounter\egroup}%
       \afterassignment\char\scratchcounter}%
@@ -26,25 +26,28 @@
    \def\bottomaccent{\let\green\empty\red\normalbottomaccent}}
 
 \gdef\visualizecharacterslegend%
-  {\hbox{\currentencoding:\space 
+  {\hbox{\currentencoding\space\fontname\font:\space 
      {\blue composed}\space{\red bottom}\space{\green char}\space raw}}
 
 \gdef\showaccents%
   {\bgroup
+   \savefont
+   \setuptextrules[\c!letter=]
    \starttextrule{\visualizecharacterslegend}
+   \restorefont\stelinterliniein
    \visualizecharacters
    \def\do##1%
      {{\def\dodo####1%
-        {\hss\hbox to 1em{\hss\expanded{##1####1\recurselevel}\hss}}%
-      \hbox to \hsize
-        {\localcolortrue 
-         \hbox to 2em{\tttf\string##1\hss}%
-         \dorecurse{26}{\dodo\character}}%
-      \hbox to \hsize
-        {\localcolortrue 
-         \hskip2em
-         \dorecurse{26}{\dodo\Character}}}%
-      \par}
+         {\hss\hbox to 1em{\hss\expanded{##1####1\recurselevel}\hss}}%
+       \hbox to \hsize
+         {\localcolortrue 
+          \hbox to 2em{\tttf\string##1\hss}%
+          \dorecurse{26}{\dodo\character}}%
+       \hbox to \hsize
+         {\localcolortrue 
+          \hskip2em
+          \dorecurse{26}{\dodo\Character}}}%
+       \par}
    \do\'\do\`\do\^\do\~\do\"
    \do\H\do\r\do\v\do\u\do\=
    \do\.\do\b\do\d\do\k\do\c
@@ -53,6 +56,9 @@
 
 \gdef\showcharacters%
   {\bgroup
+   \savefont
+   \setuptextrules[\c!letter=]
+   \starttextrule{\visualizecharacterslegend}
    \dontcomplain
    \forgetall
    \def\startencoding[##1]{}
@@ -74,10 +80,12 @@
    \edef\enccols{\number\dimen0}
    \visualizecharacters
    \startcolumns[\c!n=\enccols,\c!afstand=2em]
+   \restorefont\stelinterliniein
    \def\definecharacter ##1 ##2 %
      {\hbox{\localcolortrue\hbox to \encwidth{\getvalue{##1}\hss}##1}\par}
    \readsysfile{\f!encodingprefix def}{}{}
    \stopcolumns
+   \stoptextrule
    \egroup}
 
 \gdef\showhyphenations#1%
diff --git a/tex/context/base/font-aer.tex b/tex/context/base/font-aer.tex
deleted file mode 100644
index 4e21fc1d8..000000000
--- a/tex/context/base/font-aer.tex
+++ /dev/null
@@ -1,69 +0,0 @@
-%D \module
-%D   [       file=font-aer,
-%D        version=2000.09.20,
-%D          title=\CONTEXT\ Font Macros,
-%D       subtitle=Computer Modern,
-%D         author=Hans Hagen,
-%D           date=\currentdate,
-%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
-%C details. 
-
-%D This file remaps the default Computer Modern Font Files 
-%D onto the virtual EC ones, so that hyphenations work well.
-
-\resetfontdefinitionfile[cmr]
-
-\definefontsynonym [cmb10]       [aeb10]      [encoding=ec]
-\definefontsynonym [cmcsc10]     [aecsc10]    [encoding=ec]
-\definefontsynonym [cmsl10]      [aesl10]     [encoding=ec]
-\definefontsynonym [cmssbx10]    [aessbx10]   [encoding=ec] 
-\definefontsynonym [cmti7]       [aeti7]      [encoding=ec] 
-\definefontsynonym [cmbx10]      [aebx10]     [encoding=ec] 
-\definefontsynonym [cmitt10]     [aeitt10]    [encoding=ec] 
-\definefontsynonym [cmsl12]      [aesl12]     [encoding=ec] 
-\definefontsynonym [cmssdc10]    [aessdc10]   [encoding=ec] 
-\definefontsynonym [cmti8]       [aeti8]      [encoding=ec] 
-\definefontsynonym [cmbx12]      [aebx12]     [encoding=ec] 
-\definefontsynonym [cmr10]       [aer10]      [encoding=ec] 
-\definefontsynonym [cmsl8]       [aesl8]      [encoding=ec] 
-\definefontsynonym [cmssi10]     [aessi10]    [encoding=ec] 
-\definefontsynonym [cmti9]       [aeti9]      [encoding=ec] 
-\definefontsynonym [cmbx5]       [aebx5]      [encoding=ec] 
-\definefontsynonym [cmr12]       [aer12]      [encoding=ec] 
-\definefontsynonym [cmsl9]       [aesl9]      [encoding=ec] 
-\definefontsynonym [cmssi12]     [aessi12]    [encoding=ec] 
-\definefontsynonym [cmtt10]      [aett10]     [encoding=ec] 
-\definefontsynonym [cmbx6]       [aebx6]      [encoding=ec] 
-\definefontsynonym [cmr17]       [aer17]      [encoding=ec] 
-\definefontsynonym [cmsltt10]    [aesltt10]   [encoding=ec] 
-\definefontsynonym [cmssi17]     [aessi17]    [encoding=ec] 
-\definefontsynonym [cmtt12]      [aett12]     [encoding=ec] 
-\definefontsynonym [cmbx7]       [aebx7]      [encoding=ec] 
-\definefontsynonym [cmr5]        [aer5]       [encoding=ec] 
-\definefontsynonym [cmss10]      [aess10]     [encoding=ec] 
-\definefontsynonym [cmssi8]      [aessi8]     [encoding=ec] 
-\definefontsynonym [cmtt8]       [aett8]      [encoding=ec] 
-\definefontsynonym [cmbx8]       [aebx8]      [encoding=ec] 
-\definefontsynonym [cmr6]        [aer6]       [encoding=ec] 
-\definefontsynonym [cmss12]      [aess12]     [encoding=ec] 
-\definefontsynonym [cmssi9]      [aessi9]     [encoding=ec] 
-\definefontsynonym [cmtt9]       [aett9]      [encoding=ec] 
-\definefontsynonym [cmbx9]       [aebx9]      [encoding=ec] 
-\definefontsynonym [cmr7]        [aer7]       [encoding=ec] 
-\definefontsynonym [cmss17]      [aess17]     [encoding=ec] 
-\definefontsynonym [cmtcsc10]    [aetcsc10]   [encoding=ec] 
-\definefontsynonym [cmbxsl10]    [aebxsl10]   [encoding=ec] 
-\definefontsynonym [cmr8]        [aer8]       [encoding=ec] 
-\definefontsynonym [cmss8]       [aess8]      [encoding=ec] 
-\definefontsynonym [cmti10]      [aeti10]     [encoding=ec] 
-\definefontsynonym [cmbxti10]    [aebxti10]   [encoding=ec] 
-\definefontsynonym [cmr9]        [aer9]       [encoding=ec] 
-\definefontsynonym [cmss9]       [aess9]      [encoding=ec] 
-\definefontsynonym [cmti12]      [aeti12]     [encoding=ec] 
-
-\setupbodyfont[cmr]
-
-\endinput 
diff --git a/tex/context/base/font-ams.tex b/tex/context/base/font-ams.tex
deleted file mode 100644
index be264f3ce..000000000
--- a/tex/context/base/font-ams.tex
+++ /dev/null
@@ -1,506 +0,0 @@
-%D \module
-%D   [       file=font-ams,
-%D        version=1995.1.1,
-%D          title=\CONTEXT\ Font Macros,
-%D       subtitle=AMS Math Symbols,
-%D         author=Hans Hagen,
-%D           date=\currentdate,
-%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-
-%D Here we implement the symbol fonts as provided by the
-%D American Mathematical Society. The names of these symbols 
-%D can be found in The Joy of \TeX\ by M.~Spivak.
-%D 
-%D First we extend the already defined font sets a bit. We make
-%D use of the \type{sa} option.
-
-\definefontsynonym [MathAlpha] [msam10]
-\definefontsynonym [MathBeta]  [msbm10]
-
-\definebodyfont [14.4pt,12pt,11pt,10pt,9pt] [mm]
-  [ma=msam10 sa 1,
-   mb=msbm10 sa 1]
-
-\definebodyfont [8pt,7pt] [mm]
-  [ma=msam7 sa 1,
-   mb=msbm7 sa 1]
-
-\definebodyfont [6pt,5pt,4pt] [mm]
-  [ma=msam5 sa 1,
-   mb=msbm5 sa 1]
-
-%D We already have defined some additional math families. This
-%D means that do not have to do this again. It would exhaust our
-%D limited pool of \type{\fam}'s anyway.
-
-\unprotect
-
-\let\msafam=\mafam
-\let\msbfam=\mbfam
-
-\let\msafam@=\hexmafam
-\let\msbfam@=\hexmbfam
-
-\protect
-
-%D The following piece of \TEX\ is part of the distribution
-%D of the \AMS\ fonts. The macros are slightly adapted to the
-%D \CONTEXT\ way of font handling, which means that we have
-%D commented out some sections. The comments are original.
-
-%D \starttypen
-%D %% @texfile{
-%D %%     filename="amssym.def",
-%D %%     version="2.1",
-%D %%     date="5-APR-1991",
-%D %%     filetype="TeX: option",
-%D %%     copyright="Copyright (C) American Mathematical Society,
-%D %%            all rights reserved.  Copying of this file is
-%D %%            authorized only if either:
-%D %%            (1) you make absolutely no changes to your copy
-%D %%                including name; OR
-%D %%            (2) if you do make changes, you first rename it to some
-%D %%                other name.",
-%D %%     author="American Mathematical Society",
-%D %%     address="American Mathematical Society,
-%D %%            Technical Support Department,
-%D %%            P. O. Box 6248,
-%D %%            Providence, RI 02940,
-%D %%            USA",
-%D %%     telephone="401-455-4080 or (in the USA) 800-321-4AMS",
-%D %%     email="Internet: Tech-Support@Math.AMS.org",
-%D %%     codetable="ISO/ASCII",
-%D %%     checksumtype="line count",
-%D %%     checksum="108",
-%D %%     keywords="amsfonts, tex",
-%D %%     abstract="This file contains definitions that perform the same
-%D %%            functions as similar ones in AMS-TeX, so that the file
-%D %%            AMSSYM.TEX can be used outside of AMS-TeX. Instructions
-%D %%            for using this file and the AMS symbol fonts are
-%D %%            included in the AMSFonts 2.0 User's Guide."
-%D %%     }
-%D \stoptypen
-
-\expandafter\ifx\csname amssym.def\endcsname\relax\else\endinput\fi
-
-%D Store the catcode of the @ in the csname so that it can be
-%D restored later.
-
-\expandafter\edef\csname amssym.def\endcsname%
-  {\catcode`\noexpand\@=\the\catcode`\@\normalspace}
-
-%D Set the catcode to 11 for use in private control sequence
-%D names.
-
-\unprotect % \catcode`\@=11
-
-%D Include all definitions related to the fonts msam, msbm and
-%D eufm, so that when this file is used by itself, the results
-%D with respect to those fonts are equivalent to what they
-%D would have been using \AMSTEX. Most symbols in fonts msam
-%D and msbm are defined using \type{\newsymbol}; however, a few
-%D symbols that replace composites defined in plain must be
-%D defined with \type{\mathchardef}.
-
-\let\normalundefine\undefine
-\let\normalnewsymbol\newsymbol
-
-\def\undefine#1%      
-  {\let#1\undefined}   
-
-\def\newsymbol#1#2#3#4#5%
-  {\let\next@\relax
-   \ifnum#2=\@ne
-     \let\next@\msafam@
-   \else
-     \ifnum#2=\tw@
-       \let\next@\msbfam@
-     \fi
-   \fi
-   \mathchardef#1="#3\next@#4#5}
-
-\def\mathhexbox@#1#2#3%
-  {\relax
-   \ifmmode
-     \mathpalette{}{\m@th\mathchar"#1#2#3}%
-   \else
-     \leavevmode
-     \hbox{$\m@th\mathchar"#1#2#3$}%
-   \fi}
-
-%D \starttypen
-%D \def\hexnumber@#1%
-%D   {\ifcase#1
-%D      0\or 1\or 2\or 3\or
-%D      4\or 5\or 6\or 7\or
-%D      8\or 9\or A\or B\or
-%D      C\or D\or E\or F\fi}
-%D
-%D \font\tenmsa=msam10
-%D \font\sevenmsa=msam7
-%D \font\fivemsa=msam5
-%D \newfam\msafam
-%D \textfont\msafam=\tenmsa
-%D \scriptfont\msafam=\sevenmsa
-%D \scriptscriptfont\msafam=\fivemsa
-%D \edef\msafam@%
-%D   {\hexnumber@\msafam}
-%D \stoptypen
-
-\mathchardef\dabar@"0\msafam@39
-
-\def\dashrightarrow  {\mathrel{\dabar@\dabar@\mathchar"0\msafam@4B}}
-\def\dashleftarrow   {\mathrel{\mathchar"0\msafam@4C\dabar@\dabar@}}
-\let\dasharrow       \dashrightarrow
-\def\ulcorner        {\delimiter"4\msafam@70\msafam@70 }
-\def\urcorner        {\delimiter"5\msafam@71\msafam@71 }
-\def\llcorner        {\delimiter"4\msafam@78\msafam@78 }
-\def\lrcorner        {\delimiter"5\msafam@79\msafam@79 }
-\def\yen             {{\mathhexbox@\msafam@55 }}
-\def\checkmark       {{\mathhexbox@\msafam@58 }}
-\def\circledR        {{\mathhexbox@\msafam@72 }}
-\def\maltese         {{\mathhexbox@\msafam@7A }}
-
-%D \starttypen
-%D \font\tenmsb=msbm10
-%D \font\sevenmsb=msbm7
-%D \font\fivemsb=msbm5
-%D \newfam\msbfam
-%D \textfont\msbfam=\tenmsb
-%D \scriptfont\msbfam=\sevenmsb
-%D \scriptscriptfont\msbfam=\fivemsb
-%D \edef\msbfam@%
-%D   {\hexnumber@\msbfam}
-%D \stoptypen
-
-\def\Bbb#1%
-  {{\fam\msbfam\relax#1}}
-
-\def\widehat#1%
-  {\setbox\z@\hbox{$\m@th#1$}%
-   \ifdim\wd\z@>\tw@ em%
-     \mathaccent"0\msbfam@5B{#1}%
-   \else
-     \mathaccent"0362{#1}%
-   \fi}
-
-\def\widetilde#1%
-  {\setbox\z@\hbox{$\m@th#1$}%
-   \ifdim\wd\z@>\tw@ em%
-     \mathaccent"0\msbfam@5D{#1}%
-   \else
-     \mathaccent"0365{#1}%
-   \fi}
-
-%D \starttypen
-%D \font\teneufm=eufm10
-%D \font\seveneufm=eufm7
-%D \font\fiveeufm=eufm5
-%D \newfam\eufmfam
-%D \textfont\eufmfam=\teneufm
-%D \scriptfont\eufmfam=\seveneufm
-%D \scriptscriptfont\eufmfam=\fiveeufm
-%D \def\frak#1{{\fam\eufmfam\relax#1}}
-%D \let\goth\frak
-%D \stoptypen
-
-%D  Restore the catcode value for @ that was previously saved.
-
-\csname amssym.def\endcsname
-
-%D \starttypen
-%D %% @texfile{
-%D %%     filename="amssym.tex",
-%D %%     version="2.1a",
-%D %%     date="31-OCT-1991",
-%D %%     filetype="TeX: option",
-%D %%     copyright="Copyright (C) American Mathematical Society,
-%D %%            all rights reserved.  Copying of this file is
-%D %%            authorized only if either:
-%D %%            (1) you make absolutely no changes to your copy
-%D %%                including name; OR
-%D %%            (2) if you do make changes, you first rename it to some
-%D %%                other name.",
-%D %%     author="American Mathematical Society",
-%D %%     address="American Mathematical Society,
-%D %%            Technical Support Department,
-%D %%            P. O. Box 6248,
-%D %%            Providence, RI 02940,
-%D %%            USA",
-%D %%     telephone="401-455-4080 or (in the USA) 800-321-4AMS",
-%D %%     email="Internet: Tech-Support@Math.AMS.org",
-%D %%     codetable="ISO/ASCII",
-%D %%     checksumtype="line count",
-%D %%     checksum="279",
-%D %%     keywords="amstex, ams-tex, tex, amsfonts, math symbols",
-%D %%     abstract="This file defines names for all the math symbols in
-%D %%            the math symbol fonts of the AMSFonts package (MSAM and
-%D %%            MSBM). If this file is not used by way of the AMS-TeX
-%D %%            \UseAMSsymbols command, it must be used in conjunction
-%D %%            with AMSSYM.DEF, which provides a definition of the
-%D %%            \newsymbol and \undefine commands.
-%D %%            Instructions for using the AMS symbol fonts are
-%D %%            included in: AMS-TeX 2.1 User's Guide; AMSFonts 2.1
-%D %%            User's Guide; The Joy of TeX, editions dated 1990 or
-%D %%            later."
-%D %%     }
-%D \stoptypen
-
-%D Save the current value of the @-sign catcode so that it can
-%D be restored afterwards. This allows us to call amssym.tex
-%D either within an \AMSTEX\ document style file or by itself,
-%D in addition to providing a means of testing whether the file
-%D has been previously loaded. We want to avoid inputting this
-%D file twice because when \AMSTEX\ is being used
-%D \type{\newsymbol} will give an error message if used to
-%D define a control sequence name that is already defined.
-
-%D If the csname is not equal to \type{\relax}, we assume this
-%D file has already been loaded and \type{\endinput}
-%D immediately.
-
-\expandafter\ifx\csname pre amssym.tex at\endcsname\relax \else \endinput\fi
-
-%D Otherwise we store the catcode of the @ in the csname.
-
-\expandafter\chardef\csname pre amssym.tex at\endcsname=\the\catcode`\@
-
-%D Set the catcode to 11 for use in private control sequence
-%D names.
-
-\catcode`\@=11
-
-%D Most symbols in fonts msam and msbm are defined using
-%D \type{\newsymbol}. A few that are delimiters or otherwise
-%D require special treatment have already been defined as soon
-%D as the fonts were loaded. Finally, a few symbols that
-%D replace composites defined in plain must be undefined first.
-
-\newsymbol\boxdot 1200
-\newsymbol\boxplus 1201
-\newsymbol\boxtimes 1202
-\newsymbol\square 1003
-\newsymbol\blacksquare 1004
-\newsymbol\centerdot 1205
-\newsymbol\lozenge 1006
-\newsymbol\blacklozenge 1007
-\newsymbol\circlearrowright 1308
-\newsymbol\circlearrowleft 1309
-\undefine\rightleftharpoons
-\newsymbol\rightleftharpoons 130A
-\newsymbol\leftrightharpoons 130B
-\newsymbol\boxminus 120C
-\newsymbol\Vdash 130D
-\newsymbol\Vvdash 130E
-\newsymbol\vDash 130F
-\newsymbol\twoheadrightarrow 1310
-\newsymbol\twoheadleftarrow 1311
-\newsymbol\leftleftarrows 1312
-\newsymbol\rightrightarrows 1313
-\newsymbol\upuparrows 1314
-\newsymbol\downdownarrows 1315
-\newsymbol\upharpoonright 1316
- \let\restriction\upharpoonright
-\newsymbol\downharpoonright 1317
-\newsymbol\upharpoonleft 1318
-\newsymbol\downharpoonleft 1319
-\newsymbol\rightarrowtail 131A
-\newsymbol\leftarrowtail 131B
-\newsymbol\leftrightarrows 131C
-\newsymbol\rightleftarrows 131D
-\newsymbol\Lsh 131E
-\newsymbol\Rsh 131F
-\newsymbol\rightsquigarrow 1320
-\newsymbol\leftrightsquigarrow 1321
-\newsymbol\looparrowleft 1322
-\newsymbol\looparrowright 1323
-\newsymbol\circeq 1324
-\newsymbol\succsim 1325
-\newsymbol\gtrsim 1326
-\newsymbol\gtrapprox 1327
-\newsymbol\multimap 1328
-\newsymbol\therefore 1329
-\newsymbol\because 132A
-\newsymbol\doteqdot 132B
- \let\Doteq\doteqdot
-\newsymbol\triangleq 132C
-\newsymbol\precsim 132D
-\newsymbol\lesssim 132E
-\newsymbol\lessapprox 132F
-\newsymbol\eqslantless 1330
-\newsymbol\eqslantgtr 1331
-\newsymbol\curlyeqprec 1332
-\newsymbol\curlyeqsucc 1333
-\newsymbol\preccurlyeq 1334
-\newsymbol\leqq 1335
-\newsymbol\leqslant 1336
-\newsymbol\lessgtr 1337
-\newsymbol\backprime 1038
-\newsymbol\risingdotseq 133A
-\newsymbol\fallingdotseq 133B
-\newsymbol\succcurlyeq 133C
-\newsymbol\geqq 133D
-\newsymbol\geqslant 133E
-\newsymbol\gtrless 133F
-\newsymbol\sqsubset 1340
-\newsymbol\sqsupset 1341
-\newsymbol\vartriangleright 1342
-\newsymbol\vartriangleleft 1343
-\newsymbol\trianglerighteq 1344
-\newsymbol\trianglelefteq 1345
-\newsymbol\bigstar 1046
-\newsymbol\between 1347
-\newsymbol\blacktriangledown 1048
-\newsymbol\blacktriangleright 1349
-\newsymbol\blacktriangleleft 134A
-\newsymbol\vartriangle 134D
-\newsymbol\blacktriangle 104E
-\newsymbol\triangledown 104F
-\newsymbol\eqcirc 1350
-\newsymbol\lesseqgtr 1351
-\newsymbol\gtreqless 1352
-\newsymbol\lesseqqgtr 1353
-\newsymbol\gtreqqless 1354
-\newsymbol\Rrightarrow 1356
-\newsymbol\Lleftarrow 1357
-\newsymbol\veebar 1259
-\newsymbol\barwedge 125A
-\newsymbol\doublebarwedge 125B
-\undefine\angle
-\newsymbol\angle 105C
-\newsymbol\measuredangle 105D
-\newsymbol\sphericalangle 105E
-\newsymbol\varpropto 135F
-\newsymbol\smallsmile 1360
-\newsymbol\smallfrown 1361
-\newsymbol\Subset 1362
-\newsymbol\Supset 1363
-\newsymbol\Cup 1264
- \let\doublecup\Cup
-\newsymbol\Cap 1265
- \let\doublecap\Cap
-\newsymbol\curlywedge 1266
-\newsymbol\curlyvee 1267
-\newsymbol\leftthreetimes 1268
-\newsymbol\rightthreetimes 1269
-\newsymbol\subseteqq 136A
-\newsymbol\supseteqq 136B
-\newsymbol\bumpeq 136C
-\newsymbol\Bumpeq 136D
-\newsymbol\lll 136E
- \let\llless\lll
-\newsymbol\ggg 136F
- \let\gggtr\ggg
-\newsymbol\circledS 1073
-\newsymbol\pitchfork 1374
-\newsymbol\dotplus 1275
-\newsymbol\backsim 1376
-\newsymbol\backsimeq 1377
-\newsymbol\complement 107B
-\newsymbol\intercal 127C
-\newsymbol\circledcirc 127D
-\newsymbol\circledast 127E
-\newsymbol\circleddash 127F
-\newsymbol\lvertneqq 2300
-\newsymbol\gvertneqq 2301
-\newsymbol\nleq 2302
-\newsymbol\ngeq 2303
-\newsymbol\nless 2304
-\newsymbol\ngtr 2305
-\newsymbol\nprec 2306
-\newsymbol\nsucc 2307
-\newsymbol\lneqq 2308
-\newsymbol\gneqq 2309
-\newsymbol\nleqslant 230A
-\newsymbol\ngeqslant 230B
-\newsymbol\lneq 230C
-\newsymbol\gneq 230D
-\newsymbol\npreceq 230E
-\newsymbol\nsucceq 230F
-\newsymbol\precnsim 2310
-\newsymbol\succnsim 2311
-\newsymbol\lnsim 2312
-\newsymbol\gnsim 2313
-\newsymbol\nleqq 2314
-\newsymbol\ngeqq 2315
-\newsymbol\precneqq 2316
-\newsymbol\succneqq 2317
-\newsymbol\precnapprox 2318
-\newsymbol\succnapprox 2319
-\newsymbol\lnapprox 231A
-\newsymbol\gnapprox 231B
-\newsymbol\nsim 231C
-\newsymbol\ncong 231D
-\newsymbol\diagup 231E
-\newsymbol\diagdown 231F
-\newsymbol\varsubsetneq 2320
-\newsymbol\varsupsetneq 2321
-\newsymbol\nsubseteqq 2322
-\newsymbol\nsupseteqq 2323
-\newsymbol\subsetneqq 2324
-\newsymbol\supsetneqq 2325
-\newsymbol\varsubsetneqq 2326
-\newsymbol\varsupsetneqq 2327
-\newsymbol\subsetneq 2328
-\newsymbol\supsetneq 2329
-\newsymbol\nsubseteq 232A
-\newsymbol\nsupseteq 232B
-\newsymbol\nparallel 232C
-\newsymbol\nmid 232D
-\newsymbol\nshortmid 232E
-\newsymbol\nshortparallel 232F
-\newsymbol\nvdash 2330
-\newsymbol\nVdash 2331
-\newsymbol\nvDash 2332
-\newsymbol\nVDash 2333
-\newsymbol\ntrianglerighteq 2334
-\newsymbol\ntrianglelefteq 2335
-\newsymbol\ntriangleleft 2336
-\newsymbol\ntriangleright 2337
-\newsymbol\nleftarrow 2338
-\newsymbol\nrightarrow 2339
-\newsymbol\nLeftarrow 233A
-\newsymbol\nRightarrow 233B
-\newsymbol\nLeftrightarrow 233C
-\newsymbol\nleftrightarrow 233D
-\newsymbol\divideontimes 223E
-\newsymbol\varnothing 203F
-\newsymbol\nexists 2040
-\newsymbol\Finv 2060
-\newsymbol\Game 2061
-\newsymbol\mho 2066
-\newsymbol\eth 2067
-\newsymbol\eqsim 2368
-\newsymbol\beth 2069
-\newsymbol\gimel 206A
-\newsymbol\daleth 206B
-\newsymbol\lessdot 236C
-\newsymbol\gtrdot 236D
-\newsymbol\ltimes 226E
-\newsymbol\rtimes 226F
-\newsymbol\shortmid 2370
-\newsymbol\shortparallel 2371
-\newsymbol\smallsetminus 2272
-\newsymbol\thicksim 2373
-\newsymbol\thickapprox 2374
-\newsymbol\approxeq 2375
-\newsymbol\succapprox 2376
-\newsymbol\precapprox 2377
-\newsymbol\curvearrowleft 2378
-\newsymbol\curvearrowright 2379
-\newsymbol\digamma 207A
-\newsymbol\varkappa 207B
-\newsymbol\Bbbk 207C
-\newsymbol\hslash 207D
-\undefine\hbar
-\newsymbol\hbar 207E
-\newsymbol\backepsilon 237F
-
-%D Restore the catcode value for @ that was previously saved.
-
-\let\undefine\normalundefine
-\let\newsymbol\normalnewsymbol
-
-\protect % \catcode`\@=\csname pre amssym.tex at\endcsname
-
-\endinput
diff --git a/tex/context/base/font-ant.tex b/tex/context/base/font-ant.tex
deleted file mode 100644
index b3e41e1d0..000000000
--- a/tex/context/base/font-ant.tex
+++ /dev/null
@@ -1,28 +0,0 @@
-%D \module
-%D   [       file=font-ant,
-%D        version=1998.8.25,
-%D          title=\CONTEXT\ Font Macros,
-%D       subtitle=AntykwaTorunska,
-%D         author=Hans Hagen,
-%D           date=\currentdate,
-%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
-%C details. 
-
-%D The Antikwa Torunska font family is a rather nice 
-%D and subtle one. Although primary meant for the polish 
-%D language, it can be used for other languages as well. 
-
-\definefontsynonym [Serif]            [AntykwaTorunska-Regular] 
-\definefontsynonym [SerifBold]        [AntykwaTorunska-Bold] 
-\definefontsynonym [SerifItalic]      [AntykwaTorunska-Italic] 
-\definefontsynonym [SerifSlanted]     [AntykwaTorunska-Italic] 
-\definefontsynonym [SerifBoldItalic]  [AntykwaTorunska-Bold]
-\definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-Bold] 
-\definefontsynonym [SerifCaps]        [AntykwaTorunska-Regular] 
-
-\definebodyfont [14.4pt,12pt,11pt,10pt,9pt,8pt,7pt] [rm] [default]
-
-\endinput
diff --git a/tex/context/base/font-arb.tex b/tex/context/base/font-arb.tex
index 2303381e6..cd915fdff 100644
--- a/tex/context/base/font-arb.tex
+++ b/tex/context/base/font-arb.tex
@@ -1,3 +1,5 @@
+% NOT YET ADAPTED TO THE NEW FONT MACROS 
+
 % I still need to hook in some features into the setup 
 % macro. I also have to (re)define farsi etc. in ways 
 % similar to arab, so that we have dedicated environments. 
diff --git a/tex/context/base/font-ber.tex b/tex/context/base/font-ber.tex
deleted file mode 100644
index cc429dd00..000000000
--- a/tex/context/base/font-ber.tex
+++ /dev/null
@@ -1,92 +0,0 @@
-%D \module
-%D   [       file=font-ber,
-%D        version=1998.7.16,
-%D          title=\CONTEXT\ Font Macros,
-%D       subtitle=Karl Berry Font Names,
-%D         author=Hans Hagen,
-%D           date=\currentdate,
-%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\definefontsynonym [Baskerville]                [mbvr8t]  [encoding=ec]
-\definefontsynonym [Baskerville-Italic]         [mbvri8t] [encoding=ec]
-\definefontsynonym [Baskerville-Bold]           [mbvb8t]  [encoding=ec]
-\definefontsynonym [Baskerville-BoldItalic]     [mbvbi8t] [encoding=ec]
-\definefontsynonym [Baskerville-SemiBold]       [mbvs8t]  [encoding=ec]
-\definefontsynonym [Baskerville-SemiBoldItalic] [mbvsi8t] [encoding=ec]
-
-\definefontsynonym [Courier]                    [pcrr8t]  [encoding=ec]
-\definefontsynonym [Courier-Bold]               [pcrb8t]  [encoding=ec]
-\definefontsynonym [Courier-Oblique]            [pcrro8t] [encoding=ec]
-\definefontsynonym [Courier-BoldOblique]        [pcrbo8t] [encoding=ec]
-
-\definefontsynonym [Helvetica]                  [phvr8t]  [encoding=ec]
-\definefontsynonym [Helvetica-Oblique]          [phvro8t] [encoding=ec]
-\definefontsynonym [Helvetica-Bold]             [phvb8t]  [encoding=ec]
-\definefontsynonym [Helvetica-BoldOblique]      [phvbo8t] [encoding=ec]
-
-\definefontsynonym [Times-Roman]                [ptmr8t]  [encoding=ec]
-\definefontsynonym [Times-Italic]               [ptmri8t] [encoding=ec]
-\definefontsynonym [Times-Bold]                 [ptmb8t]  [encoding=ec]
-\definefontsynonym [Times-BoldItalic]           [ptmbi8t] [encoding=ec]
-
-\definefontsynonym [AntykwaTorunska-Regular]    [zatr8t]  [encoding=ec]
-\definefontsynonym [AntykwaTorunska-Italic]     [zatri8t] [encoding=ec]
-\definefontsynonym [AntykwaTorunska-Bold]       [zatb8t]  [encoding=ec]
-
-\definefontsynonym [Palatino-Roman]             [uplr8t]  [encoding=ec]
-\definefontsynonym [Palatino-Italic]            [uplri8t] [encoding=ec]
-\definefontsynonym [Palatino-Slanted]           [uplro8t] [encoding=ec]
-\definefontsynonym [Palatino-Bold]              [uplb8t]  [encoding=ec]
-\definefontsynonym [Palatino-BoldItalic]        [uplbi8t] [encoding=ec]
-\definefontsynonym [Palatino-BoldSlanted]       [uplbo8t] [encoding=ec]
-
-\definefontsynonym [AvantGarde]                 [pag]
-\definefontsynonym [BookmanLight]               [pbk]
-\definefontsynonym [CentaurMT]                  [pur]
-\definefontsynonym [Garamond]                   [pgm]
-\definefontsynonym [GillSans]                   [pgs]
-\definefontsynonym [NewBaskerville]             [pnb]
-\definefontsynonym [Optima]                     [pop]
-\definefontsynonym [Palatino]                   [ppl]
-\definefontsynonym [Symbol]                     [psy]
-\definefontsynonym [Univers]                    [pun]
-\definefontsynonym [Utopia]                     [put]
-\definefontsynonym [ZapfChancery]               [pzc]
-\definefontsynonym [ZapfDingbats]               [pzd]
-
-\definefontsynonym [LucidaBright]                     [hlhr8t]   [encoding=ec]
-\definefontsynonym [LucidaBright-Demi]                [hlhb8t]   [encoding=ec]
-\definefontsynonym [LucidaBright-Italic]              [hlhri8t]  [encoding=ec]
-\definefontsynonym [LucidaBright-Oblique]             [hlhro8t]  [encoding=ec]
-\definefontsynonym [LucidaBright-DemiItalic]          [hlhbi8t]  [encoding=ec]
-\definefontsynonym [LucidaBrightSmallcaps]            [hlhrc8t]  [encoding=ec]
-
-\definefontsynonym [LucidaSans]                       [hlsr8t]   [encoding=ec]
-\definefontsynonym [LucidaSans-Demi]                  [hlsb8t]   [encoding=ec]
-\definefontsynonym [LucidaSans-Italic]                [hlsri8t]  [encoding=ec]
-\definefontsynonym [LucidaSans-DemiItalic]            [hlsbi8t]  [encoding=ec]
-\definefontsynonym [LucidaSans-Typewriter]            [hlsrt8t]  [encoding=ec]
-\definefontsynonym [LucidaSans-TypewriterBold]        [hlsbt8t]  [encoding=ec]
-\definefontsynonym [LucidaSans-TypewriterOblique]     [hlsrot8t] [encoding=ec]
-\definefontsynonym [LucidaSans-TypewriterBoldOblique] [hlsbot8t] [encoding=ec]
-
-\definefontsynonym [LucidaHandwriting-Italic]         [hlcriw8t] [encoding=ec]
-\definefontsynonym [LucidaCalligraphy-Italic]         [hlcrie8t] [encoding=ec]
-
-\definefontsynonym [LucidaNewMath-AltDemiItalic]      [hlcdima]
-\definefontsynonym [LucidaNewMath-AltItalic]          [hlcrima]
-\definefontsynonym [LucidaNewMath-Arrows]             [hlcra]
-\definefontsynonym [LucidaNewMath-Arrows-Demi]        [hlcda]
-\definefontsynonym [LucidaNewMath-Extension]          [hlcrv]
-\definefontsynonym [LucidaNewMath-Roman]              [hlcrm]
-\definefontsynonym [LucidaNewMath-Demibold]           [hlcdm]
-\definefontsynonym [LucidaNewMath-DemiItalic]         [hlcdim]
-\definefontsynonym [LucidaNewMath-Italic]             [hlcrim]
-\definefontsynonym [LucidaNewMath-Symbol]             [hlcry]
-\definefontsynonym [LucidaNewMath-Symbol-Demi]        [hlcdy]
-
-\endinput
diff --git a/tex/context/base/font-chi.tex b/tex/context/base/font-chi.tex
index 676f5a053..49c70aeb2 100644
--- a/tex/context/base/font-chi.tex
+++ b/tex/context/base/font-chi.tex
@@ -1,3 +1,5 @@
+% NOT YET ADAPTED TO THE NEW FONT MACROS 
+
 %D \module
 %D   [       file=font-chi,
 %D        version=1999.10.10,
diff --git a/tex/context/base/font-cmr.tex b/tex/context/base/font-cmr.tex
deleted file mode 100644
index 11e28b258..000000000
--- a/tex/context/base/font-cmr.tex
+++ /dev/null
@@ -1,613 +0,0 @@
-%D \module
-%D   [       file=font-cmr,
-%D        version=1995.1.1,
-%D          title=\CONTEXT\ Font Macros,
-%D       subtitle=Computer Modern,
-%D         author=Hans Hagen,
-%D           date=\currentdate,
-%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
-%C details. 
-
-%D The Computer Modern Roman is derived from the Monotype~8a 
-%D Times Roman. In this module, that is loaded by default, we 
-%D define all relevant alternatives. 
-
-%D Now watch these definitions. They permits us to generate 
-%D undefined sizes on the fly. We take 10 point as starting 
-%D point.
-
-\definefontsynonym [Serif]              [ComputerModern]
-\definefontsynonym [SerifBold]          [ComputerModern-Bold]
-\definefontsynonym [SerifItalic]        [ComputerModern-Italic]
-\definefontsynonym [SerifSlanted]       [ComputerModern-Slanted]
-\definefontsynonym [SerifBoldItalic]    [ComputerModern-BoldItalic]
-\definefontsynonym [SerifBoldSlanted]   [ComputerModern-BoldSlanted]
-\definefontsynonym [SerifCaps]          [ComputerModern-Caps]
-
-\definefontsynonym [Sans]               [ComputerModernSans]
-\definefontsynonym [SansBold]           [ComputerModernSans-Bold]
-\definefontsynonym [SansItalic]         [ComputerModernSans-Italic]
-\definefontsynonym [SansSlanted]        [ComputerModernSans-Slanted]
-\definefontsynonym [SansBoldItalic]     [ComputerModernSans-BoldItalic]
-\definefontsynonym [SansBoldSlanted]    [ComputerModernSans-BoldSlanted]
-\definefontsynonym [SansCaps]           [ComputerModernSans-Caps]
-
-\definefontsynonym [Mono]               [ComputerModernMono]
-\definefontsynonym [MonoBold]           [ComputerModernMono-Bold]
-\definefontsynonym [MonoItalic]         [ComputerModernMono-Italic]
-\definefontsynonym [MonoSlanted]        [ComputerModernMono-Slanted]
-\definefontsynonym [MonoBoldItalic]     [ComputerModernMono-BoldItalic]
-\definefontsynonym [MonoBoldSlanted]    [ComputerModernMono-BoldSlanted]
-\definefontsynonym [MonoCaps]           [ComputerModernMono-Caps]
-
-\definefontsynonym [MathRoman]          [ComputerModernMath-Roman]
-\definefontsynonym [MathExtension]      [ComputerModernMath-Extension]
-\definefontsynonym [MathItalic]         [ComputerModernMath-Italic]
-\definefontsynonym [MathSymbol]         [ComputerModernMath-Symbol]
-
-\definefontsynonym [OldStyle]           [MathItalic]         
-
-\definefontsynonym [Fraktur]            [eufm10]
-\definefontsynonym [Gothic]             [eufm10]
-\definefontsynonym [Calligraphic]       [cmsy10]
-
-%D What follows next is the main definition part.
-
-\definebodyfont [12pt] [rm] 
-  [ tf=cmr12,
-   tfa=cmr12 scaled \magstep1,
-   tfb=cmr12 scaled \magstep2,   
-   tfc=cmr12 scaled \magstep3, 
-   tfd=cmr12 scaled \magstep4,
-    bf=cmbx12,
-    it=cmti12,
-    sl=cmsl12,
-    bi=cmbxti10 at 12pt, 
-    bs=cmbxsl10 at 12pt, 
-    sc=cmcsc10 at 12pt]
-
-\definebodyfont [12pt] [ss] 
-  [ tf=cmss12,
-   tfa=cmss12 scaled \magstep1,
-   tfb=cmss12 scaled \magstep2, 
-   tfc=cmss12 scaled \magstep3, 
-   tfd=cmss12 scaled \magstep4,
-    bf=cmssbx10 at 12pt,
-    it=cmssi12,
-    sl=cmssi12,
-    bi=cmssbx10 at 12pt,
-    bs=cmssbx10 at 12pt,
-    sc=cmss10 at 12pt]
-
-\definebodyfont [12pt] [tt] 
-  [ tf=cmtt12,
-   tfa=cmtt12 scaled \magstep1,
-   tfb=cmtt12 scaled \magstep2,   
-   tfc=cmtt12 scaled \magstep3, 
-   tfd=cmtt12 scaled \magstep4,
-    sl=cmsltt10 at 12pt,
-    it=cmitt10 at 12pt]
-
-\definebodyfont [12pt] [mm] 
-  [ex=cmex10 at 12pt,
-   mi=cmmi12,
-   sy=cmsy10 at 12pt] 
-
-\definebodyfont [12pt] [hw] 
-  [tf=cmtt12]
-
-\definebodyfont [12pt] [cg] 
-  [tf=cmtt12]
-
-\definebodyfont [11pt] [rm] 
-  [ tf=cmr10 at 11pt, 
-   tfa=cmr9 scaled \magstep2,
-   tfb=cmr9 scaled \magstep3,
-   tfc=cmr9 scaled \magstep4,
-   tfd=cmr9 scaled \magstep5,
-    bf=cmbx10 at 11pt, 
-    sl=cmsl10 at 11pt, 
-    it=cmti10 at 11pt, 
-    bi=cmbxti10 at 11pt, 
-    bs=cmbxsl10 at 11pt, 
-    sc=cmcsc10 at 11pt]
-
-\definebodyfont [11pt] [ss] 
-  [ tf=cmss10 at 11pt, 
-   tfa=cmss9 scaled \magstep2,
-   tfb=cmss9 scaled \magstep3,
-   tfc=cmss9 scaled \magstep4,
-   tfd=cmss9 scaled \magstep5,
-    bf=cmssbx10 at 11pt, 
-    it=cmssi10 at 11pt, 
-    sl=cmssi10 at 11pt, 
-    bi=cmssbx10 at 11pt, 
-    bs=cmssbx10 at 11pt, 
-    sc=cmss10 at 11pt]
-
-\definebodyfont [11pt] [tt] 
-  [tf=cmtt10   at 11pt,
-   sl=cmsltt10 at 11pt,
-   it=cmitt10 at 11pt]
-
-\definebodyfont [11pt] [mm] 
-  [ex=cmex10 at 11pt,
-   mi=cmmi10 at 11pt,
-   sy=cmsy10 at 11pt]
-
-\definebodyfont [11pt] [hw] 
-  [tf=cmtt10 at 11pt]
-
-\definebodyfont [11pt] [cg] 
-  [tf=cmtt10 at 11pt]
-
-\definebodyfont [10pt] [rm] 
-  [ tf=cmr10,
-   tfa=cmr10 scaled \magstep1,
-   tfb=cmr10 scaled \magstep2,   
-   tfc=cmr10 scaled \magstep3, 
-   tfd=cmr10 scaled \magstep4,
-    bf=cmbx10,
-    it=cmti10,
-    sl=cmsl10,
-    bi=cmbxti10, 
-    bs=cmbxsl10, 
-    sc=cmcsc10]
-
-\definebodyfont [10pt] [ss] 
-  [ tf=cmss10,
-   tfa=cmss10 scaled \magstep1,
-   tfb=cmss10 scaled \magstep2, 
-   tfc=cmss10 scaled \magstep3, 
-   tfd=cmss10 scaled \magstep4,
-    bf=cmssbx10, 
-    it=cmssi10,
-    sl=cmssi10,
-    bi=cmssbx10, 
-    bs=cmssbx10, 
-    sc=cmss10]
-
-\definebodyfont [10pt] [tt] 
-  [ tf=cmtt10,
-   tfa=cmtt10 scaled \magstep1,
-   tfb=cmtt10 scaled \magstep2,   
-   tfc=cmtt10 scaled \magstep3, 
-   tfd=cmtt10 scaled \magstep4,
-    sl=cmsltt10,
-    it=cmitt10]
-
-\definebodyfont [10pt] [mm] 
-  [ex=cmex10,   
-   mi=cmmi10,
-   sy=cmsy10]   
-
-\definebodyfont [10pt] [hw] 
-  [tf=cmtt10]
-
-\definebodyfont [10pt] [cg] 
-  [tf=cmtt10]
-
-\definebodyfont [9pt] [rm] 
-  [ tf=cmr9,
-   tfa=cmr9 scaled \magstep1,
-   tfb=cmr9 scaled \magstep2,   
-   tfc=cmr9 scaled \magstep3, 
-   tfd=cmr9 scaled \magstep4,
-    bf=cmbx9,
-    it=cmti9,
-    sl=cmsl9,
-    bi=cmbxti10 at 9pt,          
-    bs=cmbxsl10 at 9pt,          
-    sc=cmcsc10 at 9pt]
-
-\definebodyfont [9pt] [ss] 
-  [ tf=cmss9,
-   tfa=cmss9 scaled \magstep1,
-   tfb=cmss9 scaled \magstep2, 
-   tfc=cmss9 scaled \magstep3, 
-   tfd=cmss9 scaled \magstep4,
-    bf=cmssbx10 at 9pt, 
-    it=cmssi9,
-    sl=cmssi9,
-    bi=cmssbx10 at 9pt, 
-    bs=cmssbx10 at 9pt, 
-    sc=cmss9]
-
-\definebodyfont [9pt] [tt] 
-  [tf=cmtt9,
-   sl=cmsltt10 at 9pt,
-   it=cmitt10 at 9pt]
-
-\definebodyfont [9pt] [mm] 
-  [ex=cmex10 at 9pt,   
-   mi=cmmi9,
-   sy=cmsy9]   
-
-\definebodyfont [9pt] [hw] 
-  [tf=cmtt9]
-
-\definebodyfont [9pt] [cg] 
-  [tf=cmtt9]
-
-\definebodyfont [8pt] [rm] 
-  [ tf=cmr8,
-   tfa=cmr8 scaled \magstep1,
-   tfb=cmr8 scaled \magstep2,   
-   tfc=cmr8 scaled \magstep3, 
-   tfd=cmr8 scaled \magstep4,
-    bf=cmbx8,
-    it=cmti8,
-    sl=cmsl8,
-    bi=cmbxti10 at 8pt,         
-    bs=cmbxsl10 at 8pt,         
-    sc=cmcsc10 at 8pt]
-
-\definebodyfont [8pt] [ss] 
-  [ tf=cmss8,
-   tfa=cmss8 scaled \magstep1,
-   tfb=cmss8 scaled \magstep2, 
-   tfc=cmss8 scaled \magstep3, 
-   tfd=cmss8 scaled \magstep4,
-    bf=cmssbx10 at 8pt, 
-    it=cmssi8,
-    sl=cmssi8,
-    bi=cmssbx10 at 8pt, 
-    bs=cmssbx10 at 8pt, 
-    sc=cmss8]
-
-\definebodyfont [8pt] [tt] 
-  [tf=cmtt8,
-   sl=cmsltt10 at 8pt,
-   it=cmitt10 at 8pt]
-
-\definebodyfont [8pt] [mm] 
-  [ex=cmex10 at 8pt,   
-   mi=cmmi8,
-   sy=cmsy8]   
-
-\definebodyfont [8pt] [hw] 
-  [tf=cmtt8]
-
-\definebodyfont [8pt] [cg] 
-  [tf=cmtt8]
-
-\definebodyfont [7pt] [rm] 
-  [ tf=cmr7,
-   tfa=cmr7 scaled \magstep1,
-   tfb=cmr7 scaled \magstep2,   
-   tfc=cmr7 scaled \magstep3, 
-   tfd=cmr7 scaled \magstep4,
-    bf=cmbx7,
-    it=cmti10 at 7pt,
-    sl=cmsl10 at 7pt,
-    bi=cmbxti10 at 7pt,           
-    bs=cmbxsl10 at 7pt,           
-    sc=cmcsc10 at 7pt]
-
-\definebodyfont [7pt] [ss] 
-  [ tf=cmss10 at 7pt,
-   tfa=cmss8, % scaled 1000,
-   tfb=cmss8 scaled \magstep1, 
-   tfc=cmss8 scaled \magstep2, 
-   tfd=cmss8 scaled \magstep3,
-    bf=cmssbx10 at 7pt, 
-    it=cmssi10 at 7pt,
-    sl=cmssi10 at 7pt,
-    bs=cmssbx10 at 7pt,
-    bi=cmssbx10 at 7pt,
-    sc=cmss10 at 7pt]
-
-\definebodyfont [7pt] [tt] 
-  [tf=cmtt10 at 7pt,
-   sl=cmsltt10 at 7pt,
-   it=cmitt10 at 7pt]
-
-\definebodyfont [7pt] [mm] 
-  [ex=cmex10 at 7pt,   
-   mi=cmmi7,
-   sy=cmsy7]   
-
-\definebodyfont [6pt] [rm] 
-  [ tf=cmr6,
-   tfa=cmr6 scaled \magstep1,
-   tfb=cmr6 scaled \magstep2,   
-   tfc=cmr6 scaled \magstep3, 
-   tfd=cmr6 scaled \magstep4,
-    bf=cmbx6,
-    it=cmti10 at 6pt,
-    sl=cmsl10 at 6pt,
-    bi=cmbxti10 at 6pt,           
-    bs=cmbxsl10 at 6pt,           
-    sc=cmcsc10 at 6pt]
-
-\definebodyfont [6pt] [ss] 
-  [tf=cmss10 at 6pt,
-   bf=cmssbx10 at 6pt, 
-   it=cmssi10 at 6pt,
-   sl=cmssi10 at 6pt,
-   bs=cmssbx10 at 6pt,
-   bi=cmssbx10 at 6pt,
-   sc=cmss10 at 6pt]
-
-\definebodyfont [6pt] [tt] 
-  [tf=cmtt10 at 6pt,
-   sl=cmsltt10 at 6pt,
-   it=cmitt10 at 6pt]
-
-\definebodyfont [6pt] [mm] 
-  [ex=cmex10 at 6pt,   
-   mi=cmmi6,
-   sy=cmsy6]   
-
-\definebodyfont [5pt] [rm] 
-  [ tf=cmr5,
-   tfa=cmr5 scaled \magstep1,
-   tfb=cmr5 scaled \magstep2,   
-   tfc=cmr5 scaled \magstep3, 
-   tfd=cmr5 scaled \magstep4,
-    bf=cmbx5,
-    it=cmti10 at 5pt,
-    sl=cmsl10 at 5pt,
-    bi=cmbxti10 at 5pt,           
-    bs=cmbxsl10 at 5pt,           
-    sc=cmcsc10 at 5pt]
-
-\definebodyfont [5pt] [ss] 
-  [tf=cmss10 at 5pt,
-   bf=cmssbx10 at 5pt, 
-   it=cmssi10 at 5pt,
-   sl=cmssi10 at 5pt,
-   bs=cmssbx10 at 5pt,
-   bi=cmssbx10 at 5pt,
-   sc=cmss10 at 5pt]
-
-\definebodyfont [5pt] [tt] 
-  [tf=cmtt10 at 5pt,
-   sl=cmsltt10 at 5pt,
-   it=cmitt10 at 5pt]
-
-\definebodyfont [5pt] [mm] 
-  [ex=cmex10 at 5pt,   
-   mi=cmmi5,
-   sy=cmsy5]   
-
-\definebodyfont [4pt] [rm] 
-  [tf=cmr10 at 4pt,
-   bf=cmbx10 at 4pt,
-   it=cmti10 at 4pt,
-   sl=cmsl10 at 4pt,
-   bi=cmbxti10 at 4pt,           
-   bs=cmbxsl10 at 4pt,
-   sc=cmr10 at 4pt]           
-
-\definebodyfont [4pt] [ss] 
-  [tf=cmss10 at 4pt,
-   bf=cmssbx10 at 4pt, 
-   it=cmssi10 at 4pt,
-   sl=cmssi10 at 4pt,
-   bs=cmssbx10 at 4pt,
-   bi=cmssbx10 at 4pt,
-   sc=cmss10 at 4pt]
-
-\definebodyfont [4pt] [tt] 
-  [tf=cmtt10 at 4pt,
-   sl=cmsltt10 at 4pt,
-   it=cmitt10 at 4pt]
-
-\definebodyfont [4pt] [mm] 
-  [ex=cmex10 at 4pt,   
-   mi=cmmi10 at 4pt,
-   sy=cmsy10 at 4pt]   
-
-%D At the cost of some more memory we preload a few more 
-%D fonts.
-
-\definebodyfont [12pt] [rm] 
-  [bfa=cmbx12 scaled \magstep1,
-   bfb=cmbx12 scaled \magstep2,   
-   bfc=cmbx12 scaled \magstep3, 
-   bfd=cmbx12 scaled \magstep4,
-   ita=cmti12 scaled \magstep1,
-   itb=cmti12 scaled \magstep2,   
-   itc=cmti12 scaled \magstep3, 
-   itd=cmti12 scaled \magstep4,
-   sla=cmsl12 scaled \magstep1,
-   slb=cmsl12 scaled \magstep2,   
-   slc=cmsl12 scaled \magstep3, 
-   sld=cmsl12 scaled \magstep4,
-   bsa=cmbxsl10 scaled \magstep2,
-   bsb=cmbxsl10 scaled \magstep3,   
-   bsc=cmbxsl10 scaled \magstep4, 
-   bsd=cmbxsl10 scaled \magstep5,
-   sca=cmcsc10 scaled \magstep2,
-   scb=cmcsc10 scaled \magstep3,
-   scc=cmcsc10 scaled \magstep4,
-   scd=cmcsc10 scaled \magstep5]
-
-\definebodyfont [11pt] [rm] 
-  [bfa=cmbx9 scaled \magstep2,
-   bfb=cmbx9 scaled \magstep3,   
-   bfc=cmbx9 scaled \magstep4, 
-   bfd=cmbx9 scaled \magstep5,
-   ita=cmti9 scaled \magstep2,
-   itb=cmti9 scaled \magstep3,   
-   itc=cmti9 scaled \magstep4, 
-   itd=cmsl9 scaled \magstep5,
-   sla=cmsl9 scaled \magstep2,
-   slb=cmsl9 scaled \magstep3,   
-   slc=cmsl9 scaled \magstep4, 
-   sld=cmsl9 scaled \magstep5,
-   sca=cmcsc9 scaled \magstep2,
-   scb=cmcsc9 scaled \magstep3,
-   scc=cmcsc9 scaled \magstep4,
-   scd=cmcsc9 scaled \magstep5]
-
-\definebodyfont [10pt] [rm] 
-  [bfa=cmbx10 scaled \magstep1,
-   bfb=cmbx10 scaled \magstep2,   
-   bfc=cmbx10 scaled \magstep3, 
-   bfd=cmbx10 scaled \magstep4,
-   ita=cmti10 scaled \magstep1,
-   itb=cmti10 scaled \magstep2,   
-   itc=cmti10 scaled \magstep3, 
-   itd=cmti10 scaled \magstep4,
-   sla=cmsl10 scaled \magstep1,
-   slb=cmsl10 scaled \magstep2,   
-   slc=cmsl10 scaled \magstep3, 
-   sld=cmsl10 scaled \magstep4,
-   bsa=cmbxsl10 scaled \magstep1,
-   bsb=cmbxsl10 scaled \magstep2,   
-   bsc=cmbxsl10 scaled \magstep3, 
-   bsd=cmbxsl10 scaled \magstep4,
-   sca=cmcsc10 scaled \magstep1,
-   scb=cmcsc10 scaled \magstep2,
-   scc=cmcsc10 scaled \magstep3,
-   scd=cmcsc10 scaled \magstep4]
-
-\definebodyfont [9pt] [rm] 
-  [bfa=cmbx9 scaled \magstep1,
-   bfb=cmbx9 scaled \magstep2,   
-   bfc=cmbx9 scaled \magstep3, 
-   bfd=cmbx9 scaled \magstep4,
-   ita=cmti9 scaled \magstep1,
-   itb=cmti9 scaled \magstep2,   
-   itc=cmti9 scaled \magstep3, 
-   itd=cmti9 scaled \magstep4,
-   sla=cmsl9 scaled \magstep1,
-   slb=cmsl9 scaled \magstep2,   
-   slc=cmsl9 scaled \magstep3, 
-   sld=cmsl9 scaled \magstep4,
-   sca=cmcsc9 scaled \magstep1,
-   scb=cmcsc9 scaled \magstep2,
-   scc=cmcsc9 scaled \magstep3,
-   scd=cmcsc9 scaled \magstep4]
-
-\definebodyfont [8pt] [rm] 
-  [bfa=cmbx8 scaled \magstep1,
-   bfb=cmbx8 scaled \magstep2,   
-   bfc=cmbx8 scaled \magstep3, 
-   bfd=cmbx8 scaled \magstep4,
-   sca=cmcsc8 scaled \magstep1,
-   scb=cmcsc8 scaled \magstep2,
-   scc=cmcsc8 scaled \magstep3,
-   scd=cmcsc8 scaled \magstep4]
-
-\definebodyfont [7pt] [rm] 
-  [bfa=cmbx7 scaled \magstep1,
-   bfb=cmbx7 scaled \magstep2,   
-   bfc=cmbx7 scaled \magstep3, 
-   bfd=cmbx7 scaled \magstep4]
-
-\definebodyfont [6pt] [rm] 
-  [bfa=cmbx6 scaled \magstep1,
-   bfb=cmbx6 scaled \magstep2,   
-   bfc=cmbx6 scaled \magstep3, 
-   bfd=cmbx6 scaled \magstep4]
-
-\definebodyfont [12pt] [ss] 
-  [bfa=cmss12 scaled \magstep1,
-   bfb=cmss12 scaled \magstep2,   
-   bfc=cmss12 scaled \magstep3, 
-   bfd=cmss12 scaled \magstep4,
-   sla=cmssi10 scaled \magstep2,
-   slb=cmssi10 scaled \magstep3,   
-   slc=cmssi10 scaled \magstep4, 
-   sld=cmssi10 scaled \magstep5,
-   bsa=cmssi10 scaled \magstep2,
-   bsb=cmssi10 scaled \magstep3,   
-   bsc=cmssi10 scaled \magstep4, 
-   bsd=cmssi10 scaled \magstep5]
-
-\definebodyfont [10pt] [ss] 
-  [bfa=cmss10 scaled \magstep1,
-   bfb=cmss10 scaled \magstep2,   
-   bfc=cmss10 scaled \magstep3, 
-   bfd=cmss10 scaled \magstep4,
-   sla=cmssi10 scaled \magstep1,
-   slb=cmssi10 scaled \magstep2,   
-   slc=cmssi10 scaled \magstep3, 
-   sld=cmssi10 scaled \magstep4,
-   bsa=cmssi10 scaled \magstep1,
-   bsb=cmssi10 scaled \magstep2,   
-   bsc=cmssi10 scaled \magstep3, 
-   bsd=cmssi10 scaled \magstep4]
-
-\definebodyfont [12pt] [tt] 
-  [sla=cmsltt10 scaled \magstep2,
-   slb=cmsltt10 scaled \magstep3,   
-   slc=cmsltt10 scaled \magstep4, 
-   sld=cmsltt10 scaled \magstep5]
-
-\definebodyfont [10pt] [tt] 
-  [sla=cmsltt10 scaled \magstep1,
-   slb=cmsltt10 scaled \magstep2,   
-   slc=cmsltt10 scaled \magstep3, 
-   sld=cmsltt10 scaled \magstep4]
-
-%D Small is beautiful, but sometimes large is needed. We 
-%D therefore define some rather large Computer Modern Roman 
-%D bodyfont sizes, that can be used in for instance headings. 
-
-%D We can use \type{sa} here because there are no genuine 
-%D design sizes larger than 12pt (exept from cmr17). 
-
-\definebodyfont [14.4pt,17.3pt,20.7pt] [rm] 
-  [tf=cmr12    sa 1,
-   bf=cmbx12   sa 1,
-   it=cmti12   sa 1,
-   sl=cmsl12   sa 1,
-   bi=cmbxti10 sa 1,
-   bs=cmbxsl10 sa 1,
-  tfa=cmr12    sa 1.200,
-  tfb=cmr12    sa 1.440,
-  tfc=cmr12    sa 1.728,
-  tfd=cmr12    sa 2.074,
-   sc=cmcsc10  sa 1.200]
-
-\definebodyfont [14.4pt,17.3pt,20.7pt] [ss] 
-  [tf=cmss12   sa 1,
-   bf=cmssbx10 sa 1,
-   it=cmssi12  sa 1,
-   sl=cmssi12  sa 1,
-   bi=cmssbx10 sa 1,
-   bs=cmssbx10 sa 1,
-  tfa=cmss12   sa 1.200,
-  tfb=cmss12   sa 1.440,
-  tfc=cmss12   sa 1.728,
-  tfd=cmss12   sa 2.074,
-   sc=cmss12   sa 1]
-
-\definebodyfont [14.4pt,17.3pt,20.7pt] [tt] 
-  [tf=cmtt12   sa 1,
-   sl=cmsltt10 sa 1,
-   it=cmitt10  sa 1,
-  tfa=cmtt12   sa 1.200,
-  tfb=cmtt12   sa 1.440,
-  tfc=cmtt12   sa 1.728,
-  tfd=cmtt12   sa 2.074]
-
-\definebodyfont [14.4pt,17.3pt,20.7pt] [mm] 
-  [ex=cmex10   sa 1,
-   mi=cmmi12   sa 1,
-   sy=cmsy10   sa 1]
-
-% hack to prevent mapping of filenames, watch the space! 
-
-\definebodyfont [12pt] [mm] [mr= cmr12]
-\definebodyfont [11pt] [mm] [mr= cmr10 at 11pt]
-\definebodyfont [10pt] [mm] [mr= cmr10]   
-\definebodyfont  [9pt] [mm] [mr= cmr9]
-\definebodyfont  [8pt] [mm] [mr= cmr8]
-\definebodyfont  [7pt] [mm] [mr= cmr7]
-\definebodyfont  [6pt] [mm] [mr= cmr6]
-\definebodyfont  [5pt] [mm] [mr= cmr5]
-\definebodyfont  [4pt] [mm] [mr= cmr5]
-
-\definebodyfont [14.4pt] [mm] [mr= cmr12 at 14.4pt]
-\definebodyfont [17.3pt] [mm] [mr= cmr12 at 17.3pt]
-\definebodyfont [20.7pt] [mm] [mr= cmr12 at 20.7pt]
-
-\endinput
diff --git a/tex/context/base/font-con.tex b/tex/context/base/font-con.tex
deleted file mode 100644
index 4f180904b..000000000
--- a/tex/context/base/font-con.tex
+++ /dev/null
@@ -1,65 +0,0 @@
-%D \module
-%D   [       file=font-con,
-%D        version=1995.1.1,
-%D          title=\CONTEXT\ Font Macros,
-%D       subtitle=Concrete Roman,
-%D         author=Hans Hagen,
-%D           date=\currentdate,
-%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
-%C details. 
-
-%D The Concrete Modern Roman is just an alternative Computer 
-%D Modern Roman. 
-
-\definebodyfont [12pt] [rm] 
-  [tf=ccr10   at 12pt,   % scaled \magstep1
-   it=ccti10  at 12pt,   % scaled \magstep1
-   sl=ccsl10  at 12pt,   % scaled \magstep1
-   sc=cccsc10 at 12pt]   % scaled \magstep1
-
-\definebodyfont [11pt] [rm] 
-  [tf=ccr10   at 11pt,   % scaled \magstephalf
-   it=ccti10  at 11pt,   % scaled \magstephalf
-   sl=ccsl10  at 11pt,   % scaled \magstephalf
-   sc=cccsc10 at 11pt]   % scaled \magstephalf
-
-\definebodyfont [10pt] [rm] 
-  [tf=ccr10,
-   it=ccti10,
-   sl=ccsl10,
-   sc=cccsc10]
-
-\definebodyfont [9pt] [rm] 
-  [tf=ccr9,
-   it=ccr9,
-   sl=ccr9,
-   sc=ccr9]
-
-\definebodyfont [8pt] [rm] 
-  [tf=ccr8,
-   it=ccr8,
-   sl=ccr8,
-   sc=ccr8]
-
-\definebodyfont [7pt] [rm] 
-  [tf=ccr7,
-   it=ccr7,
-   sl=ccr7,
-   sc=ccr7]
-
-\definebodyfont [6pt] [rm] 
-  [tf=ccr6,
-   it=ccr6,
-   sl=ccr6,
-   sc=ccr6]
-
-\definebodyfont [5pt] [rm] 
-  [tf=ccr5,
-   it=ccr5,
-   sl=ccr5,
-   sc=ccr5]
-
-\endinput
diff --git a/tex/context/base/font-csr.tex b/tex/context/base/font-csr.tex
deleted file mode 100644
index c9149f666..000000000
--- a/tex/context/base/font-csr.tex
+++ /dev/null
@@ -1,111 +0,0 @@
-%D \module
-%D   [       file=font-csr,
-%D        version=1998.12.1,
-%D          title=\CONTEXT\ Font Macros,
-%D       subtitle=Computer Modern Czech/Slovak,
-%D         author=Hans Hagen,
-%D           date=\currentdate,
-%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
-%C details. 
-
-%D For Than. 
-
-% \definefontsynonym [Serif]            [csr10]     [encoding=il2]
-% \definefontsynonym [SerifBold]        [csbx10]    [encoding=il2]
-% \definefontsynonym [SerifItalic]      [csti10]    [encoding=il2]
-% \definefontsynonym [SerifSlanted]     [cssl10]    [encoding=il2]
-% \definefontsynonym [SerifBoldItalic]  [csbxti10]  [encoding=il2]
-% \definefontsynonym [SerifBoldSlanted] [csbxsl10]  [encoding=il2]
-% \definefontsynonym [SerifCaps]        [csr10]     [encoding=il2]
-% 
-% \definefontsynonym [Sans]             [csss10]    [encoding=il2]
-% \definefontsynonym [SansBold]         [csssbx10]  [encoding=il2]
-% \definefontsynonym [SansItalic]       [csssi10]   [encoding=il2]
-% \definefontsynonym [SansSlanted]      [csssi10]   [encoding=il2]
-% \definefontsynonym [SansBoldItalic]   [csssbx10]  [encoding=il2]
-% \definefontsynonym [SansBoldSlanted]  [csssbx10]  [encoding=il2]
-% \definefontsynonym [SansCaps]         [csss10]    [encoding=il2]
-% 
-% \definefontsynonym [Mono]             [cstt10]    [encoding=il2]
-% \definefontsynonym [MonoBold]         [cstt10]    [encoding=il2]
-% \definefontsynonym [MonoItalic]       [csitt10]   [encoding=il2]
-% \definefontsynonym [MonoSlanted]      [cssltt10]  [encoding=il2]
-% \definefontsynonym [MonoBoldItalic]   [cstt10]    [encoding=il2]
-% \definefontsynonym [MonoBoldSlanted]  [cstt10]    [encoding=il2]
-% \definefontsynonym [MonoCaps]         [cstt10]    [encoding=il2]
-% 
-% \definefontsynonym [MathRoman]        [csr10]     [encoding=il2]
-% \definefontsynonym [MathExtension]    [cmex10]
-% \definefontsynonym [MathItalic]       [cmmi10]
-% \definefontsynonym [MathSymbol]       [cmsy10]
-% 
-% \definefontsynonym [OldStyle]         [MathItalic]       
-% 
-% \definebodyfont 
-%   [14.4pt,12pt,11pt,10pt,9pt,8pt,7pt,6pt,5pt] 
-%   [rm,ss,tt,mm] 
-%   [default]
-
-\input font-cmr.tex
-
-\definefontsynonym [cmr10]    [csr10]    [encoding=il2]  
-\definefontsynonym [cmr12]    [csr12]    [encoding=il2]  
-\definefontsynonym [cmr17]    [csr17]    [encoding=il2]  
-\definefontsynonym [cmr9]     [csr9]     [encoding=il2]  
-\definefontsynonym [cmr8]     [csr8]     [encoding=il2]  
-\definefontsynonym [cmr7]     [csr7]     [encoding=il2]  
-\definefontsynonym [cmr6]     [csr6]     [encoding=il2]  
-\definefontsynonym [cmr5]     [csr5]     [encoding=il2]  
-\definefontsynonym [cmbx10]   [csbx10]   [encoding=il2]  
-\definefontsynonym [cmbx12]   [csbx12]   [encoding=il2]  
-\definefontsynonym [cmbx9]    [csbx9]    [encoding=il2]  
-\definefontsynonym [cmbx8]    [csbx8]    [encoding=il2]  
-\definefontsynonym [cmbx7]    [csbx7]    [encoding=il2]  
-\definefontsynonym [cmbx6]    [csbx6]    [encoding=il2]  
-\definefontsynonym [cmbx5]    [csbx5]    [encoding=il2]  
-\definefontsynonym [cmb10]    [csb10]    [encoding=il2]  
-\definefontsynonym [cmti10]   [csti10]   [encoding=il2]  
-\definefontsynonym [cmti12]   [csti12]   [encoding=il2]  
-\definefontsynonym [cmti9]    [csti9]    [encoding=il2]  
-\definefontsynonym [cmti8]    [csti8]    [encoding=il2]  
-\definefontsynonym [cmti7]    [csti7]    [encoding=il2]  
-\definefontsynonym [cmtt10]   [cstt10]   [encoding=il2]  
-\definefontsynonym [cmtt12]   [cstt12]   [encoding=il2]  
-\definefontsynonym [cmtt9]    [cstt9]    [encoding=il2]  
-\definefontsynonym [cmtt8]    [cstt8]    [encoding=il2]  
-\definefontsynonym [cmsltt10] [cssltt10] [encoding=il2]  
-\definefontsynonym [cmvtt10]  [csvtt10]  [encoding=il2]  
-\definefontsynonym [cmss10]   [csss10]   [encoding=il2]  
-\definefontsynonym [cmss12]   [csss12]   [encoding=il2]  
-\definefontsynonym [cmss17]   [csss17]   [encoding=il2]  
-\definefontsynonym [cmss9]    [csss9]    [encoding=il2]  
-\definefontsynonym [cmss8]    [csss8]    [encoding=il2]  
-\definefontsynonym [cmssi10]  [csssi10]  [encoding=il2]  
-\definefontsynonym [cmssi12]  [csssi12]  [encoding=il2]  
-\definefontsynonym [cmssi17]  [csssi17]  [encoding=il2]  
-\definefontsynonym [cmssi9]   [csssi9]   [encoding=il2]  
-\definefontsynonym [cmssi8]   [csssi8]   [encoding=il2]  
-\definefontsynonym [cmsl10]   [cssl10]   [encoding=il2]  
-\definefontsynonym [cmsl12]   [cssl12]   [encoding=il2]  
-\definefontsynonym [cmsl9]    [cssl9]    [encoding=il2]  
-\definefontsynonym [cmsl8]    [cssl8]    [encoding=il2]  
-\definefontsynonym [cmssq8]   [csssq8]   [encoding=il2]  
-\definefontsynonym [cmssqi8]  [csssqi8]  [encoding=il2]  
-\definefontsynonym [cmssdc10] [csssdc10] [encoding=il2]  
-\definefontsynonym [cmssbx10] [csssbx10] [encoding=il2]  
-\definefontsynonym [cminch]   [csinch]   [encoding=il2]  
-\definefontsynonym [cmdunh10] [csdunh10] [encoding=il2]  
-\definefontsynonym [cmbxsl10] [csbxsl10] [encoding=il2]  
-\definefontsynonym [cmff10]   [csff10]   [encoding=il2]  
-\definefontsynonym [cmfib8]   [csfib8]   [encoding=il2]  
-\definefontsynonym [cmbxti10] [csbxti10] [encoding=il2]  
-\definefontsynonym [cmitt10]  [csitt10]  [encoding=il2]  
-\definefontsynonym [cmu10]    [csu10]    [encoding=il2]  
-\definefontsynonym [cmfi10]   [csfi10]   [encoding=il2]  
-\definefontsynonym [cmcsc10]  [cscsc10]  [encoding=il2]  
-\definefontsynonym [cmtcsc10] [cstcsc10] [encoding=il2]  
- 
-\endinput
diff --git a/tex/context/base/font-eul.tex b/tex/context/base/font-eul.tex
deleted file mode 100644
index 0d8b747cc..000000000
--- a/tex/context/base/font-eul.tex
+++ /dev/null
@@ -1,177 +0,0 @@
-%D \module
-%D   [       file=font-eul,
-%D        version=1995.1.1,
-%D          title=\CONTEXT\ Font Macros,
-%D       subtitle=Euler,
-%D         author=Hans Hagen,
-%D           date=\currentdate,
-%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
-%C details. 
-
-%D The Euler Fonts are designed by Herman Zapf and can be 
-%D used with the Concrete Fonts defined elsewhere. 
-
-\definebodyfont [12pt] [mm]     % scaled \magstep1
-  [mi=eurm10 at 12pt,
-   ex=euex10 at 12pt,
-   ma=euex10 at 12pt,
-   mb=eusm10 at 12pt,
-   mc=eufm10 at 12pt]
-
-\definebodyfont [11pt] [mm]     % scaled \magstephalf
-  [mi=eurm10 at 11pt,
-   ex=euex10 at 11pt,
-   ma=euex10 at 11pt,
-   mb=eusm10 at 11pt,
-   mc=eufm10 at 11pt]
-
-\definebodyfont [10pt] [mm]
-  [mi=eurm10,
-   ex=euex10,
-   ma=euex10,
-   mb=eusm10,
-   mc=eufm10]
-
-\definebodyfont [9pt] [mm]
-  [mi=eurm10 at 9pt,
-   ex=euex10 at 9pt,
-   ma=euex10 at 9pt,
-   mb=eusm10 at 9pt,
-   mc=eufm10 at 9pt]
-
-\definebodyfont [8pt] [mm]
-  [mi=eurm7  at 8pt,
-   ex=euex10 at 8pt,
-   ma=euex10 at 8pt,
-   mb=eusm7  at 8pt,
-   mc=eufm7  at 8pt]
-
-\definebodyfont [7pt] [mm]
-  [mi=eurm7,
-   ex=euex10 at 7pt,
-   ma=euex10 at 7pt,
-   mb=eusm7,
-   mc=eufm7]
-
-\definebodyfont [6pt] [mm]
-  [mi=eurm7  at 6pt,
-   ex=euex10 at 6pt,
-   ma=euex10 at 6pt,
-   mb=eusm7  at 6pt,
-   mc=eufm7  at 6pt]
-
-\definebodyfont [5pt] [mm]
-  [mi=eurm5,
-   ex=euex10 at 5pt,
-   ma=euex10 at 5pt,
-   mb=eusm5,
-   mc=eufm5]
-
-%D Here we copy part of the files that are distributed along 
-%D with these fonts, but first we define some extra families.
-
-\let\exfam=\mafam   % was A 
-\let\smfam=\mbfam   % was 8 
-\let\fmfam=\mcfam   % was 9 
-
-\let\hexexfam=\hexmafam
-\let\hexsmfam=\hexmbfam
-\let\hexfmfam=\hexmcfam
-
-%D Now we're up to the redefinitions. 
-
-\mathcode`0="7130
-\mathcode`1="7131
-\mathcode`2="7132
-\mathcode`3="7133
-\mathcode`4="7134
-\mathcode`5="7135
-\mathcode`6="7136
-\mathcode`7="7137
-\mathcode`8="7138
-\mathcode`9="7139
-
-\mathchardef\intop          ="1\hexexfam 52
-\mathchardef\ointop         ="1\hexexfam 48
-\mathchardef\coprod         ="1\hexexfam 60
-\mathchardef\prod           ="1\hexexfam 51
-\mathchardef\sum            ="1\hexexfam 50
-\mathchardef\braceld        ="\hexexfam 7A 
-\mathchardef\bracerd        ="\hexexfam 7B
-\mathchardef\bracelu        ="\hexexfam 7C 
-\mathchardef\braceru        ="\hexexfam 7D
-\mathchardef\infty          ="0\hexexfam 31
-
-\mathchardef\nearrow        ="3\hexexfam 25
-\mathchardef\searrow        ="3\hexexfam 26
-\mathchardef\nwarrow        ="3\hexexfam 2D
-\mathchardef\swarrow        ="3\hexexfam 2E
-\mathchardef\Leftrightarrow ="3\hexexfam 2C
-\mathchardef\Leftarrow      ="3\hexexfam 28
-\mathchardef\Rightarrow     ="3\hexexfam 29
-\mathchardef\leftrightarrow ="3\hexexfam 24 
-\mathchardef\leftarrow      ="3\hexexfam 20 
-\mathchardef\rightarrow     ="3\hexexfam 21
-
-\let\gets =\leftarrow 
-\let\to   =\rightarrow  
-
-\mathcode`\^^W              ="3\hexexfam 24
-\mathcode`\^^X              ="3\hexexfam 20
-\mathcode`\^^Y              ="3\hexexfam 21
-\mathcode`\^^K              ="3\hexexfam 22
-\mathcode`\^^A              ="3\hexexfam 23
-
-\def\uparrow                {\delimiter"3\hexexfam 22378 } 
-\def\downarrow              {\delimiter"3\hexexfam 23379 } 
-\def\updownarrow            {\delimiter"3\hexexfam 6C33F }
-\def\Uparrow                {\delimiter"3\hexexfam 2A37E }
-\def\Downarrow              {\delimiter"3\hexexfam 2B37F }
-\def\Updownarrow            {\delimiter"3\hexexfam 6D377 }
-
-\mathchardef\leftharpoonup    ="3\hexexfam 18
-\mathchardef\leftharpoondown  ="3\hexexfam 19
-\mathchardef\rightharpoonup   ="3\hexexfam 1A
-\mathchardef\rightharpoondown ="3\hexexfam 1B
-
-\mathcode`+="2\hexfmfam 2B
-\mathcode`-="2\hexfmfam 2D
-\mathcode`!="0\hexfmfam 21
-\mathcode`(="4\hexfmfam 28    \delcode`(="\hexfmfam 28300
-\mathcode`)="5\hexfmfam 29    \delcode`)="\hexfmfam 29301
-\mathcode`[="4\hexfmfam 5B    \delcode`[="\hexfmfam 5B302
-\mathcode`]="5\hexfmfam 5D    \delcode`]="\hexfmfam 5D303
-\mathcode`=="3\hexfmfam 3D
-
-\mathchardef\Relbar  ="303D % we need the old = to match \Arrows
-\mathchardef\Gamma   ="7100
-\mathchardef\Delta   ="7101
-\mathchardef\Theta   ="7102
-\mathchardef\Lambda  ="7103
-\mathchardef\Xi      ="7104
-\mathchardef\Pi      ="7105
-\mathchardef\Sigma   ="7106
-\mathchardef\Upsilon ="7107
-\mathchardef\Phi     ="7108
-\mathchardef\Psi     ="7109
-\mathchardef\Omega   ="710A
-
-\let\varsigma        =\sigma % Euler doesn't have these
-\let\varrho          =\rho   % Euler doesn't have these
-\mathchardef\aleph   ="0D40
-
-\def\rbrace          {\delimiter"5\hexsmfam 67A09 } \let\}=\rbrace
-\def\lbrace          {\delimiter"4\hexsmfam 66A08 } \let\{=\lbrace
-
-\mathchardef\leq     ="3\hexsmfam 14 \let\le=\leq
-\mathchardef\geq     ="3\hexsmfam 15 \let\ge=\geq
-\mathchardef\Re      ="0\hexsmfam 3C
-\mathchardef\Im      ="0\hexsmfam 3D
-
-\def\vert            {\delimiter"\hexsmfam 6A30C }
-\def\backslash       {\delimiter"\hexsmfam 6E30F }
-
-\endinput
diff --git a/tex/context/base/font-fil.tex b/tex/context/base/font-fil.tex
deleted file mode 100644
index 84411624d..000000000
--- a/tex/context/base/font-fil.tex
+++ /dev/null
@@ -1,121 +0,0 @@
-%D \module
-%D   [       file=font-fil,
-%D        version=1998.11.4,
-%D          title=\CONTEXT\ Font Macros,
-%D       subtitle=Original Font Names,
-%D         author=Hans Hagen,
-%D           date=\currentdate,
-%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
-%C details. 
-
-\definefontsynonym [ComputerModern]             [cmr10]
-\definefontsynonym [ComputerModern-Bold]        [cmbx10]
-\definefontsynonym [ComputerModern-Italic]      [cmti10]
-\definefontsynonym [ComputerModern-Slanted]     [cmsl10]
-\definefontsynonym [ComputerModern-BoldItalic]  [cmbxti10]
-\definefontsynonym [ComputerModern-BoldSlanted] [cmbxsl10]
-\definefontsynonym [ComputerModern-Caps]        [cmr10] 
-
-\definefontsynonym [ComputerModernSans]             [cmss10]
-\definefontsynonym [ComputerModernSans-Bold]        [cmssbx10]
-\definefontsynonym [ComputerModernSans-Italic]      [cmssi10]
-\definefontsynonym [ComputerModernSans-Slanted]     [cmssi10]
-\definefontsynonym [ComputerModernSans-BoldItalic]  [cmssbx10]
-\definefontsynonym [ComputerModernSans-BoldSlanted] [cmssbx10]
-\definefontsynonym [ComputerModernSans-Caps]        [cmss10]
-  
-\definefontsynonym [ComputerModernMono]             [cmtt10]
-\definefontsynonym [ComputerModernMono-Bold]        [cmtt10]
-\definefontsynonym [ComputerModernMono-Italic]      [cmitt10]
-\definefontsynonym [ComputerModernMono-Slanted]     [cmsltt10]
-\definefontsynonym [ComputerModernMono-BoldItalic]  [cmtt10]
-\definefontsynonym [ComputerModernMono-BoldSlanted] [cmtt10]
-\definefontsynonym [ComputerModernMono-Caps]        [cmtt10]
-
-\definefontsynonym [ComputerModernMath-Roman]     [cmr10]
-\definefontsynonym [ComputerModernMath-Extension] [cmex10]
-\definefontsynonym [ComputerModernMath-Italic]    [cmmi10]
-\definefontsynonym [ComputerModernMath-Symbol]    [cmsy10]
-
-\definefontsynonym [Courier]             [com]  [encoding=texnansi]
-\definefontsynonym [Courier-Oblique]     [coo]  [encoding=texnansi]
-\definefontsynonym [Courier-Bold]        [cob]  [encoding=texnansi]
-\definefontsynonym [Courier-BoldOblique] [cobo] [encoding=texnansi]
-
-\definefontsynonym [Helvetica]             [hv]   [encoding=texnansi]
-\definefontsynonym [Helvetica-Oblique]     [hvo]  [encoding=texnansi]
-\definefontsynonym [Helvetica-Bold]        [hvb]  [encoding=texnansi]
-\definefontsynonym [Helvetica-BoldOblique] [hvbo] [encoding=texnansi]
-
-\definefontsynonym [Times-Roman]      [tir]  [encoding=texnansi]
-\definefontsynonym [Times-Italic]     [tii]  [encoding=texnansi]
-\definefontsynonym [Times-Bold]       [tib]  [encoding=texnansi]
-\definefontsynonym [Times-BoldItalic] [tibi] [encoding=texnansi]
-
-\definefontsynonym [Times-MathRoman]     [tir]  [encoding=texnansi]
-\definefontsynonym [Times-MathExtension] [mtex]
-\definefontsynonym [Times-MathItalic]    [mtmi]
-\definefontsynonym [Times-MathSymbol]    [mtsy]
-
-\definefontsynonym [LucidaBlackletter]                [lbl]     [encoding=texnansi]
-\definefontsynonym [LucidaBright]                     [lbr]     [encoding=texnansi]
-\definefontsynonym [LucidaBright-Demi]                [lbd]     [encoding=texnansi]
-\definefontsynonym [LucidaBright-DemiItalic]          [lbdi]    [encoding=texnansi]
-\definefontsynonym [LucidaBright-Italic]              [lbi]     [encoding=texnansi]
-\definefontsynonym [LucidaBrightSmallcaps]            [lbrsc]   [encoding=texnansi]
-\definefontsynonym [LucidaBrightSmallcaps-Demi]       [lbdsc]   [encoding=texnansi]
-\definefontsynonym [LucidaBright-Oblique]             [lbsl]    [encoding=texnansi]
-\definefontsynonym [LucidaCalligraphy-Italic]         [lbc]     [encoding=texnansi]
-\definefontsynonym [LucidaCasual]                     [lbkr]    [encoding=texnansi]
-\definefontsynonym [LucidaCasual-Italic]              [lbki]    [encoding=texnansi]
-\definefontsynonym [LucidaFax]                        [lfr]     [encoding=texnansi]
-\definefontsynonym [LucidaFax-Demi]                   [lfd]     [encoding=texnansi]
-\definefontsynonym [LucidaFax-DemiItalic]             [lfdi]    [encoding=texnansi]
-\definefontsynonym [LucidaFax-Italic]                 [lfi]     [encoding=texnansi]
-\definefontsynonym [LucidaHandwriting-Italic]         [lbh]     [encoding=texnansi]
-\definefontsynonym [LucidaSans]                       [lsr]     [encoding=texnansi]
-\definefontsynonym [LucidaSans-Demi]                  [lsd]     [encoding=texnansi]
-\definefontsynonym [LucidaSans-DemiItalic]            [lsdi]    [encoding=texnansi]
-\definefontsynonym [LucidaSans-Italic]                [lsi]     [encoding=texnansi]
-\definefontsynonym [LucidaSans-Bold]                  [lsb]     [encoding=texnansi]
-\definefontsynonym [LucidaSans-BoldItalic]            [lsbi]    [encoding=texnansi]
-\definefontsynonym [LucidaSans-Typewriter]            [lstr]    [encoding=texnansi]
-\definefontsynonym [LucidaSans-TypewriterBold]        [lstb]    [encoding=texnansi]
-\definefontsynonym [LucidaSans-TypewriterBoldOblique] [lstbo]   [encoding=texnansi]
-\definefontsynonym [LucidaSans-TypewriterOblique]     [lsto]    [encoding=texnansi]
-\definefontsynonym [LucidaTypewriter]                 [lbtr]    [encoding=texnansi]
-\definefontsynonym [LucidaTypewriterBold]             [lbtb]    [encoding=texnansi]
-\definefontsynonym [LucidaTypewriterBoldOblique]      [lbtbo]   [encoding=texnansi]
-\definefontsynonym [LucidaTypewriterOblique]          [lbto]    [encoding=texnansi]
-\definefontsynonym [LucidaNewMath-AltDemiItalic]      [lbmdo]   [encoding=texnansi]
-\definefontsynonym [LucidaNewMath-AltItalic]          [lbmo]    [encoding=texnansi]
-\definefontsynonym [LucidaNewMath-Arrows]             [lbma]    [encoding=texnansi]
-\definefontsynonym [LucidaNewMath-Arrows-Demi]        [lbmad]   [encoding=texnansi]
-\definefontsynonym [LucidaNewMath-Extension]          [lbme]    [encoding=texnansi]
-\definefontsynonym [LucidaNewMath-Roman]              [lbmr]    [encoding=texnansi]
-\definefontsynonym [LucidaNewMath-Demibold]           [lbmd]    [encoding=texnansi]
-\definefontsynonym [LucidaNewMath-DemiItalic]         [lbmdi]   [encoding=texnansi]
-\definefontsynonym [LucidaNewMath-Italic]             [lbmi]    [encoding=texnansi]
-\definefontsynonym [LucidaNewMath-Symbol]             [lbms]    [encoding=texnansi]
-\definefontsynonym [LucidaNewMath-Symbol-Demi]        [lbmsd]   [encoding=texnansi]
-
-\definefontsynonym [Informal-Regular]     [ifrm10cm] 
-\definefontsynonym [Informal-Bold]        [ifrb10cm]  
-\definefontsynonym [Informal-Oblique]     [ifro10cm]  
-\definefontsynonym [Informal-BoldOblique] [ifbo10cm] 
-
-\definefontsynonym [Informal-MathExtendedSymbols] [ifex10]
-\definefontsynonym [Informal-MathItalics]         [ifmi10]
-\definefontsynonym [Informal-MathSymbols]         [ifsy10]
-
-\definefontsynonym [AntykwaTorunska-Bold]    [anttb]  [encoding=texnansi]
-\definefontsynonym [AntykwaTorunska-Regular] [anttr]  [encoding=texnansi]
-\definefontsynonym [AntykwaTorunska-Italic]  [anttri] [encoding=texnansi]
-
-\definefontsynonym [ContextNavigation]     [contnav]
-\definefontsynonym [RalfSmithFormalScript] [rsfs10]      
-
-\endinput 
diff --git a/tex/context/base/font-heb.tex b/tex/context/base/font-heb.tex
index 573189618..2982b3dfc 100644
--- a/tex/context/base/font-heb.tex
+++ b/tex/context/base/font-heb.tex
@@ -1,3 +1,5 @@
+% NOT YET ADAPTED TO THE NEW FONT MACROS 
+
 \input font-arb.tex
 
 \writestatus{loading}{Context Font Macros / Hebrew (ArabTeX) support}
diff --git a/tex/context/base/font-ini.tex b/tex/context/base/font-ini.tex
index 2347ddcd3..bf904b9ab 100644
--- a/tex/context/base/font-ini.tex
+++ b/tex/context/base/font-ini.tex
@@ -1,6 +1,7 @@
 %D \module
 %D   [       file=font-ini,
-%D        version=1998.09.11,
+%D        version=1998.09.11, % (second)
+%D        version=2001.02.20, % (third)
 %D          title=\CONTEXT\ Font Macros,
 %D       subtitle=Initialization,
 %D         author=Hans Hagen,
@@ -8,13 +9,40 @@
 %D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
 %C
 %C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
-%C details. 
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
 
 \writestatus{loading}{Context Font Macros (ini)}
 
 \unprotect
-
+
+% adapted, else wrong interlinespace
+
+\def\setfontparameters%
+  {\synchronizefontsfalse
+   \the\everybodyfont
+   \synchronizefontstrue}
+
+% handy
+
+\newcounter\pushedfont
+
+\def\savefont%
+ {\increment\pushedfont
+  \expanded{\definefont[\string\pushedfont:\pushedfont][\lastfontname]}}
+
+\def\restorefont%
+  {\getvalue{\string\pushedfont:\pushedfont}}
+
+% new
+
+\def\dodefinedfont[#1]%
+  {\iffirstargument\definefont[\string\definedfont][#1]\fi
+   \getvalue{\string\definedfont}}
+
+\def\definedfont%
+  {\dosingleempty\dodefinedfont}
+
 \startmessages  dutch  library: fonts
   title: korps
       1: codering --
@@ -80,7 +108,7 @@
       5: stile -- non definito
       6: -- caricato
       7: formato sconosciuto --
-      8: stile -- definito 
+      8: stile -- definito
 %     9: mappatura -- caricata
      10: file di font sconosciuto --
 \stopmessages
@@ -121,6 +149,17 @@
 %D underlaying macros, and extended those to a level at which
 %D probably no one will ever recognize them.
 %D
+%D In 2001 we ran into a couple of projects where more than
+%D one combined set of fonts was involved in a document. To
+%D make definitions more readable, as well as to overcome the
+%D problem of ever growing file name lists, and also because
+%D we needed to scale fonts relative to each other, the low
+%D level implementation was partly rewritten. Global
+%D font assignments, relative scaling, font classes and alike
+%D were added then. At the same time some macros were made a
+%D bit more readable, and math support was extended to the
+%D larger sizes.
+%D
 %D One important characteristic of the font mechanism presented
 %D here is the postponing of font loading. This makes it
 %D possible to distribute \type{fmt} files without bothering
@@ -229,7 +268,7 @@
 %D \stoptabel
 %D \stopregelcorrectie
 
-%D The more primitive is (still) predefined:
+%D For old stylish Frans Goddijn we have:
 %D
 %D \startregelcorrectie
 %D \starttabel[|l||]
@@ -360,8 +399,8 @@
 %D \stoptypen
 %D
 %D And compare $\rm \scriptstyle THIS$ with the slightly larger
-%D \kap{THIS}: \ruledhbox{$\rm \scriptstyle\ scriptstyle THIS$}
-%D or \ruledhbox{\kap{THIS x style}} makes a big difference.
+%D \kap{THIS}: \ruledhbox{$\rm \scriptstyle scriptstyle: THIS$}
+%D or \ruledhbox{\kap{x style: THIS}} makes a big difference.
 
 %D \macros
 %D   {mf}
@@ -418,9 +457,14 @@
 %D \type{\tf}:
 
 \unexpanded\def\mf%
-  {\dodosetmathfont{\fontalternative}%
+  {\dodosetmathfont\fontalternative
    \getvalue{\fontalternative}}
 
+% \unexpanded\def\mf%
+%   {\dodosetmathfont\fontalternative
+%    \getvalue{\fontalternative}%
+%    \fam\getvalue{\fontalternative\s!fam}}
+
 %D The previous example was typeset saying:
 %D
 %D \typebuffer
@@ -470,17 +514,16 @@
 \def\mathop%
   {\normalmathop
    \bgroup
-   \let\rm=\mf
+   \let\rm\mf
    \let\next=}
 
-%D We can fix arbitrary horizontal boxes by redefining the 
+%D We can fix arbitrary horizontal boxes by redefining the
 %D \TEX\ primitive \type{\hbox}:
 %D
 %D \starttypen
 %D \let\normalhbox=\hbox
 %D
-%D \def\hbox%
-%D   {\ifmmode\mbox\else\normalhbox\fi}
+%D \def\hbox{\ifmmode\mbox\else\normalhbox\fi}
 %D \stoptypen
 %D
 %D with
@@ -527,8 +570,8 @@
 
 \def\enablembox%
   {\appendtoks
-     \ifx\normalhbox\undefined\let\normalhbox=\hbox\fi
-     \let\hbox=\mbox
+     \ifx\normalhbox\undefined\let\normalhbox\hbox\fi
+     \let\hbox\mbox
    \to\everymath}
 
 %D So in fact one can enable this feature if needed. I would say:
@@ -597,20 +640,20 @@
 %D needed for the \AMS\ Symbol Fonts and Extended Lucida
 %D Bright.
 
-\chardef\mafam=12 %  \newfam\mafam  %  C  (ConTeXt)  Math A Fam (AmsTeX A)
-\chardef\mbfam=13 %  \newfam\mbfam  %  D  (ConTeXt)  Math B Fam (AmsTeX B)
-\chardef\mcfam=14 %  \newfam\mcfam  %  E  (ConTeXt)  Math C Fam
-\chardef\mdfam=15 %  \newfam\mdfam  %  F  (ConTeXt)  Math D Fam (MathTime)
+\chardef\mafam=12 %  \newfam\mafam    %  C  (ConTeXt)  Math A Fam (AmsTeX A)
+\chardef\mbfam=13 %  \newfam\mbfam    %  D  (ConTeXt)  Math B Fam (AmsTeX B)
+\chardef\mcfam=14 %  \newfam\mcfam    %  E  (ConTeXt)  Math C Fam (MathTime)
+\chardef\mdfam=15 %  \newfam\mdfam    %  F  (ConTeXt)  Math D Fam (MathTime)
 
 %D Because there are 16~families and because \type{\ttfam}
-%D is reused, at the moment we have no so many families 
-%D left. By default, we map any newly defined family on the 
+%D is reused, at the moment we have no so many families
+%D left. By default, we map any newly defined family on the
 %D last one (F).
 
-\def\newfam#1{\chardef#1=15 } 
+\def\newfam#1{\chardef#1=15 }
 
-%D This hack is also needed because in \ETEX\ we are going 
-%D to reuse the \type {\newfam} allocation counter. 
+%D This hack is also needed because in \ETEX\ we are going
+%D to reuse the \type {\newfam} allocation counter.
 
 %D To ease the support of font packages, we als define
 %D shortcuts to these familynames. This is necessary because
@@ -632,9 +675,9 @@
 %D \macros
 %D   {uchar}
 %D
-%D This macro prepares \CONTEXT\ for \UNICODE\ support. By 
-%D defining it here, we have at least an safeguard for utility 
-%D file reading. 
+%D This macro prepares \CONTEXT\ for \UNICODE\ support. By
+%D defining it here, we have at least an safeguard for utility
+%D file reading.
 
 \unexpanded\def\uchar#1#2{[#1,#2]}
 
@@ -647,31 +690,213 @@
 \def\@letter@     {@f@le@} % first alternative typeface
 \def\@noletter@   {@f@no@} % second alternative typeface
 
-%D We also define a list of all text (i.e.\ non math symbol)
-%D families. By assigning \type{\dowithfamily} some suitable 
-%D meaning one can process such lists quite fast. The current 
-%D implementation uses the commalist processing macros and is 
-%D not that slow either.
+%D The families can be grouped into math specific ones and
+%D more text related families, although text ones can be
+%D mapped onto the math ones to get for instance bold math.
+%D
+%D Both groups of families are handles by a couple of token
+%D list tagged as strategies. This implementation makes
+%D implementing extensions more comfortable.
+
+\newtoks \textstrategies
+\newtoks \mathstrategies
+\newtoks \symbstrategies
+
+\def\synchronizetext{\the\textstrategies\fam\mrfam} % stylish text in mmode
+\def\synchronizemath{\the\mathstrategies\fam\mrfam} % math stuff in mmode
+\def\synchronizesymb{\the\symbstrategies\fam\mrfam} % stylish math stuff in mmode
+
+\appendtoks
+  \dosettextfamily\c!tf
+  \dosettextfamily\c!bf
+  \dosettextfamily\c!sl
+  \dosettextfamily\c!it
+  \dosettextfamily\c!bs
+  \dosettextfamily\c!bi
+  \dosettextfamily\c!sc
+\to \textstrategies
+
+\def\dosettextfamily#1%
+  {\dodosettextfamily\scriptscriptfont\scriptscriptface#1%
+   \dodosettextfamily\scriptfont      \scriptface      #1%
+   \dodosettextfamily\textfont        \textface        #1}
+
+% \def\s!nullfont{nullfont}
+
+\beginTEX
+
+\def\dodosettextfamily#1#2#3%
+  {\@EA\ifx\csname\fontclass#2\c!mm#3\fontsize\endcsname\relax
+   \@EA\ifx\csname\fontclass#2\c!mm#3\endcsname         \relax
+   \@EA\ifx\csname\fontclass#2\c!rm#3\fontsize\endcsname\relax
+   \@EA\ifx\csname\fontclass#2\c!rm#3\endcsname         \relax
+   \@EA\ifx\csname          #2\c!mm#3\fontsize\endcsname\relax
+   \@EA\ifx\csname          #2\c!mm#3\endcsname         \relax
+   \@EA\ifx\csname          #2\c!rm#3\fontsize\endcsname\relax
+   \@EA\ifx\csname          #2\c!rm#3\endcsname         \relax
+   \autofontsizetrue            \nullfont                             \else
+   \autofontsizetrue            \csname#2\c!rm#3\endcsname         \fi\else
+   \autofontsizefalse           \csname#2\c!rm#3\fontsize\endcsname\fi\else
+   \autofontsizetrue            \csname#2\c!mm#3\endcsname         \fi\else
+   \autofontsizefalse           \csname#2\c!mm#3\fontsize\endcsname\fi\else
+   \autofontsizetrue  \csname\fontclass#2\c!rm#3\endcsname         \fi\else
+   \autofontsizefalse \csname\fontclass#2\c!rm#3\fontsize\endcsname\fi\else
+   \autofontsizetrue  \csname\fontclass#2\c!mm#3\endcsname         \fi\else
+   \autofontsizefalse \csname\fontclass#2\c!mm#3\fontsize\endcsname\fi
+   #1\csname#3\s!fam\endcsname\font}
+
+\endTEX
+
+\beginETEX \ifcsname
+
+\def\dodosettextfamily#1#2#3%
+  {\ifcsname\fontclass#2\c!mm#3\fontsize\endcsname \autofontsizefalse
+     \csname\fontclass#2\c!mm#3\fontsize\endcsname \else
+   \ifcsname\fontclass#2\c!mm#3\endcsname          \autofontsizetrue
+     \csname\fontclass#2\c!mm#3\endcsname          \else
+   \ifcsname\fontclass#2\c!rm#3\fontsize\endcsname \autofontsizefalse
+     \csname\fontclass#2\c!rm#3\fontsize\endcsname \else
+   \ifcsname\fontclass#2\c!rm#3\endcsname          \autofontsizetrue
+     \csname\fontclass#2\c!rm#3\endcsname          \else
+   \ifcsname          #2\c!mm#3\fontsize\endcsname \autofontsizefalse
+     \csname          #2\c!mm#3\fontsize\endcsname \else
+   \ifcsname          #2\c!mm#3\endcsname          \autofontsizetrue
+     \csname          #2\c!mm#3\endcsname          \else
+   \ifcsname          #2\c!rm#3\fontsize\endcsname \autofontsizefalse
+     \csname          #2\c!rm#3\fontsize\endcsname \else
+   \ifcsname          #2\c!rm#3\endcsname          \autofontsizetrue
+     \csname          #2\c!rm#3\endcsname          \else
+     \nullfont                                     \autofontsizetrue
+   \fi\fi\fi\fi\fi\fi\fi\fi
+   #1\csname#3\s!fam\endcsname\font}
+
+\endETEX
+
+\def\mrfallback{\c!rm\c!tf}
+
+\appendtoks
+  \dosetmathfamily\mrfam\textface\scriptface\scriptscriptface\c!mr\mrfallback
+  \dosetmathfamily\mifam\textface\scriptface\scriptscriptface\c!mi\empty
+  \dosetskewchar\defaultskewcharmi % implemented later on
+  \dosetmathfamily\syfam\textface\scriptface\scriptscriptface\c!sy\empty
+  \dosetskewchar\defaultskewcharsy % implemented later on
+  \dosetmathfamily\exfam\textface\textface  \textface        \c!ex\empty
+  \dosetmathfamily\mafam\textface\scriptface\scriptscriptface\c!ma\empty
+  \dosetmathfamily\mbfam\textface\scriptface\scriptscriptface\c!mb\empty
+  \dosetmathfamily\mcfam\textface\scriptface\scriptscriptface\c!mc\empty
+  \dosetmathfamily\nnfam\textface\scriptface\scriptscriptface\c!nn\empty
+\to \mathstrategies
+
+\def\dosetmathfamily#1#2#3#4#5#6%
+  {\dodosetmathfamily\scriptscriptfont#4#1#5{#6}%
+   \dodosetmathfamily\scriptfont      #3#1#5{#6}%
+   \dodosetmathfamily\textfont        #2#1#5{#6}}
+
+\beginTEX
+
+\def\dodosetmathfamily#1#2#3#4#5%
+  {\@EA\ifx           \csname\fontclass#2\c!mm#4\fontsize\endcsname\relax 
+   \@EA\ifx           \csname\fontclass#2\c!mm#4\endcsname         \relax
+   \@EA\ifx           \csname\fontclass#2#5\fontsize\endcsname     \relax
+   \@EA\ifx           \csname\fontclass#2#5\endcsname              \relax
+   \@EA\ifx           \csname          #2\c!mm#4\fontsize\endcsname\relax
+   \@EA\ifx           \csname          #2\c!mm#4\endcsname         \relax
+   \@EA\ifx           \csname          #2#5\fontsize\endcsname     \relax
+   \@EA\ifx           \csname          #2#5\endcsname              \relax
+   \autofontsizetrue  \nullfont                                        \else
+   \autofontsizetrue  \csname          #2#5\endcsname              \fi \else
+   \autofontsizefalse \csname          #2#5\fontsize\endcsname     \fi \else
+   \autofontsizetrue  \csname          #2\c!mm#4\endcsname         \fi \else
+   \autofontsizefalse \csname          #2\c!mm#4\fontsize\endcsname\fi \else
+   \autofontsizetrue  \csname\fontclass#2#5\endcsname              \fi \else
+   \autofontsizefalse \csname\fontclass#2#5\fontsize\endcsname     \fi \else
+   \autofontsizetrue  \csname\fontclass#2\c!mm#4\endcsname         \fi \else
+   \autofontsizefalse \csname\fontclass#2\c!mm#4\fontsize\endcsname\fi
+   #1#3\font}
+
+\endTEX
+
+\beginETEX \ifcsname
+
+\def\dodosetmathfamily#1#2#3#4#5%
+  {\ifcsname\fontclass#2\c!mm#4\fontsize\endcsname \autofontsizefalse 
+     \csname\fontclass#2\c!mm#4\fontsize\endcsname \else
+   \ifcsname\fontclass#2\c!mm#4\endcsname          \autofontsizetrue  
+     \csname\fontclass#2\c!mm#4\endcsname          \else
+   \ifcsname\fontclass#2#5\fontsize\endcsname      \autofontsizefalse 
+     \csname\fontclass#2#5\fontsize\endcsname      \else
+   \ifcsname\fontclass#2#5\endcsname               \autofontsizetrue  
+     \csname\fontclass#2#5\endcsname               \else
+   \ifcsname          #2\c!mm#4\fontsize\endcsname \autofontsizefalse 
+     \csname          #2\c!mm#4\fontsize\endcsname \else
+   \ifcsname          #2\c!mm#4\endcsname          \autofontsizetrue  
+     \csname          #2\c!mm#4\endcsname          \else
+   \ifcsname          #2#5\fontsize\endcsname      \autofontsizefalse 
+     \csname          #2#5\fontsize\endcsname      \else
+   \ifcsname          #2#5\endcsname               \autofontsizetrue  
+     \csname          #2#5\endcsname               \else
+                      \nullfont                    \autofontsizetrue  
+   \fi\fi\fi\fi\fi\fi\fi\fi
+   #1#3\font}
+
+\endETEX
+
+\appendtoks
+  \dosetsymbfamily\mrfam\textface\scriptface\scriptscriptface\c!mr
+  \dosetsymbfamily\mifam\textface\scriptface\scriptscriptface\c!mi
+  \dosetsymbfamily\syfam\textface\scriptface\scriptscriptface\c!sy
+  \dosetsymbfamily\exfam\textface\textface  \textface        \c!ex
+  \dosetsymbfamily\mafam\textface\scriptface\scriptscriptface\c!ma
+  \dosetsymbfamily\mbfam\textface\scriptface\scriptscriptface\c!mb
+  \dosetsymbfamily\mcfam\textface\scriptface\scriptscriptface\c!mc
+\to \symbstrategies
+
+\def\dosetsymbfamily#1#2#3#4#5%
+  {\dodosetsymbfamily\scriptscriptfont#4#1#5%
+   \dodosetsymbfamily\scriptfont      #3#1#5%
+   \dodosetsymbfamily\textfont        #2#1#5}
+
+\beginTEX
+
+\def\dodosetsymbfamily#1#2#3#4%
+  {\@EA\ifx\csname\fontclass#2\c!mm#4\fontalternative\fontsize\endcsname\relax
+     \@EA\ifx\csname#2\c!mm#4\fontalternative\fontsize\endcsname\relax
+     \else
+       \csname#2\c!mm#4\fontalternative\fontsize\endcsname
+       #1#3\font
+     \fi
+   \else
+     \csname\fontclass#2\c!mm#4\fontalternative\fontsize\endcsname
+     #1#3\font
+   \fi}
 
-\def\familylist%
-  {\c!tf,\c!sl,\c!it,\c!bf,\c!bs,\c!bi,\c!sc}
+\endTEX
 
-\def\processfamilylist%
-  {\dowithfamily\c!tf
-   \dowithfamily\c!sl
-   \dowithfamily\c!it
-   \dowithfamily\c!bf
-   \dowithfamily\c!bs
-   \dowithfamily\c!bi
-   \dowithfamily\c!sc}
+\beginETEX \ifcsname
 
-%D This list will be extended when needed with (pseudo)
-%D families. The speude ones will in fact use the NoName
-%D family.
+\def\dodosetsymbfamily#1#2#3#4%
+  {\ifcsname\fontclass#2\c!mm#4\fontalternative\fontsize\endcsname
+     \csname\fontclass#2\c!mm#4\fontalternative\fontsize\endcsname
+     #1#3\font
+   \else\ifcsname#2\c!mm#4\fontalternative\fontsize\endcsname
+     \csname#2\c!mm#4\fontalternative\fontsize\endcsname
+     #1#3\font
+   \fi\fi}
 
+\def\dodosetsymbfamily#1#2#3#4%
+  {\ifcsname\fontclass#2\c!mm#4\fontalternative\fontsize\endcsname
+     \csname\fontclass#2\c!mm#4\fontalternative\fontsize\endcsname
+     #1#3\font
+   \else\ifcsname#2\c!mm#4\fontalternative\fontsize\endcsname
+     \csname#2\c!mm#4\fontalternative\fontsize\endcsname
+     #1#3\font
+   \fi\fi}
+
+\endETEX
+
 %D All used styles, like rm, ss and tt, are saved in a comma
 %D separated list. Appart from practical limitations one can
-%D define as many styles as needed, but first we
+%D define as many styles as needed.
 
 \let\stylelist=\empty
 
@@ -709,8 +934,14 @@
 %D \HL
 %D \stoptabel
 
+\def\magstep#1% \relax removed, otherwise space after it sticks, else added
+  {\ifcase#1 \@m\or1200\or1440\or1728\or2074\or2488\or\@m\fi}
+
+\def\magstephalf%
+  {1095}
+
 \def\magfactor#1%
-  {\ifcase#1 1.000\or 1.200\or 1.440\or 1.728\or 2.074\or 2.488\or 1\fi}
+  {\ifcase#1 1.000\or1.200\or1.440\or1.728\or2.074\or2.488\or1\fi}
 
 \def\magfactorhalf%
   {1.095}
@@ -718,165 +949,165 @@
 %D These macros enable the use of definitions like \type{sa
 %D \magfactor3} which saves us both (mis|)|calculations and
 %D potential mistypings.
-%D 
+%D
 %D Because \type {sa} (scaled at) and \type {mo} (mapped on)
 %D are not low level \TEX\ supported alternatives, we have to
 %D test for it ourselves. In doing so, we need an auxiliary
 %D \DIMENSION. We cannot use \type{\scratchdimen} because font
 %D loading can happen at any moment due to postponed loading.
 %D We could instead have used dirty grouping tricks, but this
-%D one works too. 
-
-%%% \newdimen\scaledfont
-%%% 
-%%% REPLACED
-%%%  
-%%%  % \def\docalculatefont#1 sa #2sa#3*#4*#5*% The spaces are needed!
-%%%  %   {\edef\fontscale{#2}%
-%%%  %    \ifx\fontscale\empty
-%%%  %      \expandafter\font\csname#4#5\endcsname=#1\relax
-%%%  %    \else
-%%%  %      \scaledfont=#4\relax
-%%%  %      \expandafter\font\csname#4#5\endcsname=#1 at \fontscale\scaledfont\relax
-%%%  %    \fi}
-%%%  
-%%%  \def\splitfontdefinition#1 #2 #3 #4\end%
-%%%    {\def\somefontname{#1}%
-%%%     \doifelse{#2}{*}
-%%%       {\let\somefontspec=\empty}
-%%%       {\def\somefontspec{ #2 #3}}}
-%%%  
-%%%  % \def\docalculatefont#1 sa #2sa#3*#4*#5*% The spaces are needed!
-%%%  %   {\edef\fontscale{#2}%
-%%%  %    \expandafter\splitfontdefinition#1 * * \end
-%%%  %    \ifx\fontscale\empty \else
-%%%  %      \scaledfont=#4\relax
-%%%  %      \def\somefontspec{ at \fontscale\scaledfont}%
-%%%  %    \fi
-%%%  %    \expandafter\font\csname#4#5\endcsname=
-%%%  %      \truefilename{\somefontname}\somefontspec\relax}
-%%%  
-%%%  %D We also accept \type{sa a}||\type{sa d} as specification.
-%%%  
-%%%  \def\checkfontscale#1#2\end% should be optimized
-%%%    {\doifnumberelse{#1}{}
-%%%       {\doifdefinedelse{\??ft\s!default#1}
-%%%          {\edef\fontscale{\getvalue{\??ft\s!default#1}}}
-%%%          {\edef\fontscale{1}}}}
-%%%  
-%%%  % \def\docalculatefont#1 sa #2sa#3*#4*#5*% The spaces are needed!
-%%%  %   {\edef\fontscale{#2}%
-%%%  %    \expandafter\splitfontdefinition#1 * * \end
-%%%  %    \ifx\fontscale\empty \else
-%%%  %      \expandafter\checkfontscale#2 \end % #2 can be "a " (space!)
-%%%  %      \scaledfont=#4\relax
-%%%  %      \def\somefontspec{ at \fontscale\scaledfont}%
-%%%  %    \fi
-%%%  %    \expandafter\font\csname#4#5\endcsname=
-%%%  %      \truefilename{\somefontname}\somefontspec\relax}
-%%%  
-%%%  \def\defaultfontfile{cmtt10}
-%%%  \edef\nullfontname  {\fontname\nullfont}
-%%%  \edef\dummyfontname {font\strippedcsname\\}
-%%%  
-%%%  \def\docalculatefont#1 sa #2sa#3*#4*#5*% The spaces are needed!
-%%%    {\edef\fontscale{#2}%
-%%%     \expandafter\splitfontdefinition#1 * * \end
-%%%     \ifx\fontscale\empty \else
-%%%       \expandafter\checkfontscale#2 \end % #2 can be "a " (space!)
-%%%       \scaledfont=#4\relax
-%%%       \def\somefontspec{ at \fontscale\scaledfont}%
-%%%     \fi
-%%%     \edef\fontfile{\truefontname\somefontname}%
-%%%     \ifx\fontfile\s!unknown
-%%%       \let\fontfile\defaultfontfile
-%%%     \else 
-%%%       \edef\fontdata{\truefontdata\somefontname}%
-%%%       \ifx\fontdata\empty \else
-%%%        %\@EA\getparameters\@EA[\@EA\fontfile\@EA]\@EA[\fontdata]%
-%%%         \@EA\rawgetparameters\@EA[\@EA\fontfile\@EA]\@EA[\fontdata]%
-%%%       \fi
-%%%     \fi
-%%%     % faster 
-%%%     %\expandafter\font\csname#4#5\endcsname\fontfile\somefontspec\relax
-%%%     % nicer
-%%%     \edef\lastfontname{\fontfile\somefontspec}%
-%%%     \expandafter\font\csname#4#5\endcsname\lastfontname
-%%%     \expandafter\font\csname\dummyfontname\endcsname\lastfontname\relax}
-%%%     % safer but sometimes introducing newlines in the log 
-%%%     %\batchmode
-%%%     %\font\lastloadedfont\fontfile\somefontspec\relax
-%%%     %\errorstopmode
-%%%     %\edef\lastfontname{\fontname\lastloadedfont}%
-%%%     %\ifx\lastfontname\nullfontname
-%%%     %  \showmessage{\m!fonts}{10}{\fontfile}%
-%%%     %  \expandafter\font\csname#4#5\endcsname=\defaultfontfile\somefontspec\relax
-%%%     %\else
-%%%     %  \expandafter\let\csname#4#5\endcsname\lastloadedfont
-%%%     %\fi}
-
-\newdimen\scaledfont
-
-\def\parsefontspec[#1]% 
-  {\edef\somefontspec{#1}%
-   \@EA\@EA\@EA\doparsefontspec\@EA\somefontspec\space\relax]}
-
-\def\doparsefontspec#1 #2#3]#4#5%
-  {\ifx#2\relax
-     \let\somefontname\somefontspec
-     \let\somefontspec\empty
-     \donoparsefontspec{#5}% 
+%D one works too.
+
+\def\norelativefontsize{1}
+\def\dorelativefontsize{1}
+\def\relativefontsize  {1}
+
+\def\s!rscale{rscale}
+
+\def\dostorerelativefontsize#1%
+  {\ifx\fontclass\empty\else\global\fi
+   \letvalue{#1\s!rscale}\relativefontsize}
+
+\beginTEX
+
+\def\dosetrelativefontsize#1%
+  {\expandafter\ifx\csname#1\s!rscale\endcsname\relax
+     \let\dorelativefontsize\norelativefontsize
    \else
-     \@EA\dodoparsefontspec\@EA[\somefontspec]{#4}{#5}% 
+    %\edef\dorelativefontsize{\csname#1\s!rscale\endcsname}%
+     \@EA\let\@EA\dorelativefontsize\csname#1\s!rscale\endcsname
    \fi}
-      
-\def\dodoparsefontspec[#1 #2#3#4]#5#6% [spec]{sa/mo size}{name}
-  {\edef\somefontname{#1}%
-   \edef\fontscale% 
-     {\ifx#2s\ifx#3a#4\fi\else  % sa = scaled at
-      \ifx#2m\ifx#3o#4\fi\fi\fi}% mo = mapped on 
-   \ifx\fontscale\empty
-     \edef\somefontspec{ #2#3#4}%
+
+\endTEX
+
+\beginETEX \ifcsname
+
+\def\dosetrelativefontsize#1%
+  {\ifcsname#1\s!rscale\endcsname
+    %\edef\dorelativefontsize{\csname#1\s!rscale\endcsname}%
+     \@EA\let\@EA\dorelativefontsize\csname#1\s!rscale\endcsname
    \else
-     \expandafter\checkfontscale\fontscale\end 
-     \scaledfont=#5\relax
-     \ifx#2m\setmappedfontsize\scaledfont\fi
-     \def\somefontspec{ at \fontscale\scaledfont}%
-   \fi
-   \donoparsefontspec{#6}}
+     \let\dorelativefontsize\norelativefontsize
+   \fi}
+
+\endETEX
+
+\def\doresetrelativefontsize%
+  {\let\dorelativefontsize\norelativefontsize}
+
+\newdimen\scaledfont 
+
+\def\@fs@{@fs@}
+
+\def\parsefontspec#1%
+  {\edef\somefontspec{#1\space\relax}%
+   \@EA\doparsefontspec\somefontspec]%
+   \donoparsefontspec}
+
+\def\doparsefontspec#1 #2%
+  {\def\somefontname{#1}%
+   \ifx#2\relax
+     \expandafter\setnaturalfontspec
+   \else
+     \expandafter\setforcedfontspec
+   \fi#2}
+
+\def\setnaturalfontspec#1]%
+  {\@fs@scaled\!!thousand}
+
+\def\setforcedfontspec#1 #2\relax]%
+  {\getvalue{\@fs@#1}{#2}}
+
+\def\@fs@scaled#1%
+  {\scaledfont#1pt%
+   \scaledfont\dorelativefontsize\scaledfont
+   \ifautofontsize\scaledfont\currentfontbodyscale\scaledfont\fi
+   \scratchcounter\scaledfont
+   \advance\scratchcounter \!!medcard
+   \divide\scratchcounter \!!maxcard
+   \edef\somefontspec{ scaled \the\scratchcounter}}
+
+\def\@fs@at#1%
+  {\scaledfont#1%
+   \scaledfont\dorelativefontsize\scaledfont
+   \ifautofontsize\scaledfont\currentfontbodyscale\scaledfont\fi
+   \def\somefontspec{ at \scaledfont}}
+
+\def\@fs@sa%
+  {\scaledfont\fontbody
+   \setsamofontspec}
+
+\def\@fs@mo%
+  {\scaledfont\setmappedfontsize\fontbody
+   \setsamofontspec}
+
+\def\setsamofontspec#1%
+  {\checkfontscale#1\end\scaledfont
+   \scaledfont\dorelativefontsize\scaledfont
+   \ifautofontsize
+     \def\somefontspec{ at \currentfontbodyscale\scaledfont}%
+   \else
+     \def\somefontspec{ at \scaledfont}%
+   \fi}
+
+\def\getglobalfontparameters%
+  {\expandafter\setglobalfontparameter\fontdata,]=,}
+
+\def\setglobalfontparameter#1=#2,%
+  {\if]#1\else
+     \expandafter\gdef\csname\fontfile#1\endcsname{#2}%
+     \expandafter\setglobalfontparameter
+   \fi}
+
+\def\getfontparameters%
+  {\expandafter\setfontparameter\fontdata,]=,}
+
+\def\setfontparameter#1=#2,%
+  {\if]#1\else
+     \expandafter\def\csname\fontfile#1\endcsname{#2}%
+     \expandafter\setfontparameter
+   \fi}
 
 \def\donoparsefontspec#1%
   {\edef\fontfile{\truefontname\somefontname}%
+  %\writestatus{specifying}{\somefontname/\fontfile/\somefontspec}%
    \ifx\fontfile\s!unknown
+    %\writestatus{missing}{\somefontname}%
      \let\fontfile\defaultfontfile
-   \else 
-     \edef\fontdata{\truefontdata\somefontname}%
+   \else
+     \edef\fontdata{\truefontdata\fontfile}%
      \ifx\fontdata\empty \else
-      %\@EA\getparameters\@EA[\@EA\fontfile\@EA]\@EA[\fontdata]%
-       \@EA\rawgetparameters\@EA[\@EA\fontfile\@EA]\@EA[\fontdata]%
+      %\writestatus{storing}{\fontfile\space(\fontdata)]}%
+       \ifx\fontclass\empty 
+         \getfontparameters
+       \else
+         \getglobalfontparameters
+       \fi
      \fi
    \fi
    \edef\lastfontname{\fontfile\somefontspec}% not really needed
+  %\writestatus{tfmloading}{[#1] [\lastfontname][\the\scaledfont]}%
+   \ifx\fontclass\empty\else\global\fi 
    \expandafter\font\csname#1\endcsname\lastfontname\relax
    \the\everyfont % new
-   % the second \font definition prevents fuzzy font refs 
+   % the second \font definition prevents fuzzy font refs
    % \expandafter\font\csname\dummyfontname\endcsname\lastfontname
    % but somehow they changed tex so that it does not matter any more
-   \relax} 
+   \relax}
 
 \def\defaultfontfile{cmtt10}
 \edef\nullfontname  {\fontname\nullfont}
 \edef\dummyfontname {font\strippedcsname\\}
 
-%D \macros 
+%D \macros
 %D  {everyfont,everyfontswitch}
 %D
-%D For special purposes, we provide a hook. 
+%D For special purposes, we provide a hook.
 
 \newevery \everyfont       \relax
 \newevery \everyfontswitch \relax
 
-%  safer but sometimes introducing newlines in the log 
+%  safer but sometimes introducing newlines in the log
 %
 %  \batchmode
 %  \font\lastloadedfont\fontfile\somefontspec\relax
@@ -891,18 +1122,30 @@
 
 %D We also accept \type{sa a}||\type{sa d} as specification.
 
-\def\checkfontscale#1#2\end% should be optimized
-  {\doifnumberelse{#1}{}
-     {\doifdefinedelse{\??ft\s!default#1}
-        {\edef\fontscale{\getvalue{\??ft\s!default#1}}}
-        {\edef\fontscale{1}}}}
+\beginETEX \ifcsname
+
+\def\checkfontscale#1#2\end#3%
+  {#3\ifcsname\??ft\s!default\noexpand#1\endcsname
+     \csname\??ft\s!default\noexpand#1\endcsname\else#1#2%
+   \fi#3}
+
+\endETEX
+
+\beginTEX
+
+\def\checkfontscale#1#2\end#3%
+  {#3\expandafter\ifx\csname\??ft\s!default\noexpand#1\endcsname\relax
+     #1#2\else\csname\??ft\s!default\noexpand#1\endcsname
+   \fi#3}
+
+\endTEX
 
 %D The duplicate font definition, using the ever the same dummy
 %D font name, results in less fuzzy error messages. In the log
 %D file, for instance when overfull boxes are reported, the
 %D simple keyword `font' replaces the \TEX\ ordinated name. The
 %D latter can be too misleading, due to the fact that \TEX\ has
-%D a rather optimized font memory management. Thanks to Taco 
+%D a rather optimized font memory management. Thanks to Taco
 %D for helping me sort this out.
 
 %D \macros
@@ -920,54 +1163,81 @@
 %D
 %D \startregels
 %D name: \type {\truefontname{Lucida-Bright}}
-%D data: \type {\truefontdata{Lucida-Bright}}
+%D data: \type {\truefontdata{\truefontname{Lucida-Bright}}}
 %D \stopregels
 
 \def\definefontsynonym%
   {\dotripleempty\dodefinefontsynonym}
 
 \def\dodefinefontsynonym[#1][#2][#3]%
-  {\setevalue{\??ff#1}{{#2}{#3}}}
+  {\ifthirdargument
+     \setevalue{\??ff#1}{#2}%
+     \ifx\fontclass\empty\else\global\fi
+     \setevalue{\??ff\??ff#2}{#3}%
+   \else
+     \setevalue{\??ff\fontclass#1}{#2}%
+   \fi}
 
-\def\truefontname#1%
-  {\dotruefontname{#1}{}}
+\beginTEX
 
-\def\dotruefontname#1#2%
-  {\ifundefined{\??ff#1}%
-     #1%
+\def\truefontdata#1%
+  {\expandafter\ifx\csname\??ff\??ff#1\endcsname\relax
    \else
-     \@EA\@EA\@EA\dotruefontname\csname\??ff#1\endcsname
+     \csname\??ff\??ff#1\endcsname
    \fi}
 
+\def\truefontname#1%
+  {\expandafter\ifx\csname\??ff\fontclass#1\endcsname\relax
+     \expandafter\ifx\csname\??ff#1\endcsname\relax
+       #1%
+     \else
+       \@EA\truefontname\csname\??ff#1\endcsname
+     \fi
+   \else
+     \@EA\truefontname\csname\??ff\fontclass#1\endcsname
+   \fi}
+
+\endTEX
+
+\beginETEX \ifcsname
+
 \def\truefontdata#1%
-  {\dotruefontdata{#1}{}}
+  {\ifcsname\??ff\??ff#1\endcsname
+     \csname\??ff\??ff#1\endcsname
+   \fi}
 
-\def\dotruefontdata#1#2%
-  {\ifundefined{\??ff#1}%
-     #2%
+\def\truefontname#1%
+  {\ifcsname\??ff\fontclass#1\endcsname
+     \@EA\truefontname\csname\??ff\fontclass#1\endcsname
+   \else\ifcsname\??ff#1\endcsname
+     \@EA\truefontname\csname\??ff#1\endcsname
    \else
-     \@EA\@EA\@EA\dotruefontdata\csname\??ff#1\endcsname
-   \fi}
+     #1%
+   \fi\fi}
+
+\endETEX
 
 %D \macros
 %D   {getfontfileparameters}
 %D
-%D For special purposes, one can use the next macro to 
+%D For special purposes, one can use the next macro to
 %D access font file characteristics, for instance:
 %D
 %D \starttypen
 %D \getfontfileparameters{Regular}
 %D \stoptypen
 %D
-%D can result in: 
+%D can result in:
 %D
 %D \starttypen
 %D \def\currentfontfileencoding{texnansi}
 %D \stoptypen
 
+\def\@@currentfontfile{currentfontfile}
+
 \def\getfontfileparameters#1%
-  {\edef\fontdata{\truefontdata{#1}}%
-   \expanded{\getparameters[currentfontfile][\fontdata]}}
+  {\edef\fontdata{\truefontdata{\truefontname{#1}}}%
+   \expanded{\getparameters[\@@currentfontfile][\fontdata]}}
 
 %D \macros
 %D   {definefont}
@@ -976,10 +1246,10 @@
 %D one for local use:
 %D
 %D \starttypen
-%D \definefont[Some][LucidaBright at 100pt]    \Some some 
-%D \definefont[More][LucidaBright scaled 3000] \More more 
-%D \definefont[Nice][LucidaBright mp 2]        \Nice nice 
-%D \definefont[Text][LucidaBright sa 5.4]      \Text last 
+%D \definefont[Some][LucidaBright at 100pt]    \Some some
+%D \definefont[More][LucidaBright scaled 3000] \More more
+%D \definefont[Nice][LucidaBright mp 2]        \Nice nice
+%D \definefont[Text][LucidaBright sa 5.4]      \Text last
 %D \stoptypen
 %D
 %D The implementation one looks familiar:
@@ -987,128 +1257,40 @@
 \def\definefont%
   {\dodoubleargument\dodefinefont}
 
-%%%  REPLACED
-%%%  
-%%%  \def\dodefinefont[#1][#2]% 
-%%%    {\doifinstringelse{ }{#2}
-%%%       {\unexpanded\setvalue{#1}{\dododefinefont{#1}#2 sa sa*}}
-%%%       {\dodefinefont[#1][#2 sa 1]}}
-%%%  
-%%%  \def\dododefinefont#1#2sa #3sa#4*%
-%%%    {\edef\fontscale{#3}%
-%%%     \expandafter\splitfontdefinition#2 * * \end
-%%%     \ifx\fontscale\empty\else % new 2000/8/31
-%%%       \expandafter\checkfontscale#3 \end 
-%%%     \fi
-%%%     \expandafter\font\csname#1\endcsname=\truefontname\somefontname
-%%%       \ifx\fontscale\empty
-%%%         \somefontspec
-%%%       \else
-%%%         \space at \fontscale\bodyfontsize
-%%%       \fi
-%%%     \getvalue{#1}}
-
-\def\dodefinefont[#1][#2]% 
+\def\dodefinefont[#1][#2]%
   {\doifinstringelse{ }{#2}
      {\unexpanded\setvalue{#1}{\dododefinefont{#1}{#2}}}
      {\dodefinefont[#1][#2 sa 1]}}
 
-%D The * makes the switch local, so that we can redefine a 
-%D logical name and/or change the size in between. 
+%D The \type {*} makes the switch local, so that we can redefine a
+%D logical name and/or change the size in between.
 
-% \def\dododefinefont#1#2%
-%  {\parsefontspec[#2]{\bodyfontsize}{#1}\getvalue{#1}}
+\newif\ifautofontsize \autofontsizetrue
 
-\def\dododefinefont#1#2% 
-  {\parsefontspec[#2]{\bodyfontsize}{*#1*}%
-   \getvalue{*#1*}%
-   \setfontcharacteristics % new 
+\def\dododefinefont#1#2%
+  {\dosetrelativefontsize{#1}%
+   \parsefontspec{#2}{**#1**}%
+   \getvalue{**#1**}%
+   \doresetrelativefontsize
+   \setfontcharacteristics
+   \autofontsizefalse
+   \the\everyfontswitch}
+
+\def\xxdododefinefont#1#2% \autofontsizetrue is set by calling routine
+  {\ifcsname*\fontclass#1\fontsize*\endcsname\else
+     \dosetrelativefontsize{\fontclass#1}% dangerous with fallback 
+     \parsefontspec{#2}{*\fontclass#1\fontsize*}%
+     \doresetrelativefontsize
+   \fi
+   \csname*\fontclass#1\fontsize*\endcsname
+   \setfontcharacteristics 
+   \autofontsizefalse
    \the\everyfontswitch}
 
 %D I considered checking for mistakenly use of \PLAIN's
 %D \type{\magstep}'s but although it would take only a few
 %D lines of code, this would not add to consistent use. I
-%D therefore removed this check. Here we also handle the
-%D optional hyphenchar definitions, like:
-%D
-%D \starttypen
-%D \definebodyfont [12pt] [rm] [hyphenchar=45]
-%D \stoptypen
-
-%%% REPLACED
-%%% 
-%%% \beginTEX
-%%% 
-%%% \def\dodoloadfont#1#2#3#4%
-%%%   {\edef\calculatedfont{\csname\??ft#1#2#3\endcsname\space}%
-%%%    \expandafter\docalculatefont\calculatedfont sa sa*#1*#2#3*%
-%%%    \@EA\hyphenchar\csname#1#2#3\endcsname=
-%%%      \@EA\ifx\csname\??ft#1#2\s!hyphenchar\endcsname\relax
-%%%        #4%
-%%%      \else
-%%%        \csname\??ft#1#2\s!hyphenchar\endcsname
-%%%      \fi\relax
-%%%    \csname#1#2#3\endcsname}
-%%% 
-%%% \endTEX
-%%% 
-%%% \beginETEX \ifcsname
-%%% 
-%%% \def\dodoloadfont#1#2#3#4%
-%%%   {\edef\calculatedfont{\csname\??ft#1#2#3\endcsname\space}%
-%%%    \expandafter\docalculatefont\calculatedfont sa sa*#1*#2#3*%
-%%%    \@EA\hyphenchar\csname#1#2#3\endcsname=
-%%%      \ifcsname\??ft#1#2\s!hyphenchar\endcsname
-%%%        \csname\??ft#1#2\s!hyphenchar\endcsname
-%%%      \else
-%%%        #4%
-%%%      \fi\relax
-%%%    \csname#1#2#3\endcsname}
-%%% 
-%%% \endETEX
-
-%D The loading macro is used in two macros. One of them takes
-%D care of fixed width teletype fonts.
-
-\def\doloadfont#1#2#3%
-  {%\debuggerinfo{\m!fonts}{loaded #1#2#3}%
-   \dodoloadfont{#1}{#2}{#3}{45}}
-
-\def\doloadttfont#1#2#3%
-  {%\debuggerinfo{\m!fonts}{loaded fixed #1#2#3}%
-   \dodoloadfont{#1}{#2}{#3}{-1}}
-
-\beginTEX
-
-\def\dodoloadfont#1#2#3#4%
-  {\edef\calculatedfont{[\csname\??ft#1#2#3\endcsname]}%
-   \@EA\parsefontspec\calculatedfont{#1}{#1#2#3}%
-   \@EA\hyphenchar\csname#1#2#3\endcsname=
-     \@EA\ifx\csname\??ft#1#2\s!hyphenchar\endcsname\relax
-       #4%
-     \else
-       \csname\??ft#1#2\s!hyphenchar\endcsname
-     \fi\relax
-   \csname#1#2#3\endcsname
-   \the\everyfontswitch}
-
-\endTEX
-
-\beginETEX \ifcsname
-
-\def\dodoloadfont#1#2#3#4%
-  {\edef\calculatedfont{[\csname\??ft#1#2#3\endcsname]}%
-   \@EA\parsefontspec\calculatedfont{#1}{#1#2#3}%
-   \@EA\hyphenchar\csname#1#2#3\endcsname=
-     \ifcsname\??ft#1#2\s!hyphenchar\endcsname
-       \csname\??ft#1#2\s!hyphenchar\endcsname
-     \else
-       #4%
-     \fi\relax
-   \csname#1#2#3\endcsname
-   \the\everyfontswitch}
-
-\endETEX
+%D therefore removed this check.
 
 %D \macros
 %D   {mapfontsize}
@@ -1117,12 +1299,12 @@
 %D slightly different sizes than the ones given. This happens
 %D for instance with the Math Times fonts. Mapped font sizes
 %D can be specified by using the \type {mo} key instead of
-%D \type {sa} in font definitions. 
+%D \type {sa} in font definitions.
 %D
 %D \startbuffer
-%D \mapfontsize[10pt][11pt]     
-%D \mapfontsize[11pt][12pt]     
-%D \mapfontsize[12pt][13pt]    
+%D \mapfontsize[10pt][11pt]
+%D \mapfontsize[11pt][12pt]
+%D \mapfontsize[12pt][13pt]
 %D
 %D \definefont[test][Serif]\test TEST \par
 %D \definefont[test][Serif sa 5]\test TEST \par
@@ -1148,8 +1330,10 @@
 \beginTEX
 
 \def\setmappedfontsize#1%
-  {\expandafter\ifx\csname\??ft*\the#1\endcsname\relax\else
-     #1=\csname\??ft*\the#1\endcsname
+  {\expandafter\ifx\csname\??ft*#1\endcsname\relax
+     #1%
+   \else
+     \csname\??ft*#1\endcsname
    \fi}
 
 \endTEX
@@ -1157,8 +1341,10 @@
 \beginETEX \ifcsname
 
 \def\setmappedfontsize#1%
-  {\ifcsname\??ft*\the#1\endcsname
-     #1=\csname\??ft*\the#1\endcsname
+  {\ifcsname\??ft*#1\endcsname
+     \csname\??ft*#1\endcsname
+   \else
+     #1%
    \fi}
 
 \endETEX
@@ -1173,13 +1359,35 @@
 \def\getfontname#1%
   {\getvalue{\??ft#1}}
 
-%D \macros 
-%D   {currentfontscale}
+%D To be documented.
+
+\let\sizelist\empty
+
+\def\definefontsize[#1]%
+  {\addtocommalist{#1}\sizelist
+   \def\docommando##1%
+     {\def\dodocommando####1%
+        {\def\dododocommando########1%
+           {\checkbodyfont{}{########1}{####1}{##1}}%
+         \processcommacommand[\stylelist]\dododocommando}%
+      \processcommacommand[\alternativelist]\dodocommando}%
+   \processcommacommand[\sizelist]\docommando}
+
+\def\alternativetextlist{\c!tf,\c!bf,\c!it,\c!sl,\c!bs,\c!bi,\c!sc}
+\def\alternativemathlist{\c!mr,\c!mi,\c!sy,\c!ex,\c!ma,\c!mb}
+
+\let\alternativelist\alternativetextlist % upward compatible
+
+%\definefontsize[\c!a] \definefontsize[\c!b]
+%\definefontsize[\c!c] \definefontsize[\c!d]
+
+%D \macros
+%D   {currentfontscale,currentfontbodyscale}
 %D
-%D Sometimes we need to have access to the font scale 
-%D including the \type{a}||\type{d} sizes. The next macro 
-%D returns the current scaling factor. Take a look at 
-%D \type {cont-log.tex} for an example of its use. 
+%D Sometimes we need to have access to the font scale
+%D including the \type{a}||\type{d} sizes. The next macro
+%D returns the current scaling factor. Take a look at
+%D \type {cont-log.tex} for an example of its use.
 
 \beginTEX
 
@@ -1194,6 +1402,17 @@
      \csname\??ft\s!default\xfontsize\endcsname
    \fi}
 
+\def\currentfontbodyscale%
+  {\@EA\ifx\csname\??ft\s!default\fontsize\endcsname\relax
+     \@EA\ifx\csname\??ft\s!default\s!text\endcsname\relax
+       1%
+     \else
+       \csname\??ft\s!default\s!text\endcsname
+     \fi
+   \else
+     \csname\??ft\s!default\fontsize\endcsname
+   \fi}
+
 \endTEX
 
 \beginETEX \ifcsname
@@ -1207,20 +1426,29 @@
      1%
    \fi\fi}
 
+\def\currentfontbodyscale%
+  {\ifcsname\??ft\s!default\fontsize\endcsname
+     \csname\??ft\s!default\fontsize\endcsname
+   \else\ifcsname\??ft\s!default\s!text\endcsname
+     \csname\??ft\s!default\s!text\endcsname
+   \else
+     1%
+   \fi\fi}
+
 \endETEX
 
 %D Both alternatives use \type {\xfontsize}, a macro that
 %D expands to the current size in terms of \type {a} \unknown
-%D \type {d}, nothing, or \type {x} \unknown \type {xx}. 
+%D \type {d}, nothing, or \type {x} \unknown \type {xx}.
 
 \def\xfontsize{\ifcase\currentxfontsize\fontsize\or\c!x\else\c!xx\fi}
 
-%D A typical use of this command is in commands that switch 
-%D to another font bypassing the font mechanism: 
-%D 
-%D \starttypen 
+%D A typical use of this command is in commands that switch
+%D to another font bypassing the font mechanism:
+%D
+%D \starttypen
 %D \font\myfont=\truefontname{MyFont} at \currentfontscale\bodyfontsize
-%D \stoptypen 
+%D \stoptypen
 
 %D Now we enter the area of font switching. The switching
 %D mechanism has to take care of several situations, like:
@@ -1265,7 +1493,7 @@
 %D settings apply. All second parameters are specified in
 %D dimensions and tell us more about related sizes.
 %D
-%D Afterwards, one can change values with 
+%D Afterwards, one can change values with
 %D
 %D \showsetup{\y!setupbodyfontenvironment}
 %D
@@ -1281,14 +1509,11 @@
 
 \let\bodyfontenvironmentlist\empty
 
-\def\definebodyfontenvironment%
-  {\dodoubleempty\dodefinebodyfontenvironment}
-
 \newcount\@@fontdefhack
 
 \def\@@beginfontdef%
   {\ifcase\@@fontdefhack
-     \let\k!savedtext     =\k!text      \let\k!text     =\s!text  
+     \let\k!savedtext     =\k!text      \let\k!text     =\s!text
      \let\k!k!savedtext   =\k!k!text    \def\k!k!text    {1}%
      \let\k!saveddefault  =\k!default   \let\k!default  =\s!default
      \let\k!k!saveddefault=\k!k!default \def\k!k!default {1}%
@@ -1304,45 +1529,78 @@
      \let\k!text     =\k!savedtext
    \fi}
 
-\def\dodefinebodyfontenvironment[#1][#2]%
-  {\@@beginfontdef
-   \doifelse{#1}{\s!default}
-     {\getparameters[\??ft\s!default][#2]}
-     {\normalizebodyfontsize#1\to\tempbodyfontsize
-      \addtocommalist\tempbodyfontsize\bodyfontenvironmentlist
-      \@EA\dododefinebodyfontenvironment\@EA[\tempbodyfontsize][#2]}%
-   \@@endfontdef}
+\def\definebodyfontenvironment%
+  {\dotripleempty\dodefinebodyfontenvironment}
 
-\def\dododefinebodyfontenvironment[#1][#2]%
-  {\doifundefined{\??ft#1\s!text}
+\def\dodefinebodyfontenvironment[#1][#2][#3]% [class] size settings
+  {\ifthirdargument
+     \@@beginfontdef
+     \doifelse{#2}{\s!default}
+       {\getparameters[\??ft\s!default][#3]}
+       {\normalizebodyfontsize#2\to\tempbodyfontsize
+        \addtocommalist\tempbodyfontsize\bodyfontenvironmentlist
+        \@EA\dododefinebodyfontenvironment\@EA[\tempbodyfontsize][#1][#3]}%
+     \@@endfontdef
+   \else
+     \definebodyfontenvironment[\fontclass][#1][#2]% changed
+   \fi}
+
+\def\dododefinebodyfontenvironment[#1][#2][#3]% size class settings
+  {\doifundefined{\??ft#2#1\s!text}
      {\def\docommando##1%
         {\scratchdimen=#1\relax
          \scratchdimen=\getvalue{\??ft\s!default##1}\scratchdimen
          \normalizebodyfontsize\scratchdimen\to\tempbodyfontsize
-         \setevalue{\??ft#1##1}{\tempbodyfontsize}}%
-      \processcommalist
-        [\s!text,\s!script,\s!scriptscript,\c!x,\c!xx,\c!groot,\c!klein]
-        \docommando
-      \copyparameters
-        [\??ft#1][\??ft\s!default]
+         \setevalue{\??ft#2#1##1}{\tempbodyfontsize}%
+        %\expanded{\checkbodyfontenvironment[\tempbodyfontsize]}%
+          }%
+     \processcommalist
+       [\s!text,\s!script,\s!scriptscript,\c!x,\c!xx,\c!groot,\c!klein]
+       \docommando
+     \copyparameters
+        [\??ft#2#1][\??ft\s!default]
         [\c!interlinie,\c!em]}%
    \@@beginfontdef
-   \getparameters[\??ft#1][#2]%
+   \getparameters[\??ft#2#1][#3]%
    \@@endfontdef
-   \setvalue{\@size@#1}{\docompletefontswitch[#1]}}
+   \setvalue{\@size@#2#1}{\docompletefontswitch[#1]}}
 
+\def\checkbodyfontenvironment[#1]%
+  {\definebodyfontenvironment[\fontclass][#1][]}
+
 \def\setupbodyfontenvironment%
-  {\dodoubleargument\dosetupbodyfontenvironment}
+  {\dotripleempty\dosetupbodyfontenvironment}
 
-\def\dosetupbodyfontenvironment[#1][#2]%
+\def\dosetupbodyfontenvironment[#1][#2][#3]% class size settings
   {\@@beginfontdef
-   \getparameters[\??ft#1][#2]%
+   \ifthirdargument
+     \getparameters[\??ft#1#2][#3]%
+   \else
+     \getparameters[\??ft#1][#2]%
+   \fi
    \@@endfontdef}
 
-%D The interlinespace is communicated with the following macros:
+%D Just a couple of interface macros:
+
+\beginTEX
+
+\def\bodyfontvariable#1%
+  {\??ft\@EA\ifx\csname\??ft\fontclass#1\endcsname\relax\else\fontclass\fi#1}
+
+\endTEX
+
+\beginETEX \ifcsname
+
+\def\bodyfontvariable#1%
+  {\??ft\ifcsname\??ft\fontclass#1\endcsname\fontclass\fi#1}
+
+\endETEX
+
+\def\bodyfontcsname%
+  {\csname\bodyfontvariable}
 
 \def\bodyfontinterlinespecs%
-  {\??ft\normalizedbodyfontsize\c!interlinie}
+  {\bodyfontvariable{\normalizedbodyfontsize\c!interlinie}}
 
 \def\bodyfontinterlinespace%
   {\csname\bodyfontinterlinespecs\endcsname}
@@ -1367,14 +1625,10 @@
 %D
 %D \showsetup{\y!definebodyfont}
 %D
-%D This commands takes three arguments, where \ShowArgument\
-%D takes a (series of) bodyfont size(s) and \ShowArgument\
-%D the style group to which the definitions belong.
-%D
-%D Argument \ShowArgument\ accepts any suitable alternative,
-%D as specified by the \TEX\ families, extended with~a, b~and
-%D higher sizes or the normal \TEX\ mathematical families and
-%D some more.
+%D This commands takes three arguments: a (series of) bodyfont 
+%D size(s), the style group to which the definitions belong,
+%D and an alternative, as specified by the \TEX\ (math) families, 
+%D extended with~a, b~\unknown. 
 %D
 %D We show two examples, that show all the alternative
 %D scaling options. The \type{\tfa} alternatives can be
@@ -1416,36 +1670,49 @@
 %D Instead of \type{rm} (roman) one can define \type{ss} (sans
 %D serif), \type{tt} (teletype), \type{hw} (hand written),
 %D \type{cg} (calygraphic) and whatever styles.
-
-\def\definebodyfont%
-  {\dotripleargument\dodefinebodyfont}
-
+%D
 %D The first argument may be a comma separated list. This,
 %D combined with specifications using \type{sa} can save a lot
 %D of typing. Although all arguments should be specified, we
 %D treat the second argument as optional.
+%D
+%D Defining a bodyfont involves two actions: defining the
+%D specific style related alternatives, like \type{\rma},
+%D \type{\bfa} and \type{\rmsla}, and storing the definitions
+%D of their bodyfont size related fonts. The first step is
+%D bodyfont independant but executed every time. This permits
+%D user definitions like \type{\tfw} or \type{\bfq} for real
+%D large alternatives.
 
-%\def\dodefinebodyfont[#1][#2][#3]%
-%  {\ifthirdargument
-%     \def\dododefinebodyfont##1%
-%       {\dodododefinebodyfont[##1][#2][#3]}%
-%     \processcommalist[#1]\dododefinebodyfont
-%   \else
-%     \definebodyfont[#1][\c!rm][#2]%
-%   \fi}
+\def\definebodyfont%
+  {\doquadrupleempty\redefinebodyfont}
 
-\def\dodefinedefaultbodyfont[#1][#2]%
-  {\def\dododefinedefaultbodyfont##1%
-     {\def\dodododefinedefaultbodyfont####1{\getvalue{\s!default####1}{##1}}%
-      \processcommalist[#2]\dodododefinedefaultbodyfont}%
-   \processcommalist[#1]\dododefinedefaultbodyfont}
+\def\redefinebodyfont[#1][#2][#3][#4]%
+  {\iffourthargument
+     \processcommalist[#1]{\reredefinebodyfont[#2][#3][#4]}%
+   \else
+     \dodefinebodyfont[#1][#2][#3]%
+   \fi}
 
-\def\dodefinebodyfont[#1][#2][#3]%
+\def\reredefinebodyfont[#1][#2][#3]#4%
+  {\pushmacro\fontclass
+   \doifelse{#4}{\s!default}
+     {\let\fontclass\empty}
+     {\def\fontclass{#4}}%
+   \definebodyfont[#1][#2][#3]%
+   \popmacro\fontclass}
+
+\def\dodefinebodyfont[#1][#2][#3]% body|identifier style defs|identifier
   {\ifthirdargument
-     \doifelse{#3}{\s!default} % new 
-       {\dodefinedefaultbodyfont[#1][#2]}
-       {\def\dododefinebodyfont##1{\dodododefinebodyfont[##1][#2][#3]}%
-        \processcommalist[#1]\dododefinebodyfont}%
+     \doifnumberelse{#1}
+       {\doifassignmentelse{#3}
+          {% [12pt] [style] [settings]
+           \doifundefined{#2}{\expanded{\definefontstyle[#2][#2]}}% new
+           \processcommalist[#1]{\dododefinebodyfont{#2}{#3}}}
+          {% [12pt] [style] [identifier]
+           \dodefinedefaultbodyfont[#1][#2][#3]}} % body style identifier
+       {% [identifier] [style] [settings]
+        \setvalue{\s!default#1#2}##1##2{\expanded{\dodefinebodyfont[##1][##2][#3]}}}%
    \else\ifsecondargument
      \definebodyfont[#1][\c!rm][#2]%
    \else
@@ -1455,103 +1722,68 @@
        {\definebodyfont[#1][\c!rm][]}% make sure some basics are set up.
    \fi\fi}
 
-%D Defining a bodyfont involves two actions: defining the specific
-%D style related alternatives, like \type{\rma}, \type{\bfa}
-%D and \type{\rmsla}, and storing the definitions of their
-%D bodyfont size related fonts. The first step is bodyfont
-%D independant but executed every time. This permits user
-%D definitions like \type{\tfw} or \type{\bfq} for real large
-%D alternatives.
-
-% \def\dodododefinebodyfont[#1][#2][#3]% er kan wat naar buiten
-%   {\doifelse{#1}{\s!default}
-%      {\setvalue{\s!default#2}##1{\definebodyfont[##1][#2][#3]}}
-%      {\geteparameters[\??ft#1#2][#3]% We expand them!
-%       \dodefinebodyfontenvironment[#1][]% Just to be sure.
-%       \def\doiffamily##1##2##3\\% adapted
-%         {\doifinstringelse{##1##2}\familylist
-%            {}
-%            {\addtocommalist{##1##2}\familylist
-%             %\settextfonts
-%             \unexpanded\setvalue{##1##2}%
-%               {\getvalue{#2}\getvalue{##1##2}}%
-%             \unexpanded\setvalue{##1##2\c!x}%
-%               {\getvalue{##1##2}\getvalue{##1##2\c!x}}%
-%             \unexpanded\setvalue{##1##2\c!xx}%
-%               {\getvalue{##1##2}\getvalue{##1##2\c!xx}}}%
-%          \doifsomething{##3} 
-%            {\unexpanded\setvalue{#2##3}% eg: \rma, \ssa
-%               {\switchtofontstyle{#2}{##3}}%
-%             \unexpanded\setvalue{##1##2##3}% eg: \tfa, \bfa
-%               {\switchtofontalternative{##1##2}{##3}}%
-%             \unexpanded\setvalue{#2##1##2##3}% eg: \rmtfa, \ssbfa
-%               {\switchtofontstylealternative{#2}{##1##2}{##3}}}}%
-%       \def\dododododefinebodyfont##1%
-%         {\doifnot{##1}{\s!hyphenchar}
-%            {\doifdefined{\??ft#1#2##1}
-%               {%\letvalue{@#1#2##1@}=\characterencoding
-%                \setevalue{@#1#2##1@}{\currentencoding}% strips @ 
-%                \doifelse{#2}{\c!tt}
-%                  {\unexpanded\setvalue{#1#2##1}{\doloadttfont{#1}{#2}{##1}}}
-%                  {\unexpanded\setvalue{#1#2##1}{\doloadfont{#1}{#2}{##1}}}%
-%                \bgroup
-%                \let\relax=\empty
-%               %\debuggerinfo
-%               %  {\m!fonts}{\getvalue{\??ft#1#2##1} defined as #1 #2 ##1}%
-%                \egroup}%
-%             \doifnot{#2}{\c!mm}  % new!
-%               {\expandafter\doiffamily##1\\}}}%
-%       \processassignlist[#3]\dododododefinebodyfont}}
-
-% This saves 5K in the fmt file. 
-
-\def\dodododefinebodyfont[#1][#2][#3]% er kan wat naar buiten
-  {\doifelse{#1}{\s!default}
-     {\setvalue{\s!default#2}##1{\definebodyfont[##1][#2][#3]}}
-     {\geteparameters[\??ft#1#2][#3]% We expand them!
-      \dodefinebodyfontenvironment[#1][]% Just to be sure.
-      \processassignlist[#3]{\dododododefinebodyfont{#1}{#2}}}}
-
-\def\dododododefinebodyfont#1#2#3%
-  {\doifnot{#3}{\s!hyphenchar}
-     {\doifdefined{\??ft#1#2#3}
-        {\setevalue{@#1#2#3@}{\currentencoding}% strips @ 
-         \doifelse{#2}{\c!tt}
-           {\unexpanded\setvalue{#1#2#3}{\doloadttfont{#1}{#2}{#3}}}
-           {\unexpanded\setvalue{#1#2#3}{\doloadfont{#1}{#2}{#3}}}%
-         \bgroup
-         \let\relax=\empty
-        %\debuggerinfo
-        %  {\m!fonts}{\getvalue{\??ft#1#2#3} defined as #1 #2 #3}%
-         \egroup}%
-      \doifnot{#2}{\c!mm}  % new!
-        {\expandafter\doiffamily#3\\#2\\}}}
-
-%D !! This one will change !!
-
-\def\doiffamily#1#2#3\\#4\\% adapted
-  {\doifinstringelse{#1#2}\familylist
-     {}
-     {\addtocommalist{#1#2}\familylist
-      % eg \bf
-      \unexpanded\setvalue{#1#2}%
-        {\getvalue{#4}\getvalue{#1#2}}% funny strange escape, the #4
-      % eg \bfx 
-      \unexpanded\setvalue{#1#2\c!x}%
-        {\getvalue{#1#2}\getvalue{#1#2\c!x}}%
-      % eg \bfxx 
-      \unexpanded\setvalue{#1#2\c!xx}%
-        {\getvalue{#1#2}\getvalue{#1#2\c!xx}}}%
-   \doifsomething{#3} 
-     {% eg: \rma, \ssa
-      \unexpanded\setvalue{#4#3}% 
-        {\switchtofontstyle{#4}{#3}}%
-      % eg: \tfa, \bfa
-      \unexpanded\setvalue{#1#2#3}% 
-        {\switchtofontalternative{#1#2}{#3}}%
-      % eg: \rmtfa, \ssbfa
-      \unexpanded\setvalue{#4#1#2#3}% 
-        {\switchtofontstylealternative{#4}{#1#2}{#3}}}}
+\def\dododefinebodyfont#1#2#3% style defs body
+  {\checkbodyfontenvironment[#3]% just to be sure.
+   \processcommalist[#2]{\dodododefinebodyfont{#1}{#3}}}
+
+\def\dodododefinebodyfont#1#2#3% style body def
+  {\dododododefinebodyfont{#1}{#2}[#3]}
+
+\newif \ifresolvefontfile % protected by fontclass anyway
+
+\def\resolvefontname#1 {\truefontname{#1} }
+
+\def\iflocalclassfonts{\ifx\fontclass\empty}
+
+% \let\iflocalclassfonts\iffalse
+
+\def\dododododefinebodyfont#1#2[#3#4#5=#6]% style body def
+  {\ifundefined{#1#3#4#5}%
+     \checkbodyfont{#2}{#1}{#3#4}{#5}% not \definefontsize[#5]
+   \fi
+   \dostorerelativefontsize{\fontclass#2#1#3#4#5}%
+   \iflocalclassfonts
+     \letbeundefined{*#2#1#3#4#5*}%
+     \unexpanded
+       \setvalue{#2#1#3#4#5}{\xxdododefinefont
+         {#2#1#3#4#5}{#6}}%
+   \else
+     %\expanded{\writestatus{defining}{[\fontclass][#2#1#3#4#5] \resolvefontname#6 }}%
+     \global\letbeundefined{*\fontclass#2#1#3#4#5*}%
+     \ifresolvefontfile
+       \unexpanded
+         \setxvalue{\fontclass#2#1#3#4#5}{\noexpand\xxdododefinefont
+           {#2#1#3#4#5}{\resolvefontname#6 }}%
+     \else
+       \unexpanded
+         \setgvalue{\fontclass#2#1#3#4#5}{\xxdododefinefont
+           {#2#1#3#4#5}{#6}}%
+     \fi
+   \fi}
+
+\def\checkbodyfont#1#2#3#4% body style alternative size / global
+  {% beware: #4 can be empty
+   \unexpanded\setgvalue   {#2#4}{\setcurrentfontstylesize           {#2}{#4}}% \rma
+   \unexpanded\setgvalue   {#3#4}{\setcurrentfontalternativesize     {#3}{#4}}% \sla
+   \unexpanded\setgvalue {#2#3#4}{\setcurrentfontstylealternativesize{#2}{#3}{#4}}% \rmsla
+   \unexpanded\setgvalue     {#2}{\setcurrentfontstyle               {#2}}% \rm
+   \unexpanded\setgvalue     {#3}{\setcurrentfontalternative         {#3}}% \sl
+   \unexpanded\setgvalue {#2\c!x}{\setcurrentfontxstylealternative   {#3}}% \rmx
+   \unexpanded\setgvalue{#2\c!xx}{\setcurrentfontxxstylealternative  {#3}}% \rmxx
+   \unexpanded\setgvalue {#3\c!x}{\setcurrentfontxalternative        {#3}}% \slx
+   \unexpanded\setgvalue{#3\c!xx}{\setcurrentfontxxalternative       {#3}}% \slxx
+   \unexpanded\setgvalue   {#2#3}{\setcurrentfontstylealternative    {#2}{#3}}}% \rmsl
+
+\def\dodefinedefaultbodyfont[#1][#2][#3]% sizes styles identifier
+  {\def\dododefinedefaultbodyfont##1%
+     {\def\dodododefinedefaultbodyfont####1%
+        {\def\dododododefinedefaultbodyfont########1%
+           {\doifdefined{\s!default########1####1}
+              {% [12pt] [style] [identifier]
+               \getvalue{\s!default########1####1}{##1}{####1}}}%
+         \processcommalist[#3]\dododododefinedefaultbodyfont}%
+      \processcommalist[#2]\dodododefinedefaultbodyfont}%
+   \processcommalist[#1]\dododefinedefaultbodyfont}
 
 %D Unknown families are added to the family list! For the
 %D moment we also set the direct calls here. Some day a better
@@ -1560,7 +1792,7 @@
 
 \newif\ifdefiningunknownfont
 
-\def\defineunknownfont#1% 
+\def\defineunknownfont#1%
   {\let\c!savedtext=\c!text
    \let\c!text=\s!text
    \donefalse
@@ -1581,7 +1813,7 @@
      \def\defineunknownbodyfont##1%
        {\doifdefined{\s!default##1}{\donetrue\getvalue{\s!default##1}{#1}}}%
      \processcommacommand
-       [\stylelist,\c!mm]
+       [\stylelist]
        \defineunknownbodyfont
      \ifdone
        \setvalue{\@size@#1}{\docompletefontswitch[#1]}%
@@ -1602,16 +1834,12 @@
 %D Fonts are not loaded yet! This means that at format
 %D generation time, no font files are preloaded.
 
-% %D We could have use \type{\unexpanded\setvalue} instead of
-% %D the \type{\donottest} prefixes. However, this would lead to
-% %D about 600 extra entries in the hash table.
-
-%D A previous implementation used: 
-%D 
+%D A previous implementation used:
+%D
 %D \starttypen
 %D \type {\setvalue{name}{\donottest...}}
 %D \stoptypen
-%D 
+%D
 %D instead of the more memory hungry:
 %D
 %D \starttypen
@@ -1619,9 +1847,9 @@
 %D \stoptypen
 %D
 %D The first alternative saves about 500 hash entries (about
-%D 2.5\% of the total number of entries used. The second 
-%D alternative is currently used, because that one can more 
-%D easily be made \ETEX\ aware. 
+%D 2.5\% of the total number of entries used. The second
+%D alternative is currently used, because that one can more
+%D easily be made \ETEX\ aware.
 
 %D \macros
 %D   {everybodyfont,Everybodyfont}
@@ -1631,7 +1859,9 @@
 %D in other modules. Here we only provide the hooks that
 %D garantees their handling.
 
-\newevery \everybodyfont \Everybodyfont
+\ifx\everybodyfont\undefined % permits reloading
+  \newevery \everybodyfont \Everybodyfont
+\fi
 
 %D At the system level one can initialize thing like:
 %D
@@ -1691,7 +1921,7 @@
 %D often not the way users specify the bodyfont size. Therefore
 %D we also store the normalized value.
 
-\chardef\fontdigits=1 % 
+\chardef\fontdigits=1 %
 
 \def\donormalizedbodyfontsize#1.#2#3#4\to#5%
   {\edef#5%
@@ -1721,20 +1951,21 @@
 %D some day.
 
 %D \macros
-%D   {fontsize,fontstyle}
+%D   {fontstyle,fontalternative,fontsize}
 %D
 %D Within a bodyfont, fonts can come in different sizes. For
 %D instance \type{\tf} is accompanied by \type{\tfa},
-%D \type{\tfb} etc. The third character in these sequences
+%D \type{\tfb} etc. The first two characters denote the
+%D alternative, while the third character in these sequences
 %D represents the size. The actual size is saved in a macro
-
-\let\fontsize  = \empty
-
+%D
 %D The style, being roman (\type{\rm}), sans serif (\type{\ss})
 %D etc. is also available in a macro in \type{rm}, \type{ss}
 %D etc. form:
 
-\let\fontstyle = \empty
+\let\fontalternative = \c!tf
+\let\fontstyle       = \empty
+\let\fontsize        = \empty
 
 %D All things related to fonts are grouped into files with
 %D names like \type{font-cmr}. These files are loaded by:
@@ -1744,18 +1975,18 @@
 
 \newif\ifloadfontdefinitionfileonce
 
-\def\doreadfontdefinitionfile#1%
-  {\doifundefined{\c!file\f!fontprefix#1}%
+\def\doreadfontdefinitionfile#1#2% #1 = set/switch state 
+  {\doifundefined{\c!file\f!fontprefix#2}%
      {\ifloadfontdefinitionfileonce
-        \letvalue{\c!file\f!fontprefix#1}\empty
+        \letvalue{\c!file\f!fontprefix#2}\empty
       \fi
       \startreadingfile
-      \readsysfile{\truefilename{\f!fontprefix#1}}
-        {\showmessage{\m!fonts}{2}{#1}}
-        {\makeshortfilename[\truefilename{\f!fontprefix#1}]%
+      \readsysfile{\truefilename{\f!fontprefix#2}}
+        {\showmessage{\m!fonts}{2}{#2}}
+        {\makeshortfilename[\truefilename{\f!fontprefix#2}]%
          \readsysfile{\shortfilename}
-           {\showmessage{\m!fonts}{2}{#1}}
-           {\showmessage{\m!fonts}{3}{#1}}}%
+           {\showmessage{\m!fonts}{2}{#2}}
+           {\showmessage{\m!fonts}{3}{#2}}}%
       \stopreadingfile}}
 
 %D When \type {\loadfontdefinitionfiletrue}, such files are
@@ -1764,7 +1995,7 @@
 %D all kind of font, which of course is a kind of
 %D typographically sin. The \type{"} is made inactive if
 %D needed to prevent problems with loading files that use this
-%D character in numbers. 
+%D character in numbers.
 
 \def\doswitchpoints[#1]%
   {\expanded{\dodoswitchpoints{#1}}}
@@ -1776,14 +2007,15 @@
      {\getvalue{\@size@#1}%
       \localbodyfontsize=#1\relax
       \normalizebodyfontsize\localbodyfontsize\to\normalizedbodyfontsize
-      \the\everybodyfont}
+      }% \the\everybodyfont}
      {\showmessage{\m!fonts}{4}{#1}}}
 
-\def\doswitchstyle[#1]%
+\unprotected \def\doswitchstyle[#1]%
   {\doifdefinedelse{\@style@#1}
      {\getvalue{\@style@#1}%
       \edef\fontstyle{#1}%
-      \the\everybodyfont}  % cleaner, in setting size as well as style
+      \ifmmode\mr\fi % in order to be compatible with \rm in math mode
+      }% \the\everybodyfont}  % cleaner, in setting size as well as style
      {\showmessage{\m!fonts}{5}{#1}}}
 
 %D \TEX\ loads font metric files like \type{cmr10.tfm} and
@@ -1839,43 +2071,44 @@
 
 \def\preloadfonts%
   {\showmessage{\m!fonts}{6}{\normalizedbodyfontsize\normalspace\fontstyle}%
+   \global\loadingfontsfalse
    \doswitchpoints[\normalizedbodyfontsize]%
    \doswitchstyle[\fontstyle]%
-   \global\let\preloadfonts=\relax
-   \global\loadingfontsfalse}
+\the\everybodyfont
+   \global\let\preloadfonts=\relax}
 
 %D Here comes the main font switching macros. These macros
 %D handle changes in size as well as returning to the global
 %D bodyfont size.
 
-\def\dosetfont[#1]%
-  {\doifelse{#1}{\v!globaal}
+\def\dosetfont#1#2%  #1 = set/switch state 
+  {\doifelse{#2}{\v!globaal}
      {\restoreglobalbodyfont}
-     {\processcommalist[#1]\dodosetfont
+     {\processcommalist[#2]{\dodosetfont{#1}}% ##1 get also passed
       \ifloadingfonts\else
         \doswitchpoints[\normalizedbodyfontsize]%
         \doswitchstyle[\fontstyle]%
       \fi}%
    \chardef\currentxfontsize=0\relax}
 
-\def\dodosetfont#1%
-  {\dododosetfont{#1}{\showmessage{\m!fonts}{4}{#1}}}
+\def\dodosetfont#1#2%  #1 = set/switch state 
+  {\dododosetfont{#1}{#2}{\showmessage{\m!fonts}{4}{#2}}}
 
-\def\dododosetfont#1#2%
-  {\doifnumberelse{#1}
-     {\scratchdimen=#1\relax
+\def\dododosetfont#1#2#3% #1 = set/switch state 
+  {\doifnumberelse{#2}
+     {\scratchdimen=#2\relax
       \normalizebodyfontsize\scratchdimen\to\normalizedsetfont
       \doifundefined{\@size@\normalizedsetfont}
-        {\defineunknownfont{#1}}%
+        {\defineunknownfont{#2}}%
       \doifdefinedelse{\@size@\normalizedsetfont}
         {\localbodyfontsize=\normalizedsetfont
          \let\normalizedbodyfontsize=\normalizedsetfont}
-        {#2\dosetsubstitutefont{#1}}}
-     {\doifelse{#1}{\v!reset}
+        {#3\dosetsubstitutefont{#1}{#2}}}
+     {\doifelse{#2}{\v!reset}
         {\let\fontsize=\empty}
-        {\doifdefinedelse{\@style@#1}
-           {\edef\fontstyle{#1}}
-           {\doreadfontdefinitionfile{#1}}}}}
+        {\doifdefinedelse{\@style@#2}
+           {\edef\fontstyle{#2}}
+           {\doreadfontdefinitionfile{#1}{#2}}}}}
 
 %D In the previous macros we use \type{\currentxfontsize} to
 %D hold the current x||size of the font. This enables us to
@@ -1891,34 +2124,200 @@
 %D are more probable to occur. By taking a value slightly
 %D smaller than half a point, we can use the next method.
 
-\def\dosetsubstitutefont#1%
-  {\scratchdimen=#1\relax
+\def\dosetsubstitutefont#1#2% #1 = set/switch state 
+  {\scratchdimen=#2\relax
    \advance\scratchdimen by .499pt
    \dimensiontocount\scratchdimen\scratchcounter
    \advance\scratchcounter by -1
    \ifnum\scratchcounter>3
-     \dododosetfont{\the\scratchcounter pt}{}%
+     \dododosetfont{#1}{\the\scratchcounter pt}{}%
+   \fi}
+
+% The following bunch of macros deals with the (run time)
+% expansion of names onto the definitions made by \type
+% {\definebodyfont}.
+
+% \let\fontbody       \empty % ... 10pt 11pt 12pt ...
+% \let\fontstyle      \empty % rm ss tt mm hw cg ...
+% \let\fontalternative\empty % tf bf sl it bs bi sc ...
+% \let\fontsize       \empty % xy-abcd ...
+
+\def\fontbody{\normalizedbodyfontsize}
+
+\let\fontclass\empty \let\globalfontclass\fontclass
+
+\def\setcurrentfontclass#1%
+  {\edef\fontclass{#1}}
+
+\let\defaultfontbody        \!!twelvepoint
+\let\defaultfontstyle       \c!rm
+\let\defaultfontalternative \c!tf
+\let\defaultfontsize        \empty
+
+\def\dosetcurrentfontsize#1%
+  {\let\!!stringa\fontsize
+   \edef\fontsize{#1}%
+   \ifx\!!stringa\fontsize\else
+     \synchronizemath
+     \synchronizetext
+   \fi}
+
+\def\dosetcurrentfontalternative#1%
+  {\edef\fontalternative{#1}%
+   \ifmmode % maybe better no test 
+     \fam\csname\fontalternative\s!fam\endcsname
+   \fi}
+
+\def\setcurrentfont#1#2#3#4%
+  {%\message{[1 #1 #2 #3 #4]}%
+   \edef\fontbody{#1}%
+   \edef\fontstyle{#2}%
+   \dosetcurrentfontalternative{#3}%
+   \dosetcurrentfontsize{#4}%
+   \synchronizefont}
+
+\def\setcurrentfontbody#1%
+  {%\message{[2 #1]}%
+   \edef\fontbody{#1}%
+   \synchronizefont}
+
+\def\setcurrentfontstyle#1%
+  {%\message{[3 #1]}%
+   \edef\fontstyle{#1}%
+   \ifmmode\mr\fi % otherwise \rm not downward compatible 
+   \synchronizefont}
+
+\def\setcurrentfontbodyalternative#1#2%
+  {%\message{[4 #1 #2]}%
+   \edef\fontbody{#1}%
+   \dosetcurrentfontalternative{#2}%
+   \synchronizefont}
+
+\def\setcurrentfontalternative#1%
+  {%\message{[5 #1]}%
+   \dosetcurrentfontalternative{#1}%
+   \synchronizefont}
+
+\def\setcurrentfontsize#1%
+  {%\message{[6 #1]}%
+   \dosetcurrentfontsize{#1}%
+   \synchronizefont}
+
+\def\setcurrentfontstylealternative#1#2% \rmsl
+  {%\message{[7 #1 #2]}%
+   \edef\fontstyle{#1}%
+   \dosetcurrentfontalternative{#2}%
+   \synchronizefont}
+
+\def\setcurrentfontstylesize#1#2% \rmsl
+  {%\message{[8 #1 #2]}%
+   \edef\fontstyle{#1}%
+   \dosetcurrentfontsize{#2}%
+   \synchronizefont}
+
+\def\setcurrentfontalternativesize#1#2% \sla
+  {%\message{[9 #1 #2]}%
+   \dosetcurrentfontalternative{#1}%
+   \dosetcurrentfontsize{#2}%
+   \synchronizefont}
+
+\def\setcurrentfontstylealternativesize#1#2#3% \rmsla
+  {%\message{[10 #1 #2 #3]}%
+   \edef\fontstyle{#1}%
+   \dosetcurrentfontalternative{#2}%
+   \dosetcurrentfontsize{#3}%
+   \synchronizefont}
+
+%D In principle one can assign alternative fallback routines.
+%D Some day we will.
+
+\newtoks\fontstrategies
+
+\def\synchronizefont%
+  {\let\fontstrategy\dofontstrategy
+   \the\fontstrategies}
+
+\beginTEX
+
+\def\dofontstrategy#1#2#3#4#5#6%
+  {\expandafter\ifx\csname#2#3#4#5#6\endcsname\relax\else
+     #1\csname#2#3#4#5#6\endcsname
+     \let\fontstrategy\gobblesixarguments
+   \fi}
+
+\endTEX
+
+\beginETEX \ifcsname
+
+\def\dofontstrategy#1#2#3#4#5#6%
+  {\ifcsname#2#3#4#5#6\endcsname
+     #1\csname#2#3#4#5#6\endcsname
+     \let\fontstrategy\gobblesixarguments
    \fi}
 
-%D Next we're going to implement some switching macros we
-%D already used in when defining fonts. The first one takes
-%D care of the style and is used by commands like \type{\rma}.
+\endETEX
+
+% font class
+
+\appendtoks \fontstrategy \autofontsizefalse % --- --- --- --- % pt tt bf a
+  \fontclass \fontbody \fontstyle \fontalternative \fontsize
+\to \fontstrategies
+
+\appendtoks \fontstrategy \autofontsizetrue  % --- --- --- def % pt tt bf
+  \fontclass \fontbody \fontstyle \fontalternative \defaultfontsize
+\to \fontstrategies
+
+\appendtoks \fontstrategy \autofontsizetrue  % --- --- def --- % pt tt tf a
+  \fontclass \fontbody \fontstyle \defaultfontalternative \fontsize
+\to \fontstrategies
+
+\appendtoks \fontstrategy \autofontsizetrue  % --- --- def def % pt tt tf
+  \fontclass \fontbody \fontstyle \defaultfontalternative \defaultfontsize
+\to \fontstrategies
+
+\appendtoks \fontstrategy \autofontsizefalse % --- def def def % pt rm tf
+  \fontclass \fontbody \defaultfontstyle \defaultfontalternative \defaultfontsize
+\to \fontstrategies
+
+\appendtoks \fontstrategy \autofontsizetrue  % def def def def % rm tf
+  \fontclass \defaultfontbody \defaultfontstyle \defaultfontalternative \defaultfontsize
+\to \fontstrategies
+
+% no font class
+
+\appendtoks \fontstrategy \autofontsizefalse % --- --- --- --- % pt tt bf a
+  \empty \fontbody \fontstyle \fontalternative \fontsize
+\to \fontstrategies
+
+\appendtoks \fontstrategy \autofontsizetrue  % --- --- --- def % pt tt bf
+  \empty \fontbody \fontstyle \fontalternative \defaultfontsize
+\to \fontstrategies
+
+\appendtoks \fontstrategy \autofontsizetrue  % --- --- def --- % pt tt tf a
+  \empty \fontbody \fontstyle \defaultfontalternative \fontsize
+\to \fontstrategies
+
+\appendtoks \fontstrategy \autofontsizetrue  % --- --- def def % pt tt tf
+  \empty \fontbody \fontstyle \defaultfontalternative \defaultfontsize
+\to \fontstrategies
 
-\def\switchtofontstyle#1#2%
-  {\getvalue{#1}%
-   \getvalue{\c!tf#2}}
+\appendtoks \fontstrategy \autofontsizefalse % --- def def def % pt rm tf
+  \empty \fontbody \defaultfontstyle \defaultfontalternative \defaultfontsize
+\to \fontstrategies
 
-%D The second one is responsible for commands like \type{\bfa}
-%D and the third one handles the combined \type{\rmbfa}
-%D alternatives.
+\appendtoks \fontstrategy \autofontsizetrue  % def def def def % rm tf
+  \empty \defaultfontbody \defaultfontstyle \defaultfontalternative \defaultfontsize
+\to \fontstrategies
 
-\def\switchtofontalternative#1#2%
-  {\def\fontsize{#2}%
-   \setfontstyle{\fontstyle}{\fontstyle}%
-   \getvalue{#1}}
+%D Let's synchronize:
 
-\def\switchtofontstylealternative#1#2#3%
-  {\getvalue{\normalizedbodyfontsize#1#2#3}}
+\newif\ifsynchronizefonts \synchronizefontstrue
+
+\prependtoks
+  \ifsynchronizefonts
+    \synchronizemath \synchronizetext \synchronizefont
+  \fi
+\to \everybodyfont
 
 %D Setting the normal sized as well as the x and xx smaller
 %D sizes is accomplished by the next set of macros. When in
@@ -1927,35 +2326,44 @@
 %D in text mode the values defined by the bodyfontenvironment are
 %D used. Here we also set \type{\currentxfontsize}.
 
-\def\dosetsomextypeface#1%
-  {\doifdefinedelse{#1}
-     {\getvalue{#1}}
-     {\showmessage{\m!fonts}{7}{#1}}}%
+\beginTEX
 
-\def\dosetxtypeface#1%
-  {\chardef\currentxfontsize=1
+\def\dosetcurrentfontxxxalternative#1#2#3#4%
+  {\chardef\currentxfontsize=#2
    \ifmmode
-     \scriptstyle
-   \else
-     \dosetsomextypeface
-       {\getvalue{\??ft\normalizedbodyfontsize\c!x}%  % pt
-        \getvalue{\@shortstyle@\fontstyle}%           % rm
-        #1}%                                          % tf
-     \unexpanded\def\tx{\dosetxxtypeface{#1}}%
-   \fi}
+     #4%
+   \else\expandafter\ifx\csname\bodyfontvariable{\normalizedbodyfontsize#3}\endcsname\relax\else
+     \setcurrentfontbodyalternative{\bodyfontcsname\normalizedbodyfontsize#3\endcsname}{#1}%
+   \fi\fi}
+
+\endTEX
 
-\def\dosetxxtypeface#1%
-  {\chardef\currentxfontsize=2
+\beginETEX \ifcsname
+
+\def\dosetcurrentfontxxxalternative#1#2#3#4%
+  {\chardef\currentxfontsize=#2
    \ifmmode
-     \scriptscriptstyle
-   \else
-     \dosetsomextypeface
-       {\getvalue{\??ft\normalizedbodyfontsize\c!xx}%  % pt
-        \getvalue{\@shortstyle@\fontstyle}%            % rm
-        #1}%                                           % tf
-     \let\tx=\relax
-     \let\txx=\relax
-   \fi}
+     #4%
+   \else\ifcsname\bodyfontvariable{\normalizedbodyfontsize#3}\endcsname
+     \setcurrentfontbodyalternative{\bodyfontcsname\normalizedbodyfontsize#3\endcsname}{#1}%
+   \fi\fi}
+
+\endETEX
+
+\def\setcurrentfontxalternative#1%
+  {\dosetcurrentfontxxxalternative{#1}1\c!x\scriptstyle
+   \let\tx\txx}
+
+\def\setcurrentfontxxalternative#1%
+  {\dosetcurrentfontxxxalternative{#1}2\c!xx\scriptscriptstyle
+   \let\tx\empty
+   \let\txx\empty}
+
+% This alterative is not really needed, but for old time's sake
+% we keep it there. We can speed it up when needed. 
+
+\def\setcurrentfontxstylealternative #1{\getvalue{#1}\tfx}
+\def\setcurrentfontxxstylealternative#1{\getvalue{#1}\tfxx} 
 
 %D These macros also show us that when we call for \type{\tx},
 %D this macro is redefined to be \type{\txx}. Therefore calls
@@ -1982,133 +2390,8 @@
 %D takes a bit more time. Keep in mind that the fontsize is
 %D represented by a character or empty.
 
-\beginTEX
-
-\def\dosettextfont#1#2%  Watch the extra test!
-  {\unexpanded\setvalue{#1#2}%
-     {\csname\textface#1%
-        \@EA\ifx\csname\textface#1#2\fontsize\endcsname\relax
-          \@EA\ifx\csname\textface#1\c!tf\fontsize\endcsname\relax
-            #2%
-          \else
-            \c!tf\fontsize
-          \fi
-        \else
-          #2\fontsize
-        \fi
-      \endcsname}}
-
-\endTEX
-
-\beginETEX \ifcsname
-
-\def\dosettextfont#1#2%  Watch the extra test!
-  {\unexpanded\setvalue{#1#2}%
-     {\csname\textface#1%
-        \ifcsname\textface#1#2\fontsize\endcsname
-          #2\fontsize
-        \else\ifcsname\textface#1\c!tf\fontsize\endcsname
-          \c!tf\fontsize
-        \else
-          #2%
-        \fi\fi
-      \endcsname}}
-
-\endETEX
-
-\def\settextfont#1%
-  {\def\dowithfamily{\dosettextfont{#1}}\processfamilylist}
-
-\def\settextfonts%
-  {\rawprocesscommalist[\stylelist]\settextfont}
-
-%D All three sizes come together in the macro:
-
-\def\settypefaces#1#2%
-  {\unexpanded\setvalue{#2}%
-     {\dosettypeface{#1}{#2}}%
-   \unexpanded\setvalue{#2\c!x}%
-     {\dosetxtypeface{#2}}%
-   \unexpanded\setvalue{#2\c!xx}%
-     {\dosetxxtypeface{#2}}}%
-
-%D Earlier in this module we defined some \TEX\ families. Here
-%D we introduce the macros that are responsible for setting
-%D them. The first argument of the next macro takes the style
-%D in its short form (rm, ss, etc). The second argument is the
-%D alternative (tf, bf, etc).
-
-%D Before actually assigning the font to a family we activate
-%D it. This is needed because loading of fonts is postponed
-%D until the first time it's called for. This also forces us to
-%D set the text family after we've set the script ones, else
-%D the latter one would be in force after executing this macro.
-
-\def\settextfamily#1#2#3% 
-  {\scriptscriptfont\csname#3\s!fam\endcsname\scriptfont\csname#3\s!fam\endcsname
-   \dosettextfamily{#1}{#2}{#3}\scriptscriptfont\scriptscriptface
-   \scriptfont      \csname#3\s!fam\endcsname\textfont  \csname#3\s!fam\endcsname
-   \dosettextfamily{#1}{#2}{#3}\scriptfont\scriptface
-   \textfont        \csname#3\s!fam\endcsname\textfont  \tffam
-   \dosettextfamily{#1}{#2}{#3}\textfont\textface}
-
-\beginTEX
-
-\def\dosettextfamily#1#2#3#4#5%
-  {\@EA\ifx\csname#5\c!mm#2\endcsname\relax
-     \@EA\ifx\csname#5#1#2\endcsname\relax
-       \@EA\ifx\csname#5#1\c!tf\endcsname\relax
-        %\debuggerinfo{\m!fonts}{not defined #5#1#2}%
-       \else
-        %\debuggerinfo{\m!fonts}{#5#1#2 replaced by #5#1\c!tf}%
-         \csname#5#1\c!tf\endcsname% activate font
-         \@EA#4\csname#3\s!fam\endcsname\csname#5#1\c!tf\endcsname
-       \fi
-     \else
-      %\debuggerinfo{\m!fonts}{defined #5#1#2}%
-       \csname#5#1#2\endcsname% activate font
-       \@EA#4\csname#3\s!fam\endcsname\csname#5#1#2\endcsname
-     \fi
-   \else
-    %\debuggerinfo{\m!fonts}{#5#1#2 overruled by #5\c!mm#2}%
-     \csname#5\c!mm#2\endcsname % activate font
-     \@EA#4\csname#3\s!fam\endcsname\csname#5\c!mm#2\endcsname
-   \fi}
-
-\endTEX
-
-\beginETEX \ifcsname
-
-\def\dosettextfamily#1#2#3#4#5%
-  {\ifcsname#5\c!mm#2\endcsname
-    %\debuggerinfo{\m!fonts}{#5#1#2 overruled by #5\c!mm#2}%
-     \csname#5\c!mm#2\endcsname % activate font
-     \@EA#4\csname#3\s!fam\endcsname\csname#5\c!mm#2\endcsname
-   \else\ifcsname#5#1#2\endcsname
-    %\debuggerinfo{\m!fonts}{defined #5#1#2}%
-     \csname#5#1#2\endcsname% activate font
-     \@EA#4\csname#3\s!fam\endcsname\csname#5#1#2\endcsname
-   \else\ifcsname#5#1\c!tf\endcsname
-    %\debuggerinfo{\m!fonts}{#5#1#2 replaced by #5#1\c!tf}%
-     \csname#5#1\c!tf\endcsname% activate font
-     \@EA#4\csname#3\s!fam\endcsname\csname#5#1\c!tf\endcsname
-   \else
-    %\debuggerinfo{\m!fonts}{not defined #5#1#2}%
-   \fi\fi\fi}
-
-\endETEX
-
-%D The previous macro lets definitions like
-%D
-%D \starttypen
-%D \definebodyfont[10pt][mm][bf=cmbx10 at 10.25pt]
-%D \stoptypen
-%D
-%D take preference over
-%D
-%D \starttypen
-%D \definebodyfont[10pt][mm][bf=cmbx10 at 10pt]
-%D \stoptypen
+\unexpanded\def\tx {\setcurrentfontxalternative \fontalternative}
+\unexpanded\def\txx{\setcurrentfontxxalternative\fontalternative}
 
 %D \macros
 %D   {definefontstyle}
@@ -2128,11 +2411,7 @@
      {}%\debuggerinfo{\m!fonts}{unknown style #2}}
      {\addtocommalist{#2}\stylelist
       \showmessage{\m!fonts}{8}{#2 (#1)}}%
-   \unexpanded\setvalue{#2}{\setfontstyle{#2}{#2}}%
-   \setvalue{#2\c!x}%
-     {\getvalue{#2}\getvalue{\c!tf\c!x}}%
-   \setvalue{#2\c!xx}%
-     {\getvalue{#2}\getvalue{\c!tf\c!xx}}%
+   % check kan hier
    \def\docommando##1%
      {\setvalue{\@shortstyle@##1}{#2}%
       \setvalue{\@style@##1}{\getvalue{#2}}}%
@@ -2141,148 +2420,16 @@
 \def\definefontstyle%
   {\dodoubleargument\dodefinefontstyle}
 
-%D CHECKEN WAT \type{\fontstyle} HIER DOET
-
 \def\setfontstyle#1#2%  #1:name (roman, romaan)  #2:style (rm)
   {\edef\fontstyle{#1}%
-   \def\dowithfamily{\dosetfontstyle{#2}}\processfamilylist
-   \unexpanded\def\tx{\tfx}%
-   \fam\tffam
-   \tf}
-
-\beginTEX
-
-\def\dosetfontstyle#1#2%
-  {\@EA\ifx\csname#2\s!fam\endcsname\relax
-     \settextfamily{#1}{#2}{\c!nn}%
-   \else
-     \settextfamily{#1}{#2}{#2}%
-   \fi
-   \settypefaces{#1}{#2}}
-
-\endTEX
-
-\beginETEX \ifcsname
-
-\def\dosetfontstyle#1#2%
-  {\ifcsname#2\s!fam\endcsname
-     \settextfamily{#1}{#2}{#2}%
-   \else
-     \settextfamily{#1}{#2}{\c!nn}%
-   \fi
-   \settypefaces{#1}{#2}}
+   \setcurrentfontstyle{\normalizedbodyfontsize}}
 
-\endETEX
-
-%D Setting the math families looks much like setting the texts
-%D ones. This time however we use the 12 point font as a
-%D default when nothing is defined. This enables us to
-%D implement partial schemes. Here we also set the
-%D \type{\skewchar}, which takes care of accents in math mode
-%D (actually it's the largest accent). The first family needs a
-%D bit different treatment because it can be set to the default
-%D roman as well as a user defined font.
-
-\def\setmathfamilies%
-  {\setskewchar{\textface\c!mm\c!mi}{'177}%
-   \setskewchar{\textface\c!mm\c!sy}{'60}%
-   \setmathfamily\mrfam\textface\scriptface\scriptscriptface{\c!mm\c!mr}{\c!rm\c!tf}%
-   \setmathfamily\mifam\textface\scriptface\scriptscriptface{\c!mm\c!mi}{}%
-   \setmathfamily\syfam\textface\scriptface\scriptscriptface{\c!mm\c!sy}{}%
-   \setmathfamily\exfam\textface\textface  \textface        {\c!mm\c!ex}{}%
-   \setmathfamily\mafam\textface\scriptface\scriptscriptface{\c!mm\c!ma}{}%
-   \setmathfamily\mbfam\textface\scriptface\scriptscriptface{\c!mm\c!mb}{}%
-   \setmathfamily\mcfam\textface\scriptface\scriptscriptface{\c!mm\c!mc}{}}
-
-%D Optionally skew characters can be set on a per font basis,
-%D like:
-%D
-%D \starttypen
-%D \definebodyfont
-%D   [12pt] [mm]
-%D   [mi=cmmi10,sy=cmsy10,syskewchar='50]
-%D \stoptypen
-%D
-%D When setting the \type{\skewchar} we need to test on the
-%D availability first.
-
-\beginTEX
-
-\def\setskewchar#1#2%
-  {\@EA\ifx\csname#1\endcsname\relax\else
-     \csname#1\endcsname
-     \@EA\ifx\csname\??ft#1\s!skewchar\endcsname\relax
-       \skewchar\csname#1\endcsname#2\relax
-     \else
-       \skewchar\csname#1\endcsname\csname\??ft#1\s!skewchar\endcsname\relax
-     \fi
-   \fi}
-
-\endTEX
-
-\beginETEX \ifcsname
-
-\def\setskewchar#1#2%
-  {\ifcsname#1\endcsname
-     \csname#1\endcsname
-     \ifcsname\??ft#1\s!skewchar\endcsname
-       \skewchar\csname#1\endcsname\csname\??ft#1\s!skewchar\endcsname\relax
-     \else
-       \skewchar\csname#1\endcsname#2\relax
-     \fi
-   \fi}
-
-\endETEX
-
-%D First we try to set the font at the math specific one (the
-%D fifth argment), next we take the alternative the last
-%D argument, which of often empty, and finally we default to
-%D the 12 point alternative.
-
-\def\setmathfamily#1#2#3#4#5#6% er kunnen veel {} weg 
-  {\dosetmathfamily\scriptscriptfont{#4}{#1}{#5}{#6}%
-   \dosetmathfamily\scriptfont      {#3}{#1}{#5}{#6}%
-   \dosetmathfamily\textfont        {#2}{#1}{#5}{#6}}
-
-\beginTEX
+\chardef\defaultskewcharmi='177
+\chardef\defaultskewcharsy='60
 
-\def\dosetmathfamily#1#2#3#4#5%
-  {\@EA\ifx\csname#2#4\endcsname\relax
-      \@EA\ifx\csname#2#5\endcsname\relax
-         \@EA\ifx\csname\!!twelvepoint#4\endcsname\relax
-           #1#3\nullfont
-         \else
-           \csname\!!twelvepoint#4\endcsname
-           #1#3\csname\!!twelvepoint#4\endcsname\relax
-         \fi
-      \else
-        \csname#2#5\endcsname
-        #1#3\csname#2#5\endcsname\relax
-      \fi
-   \else
-     \csname#2#4\endcsname
-     #1#3\csname#2#4\endcsname\relax
-   \fi}
-
-\endTEX
-
-\beginETEX \ifcsname
-
-\def\dosetmathfamily#1#2#3#4#5%
-  {\ifcsname#2#4\endcsname
-     \csname#2#4\endcsname
-     #1#3\csname#2#4\endcsname\relax
-   \else\ifcsname#2#5\endcsname
-     \csname#2#5\endcsname
-     #1#3\csname#2#5\endcsname\relax
-   \else\ifcsname\!!twelvepoint#4\endcsname
-     \csname\!!twelvepoint#4\endcsname
-     #1#3\csname\!!twelvepoint#4\endcsname\relax
-   \else
-     #1#3\nullfont
-   \fi\fi\fi}
-
-\endETEX
+\def\dosetskewchar#1%
+  {\skewchar\font=\ifundefined{\purefontname\font\s!skewchar}%
+     #1\else\csname\purefontname\font\s!skewchar\endcsname\fi}
 
 %D The previous macros show that it's is not always
 %D neccessary to define the whole bunch of fonts, take for
@@ -2315,17 +2462,19 @@
 %D default typeface and also set the font specific parameters
 %D assigned to \type{\everybodyfont}
 
+\def\dosetbodyfontface#1#2%
+  {\edef#1{\bodyfontcsname\normalizedbodyfontsize#2\endcsname}}
+
 \def\docompletefontswitch[#1]%
   {\bodyfontsize=#1\relax
    \dimensiontocount\bodyfontsize\bodyfontpoints
    \edef\bodyfontfactor{\withoutpt\the\bodyfontsize}%
    \normalizebodyfontsize\bodyfontsize\to\normalizedbodyfontsize
-   \edef\textface{\getvalue{\??ft\normalizedbodyfontsize\s!text}}%
-   \edef\scriptface{\getvalue{\??ft\normalizedbodyfontsize\s!script}}%
-   \edef\scriptscriptface{\getvalue{\??ft\normalizedbodyfontsize\s!scriptscript}}%
-   \settextfonts
-   \setmathfamilies
-   \rmtf} % no \everybodyfont needed here, so removed  
+   \dosetbodyfontface \textface         \s!text
+   \dosetbodyfontface \scriptface       \s!script
+   \dosetbodyfontface \scriptscriptface \s!scriptscript}
+
+\docompletefontswitch[12pt] % init
 
 %D \macros
 %D   {setupbodyfont,switchtobodyfont}
@@ -2353,6 +2502,8 @@
 %D Both macros look alike. The second one also has to take
 %D all kind of keywords into account.
 
+\chardef\bodyfontsetstate=0
+
 \definecomplexorsimple\setupbodyfont
 
 \def\simplesetupbodyfont%
@@ -2360,67 +2511,114 @@
 
 \def\complexsetupbodyfont[#1]%
   {\doifsomething{#1}
-     {\dosetfont[#1]%
+     {\dosetfont1{#1}%
       \globalbodyfontsize=\localbodyfontsize
-      \normalizebodyfontsize\globalbodyfontsize\to\normalizedglobalbodyfontize
+      \normalizebodyfontsize\globalbodyfontsize\to\normalizedglobalbodyfontsize
       \let\globalfontstyle=\fontstyle
-      \the\everybodyfont}} % indeed needed in case \dosetfont is not executed
+\ifloadingfonts\else
+      \the\everybodyfont
+ \fi }} % indeed needed in case \dosetfont is not executed
 
-\unexpanded\def\switchtobodyfont[#1]% 
+\unexpanded\def\switchtobodyfont[#1]%
   {\doifsomething{#1}
      {\doifdefinedelse{\??ft\normalizedbodyfontsize\interfaced{#1}}
         {\doswitchpoints[\getvalue{\??ft\normalizedbodyfontsize\interfaced{#1}}]%
          \doswitchstyle[\fontstyle]}
-        {\dosetfont[#1]}%
+        {\dosetfont0{#1}}%
       \the\everybodyfont}} % indeed needed in case nothing is executed
 
 %D Because the last macro can appear in arguments or be assigned
 %D to parameters, we protect this one for unwanted expansion.
 
 \def\dodosetmathfont#1%
-  {\doifdefinedelse{#1\s!fam} % adapted
-     {\edef\mffam{\getvalue{#1\s!fam}}}
-     {\edef\mffam{\getvalue{\c!nn\s!fam}}}%
+  {\setcurrentfontalternative{#1}%
+  % \doifdefinedelse{#1\s!fam} % adapted
+  %   {\edef\mffam{\getvalue{#1\s!fam}}}
+  %   {\edef\mffam{\getvalue{\c!nn\s!fam}}}%
    \textfont        \mrfam=\textfont        \mffam
    \scriptfont      \mrfam=\scriptfont      \mffam
    \scriptscriptfont\mrfam=\scriptscriptfont\mffam}
 
-\def\dosetmathfont%
-  {\def\rm{\fam0}\dodosetmathfont}
+\def\domffam#1%
+  {\csname\ifundefined{#1\s!fam}\c!nn\else#1\fi\s!fam\endcsname}
 
-\let\fontalternative=\c!tf
+\def\mffam%
+  {\domffam\fontalternative}
 
-%D Watch the encoding: the first settings are there for
-%D upward compatibility reasons, the second one is the new,
-%D font synonym related setting.
+\def\dosetmathfont%
+  {\def\rm{\fam\mrfam}\dodosetmathfont}
 
-\def\dosettypeface#1#2%
-  {\doifdefinedelse{@\normalizedbodyfontsize#1#2@} % the definition bound one
-     {\enablecoding[\getvalue{@\normalizedbodyfontsize#1#2@}]}
-     {\enablecoding[\s!default]}%
-   \edef\fontalternative{#2}%
-   \unexpanded\def\tx%
-     {\dosetxtypeface{#2\fontsize}}%
-   \unexpanded\def\txx%
-     {\dosetxxtypeface{#2\fontsize}}%
-   \doifdefinedelse{#2\s!fam} % adapted
-     {\expandafter\fam\getvalue{#2\s!fam}}
-     {\expandafter\fam\getvalue{\c!nn\s!fam}}%
-   \getvalue{#1#2}%
-   \ifcase\currentxfontsize\or\tx\or\txx\fi
-   \setfontcharacteristics}
-
-%D The font specific features are bound to the filename. 
+%D The font specific features are bound to the filename.
+
+% This can be made faster by testing for a mapping change
+% here, but there is only a reason for doing that for mixed
+% cases.
 
 \def\setfontcharacteristics%
-  {\doifdefined{\purefontname\font\s!handling} % the file bound one
+  {\doifdefinedelse{\purefontname\font\s!handling} % the file bound one
      {\enablehandling[\getvalue{\purefontname\font\s!handling}]}%
-   \doifdefined{\purefontname\font\s!encoding} % the file bound one
+     {\enablehandling[\s!default]}%
+   \doifdefinedelse{\purefontname\font\s!encoding} % the file bound one
      {\enablecoding[\getvalue{\purefontname\font\s!encoding}]}%
+     {\enablecoding[\s!default]}%
    \doifdefinedelse{\purefontname\font\s!mapping} % the file bound one
      {\enablemapping[\getvalue{\purefontname\font\s!mapping}]}%
-     {\doifdefined{\purefontname\font\s!encoding} 
-        {\enablemapping[\getvalue{\purefontname\font\s!encoding}]}}}
+     {\doifdefinedelse{\purefontname\font\s!encoding}
+        {\enablemapping[\getvalue{\purefontname\font\s!encoding}]}
+        {\enablemapping[\s!default]}}}
+
+\beginTEX 
+
+\def\setfontcharacteristics%
+  {\enablehandling
+     [\@EA\ifx\csname\purefontname\font\s!handling\endcsname\relax % the file bound one
+        \s!default
+      \else
+        \csname\purefontname\font\s!handling\endcsname
+      \fi]%
+   \enablecoding
+     [\@EA\ifx\csname\purefontname\font\s!encoding\endcsname\relax % the file bound one
+        \s!default
+      \else
+        \csname\purefontname\font\s!encoding\endcsname
+      \fi]%
+   \enablemapping
+     [\@EA\ifx\csname\purefontname\font\s!mapping\endcsname\relax % the file bound one
+      \@EA\ifx\csname\purefontname\font\s!encoding\endcsname\relax
+        \s!default
+      \else
+        \csname\purefontname\font\s!encoding\endcsname
+      \fi\else
+        \csname\purefontname\font\s!mapping\endcsname
+      \fi]}
+
+\endTEX
+
+\beginETEX \ifcsname
+
+\def\setfontcharacteristics%
+  {\enablehandling
+     [\ifcsname\purefontname\font\s!handling\endcsname % the file bound one
+        \csname\purefontname\font\s!handling\endcsname
+      \else
+        \s!default
+      \fi]%
+   \enablecoding
+     [\ifcsname\purefontname\font\s!encoding\endcsname % the file bound one
+        \csname\purefontname\font\s!encoding\endcsname
+      \else
+        \s!default
+      \fi]%
+   \enablemapping
+     [\ifcsname\purefontname\font\s!mapping\endcsname % the file bound one
+        \csname\purefontname\font\s!mapping\endcsname
+      \else\ifcsname\purefontname\font\s!encoding\endcsname
+        \csname\purefontname\font\s!encoding\endcsname
+      \else
+        \s!default
+      \fi\fi]}
+
+\endETEX
 
 %D The next auxilliary macro is an alternative to \type
 %D {\fontname}.
@@ -2433,8 +2631,8 @@
 %D \macros
 %D   {switchstyleonly}
 %D
-%D For switching a style but keeping the alternative, there 
-%D is: 
+%D For switching a style but keeping the alternative, there
+%D is:
 %D
 %D \starttypen
 %D {\bf text \switchstyleonly\ss text}
@@ -2442,23 +2640,14 @@
 %D {\sl text \switchstyleonly[sansserif]text}
 %D \stoptypen
 
-% \def\switchstyleonly#1% original takes \ss and {ss}
-%   {\let\savedfontalternative=\fontalternative
-%    \chardef\savedescapechar=\escapechar
-%    \escapechar=-1
-%    \getvalue{\string#1}%  
-%    \escapechar=\savedescapechar
-%    \getvalue{\savedfontalternative}}
-
-\definecomplexorsimple\switchstyleonly % final version 
+\definecomplexorsimple\switchstyleonly
 
-\def\simpleswitchstyleonly#1%
-  {\complexswitchstyleonly[\strippedcsname#1]} 
+\def\simpleswitchstyleonly#1% stupid version
+  {\complexswitchstyleonly[\strippedcsname#1]}
 
-\def\complexswitchstyleonly[#1]% 
-  {\let\savedfontalternative=\fontalternative
-   \getvalue{\getvalue{\@shortstyle@#1}}%
-   \getvalue{\savedfontalternative}}
+\def\complexswitchstyleonly[#1]% todo : check
+  {\setcurrentfontstyle{\getvalue{\@shortstyle@#1}}%
+   \the\everybodyfont} % needed ? 
 
 %D \macros
 %D   {os}
@@ -2467,10 +2656,7 @@
 %D like {\os 1234567890} instead of the more common looking
 %D 1234567890.
 
-% \unexpanded\def\os%
-%   {\getvalue{\normalizedbodyfontsize\c!mm\c!mi}}
-
-\definefont[os][OldStyle sa \currentfontscale]
+\definefont[os][OldStyle sa *] % \currentfontscale]
 
 \definefontsynonym[OldStyle][Serif]
 
@@ -2478,11 +2664,11 @@
 %D   {frak, goth, cal}
 %D
 %D On behalf of {\frac Tobias Burnus}, we define some more of
-%D these: 
+%D these:
 
-\definefont [frak] [Fraktur      sa \currentfontscale]
-\definefont [goth] [Gothic       sa \currentfontscale]
-\definefont [cal]  [Calligraphic sa \currentfontscale]
+\definefont [frak] [Fraktur      sa *] % \currentfontscale]
+\definefont [goth] [Gothic       sa *] % \currentfontscale]
+\definefont [cal]  [Calligraphic sa *] % \currentfontscale]
 
 \definefontsynonym [Fraktur]      [Serif]
 \definefontsynonym [Gothic]       [Serif]
@@ -2530,17 +2716,23 @@
 %D The three alternatives can be activated by the next three
 %D system calls and are defined by the bodyfontenvironment.
 
-\def\setsmallbodyfont%
-  {\doswitchpoints[\getvalue{\??ft\normalizedbodyfontsize\interfaced\v!klein}]%
-   \doswitchstyle[\fontstyle]}
+\let\fontstep\empty
+
+\def\setbodyfontstep#1%
+  {\edef\fontstep{\bodyfontcsname\normalizedbodyfontsize\interfaced#1\endcsname}%
+   \doswitchpoints[\fontstep]%
+   \doswitchstyle[\fontstyle]%
+\the\everybodyfont
+}
 
-\def\setbigbodyfont%
-  {\doswitchpoints[\getvalue{\??ft\normalizedbodyfontsize\interfaced\v!groot}]%
-   \doswitchstyle[\fontstyle]}
+\def\setsmallbodyfont{\setbodyfontstep\v!klein}
+\def\setbigbodyfont  {\setbodyfontstep\v!groot}
 
 \def\setmainbodyfont%
   {\doswitchpoints[\normalizedbodyfontsize]%
-   \doswitchstyle[\fontstyle]}
+   \doswitchstyle[\fontstyle]%
+\the\everybodyfont
+}
 
 %D \macros
 %D   {restoreglobalbodyfont}
@@ -2550,12 +2742,15 @@
 %D in the main bodyfont and style of the document. Returning to
 %D the global state can be done with the next macro:
 
+\let\mainfontclass\empty
+
 \def\restoreglobalbodyfont%
   {\let\fontsize=\empty
-   \doswitchpoints[\normalizedglobalbodyfontize]%
+   \let\fontclass\globalfontclass
    \doswitchstyle[\globalfontstyle]%
+   \doswitchpoints[\normalizedglobalbodyfontsize]%
    \redoconvertfont % just in case a pagebreak occurs
-   \tf}
+   \tf \the\everybodyfont}
 
 %D This macro has to be called when entering the pagebody
 %D handling routine as well as the footnote insert routine.
@@ -2573,8 +2768,7 @@
 %D (a rather small period indeed), the same as \PICTEX\ uses
 %D for drawing purposes.
 
-\def\rasterfont%
-  {\getvalue{\!!fivepoint\c!rm\c!tf}}
+\definefont [rasterfont] [Serif at 5pt]
 
 %D \macros
 %D   {infofont}
@@ -2584,8 +2778,12 @@
 %D don't want huge switches to the main bodyfont and style, so
 %D here too we use a direct method.
 
-\def\infofont%
-  {\getvalue{\!!sixpoint\c!tt\c!tf}\the\everybodyfont}
+% old mechanism
+%
+% \def\infofont%
+%   {\getvalue{\!!sixpoint\c!tt\c!tf}\the\everybodyfont}
+
+\definefont [infofont] [Mono at 6pt] % todo \the\everybodyfont
 
 %D \macros
 %D   {definealternativestyle}
@@ -2727,18 +2925,19 @@
 \def\emphasistypeface {\sl}
 \def\emphasisboldface {\bs}
 
-%D or even better: 
+%D or even better:
 
-\def\emphasistypeface%
-  {\doifelsevalue{\??ft\normalizedbodyfontsize\c!em}{\v!schuin}{\sl}
-     {\doifvalue{\??ft\normalizedbodyfontsize\c!em}{\v!italic}{\it}}}
+\def\doemphasistypeface#1#2%
+  {\doifelsevalue      {\??ft\fontclass\normalizedbodyfontsize\c!em}{\v!schuin}{#1}
+     {\doifelsevalue   {\??ft\fontclass\normalizedbodyfontsize\c!em}{\v!italic}{#2}
+        {\doifelsevalue{\??ft          \normalizedbodyfontsize\c!em}{\v!schuin}{#1}
+           {\doifvalue {\??ft          \normalizedbodyfontsize\c!em}{\v!italic}{#2}}}}}
 
-\def\emphasisboldface%
-  {\doifelsevalue{\??ft\normalizedbodyfontsize\c!em}{\v!schuin}{\bs}
-     {\doifvalue{\??ft\normalizedbodyfontsize\c!em}{\v!italic}{\bi}}}
+\def\emphasistypeface{\doemphasistypeface\sl\it}
+\def\emphasisboldface{\doemphasistypeface\bs\bi}
 
-%D To be set with the default body font environment: \type 
-%D {em} being \type {slanted} or \type {italic}. 
+%D To be set with the default body font environment: \type
+%D {em} being \type {slanted} or \type {italic}.
 
 \newconditional\emneeded
 
@@ -2749,7 +2948,7 @@
    \else
      \setfalse\emneeded
    \fi
-   \setemphasisboldface % new 
+   \setemphasisboldface % new
    \ifnum\fam=\itfam
      \def\emphasistypeface{\it}\tf
    \else\ifnum\fam=\slfam
@@ -2769,7 +2968,7 @@
    \fi
    \emphasiscorrection}
 
-%D The next feature was not present in previous versions. It 
+%D The next feature was not present in previous versions. It
 %D takes are of \type {\em \bf ...} sitiations.
 
 \def\setemphasisboldface%
@@ -2796,19 +2995,6 @@
      \expandafter\emphasislook
    \fi}
 
-% \def\emphasislook%
-%   {\begingroup
-%    \futurelet\next\emphasistest}
-% 
-% \def\emphasistest%
-%   {\ifcat\noexpand\next,%
-%      \setbox\scratchbox=\hbox{\next}%
-%      \ifdim\ht\scratchbox<.3ex
-%        \let\doemphasiscorrection\endgroup
-%      \fi
-%    \fi
-%    \doemphasiscorrection}
-
 \def\emphasislook%
   {\begingroup
    \beginrobusttest
@@ -2819,7 +3005,7 @@
      \endrobusttest\expandafter\doemphasiscorrection
    \normalelse
      \endrobusttest\expandafter\dododoemphasiscorrection
-   \normalfi} 
+   \normalfi}
 
 \def\doemphasiscorrection%
   {\futurelet\next\dodoemphasiscorrection}
@@ -2870,11 +3056,11 @@
 %D \stopopelkaar
 %D \stopvoorbeeld
 
-%D \macros 
+%D \macros
 %D   {emphbf,emphit,emphsl,emphtf}
 %D
-%D The next emphasis alternatives are for \THANH. They adapt 
-%D their style as good as possible. 
+%D The next emphasis alternatives are for \THANH. They adapt
+%D their style as good as possible.
 
 \def\emphbf%
   {\groupedcommand{\bf\def\emphit{\bi}\def\emphsl{\bs}}{}}
@@ -2889,7 +3075,7 @@
   {\groupedcommand{\tf\def\emphbf{\bf}\def\emphit{\it}\def\emphsl{\sl}}{}}
 
 %D \startbuffer
-%D TEXT {\emphbf text \emphit text  \emphtf text  \emphsl text}  TEXT 
+%D TEXT {\emphbf text \emphit text  \emphtf text  \emphsl text}  TEXT
 %D TEXT  \emphbf{text \emphit{text} \emphtf{text} \emphsl{text}} TEXT
 %D \stopbuffer
 %D
@@ -2933,52 +3119,7 @@
 %D The implementation is rather straightforward in using
 %D \type{\halign}.
 
-\def\doshowbodyfont[#1]%
-  {\startbaselinecorrection
-   \vbox
-     {\def\doreadfontdefinitionfile##1% geen test op geladen 
-        {\makeshortfilename[\f!fontprefix\truefontname{##1}]%
-         \startreadingfile
-         \readsysfile{\shortfilename}{}{}%
-         \stopreadingfile}%
-      \def\bigstrut##1##2% 
-        {\hbox{\vrule
-           \!!height ##1\ht\strutbox
-           \!!depth  ##2\dp\strutbox
-           \!!width  \!!zeropoint}}
-      \doifelsenothing{#1}
-        {\def\title{\the\korpsgrootte}}
-        {\switchtobodyfont[#1]\def\title{#1}}
-      \tabskip\!!zeropoint
-      \parindent\!!zeropoint
-      \def\next##1##2##3%
-        {&&##1&&##2\tf##3&&##2\sc##3%
-         &&##2\sl##3&&##2\it##3&&##2\bf##3&&##2\bs##3&&##2\bi##3%
-         &&##2\tfx##3&&##2\tfxx##3%
-         &&##2\tfa##3&&##2\tfb##3&&##2\tfc##3&&##2\tfd##3&\cr}%
-      \setlocalhsize
-      \halign to \localhsize
-        {\bigstrut{1.5}{2}##&\vrule##
-         \tabskip=\!!zeropoint \!!plus 1fill
-         &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
-         &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
-         &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
-         &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
-         &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
-         &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
-         &\hfil##\hfil&\vrule##&\hfil##\hfil&##\vrule
-         \tabskip=\!!zeropoint\cr
-         \noalign{\hrule}
-         &\multispan{29}{\vrule\hfil\tttf\strut[\title]\hfil\vrule}\cr
-         \noalign{\hrule}\next{}{\tt\string}{}
-         \noalign{\hrule}\next{\tt\string\rm}{\rm}{Ag}
-         \noalign{\hrule}\next{\tt\string\ss}{\ss}{Ag}
-         \noalign{\hrule}\next{\tt\string\tt}{\tt}{Ag}
-         \noalign{\hrule}}}
-   \stopbaselinecorrection}
-
-\def\showbodyfont%
-  {\dosingleempty\doshowbodyfont}
+\fetchruntimecommand \showbodyfont {\f!fontprefix\s!run}
 
 %D \macros
 %D   {showbodyfontenvironment}
@@ -2991,42 +3132,29 @@
 %D
 %D \showsetup{\y!showbodyfontenvironment}
 
-\def\showbodyfontenvironment%
-  {\dosingleempty\doshowbodyfontenvironment}
-
-\def\doshowbodyfontenvironment[#1]%
-  {\startbaselinecorrection
-   \vbox
-     {\tabskip\!!zeropoint
-      \parindent\!!zeropoint
-      \doifelsenothing{#1}
-        {\def\title{\the\korpsgrootte}}
-        {\switchtobodyfont[#1]\def\title{#1}}
-      \def\next##1%
-        {&&\getvalue{\??ft##1\s!text}%                
-         &&\getvalue{\??ft##1\s!script}%              
-         &&\getvalue{\??ft##1\s!scriptscript}%        
-         &&\getvalue{\??ft##1\c!x}%                  
-         &&\getvalue{\??ft##1\c!xx}%                  
-         &&\getvalue{\??ft##1\interfaced{\v!klein}}%
-         &&\getvalue{\??ft##1\interfaced{\v!groot}}&\cr
-         \noalign{\hrule}}
-      \setlocalhsize
-      \halign to \localhsize
-        {##&\vrule##\strut
-         \tabskip=\!!zeropoint \!!plus 1fill
-         &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
-         &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
-         &\hfil##\hfil&##\vrule
-         \tabskip=\!!zeropoint\cr
-         \noalign{\hrule}
-         &\multispan{15}{\vrule\hfil\tttf\strut[\title]\hfil}\vrule\cr
-         \noalign{\hrule}
-         &&\bf\s!text&&\bf\s!script&&\bf\s!scriptscript
-         &&\bf\c!x&&\bf\c!xx&&\bf\v!klein&&\bf\v!groot&\cr
-         \noalign{\hrule}
-         \@EA\globalprocesscommalist\@EA[\bodyfontenvironmentlist]\next}}
-   \stopbaselinecorrection}
+\fetchruntimecommand \showbodyfontenvironment {\f!fontprefix\s!run}
+
+%D \macros
+%D   {showfont,showfontstyle}
+%D
+%D The following command generates a fontmap:
+%D
+%D \startbuffer
+%D \showfont[SansBold at 12pt]
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D Below the table the name, encoding, mapping and handling are
+%D shown. Special characters like the \type {\skewchar} and
+%D \type {\hyphenchar} als marked.
+%D
+%D \haalbuffer
+
+% to be internationalized
+
+\fetchruntimecommand \showfont      {\f!fontprefix\s!run}
+\fetchruntimecommand \showfontstyle {\f!fontprefix\s!run}
 
 %D \macros
 %D   {getglyph}
@@ -3037,20 +3165,9 @@
 %D \getglyph{fontname}{character}
 %D \stoptypen
 %D
-%D This macro is used in for instance the symbol modules and 
-%D as one can see, it does obey the small and even smaller 
-%D sizes. 
-
-% \def\getglyph#1#2%
-%   {{\ifcase\currentxfontsize\or
-%       \bodyfontsize=\getvalue{\??ft\normalizedbodyfontsize\c!x}% 
-%     \else
-%       \bodyfontsize=\getvalue{\??ft\normalizedbodyfontsize\c!xx}% 
-%     \fi
-%     \font\temp=\truefontname{#1} at \bodyfontsize \temp#2\relax}}
-
-% \def\getglyph#1#2%
-%   {{\definefont[\s!dummy][#1 sa \currentfontscale]\dummy#2}}
+%D This macro is used in for instance the symbol modules and
+%D as one can see, it does obey the small and even smaller
+%D sizes.
 
 \def\fontstringA%
   {\ifx\fontstyle\c!rm     \s!Serif \else
@@ -3106,12 +3223,13 @@
 
 \endTEX
 
-\def\getglyph#1#2% 
-  {{\definefont[\s!dummy][\glyphfontfile{#1} sa \currentfontscale]\dummy#2}}
+\def\getglyph#1#2%
+ %{{\definefont[\s!dummy][\glyphfontfile{#1} sa \currentfontscale]\dummy#2}}
+  {{\definefont[\s!dummy][\glyphfontfile{#1} sa *]\dummy#2}}
 
-%D The last implementation of \type {\getglyph} permits 
-%D definitions like: 
-%D 
+%D The last implementation of \type {\getglyph} permits
+%D definitions like:
+%D
 %D \starttypen
 %D \definefontsynonym [EuroSans]            [eurose]
 %D \definefontsynonym [EuroSansBold]        [euroseb]
@@ -3119,20 +3237,20 @@
 %D \definefontsynonym [EuroSansSlanted]     [eurosei]
 %D \definefontsynonym [EuroSansBoldItalic]  [eurosebi]
 %D \definefontsynonym [EuroSansBoldSlanted] [eurosebi]
-%D 
+%D
 %D \definesymbol [euro] [\getglyph{Euro}{\char160}]
-%D 
+%D
 %D \def\euro{\symbol[euro]}
 %D \stoptypen
 %D
-%D These definitions guarantee that the next calls work okay: 
+%D These definitions guarantee that the next calls work okay:
 %D
 %D \starttypen
 %D \ss \tf\euro \bf\euro \sla\euro \itd\euro \bs\euro \bic\euro
 %D \stoptypen
-%D 
+%D
 %D The shape as well as the size is adapted to the current
-%D environment. 
+%D environment.
 
 %D Fonts can only be used when loaded. In \CONTEXT\ we
 %D postpone the loading of fonts, even when we load \PLAIN.
@@ -3231,13 +3349,13 @@
 %D \smashaccent\"Uberhaupt
 %D \stoptypen
 %D
-%D But normally one will use it as a prefix in definitions. 
-%D The difference is in the height: 
+%D But normally one will use it as a prefix in definitions.
+%D The difference is in the height:
 %D
 %D \leavevmode\ruledhbox
 %D   {\ruledhbox{\smashaccent\"Uberhaupt}\quad
 %D    oder\quad
-%D    \ruledhbox{\"Uberhaupt}} 
+%D    \ruledhbox{\"Uberhaupt}}
 
 %D \macros
 %D   {moveaccent}
@@ -3254,7 +3372,7 @@
 %D \leavevmode\ruledhbox
 %D   {\ruledhbox{\moveaccent{-.1ex}\"Uberhaupt}\quad
 %D    oder\quad
-%D    \ruledhbox{\"Uberhaupt}} 
+%D    \ruledhbox{\"Uberhaupt}}
 
 \def\dodomoveaccent#1%
   {\bgroup
@@ -3289,28 +3407,7 @@
 %D \definefontsynonym [Times-Roman] [tir]
 %D \stoptypen
 
-% %D One day Taco came up with the suggestion to automate this
-% %D process by loading the fontmap file as distributed with the
-% %D \DVIPS\ and \PDFTEX\ program. Therefore, we now have:
-% 
-% \def\loadfontmappingfile#1#2#3% file yes no
-%   {\pushendofline
-%    \chardef\@@savedtabcatcode=\the\catcode`\^^I
-%    \def\dodocommando##1 ##2 ##3 ##4\end%
-%      {\doifnot{##1}{*}
-%         {%\writestatus{\m!systems}{font ##2 mapped into ##1}%
-%          \definefontsynonym[##2][##1]}}%
-%    \def\docommando%
-%      {\expandafter\dodocommando\fileline * * * * \end}%
-%    \doprocessfile\scratchread{#1.map}\docommando
-%    \catcode`\^^I=\@@savedtabcatcode
-%    \popendofline
-%    \iffileprocessed#2\else#3\fi}
-%
-% %D Since the syntax of the map files changes occationally,
-% %D I have decided to remove this feature.  
-
-%D Now we're up to some definitions. 
+%D Now we're up to some definitions.
 
 \definebodyfontenvironment
   [\s!default]
@@ -3321,18 +3418,19 @@
               \c!b=1.440,
               \c!c=1.728,
               \c!d=2.074,
+                 *=\currentfontscale, % wildcard 
               \c!x=0.8,
              \c!xx=0.6,
           \c!groot=1.2,
           \c!klein=0.8,
-     \c!interlinie=,
+     \c!interlinie=, 
              \c!em=\v!schuin]
 
 \definebodyfontenvironment
   [20.7pt]
   [        \s!text=20.7pt,
          \s!script=\!!fourteenpointfour,
-   \s!scriptscript=\!!twelvepoint, 
+   \s!scriptscript=\!!twelvepoint,
               \c!x=17.3pt,
              \c!xx=\!!fourteenpointfour,
           \c!groot=20.7pt,    % !!!!
@@ -3341,10 +3439,10 @@
 \definebodyfontenvironment
   [17.3pt]
   [        \s!text=17.3pt,
-         \s!script=\!!twelvepoint, 
+         \s!script=\!!twelvepoint,
    \s!scriptscript=\!!tenpoint,
               \c!x=\!!fourteenpointfour,
-             \c!xx=\!!twelvepoint, 
+             \c!xx=\!!twelvepoint,
           \c!groot=20.7pt,
           \c!klein=\!!fourteenpointfour]
 
@@ -3467,14 +3565,17 @@
 \definebodyfontswitch [vii]  [\!!sevenpoint]
 \definebodyfontswitch [vi]   [\!!sixpoint]
 
-%D So far. 
- 
+%D So far.
+
 \definefontstyle [\c!rm,\v!roman,\v!serif,\v!regular]    [\c!rm]
-\definefontstyle [\c!ss,\v!sansserif,\v!sans,\v!support] [\c!ss]    
+\definefontstyle [\c!ss,\v!sansserif,\v!sans,\v!support] [\c!ss]
 \definefontstyle [\c!tt,\v!teletype,\v!type,\v!mono]     [\c!tt]
 \definefontstyle [\c!hw,\v!handwritten]                  [\c!hw]
 \definefontstyle [\c!cg,\v!calligraphic]                 [\c!cg]
 
+\definefontsize[\c!a] \definefontsize[\c!b]
+\definefontsize[\c!c] \definefontsize[\c!d]
+
 \definealternativestyle [\v!mediaeval]                        [\os]  []
 \definealternativestyle [\v!normaal]                          [\tf]  []
 \definealternativestyle [\v!vet]                              [\bf]  []
@@ -3490,21 +3591,39 @@
 \definealternativestyle [\v!kleinvetschuin,\v!kleinschuinvet] [\bsx] []
 \definealternativestyle [\v!kleinvetitalic,\v!kleinitalicvet] [\bix] []
 
-%D We treat {\sc Small Caps} and \kap {Pseudo Caps} a bit 
-%D different. We also provide an \WOORD {uppercase} style. 
+%D We treat {\sc Small Caps} and \kap {Pseudo Caps} a bit
+%D different. We also provide an \WOORD {uppercase} style.
 
 \definealternativestyle [\v!kap,\v!kapitaal] [\normalkap] [\normalkap]
 \definealternativestyle [\v!smallcaps]       [\sc]        [\sc]
 \definealternativestyle [\v!WOORD]           [\WORD]      [\WORD]
 
-%D \macros 
+%D \macros
+%D   {...math}
+%D
+%D New or old?
+
+% tzt proper \define... 
+
+\def\tfmath{\tf\mf\synchronizesymb}
+\def\bfmath{\bf\mf\synchronizesymb}
+\def\slmath{\sl\mf\synchronizesymb}
+\def\itmath{\it\mf\synchronizesymb}
+\def\bsmath{\bs\mf\synchronizesymb}
+\def\bimath{\bi\mf\synchronizesymb}
+\def\scmath{\sc\mf\synchronizesymb}
+\def\nnmath{\nn\mf\synchronizesymb}
+
+\def\textmath    {\synchronizesymb}
+
+%D \macros
 %D   {fontstylesuffix}
 %D
-%D The next macro is used to map non latin fontnames on 
-%D fonts. See \type {font-uni} for an example of its use. 
+%D The next macro is used to map non latin fontnames on
+%D fonts. See \type {font-uni} for an example of its use.
 
 \def\fontstylesuffix%
-  {\ifnum\fam=\tffam     \s!Regular \else 
+  {\ifnum\fam=\tffam     \s!Regular \else
    \ifnum\fam=\bffam        \s!Bold \else
    \ifnum\fam=\slfam     \s!Slanted \else
    \ifnum\fam=\itfam      \s!Italic \else
@@ -3516,28 +3635,28 @@
 
 \def\xi{\ifmmode\normalxi\else\elevenpoint\fi}
 
-%D By default we load the Computer Modern Roman fonts (but 
-%D not yet at this moment) and activate the 12pt roman 
-%D bodyfont. Sans serif and teletype are also available and 
-%D can be called for by \type{\ss} and \type{\tt}. 
+%D By default we load the Computer Modern Roman fonts (but
+%D not yet at this moment) and activate the 12pt roman
+%D bodyfont. Sans serif and teletype are also available and
+%D can be called for by \type{\ss} and \type{\tt}.
 
-\readfile{font-exp.tex}{}{} % load local experiments 
+\setupbodyfont [unk, rm]
 
-\setupbodyfont [unk, fil, rm]
+%D Also needed is:
 
-\protect
+\definefont[tinyfont][Mono at 1ex]
 
-\endinput
+\protect \endinput
 
-%D Some unused left||overs: 
-%D 
+%D Some unused left||overs:
+%D
 %D \starttypen
 %D \def\doiffontpresentelse#1#2#3%
 %D   {\bgroup
 %D    \batchmode\font\dummy=\truefontname{#1}\errorstopmode
 %D    \edef\lastfontname{\fontname\dummy}%
 %D    \ifx\lastfontname\nullfontname\egroup#3\else\egroup#2\fi}
-%D 
+%D
 %D \def\abortiffontnotfound#1%
 %D   {\doiffontpresentelse{#1}{}{\showmessage{\m!fonts}{10}{\truefontname{#1}}\endinput}}
 %D \stoptypen
diff --git a/tex/context/base/font-lbr.tex b/tex/context/base/font-lbr.tex
deleted file mode 100644
index d29ae6260..000000000
--- a/tex/context/base/font-lbr.tex
+++ /dev/null
@@ -1,302 +0,0 @@
-%D \module
-%D   [       file=font-lbr,
-%D        version=1995.1.1,
-%D          title=\CONTEXT\ Font Macros,
-%D       subtitle=Lucida Bright,
-%D         author=Hans Hagen,
-%D           date=\currentdate,
-%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
-%C details. 
-
-%D The Lucida Bright fonts are both good looking and and
-%D complete. These fonts have prebuilt accented characters,
-%D which means that we use another encoding vector: \YandY\
-%D texnansi. These fonts are a good illustration that a 12 
-%D point bodyfont is indeed never that size. The Lucida Bright 
-%D fonts come in one design size. 
-
-\definefontsynonym [Serif]              [LucidaBright]
-\definefontsynonym [SerifBold]          [LucidaBright-Demi]
-\definefontsynonym [SerifItalic]        [LucidaBright-Italic]
-\definefontsynonym [SerifSlanted]       [LucidaBright-Oblique]
-\definefontsynonym [SerifBoldItalic]    [LucidaBright-DemiItalic]
-\definefontsynonym [SerifBoldSlanted]   [LucidaBright-DemiItalic]
-\definefontsynonym [SerifCaps]          [LucidaBrightSmallcaps]
-
-\definefontsynonym [Sans]               [LucidaSans]
-\definefontsynonym [SansBold]           [LucidaSans-Demi]
-\definefontsynonym [SansItalic]         [LucidaSans-Italic]
-\definefontsynonym [SansSlanted]        [LucidaSans-Italic]
-\definefontsynonym [SansBoldItalic]     [LucidaSans-DemiItalic]
-\definefontsynonym [SansBoldSlanted]    [LucidaSans-DemiItalic]
-\definefontsynonym [SansCaps]           [LucidaSans]
-
-\definefontsynonym [Mono]               [LucidaSans-Typewriter]
-\definefontsynonym [MonoBold]           [LucidaSans-TypewriterBold]
-\definefontsynonym [MonoItalic]         [LucidaSans-TypewriterOblique]
-\definefontsynonym [MonoSlanted]        [LucidaSans-TypewriterOblique]
-\definefontsynonym [MonoBoldItalic]     [LucidaSans-TypewriterBoldOblique]
-\definefontsynonym [MonoBoldSlanted]    [LucidaSans-TypewriterBoldOblique]
-\definefontsynonym [MonoCaps]           [LucidaSans-Typewriter]
-
-\definefontsynonym [MathRoman]          [LucidaBright]
-\definefontsynonym [MathExtension]      [LucidaNewMath-Extension]
-\definefontsynonym [MathItalic]         [LucidaNewMath-AltItalic]
-\definefontsynonym [MathSymbol]         [LucidaNewMath-Symbol]
-\definefontsynonym [MathAlpha]          [LucidaNewMath-Arrows]
-
-\definefontsynonym [Handwriting]        [LucidaHandwriting-Italic]
-\definefontsynonym [Calligraphy]        [LucidaCalligraphy-Italic]
-
-\definefontsynonym [OldStyle]           [MathItalic]
-
-\definebodyfont 
-  [17.3pt,14.4pt,12pt,11pt,10pt,9pt,8pt,7pt,6pt,5pt,4pt] 
-  [rm,ss,tt,mm] 
-  [default]
-
-%D Some nice aditional ones.
-
-\definebodyfont 
-  [17.3pt,14.4pt,12pt,11pt,10pt,9pt,8pt] 
-  [hw,cg]
-  [default]
-
-%D The Lucida Bright TeleType font does not contain \TEX's 
-%D visual space. The next definition offers an alternative.
-
-\def\controlspace% slow slow slow
-  {\hbox to .5em
-     {\font\next=cmtt10 at \bodyfontsize\next
-      \hss\char32\hss}}
-
-% \def\controlspace% 
-%   {\hbox to .5em
-%      {\hss
-%       \vrule\!!width .1\dp\strutbox \!!height\!!zeropoint \!!depth .7\dp\strutbox 
-%       \vrule\!!width .4em\!!height -.6\dp\strutbox\!!depth .7\dp\strutbox
-%       \vrule\!!width .1\dp\strutbox \!!height\!!zeropoint \!!depth .7\dp\strutbox
-%       \hss}}
-
-%D Next we implement some alternatives for \AMS\ symbols. 
-%D These can be overrules by loading the \AMS\ font module 
-%D afterwards. 
-
-\unprotect 
-
-\mathchardef\blacktriangleleft ="01F0 
-\mathchardef\blacktriangleright="01F1 
-\mathchardef\boxtimes          ="02EC 
-
-%D Here I copied the definition file that is part of the 
-%D \YandY\ distribution.  
-
-%D \framed[breedte=\hsize]
-%D   {Copyright (C) 1991 - 1993 \YandY, Inc. All Rights Reserved} 
-
-%D This part of the definition is adapted bij J. Hagen. There
-%D is already an extra family: \type{\mafam} (Math A ). Also, 
-%D the loading of fonts is done somewhere else. 
-
-\let\arfam    = \mafam
-\let\thearfam = \hexmafam
-
-%D This part is adapted to the \CONTEXT\ font||naming method.
-%D Also, we use \type{\setskewchar}, which activates the not 
-%D yet loaded font.   
-
-%D The next definitions are already taken care of.  
-
-%D \starttypen
-%D % \setskewchar{12ptmmmi}='177
-%D % \setskewchar{11ptmmmi}='177 
-%D % \setskewchar{10ptmmmi}='177 
-%D % \setskewchar{9ptmmmi}='177
-%D % \setskewchar{8ptmmmi}='177 
-%D % \setskewchar{7ptmmmi}='177 
-%D % \setskewchar{6ptmmmi}='177
-%D % \setskewchar{5ptmmmi}='177
-%D \stoptypen
- 
-%D \starttypen
-%D % \setskewchar{12ptmmsy}='60
-%D % \setskewchar{11ptmmsy}='60 
-%D % \setskewchar{10ptmmsy}='60 
-%D % \setskewchar{9ptmmsy}='60
-%D % \setskewchar{8ptmmsy}='60 
-%D % \setskewchar{7ptmmsy}='60 
-%D % \setskewchar{6ptmmsy}='60
-%D % \setskewchar{5ptmmsy}='60
-%D \stoptypen
-
-%D Adjusted for LucidaNewMath||Extension at 10pt and math axis
-%D at 3.13pt Note: delimiter increments are 5.5pt (as opposed
-%D to 6pt in \kap{CM}). 
-
-%D Should these be adapted to \type {\bodyfontsize} ? 
-
-\def\big    #1{{\hbox{$\left#1\vbox to8.20\p@{}\right.\n@space$}}}
-\def\Big    #1{{\hbox{$\left#1\vbox to10.80\p@{}\right.\n@space$}}}
-\def\bigg   #1{{\hbox{$\left#1\vbox to13.42\p@{}\right.\n@space$}}}
-\def\Bigg   #1{{\hbox{$\left#1\vbox to16.03\p@{}\right.\n@space$}}}
-\def\biggg  #1{{\hbox{$\left#1\vbox to17.72\p@{}\right.\n@space$}}}
-\def\Biggg  #1{{\hbox{$\left#1\vbox to21.25\p@{}\right.\n@space$}}}
-\def\n@space  {\nulldelimiterspace\z@ \m@th}
-
-%D Define some extra large sizes. It's always done using 
-%D extensible parts.
-
-\def\bigggl{\mathopen \biggg}
-\def\bigggr{\mathclose\biggg}
-\def\Bigggl{\mathopen \Biggg}
-\def\Bigggr{\mathclose\Biggg}
-
-%D The following is needed if the roman text font is {\em 
-%D not} just \kap{LBR}.
-
-%D Draw the small sizes of $[$ and $]$ from \kap{LBMO} instead
-%D of \kap{LBR}.
-
-\mathcode`\[="4186 \delcode`\[="186302
-\mathcode`\]="5187 \delcode`\]="187303
-
-%D Draw the small sizes of $($ and $)$ from \kap{LBMO} instead 
-%D of \kap{LBR}.
-
-\mathcode`\(="4184 \delcode`\(="184300
-\mathcode`\)="5185 \delcode`\)="185301
-
-%D The small sizes of $\{$ and $\}$ are already drawn from 
-%D \kap{LBMS}. 
-
-%D Draw small $/$ from \kap{LBMO} instead of \kap{LBR}.
-
-\mathcode`\/="013D \delcode`\/="13D30E
-
-%D Draw $=$ and $+$ from \kap{LBMS} instead of \kap{LBR}.
-
-% interferes with \mf settings 
-%
-% \mathcode`\=="3283 \mathcode`\+="2282
-
-%D Make open face brackets accessible, i.e. [[ and ]].
-
-\def\ldbrack{\delimiter"4182382}
-\def\rdbrack{\delimiter"5183383}
-
-%D Provide access to surface integral signs (linked from text 
-%D to display size).
-
-\mathchardef\surfintop="1390 
-\def\surfint{\surfintop\nolimits}
-
-%D Make medium size integrals available ({\em not} linked to 
-%D display size).
-
-\mathchardef\midintop="1392 
-\def\midint{\midintop\nolimits}
-
-\mathchardef\midointop="1393 
-\def\midoint{\midointop\nolimits}
-
-\mathchardef\midsurfintop="1394 
-\def\midsurfint{\midsurfintop\nolimits}
-
-%D Extensible integral (use with \type{\bigg}, \type{\Bigg}, 
-%D \type{\biggg}, \type{\Biggg} etc).
-
-\def\largeint{\delimiter"135A395}
-
-%D Various types of small integrals.
-
-\mathchardef\dblint  ="0188
-\mathchardef\trplint ="0189
-\mathchardef\contint ="018A
-\mathchardef\surfint ="018B
-\mathchardef\volint  ="018C
-\mathchardef\clwint  ="018D
-\mathchardef\cclwcint="018E
-\mathchardef\clwcint ="018F
-
-%D To close up gaps in special math characters constructed 
-%D from pieces.
-
-\def\joinrel{\mathrel{\mkern-4mu}} 
-
-%D Some characters that need construction in \kap{CM} exist 
-%D complete in \kap{LBMO} or \kap{LBMS}.
-
-\mathchardef\bowtie="31F6
-\mathchardef\models="32EE
-\mathchardef\doteq ="32C9
-\mathchardef\cong  ="329B
-\mathchardef\angle ="028B
-
-%D Some more characters.
-
-% \mathchardef\hbar           ="0\thearfam 1B
-
-\mathchardef\hbar             ="019D
-\mathchardef\neq              ="3\thearfam 94
-\mathchardef\rightleftharpoons="3\thearfam 7A
-\mathchardef\leftrightharpoons="3\thearfam 79
-\mathchardef\hookleftarrow    ="3\thearfam 3C
-\mathchardef\hookrightarrow   ="3\thearfam 3E
-\mathchardef\mapsto           ="3\thearfam 2C
-
-% \def\longmapsto{\mapstochar\longrightarrow}
-
-%D The ( is not large enough for strut in \kap{LBMO}.
-
-\def\mathstrut{\vphantom{f}}
-
-%D In $n$\hoog{th} root, don't want the $n$ to come too close 
-%D to the radical.
-
-\def\r@@t#1#2%
-  {\setbox\z@\hbox{$\m@th#1\sqrt{#2}$}
-   \dimen@\ht\z@ \advance\dimen@-\dp\z@
-   \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-7.5mu \box\z@}
-
-%D Draw upper case upright greek from LucidaNewMath||Extension.
-
-\mathchardef\Gamma  ="03D0
-\mathchardef\Delta  ="03D1
-\mathchardef\Theta  ="03D2
-\mathchardef\Lambda ="03D3
-\mathchardef\Xi     ="03D4
-\mathchardef\Pi     ="03D5
-\mathchardef\Sigma  ="03D6
-\mathchardef\Upsilon="03D7
-\mathchardef\Phi    ="03D8
-\mathchardef\Psi    ="03D9
-\mathchardef\Omega  ="03DA
-
-%D Draw upper case italic greek from LucidaNewMath||Italic. 
-
-\mathchardef\varGamma  ="0100
-\mathchardef\varDelta  ="0101
-\mathchardef\varTheta  ="0102
-\mathchardef\varLambda ="0103
-\mathchardef\varXi     ="0104
-\mathchardef\varPi     ="0105
-\mathchardef\varSigma  ="0106
-\mathchardef\varUpsilon="0107
-\mathchardef\varPhi    ="0108
-\mathchardef\varPsi    ="0109
-\mathchardef\varOmega  ="010A
-
-%D \type{\matrix} is changed because \kap{LBMO} is not at 10pt.
-
-\def\matrix#1%
-  {\null\,\vcenter{\normalbaselines\m@th
-   \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr
-   \mathstrut\crcr\noalign{\kern-0.9\baselineskip}
-   #1\crcr\mathstrut\crcr\noalign{\kern-0.9\baselineskip}}}\,}
-
-\protect
-
-\endinput
diff --git a/tex/context/base/font-map.tex b/tex/context/base/font-map.tex
index a124f63b9..a9eccba69 100644
--- a/tex/context/base/font-map.tex
+++ b/tex/context/base/font-map.tex
@@ -1,3 +1,5 @@
+% NOT YET ADAPTED TO THE NEW FONT MACROS 
+
 %D \module
 %D   [     file=font-map,
 %D      version=1998.3.13,
diff --git a/tex/context/base/font-pcr.tex b/tex/context/base/font-pcr.tex
deleted file mode 100644
index 1dbe06f10..000000000
--- a/tex/context/base/font-pcr.tex
+++ /dev/null
@@ -1,32 +0,0 @@
-%D \module
-%D   [       file=font-pcr,
-%D        version=1995.1.1,
-%D          title=\CONTEXT\ Font Macros,
-%D       subtitle=Adobe Courier,
-%D         author=Hans Hagen,
-%D           date=\currentdate,
-%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
-%C details. 
-
-%D This module defines the Standard Adobe Courier fonts.
-
-\definefontsynonym [Mono]            [Courier]
-\definefontsynonym [MonoBold]        [Courier-Bold]
-\definefontsynonym [MonoItalic]      [Courier-Oblique]
-\definefontsynonym [MonoSlanted]     [Courier-Oblique]
-\definefontsynonym [MonoBoldItalic]  [Courier-BoldOblique]
-\definefontsynonym [MonoBoldSlanted] [Courier-BoldOblique]
-\definefontsynonym [MonoCaps]        [Courier]
-
-\definebodyfont [14.4pt,12pt,11pt,10pt,9pt,8pt,7pt,6pt,5pt] [tt] [default]
-
-%D The Courier font does not contain \TEX's visual space. The
-%D next definition offers an alternative at bodyfont size.
-
-\def\controlspace%
-  {\hbox{\font\next=cmtt10 at \bodyfontsize\next\char32}}
-
-\endinput
diff --git a/tex/context/base/font-phv.tex b/tex/context/base/font-phv.tex
deleted file mode 100644
index 7a4a3c899..000000000
--- a/tex/context/base/font-phv.tex
+++ /dev/null
@@ -1,26 +0,0 @@
-%D \module
-%D   [       file=font-phv,
-%D        version=1995.1.1,
-%D          title=\CONTEXT\ Font Macros,
-%D       subtitle=Adobe Helvetica,
-%D         author=Hans Hagen,
-%D           date=\currentdate,
-%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
-%C details. 
-
-%D This module defines the Standard Adobe Helvetica fonts.
-
-\definefontsynonym [Sans]            [Helvetica]
-\definefontsynonym [SansBold]        [Helvetica-Bold]
-\definefontsynonym [SansItalic]      [Helvetica-Oblique]
-\definefontsynonym [SansSlanted]     [Helvetica-Oblique]
-\definefontsynonym [SansBoldItalic]  [Helvetica-BoldOblique]
-\definefontsynonym [SansBoldSlanted] [Helvetica-BoldOblique]
-\definefontsynonym [SansCaps]        [Helvetica]
-
-\definebodyfont [14.4pt,12pt,11pt,10pt,9pt,8pt,7pt,6pt,5pt] [ss] [default]
-
-\endinput
diff --git a/tex/context/base/font-plr.tex b/tex/context/base/font-plr.tex
deleted file mode 100644
index 3f4b2306d..000000000
--- a/tex/context/base/font-plr.tex
+++ /dev/null
@@ -1,130 +0,0 @@
-%D \module
-%D   [       file=font-plr,
-%D        version=1999.08.28,
-%D          title=\CONTEXT\ Font Macros,
-%D       subtitle=Computer Modern Polish,
-%D         author=Hans Hagen,
-%D           date=\currentdate,
-%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% \definefontsynonym [Serif]            [plr10]     [encoding=pl0]
-% \definefontsynonym [SerifBold]        [plbx10]    [encoding=pl0]
-% \definefontsynonym [SerifItalic]      [plti10]    [encoding=pl0]
-% \definefontsynonym [SerifSlanted]     [plsl10]    [encoding=pl0]
-% \definefontsynonym [SerifBoldItalic]  [plbxti10]  [encoding=pl0]
-% \definefontsynonym [SerifBoldSlanted] [plbxsl10]  [encoding=pl0]
-% \definefontsynonym [SerifCaps]        [plr10]     [encoding=pl0]
-%
-% \definefontsynonym [Sans]             [plss10]    [encoding=pl0]
-% \definefontsynonym [SansBold]         [plssbx10]  [encoding=pl0]
-% \definefontsynonym [SansItalic]       [plssi10]   [encoding=pl0]
-% \definefontsynonym [SansSlanted]      [plssi10]   [encoding=pl0]
-% \definefontsynonym [SansBoldItalic]   [plssbx10]  [encoding=pl0]
-% \definefontsynonym [SansBoldSlanted]  [plssbx10]  [encoding=pl0]
-% \definefontsynonym [SansCaps]         [plss10]    [encoding=pl0]
-%
-% \definefontsynonym [Mono]             [pltt10]    [encoding=pl0]
-% \definefontsynonym [MonoBold]         [pltt10]    [encoding=pl0]
-% \definefontsynonym [MonoItalic]       [plitt10]   [encoding=pl0]
-% \definefontsynonym [MonoSlanted]      [plsltt10]  [encoding=pl0]
-% \definefontsynonym [MonoBoldItalic]   [pltt10]    [encoding=pl0]
-% \definefontsynonym [MonoBoldSlanted]  [pltt10]    [encoding=pl0]
-% \definefontsynonym [MonoCaps]         [pltt10]    [encoding=pl0]
-%
-% \definefontsynonym [MathRoman]        [plr10]     [encoding=pl0]
-% \definefontsynonym [MathExtension]    [cmex10]
-% \definefontsynonym [MathItalic]       [cmmi10]
-% \definefontsynonym [MathSymbol]       [cmsy10]
-%
-% \definefontsynonym [OldStyle]         [MathItalic]
-%
-% \definebodyfont
-%   [14.4pt,12pt,11pt,10pt,9pt,8pt,7pt,6pt,5pt]
-%   [rm,ss,tt,mm]
-%   [default]
-
-\input font-cmr.tex 
-
-\definefontsynonym [cmb10]    [plb10]    [encoding=pl0]
-\definefontsynonym [cmbsy10]  [plbsy10]  [encoding=pl0]
-\definefontsynonym [cmbx10]   [plbx10]   [encoding=pl0]
-\definefontsynonym [cmbx12]   [plbx12]   [encoding=pl0]
-\definefontsynonym [cmbx5]    [plbx5]    [encoding=pl0]
-\definefontsynonym [cmbx6]    [plbx6]    [encoding=pl0]
-\definefontsynonym [cmbx7]    [plbx7]    [encoding=pl0]
-\definefontsynonym [cmbx8]    [plbx8]    [encoding=pl0]
-\definefontsynonym [cmbx9]    [plbx9]    [encoding=pl0]
-\definefontsynonym [cmbxsl10] [plbxsl10] [encoding=pl0]
-\definefontsynonym [cmbxti10] [plbxti10] [encoding=pl0]
-\definefontsynonym [cmcsc10]  [plcsc10]  [encoding=pl0]
-\definefontsynonym [cmdunh10] [pldunh10] [encoding=pl0]
-\definefontsynonym [cmex10]   [plex10]   [encoding=pl0]
-\definefontsynonym [cmex9]    [plex9]    [encoding=pl0]
-\definefontsynonym [cmff10]   [plff10]   [encoding=pl0]
-\definefontsynonym [cmfi10]   [plfi10]   [encoding=pl0]
-\definefontsynonym [cmfib8]   [plfib8]   [encoding=pl0]
-\definefontsynonym [cminch]   [plinch]   [encoding=pl0]
-\definefontsynonym [cmitt10]  [plitt10]  [encoding=pl0]
-\definefontsynonym [cmmi10]   [plmi10]   [encoding=pl0]
-\definefontsynonym [cmmi12]   [plmi12]   [encoding=pl0]
-\definefontsynonym [cmmi5]    [plmi5]    [encoding=pl0]
-\definefontsynonym [cmmi6]    [plmi6]    [encoding=pl0]
-\definefontsynonym [cmmi7]    [plmi7]    [encoding=pl0]
-\definefontsynonym [cmmi8]    [plmi8]    [encoding=pl0]
-\definefontsynonym [cmmi9]    [plmi9]    [encoding=pl0]
-\definefontsynonym [cmmib10]  [plmib10]  [encoding=pl0]
-\definefontsynonym [cmr10]    [plr10]    [encoding=pl0]
-\definefontsynonym [cmr12]    [plr12]    [encoding=pl0]
-\definefontsynonym [cmr17]    [plr17]    [encoding=pl0]
-\definefontsynonym [cmr5]     [plr5]     [encoding=pl0]
-\definefontsynonym [cmr6]     [plr6]     [encoding=pl0]
-\definefontsynonym [cmr7]     [plr7]     [encoding=pl0]
-\definefontsynonym [cmr8]     [plr8]     [encoding=pl0]
-\definefontsynonym [cmr9]     [plr9]     [encoding=pl0]
-\definefontsynonym [cmsl10]   [plsl10]   [encoding=pl0]
-\definefontsynonym [cmsl12]   [plsl12]   [encoding=pl0]
-\definefontsynonym [cmsl8]    [plsl8]    [encoding=pl0]
-\definefontsynonym [cmsl9]    [plsl9]    [encoding=pl0]
-\definefontsynonym [cmsltt10] [plsltt10] [encoding=pl0]
-\definefontsynonym [cmss10]   [plss10]   [encoding=pl0]
-\definefontsynonym [cmss12]   [plss12]   [encoding=pl0]
-\definefontsynonym [cmss17]   [plss17]   [encoding=pl0]
-\definefontsynonym [cmss8]    [plss8]    [encoding=pl0]
-\definefontsynonym [cmss9]    [plss9]    [encoding=pl0]
-\definefontsynonym [cmssbi10] [plssbi10] [encoding=pl0]
-\definefontsynonym [cmssbx10] [plssbx10] [encoding=pl0]
-\definefontsynonym [cmssdc10] [plssdc10] [encoding=pl0]
-\definefontsynonym [cmssi10]  [plssi10]  [encoding=pl0]
-\definefontsynonym [cmssi12]  [plssi12]  [encoding=pl0]
-\definefontsynonym [cmssi17]  [plssi17]  [encoding=pl0]
-\definefontsynonym [cmssi8]   [plssi8]   [encoding=pl0]
-\definefontsynonym [cmssi9]   [plssi9]   [encoding=pl0]
-\definefontsynonym [cmssq8]   [plssq8]   [encoding=pl0]
-\definefontsynonym [cmssqi8]  [plssqi8]  [encoding=pl0]
-\definefontsynonym [cmsy10]   [plsy10]   [encoding=pl0]
-\definefontsynonym [cmsy5]    [plsy5]    [encoding=pl0]
-\definefontsynonym [cmsy6]    [plsy6]    [encoding=pl0]
-\definefontsynonym [cmsy7]    [plsy7]    [encoding=pl0]
-\definefontsynonym [cmsy8]    [plsy8]    [encoding=pl0]
-\definefontsynonym [cmsy9]    [plsy9]    [encoding=pl0]
-\definefontsynonym [cmtcsc10] [pltcsc10] [encoding=pl0]
-\definefontsynonym [cmtex10]  [pltex10]  [encoding=pl0]
-\definefontsynonym [cmtex8]   [pltex8]   [encoding=pl0]
-\definefontsynonym [cmtex9]   [pltex9]   [encoding=pl0]
-\definefontsynonym [cmti10]   [plti10]   [encoding=pl0]
-\definefontsynonym [cmti12]   [plti12]   [encoding=pl0]
-\definefontsynonym [cmti7]    [plti7]    [encoding=pl0]
-\definefontsynonym [cmti8]    [plti8]    [encoding=pl0]
-\definefontsynonym [cmti9]    [plti9]    [encoding=pl0]
-\definefontsynonym [cmtt10]   [pltt10]   [encoding=pl0]
-\definefontsynonym [cmtt12]   [pltt12]   [encoding=pl0]
-\definefontsynonym [cmtt8]    [pltt8]    [encoding=pl0]
-\definefontsynonym [cmtt9]    [pltt9]    [encoding=pl0]
-\definefontsynonym [cmu10]    [plu10]    [encoding=pl0]
-\definefontsynonym [cmvtt10]  [plvtt10]  [encoding=pl0]
-                   
-\endinput
diff --git a/tex/context/base/font-pos.tex b/tex/context/base/font-pos.tex
deleted file mode 100644
index 7894110e7..000000000
--- a/tex/context/base/font-pos.tex
+++ /dev/null
@@ -1,21 +0,0 @@
-%D \module
-%D   [     file=font-pos,
-%D      version=1995.1.1,
-%D        title=\CONTEXT\ Font Macros,
-%D     subtitle=Standard Postscript,
-%D       author=J. Hagen,
-%D         date=\currentdate,
-%D    copyright=J. Hagen]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
-%C details. 
-
-%D This file load the Adobe Times Roman, Helvetica and 
-%D Courier.
-
-\input font-ptm
-\input font-phv
-\input font-pcr
-
-\endinput
diff --git a/tex/context/base/font-ppl.tex b/tex/context/base/font-ppl.tex
deleted file mode 100644
index 9bd34ba35..000000000
--- a/tex/context/base/font-ppl.tex
+++ /dev/null
@@ -1,26 +0,0 @@
-%D \module
-%D   [     file=font-ppl,
-%D      version=2000.3.17,
-%D        title=\CONTEXT\ Font Macros,
-%D     subtitle=Palatino,
-%D       author=J. Hagen,
-%D         date=\currentdate,
-%D    copyright=J. Hagen]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
-%C details. 
-
-%D This file load the Palatino. 
-
-\definefontsynonym [Serif]            [Palatino-Roman]
-\definefontsynonym [SerifBold]        [Palatino-Bold]
-\definefontsynonym [SerifItalic]      [Palatino-Italic]
-\definefontsynonym [SerifSlanted]     [Palatino-Slanted]
-\definefontsynonym [SerifBoldItalic]  [Palatino-BoldItalic]
-\definefontsynonym [SerifBoldSlanted] [Palatino-BoldSlanted]
-\definefontsynonym [SerifCaps]        [Palatino-Roman]
-
-\definebodyfont [14.4pt,12pt,11pt,10pt,9pt,8pt,7pt,6pt,5pt] [rm] [default]
-
-\endinput 
diff --git a/tex/context/base/font-ptm.tex b/tex/context/base/font-ptm.tex
deleted file mode 100644
index d5ef35dab..000000000
--- a/tex/context/base/font-ptm.tex
+++ /dev/null
@@ -1,26 +0,0 @@
-%D \module
-%D   [       file=font-ptm,
-%D        version=1995.1.1,
-%D          title=\CONTEXT\ Font Macros,
-%D       subtitle=Adobe Times Roman,
-%D         author=Hans Hagen,
-%D           date=\currentdate,
-%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
-%C details. 
-
-%D This module defines the Standard Adobe Times Roman.
-
-\definefontsynonym [Serif]            [Times-Roman]
-\definefontsynonym [SerifBold]        [Times-Bold]
-\definefontsynonym [SerifItalic]      [Times-Italic]
-\definefontsynonym [SerifSlanted]     [Times-Italic]
-\definefontsynonym [SerifBoldItalic]  [Times-BoldItalic]
-\definefontsynonym [SerifBoldSlanted] [Times-BoldItalic]
-\definefontsynonym [SerifCaps]        [Times-Roman]
-
-\definebodyfont [14.4pt,12pt,11pt,10pt,9pt,8pt,7pt,6pt,5pt] [rm] [default]
-
-\endinput
diff --git a/tex/context/base/font-run.tex b/tex/context/base/font-run.tex
new file mode 100644
index 000000000..cc1beccc8
--- /dev/null
+++ b/tex/context/base/font-run.tex
@@ -0,0 +1,221 @@
+%D \module
+%D   [       file=font-run,
+%D        version=1998.09.11, % (second)
+%D        version=2001.02.20, % (third)
+%D          title=\CONTEXT\ Font Macros,
+%D       subtitle=Runtime Macros,
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D [This code is hooked into the core macros and saves some 
+%D format space.] 
+
+\unprotect 
+
+\gdef\dosetshowfonttitle#1%
+  {\tabskip\!!zeropoint
+   \parindent\!!zeropoint
+   \setlocalhsize
+   \doifelsenothing{#1}
+     {\def\title{[\the\korpsgrootte]}}
+     {\switchtobodyfont[#1]\def\title{[#1]}}
+   \doifsomething{\fontclass}
+     {\doifnot{[\fontclass]}{\title}
+        {\edef\title{[\fontclass]\space\title}}}}
+
+\gdef\showbodyfont%
+  {\dosingleempty\doshowbodyfont}
+
+\gdef\doshowbodyfont[#1]%
+  {\startbaselinecorrection
+   \vbox
+     {\dosetshowfonttitle{#1}%
+      \def\bigstrut##1##2%
+        {\hbox{\vrule
+           \!!height ##1\ht\strutbox
+           \!!depth  ##2\dp\strutbox
+           \!!width  \!!zeropoint}}
+      \def\next##1##2##3%
+        {&&##1&&##2\tf##3&&##2\sc##3%
+         &&##2\sl##3&&##2\it##3&&##2\bf##3&&##2\bs##3&&##2\bi##3%
+         &&##2\tfx##3&&##2\tfxx##3%
+         &&##2\tfa##3&&##2\tfb##3&&##2\tfc##3&&##2\tfd##3&\cr}%
+      \halign to \localhsize
+        {\bigstrut{1.5}{2}##&\vrule##
+         \tabskip=\!!zeropoint \!!plus 1fill
+         &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
+         &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
+         &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
+         &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
+         &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
+         &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
+         &\hfil##\hfil&\vrule##&\hfil##\hfil&##\vrule
+         \tabskip=\!!zeropoint\cr
+         \noalign{\hrule}
+         &\multispan{29}{\vrule\hfil\tttf\strut\title\hfil\vrule}\cr
+         \noalign{\hrule}\next{}{\tt\string}{}
+         \noalign{\hrule}\next{\tt\string\rm}{\rm}{Ag}
+         \noalign{\hrule}\next{\tt\string\ss}{\ss}{Ag}
+         \noalign{\hrule}\next{\tt\string\tt}{\tt}{Ag}
+         \noalign{\hrule}\next{\tt\string$}{$}{Ag$}
+         \noalign{\hrule}}}
+   \stopbaselinecorrection}
+
+\gdef\showbodyfontenvironment%
+  {\dosingleempty\doshowbodyfontenvironment}
+
+\gdef\doshowbodyfontenvironment[#1]%
+  {\startbaselinecorrection
+   \vbox
+     {\dosetshowfonttitle{#1}%
+      \def\next##1%
+        {&&\getvalue{\bodyfontvariable{##1\s!text}}%          
+         &&\getvalue{\bodyfontvariable{##1\s!script}}%        
+         &&\getvalue{\bodyfontvariable{##1\s!scriptscript}}%  
+         &&\getvalue{\bodyfontvariable{##1\c!x}}%             
+         &&\getvalue{\bodyfontvariable{##1\c!xx}}%            
+         &&\getvalue{\bodyfontvariable{##1\interfaced\v!klein}}%       
+         &&\getvalue{\bodyfontvariable{##1\interfaced\v!groot}}%
+         &&\getvalue{\bodyfontvariable{##1\c!interlinie}}&\cr    
+         \noalign{\hrule}}
+      \halign to \localhsize
+        {##&\vrule##\strut
+         \tabskip=\!!zeropoint \!!plus 1fill
+         &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
+         &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
+         &\hfil##\hfil&\vrule##&\hfil##\hfil&##\vrule
+         \tabskip=\!!zeropoint\cr
+         \noalign{\hrule}
+         &\multispan{17}{\vrule\hfil\tttf\strut\title\hfil}\vrule\cr
+         \noalign{\hrule}
+         &&\tttf\tx\s!text&&\tttf\tx\s!script&&\tttf\tx\s!scriptscript
+         &&\tttf\tx\c!x&&\tttf\tx\c!xx&&\tttf\tx\v!klein&&\tttf\tx\v!groot 
+         &&\tttf\tx\c!interlinie&\cr
+         \noalign{\hrule}
+         \@EA\globalprocesscommalist\@EA[\bodyfontenvironmentlist]\next}}
+   \stopbaselinecorrection}
+
+\gdef\showfont%
+  {\dosingleempty\doshowfont}
+
+\beginTEX \iffontchar
+
+\gdef\iffontchar#1#2{\iftrue}
+
+\endTEX
+
+\gdef\doshowfont[#1]%
+  {\bgroup
+   \setupcolors[\c!status=\v!lokaal]%
+   \iffirstargument 
+     \definefont[\s!dummy][#1]\dummy
+   \else\ifdim2.5em>.05\hsize \tx
+        \ifdim2.5em>.05\hsize \txx 
+   \fi\fi\fi
+   \startbaselinecorrection
+   \vbox\bgroup
+   \forgetall 
+   \startoverlay
+     {\vbox
+        {\tf \setstrut \dummy 
+         \localcolortrue \offinterlineskip
+         \dostepwiserecurse{0}{15}{1}
+           {\let\row\recurselevel
+            \hbox
+              {\red
+               \dostepwiserecurse{0}{15}{1}
+                 {\let\col\recurselevel
+                  \scratchcounter="\hexnumber\row\hexnumber\col\relax
+\iffontchar\font\scratchcounter
+                  \setbox\scratchbox\ruledhbox{\black\char\scratchcounter}%
+                  \ifdim\wd\scratchbox>\!!zeropoint\relax
+                    \donetrue \else \donefalse
+                  \fi
+\else
+                  \setbox\scratchbox\hbox{\gray\vrule\!!width1ex\!!height.5ex\!!depth.5ex}%
+\fi
+                  \startoverlay
+                    {\tf\vbox to 2.5em 
+                       {\vss
+                        \hbox to 2.5em 
+                          {\dummy\ifdim\fontdimen2\font=\!!zeropoint
+\setbox\scratchbox=\hbox
+  {\raise.5\dp\scratchbox\hbox
+     {\lower.5\ht\scratchbox\copy\scratchbox}}%
+                             \ht\scratchbox\!!zeropoint
+                             \dp\scratchbox\!!zeropoint
+                           \else
+                             \ht\scratchbox\ht\strutbox
+                             \dp\scratchbox\dp\strutbox
+                             \strut
+                           \fi
+                           \hss\copy\scratchbox\hss}
+                        \vss}}
+                    {\tf\vbox to 2.3em 
+                       {\ifdone
+                          \blue \hsize2.4em 
+                          \edef\ascii
+                            {\ifnum\hyphenchar\font=\scratchcounter 
+                               hyph%
+                             \else\ifnum\skewchar\font=\scratchcounter 
+                               skew%
+                             \fi\fi}%
+                          \tinyfont 
+                          {\red\ascii}\hfill
+                          \number\scratchcounter
+                          \vfill
+                          \octnumber\scratchcounter\hfill
+                          \lchexnumbers\scratchcounter\par
+                        \fi}}
+                  \stopoverlay}}}
+          \par}}
+     {\tf\rooster[\c!nx=16,\c!ny=16,\c!dx=2.5,\c!dy=2.5,\c!eenheid=em]}
+   \stopoverlay
+   \nointerlineskip
+   \vskip2pt
+   \edef\ascii
+     {name:~{\black\fontname\font}\quad
+      encoding:~{\black\currentencoding}\quad
+      mapping:~{\black\currentmapping}\quad 
+      handling:~{\black\fonthandling}}%
+   \tf\hbox to 40em
+     {\blue\hfill\tinyfont\setstrut\strut\ascii}
+   \egroup
+   \stopbaselinecorrection
+   \egroup}
+
+\gdef\showfontstyle%
+  {\dotripleempty\doshowfontstyle}
+
+\gdef\doshowfontstyle[#1][#2][#3]%
+  {\ifthirdargument
+     \bgroup
+     \raggedright
+     \switchtobodyfont[#1]
+     \def\dodocommando##1##2%
+       {\starttextrule{\tttf #1 ##1 ##2} 
+        \nobreak \getvalue{##2}%
+        \dorecurse{255}
+          {\iffontchar\font\recurselevel\relax
+             \char\recurselevel\relax\space
+           \fi}
+        \par \nobreak
+        \stoptextrule}
+     \def\docommando##1%
+       {\getvalue{##1}\processcommacommand[#3]{\dodocommando{##1}}}
+     \processcommalist[#2]\docommando  
+     \egroup
+   \else\ifsecondargument
+                      \showfontstyle[#1][#2][\alternativetextlist]%
+     \doif{#2}{\c!mm}{\showfontstyle[#1][#2][\alternativemathlist]}%
+   \else
+     \showfontstyle[#1][\c!rm]\showfontstyle[#1][\c!ss]
+     \showfontstyle[#1][\c!tt]\showfontstyle[#1][\c!mm]
+   \fi\fi}
+
+\protect \endinput 
diff --git a/tex/context/base/font-unk.tex b/tex/context/base/font-unk.tex
index f230b7a43..2f2cf1695 100644
--- a/tex/context/base/font-unk.tex
+++ b/tex/context/base/font-unk.tex
@@ -45,8 +45,21 @@
 \definefontsynonym [MathItalic]         [unknown]
 \definefontsynonym [MathSymbol]         [unknown]
 
+\definefontsynonym [MathNoName]         [unknown]
+
 \definefontsynonym [MathAlpha]          [unknown]
 \definefontsynonym [MathBeta]           [unknown]
+\definefontsynonym [MathGamma]          [unknown]
+\definefontsynonym [MathDelta]          [unknown]
+
+\definefontsynonym [MathRomanBold]      [MathRoman]
+\definefontsynonym [MathExtensionBold]  [MathExtension]  
+\definefontsynonym [MathItalicBold]     [MathItalic]     
+\definefontsynonym [MathSymbolBold]     [MathSymbol]     
+\definefontsynonym [MathAlphaBold]      [MathAlpha]      
+\definefontsynonym [MathBetaBold]       [MathBeta]       
+\definefontsynonym [MathGammaBold]      [MathGamma]      
+\definefontsynonym [MathDeltaBold]      [MathDelta]      
 
 \definefontsynonym [Handwriting]        [unknown]
 \definefontsynonym [Calligraphic]       [unknown]
@@ -87,142 +100,62 @@
 \definefontsynonym [TypeBoldSlanted]    [MonoBoldSlanted]    
 \definefontsynonym [TypeCaps]           [MonoCaps]           
 
-% To be added: Handwriting, Calligraphic
-
 %D Next we define roman, sans and monospaced font sets. 
 
 \definebodyfont [default] [rm]
-  [ tf=Serif            sa 1,
-   tfa=Serif            sa a,
-   tfb=Serif            sa b,
-   tfc=Serif            sa c,
-   tfd=Serif            sa d,
-    bf=SerifBold        sa 1,
-   bfa=SerifBold        sa a,
-   bfb=SerifBold        sa b,
-   bfc=SerifBold        sa c,
-   bfd=SerifBold        sa d,
-    it=SerifItalic      sa 1,
-   ita=SerifItalic      sa a,
-   itb=SerifItalic      sa b,
-   itc=SerifItalic      sa c,
-   itd=SerifItalic      sa d,
-    sl=SerifSlanted     sa 1,
-   sla=SerifSlanted     sa a,
-   slb=SerifSlanted     sa b,
-   slc=SerifSlanted     sa c,
-   sld=SerifSlanted     sa d,
-    bi=SerifBoldItalic  sa 1,
-   bia=SerifBoldItalic  sa a,
-   bib=SerifBoldItalic  sa b,
-   bic=SerifBoldItalic  sa c,
-   bid=SerifBoldItalic  sa d,
-    bs=SerifBoldSlanted sa 1,
-   bsa=SerifBoldSlanted sa a,
-   bsb=SerifBoldSlanted sa b,
-   bsc=SerifBoldSlanted sa c,
-   bsd=SerifBoldSlanted sa d,
-    sc=SerifCaps        sa 1,
-   sca=SerifCaps        sa a,
-   scb=SerifCaps        sa b,
-   scc=SerifCaps        sa c,
-   scd=SerifCaps        sa d]
+  [tf=Serif sa 1,
+   bf=SerifBold sa 1,
+   it=SerifItalic sa 1,
+   sl=SerifSlanted sa 1,
+   bi=SerifBoldItalic sa 1,
+   bs=SerifBoldSlanted sa 1,
+   sc=SerifCaps sa 1]
 
 \definebodyfont [default] [ss]
-  [ tf=Sans sa 1,
-   tfa=Sans sa a,
-   tfb=Sans sa b,
-   tfc=Sans sa c,
-   tfd=Sans sa d,
-    bf=SansBold sa 1,
-   bfa=SansBold sa a,
-   bfb=SansBold sa b,
-   bfc=SansBold sa c,
-   bfd=SansBold sa d,
-    it=SansItalic sa 1,
-   ita=SansItalic sa a,
-   itb=SansItalic sa b,
-   itc=SansItalic sa c,
-   itd=SansItalic sa d,
-    sl=SansSlanted sa 1,
-   sla=SansSlanted sa a,
-   slb=SansSlanted sa b,
-   slc=SansSlanted sa c,
-   sld=SansSlanted sa d,
-    bi=SansBoldItalic sa 1,
-   bia=SansBoldItalic sa a,
-   bib=SansBoldItalic sa b,
-   bic=SansBoldItalic sa c,
-   bid=SansBoldItalic  sa d,
-    bs=SansBoldSlanted sa 1,
-   bsa=SansBoldSlanted sa a,
-   bsb=SansBoldSlanted sa b,
-   bsc=SansBoldSlanted sa c,
-   bsd=SansBoldSlanted sa d,
-    sc=SansCaps sa 1,
-   sca=SansCaps sa a,
-   scb=SansCaps sa b,
-   scc=SansCaps sa c,
-   scd=SansCaps sa d]
+  [tf=Sans sa 1,
+   bf=SansBold sa 1,
+   it=SansItalic sa 1,
+   sl=SansSlanted sa 1,
+   bi=SansBoldItalic sa 1,
+   bs=SansBoldSlanted sa 1,
+   sc=SansCaps sa 1]
 
 \definebodyfont [default] [tt]
-  [ tf=Mono            sa 1,
-   tfa=Mono            sa a,
-   tfb=Mono            sa b,
-   tfc=Mono            sa c,
-   tfd=Mono            sa d,
-    bf=MonoBold        sa 1,
-   bfa=MonoBold        sa a,
-   bfb=MonoBold        sa b,
-   bfc=MonoBold        sa c,
-   bfd=MonoBold        sa d,
-    it=MonoItalic      sa 1,
-   ita=MonoItalic      sa a,
-   itb=MonoItalic      sa b,
-   itc=MonoItalic      sa c,
-   itd=MonoItalic      sa d,
-    sl=MonoSlanted     sa 1,
-   sla=MonoSlanted     sa a,
-   slb=MonoSlanted     sa b,
-   slc=MonoSlanted     sa c,
-   sld=MonoSlanted     sa d,
-    bi=MonoBoldItalic  sa 1,
-   bia=MonoBoldItalic  sa a,
-   bib=MonoBoldItalic  sa b,
-   bic=MonoBoldItalic  sa c,
-   bid=MonoBoldItalic  sa d,
-    bs=MonoBoldSlanted sa 1,
-   bsa=MonoBoldSlanted sa a,
-   bsb=MonoBoldSlanted sa b,
-   bsc=MonoBoldSlanted sa c,
-   bsd=MonoBoldSlanted sa d,
-    sc=MonoCaps        sa 1,
-   sca=MonoCaps        sa a,
-   scb=MonoCaps        sa b,
-   scc=MonoCaps        sa c,
-   scd=MonoCaps        sa d]
+  [tf=Mono sa 1,
+   bf=MonoBold sa 1,
+   it=MonoItalic sa 1,
+   sl=MonoSlanted sa 1,
+   bi=MonoBoldItalic sa 1,
+   bs=MonoBoldSlanted sa 1,
+   sc=MonoCaps sa 1]
 
 \definebodyfont [default] [mm]
   [mr=MathRoman mo 1,
    ex=MathExtension mo 1,
    mi=MathItalic mo 1,
    sy=MathSymbol mo 1,
+   nn=MathNoName mo 1,
    ma=MathAlpha mo 1,
-   mb=MathBeta mo 1]
+   mb=MathBeta mo 1,
+   mc=MathGamma mo 1,
+   md=MathDelta mo 1]
+
+\definebodyfont 
+  [boldmath] [mm] 
+  [mrbf=MathRomanBold mo 1,
+   exbf=MathExtensionBold mo 1,
+   mibf=MathItalicBold mo 1,
+   sybf=MathSymbolBold mo 1,
+   mabf=MathAlphaBold mo 1,
+   mbbf=MathBetaBold mo 1,
+   mcbf=MathGammaBold mo 1,
+   mdbf=MathDeltaBold mo 1]
 
 \definebodyfont [default] [hw]
-  [ tf=Handwriting sa 1,
-   tfa=Handwriting sa a,
-   tfb=Handwriting sa b,
-   tfc=Handwriting sa c,
-   tfd=Handwriting sa d]
+  [tf=Handwriting sa 1]
 
 \definebodyfont [default] [cg]
-  [ tf=Calligraphy sa 1,
-   tfa=Calligraphy sa a,
-   tfb=Calligraphy sa b,
-   tfc=Calligraphy sa c,
-   tfd=Calligraphy sa d]
+  [tf=Calligraphy sa 1]
 
 %D These definitions come into action as soon as names are 
 %D mapped onto real file names (or names that themselves are 
diff --git a/tex/context/base/font-vnr.tex b/tex/context/base/font-vnr.tex
index 67bdbebe1..d9e4a3b67 100644
--- a/tex/context/base/font-vnr.tex
+++ b/tex/context/base/font-vnr.tex
@@ -1,3 +1,5 @@
+% NOT YET ADAPTED TO THE NEW FONT MACROS 
+
 %D \module
 %D   [       file=font-vnr,
 %D        version=1999.12.12,
@@ -11,6 +13,8 @@
 %C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
 %C details. 
 
+% to do 
+
 \definefontsynonym [Serif]            [vnb10] [encoding=x5]
 \definefontsynonym [SerifBold]        [vnb10] [encoding=x5]
 \definefontsynonym [SerifItalic]      [vnb10] [encoding=x5]
diff --git a/tex/context/base/lang-ini.tex b/tex/context/base/lang-ini.tex
index 2654d7087..f582af230 100644
--- a/tex/context/base/lang-ini.tex
+++ b/tex/context/base/lang-ini.tex
@@ -294,16 +294,16 @@
 \def\doloadpatterns#1#2%
   {\expanded{\getcommacommandsize[\getvalue{\??la#2\s!encoding}]}%
    \ifnum\commalistsize>0
-\message{[nofpatterns #2: \commalistsize/\getvalue{\??la#2\s!encoding}]}%
+     %\message{[nofpatterns #2: \commalistsize/\getvalue{\??la#2\s!encoding}]}%
      \dorecurse\commalistsize
        {\expanded{\getfromcommacommand[\getvalue{\??la#2\s!encoding}][\recurselevel]}%
         \let\patternencoding\commalistelement
         \expanded{\getfromcommacommand[\getvalue{\??la#2\s!mapping }][\recurselevel]}%
         \let\patternmapping \commalistelement
-\message{[patterns: #1/#2/\patternencoding/\patternmapping]}%
+       %\message{[patterns: #1/#2/\patternencoding/\patternmapping]}%
         \dodoloadpatterns{#1}{#2}\patternencoding\patternmapping}%
    \else
-\message{[patterns: #1/#2]}%
+    %\message{[patterns: #1/#2]}%
      \dodoloadpatterns{#1}{#2}{}{}%
    \fi}
 
diff --git a/tex/context/base/main-001.tex b/tex/context/base/main-001.tex
index 51a86e887..65abc611e 100644
--- a/tex/context/base/main-001.tex
+++ b/tex/context/base/main-001.tex
@@ -15,24 +15,6 @@
 
 \writestatus{loading}{Context Core Macros (1)}
 
-\newevery \everybodyfont \Everybodyfont % just to be sure
-
-\appendtoks \presetnormallineheight \to \everybodyfont
-\appendtoks \setnormalbaselines     \to \everybodyfont
-\appendtoks \setstrut               \to \everybodyfont
-\appendtoks \settopskip             \to \everybodyfont
-\appendtoks \setmaxdepth            \to \everybodyfont
-\appendtoks \stelinspringenin       \to \everybodyfont
-\appendtoks \stelblankoin           \to \everybodyfont
-\appendtoks \stelwitruimtein        \to \everybodyfont
-%\appendtoks\setupfootnotes         \to \everybodyfont
-\appendtoks \stelspatieringin       \to \everybodyfont % nieuw
-\appendtoks \setdisplayskips        \to \everybodyfont % nieuw
-
-% \appendtoks .. \to \everypar
-% \appendtoks .. \to \everypar
-% \appendtoks .. \to \everypar
-
 % kan elders ook worden gebruikt i.i.g ongeveer
 % \v!tekst EN \c!tekst etc checken
 
@@ -504,202 +486,6 @@
         \s!default=>{\dodoglobal\convertargument#2\to#3},
         \s!unknown=>{\dodoglobal\convertargument#2\to#3}]}
 
-% om problemen te voorkomen:
-%
-% \ascii   => \@@ascii@@
-% \asciiA  => \@@ascii@@A
-% \asciiB  => \@@ascii@@B
-
-% Nodig i.v.m. inspringen eerste alineas
-
-\def\explicithmode%
-  {\unhbox\voidb@x}
-
-% Nodig voor gebruikers
-
-\def\geentest{\donottest}
-
-% Dit moet nog ergens een plaats krijgen:
-
-\def\stelfactorenin%
-  {\stelwitruimtein
-   \stelblankoin
-   \settopskip
-   \setmaxdepth}
-
-% Nog doen:
-%
-%  \goodbreak -> \allowbreak en \dosomebreak{..} in koppen
-%
-% bij koppen zowieso: \blanko[reset]
-
-% Nog in commando verwerken:
-%
-% \voorkeur � la \blanko
-%
-% Om ongewenste witruimte te voorkomen kan met \dosomebreak{\break}
-% een \penalty v��r witruimte worden geplaatst.
-
-\def\removelastskip% a redefinition of plain 
-  {\ifvmode\ifdim\lastskip=\z@\else\vskip-\lastskip\fi\fi}
-
-\def\dosomebreak#1%
-  {\skip0=\lastskip
-   \removelastskip
-   %\type{#1}%
-   #1\relax
-   \ifdim\skip0=\!!zeropoint
-   \else
-     \vskip\skip0
-   \fi}
-
-% beter, vooral in \vbox; nog in \pagina toepassen s!
-
-\def\doifoutervmode#1%
-  {\ifvmode\ifinner\else#1\fi\fi}
-
-\def\dosomebreak#1%
-  {\doifoutervmode
-     {\skip0=\lastskip
-      \removelastskip
-      %\leavevmode\type{#1}%
-      #1\relax
-      \ifdim\skip0=\!!zeropoint % else interference with footnotes
-      \else
-        \vskip\skip0
-      \fi}}
-
-% Idem:
-%
-% \springin
-
-%\def\noindentation% vervallen
-%   {\EveryPar
-%     {\ifdim\parindent=\!!zeropoint
-%      \else
-%        \bgroup
-%        \setbox0=\lastbox
-%        \egroup
-%      \fi
-%      \EveryPar{}}}
-
-\newif\ifindentation \indentationtrue  % documenteren, naar buiten
-
-\let\checkindentation=\relax
-
-\def\donoindentation%
-  {\ifdim\parindent=\!!zeropoint
-   \else
-     \bgroup
-     \setbox0=\lastbox
-     \egroup
-   \fi}
-
-\def\noindentation% made global
-  {\ifinpagebody \else
-     \global\indentationfalse
-     \gdef\checkindentation%
-       {\donoindentation
-        \gdef\checkindentation{\global\indentationtrue}}%
-   \fi}
-
-\def\nonoindentation% bv bij floats
-  {\ifinpagebody \else
-     \global\indentationtrue
-     \gdef\checkindentation{\global\indentationtrue}%
-   \fi}
-
-\def\indentation%
-  {\ifvmode \ifdim\parindent=\!!zeropoint \else
-     % was : \hskip\parindent 
-     % can be: \indent  
-     % but we test: 
-     \noindent\hskip\parindent 
-   \fi \fi}
-
-% vergeten
-
-\def\forgeteverypar%
-  {\everypar{}}
-
-\def\forgeteverypar%
-  {\everypar{\the\neverypar}}
-
-\def\forgetparindent%
-  {\forgeteverypar
-   \indentfirstparagraphtrue % recently added
-   \stelinspringenin[\v!geen]}
-
-\def\forgetparskip%
-  {\stelwitruimtein[\v!geen]}
-
-\def\forgetbothskips%
-  {\tolerance=1500
-   \leftskip\!!zeropoint
-   \rightskip\!!zeropoint\relax}
-
-\def\forgetspacing%
-  {\emergencystretch\!!zeropoint\relax}
-
-\def\forgetall%
-  {\the\everyforgetall}
-
-\appendtoks \let\par\endgraf    \to \everyforgetall % i.v.m. getpar etc
-\appendtoks \notragged          \to \everyforgetall 
-\appendtoks \forgetparskip      \to \everyforgetall  
-\appendtoks \forgetparindent    \to \everyforgetall 
-\appendtoks \forgetbothskips    \to \everyforgetall 
-\appendtoks \forgetspacing      \to \everyforgetall % i.v.m. funny spacing in pagebody
-\appendtoks \everypar\emptytoks \to \everyforgetall % indeed!
-
-\def\localvbox#1#%
-  {\vbox#1\bgroup
-     \forgetparskip
-     \setlocalhsize
-     \hsize=\localhsize
-     \forgetparindent
-     \forgetbothskips
-     \forgeteverypar
-     \let\next=}
-
-% ach ja
-
-\unexpanded\def\dostartattributes#1#2#3%
-  {\begingroup  % geen \bgroup, anders in mathmode lege \hbox
-   \doifdefinedelse{#1#2}
-     {\def\fontattribute{\getvalue{#1#2}}}
-     {\let\fontattribute=\empty}%
-   \doifdefinedelse{#1#3}
-     {\def\colorattribute{\getvalue{#1#3}}}
-     {\let\colorattribute=\empty}%
-   \startcolor[\colorattribute]%
-   \@EA\doconvertfont\@EA{\fontattribute}}
-
-\unexpanded\def\dostopattributes%
-  {\stopcolor
-   \endgroup}
-
-\unexpanded\def\doattributes#1#2#3#4%
-  {\dostartattributes{#1}{#2}{#3}{#4}\dostopattributes}
-
-% kan vaker worden toegepast:
-
-\newskip\leftskipadaption
-
-\def\doadaptleftskip#1%
-  {\dosetleftskipadaption{#1}%
-   \advance\leftskip by \leftskipadaption}
-
-\def\dosetleftskipadaption#1%
-  {\leftskipadaption\!!zeropoint
-   \processaction[#1] % \ExpandFirstAfter
-     [\v!standaard=>\leftskipadaption=
-                    \ifdim\voorwit=\!!zeropoint\@@sllinks\else\voorwit\fi,
-             \v!ja=>\leftskipadaption=
-                    \ifdim\voorwit=\!!zeropoint\@@sllinks\else\voorwit\fi,
-            \v!nee=>,
-        \s!unknown=>\leftskipadaption=#1]}
-
 \def\herhaal            {\dorepeat}
 \def\herhaler           {\repeater}
 \def\herhaalmetcommando {\dorepeatwithcommand}
@@ -790,345 +576,6 @@
 
 \catcode`\^^L=\@@endofline
 
-\def\toonstruts%
-  {\setteststrut}
-
-% Hieronder volgen enkele instellingen en macro's ten behoeve
-% van de interlinie en \strut. De waarden 2.8, 0.07, 0.72 en
-% 0.28 zijn ooit eens ontleend aan INRS-TEX en moeten wellicht
-% nog eens instelbaar worden.
-%
-%   \lineheight        : de hoogte van een regel
-%   \spacing{getal}    : instellen interlinie
-%   \normalbaselines   : instellen regelafstend
-%
-%   \setstrut          : instellen \strut
-%   \setnostrut        : resetten \strut, \endstrut, \begstrut
-%
-%   \setteststrut      : instellen zichtbare struts
-%   \resetteststrut    : instellen onzichtbare struts
-%
-%   \setfontparameters : instellen na fontset
-%
-% De hoogte van een regel (\lineheight) is gelijk aan de
-% som van de hoogte (\ht) en diepte (\dp) van \strutbox.
-%
-%   \strut            : denkbeeldig blokje met hoogte en diepte
-%
-% Een \hbox kan als deze aan het begin van een regel staat
-% een breedte \hsize krijgen. Dit is soms te voorkomen met het
-% commando \leavevmode. Binnen een \vbox geeft dit echter
-% niet altijd het gewenste resultaat, vandaar het commando
-%
-%   \leaveoutervmode
-
-% Pas op: niet zomaar \topskip en \baselineskip aanpassen
-% en zeker niet \widowpenalty. Dit kan ernstige gevolgen
-% hebben voor kolommen.
-%
-% Enige glue kan op zich geen kwaad, echter als blanko=vast,
-% dan moet ook de rek 0 zijn. Binnen kolommen is rek ook
-% niet bepaald mooi. Een hele kleine waarde (0.025) voldoet,
-% omdat een positieve glue eindeloos rekbaar is.
-
-\newdimen\strutdimen
-\newdimen\lineheight
-\newdimen\openlineheight
-\newdimen\openstrutheight
-\newdimen\openstrutdepth
-\def\strutheightfactor      {.72}
-\def\strutdepthfactor       {.28}
-
-\def\baselinefactor         {2.8}
-\def\baselinegluefactor     {0}
-
-\def\normallineheight       {\baselinefactor ex}
-\def\minimallinedistance    {\lineskip} 
-
-\def\strutheight            {0pt}
-\def\strutdepth             {0pt}
-\def\strutwidth             {0pt}
-
-\def\spacingfactor          {1}
-
-\def\topskipfactor          {1.0}
-\def\maxdepthfactor         {0.5}
-
-\def\systemtopskipfactor    {\topskipfactor}
-\def\systemmaxdepthfactor   {\maxdepthfactor}
-
-% De onderstaande definitie wordt in de font-module overruled
-
-\ifx\globalbodyfontsize\undefined
-  \newdimen\globalbodyfontsize
-  \globalbodyfontsize=12pt
-\fi
-\ifx\normalizedbodyfontsize\undefined
-  \def\normalizedbodyfontsize{12pt}
-\fi
-
-% door een \dimen. Dit is geen probleem omdat (1) de default
-% korpsgrootte 12pt is en (2) de fonts nog niet geladen zijn
-% en de instellingen bij het laden nogmaals plaatsvinden.
-
-\def\topskipcorrection%
-  {\ifdim\topskip>\openstrutheight
-     \vskip\topskip
-     \vskip-\openstrutheight
-   \fi
-   \vbox{\strut}
-   \vskip-\openlineheight}
-
-\def\settopskip% the extra test is needed for the lbr family
-  {\topskip=\systemtopskipfactor\globalbodyfontsize
-   \ifgridsnapping \else
-     \ifr@ggedbottom\!!plus5\globalbodyfontsize\fi
-   \fi
-   \relax % the skip
-   \ifdim\topskip<\strutheightfactor\openlineheight
-     \topskip=\strutheightfactor\openlineheight\relax
-   \fi}
-
-\def\setmaxdepth%
-  {\maxdepth=\systemmaxdepthfactor\globalbodyfontsize}
-
-\def\normalbaselines%
-  {\baselineskip\normalbaselineskip
-   \lineskip\normallineskip
-   \lineskiplimit\normallineskiplimit}
-
-\def\setnormalbaselines%
-  {\lineheight=\normallineheight
-   \openlineheight=\spacingfactor\lineheight
-\openstrutheight=\strutheightfactor\openlineheight
-\openstrutdepth =\strutdepthfactor \openlineheight
-   \normalbaselineskip=
-     \openlineheight
-     \!!plus\baselinegluefactor\openlineheight
-     \!!minus\baselinegluefactor\openlineheight
-   \normallineskip\minimallinedistance\relax % \!!onepoint\relax
-   \normallineskiplimit\!!zeropoint\relax
-   \normalbaselines}
-
-\def\setspacingfactor#1\to#2\by#3\\%
-  {\strutdimen=#2pt\relax
-   \strutdimen=#3\strutdimen
-   \edef#1{\withoutpt{\the\strutdimen}}}
-
-\def\spacing#1%
-  {\ifgridsnapping
-     \edef\spacingfactor{1}%
-     \showmessage{\m!layouts}{11}{#1}%
-   \else
-     \edef\spacingfactor{#1}%
-   \fi
-   \setspacingfactor\systemtopskipfactor\to\topskipfactor\by#1\\%
-   \setspacingfactor\systemmaxdepthfactor\to\maxdepthfactor\by#1\\%
-   \setnormalbaselines
-   \setstrut}
-
-\def\setstrutdimen#1#2#3%              % een strut is n.m maal ex
-  {\strutdimen=\normallineheight       % wat niet per se \lineheight
-   \strutdimen=#2\strutdimen           % is omdat een strut lokaal
-   \strutdimen=#3\strutdimen           % kan afwijken van de globale
-   \edef#1{\the\strutdimen}}           % strut
-
-% plain definition:
-%
-% \def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi}
-%
-% could be: 
-%
-% \def\strut{\relax\ifmmode\copy\else\unhcopy\fi\strutbox}
-
-\let\normalstrut=\strut 
-
-% The double \hbox construction enables us to \backtrack
-% boxes.
-
-% \def\setstrut%
-%   {\setstrutdimen\strutheight\strutheightfactor\spacingfactor
-%    \setstrutdimen\strutdepth \strutdepthfactor \spacingfactor
-%    \let\strut=\normalstrut
-%    \setbox\strutbox=\normalhbox
-%      {\normalhbox
-%         {\vrule
-%            \!!width  \strutwidth
-%            \!!height \strutheight
-%            \!!depth  \strutdepth
-%            \normalkern-\strutwidth}}}
-
-\def\setstrut%
-  {\setstrutdimen\strutheight\strutheightfactor\spacingfactor
-   \setstrutdimen\strutdepth \strutdepthfactor \spacingfactor
-   \dosetstrut}
-
-\def\setcharstrut#1%
-  {\setbox\strutbox=\hbox{#1}% 
-   \edef\strutheight{\the\ht\strutbox}%
-   \edef\strutdepth {\the\dp\strutbox}%
-   \dosetstrut}
-
-\def\setcapstrut% could be M, but Q has descender
-  {\setcharstrut{Q}} 
-
-%D Centered looks nicer: 
-
-\def\dosetstrut%
-  {\let\strut=\normalstrut
-   \setbox\strutbox=\normalhbox
-     {\normalhbox to \!!zeropoint
-        {% \hss % new, will be option 
-         \vrule
-           \!!width \strutwidth
-           \!!height\strutheight
-           \!!depth \strutdepth
-         \hss}}}
-%D Sometimes a capstrut comes in handy
-%D
-%D \starttabulatie[|Tl|l|l|]
-%D \NC yes          \NC normal strut               \NC {\toonstruts\setupstrut[ja]\strut}  \NC \NR 
-%D \NC no           \NC no strut                   \NC {\toonstruts\setupstrut[nee]\strut}  \NC \NR 
-%D \NC kap          \NC a capital strut (i.e. Q)   \NC {\toonstruts\setupstrut[kap]\strut} \NC \NR 
-%D \NC A B \unknown \NC a character strut (e.g. A) \NC {\toonstruts\setupstrut[A]\strut}   \NC \NR 
-%D \NC              \NC a normal strut             \NC {\toonstruts\setupstrut\strut}      \NC \NR 
-%D \stoptabulatie
-
-\def\setupstrut%
-  {\dosingleempty\dosetupstrut}
-
-\def\dosetupstrut[#1]% yet undocumented 
-  {\processaction
-     [#1]
-     [     \v!ja=>\setstrut,
-          \v!nee=>\setnostrut,
-          \v!kap=>\setcapstrut,
-      \s!default=>\setstrut,
-      \s!unknown=>\setcharstrut{\commalistelement}]}
-
-\def\setteststrut%
-  {\def\strutwidth{.8pt}%
-   \setstrut}
-
-\def\begstrut%
-  {\relax\ifdim\ht\strutbox=\!!zeropoint\else
-     \strut
-     \normalpenalty\!!tenthousand
-     \normalhskip\!!zeropoint
-     \ignorespaces
-   \fi}
-
-\def\endstrut%
-  {\relax\ifhmode\ifdim\ht\strutbox=\!!zeropoint\else
-     \unskip\unskip\unskip
-     \normalpenalty\!!tenthousand
-     \normalhskip\!!zeropoint
-     \strut
-   \fi\fi}
-
-\def\setnostrut%
-  {\setbox\strutbox=\normalhbox{\normalhbox{}}%
-   \let\strut=\empty
-   \let\endstrut=\empty
-   \let\begstrut=\empty}
-
-% unsave:
-%
-% \def\pseudostrut%
-%   {\bgroup
-%    \setnostrut
-%    \normalstrut
-%    \egroup}
-%
-% try:
-%
-% \startchemie
-%   \chemie[ONE,Z0,SB15,MOV1,SB15,Z0][C,C]
-% \stopchemie
-%
-% so:
-
-\def\pseudostrut%
-  {\noindent} % better: \dontleavehmode
-
-\let\pseudobegstrut\pseudostrut
-
-\def\pseudoendstrut% removes all kind of signals 
-  {\ifhmode\unskip\unskip\unskip\unskip\fi}
-
-\def\resetteststrut%
-  {\let\strutwidth=\!!zeropoint
-   \setstrut}
-
-\def\setfontparameters%
-  {\the\everybodyfont}
-
-%D Handy: 
-
-\def\baselinedistance{\the\lineheight}
-
-%D We need \type{\normaloffinterlineskip} because the new
-%D definition contains an assignment, and |<|don't ask me
-%D why|>| this assignment gives troubles in for instance the
-%D visual debugger.
-
-\ifx\undefined\normaloffinterlineskip
-  \let\normaloffinterlineskip=\offinterlineskip % knuth's original
-\fi
-
-\def\offinterlineskip%
-  {\ifdim\baselineskip>\!!zeropoint
-     \edef\oninterlineskip%
-       {\baselineskip=\the\baselineskip
-        \lineskip=\the\lineskip
-        \lineskiplimit=\the\lineskiplimit
-        \noexpand\let\noexpand\offinterlineskip=\noexpand\normaloffinterlineskip}%
-   \else
-     \let\oninterlineskip=\setnormalbaselines
-   \fi
-   \normaloffinterlineskip}
-
-\let\oninterlineskip=\relax
-
-\def\leaveoutervmode%
-  {\ifvmode\ifinner\else
-     \leavevmode
-   \fi\fi}
-
-% We stellen enkele penalties anders in dan Plain TEX:
-
-\def\defaultwidowpenalty{2000} % was: 1000
-\def\defaultclubpenalty {2000} % was:  800
-
-\widowpenalty=\defaultwidowpenalty\relax
-\clubpenalty =\defaultclubpenalty \relax
-
-% Bovendien definieren we enkele extra \fill's:
-
-\def\hfilll%
-  {\hskip\!!zeropoint\!!plus1filll\relax}
-
-\def\vfilll%
-  {\vskip\!!zeropoint\!!plus1filll\relax}
-
-% De onderstaande hulpmacro's moeten nog eens instelbaar worden
-% gemaakt.
-
-\def\tfskipsize{1em\relax}
-
-\def\tfkernsize{1ex\relax}
-
-\def\tfskip%
-  {{\tf\hskip\tfskipsize}}
-
-\def\tfkern%
-  {{\tf\kern\tfkernsize}}
-
-% Dit hoort eigenlijk thuis onder het kopje boodschappen cq,
-% meldingen.
-
-\let\mindermeldingen\dontcomplain
-
 % Maten
 %
 % De onderstaande instellingen worden gebruikt voor het
@@ -1843,7 +1290,7 @@
 \def\douitstellen% PAS OP 2X MAIN-001
   {\the\everytopofpage
    \ifinuitstellen\else\ifcase\nofpostponedblocks\else % The \nof-test is
-\bgroup
+\bgroup % needed 
 \black % else problems inside split verbatim 
 \restoreglobalbodyfont % else problems inside split verbatim 
      \global\pagetotal\!!zeropoint % recently added 
@@ -2984,809 +2431,6 @@
        {\copy\rightlogos}%
    \fi}
 
-% \frenchspacing leidt soms tot afbreken tussen -, vandaar
-% de variant \newfrenchspacing.
-
-\def\dofrenchspacing#1%
-  {\sfcode`\.#1 \sfcode`\,#1\relax
-   \sfcode`\?#1 \sfcode`\!#1\relax
-   \sfcode`\:#1 \sfcode`\;#1\relax}
-
-\def\frenchspacing%
-  {\dofrenchspacing{1000}}   % \@m
-
-\def\newfrenchspacing%
-  {\dofrenchspacing{1050}}   % \@ml
-
-\def\complexstelspatieringin[#1]%
-  {\processaction
-     [#1]
-     [\v!opelkaar=>\newfrenchspacing,
-          \v!ruim=>\nonfrenchspacing]%
-   \updateraggedskips}
-
-\def\simplestelspatieringin%
-  {\updateraggedskips}
-
-\definecomplexorsimple\stelspatieringin
-
-\bgroup
-\catcode`\~=\@@active       % eigenlijk is ~ al actief
-\gdef\fixedspaces%          % in Plain \TeX, maar we weten
-  {\catcode`\~=\@@active    % nooit wat er inmiddels is
-   \def~{\fixedspace}}      % gebeurd, vandaar.
-\egroup
-
-\def\space      { }
-\def\fixedspace {\hskip.5em\relax}
-\def\nospace    {\unskip\ignorespaces}
-
-\let\spatie     \space
-\let\hardespatie\fixedspace
-\let\geenspatie \nospace
-
-\def\opelkaar%
-  {\nointerlineskip}
-
-\def\omlaag[#1]% nog eens mooier, relateren aan blanko
-  {\nointerlineskip
-   \vskip#1 }
-
-\newskip\tussenwit
-\tussenwit=\!!zeropoint
-
-\def\blankokleinmaat%
-  {\smallskipamount}
-
-\def\blankomiddelmaat%
-  {\medskipamount}
-
-\def\blankogrootmaat%
-  {\bigskipamount}
-
-\def\currentwitruimte%
-  {\!!zeropoint}
-
-\def\stelwitruimteopnieuwin%
-  {\expanded{\stelwitruimtein[\currentwitruimte]}}
-
-\newif\ifwitruimteflexibel \witruimteflexibeltrue
-
-%\def\dodostelwitruimtein[#1]%
-%  {%\witruimteflexibeltrue
-%   \processallactionsinset
-%     [#1]
-%     [\v!herstel=>,
-%         \v!vast=>\witruimteflexibelfalse,
-%     \v!flexibel=>\witruimteflexibeltrue,
-%        \v!regel=>\tussenwit=\baselineskip,
-%   \v!halveregel=>\tussenwit=.5\baselineskip,
-%      \s!default=>\doifnot{\currentwitruimte}{\v!geen}
-%                    {\stelwitruimteopnieuwin},
-%      \s!unknown=>\@EA\assigndimension\@EA{\commalistelement} % \@EA is nodig
-%                    {\tussenwit}
-%                    {\blankokleinmaat}{\blankomiddelmaat}{\blankogrootmaat}]%   % te vangen
-%   \edef\currentwitruimte%
-%     {\ifdim\tussenwit=\!!zeropoint
-%        \v!geen
-%      \else
-%        \ifgridsnapping\the\baselineskip\else\the\tussenwit\fi
-%      \fi}%
-%   \ifgridsnapping
-%     \witruimteflexibelfalse
-%     \tussenwit=1\tussenwit
-%     \ifdim\tussenwit>\!!zeropoint
-%       \tussenwit=\baselineskip
-%     \fi
-%   \else
-%     \ifwitruimteflexibel \else \tussenwit=1\tussenwit \fi
-%   \fi
-%   \parskip=\tussenwit}
-%
-%\def\dostelwitruimtein[#1]%
-%  {\expanded{\dodostelwitruimtein[#1]}}
-%
-%\def\stelwitruimtein%
-%  {\dosingleempty\dostelwitruimtein}
-
-\definecomplexorsimple\stelwitruimtein
-
-\def\complexstelwitruimtein[#1]%
-  {\expanded{\dostelwitruimtein[#1]}%
-   \dodostelwitruimtein}
-
-\def\dostelwitruimtein[#1]%
-  {\processallactionsinset
-     [#1]
-     [\v!herstel=>,
-         \v!vast=>\witruimteflexibelfalse,
-     \v!flexibel=>\witruimteflexibeltrue,
-        \v!regel=>\tussenwit=\baselineskip,
-   \v!halveregel=>\tussenwit=.5\baselineskip,
-      \s!default=>\doifnot{\currentwitruimte}{\v!geen}
-                    {\stelwitruimteopnieuwin},
-      \s!unknown=>\@EA\assigndimension\@EA{\commalistelement} % \@EA is nodig
-                    {\tussenwit}
-                    {\blankokleinmaat}{\blankomiddelmaat}{\blankogrootmaat}]}   % te vangen
-
-\def\dodostelwitruimtein%
-  {\edef\currentwitruimte%
-     {\ifdim\tussenwit=\!!zeropoint
-        \v!geen
-      \else
-        \ifgridsnapping\the\baselineskip\else\the\tussenwit\fi
-      \fi}%
-   \ifgridsnapping
-     \witruimteflexibelfalse
-     \tussenwit=1\tussenwit
-     \ifdim\tussenwit>\!!zeropoint
-       \tussenwit=\baselineskip
-     \fi
-   \else
-     \ifwitruimteflexibel \else \tussenwit=1\tussenwit \fi
-   \fi
-   \parskip=\tussenwit}
-
-\def\simplestelwitruimtein% == snelle \stelwitruimtein[\s!default]
-  {\doifnot{\currentwitruimte}{\v!geen}
-     {\stelwitruimteopnieuwin}%
-   \dodostelwitruimtein}
-
-\def\geenwitruimte%
-  {\ifdim\parskip>\!!zeropoint\relax
-     \ifdim\lastskip=-\parskip
-     \else
-       \vskip-\parskip
-     \fi
-   \fi}
-
-\def\savecurrentwitruimte%
-  {\edef\restorecurrentwitruimte%
-     {\tussenwit=\the\tussenwit
-      \parskip=\the\parskip
-      \noexpand\def\noexpand\currentwitruimte{\currentwitruimte}%
-      \ifwitruimteflexibel
-        \noexpand\witruimteflexibeltrue
-      \else
-        \noexpand\witruimteflexibelfalse
-      \fi}}
-
-% deze variant is nodig binnen \startopelkaar
-% steeds testen:
-%
-% \hoofdstuk{..}
-% \plaatslijst[..]
-% \hoofdstuk{..}
-% \input tufte
-%
-% met/zonder witruimte
-
-\def\witruimte%
-  {\par
-   \ifdim\parskip>\!!zeropoint\relax
-    %\ifdim\lastskip>\parskip \else
-     % \removelastskip interferes with blanko blokkeer en klein
-       \vskip\parskip
-    %\fi
-   \fi}
-
-\def\nonoblanko[#1]%
-  {\par}
-
-\def\noblanko%
-  {\dosingleempty\nonoblanko}
-
-% De onderstaande macro handelt ook de situatie dat er geen
-% tekst tussen \start ... \stop is geplaatst. Daartoe wordt de
-% laatste skip over de lege tekst heen gehaald. Dit komt goed
-% van pas bij het plaatsen van (mogelijk lege) lijsten.
-
-\newif\ifopelkaar
-
-\def\noparskipsignal {0.00001pt}
-\def\lastdoneparskip {0pt}
-
-\def\startopelkaar%
-  {\dosingleempty\dostartopelkaar}
-
-\def\dostartopelkaar[#1]% nesting afvangen
-  {\par
-   \ifvmode
-     \edef\lastdoneparskip{\the\lastskip}%
-\edef\lastdoneprevdepth{\the\prevdepth}% zeer recent toegevoegd
-     \ifdim\prevdepth=-1000pt   % toegevoegd omdat binnen
-     \else                      % een vbox een extra skip
-       \witruimte               % ongewenst is; dit kan
-\baselinecorrection %% zie in \plaatsregister[n=1]
-       \vskip\noparskipsignal   % waarschijnlijk ook in
-     \fi                        % blanko blokkeer
-     \bgroup
-     \doifelse{#1}{\v!blanko}
-       {\opelkaarfalse}
-       {\opelkaartrue}%
-     \blanko[\v!blokkeer]%
-     \stelwitruimtein[\v!geen]
-  \fi}
-
-\def\stopopelkaar%
-  {\par
-\ifvmode
-   \egroup
-   \ifdim\lastskip=\noparskipsignal\relax
-     \removelastskip
-     \geenwitruimte
-     \vskip-\lastdoneparskip
-     \vskip+\lastdoneparskip
-\prevdepth-\lastdoneprevdepth % zeer recent toegevoegd
-   \fi
-\fi}
-
-\def\startvanelkaar%
-  {\blanko
-   \leavevmode
-   \bgroup}
-
-\def\stopvanelkaar%
-  {\egroup
-   \blanko}
-
-% De onderstaande macro's moeten nog eens nader worden uitgewerkt.
-% Ze spelen een rol bij de spatiering rond omkaderde teksten
-% en/of boxen zonder diepte.
-
-\def\toonregelcorrectie   {\showbaselinecorrection}
-\def\regelcorrectie       {\baselinecorrection}
-
-\definecomplexorsimpleempty\startregelcorrectie
-
-% \prevdepth crosses pageboundaries!
-
-\let\dorondomregelcorrectie=\relax
-
-\def\complexstartregelcorrectie[#1]%
-  {\bgroup
-   \processaction
-     [#1]
-     [ \v!blanko=>\let\dorondomregelcorrectie=\blanko,
-      \s!default=>\let\dorondomregelcorrectie=\relax,
-      \s!unknown=>{\def\dorondomregelcorrectie{\blanko[#1]}}]%
-   \dorondomregelcorrectie
-   \startbaselinecorrection
-   \offbaselinecorrection}
-
-\def\stopregelcorrectie%
-  {\stopbaselinecorrection
-   \dorondomregelcorrectie
-   \egroup}
-
-\def\corrigeerwitruimte%
-  {\dowithnextbox
-     {\startbaselinecorrection
-      \box\nextbox
-      \stopbaselinecorrection}%
-   \vbox}
-
-%D There are two ways to influence the interline spacing. The
-%D most general and often most consistent way is using
-%D
-%D \showsetup{\y!stelinterliniein}
-%D
-%D For instance
-%D
-%D \starttypen
-%D \setupinterlinespace[line=2.8ex]
-%D \stoptypen
-%D
-%D This setting adapts itself to the bodyfontsize, while for
-%D instance saying
-%D
-%D \starttypen
-%D \setupinterlinespace[line=12pt]
-%D \stoptypen
-%D
-%D sets things fixed for all sizes, which is definitely not
-%D what we want. Therefore one can also say:
-%D
-%D \starttypen
-%D \definecorpsenvironment[9pt][interlinespace=11pt]
-%D \stoptypen
-%D
-%D One can still use \type{\setupinterlinespace} (without
-%D arguments) to set the interline space according to the
-%D current font, e.g. a \type{\bfa}.
-
-\newif\iflocalinterlinespace
-
-% font-ini
-
-\ifx\bodyfontinterlinespecs\undefined
-
-  \let\bodyfontinterlinespecs\empty
-  \let\bodyfontinterlinespace\empty
-
-\fi
-
-\def\presetnormallineheight%
-  {\edef\normallineheight{\@@itregel}%
-   \iflocalinterlinespace \else
-     \doifdefined{\bodyfontinterlinespecs}
-       {\doifsomething{\bodyfontinterlinespace}
-          {\edef\normallineheight{\bodyfontinterlinespace}}}%
-   \fi}
-
-\def\complexstelinterliniein[#1]% \commalistelement ipv #1
-  {\doifassignmentelse{#1}
-     {\getparameters[\??it][#1]%
-      \scratchdimen=0\@@ithoogte pt
-      \advance\scratchdimen by 0\@@itdiepte pt
-      \ifdim\scratchdimen>1pt
-        \showmessage{\m!layouts}{10}{\@@ithoogte,\@@itdiepte}%
-        \let\@@ithoogte=\strutheightfactor
-        \let\@@itdiepte=\strutdepthfactor
-      \else
-        \let\strutheightfactor=\@@ithoogte
-        \let\strutdepthfactor=\@@itdiepte
-      \fi
-      \let\minimallinedistance=\@@itafstand
-      \let\normallineheight=\@@itregel % let ! ! ! ! ! ivm ex 
-      \let\topskipfactor=\@@itboven
-      \let\maxdepthfactor=\@@itonder
-      \setfontparameters % redundant \setstrut
-      \updateraggedskips} % yes indeed
-     {\processallactionsinset % \regelwit = dummy !
-        [#1]
-        [     \v!aan=>\oninterlineskip,
-              \v!uit=>\offinterlineskip,
-            \v!reset=>\setfontparameters,
-          \s!unknown=>\assignvalue{#1}{\regelwit}{1.00}{1.25}{1.50}%
-                      \spacing{\regelwit}]}}
-
-\def\simplestelinterliniein%
-  {\localinterlinespacetrue
-   \setfontparameters
-   \updateraggedskips % funny one here
-   \localinterlinespacefalse}
-
-\definecomplexorsimple\stelinterliniein
-
-% In earlier versions \type{\bigskipamount} was
-% \type{\ht\strutbox} and the stretch was plus or minus
-% \type{.4\dp\strutbox}. Don't ask me why. The most recent
-% implementation is based on a user supplied distance, which
-% is by default \type{.75\normalskipamount} where
-% \type{\normalskipamount} equals the current baseline
-% distance.
-
-\newif\ifblankoreset        \blankoresetfalse
-\newif\ifblankoblokkeer     \blankoblokkeerfalse
-\newif\ifblankogeenwit      \blankogeenwitfalse
-\newif\ifdoeblanko          \doeblankofalse
-\newif\ifblankoflexibel     \blankoflexibeltrue
-\newif\ifblankobuiten
-\newif\ifblankoforceer
-
-\newskip\blankoskip         \blankoskip=\bigskipamount
-\newskip\blankoskipamount
-
-\def\skipfactor       {.75}
-\def\skipgluefactor   {.25}
-
-\def\normalskipamount%
-  {\openlineheight
-     \ifgridsnapping \else \ifblankoflexibel
-       \!!plus\skipgluefactor\openlineheight
-       \!!minus\skipgluefactor\openlineheight
-     \fi \fi
-   \relax}
-
-\def\regelafstand{\normalskipamount}
-
-\def\deblankoskip{\skipfactor\regelafstand}
-
-\def\laatsteblankoskip%
-  {\blankoskip}
-
-\def\geenblanko%
-  {\removelastskip}
-
-\def\dosingleblanko#1% ook nog \v!halveregel+fuzzysnap
-  {\doifelse{#1}{\v!regel}
-     {\blankoskipamount=\openlineheight}
-     {\ifgridsnapping
-        \assigndimension{#1}{\blankoskipamount}%
-          {.25\openlineheight}{.5\openlineheight}{\openlineheight}%
-      \else
-        \assigndimension{#1}{\blankoskipamount}%
-          {\smallskipamount}{\medskipamount}{\bigskipamount}%
-      \fi}%
-   \global\advance\blankoskip by \blankoskipamount}
-
-\newif\iffuzzyvskip
-
-% old
-%
-% \def\doblanko#1%
-%   {\processallactionsinset
-%      [#1]
-%      [    \v!groot=>\dosingleblanko\v!groot, % happens often
-%          \v!buiten=>\ifvmode\ifinner\blankobuitentrue\fi\fi,
-%           \v!reset=>\global\blankoresettrue,
-%        \v!flexibel=>\global\lokaalblankoflexibeltrue,
-%            \v!vast=>\global\lokaalblankovasttrue,
-%            \v!back=>\geenblanko,
-%             \v!wit=>\global\advance\blankoskip by \parskip,
-%         \v!formule=>\global\advance\blankoskip by \medskipamount,
-%         \v!geenwit=>\global\blankogeenwittrue,
-%            -\v!wit=>\global\advance\blankoskip by -\parskip,
-%        \v!blokkeer=>\global\blankoblokkeertrue,
-%         \v!forceer=>\global\blankoforceertrue,
-%           \v!regel=>\global\advance\blankoskip by \lineheight,
-%      \v!halveregel=>\global\fuzzyvskiptrue\global\advance\blankoskip by .5\lineheight,
-%         \s!unknown=>{\herhaalmetcommando[#1]\dosingleblanko}]}
-%
-% new, see below
-
-\def\doblanko#1%
-  {\processallactionsinset
-     [#1]
-     [    \v!groot=>\dosingleblanko\v!groot, % happens often
-         \v!buiten=>\ifvmode\ifinner\blankobuitentrue\fi\fi,
-          \v!reset=>\global\blankoresettrue,
-       \v!flexibel=>\global\lokaalblankoflexibeltrue,
-           \v!vast=>\global\lokaalblankovasttrue,
-           \v!back=>\geenblanko,
-            \v!wit=>\global\advance\blankoskip by \parskip,
-        \v!formule=>\global\advance\blankoskip by \medskipamount,
-        \v!geenwit=>\global\blankogeenwittrue,
-           -\v!wit=>\global\advance\blankoskip by -\parskip,
-       \v!blokkeer=>\global\blankoblokkeertrue,
-        \v!forceer=>\global\blankoforceertrue,
-          \v!regel=>\global\advance\blankoskip by \lineheight,
-     \v!halveregel=>\global\fuzzyvskiptrue\global\advance\blankoskip by .5\lineheight,
-        \s!unknown=>\doindirectblanko{#1}]}
-
-\def\oldprevdepth{\prevdepth}%
-\def\newprevdepth{-1001pt}
-
-\def\mindimen{0.00002pt} % beter 1sp 
-
-\newif\iflokaalblankovast
-\newif\iflokaalblankoflexibel
-
-\def\docomplexdoblanko[#1]% pas op \relax's zijn nodig ivm volgende \if
-  {\global\blankoresetfalse
-   \global\blankoblokkeerfalse
-   \global\blankogeenwitfalse
-   \global\lokaalblankoflexibelfalse
-   \global\lokaalblankovastfalse
-   \global\blankoskip=\!!zeropoint
-   \global\blankoforceerfalse
-   \blankobuitenfalse
-   \processcommalist[#1]\doblanko
-\ifdim\blankoskip=\!!zeropoint\relax
-  \iflokaalblankoflexibel \dosingleblanko\currentblanko \fi
-  \iflokaalblankovast     \dosingleblanko\currentblanko \fi
-\fi
-   \ifblankobuiten
-   \else
-     \par
-     \ifvmode          %in pos fonts gaat dit mis 
-       \ifblankoforceer%\ifdim\prevdepth>\!!zeropoint\else
-         % -1000pt signals top of page or column (\ejectcolumn)
-         \vbox{\strut}\kern-\lineheight
-       \fi%\fi
-       \ifblankoblokkeer
-         \global\doeblankofalse
-         \edef\oldprevdepth{\the\prevdepth}%
-         \prevdepth=\newprevdepth
-       \else
-         \global\doeblankotrue
-       \fi
-       \ifblankoreset
-         \global\doeblankotrue
-         \ifdim\prevdepth=\newprevdepth
-           \prevdepth=\oldprevdepth
-         \fi
-       \fi
-       \ifdoeblanko
-         \ifdim\lastskip<\blankoskip\relax
-           % else when \blanko[2*groot] + \blanko[3*groot] with parskip
-           % equaling 1*groot, gives a groot=\parskip so adding a small
-           % value makes it distinguishable; can also be done at parskip
-           % setting time (better)
-           \global\advance\blankoskip by \mindimen\relax % = skip
-           % test this on 2* + 3* and parskip groot
-           \ifblankogeenwit
-             \global\advance\blankoskip by -\parskip
-           \else
-             \ifdim\lastskip=\parskip
-             \else  % force this due to previous comment
-               \ifdim\parskip>\!!zeropoint\relax
-                 \ifdim\blankoskip<\parskip\relax
-                   \global\blankoskip=\!!zeropoint
-                 \else
-                   \global\advance\blankoskip by -\parskip
-                 \fi
-               \fi
-             \fi
-           \fi
-\ifblankoflexibel \else
-  \blankoskip=1\blankoskip 
-\fi
-\iflokaalblankovast 
-  \blankoskip=1\blankoskip 
-\fi
-\iflokaalblankoflexibel       
-  \blankoskip=1\blankoskip 
-    \!!plus\skipgluefactor\blankoskip
-    \!!minus\skipgluefactor\blankoskip
-\fi
-           \ifdim\prevdepth=\newprevdepth
-           \else
-             \iffuzzyvskip
-               \removelastfuzzyvskip
-               \fuzzyvskip\blankoskip\relax
-             \else
-               \removelastskip
-               \vskip\blankoskip\relax
-             \fi
-           \fi
-         \else
-           \iffuzzyvskip
-             \removelastfuzzyvskip
-             \fuzzyvskip\blankoskip\relax
-           \fi
-         \fi
-       \fi
-     \fi
-   \fi
-   \global\fuzzyvskipfalse
-   \presetindentation}
-
-\def\complexdodoblanko[#1]%
-  {\flushfootnotes
-   \ifopelkaar
-     \ifinpagebody
-       \expanded{\docomplexdoblanko[#1]}% \expanded=nieuw
-     \else
-       \par
-     \fi
-   \else
-     \expanded{\docomplexdoblanko[#1]}% \expanded = nieuw
-   \fi}
-
-% old
-%
-% \def\doindirectblanko#1%
-%   {\ifundefined{\??bo#1}% <-etex \expandafter\ifx\csname\??bo#1\endcsname\relax
-%      \expanded{\complexdodoblanko[#1]}%
-%    \else
-%      \expandafter\complexdoblanko\expandafter[\csname\??bo#1\endcsname]%
-%    \fi}
-%
-% \def\complexdoblanko[#1]% enables [force,8\bodyfontsize]
-%   {\doifinstringelse{,}{#1}
-%      {\expanded{\complexdodoblanko[#1]}}
-%      {\doifnumberelse{#1}
-%         {\expanded{\complexdodoblanko[#1]}}
-%         {\doindirectblanko{#1}}}}
-%
-% new, more robust 
-%
-% \def\doindirectblanko#1%
-%   {\edef\ascii{#1}\convertcommand\ascii\to\ascii
-%    \ifundefined{\??bo\ascii}% <-etex \expandafter\ifx\csname\??bo#1\endcsname\rel
-%      \herhaalmetcommando[#1]\dosingleblanko
-%    \else
-%      \expandafter\complexdoblanko\expandafter[\csname\??bo\ascii\endcsname]%
-%    \fi}
-% 
-% even more robust
-
-\def\doindirectblanko#1%
-  {\edef\ascii{#1}\convertcommand\ascii\to\ascii
-   \ifundefined{\??bo\ascii}% <-etex \expandafter\ifx\csname\??bo#1\endcsname
-     \expanded{\herhaalmetcommando[#1]\noexpand\dosingleblanko}%
-   \else
-     \expandafter\complexdoblanko\expandafter[\csname\??bo\ascii\endcsname]%
-   \fi}
-
-\def\complexdoblanko[#1]% enables [force,8\bodyfontsize]
-  {\expanded{\complexdodoblanko[#1]}}
-
-\def\currentblanko%
-  {\v!groot}
-
-%D For a long time we had: 
-%D
-%D \starttypen 
-%D \def\simpledoblanko%
-%D   {\doifelse{\currentwitruimte}{\v!geen}
-%D      {\blanko[\currentblanko]}
-%D      {\blanko[\currentwitruimte]}}
-%D \stoptypen
-%D
-%D But Berend de Boer wanted more control, so now we have:  
-
-\def\simpledoblanko%
-  {\doifelse{\currentwitruimte}{\v!geen}
-     {\blanko[\currentblanko]}
-     {\blanko[\s!default]}}
-
-%D Another useful definition would be:
-%D
-%D \starttypen 
-%D \definieerblanko
-%D   [\s!default]
-%D   [\v!groot]
-%D \stoptypen
-
-\def\blanko% % the \relax is definitely needed due to the many \if's
-  {\relax\complexorsimple\doblanko}
-
-%\def\dostelblankoin#1%
-%  {\bgroup % rommelig 
-%   \skip0=#1\relax
-%   \xdef\globalblanko{\the\skip0}%
-%   \egroup
-%   \bigskipamount=\globalblanko
-%   \smallskipamount=\globalblanko
-%   \medskipamount=\globalblanko
-%   \divide\medskipamount by 2\relax
-%   \divide\smallskipamount by 4\relax}%
-
-\def\dostelblankoin#1%
-  {\bigskipamount=#1\relax
-   \ifblankoflexibel \else
-     \bigskipamount=1\bigskipamount
-   \fi
-   \smallskipamount=\bigskipamount
-   \medskipamount=\bigskipamount
-   \divide\medskipamount by 2
-   \divide\smallskipamount by 4 }%
-
-\def\complexstelblankoin[#1]%
-  {\ifgridsnapping
-     \blankoflexibelfalse
-   \else
-     \ExpandFirstAfter\processallactionsinset
-       [#1]
-       [ \v!flexibel=>\blankoflexibeltrue,
-             \v!vast=>\blankoflexibelfalse]%
-   \fi
-   \ExpandFirstAfter\processallactionsinset
-     [#1]
-     [ \v!flexibel=>\dostelblankoin{\deblankoskip},
-           \v!vast=>\dostelblankoin{\deblankoskip},
-          \v!regel=>\edef\deblankoskip{\regelafstand}%
-                    \dostelblankoin{\deblankoskip}%
-                    \let\deblanko=\v!groot,
-     \v!halveregel=>\scratchskip=.5\regelafstand
-                    \edef\deblankoskip{\the\scratchskip}%
-                    \dostelblankoin{\deblankoskip}%
-                    \let\deblanko=\v!middel,
-          \v!groot=>\ifgridsnapping
-                      \edef\deblankoskip{\regelafstand}%
-                      \dostelblankoin{\deblankoskip}%
-                    \fi
-                    \def\currentblanko{\v!groot}%
-                    \let\deblanko=\v!groot,
-         \v!middel=>\def\currentblanko{\v!middel}%
-                    \let\deblanko=\v!middel,
-          \v!klein=>\def\currentblanko{\v!klein}%
-                    \let\deblanko=\v!klein,
-        \v!normaal=>\dostelblankoin{\deblankoskip}%
-                    \let\deblanko=\v!groot,
-      \v!standaard=>\edef\deblankoskip{\skipfactor\regelafstand}%
-                    \dostelblankoin{\deblankoskip}%
-                    \let\deblanko=\v!groot,
-        \s!default=>\dostelblankoin{\deblankoskip}%
-                    \let\deblanko=\v!groot,
-        \s!unknown=>\let\deblankoskip=\commalistelement
-                    \dostelblankoin{\deblankoskip}%
-                    \let\deblanko=\v!groot]%
-   \stelwitruimtein}
-
-% \definecomplexorsimpleempty\stelblankoin
-%
-% speed gain: 60 sec -> 30 sec
-
-\definecomplexorsimple\stelblankoin
-
-\def\simplestelblankoin% == snelle \stelblankoin[\s!default]
-  {\ifgridsnapping
-     \blankoflexibelfalse
-   \fi
-   \dostelblankoin{\deblankoskip}%
-   \let\deblanko\v!groot
-   \stelwitruimtein}
-
-\def\dodefinieerblanko[#1][#2]%
-  {\def\docommando##1{\setvalue{\??bo##1}{#2}}%
-   \processcommalist[#1]\docommando}
-
-\def\definieerblanko%
-  {\dodoubleargument\dodefinieerblanko}
-
-\def\savecurrentblanko%
-  {\edef\restorecurrentblanko%
-     {\bigskipamount=\the\bigskipamount
-      \medskipamount=\the\medskipamount
-      \smallskipamount=\the\smallskipamount
-      \noexpand\def\noexpand\currentblanko{\currentblanko}%
-      \ifblankoflexibel
-        \noexpand\blankoflexibeltrue
-      \else
-        \noexpand\blankoflexibelfalse
-      \fi}}
-
-\def\inhibitblank% the fast, local way
-  {\endgraf\ifvmode\prevdepth\newprevdepth\fi}
-
-%D Now. 
-
-\definieerblanko
-  [\s!default]
-  [\v!wit]
-
-\let\currentvoorwit=\empty
-
-\newdimen\voorwit
-
-\newif\ifindentfirstparagraph % \indentfirstparagraphtrue
-
-\def\presetindentation%
-  {\doifoutervmode
-     {\ifindentfirstparagraph\else\noindentation\fi}}
-
-%\def\dostelinspringenin[#1]%
-%  {\processallactionsinset
-%     [#1]
-%     [   \v!eerste=>\indentfirstparagraphtrue,
-%       \v!volgende=>\indentfirstparagraphfalse,
-%        \s!default=>\dodostelinspringenin,
-%        \s!unknown=>\edef\currentvoorwit{\commalistelement}%
-%                    \dodostelinspringenin]}
-%
-%\def\dodostelinspringenin%
-%  {\assigndimension{\currentvoorwit}{\voorwit}{1em}{1.5em}{2em}%
-%   \parindent=\voorwit\relax}
-%
-%\def\stelinspringenin%
-%  {\dosingleempty\dostelinspringenin}
-
-\definecomplexorsimple\stelinspringenin
-
-\def\complexstelinspringenin[#1]%
-  {\processallactionsinset
-     [#1]
-     [   \v!eerste=>\indentfirstparagraphtrue,
-       \v!volgende=>\indentfirstparagraphfalse,
-        \s!default=>\simplestelinspringenin,
-        \s!unknown=>\edef\currentvoorwit{\commalistelement}%
-                    \simplestelinspringenin]}
-
-\def\simplestelinspringenin%
-  {\assigndimension{\currentvoorwit}{\voorwit}{1em}{1.5em}{2em}%
-   \parindent=\voorwit\relax}
-
-\def\doinspringen[#1]%
-  {\processallactionsinset
-     [#1]
-     [    \v!nee=>\parindent=\voorwit\relax\noindent,
-         \v!niet=>\parindent=\voorwit\relax\noindent,
-           \v!ja=>\parindent=\voorwit\relax,            % geen \indent !
-       \v!eerste=>\indentfirstparagraphtrue,
-     \v!volgende=>\indentfirstparagraphfalse,
-       \v!altijd=>\parindent=\voorwit\relax,            % geen \indent !
-        \v!nooit=>\parindent=\!!zeropoint\relax]}
-
-\def\inspringen%
-  {\dosingleargument\doinspringen}
-
-\def\nietinspringen{\inspringen[\v!nee,\v!volgende]}
-\def\welinspringen {\inspringen[\v!ja,\v!eerste]}
-
 % Het gebruik van \skip's spaart \dimen's.
 
 \newskip\xpositie
@@ -4396,326 +3040,6 @@
    \dorecurse{4}{\tooninstellingen\pagina}
    \egroup}
 
-\definetwopasslist{\s!paragraph}
-
-\newcounter\nofraggedparagraphs
-
-\def\doparagraphreference% looks very much like domarginreference
-  {\doglobal\increment\nofraggedparagraphs\relax
-   \edef\writeparref%
-     {\writeutilitycommand%
-        {\twopassentry%
-           {\s!paragraph}%
-           {\nofraggedparagraphs}%
-           {\noexpand\realfolio}}}%
-   \writeparref}
-
-\def\setraggedparagraphmode#1#2%
-  {\ifinner
-     \ifdubbelzijdig
-       \gettwopassdata{\s!paragraph}%
-       \iftwopassdatafound
-         \ifodd\twopassdata#1\else#2\fi
-       \else
-         \ifodd\realfolio#1\else#2\fi
-       \fi
-       \doparagraphreference
-     \else
-       #2\relax
-     \fi
-   \else
-     #2\relax
-   \fi}
-
-% \let\doifrightpageelse\setraggedparagraphmode
-
-% De onderstaande macro's zijn opgenomen in Plain TeX.
-%
-% \def\raggedright%
-%   {\rightskip\z@ plus2em \spaceskip.3333em \xspaceskip.5em\relax}
-%
-% \def\ttraggedright%
-%   {\tttf\rightskip\z@ plus2em\relax}
-%
-% \newif\ifr@ggedbottom
-%
-% \def\raggedbottom%
-%   {\topskip 10\p@ plus60\p@ \r@ggedbottomtrue}
-%
-% \def\normalbottom%
-%   {\topskip 10\p@ \r@ggedbottomfalse}
-%
-% en worden hieronder wat aangepast.
-
-% the three boolean will become obsolete some day in favour 
-% of \bottomraggedness
-
-\chardef\bottomraggedness=0 % 0=ragged 1=normal/align 2=baseline
-
-\def\bottomalignlimit{3\lineheight}
-
-\newif\ifn@rmalbottom
-\newif\ifr@ggedbottom
-\newif\ifb@selinebottom
-
-\def\raggedbottom%
-  {\chardef\bottomraggedness=0
-   \n@rmalbottomfalse
-   \r@ggedbottomtrue
-   \b@selinebottomfalse
-   \settopskip}
-
-\def\alignbottom%
-  {\chardef\bottomraggedness=1
-   \n@rmalbottomtrue
-   \r@ggedbottomfalse
-   \b@selinebottomfalse
-   \settopskip}
-
-\def\baselinebottom%
-  {\chardef\bottomraggedness=2
-   \n@rmalbottomfalse
-   \r@ggedbottomfalse
-   \b@selinebottomtrue
-   \settopskip}
-
-\let\normalbottom=\alignbottom % downward compatible
-
-% so, the new one will be
-% 
-% \chardef\bottomraggedness=0 % 0=ragged 1=normal/align 2=baseline
-% 
-% \def\bottomalignlimit{3\lineheight} % will be settable 
-% 
-% \def\raggedbottom  {\chardef\bottomraggedness=0 \settopskip}
-% \def\alignbottom   {\chardef\bottomraggedness=1 \settopskip}
-% \def\baselinebottom{\chardef\bottomraggedness=2 \settopskip}
-%
-% \let\normalbottom  =\alignbottom
-
-% \hyphenpenalty  = ( 2.5 * \hsize ) / \raggedness
-% \tolerance     >= 1500 % was 200
-% \raggedness     = 2 .. 6\korpsgrootte
-
-\chardef\raggedstatus=0 % normal left center right 
-
-\def\leftraggedness   {2\bodyfontsize}
-\def\rightraggedness  {2\bodyfontsize}
-\def\middleraggedness {6\bodyfontsize}
-
-%D More hyphenation control, will be combined with align 
-%D setup. 
-
-\def\nohyphens%
-  {\ifx\dohyphens\relax
-     \edef\dohyphens%
-       {\hyphenpenalty\the\hyphenpenalty
-        \exhyphenpenalty\the\exhyphenpenalty\relax}%
-   \fi
-   \hyphenpenalty\@M
-   \exhyphenpenalty\@M}
-
-\let\dohyphens\relax
-
-%D To prevent unwanted side effects, we also have to check 
-%D for hyphens here: 
-
-\def\setraggedness#1%
-  {\ifnum\tolerance<1500\relax       % small values have
-     \tolerance=1500\relax           % unwanted side effects
-   \fi                               
-   \spaceskip=2.5\hsize              % we misuse these registers
-   \xspaceskip=#1\relax              % for temporary storage;
-   \divide\spaceskip by \xspaceskip  % they are changed anyway
-   \ifx\dohyphens\relax               
-     \hyphenpenalty=\spaceskip       % \else no hyphens is active 
-   \fi}                              
-
-\let\updateraggedskips\relax
-
-\def\setraggedskips#1#2#3#4#5#6#7% never change this name
-  {\def\updateraggedskips%
-     {\dosetraggedskips{#1}{#2}{#3}{#4}{#5}{#6}{#7}}%
-   \updateraggedskips}
-
-\def\dosetraggedskips#1#2#3#4#5#6#7%
-  {\chardef\raggedstatus=#1\relax 
-   \leftskip=1\leftskip\!!plus#2\relax   % zie: Tex By Topic 8.1.3
-   \rightskip=1\rightskip\!!plus#3\relax % zie: Tex By Topic 8.1.3
-   \spaceskip#4\relax
-   \xspaceskip#5\relax
-   \parfillskip\!!zeropoint\!!plus#6\relax
-   \parindent#7\relax}
-
-\def\notragged%
-  {\setraggedskips{0}{0em}{0em}{0em}{0em}{1fil}{\parindent}}
-
-\def\raggedleft%
-  {\setraggedness\leftraggedness
-   \setraggedskips{1}{\leftraggedness}{0em}{.3333em}{.5em}{0em}{0em}}
-
-\def\raggedcenter%
-  {\setraggedness\middleraggedness
-   \setraggedskips{2}{\middleraggedness}{\middleraggedness}{.3333em}{.5em}{0em}{0em}}
-
-%D We used to have:
-%D
-%D \starttypen
-%D \def\raggedright%
-%D   {\setraggedness\rightraggedness
-%D    \setraggedskips{3}{0em}{\rightraggedness}{.3333em}{.5em}{0em}{\parindent}}
-%D \stoptypen
-%D
-%D However, the next alternative, suggested by Taco, is better.
-
-\def\raggedright%
-  {\setraggedness\rightraggedness
-   \setraggedskips{3}{0em}{\rightraggedness}{.3333em}{.5em}{1fil}{\parindent}}
-
-\def\veryraggedleft%
-  {\setraggedskips{1}{1fil}{0em}{.3333em}{.5em}{0em}{0em}}
-
-%D When we want the last line to have a natural width:
-%D
-%D \starttypen
-%D \def\veryraggedleft%
-%D   {\setraggedskips{1}{1fil}{0em}{.3333em}{.5em}{0em}{-1fil}}
-%D \stoptypen
-%D
-%D but this one is not accepted by the macros.
-
-\def\veryraggedcenter%
-  {\setraggedskips{2}{1fil}{1fil}{.3333em}{.5em}{0em}{0em}}
-
-\def\veryraggedright%
-  {\setraggedskips{3}{0em}{1fil}{.3333em}{.5em}{0em}{\parindent}}
-
-\def\ttraggedright%
-  {\tttf
-   \setraggedskips{3}{0em}{\rightraggedness}{0em}{0em}{0em}{\parindent}} % {\voorwit}}
-
-%D A bonus one:
-
-\def\raggedwidecenter%
-  {\setraggedness\middleraggedness
-   \setraggedskips{2}{.5fil}{.5fil}{.3333em}{.5em}{0em}{0em}}
-
-\newif\if@@asragged \@@asraggedtrue % old method 
-
-\def\dodosteluitlijnenin[#1]%
-  {\doifinsetelse{\v!ruim} {#1}{\!!doneatrue}{\!!doneafalse}%
-   \doifinsetelse{\v!breed}{#1}{\!!donebtrue}{\!!donebfalse}%
-   \ExpandFirstAfter\processallactionsinset
-     [#1]
-     [   \v!regel=>\baselinebottom,
-         \v!onder=>\raggedbottom,
-        \v!hoogte=>\normalbottom,
-       \v!breedte=>\notragged,
-       \v!normaal=>\notragged,
-            \v!ja=>\notragged,
-           \v!nee=>\raggedright,
-\if@@asragged\v!binnen\else\v!buiten\fi
-                 =>\setraggedparagraphmode\raggedleft\raggedright,
-\if@@asragged\v!buiten\else\v!binnen\fi
-                 =>\setraggedparagraphmode\raggedright\raggedleft,
-\if@@asragged\v!links\else\v!rechts\fi
-                 =>\if!!donea\veryraggedleft  \else\raggedleft  \fi,
-\if@@asragged\v!rechts\else\v!links\fi
-                 =>\if!!donea\veryraggedright \else\raggedright \fi,
-        \v!midden=>\if!!doneb\raggedwidecenter\else
-                   \if!!donea\veryraggedcenter\else\raggedcenter\fi\fi,
-       \v!hangend=>\enableprotruding,
-   \v!niethangend=>\disableprotruding,
-    \v!afgebroken=>\dohyphens,
-\v!nietafgebroken=>\nohyphens,
-         \v!nieuw=>\@@asraggedfalse, % so new will give you consistency
-         \v!reset=>\notragged\normalbottom]}
-
-\def\dosteluitlijnenin[#1]%
-  {\expanded{\dodosteluitlijnenin[#1]}}
-
-\def\steluitlijnenin%
-  {\dosingleargument\dosteluitlijnenin}
-
-\def\startuitlijnen%
-  {\bgroup
-   \steluitlijnenin}
-
-\def\stopuitlijnen
-  {\par
-   \egroup}
-
-%\def\regellinks#1%
-%  {\noindent\leftline{{\strut#1}}}
-%
-%\def\regelrechts#1%
-%  {\noindent\rightline{{#1\strut}}}
-%
-%\def\regelmidden#1%
-%  {\noindent\centerline{{\strut#1}}}
-
-\def\doalignline#1#2%
-  {\dowithnextbox
-     {\noindent\hbox to \hsize
-        {\strut#1\unhbox\nextbox#2}}
-     \hbox}
-
-% also supporting \\
-%
-% \def\doalignline#1#2%
-%   {\dowithnextbox
-%      {\noindent\hbox to \hsize
-%         {\strut#1\unhbox\nextbox#2}}
-%      \hbox\bgroup
-%        \def\\{\egroup\par\doalignline#1#2\bgroup}\let\next=}
-
-\def\doalignline#1#2%
-  {\bgroup
-   \def\\{\egroup\par\doalignline#1#2\bgroup}%
-   \dowithnextbox
-     {\noindent\hbox to \hsize
-        {\strut#1\unhbox\nextbox#2}\egroup}
-     \hbox}
-
-% directe commando's
-
-\def\regellinks {\doalignline \relax \hss  }
-\def\regelrechts{\doalignline \hss   \relax}
-\def\regelmidden{\doalignline \hss   \hss  }
-
-\def\regelbegrensd#1{\limitatetext{#1}{\hsize}{\unknown}}
-
-% indirecte commando's
-
-\setvalue{regel\v!links }{\doalignline \relax \hss  }
-\setvalue{regel\v!rechts}{\doalignline \hss   \relax}
-\setvalue{regel\v!midden}{\doalignline \hss   \hss  }
-
-\def\doregelplaats#1%
-  {\getvalue{regel#1}}
-
-\def\dosteltolerantiein[#1]%
-  {\doifinsetelse{\v!vertikaal}{#1}%
-     {\ExpandFirstAfter\processallactionsinset
-        [#1]
-        [\v!zeerstreng=>\def\bottomtolerance{},
-             \v!streng=>\def\bottomtolerance{.050},
-             \v!soepel=>\def\bottomtolerance{.075},
-         \v!zeersoepel=>\def\bottomtolerance{.100}]}%
-     {\ExpandFirstAfter\processallactionsinset
-        [#1]
-        [       \v!rek=>\emergencystretch=\bodyfontsize,
-         \v!zeerstreng=>\tolerance=200,
-             \v!streng=>\tolerance=1500,
-             \v!soepel=>\tolerance=3000,
-         \v!zeersoepel=>\tolerance=4500]}}
-
-\def\steltolerantiein%
-  {\dosingleargument\dosteltolerantiein}
-
-\def\woordrechts%
-  {\groupedcommand{\hfill\hbox}{\parfillskip\!!zeropoint}}
-
 \newif\iflowinmargin
 
 \def\stelinmargein%
@@ -5083,7 +3407,6 @@
 
 %D \macros
 %D   {inleftside,inleftmargin,inrightmargin,inrightside}
-%D   {}
 %D
 %D The fast and clean way of putting things in the margin is
 %D using \type{\rlap} or \type{\llap}. Unfortunately these
@@ -6520,140 +4843,6 @@
 \def\stelopmaakin%
   {\dodoubleargument\dostelopmaakin}
 
-\newskip\linkssmaller
-\newskip\rechtssmaller
-\newskip\middensmaller
-
-\def\dosinglesmaller#1%
-  {\processaction
-     [#1]
-     [    \v!links=>\global\advance\linkssmaller  by \@@sllinks,
-         \v!midden=>\global\advance\middensmaller by \@@slmidden,
-         \v!rechts=>\global\advance\rechtssmaller by \@@slrechts,
-        \s!unknown=>\global\advance\middensmaller by \commalistelement]}
-
-\def\dosmaller[#1]%
-  {\processaction
-     [#1]
-     [    \v!links=>\global\advance\linkssmaller  by \@@sllinks,
-         \v!midden=>\global\advance\middensmaller by \@@slmidden,
-         \v!rechts=>\global\advance\rechtssmaller by \@@slrechts,
-        \s!unknown=>{\herhaalmetcommando[#1]\dosinglesmaller}]}
-
-\def\complexstartsmaller[#1]%
-  {\par
-   \bgroup
-   \global\linkssmaller=\!!zeropoint
-   \global\rechtssmaller=\!!zeropoint
-   \global\middensmaller=\!!zeropoint
-   \processcommalistwithparameters[#1]\dosmaller
-   \advance\leftskip  by \linkssmaller
-   \advance\rightskip by \rechtssmaller
-   \advance\leftskip  by \middensmaller
-   \advance\rightskip by \middensmaller}
-
-\def\simplestartsmaller%
-  {\startsmaller[\v!midden]}
-
-\definecomplexorsimple\startsmaller
-
-\def\stopsmaller%
-  {\par % else skips forgotten
-   \egroup}
-
-\def\stelsmallerin%
-  {\dodoubleargument\getparameters[\??sl]}
-
-\def\dodefinieerhbox[#1][#2]%
-  {\setvalue{hbox#1}##1%
-     {\hbox to #2{\begstrut##1\endstrut\hss}}}
-
-\def\definieerhbox%
-  {\dodoubleargument\dodefinieerhbox}
-
-\def\lrcbox#1#2#%
-  {\vbox#2\bgroup
-   \let\\=\endgraf
-   \forgetall#1\let\next=}
-
-\def\lbox%
-  {\lrcbox\raggedleft}
-
-\def\rbox%
-  {\lrcbox\raggedright}
-
-\def\cbox%
-  {\lrcbox\raggedcenter}
-
-\def\dosetraggedvbox#1%
-  {\processaction
-     [#1]
-     [  \v!links=>\def\raggedbox{\lbox},
-       \v!rechts=>\def\raggedbox{\rbox},
-       \v!midden=>\def\raggedbox{\cbox},
-          \v!nee=>\def\raggedbox{\vbox\bgroup\raggedright\let\next=},
-      \s!default=>\def\raggedbox{\vbox},
-      \s!unknown=>\def\raggedbox{\vbox}]}
-
-\def\dosetraggedhbox#1%
-  {\processaction
-     [#1]
-     [  \v!links=>\let\raggedbox\regellinks,
-       \v!rechts=>\let\raggedbox\regelrechts,
-       \v!midden=>\let\raggedbox\regelmidden,
-      \v!normaal=>\let\raggedbox\hbox,
-      \s!default=>\let\raggedbox\hbox,
-      \s!unknown=>\let\raggedbox\hbox]}
-
-% \def\dosetraggedcommand#1% ook ruim,rechts en zo
-%   {\processaction
-%      [#1]
-%      [  \v!links=>\def\raggedcommand{\raggedleft},
-%        \v!rechts=>\def\raggedcommand{\raggedright},
-%        \v!midden=>\def\raggedcommand{\raggedcenter},
-%           \v!nee=>\def\raggedcommand{\raggedright},
-%       \v!normaal=>\let\raggedcommand\relax,
-%       \s!default=>\def\raggedcommand{\raggedcenter},
-%       \s!unknown=>\let\raggedcommand\relax]}
-
-\def\dosetraggedcommand#1% 
-  {\expanded{\dodosetraggedcommand{#1}}}
- 
-\def\dodosetraggedcommand#1% 
-  {\doifinsetelse{\v!ruim} {#1}{\!!doneatrue}{\!!doneafalse}%
-   \doifinsetelse{\v!breed}{#1}{\!!donebtrue}{\!!donebfalse}%
-   \let\raggedcommand\relax
-   \let\raggedtopcommand\empty
-   \let\raggedbottomcommand\empty
-   \!!donectrue
-   \ExpandFirstAfter\processallactionsinset
-     [#1]
-     [  \v!links=>\if!!donea      \def\raggedcommand{\veryraggedleft}%
-                  \else           \def\raggedcommand{\raggedleft}%
-                  \fi
-                  \!!donecfalse,                    % {\v!links,\v!midden}
-       \v!rechts=>\if!!donea      \def\raggedcommand{\veryraggedright}%
-                  \else           \def\raggedcommand{\raggedright}%
-                  \fi
-                  \!!donecfalse,                    % {\v!rechts,\v!midden}
-       \v!midden=>\if!!donec
-                    \if!!doneb      \def\raggedcommand{\raggedwidecenter}%
-                    \else\if!!donea \def\raggedcommand{\veryraggedcenter}%
-                    \else           \def\raggedcommand{\raggedcenter}%
-                    \fi\fi
-                    \!!donecfalse                   % {\v!midden,\v!midden}
-                  \else
-                    \let\raggedbottomcommand\vfilll % bonus, pretty strong 
-                    \let\raggedtopcommand   \vfilll % used with \framed for 
-                  \fi,                              % instance in tables
-         \v!hoog=>\let\raggedbottomcommand\vfilll,  % and since we lack a 
-         \v!laag=>\let\raggedtopcommand   \vfilll,  % proper keyword, but
-         \v!laho=>\let\raggedbottomcommand\vfilll   % we do support the 
-                  \let\raggedtopcommand   \vfilll,  % ugly laho (lohi)
-          \v!nee=>\def\raggedcommand{\raggedright},
-           \v!ja=>\let\raggedcommand\relax,
-      \v!normaal=>\let\raggedcommand\relax]}
-
 \def\stelplaatsblokkenin%
   {\dodoubleargument\getparameters[\??bk]}
 
@@ -9339,14 +7528,6 @@
    \c!links=,
    \c!rechts=\hss]
 
-\stelinterliniein
-  [\c!hoogte=.72,
-   \c!diepte=.28,
-   \c!boven=1.0,
-   \c!onder=0.4,
-   \c!afstand=1pt,
-   \c!regel=2.8ex]
-
 \stelkolommenin
   [\c!n=2,
    \c!nboven=1,
@@ -9653,21 +7834,6 @@
    \c!linkerbreedte=\getvalue{\??tk\v!tekst\v!rand\c!breedte},
    \c!rechterbreedte=\getvalue{\??tk\v!tekst\v!rand\c!breedte}]
 
-\stelblankoin
-  [\v!standaard,
-   \v!groot]
-
-\definieerblanko[\v!default] [\currentblanko]
-\definieerblanko[\v!voor]    [\v!default]
-\definieerblanko[\v!tussen]  [\v!default]
-\definieerblanko[\v!na]      [\v!voor]
-
-% doen?
-
-\def\@@blankovoor  {\blanko[\v!voor]}   %
-\def\@@blankotussen{\blanko[\v!tussen]} %  scheelt 5 tokens == >20 bytes
-\def\@@blankona    {\blanko[\v!na]}     %
-
 \stelblokkopjesin
   [\c!plaats=\v!onder,
    \c!voor=\blanko,
@@ -9717,15 +7883,6 @@
   [\c!conversie=\v!letter, % \v!romeins
    \c!regels=3]
 
-\stelwitruimtein
-  [\v!geen]
-
-\inspringen
-  [\v!nooit]
-
-\stelinspringenin
-  [\v!geen]
-
 \stelreferentielijstin
   [\c!letter=\v!normaal]
 
@@ -9758,11 +7915,6 @@
   [\c!wijze=\v!per\v!deel,
    \c!status=\v!stop]
 
-\stelsmallerin
-  [\c!links=1.5em,
-   \c!rechts=1.5em,
-   \c!midden=1.5em]
-
 \stelregelnummerenin
   [\c!conversie=\v!cijfers,
    \c!start=1,
@@ -9811,19 +7963,6 @@
 \stelnaastplaatsenin
   [\c!status=\v!stop]
 
-\steltolerantiein
-  [\v!horizontaal,\v!zeerstreng]
-
-\steltolerantiein
-  [\v!vertikaal,\v!streng]
-
-\steluitlijnenin
-  [\v!onder,
-   \v!breedte]
-
-\stelspatieringin
-  [\v!opelkaar]
-
 \definieerplaatsblok
   [\v!figuur]
   [\v!figuren]
diff --git a/tex/context/base/math-ams.tex b/tex/context/base/math-ams.tex
new file mode 100644
index 000000000..4cfe92440
--- /dev/null
+++ b/tex/context/base/math-ams.tex
@@ -0,0 +1,317 @@
+%D \module
+%D   [       file=math-ams,
+%D        version=2001.04.12, 
+%D          title=\CONTEXT\ Math Macros,
+%D       subtitle=AMS Specials,
+%D         author={Hans Hagen \& Taco Hoekwater},
+%D           date=\currentdate,
+%D      copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\unprotect 
+
+\definefamilysynonym [ams] [blackboard] [mb]
+
+\startmathcollection[ams]
+
+\definemathsymbol [varGamma]   [ord] [letters] ["00]
+\definemathsymbol [varDelta]   [ord] [letters] ["01]
+\definemathsymbol [varTheta]   [ord] [letters] ["02]
+\definemathsymbol [varLambda]  [ord] [letters] ["03]
+\definemathsymbol [varXi]      [ord] [letters] ["04]
+\definemathsymbol [varPi]      [ord] [letters] ["05]
+\definemathsymbol [varSigma]   [ord] [letters] ["06]
+\definemathsymbol [varUpsilon] [ord] [letters] ["07]
+\definemathsymbol [varPhi]     [ord] [letters] ["08]
+\definemathsymbol [varPsi]     [ord] [letters] ["09]
+\definemathsymbol [varOmega]   [ord] [letters] ["0A]
+
+\stopmathcollection
+
+\startmathcollection[default]
+
+\definemathsymbol [internalAnd] [rel] [operators] ["26]
+
+\stopmathcollection
+
+\startmathcollection[ams]
+
+\definemathsymbol [boxdot]              [bin]   [ma] ["00]
+\definemathsymbol [boxplus]             [bin]   [ma] ["01]
+\definemathsymbol [boxtimes]            [bin]   [ma] ["02]
+\definemathsymbol [square]              [ord]   [ma] ["03]
+\definemathsymbol [Box]                 [ord]   [ma] ["03] % square  
+\definemathsymbol [blacksquare]         [ord]   [ma] ["04]
+\definemathsymbol [centerdot]           [bin]   [ma] ["05]
+\definemathsymbol [Diamond]             [ord]   [ma] ["06]
+\definemathsymbol [lozenge]             [ord]   [ma] ["06] % Diamond
+\definemathsymbol [blacklozenge]        [ord]   [ma] ["07]
+\definemathsymbol [circlearrowright]    [rel]   [ma] ["08]
+\definemathsymbol [circlearrowleft]     [rel]   [ma] ["09]
+\definemathsymbol [rightleftharpoons]   [rel]   [ma] ["0A]
+\definemathsymbol [leftrightharpoons]   [rel]   [ma] ["0B]
+\definemathsymbol [boxminus]            [bin]   [ma] ["0C]
+\definemathsymbol [Vdash]               [rel]   [ma] ["0D]
+\definemathsymbol [Vvdash]              [rel]   [ma] ["0E]
+\definemathsymbol [vDash]               [rel]   [ma] ["0F]
+\definemathsymbol [twoheadrightarrow]   [rel]   [ma] ["10]
+\definemathsymbol [twoheadleftarrow]    [rel]   [ma] ["11]
+\definemathsymbol [leftleftarrows]      [rel]   [ma] ["12]
+\definemathsymbol [rightrightarrows]    [rel]   [ma] ["13]
+\definemathsymbol [upuparrows]          [rel]   [ma] ["14]
+\definemathsymbol [downdownarrows]      [rel]   [ma] ["15]
+\definemathsymbol [upharpoonright]      [rel]   [ma] ["16]
+\definemathsymbol [restriction]         [rel]   [ma] ["16]
+\definemathsymbol [downharpoonright]    [rel]   [ma] ["17]
+\definemathsymbol [upharpoonleft]       [rel]   [ma] ["18]
+\definemathsymbol [downharpoonleft]     [rel]   [ma] ["19]
+\definemathsymbol [rightarrowtail]      [rel]   [ma] ["1A]
+\definemathsymbol [leftarrowtail]       [rel]   [ma] ["1B]
+\definemathsymbol [leftrightarrows]     [rel]   [ma] ["1C]
+\definemathsymbol [rightleftarrows]     [rel]   [ma] ["1D]
+\definemathsymbol [Lsh]                 [rel]   [ma] ["1E]
+\definemathsymbol [Rsh]                 [rel]   [ma] ["1F]
+\definemathsymbol [rightsquigarrow]     [rel]   [ma] ["20]
+\definemathsymbol [leadsto]             [rel]   [ma] ["20] % rightsquigarrow
+\definemathsymbol [leftrightsquigarrow] [rel]   [ma] ["21]
+\definemathsymbol [looparrowleft]       [rel]   [ma] ["22]
+\definemathsymbol [looparrowright]      [rel]   [ma] ["23]
+\definemathsymbol [circeq]              [rel]   [ma] ["24]
+\definemathsymbol [succsim]             [rel]   [ma] ["25]
+\definemathsymbol [gtrsim]              [rel]   [ma] ["26]
+\definemathsymbol [gtrapprox]           [rel]   [ma] ["27]
+\definemathsymbol [multimap]            [rel]   [ma] ["28]
+\definemathsymbol [therefore]           [rel]   [ma] ["29]
+\definemathsymbol [because]             [rel]   [ma] ["2A]
+\definemathsymbol [doteqdot]            [rel]   [ma] ["2B] 
+\definemathsymbol [Doteq]               [rel]   [ma] ["2B] % doteqdot 
+\definemathsymbol [triangleq]           [rel]   [ma] ["2C]
+\definemathsymbol [precsim]             [rel]   [ma] ["2D]
+\definemathsymbol [lesssim]             [rel]   [ma] ["2E]
+\definemathsymbol [lessapprox]          [rel]   [ma] ["2F]
+\definemathsymbol [eqslantless]         [rel]   [ma] ["30]
+\definemathsymbol [eqslantgtr]          [rel]   [ma] ["31]
+\definemathsymbol [curlyeqprec]         [rel]   [ma] ["32]
+\definemathsymbol [curlyeqsucc]         [rel]   [ma] ["33]
+\definemathsymbol [preccurlyeq]         [rel]   [ma] ["34]
+\definemathsymbol [leqq]                [rel]   [ma] ["35]
+\definemathsymbol [leqslant]            [rel]   [ma] ["36]
+\definemathsymbol [lessgtr]             [rel]   [ma] ["37]
+\definemathsymbol [backprime]           [ord]   [ma] ["38]
+\definemathsymbol [dabar@]              [ord]   [ma] ["39] % @ 
+\definemathsymbol [risingdotseq]        [rel]   [ma] ["3A]
+\definemathsymbol [fallingdotseq]       [rel]   [ma] ["3B]
+\definemathsymbol [succcurlyeq]         [rel]   [ma] ["3C]
+\definemathsymbol [geqq]                [rel]   [ma] ["3D]
+\definemathsymbol [geqslant]            [rel]   [ma] ["3E]
+\definemathsymbol [gtrless]             [rel]   [ma] ["3F]
+\definemathsymbol [sqsubset]            [rel]   [ma] ["40]
+\definemathsymbol [sqsupset]            [rel]   [ma] ["41]
+\definemathsymbol [vartriangleright]    [rel]   [ma] ["42]
+\definemathsymbol [rhd]                 [bin]   [ma] ["42]
+\definemathsymbol [lhd]                 [bin]   [ma] ["43]
+\definemathsymbol [vartriangleleft]     [rel]   [ma] ["43]
+\definemathsymbol [trianglerighteq]     [rel]   [ma] ["44]
+\definemathsymbol [unrhd]               [bin]   [ma] ["44] % trianglerighteq
+\definemathsymbol [trianglelefteq]      [rel]   [ma] ["45]
+\definemathsymbol [unlhd]               [bin]   [ma] ["45] % trianglelefteq
+\definemathsymbol [bigstar]             [ord]   [ma] ["46]
+\definemathsymbol [between]             [rel]   [ma] ["47]
+\definemathsymbol [blacktriangledown]   [ord]   [ma] ["48]
+\definemathsymbol [blacktriangleright]  [rel]   [ma] ["49]
+\definemathsymbol [blacktriangleleft]   [rel]   [ma] ["4A]
+\definemathsymbol [vartriangle]         [rel]   [ma] ["4D]
+\definemathsymbol [blacktriangle]       [ord]   [ma] ["4E]
+\definemathsymbol [triangledown]        [ord]   [ma] ["4F]
+\definemathsymbol [eqcirc]              [rel]   [ma] ["50]
+\definemathsymbol [lesseqgtr]           [rel]   [ma] ["51]
+\definemathsymbol [gtreqless]           [rel]   [ma] ["52]
+\definemathsymbol [lesseqqgtr]          [rel]   [ma] ["53]
+\definemathsymbol [gtreqqless]          [rel]   [ma] ["54]
+\definemathsymbol [Rrightarrow]         [rel]   [ma] ["56]
+\definemathsymbol [Lleftarrow]          [rel]   [ma] ["57]
+\definemathsymbol [veebar]              [bin]   [ma] ["59]
+\definemathsymbol [barwedge]            [bin]   [ma] ["5A]
+\definemathsymbol [doublebarwedge]      [bin]   [ma] ["5B]
+\definemathsymbol [angle]               [ord]   [ma] ["5C]
+\definemathsymbol [measuredangle]       [ord]   [ma] ["5D]
+\definemathsymbol [sphericalangle]      [ord]   [ma] ["5E]
+\definemathsymbol [varpropto]           [rel]   [ma] ["5F]
+\definemathsymbol [smallsmile]          [rel]   [ma] ["60]
+\definemathsymbol [smallfrown]          [rel]   [ma] ["61]
+\definemathsymbol [Subset]              [rel]   [ma] ["62]
+\definemathsymbol [Supset]              [rel]   [ma] ["63]
+\definemathsymbol [Cup]                 [bin]   [ma] ["64]
+\definemathsymbol [doublecup]           [bin]   [ma] ["64] % Cup 
+\definemathsymbol [Cap]                 [bin]   [ma] ["65]
+\definemathsymbol [doublecap]           [bin]   [ma] ["65]
+\definemathsymbol [curlywedge]          [bin]   [ma] ["66]
+\definemathsymbol [curlyvee]            [bin]   [ma] ["67]
+\definemathsymbol [leftthreetimes]      [bin]   [ma] ["68]
+\definemathsymbol [rightthreetimes]     [bin]   [ma] ["69]
+\definemathsymbol [subseteqq]           [rel]   [ma] ["6A]
+\definemathsymbol [supseteqq]           [rel]   [ma] ["6B]
+\definemathsymbol [bumpeq]              [rel]   [ma] ["6C]
+\definemathsymbol [Bumpeq]              [rel]   [ma] ["6D]
+\definemathsymbol [llless]              [rel]   [ma] ["6E]
+\definemathsymbol [lll]                 [rel]   [ma] ["6E] % llless
+\definemathsymbol [gggtr]               [rel]   [ma] ["6F]
+\definemathsymbol [ggg]                 [rel]   [ma] ["6F] % gggtr
+\definemathsymbol [ulcorner]            [open]  [ma] ["70] [ma] ["70]
+\definemathsymbol [urcorner]            [close] [ma] ["71] [ma] ["71]
+\definemathsymbol [circledS]            [ord]   [ma] ["73]
+\definemathsymbol [pitchfork]           [rel]   [ma] ["74]
+\definemathsymbol [dotplus]             [bin]   [ma] ["75]
+\definemathsymbol [backsim]             [rel]   [ma] ["76]
+\definemathsymbol [backsimeq]           [rel]   [ma] ["77]
+\definemathsymbol [llcorner]            [open]  [ma] ["78] [ma] ["78]
+\definemathsymbol [lrcorner]            [close] [ma] ["79] [ma] ["79]
+\definemathsymbol [complement]          [ord]   [ma] ["7B]
+\definemathsymbol [intercal]            [bin]   [ma] ["7C]
+\definemathsymbol [circledcirc]         [bin]   [ma] ["7D]
+\definemathsymbol [circledast]          [bin]   [ma] ["7E]
+\definemathsymbol [circleddash]         [bin]   [ma] ["7F]
+
+\stopmathcollection
+
+\startmathcollection[ams]
+
+\definemathsymbol [lvertneqq]           [rel]   [mb] ["00]
+\definemathsymbol [gvertneqq]           [rel]   [mb] ["01]
+\definemathsymbol [nleq]                [rel]   [mb] ["02]
+\definemathsymbol [ngeq]                [rel]   [mb] ["03]
+\definemathsymbol [nless]               [rel]   [mb] ["04]
+\definemathsymbol [ngtr]                [rel]   [mb] ["05]
+\definemathsymbol [nprec]               [rel]   [mb] ["06]
+\definemathsymbol [nsucc]               [rel]   [mb] ["07]
+\definemathsymbol [lneqq]               [rel]   [mb] ["08]
+\definemathsymbol [gneqq]               [rel]   [mb] ["09]
+\definemathsymbol [nleqslant]           [rel]   [mb] ["0A]
+\definemathsymbol [ngeqslant]           [rel]   [mb] ["0B]
+\definemathsymbol [lneq]                [rel]   [mb] ["0C]
+\definemathsymbol [gneq]                [rel]   [mb] ["0D]
+\definemathsymbol [npreceq]             [rel]   [mb] ["0E]
+\definemathsymbol [nsucceq]             [rel]   [mb] ["0F]
+\definemathsymbol [precnsim]            [rel]   [mb] ["10]
+\definemathsymbol [succnsim]            [rel]   [mb] ["11]
+\definemathsymbol [lnsim]               [rel]   [mb] ["12]
+\definemathsymbol [gnsim]               [rel]   [mb] ["13]
+\definemathsymbol [nleqq]               [rel]   [mb] ["14]
+\definemathsymbol [ngeqq]               [rel]   [mb] ["15]
+\definemathsymbol [precneqq]            [rel]   [mb] ["16]
+\definemathsymbol [succneqq]            [rel]   [mb] ["17]
+\definemathsymbol [precnapprox]         [rel]   [mb] ["18]
+\definemathsymbol [succnapprox]         [rel]   [mb] ["19]
+\definemathsymbol [lnapprox]            [rel]   [mb] ["1A]
+\definemathsymbol [gnapprox]            [rel]   [mb] ["1B]
+\definemathsymbol [nsim]                [rel]   [mb] ["1C]
+\definemathsymbol [ncong]               [rel]   [mb] ["1D]
+\definemathsymbol [diagup]              [ord]   [mb] ["1E]
+\definemathsymbol [diagdown]            [ord]   [mb] ["1F]
+\definemathsymbol [varsubsetneq]        [rel]   [mb] ["20]
+\definemathsymbol [varsupsetneq]        [rel]   [mb] ["21]
+\definemathsymbol [nsubseteqq]          [rel]   [mb] ["22]
+\definemathsymbol [nsupseteqq]          [rel]   [mb] ["23]
+\definemathsymbol [subsetneqq]          [rel]   [mb] ["24]
+\definemathsymbol [supsetneqq]          [rel]   [mb] ["25]
+\definemathsymbol [varsubsetneqq]       [rel]   [mb] ["26]
+\definemathsymbol [varsupsetneqq]       [rel]   [mb] ["27]
+\definemathsymbol [subsetneq]           [rel]   [mb] ["28]
+\definemathsymbol [supsetneq]           [rel]   [mb] ["29]
+\definemathsymbol [nsubseteq]           [rel]   [mb] ["2A]
+\definemathsymbol [nsupseteq]           [rel]   [mb] ["2B]
+\definemathsymbol [nparallel]           [rel]   [mb] ["2C]
+\definemathsymbol [nmid]                [rel]   [mb] ["2D]
+\definemathsymbol [nshortmid]           [rel]   [mb] ["2E]
+\definemathsymbol [nshortparallel]      [rel]   [mb] ["2F]
+\definemathsymbol [nvdash]              [rel]   [mb] ["30]
+\definemathsymbol [nVdash]              [rel]   [mb] ["31]
+\definemathsymbol [nvDash]              [rel]   [mb] ["32]
+\definemathsymbol [nVDash]              [rel]   [mb] ["33]
+\definemathsymbol [ntrianglerighteq]    [rel]   [mb] ["34]
+\definemathsymbol [ntrianglelefteq]     [rel]   [mb] ["35]
+\definemathsymbol [ntriangleleft]       [rel]   [mb] ["36]
+\definemathsymbol [ntriangleright]      [rel]   [mb] ["37]
+\definemathsymbol [nleftarrow]          [rel]   [mb] ["38]
+\definemathsymbol [nrightarrow]         [rel]   [mb] ["39]
+\definemathsymbol [nLeftarrow]          [rel]   [mb] ["3A]
+\definemathsymbol [nRightarrow]         [rel]   [mb] ["3B]
+\definemathsymbol [nLeftrightarrow]     [rel]   [mb] ["3C]
+\definemathsymbol [nleftrightarrow]     [rel]   [mb] ["3D]
+\definemathsymbol [divideontimes]       [bin]   [mb] ["3E]
+\definemathsymbol [varnothing]          [ord]   [mb] ["3F]
+\definemathsymbol [nexists]             [ord]   [mb] ["40]
+\definemathsymbol [Finv]                [ord]   [mb] ["60]
+\definemathsymbol [Game]                [ord]   [mb] ["61]
+\definemathsymbol [mho]                 [ord]   [mb] ["66]
+\definemathsymbol [eth]                 [ord]   [mb] ["67]
+\definemathsymbol [eqsim]               [rel]   [mb] ["68]
+\definemathsymbol [beth]                [ord]   [mb] ["69]
+\definemathsymbol [gimel]               [ord]   [mb] ["6A]
+\definemathsymbol [daleth]              [ord]   [mb] ["6B]
+\definemathsymbol [lessdot]             [bin]   [mb] ["6C]
+\definemathsymbol [gtrdot]              [bin]   [mb] ["6D]
+\definemathsymbol [ltimes]              [bin]   [mb] ["6E]
+\definemathsymbol [rtimes]              [bin]   [mb] ["6F]
+\definemathsymbol [shortmid]            [rel]   [mb] ["70]
+\definemathsymbol [shortparallel]       [rel]   [mb] ["71]
+\definemathsymbol [smallsetminus]       [bin]   [mb] ["72]
+\definemathsymbol [thicksim]            [rel]   [mb] ["73]
+\definemathsymbol [thickapprox]         [rel]   [mb] ["74]
+\definemathsymbol [approxeq]            [rel]   [mb] ["75]
+\definemathsymbol [succapprox]          [rel]   [mb] ["76]
+\definemathsymbol [precapprox]          [rel]   [mb] ["77]
+\definemathsymbol [curvearrowleft]      [rel]   [mb] ["78]
+\definemathsymbol [curvearrowright]     [rel]   [mb] ["79]
+\definemathsymbol [digamma]             [ord]   [mb] ["7A]
+\definemathsymbol [varkappa]            [ord]   [mb] ["7B]
+\definemathsymbol [Bbbk]                [ord]   [mb] ["7C]
+\definemathsymbol [hslash]              [ord]   [mb] ["7D]
+\definemathsymbol [hbar]                [ord]   [mb] ["7E]
+\definemathsymbol [backepsilon]         [rel]   [mb] ["7F]
+
+\stopmathcollection  
+
+\startmathcollection[ams]
+
+\definemathcommand [yen]            [nothing] {\mathhexbox{\hexmafam}55}
+\definemathcommand [checkmark]      [nothing] {\mathhexbox{\hexmafam}58}
+\definemathcommand [circledR]       [nothing] {\mathhexbox{\hexmafam}72}
+\definemathcommand [maltese]        [nothing] {\mathhexbox{\hexmafam}7A}
+\definemathcommand [dashrightarrow] [rel]     {\dabar@\dabar@ \mathchar"0C4B}%
+\definemathcommand [dashleftarrow]  [rel]     {\mathchar"0C4C\dabar@ \dabar@}%
+\definemathcommand [dasharrow]      [rel]     {\dabar@\dabar@ \mathchar"0C4B}%
+\definemathcommand [Join]           [rel]     {\mathchar"0D6F\mkern-13.8mu\mathchar"0D6E}
+\definemathcommand [implies]        [rel]     {\;\Longrightarrow\;}
+\definemathcommand [impliedby]      [rel]     {\;\Longleftarrow\;}
+\definemathcommand [And]            [rel]     {\;\internalAnd\;}
+
+\stopmathcollection
+
+\def\AMSwidehat#1%
+  {\setbox\scratchbox\hbox{$\m@th#1$}%
+   \ifdim\wd\scratchbox>2em
+     \mathaccent"0\purefamilyhex{mb}5B{#1}%
+   \else
+     \mathaccent"0\purefamilyhex{ex}62{#1}%
+   \fi}
+
+\def\AMSwidetilde#1%
+  {\setbox\scratchbox\hbox{$\m@th#1$}%
+   \ifdim\wd\scratchbox>2em
+     \mathaccent"0\purefamilyhex{mb}5D{#1}%
+   \else
+     \mathaccent"0\purefamilyhex{ex}65{#1}%
+   \fi}
+
+\startmathcollection[ams]
+
+\definemathcommand [widehat]   {\AMSwidehat}
+\definemathcommand [widetilde] {\AMSwidetilde}
+
+\stopmathcollection
+
+\protect \endinput
diff --git a/tex/context/base/math-eul.tex b/tex/context/base/math-eul.tex
new file mode 100644
index 000000000..0ec35fe16
--- /dev/null
+++ b/tex/context/base/math-eul.tex
@@ -0,0 +1,127 @@
+%D \module
+%D   [       file=math-eul,
+%D        version=2001.04.12,
+%D          title=\CONTEXT\ Math Macros,
+%D       subtitle=Euler Specials,
+%D         author={Hans Hagen \& Taco Hoekwater},
+%D           date=\currentdate,
+%D      copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\unprotect
+
+\startmathcollection[eul]
+
+\definemathcharacter [0] [alpha] [mi] [30]
+\definemathcharacter [1] [alpha] [mi] [31]
+\definemathcharacter [2] [alpha] [mi] [32]
+\definemathcharacter [3] [alpha] [mi] [33]
+\definemathcharacter [4] [alpha] [mi] [34]
+\definemathcharacter [5] [alpha] [mi] [35]
+\definemathcharacter [6] [alpha] [mi] [36]
+\definemathcharacter [7] [alpha] [mi] [37]
+\definemathcharacter [8] [alpha] [mi] [38]
+\definemathcharacter [9] [alpha] [mi] [39]
+
+\stopmathcollection
+
+\startmathcollection[eul]
+
+\definemathsymbol [intop]          [op]      [ma] ["52]
+\definemathsymbol [ointop]         [op]      [ma] ["48]
+\definemathsymbol [coprod]         [op]      [ma] ["60]
+\definemathsymbol [prod]           [op]      [ma] ["51]
+\definemathsymbol [sum]            [op]      [ma] ["50]
+\definemathsymbol [braceld]        [nothing] [ma] ["7A]
+\definemathsymbol [bracerd]        [nothing] [ma] ["7B]
+\definemathsymbol [bracelu]        [nothing] [ma] ["7C]
+\definemathsymbol [braceru]        [nothing] [ma] ["7D]
+\definemathsymbol [infty]          [ord]     [ma] ["31]
+\definemathsymbol [nearrow]        [rel]     [ma] ["25]
+\definemathsymbol [searrow]        [rel]     [ma] ["26]
+\definemathsymbol [nwarrow]        [rel]     [ma] ["2D]
+\definemathsymbol [swarrow]        [rel]     [ma] ["2E]
+\definemathsymbol [Leftrightarrow] [rel]     [ma] ["2C]
+\definemathsymbol [Leftarrow]      [rel]     [ma] ["28]
+\definemathsymbol [Rightarrow]     [rel]     [ma] ["29]
+\definemathsymbol [leftrightarrow] [rel]     [ma] ["24]
+\definemathsymbol [leftarrow]      [rel]     [ma] ["20]
+\definemathsymbol [gets]           [rel]     [ma] ["20] % leftarrow 
+\definemathsymbol [rightarrow]     [rel]     [ma] ["21]
+\definemathsymbol [to]             [rel]     [ma] ["21] % rightarrow
+\definemathsymbol [uparrow]        [rel]     [ma] ["22] [ex] ["78]
+\definemathsymbol [downarrow]      [rel]     [ma] ["23] [ex] ["79]
+\definemathsymbol [updownarrow]    [rel]     [ma] ["6C] [ex] ["3F]
+\definemathsymbol [Uparrow]        [rel]     [ma] ["2A] [ex] ["7E]
+\definemathsymbol [Downarrow]      [rel]     [ma] ["2B] [ex] ["7F]
+\definemathsymbol [Updownarrow]    [rel]     [ma] ["6D] [ex] ["77]
+
+\definemathsymbol [leftharpoonup]    [rel] [ma] ["18]
+\definemathsymbol [leftharpoondown]  [rel] [ma] ["19]
+\definemathsymbol [rightharpoonup]   [rel] [ma] ["1A]
+\definemathsymbol [rightharpoondown] [rel] [ma] ["1B]
+
+\stopmathcollection
+
+\startmathcollection[eul]
+
+\definemathcharacter [+]  [bin]   [mc] ["2B]
+\definemathcharacter [-]  [bin]   [mc] ["2D]
+\definemathcharacter [!]  [ord]   [mc] ["21]
+\definemathcharacter [(]  [open]  [mc] ["28]
+\definemathcharacter [)]  [close] [mc] ["29]
+\definemathcharacter [91] [open]  [mc] ["5B]
+\definemathcharacter [93] [close] [mc] ["5D]
+\definemathcharacter [=]  [rel]   [mc] ["3D]
+
+\definemathcharacter [(]  [nothing] [mc] ["28] [ex] ["00]
+\definemathcharacter [)]  [nothing] [mc] ["29] [ex] ["01]
+\definemathcharacter [91] [nothing] [mc] ["5B] [ex] ["02]
+\definemathcharacter [93] [nothing] [mc] ["5D] [ex] ["03]
+
+\stopmathcollection
+
+\startmathcollection[eul]
+
+\definemathsymbol [Gamma]   [alpha] [mi] ["00]
+\definemathsymbol [Delta]   [alpha] [mi] ["01]
+\definemathsymbol [Theta]   [alpha] [mi] ["02]
+\definemathsymbol [Lambda]  [alpha] [mi] ["03]
+\definemathsymbol [Xi]      [alpha] [mi] ["04]
+\definemathsymbol [Pi]      [alpha] [mi] ["05]
+\definemathsymbol [Sigma]   [alpha] [mi] ["06]
+\definemathsymbol [Upsilon] [alpha] [mi] ["07]
+\definemathsymbol [Phi]     [alpha] [mi] ["08]
+\definemathsymbol [Psi]     [alpha] [mi] ["09]
+\definemathsymbol [Omega]   [alpha] [mi] ["0A]
+
+\stopmathcollection
+
+\startmathcollection[eul]
+
+\definemathsymbol [Relbar]    [rel]     [mr] ["3D]
+\definemathsymbol [aleph]     [ord]     [sy] ["40] % ? 
+\definemathsymbol [lbrace]    [open]    [mb] ["66] [ma] ["08] 
+\definemathsymbol [rbrace]    [close]   [mb] ["67] [ma] ["09] 
+\definemathsymbol [leq]       [rel]     [mb] ["14] 
+\definemathsymbol [le]        [rel]     [mb] ["14] 
+\definemathsymbol [geq]       [rel]     [mb] ["15] 
+\definemathsymbol [ge]        [rel]     [mb] ["15] 
+\definemathsymbol [Re]        [ord]     [mb] ["3C]
+\definemathsymbol [Im]        [ord]     [mb] ["3D]
+\definemathsymbol [vert]      [nothing] [mb] ["6A] [ex] ["0C] 
+\definemathsymbol [backslash] [nothing] [mb] ["6E] [ex] ["0F] 
+
+\stopmathcollection
+
+\startmathcollection[eul]
+
+\definemathcommand [varsigma] {\sigma}
+\definemathcommand [varrho]   {\rho}
+
+\stopmathcollection
+
+\protect \endinput
diff --git a/tex/context/base/math-ini.tex b/tex/context/base/math-ini.tex
new file mode 100644
index 000000000..1a86aeac4
--- /dev/null
+++ b/tex/context/base/math-ini.tex
@@ -0,0 +1,351 @@
+%D \module
+%D   [       file=math-ini,
+%D        version=2001.04.12, 
+%D          title=\CONTEXT\ Math Macros,
+%D       subtitle=Basic Macros, 
+%D         author={Hans Hagen \& Taco Hoekwater},
+%D           date=\currentdate,
+%D      copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This module provides namespaces for math fonts, thereby
+%D permitting mixed usage of math fonts. Although not strictly
+%D needed, we also provide a family name mapping mechanism as
+%D used in the (original) AMS math definition files, but here
+%D these names can recursively be remapped and if needed,
+%D dynamically be changed. We've tried to minimize the number
+%D of definition commands and use plain \TEX\ definitions as
+%D fallback. We've tried to follow a couple of conventions
+%D from plain and AMS math in order to achieve backward
+%D compatinility. We also kept an eye on future usage of these
+%D modules in the perspective of MathML and unicode fonts. 
+
+\unprotect
+
+\def\@mt@{@mt@} % math token
+\def\@mt@{@mc@} % math character 
+\def\@mh@{@mh@} % math handler
+\def\@mf@{@mf@} % math family
+\def\@mc@{@mc@} % math class
+\def\@ml@{@mc@} % math list 
+
+\def\@@mathlimopcomm#1{\mathop{#1}\limits}
+\def\@@mathnolopcomm#1{\mathop{#1}\nolimits}
+\def\@@mathboxcomm  #1{\leavevmode\hbox{$\m@th#1$}}
+
+\chardef\mathordcode    = 0  \let\mathordcomm     \mathord
+\chardef\mathopcode     = 1  \let\mathopcomm      \mathop 
+\chardef\mathbincode    = 2  \let\mathbincomm     \mathbin 
+\chardef\mathrelcode    = 3  \let\mathrelcomm     \mathrel
+\chardef\mathopencode   = 4  \let\mathopencomm    \mathopen 
+\chardef\mathclosecode  = 5  \let\mathclosecomm   \mathclose 
+\chardef\mathpunctcode  = 6  \let\mathpunctcomm   \mathpunct 
+\chardef\mathalphacode  = 7  \let\mathalphacomm   \firstofoneargument
+\chardef\mathinnercode  = 0  \let\mathinnercomm   \mathinner
+\chardef\mathnothingcode= 0  \let\mathnothingcomm \firstofoneargument
+\chardef\mathlimopcode  = 1  \let\mathlimopcomm   \@@mathlimopcomm  
+\chardef\mathnolopcode  = 1  \let\mathnolopcomm   \@@mathnolopcomm  
+\chardef\mathchoicecode = 0  \let\mathchoicecomm  \@@mathchoicecomm  
+\chardef\mathboxcode    = 0  \let\mathboxcomm     \@@mathboxcomm  
+
+\chardef\mathaccentcode = 8
+\chardef\mathradicalcode= 9
+
+\def\@@mathchoicecomm#1{[todo #1]}
+
+\def\puremathcode#1{\the\csname math#1code\endcsname}
+\def\puremathcomm#1{\csname     math#1comm\endcsname}
+
+\newif\iftracemathcollection
+
+\beginETEX \ifcsname
+
+\def\dohandlemathtoken#1%
+  {\csname\@mt@
+     \ifcsname\@mt@\mathcollection#1\endcsname
+       \mathcollection
+     \else\ifcsname\@mt@\nomathcollection#1\endcsname
+       \nomathcollection
+     \fi\fi
+   #1\endcsname}
+
+\endETEX
+
+\beginTEX 
+
+\def\dohandlemathtoken#1%
+  {\csname\@mt@
+     \@EA\ifx\csname\@mt@\mathcollection#1\endcsname\relax
+       \@EA\ifx\csname\@mt@\nomathcollection#1\endcsname\relax 
+       \else
+         \nomathcollection
+       \fi
+     \else
+       \mathcollection
+     \fi
+   #1\endcsname}
+
+\endTEX
+
+\def\definefamilysynonym%
+  {\dotripleempty\dodefinefamilysynonym}
+
+\def\dodefinefamilysynonym[#1][#2][#3]% [mathcollection] [] []
+  {\ifthirdargument
+     \setvalue{\@mf@#1#2}{#3}%
+   \else
+     \setvalue{\@mf@  #1}{#2}%
+   \fi}
+
+\def\purefamily   #1{\csname    \truefamily{#1}\s!fam\endcsname}
+\def\purefamilyhex#1{\csname hex\truefamily{#1}\s!fam\endcsname}
+
+\beginETEX \ifcsname
+
+\def\truefamily#1%
+  {\ifcsname\@mf@\mathcollection#1\endcsname
+     \@EA\truefamily\csname\@mf@\mathcollection#1\endcsname
+   \else\ifcsname\@mf@#1\endcsname
+     \@EA\truefamily\csname\@mf@#1\endcsname
+   \else\ifcsname\@mf@\nomathcollection#1\endcsname
+     \@EA\truefamily\csname\@mf@\nomathcollection#1\endcsname
+   \else
+     #1%
+   \fi\fi\fi}
+
+\endETEX
+
+\beginTEX
+
+\def\truefamily#1%
+  {\@EA\ifx\csname\@mf@\mathcollection#1\endcsname\relax
+     \@EA\ifx\csname\@mf@#1\endcsname\relax
+       \@EA\ifx\csname\@mf@\nomathcollection#1\endcsname\relax
+         #1%
+       \else
+         \@EA\truefamily\csname\@mf@\nomathcollection#1\endcsname
+       \fi
+     \else
+       \@EA\truefamily\csname\@mf@#1\endcsname
+     \fi
+   \else
+     \@EA\truefamily\csname\@mf@\mathcollection#1\endcsname
+   \fi}
+
+\endTEX
+
+\newif\ifdynamicmathfamilies \dynamicmathfamiliesfalse % true ? 
+
+\let\normalpurefamilyhex\purefamilyhex
+
+% todo: reset collection (tok legen) en opnieuw laden met true 
+
+\def\definemathsymbol%
+  {\dosixtupleempty\dodefinemathsymbol}
+
+\def\dodefinemathsymbol[#1][#2][#3][#4][#5][#6]%
+  {\unexpanded\setgvalue{#1}{\dohandlemathtoken{#1}}%
+   \ifdynamicmathfamilies \let\purefamilyhex\relax \fi
+   \setevalue{\@mt@\mathcollection#1}%
+     {\ifsixthargument
+        \ifnum\puremathcode{#2}=\mathradicalcode
+          \radical"%
+        \else
+          \delimiter"%
+          \ifnum\puremathcode{#2}>7 0\else\puremathcode{#2}\fi
+        \fi
+        \purefamilyhex{#3}\uchexnumbers{#4}%
+        \purefamilyhex{#5}\uchexnumbers{#6}\space
+      \else\iffourthargument
+        \ifnum\puremathcode{#2}=\mathaccentcode
+          \mathaccent\else\mathchar
+        \fi 
+       "\ifnum\puremathcode{#2}>7 0\else\puremathcode{#2}\fi
+        \purefamilyhex{#3}\uchexnumbers{#4}\space
+      \fi\fi}%
+   \let\purefamilyhex\normalpurefamilyhex
+   \tracemathsymbol{#1}}
+
+\def\tracemathsymbol#1%
+  {\iftracemathcollection
+     {\endgraf
+      \hbox{\tex{#1}~:~{\mathematics{\getvalue{#1}{}}}}
+      \endgraf}%
+   \fi}
+
+\def\definemathcharacter%
+  {\dosixtupleempty\dodefinemathcharacter}
+
+\def\dodefinemathcharacter[#1][#2][#3][#4][#5][#6]%
+  {\setmathtoks
+   \ifdynamicmathfamilies \let\purefamilyhex\relax \fi
+   \doifnumberelse{#1}
+     {\scratchcounter=#1}
+     {\scratchcounter=\@EA`\string#1}%
+   \expanded
+     {\appendtoks
+        \ifsixthargument
+          \delcode\the\scratchcounter="%
+            \ifnum\puremathcode{#2}>7 0\else\puremathcode{#2}\fi
+            \purefamilyhex{#3}\uchexnumbers{#4}%
+            \purefamilyhex{#5}\uchexnumbers{#6}\space
+        \else\iffourthargument
+          \mathcode\the\scratchcounter="%
+            \ifnum\puremathcode{#2}>7 0\else\puremathcode{#2}\fi
+            \purefamilyhex{#3}\uchexnumbers{#4}\space
+        \fi\fi
+        \noexpand\to \noexpand\mathtoks}%
+   \let\purefamilyhex\normalpurefamilyhex
+   \tracemathcharacter{#1}}
+
+\def\tracemathcharacter#1%
+  {\iftracemathcollection
+     {\endgraf
+      \doifnumberelse{#1}
+        {\hbox{\tttf\rawcharacter{#1}~:~{\mathematics{\rawcharacter{#1}}}}}
+        {\hbox{\type{#1}~:~{\mathematics{#1}}}}
+      \endgraf}%
+   \fi}
+
+\def\definemathcommand%
+  {\dodoubleempty\dodefinemathcommand}
+
+\def\dodefinemathcommand[#1][#2]#3%
+  {\unexpanded\setgvalue{#1}{\dohandlemathtoken{#1}}%
+   \ifsecondargument
+     \setvalue{\@mt@\mathcollection#1}{\puremathcomm{#2}{#3}}%
+   \else
+     \setvalue{\@mt@\mathcollection#1}{\puremathcomm{nothing}{#3}}%
+   \fi
+   \tracemathcommand{#1}}
+
+\def\tracemathcommand#1%
+  {\iftracemathcollection
+     \endgraf
+     \hbox{\tex{#1}~:~{\mathematics{\getvalue{#1}{}}}}
+     \endgraf
+   \fi}
+
+\def\startmathcollection[#1]%
+  {\pushmacro\mathcollection
+   \setmathcollection{#1}}
+
+\def\setmathcollection#1%
+  {\def\mathcollection{#1}%
+   \doifundefined{\@ml@\mathcollection}
+     {\expandafter\newtoks\csname\@ml@\mathcollection\endcsname}}
+
+\def\stopmathcollection%
+  {\popmacro\mathcollection}
+
+\def\startrawmathcollection%
+  {\pushmacro\iftracemathcollection
+   \tracemathcollectionfalse
+   \startmathcollection}
+
+\def\stoprawmathcollection%
+  {\popmacro\iftracemathcollection
+   \stopmathcollection}
+
+\newtoks\mathtoks
+
+\def\setmathtoks%
+  {\@EA\let\@EA\mathtoks\csname\@ml@\mathcollection\endcsname}
+
+\def\currentmathcollection{\mathcollection}
+
+\def\nomathcollection{\s!default}
+
+\def\enablemathcollection[#1]%
+  {\doifnot{#1}{\s!default}
+     {\setmathcollection\s!default
+      \the\csname\@ml@\mathcollection\endcsname}%
+   \setmathcollection{#1}%
+   \the\csname\@ml@\mathcollection\endcsname}
+
+% hook 'm into the font mechanism 
+
+\definefilesynonym[\f!mathprefix\s!default][\f!mathprefix tex]
+
+\def\usemathcollection[#1]%
+  {\doinputonce{\truefilename{\f!mathprefix#1}}%
+   \setvalue{\@mc@\fontclass\@mc@}{#1}}
+
+\def\autoenablemathcollection%
+  {\doifdefinedelse{\@mc@\fontclass\@mc@}
+     {\enablemathcollection[\getvalue{\@mc@\fontclass\@mc@}]}
+     {\enablemathcollection[\s!default]}}
+
+\appendtoks\autoenablemathcollection\to\mathstrategies
+
+\edef\hexmrfam {0} \edef\hexbsfam {8}
+\edef\hexmifam {1} \edef\hexbifam {9}
+\edef\hexsyfam {2} \edef\hexscfam {A}
+\edef\hexexfam {3} \edef\hextffam {B}
+\edef\hexitfam {4} \edef\hexmafam {C}
+\edef\hexslfam {5} \edef\hexmbfam {D}
+\edef\hexbffam {6} \edef\hexmcfam {E}
+\edef\hexnnfam {7} \edef\hexmdfam {F}
+
+\definefamilysynonym [default] [letters]   [mr]
+\definefamilysynonym [default] [operators] [sy]
+\definefamilysynonym [default] [lcgreek]   [mi]
+\definefamilysynonym [default] [ucgreek]   [mr]
+\definefamilysynonym [default] [vargreek]  [mi]
+\definefamilysynonym [default] [mitfamily] [mi]
+\definefamilysynonym [default] [calfamily] [sy]
+
+\definefamilysynonym [default] [0] [mr]
+\definefamilysynonym [default] [1] [mi]
+\definefamilysynonym [default] [2] [sy]
+\definefamilysynonym [default] [3] [ex]
+
+\enablemathcollection[default]
+
+\usemathcollection[default]
+
+\protect \endinput
+
+\tracemathcollectiontrue 
+
+                                               \input math-tex \page
+\setupbodyfont[ams] \enablemathcollection[ams] \input math-ams \page
+\setupbodyfont[lbr] \enablemathcollection[lbr] \input math-lbr \page
+\setupbodyfont[eul] \enablemathcollection[eul] \input math-eul \stoptext
+
+
+% to be checked
+
+\def\defineactivecharacter #1 #2%
+  {\scratchcounter=\the\uccode`~
+   \expandafter\doifnumberelse\expandafter{\string#1}
+     {\catcode #1=\@@active \uccode`~= #1\relax}
+     {\catcode`#1=\@@active \uccode`~=`#1\relax}%
+   \uppercase{\def\next{~}}%
+  % unexpanded goes wrong in pdfdoc
+  %\expandafter\unexpanded\expandafter\def\next{#2}%
+  % better
+  %\expandafter\def\next{#2}%
+  % math aware
+   \expandafter\def\next{\dohandleactivecharacter{#1}{#2}}% new
+   \uccode`~=\scratchcounter}
+
+\def\dohandleactivecharacter%
+  {\ifmmode
+     \expandafter\dohandleactivemathcharacter
+   \else
+     \expandafter\secondoftwoarguments
+   \fi}
+
+\let\dohandleactivemathcharacter\secondoftwoarguments
+
+\def\dohandleactivemathcharacter#1#2%
+  {\ifundefined{@ma@\string#1}
+     \expandafter\firstofoneargument
+   \else
+     \getvalue{@ma@\string#1}%
+     \expandafter\gobbleoneargument
+   \fi{#2}}
diff --git a/tex/context/base/math-lbr.tex b/tex/context/base/math-lbr.tex
new file mode 100644
index 000000000..d6ecb8de5
--- /dev/null
+++ b/tex/context/base/math-lbr.tex
@@ -0,0 +1,167 @@
+%D \module
+%D   [       file=math-lbr,
+%D        version=2001.04.12, 
+%D          title=\CONTEXT\ Math Macros,
+%D       subtitle=Lucida Specials,
+%D         author={Hans Hagen \& Taco Hoekwater},
+%D           date=\currentdate,
+%D      copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\unprotect 
+
+\startmathcollection[lbr]
+
+\definemathsymbol [blacktriangleright]  [rel] [mi] ["F0]
+\definemathsymbol [blacktriangleleft]   [rel] [mi] ["F1]
+\definemathsymbol [boxtimes]            [bin] [sy] ["EC]
+
+\stopmathcollection
+
+\startmathcollection[lbr]
+
+\definemathcharacter [91] [open]    [mi] ["86] 
+\definemathcharacter [93] [close]   [mi] ["87] 
+\definemathcharacter [(]  [open]    [mi] ["84] 
+\definemathcharacter [)]  [close]   [mi] ["85] 
+\definemathcharacter [/]  [nothing] [mi] ["3D] 
+\definemathcharacter [=]  [rel]     [sy] ["83] 
+\definemathcharacter [+]  [bin]     [sy] ["82]
+
+\definemathcharacter [91] [nothing] [mi] ["86] [ex] ["02]
+\definemathcharacter [93] [nothing] [mi] ["87] [ex] ["03]
+\definemathcharacter [(]  [nothing] [mi] ["84] [ex] ["00]
+\definemathcharacter [)]  [nothing] [mi] ["85] [ex] ["01]
+\definemathcharacter [/]  [nothing] [mi] ["3D] [ex] ["0E]
+
+\stopmathcollection
+
+\startmathcollection[lbr]
+
+\definemathsymbol [ldbrack]      [open]  [mi] ["82] [ex] ["82]
+\definemathsymbol [rdbrack]      [close] [mi] ["83] [ex] ["83]
+\definemathsymbol [surfintop]    [op]    [ex] ["90] 
+\definemathsymbol [midintop]     [op]    [ex] ["92] 
+\definemathsymbol [midointop]    [op]    [ex] ["93] 
+\definemathsymbol [midsurfintop] [op]    [ex] ["94]
+\definemathsymbol [largeint]     [op]    [ex] ["5A] [ex] ["95]
+
+% \definemathcommand [surfint]    [nolop] {\surfintop}
+% \definemathcommand [midint]     [nolop] {\midintop}
+% \definemathcommand [midoint]    [nolop] {\midointop}
+% \definemathcommand [midsurfint] [nolop] {\midsurfintop}
+
+\definemathsymbol [surfint]    [nolop] [ex] ["90] 
+\definemathsymbol [midint]     [nolop] [ex] ["92] 
+\definemathsymbol [midoint]    [nolop] [ex] ["93] 
+\definemathsymbol [midsurfint] [nolop] [ex] ["94]
+
+\definemathsymbol [dblint]            [ord] [mi] ["88]
+\definemathsymbol [trplint]           [ord] [mi] ["89]
+\definemathsymbol [contint]           [ord] [mi] ["8A]
+\definemathsymbol [surfint]           [ord] [mi] ["8B]
+\definemathsymbol [volint]            [ord] [mi] ["8C]
+\definemathsymbol [clwint]            [ord] [mi] ["8D]
+\definemathsymbol [cclwcint]          [ord] [mi] ["8E]
+\definemathsymbol [clwcint]           [ord] [mi] ["8F]
+\definemathsymbol [bowtie]            [rel] [mi] ["F6]
+\definemathsymbol [models]            [rel] [sy] ["EE]
+\definemathsymbol [doteq]             [rel] [sy] ["C9]
+\definemathsymbol [cong]              [rel] [sy] ["9B]
+\definemathsymbol [angle]             [ord] [sy] ["8B]
+\definemathsymbol [hbar]              [ord] [mi] ["9D]
+\definemathsymbol [neq]               [rel] [ma] ["94]
+\definemathsymbol [rightleftharpoons] [rel] [ma] ["7A]
+\definemathsymbol [leftrightharpoons] [rel] [ma] ["79]
+\definemathsymbol [hookleftarrow]     [rel] [ma] ["3C]
+\definemathsymbol [hookrightarrow]    [rel] [ma] ["3E]
+\definemathsymbol [mapsto]            [rel] [ma] ["2C]
+
+\definemathcommand [longmapsto] {\mapstochar\longrightarrow}
+
+\stopmathcollection
+
+\definefamilysynonym [lbr] [ucgreek]  [ex]
+\definefamilysynonym [lbr] [vargreek] [mi]
+
+\startmathcollection[lbr]
+
+\definemathsymbol [Gamma]   [alpha] [ucgreek] ["D0]
+\definemathsymbol [Delta]   [alpha] [ucgreek] ["D1]
+\definemathsymbol [Theta]   [alpha] [ucgreek] ["D2]
+\definemathsymbol [Lambda]  [alpha] [ucgreek] ["D3]
+\definemathsymbol [Xi]      [alpha] [ucgreek] ["D4]
+\definemathsymbol [Pi]      [alpha] [ucgreek] ["D5]
+\definemathsymbol [Sigma]   [alpha] [ucgreek] ["D6]
+\definemathsymbol [Upsilon] [alpha] [ucgreek] ["D7]
+\definemathsymbol [Phi]     [alpha] [ucgreek] ["D8]
+\definemathsymbol [Psi]     [alpha] [ucgreek] ["D9]
+\definemathsymbol [Omega]   [alpha] [ucgreek] ["DA]
+
+\definemathsymbol [varGamma]   [ord] [vargreek] ["00]
+\definemathsymbol [varDelta]   [ord] [vargreek] ["01]
+\definemathsymbol [varTheta]   [ord] [vargreek] ["02]
+\definemathsymbol [varLambda]  [ord] [vargreek] ["03]
+\definemathsymbol [varXi]      [ord] [vargreek] ["04]
+\definemathsymbol [varPi]      [ord] [vargreek] ["05]
+\definemathsymbol [varSigma]   [ord] [vargreek] ["06]
+\definemathsymbol [varUpsilon] [ord] [vargreek] ["07]
+\definemathsymbol [varPhi]     [ord] [vargreek] ["08]
+\definemathsymbol [varPsi]     [ord] [vargreek] ["09]
+\definemathsymbol [varOmega]   [ord] [vargreek] ["0A]
+
+\stopmathcollection
+
+\def\LBRroot#1#2%
+  {\setbox\z@\hbox{$\m@th#1\sqrt{#2}$}
+   \dimen@\ht\z@ \advance\dimen@-\dp\z@
+   \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-7.5mu \box\z@}
+
+\def\LBRmatrix#1%
+  {\null\,\vcenter{\normalbaselines\m@th
+   \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr
+   \mathstrut\crcr\noalign{\kern-0.9\baselineskip}
+   #1\crcr\mathstrut\crcr\noalign{\kern-0.9\baselineskip}}}\,}
+
+\startrawmathcollection[lbr]
+
+\definemathcommand [mathstrut] {\vphantom{f}}
+\definemathcommand [joinrel]   {\mathrel{\mkern-4mu}}
+\definemathcommand [r@@t]      {\LBRroot}
+\definemathcommand [matrix]    {\LBRmatrix}
+
+\stoprawmathcollection
+
+% Should these be related to the bodyfontsize ? 
+
+\def\LBRbig  #1{{\hbox{$\left#1\vbox to  8.20\p@{}\right.\n@space$}}}
+\def\LBRBig  #1{{\hbox{$\left#1\vbox to 10.80\p@{}\right.\n@space$}}}
+\def\LBRbigg #1{{\hbox{$\left#1\vbox to 13.42\p@{}\right.\n@space$}}}
+\def\LBRBigg #1{{\hbox{$\left#1\vbox to 16.03\p@{}\right.\n@space$}}}
+\def\LBRbiggg#1{{\hbox{$\left#1\vbox to 17.72\p@{}\right.\n@space$}}}
+\def\LBRBiggg#1{{\hbox{$\left#1\vbox to 21.25\p@{}\right.\n@space$}}}
+
+\startrawmathcollection[lbr]
+
+\definemathcommand [big]   {\LBRbig}
+\definemathcommand [Big]   {\LBRBig}
+\definemathcommand [bigg]  {\LBRbigg}
+\definemathcommand [Bigg]  {\LBRBigg}
+\definemathcommand [biggg] {\LBRbiggg}
+\definemathcommand [Biggg] {\LBRBiggg}
+
+\stoprawmathcollection
+
+\startrawmathcollection[lbr]
+
+\definemathcommand [bigggl] [open]  {\biggg}
+\definemathcommand [bigggr] [close] {\biggg}
+\definemathcommand [Bigggl] [open]  {\Biggg}
+\definemathcommand [Bigggr] [close] {\Biggg}
+
+\stoprawmathcollection
+
+\protect \endinput 
diff --git a/tex/context/base/math-tex.tex b/tex/context/base/math-tex.tex
new file mode 100644
index 000000000..b938356b4
--- /dev/null
+++ b/tex/context/base/math-tex.tex
@@ -0,0 +1,495 @@
+%D \module
+%D   [       file=math-tex,
+%D        version=2001.04.12, 
+%D          title=\CONTEXT\ Math Macros,
+%D       subtitle=Plain Specials,
+%D         author={Hans Hagen \& Taco Hoekwater},
+%D           date=\currentdate,
+%D      copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\unprotect 
+
+\mathcode`\ ="8000 
+\mathcode`\_="8000 
+\mathcode`\'="8000 
+
+\definefamilysynonym [default] [lcgreek]  [mi]
+\definefamilysynonym [default] [ucgreek]  [mr]
+\definefamilysynonym [default] [vargreek] [mi]
+
+\startmathcollection [default]
+
+\definemathsymbol [alpha]   [nothing] [lcgreek] ["0B]
+\definemathsymbol [beta]    [nothing] [lcgreek] ["0C]
+\definemathsymbol [gamma]   [nothing] [lcgreek] ["0D]
+\definemathsymbol [delta]   [nothing] [lcgreek] ["0E]
+\definemathsymbol [epsilon] [nothing] [lcgreek] ["0F]
+\definemathsymbol [zeta]    [nothing] [lcgreek] ["10]
+\definemathsymbol [eta]     [nothing] [lcgreek] ["11]
+\definemathsymbol [theta]   [nothing] [lcgreek] ["12]
+\definemathsymbol [iota]    [nothing] [lcgreek] ["13]
+\definemathsymbol [kappa]   [nothing] [lcgreek] ["14]
+\definemathsymbol [lambda]  [nothing] [lcgreek] ["15]
+\definemathsymbol [mu]      [nothing] [lcgreek] ["16]
+\definemathsymbol [nu]      [nothing] [lcgreek] ["17]
+\definemathsymbol [xi]      [nothing] [lcgreek] ["18]
+\definemathsymbol [pi]      [nothing] [lcgreek] ["19]
+\definemathsymbol [rho]     [nothing] [lcgreek] ["1A]
+\definemathsymbol [sigma]   [nothing] [lcgreek] ["1B]
+\definemathsymbol [tau]     [nothing] [lcgreek] ["1C]
+\definemathsymbol [upsilon] [nothing] [lcgreek] ["1D]
+\definemathsymbol [phi]     [nothing] [lcgreek] ["1E]
+\definemathsymbol [chi]     [nothing] [lcgreek] ["1F]
+\definemathsymbol [psi]     [nothing] [lcgreek] ["20]
+\definemathsymbol [omega]   [nothing] [lcgreek] ["21]
+
+\stopmathcollection
+
+\startmathcollection [default]
+
+\definemathsymbol [varepsilon] [nothing] [vargreek] ["22]
+\definemathsymbol [vartheta]   [nothing] [vargreek] ["23]
+\definemathsymbol [varpi]      [nothing] [vargreek] ["24]
+\definemathsymbol [varrho]     [nothing] [vargreek] ["25]
+\definemathsymbol [varsigma]   [nothing] [vargreek] ["26]
+\definemathsymbol [varphi]     [nothing] [vargreek] ["27]
+
+\stopmathcollection
+
+\startmathcollection [default]
+
+\definemathsymbol [Alpha]   [alpha] [ucgreek] ["41] % A
+\definemathsymbol [Beta]    [alpha] [ucgreek] ["42] % B
+\definemathsymbol [Gamma]   [alpha] [ucgreek] ["00]
+\definemathsymbol [Delta]   [alpha] [ucgreek] ["01]
+\definemathsymbol [Epsilon] [alpha] [ucgreek] ["45] % E
+\definemathsymbol [Zeta]    [alpha] [ucgreek] ["5A] % Z
+\definemathsymbol [Eta]     [alpha] [ucgreek] ["48] % H
+\definemathsymbol [Theta]   [alpha] [ucgreek] ["02]
+\definemathsymbol [Iota]    [alpha] [ucgreek] ["49] % I
+\definemathsymbol [Kappa]   [alpha] [ucgreek] ["4B] % K
+\definemathsymbol [Lambda]  [alpha] [ucgreek] ["03]
+\definemathsymbol [Mu]      [alpha] [ucgreek] ["4D] % M
+\definemathsymbol [Nu]      [alpha] [ucgreek] ["4E] % N
+\definemathsymbol [Xi]      [alpha] [ucgreek] ["04]
+\definemathsymbol [Pi]      [alpha] [ucgreek] ["05]
+\definemathsymbol [Rho]     [alpha] [ucgreek] ["52] % R
+\definemathsymbol [Sigma]   [alpha] [ucgreek] ["06]
+\definemathsymbol [Tau]     [alpha] [ucgreek] ["54] % T
+\definemathsymbol [Upsilon] [alpha] [ucgreek] ["07]
+\definemathsymbol [Phi]     [alpha] [ucgreek] ["08]
+\definemathsymbol [Chi]     [alpha] [ucgreek] ["58] % X
+\definemathsymbol [Psi]     [alpha] [ucgreek] ["09]
+\definemathsymbol [Omega]   [alpha] [ucgreek] ["0A]
+
+\stopmathcollection
+
+% The \mbox macro is an alternative for \hbox with a 
+% controlable font switch. 
+
+\startmathcollection[default]
+
+\definemathcommand [arccos]  [nolop] {\mbox{arccos}}
+\definemathcommand [arcsin]  [nolop] {\mbox{arcsin}}
+\definemathcommand [arctan]  [nolop] {\mbox{arctan}}
+\definemathcommand [arg]     [nolop] {\mbox{arg}}
+\definemathcommand [cosh]    [nolop] {\mbox{cosh}}
+\definemathcommand [cos]     [nolop] {\mbox{cos}}
+\definemathcommand [coth]    [nolop] {\mbox{coth}}
+\definemathcommand [cot]     [nolop] {\mbox{cot}}
+\definemathcommand [csc]     [nolop] {\mbox{csc}}
+\definemathcommand [deg]     [nolop] {\mbox{deg}}
+\definemathcommand [det]     [limop] {\mbox{det}}
+\definemathcommand [dim]     [nolop] {\mbox{dim}}
+\definemathcommand [exp]     [nolop] {\mbox{exp}}
+\definemathcommand [gcd]     [limop] {\mbox{gcd}}
+\definemathcommand [hom]     [nolop] {\mbox{hom}}
+\definemathcommand [inf]     [limop] {\mbox{inf}}
+\definemathcommand [injlim]  [limop] {\mbox{inj\,lim}}
+\definemathcommand [ker]     [nolop] {\mbox{ker}}
+\definemathcommand [lg]      [nolop] {\mbox{lg}}
+\definemathcommand [liminf]  [limop] {\mbox{lim\,inf}}
+\definemathcommand [limsup]  [limop] {\mbox{lim\,sup}}
+\definemathcommand [lim]     [limop] {\mbox{lim}}
+\definemathcommand [ln]      [nolop] {\mbox{ln}}
+\definemathcommand [log]     [nolop] {\mbox{log}}
+\definemathcommand [max]     [limop] {\mbox{max}}
+\definemathcommand [min]     [limop] {\mbox{min}}
+\definemathcommand [projlim] [limop] {\mbox{proj\,lim}}
+\definemathcommand [Pr]      [limop] {\mbox{Pr}}
+\definemathcommand [sec]     [nolop] {\mbox{sec}}
+\definemathcommand [sinh]    [nolop] {\mbox{sinh}}
+\definemathcommand [sin]     [nolop] {\mbox{sin}}
+\definemathcommand [sup]     [limop] {\mbox{sup}}
+\definemathcommand [tanh]    [nolop] {\mbox{tanh}}
+\definemathcommand [tan]     [nolop] {\mbox{tan}}
+
+\stopmathcollection
+
+\startmathcollection[default]
+
+\definemathcharacter [!]   [close] [mr] ["21]
+\definemathcharacter [(]   [open]  [mr] ["28]
+\definemathcharacter [)]   [close] [mr] ["29]
+\definemathcharacter [*]   [bin]   [sy] ["03]
+\definemathcharacter [+]   [bin]   [mr] ["2B]
+\definemathcharacter [,]   [punct] [mi] ["3B]
+\definemathcharacter [-]   [bin]   [sy] ["00]
+\definemathcharacter [.]   [ord]   [mi] ["3A]
+\definemathcharacter [/]   [ord]   [mi] ["3D]
+\definemathcharacter [:]   [rel]   [mr] ["3A]
+\definemathcharacter [;]   [punct] [mr] ["3B]
+\definemathcharacter [<]   [rel]   [mi] ["3C]
+\definemathcharacter [=]   [rel]   [mr] ["3D]
+\definemathcharacter [>]   [rel]   [mi] ["3E]
+\definemathcharacter [?]   [close] [mr] ["3F]
+\definemathcharacter [91]  [open]  [mr] ["5B] % [
+\definemathcharacter [92]  [ord]   [sy] ["6E] % \
+\definemathcharacter [93]  [close] [mr] ["5D] % ]
+\definemathcharacter [123] [open]  [sy] ["66] % { 
+\definemathcharacter [124] [ord]   [sy] ["6A] % | 
+\definemathcharacter [125] [close] [sy] ["67] % } 
+
+\stopmathcollection
+
+\startmathcollection[default]
+
+\definemathcharacter [(]   [nothing] [mr] ["28] [ex] ["00]
+\definemathcharacter [)]   [nothing] [mr] ["29] [ex] ["01]
+\definemathcharacter [91]  [nothing] [mr] ["5B] [ex] ["02] % [
+\definemathcharacter [93]  [nothing] [mr] ["5D] [ex] ["03] % ]
+\definemathcharacter [<]   [nothing] [sy] ["68] [ex] ["0A]
+\definemathcharacter [>]   [nothing] [sy] ["69] [ex] ["0B]
+\definemathcharacter [/]   [nothing] [mr] ["2F] [ex] ["0E]
+\definemathcharacter [124] [nothing] [sy] ["6A] [ex] ["0C] % | 
+\definemathcharacter [92]  [nothing] [sy] ["6E] [ex] ["0F] % \ 
+
+\stopmathcollection
+
+\def\PLAINangle%
+  {{\vbox{\ialign{$\m@th\scriptstyle##$\crcr
+    \not\mathrel{\mkern14mu}\crcr
+    \noalign{\nointerlineskip}
+    \mkern2.5mu\leaders\hrule height.34pt\hfill\mkern2.5mu\crcr}}}}
+
+\startmathcollection[default]
+
+\definemathsymbol [aleph]    [nothing] [sy] ["40]
+\definemathsymbol [imath]    [nothing] [mi] ["7B]
+\definemathsymbol [jmath]    [nothing] [mi] ["7C]
+\definemathsymbol [ell]      [nothing] [mi] ["60]
+\definemathsymbol [wp]       [nothing] [mi] ["7D]
+\definemathsymbol [Re]       [nothing] [sy] ["3C]
+\definemathsymbol [Im]       [nothing] [sy] ["3D]
+\definemathsymbol [partial]  [nothing] [mi] ["40]
+\definemathsymbol [infty]    [nothing] [sy] ["31]
+\definemathsymbol [prime]    [nothing] [sy] ["30]
+\definemathsymbol [emptyset] [nothing] [sy] ["3B]
+\definemathsymbol [nabla]    [nothing] [sy] ["72]
+\definemathsymbol [top]      [nothing] [sy] ["3E]
+\definemathsymbol [bot]      [nothing] [sy] ["3F]
+
+\definemathcommand [hbar]  {{\mathchar'26\mkern-9muh}}
+\definemathcommand [surd]  {{\mathchar"1270}}          % ? 
+\definemathcommand [angle] {\PLAINangle}
+
+\stopmathcollection
+
+\startmathcollection[default]
+
+\definemathsymbol [triangle]    [ord] [sy] ["34]
+\definemathsymbol [forall]      [ord] [sy] ["38]
+\definemathsymbol [exists]      [ord] [sy] ["39]
+\definemathsymbol [neg]         [ord] [sy] ["3A]
+\definemathsymbol [flat]        [ord] [sy] ["5B]
+\definemathsymbol [natural]     [ord] [mi] ["5C]
+\definemathsymbol [sharp]       [ord] [mi] ["5D]
+\definemathsymbol [clubsuit]    [ord] [sy] ["7C]
+\definemathsymbol [diamondsuit] [ord] [sy] ["7D]
+\definemathsymbol [heartsuit]   [ord] [sy] ["7E]
+\definemathsymbol [spadesuit]   [ord] [sy] ["7F]
+
+\stopmathcollection
+
+\startmathcollection[default]
+
+\definemathsymbol [coprod]    [op]  [ex] ["60]
+\definemathsymbol [bigvee]    [op]  [ex] ["57]
+\definemathsymbol [bigwedge]  [op]  [ex] ["56]
+\definemathsymbol [biguplus]  [op]  [ex] ["55]
+\definemathsymbol [bigcap]    [op]  [ex] ["54]
+\definemathsymbol [bigcup]    [op]  [ex] ["53]
+\definemathsymbol [intop]     [op]  [ex] ["52]
+\definemathsymbol [prod]      [op]  [ex] ["51]
+\definemathsymbol [sum]       [op]  [ex] ["50]
+\definemathsymbol [bigotimes] [op]  [ex] ["4E]
+\definemathsymbol [bigoplus]  [op]  [ex] ["4C]
+\definemathsymbol [bigodot]   [op]  [ex] ["4A]
+\definemathsymbol [ointop]    [op]  [ex] ["48]
+\definemathsymbol [bigsqcup]  [op]  [ex] ["46]
+\definemathsymbol [smallint]  [op]  [sy] ["73]
+
+\stopmathcollection
+
+\startmathcollection[default]
+
+\definemathsymbol [triangleleft]    [bin] [mi] ["2F]
+\definemathsymbol [triangleright]   [bin] [mi] ["2E]
+\definemathsymbol [bigtriangleup]   [bin] [sy] ["34]
+\definemathsymbol [bigtriangledown] [bin] [sy] ["35]
+\definemathsymbol [wedge]           [bin] [sy] ["5E]
+\definemathsymbol [vee]             [bin] [sy] ["5F]
+\definemathsymbol [cap]             [bin] [sy] ["5C]
+\definemathsymbol [cup]             [bin] [sy] ["5B]
+\definemathsymbol [ddagger]         [bin] [sy] ["7A]
+\definemathsymbol [dagger]          [bin] [sy] ["79]
+\definemathsymbol [sqcap]           [bin] [sy] ["75]
+\definemathsymbol [sqcup]           [bin] [sy] ["74]
+\definemathsymbol [uplus]           [bin] [sy] ["5D]
+\definemathsymbol [amalg]           [bin] [sy] ["71]
+\definemathsymbol [diamond]         [bin] [sy] ["05]
+\definemathsymbol [bullet]          [bin] [sy] ["0F]
+\definemathsymbol [wr]              [bin] [sy] ["6F]
+\definemathsymbol [div]             [bin] [sy] ["04]
+\definemathsymbol [odot]            [bin] [sy] ["0C]
+\definemathsymbol [oslash]          [bin] [sy] ["0B]
+\definemathsymbol [otimes]          [bin] [sy] ["0A]
+\definemathsymbol [ominus]          [bin] [sy] ["09]
+\definemathsymbol [oplus]           [bin] [sy] ["08]
+\definemathsymbol [mp]              [bin] [sy] ["07]
+\definemathsymbol [pm]              [bin] [sy] ["06]
+\definemathsymbol [circ]            [bin] [sy] ["0E]
+\definemathsymbol [bigcirc]         [bin] [sy] ["0D]
+\definemathsymbol [setminus]        [bin] [sy] ["6E]
+\definemathsymbol [cdot]            [bin] [sy] ["01]
+\definemathsymbol [ast]             [bin] [sy] ["03]
+\definemathsymbol [times]           [bin] [sy] ["02]
+\definemathsymbol [star]            [bin] [mi] ["3F]
+
+\stopmathcollection
+
+\startmathcollection[default]
+
+\definemathsymbol [propto]         [rel] [sy] ["2F]
+\definemathsymbol [sqsubseteq]     [rel] [sy] ["76]
+\definemathsymbol [sqsupseteq]     [rel] [sy] ["77]
+\definemathsymbol [parallel]       [rel] [sy] ["6B]
+\definemathsymbol [mid]            [rel] [sy] ["6A]
+\definemathsymbol [dashv]          [rel] [sy] ["61]
+\definemathsymbol [vdash]          [rel] [sy] ["60]
+\definemathsymbol [nearrow]        [rel] [sy] ["25]
+\definemathsymbol [searrow]        [rel] [sy] ["26]
+\definemathsymbol [nwarrow]        [rel] [sy] ["2D]
+\definemathsymbol [swarrow]        [rel] [sy] ["2E]
+\definemathsymbol [Leftrightarrow] [rel] [sy] ["2C]
+\definemathsymbol [Leftarrow]      [rel] [sy] ["28]
+\definemathsymbol [Rightarrow]     [rel] [sy] ["29]
+
+\stopmathcollection
+
+\startmathcollection[default]
+
+\definemathcommand [lnot]   {\neg}
+\definemathcommand [int]    {\intop\nolimits}
+\definemathcommand [oint]   {\ointop\nolimits}
+\definemathcommand [land]   {\wedge}
+\definemathcommand [lor]    {\vee}
+\definemathcommand [neq]    {\not=}
+\definemathcommand [ne]     {\neq}
+\definemathcommand [le]     {\leq}
+\definemathcommand [ge]     {\geq}
+\definemathcommand [gets]   {\leftarrow}
+\definemathcommand [owns]   {\ni}
+\definemathcommand [to]     {\rightarrow}
+\definemathcommand [mapsto] {\mapstochar\rightarrow}
+
+\stopmathcollection
+
+\startmathcollection[default]
+
+\definemathsymbol [leq]              [rel] [sy] ["14]
+\definemathsymbol [geq]              [rel] [sy] ["15]
+\definemathsymbol [succ]             [rel] [sy] ["1F]
+\definemathsymbol [prec]             [rel] [sy] ["1E]
+\definemathsymbol [approx]           [rel] [sy] ["19]
+\definemathsymbol [succeq]           [rel] [sy] ["17]
+\definemathsymbol [preceq]           [rel] [sy] ["16]
+\definemathsymbol [supset]           [rel] [sy] ["1B]
+\definemathsymbol [subset]           [rel] [sy] ["1A]
+\definemathsymbol [supseteq]         [rel] [sy] ["13]
+\definemathsymbol [subseteq]         [rel] [sy] ["12]
+\definemathsymbol [in]               [rel] [sy] ["32]
+\definemathsymbol [ni]               [rel] [sy] ["33]
+\definemathsymbol [gg]               [rel] [sy] ["1D]
+\definemathsymbol [ll]               [rel] [sy] ["1C]
+\definemathsymbol [not]              [rel] [sy] ["36]
+\definemathsymbol [leftrightarrow]   [rel] [sy] ["24]
+\definemathsymbol [leftarrow]        [rel] [sy] ["20]
+\definemathsymbol [rightarrow]       [rel] [sy] ["21]
+\definemathsymbol [mapstochar]       [rel] [sy] ["37]
+\definemathsymbol [sim]              [rel] [sy] ["18]
+\definemathsymbol [simeq]            [rel] [sy] ["27]
+\definemathsymbol [perp]             [rel] [sy] ["3F]
+\definemathsymbol [equiv]            [rel] [sy] ["11]
+\definemathsymbol [asymp]            [rel] [sy] ["10]
+\definemathsymbol [smile]            [rel] [mi] ["5E]
+\definemathsymbol [frown]            [rel] [mi] ["5F]
+\definemathsymbol [leftharpoonup]    [rel] [mi] ["28]
+\definemathsymbol [leftharpoondown]  [rel] [mi] ["29]
+\definemathsymbol [rightharpoonup]   [rel] [mi] ["2A]
+\definemathsymbol [rightharpoondown] [rel] [mi] ["2B]
+\definemathsymbol [lhook]            [rel] [mi] ["2C] 
+\definemathsymbol [rhook]            [rel] [mi] ["2D]
+
+\stopmathcollection
+
+\def\PLAINldots%
+  {\ldotp\ldotp\ldotp}
+
+\def\PLAINcdots%
+  {\cdotp\cdotp\cdotp}
+
+\def\PLAINvdots%
+  {\vbox{\baselineskip4\p@ \lineskiplimit\z@
+   \kern6\p@\hbox{.}\hbox{.}\hbox{.}}}
+
+\def\PLAINddots%
+   {\mkern1mu\raise7\p@\vbox{\kern7\p@\hbox{.}}\mkern2mu
+    \raise4\p@\hbox{.}\mkern2mu\raise\p@\hbox{.}\mkern1mu}
+
+\startmathcollection[default]
+
+\definemathcommand [hookrightarrow] {\lhook\joinrel\rightarrow}
+\definemathcommand [hookleftarrow]  {\leftarrow\joinrel\rhook}
+\definemathcommand [bowtie]         {\mathrel\triangleright\joinrel\mathrel\triangleleft}
+\definemathcommand [models]         {\mathrel|\joinrel=}
+\definemathcommand [iff]            {\;\Longleftrightarrow\;}
+
+\definemathsymbol [ldotp] [punct] [mi] ["3A]
+\definemathsymbol [cdotp] [punct] [sy] ["01]
+\definemathsymbol [colon] [punct] [mr] ["3A]
+
+\definemathcommand [ldots] [inner]   {\PLAINldots}
+\definemathcommand [cdots] [inner]   {\PLAINcdots}
+\definemathcommand [vdots] [nothing] {\PLAINvdots}
+\definemathcommand [ddots] [inner]   {\PLAINddots}
+
+\stopmathcollection
+
+\startmathcollection[default]
+
+\definemathsymbol [acute]     [accent] [mr] ["13] 
+\definemathsymbol [grave]     [accent] [mr] ["12] 
+\definemathsymbol [ddot]      [accent] [mr] ["7F] 
+\definemathsymbol [tilde]     [accent] [mr] ["7E] 
+\definemathsymbol [bar]       [accent] [mr] ["16] 
+\definemathsymbol [breve]     [accent] [mr] ["15] 
+\definemathsymbol [check]     [accent] [mr] ["14] 
+\definemathsymbol [hat]       [accent] [mr] ["5E] 
+\definemathsymbol [vec]       [accent] [mi] ["7E] % [ord]
+\definemathsymbol [dot]       [accent] [mr] ["5F] 
+\definemathsymbol [widetilde] [accent] [ex] ["65] % [ord]
+\definemathsymbol [widehat]   [accent] [ex] ["62] % [ord]
+
+\stopmathcollection
+
+\startmathcollection[default]
+
+\definemathsymbol [lmoustache]  [open]    [ex] ["7A] [ex] ["40] 
+\definemathsymbol [rmoustache]  [close]   [ex] ["7B] [ex] ["41] 
+\definemathsymbol [lgroup]      [open]    [bf] ["28] [ex] ["3A] 
+\definemathsymbol [rgroup]      [close]   [bf] ["29] [ex] ["3B] 
+\definemathsymbol [arrowvert]   [nothing] [sy] ["6A] [ex] ["3C] 
+\definemathsymbol [Arrowvert]   [nothing] [sy] ["6B] [ex] ["3D]
+\definemathsymbol [bracevert]   [nothing] [ex] ["3E] % ?  
+\definemathsymbol [Vert]        [nothing] [sy] ["6B] [ex] ["0D] 
+\definemathsymbol [vert]        [nothing] [sy] ["6A] [ex] ["0C] 
+\definemathsymbol [uparrow]     [rel]     [sy] ["22] [ex] ["78]
+\definemathsymbol [downarrow]   [rel]     [sy] ["23] [ex] ["79]
+\definemathsymbol [updownarrow] [rel]     [sy] ["6C] [ex] ["3F] 
+\definemathsymbol [Uparrow]     [rel]     [sy] ["2A] [ex] ["7E] 
+\definemathsymbol [Downarrow]   [rel]     [sy] ["2B] [ex] ["7F] 
+\definemathsymbol [Updownarrow] [rel]     [sy] ["6D] [ex] ["77] 
+\definemathsymbol [backslash]   [nothing] [sy] ["6E] [ex] ["0F] 
+\definemathsymbol [rangle]      [close]   [sy] ["69] [ex] ["0B] 
+\definemathsymbol [langle]      [open]    [sy] ["68] [ex] ["0A] 
+\definemathsymbol [rbrace]      [close]   [sy] ["67] [ex] ["09] 
+\definemathsymbol [lbrace]      [open]    [sy] ["66] [ex] ["08] 
+\definemathsymbol [rceil]       [close]   [sy] ["65] [ex] ["07] 
+\definemathsymbol [lceil]       [open]    [sy] ["64] [ex] ["06] 
+\definemathsymbol [rfloor]      [close]   [sy] ["63] [ex] ["05] 
+\definemathsymbol [lfloor]      [open]    [sy] ["62] [ex] ["04] 
+
+\definemathsymbol [sqrt]        [radical] [sy] ["70] [ex] ["70]
+
+\stopmathcollection
+
+\def\PLAINbig #1{{\hbox{$\left#1\vbox to  8.5\p@{}\right.\n@space$}}}
+\def\PLAINBig #1{{\hbox{$\left#1\vbox to 11.5\p@{}\right.\n@space$}}}
+\def\PLAINbigg#1{{\hbox{$\left#1\vbox to 14.5\p@{}\right.\n@space$}}}
+\def\PLAINBigg#1{{\hbox{$\left#1\vbox to 17.5\p@{}\right.\n@space$}}}
+
+\startrawmathcollection [default] 
+
+\definemathcommand [bigl]  [open]  {\big}
+\definemathcommand [bigm]  [rel]   {\big}
+\definemathcommand [bigr]  [close] {\big}
+\definemathcommand [Bigl]  [open]  {\Big}
+\definemathcommand [Bigm]  [rel]   {\Big}
+\definemathcommand [Bigr]  [close] {\Big}
+\definemathcommand [biggl] [open]  {\bigg}
+\definemathcommand [biggm] [rel]   {\bigg}
+\definemathcommand [biggr] [close] {\bigg}
+\definemathcommand [Biggl] [open]  {\Bigg}
+\definemathcommand [Biggm] [rel]   {\Bigg}
+\definemathcommand [Biggr] [close] {\Bigg}
+
+\definemathcommand [big]  {\PLAINbig}
+\definemathcommand [Big]  {\PLAINBig}
+\definemathcommand [bigg] {\PLAINbigg}
+\definemathcommand [Bigg] {\PLAINBigg}
+
+\stoprawmathcollection
+
+\startmathcollection[default]
+
+\definemathsymbol [dag]  [box] [sy] ["79]
+\definemathsymbol [ddag] [box] [sy] ["7A]
+\definemathsymbol [S]    [box] [sy] ["78]
+\definemathsymbol [P]    [box] [sy] ["7B]
+\definemathsymbol [Orb]  [box] [sy] ["0D]
+
+\stopmathcollection
+
+\def\PLAINroot#1#2%
+  {\setbox\z@\hbox{$\m@th#1\sqrt{#2}$}\dimen@\ht\z@
+   \advance\dimen@-\dp\z@
+   \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-10mu\box\z@}
+
+\def\PLAINmatrix#1%
+  {\null\,\vcenter{\normalbaselines\m@th
+   \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr
+   \mathstrut\crcr\noalign{\kern-\baselineskip}
+   #1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}\,}
+
+\startrawmathcollection[default]
+
+\definemathcommand [mathstrut] {\vphantom{(}}
+\definemathcommand [joinrel]   {\mathrel{\mkern-3mu}}
+\definemathcommand [r@@t]      {\PLAINroot}
+\definemathcommand [matrix]    {\PLAINmatrix}
+
+\stoprawmathcollection
+
+\def\{{\lbrace} 
+\def\}{\rbrace} 
+
+\def\Bbb#1{{\fam\purefamily{blackboard}\relax#1}}  
+\def\mit   {\fam\purefamily{mitfamily}}
+\def\cal   {\fam\purefamily{calfamily}}
+
+\protect \endinput 
diff --git a/tex/context/base/math-tim.tex b/tex/context/base/math-tim.tex
new file mode 100644
index 000000000..9069b2f89
--- /dev/null
+++ b/tex/context/base/math-tim.tex
@@ -0,0 +1,371 @@
+%D \module
+%D   [       file=math-tim,
+%D        version=2001.04.12, 
+%D          title=\CONTEXT\ Math Macros,
+%D       subtitle=Mathtime Specials,
+%D         author={Hans Hagen \& Taco Hoekwater},
+%D           date=\currentdate,
+%D      copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\endinput % i will clean this up after taco has gone over it
+
+%D With thanks to Berthold Horn from YandY for providing me 
+%D evaluation copies of the MathTimePlus fonts.  
+
+% version 0 : Michael Spivak
+% version 1 : Taco Hoekwater
+% version 2 : Hans Hagen
+% version 3 : etc etc etc 
+
+\unprotect
+
+%D We use the predefined spare families \type {\mcfam} and
+%D \type {\mdfam}. 
+
+\let\cafam\mcfam \let\hexcafam\hexmcfam
+\let\gbfam\mdfam \let\hexgbfam\hexmdfam
+\let\gkfam\mdfam \let\hexgkfam\hexmdfam
+
+% Why is this needed? 
+
+% \font\tenmd  =mtgu at 10pt
+% \font\sevenmd=mtgu at 7.6pt
+% \font\fivemd =mtgu at 6pt
+% \font\tenmc  =mtms at 10pt
+% \font\sevenmc=mtms at 7.6pt
+% \font\fivemc =mtms at 6pt
+% 
+% \textfont        \mcfam\tenmc   \textfont        \mdfam\tenmd
+% \scriptfont      \mcfam\sevenmc \scriptfont      \mdfam\sevenmd
+% \scriptscriptfont\mcfam\fivemc  \scriptscriptfont\mdfam\fivemd
+
+% \addtocommalist{gk}\familylist
+% \addtocommalist{gb}\familylist
+%
+% \defineinterfaceconstant {ca} {ca} % boohoo!
+% \defineinterfaceconstant {gk} {gk} % boohoo!
+% \defineinterfaceconstant {gb} {gb} % boohoo!
+
+% \definealternativestyle[script]   [\ca][\ca]
+% \definealternativestyle[greek]    [\gk][\gk]
+% \definealternativestyle[boldgreek][\gb][\gb] 
+
+% \definebodyfont
+%   [5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt] [rm]
+%   [ca=mtms  sa 1,
+%    gk=mtgu  sa 1,
+%    gb=mtgub sa 1]
+
+%D Since a font size is a rather fuzzy thing, it will be no 
+%D surprise that the Math Times fonts have different specs 
+%D than the Computer Modern Roman fonts. 
+%D
+%D \starttabulatie[|Bl|c|c|c|c|c|c|c|c|c|c|]
+%D \NC Computer Modern\NC
+%D     5  \NC6  \NC7  \NC8  \NC9  \NC10  \NC11  \NC12  \NC14  \NC18\NC\NR
+%D \NC Math Times     \NC
+%D     6.0\NC6.8\NC7.6\NC8.4\NC9.2\NC10.0\NC10.8\NC11.6\NC13.2\NC--\NC\NR
+%D \stoptabulatie
+%D
+%D The following definitions presume the existence of \type 
+%D {tio} and \type {tibio} font alternatives. Definitions for 
+%D \type {\tf.} etc and \type {\sc} are left as they are. 
+
+%D moved code
+
+%D The next lines set up coding dependant versions of math
+%D accents (for \type {texnansi} of course). These are needed
+%D in commands like \type {\bf} and \type {\it} (which use the
+%D text font encoding) a opposed to \type {_no spec_} and
+%D \type {mi} that use the math font encoding. This stuff
+%D should be made more general!
+
+% \daghex, \ddaghex and \dothex were wrong in my version of mtmacs
+
+\def\daghex  {86}  % to do
+\def\ddaghex {87}
+\def\Shex    {A7}
+\def\Phex    {B6}
+\def\barhex  {16}
+\def\gravehex{12}
+\def\acutehex{13}
+\def\checkhex{14}
+\def\brevehex{15}
+\def\hathex  {5E}
+\def\dothex  {05}
+\def\tildehex{7E}
+\def\ddothex {7F}
+
+%D The \type {mtex} fonts need a recalculation of \type 
+%D {\p@renwd}, which in \CONTEXT\ is done automatically.
+
+%D The following definitions are mostly copied from the file 
+%D \type {mtmacs.tex}, which banner said:
+%D
+%D \starttypen
+%D MTMACS.TEX VERSION 1.1.1 (1996 Dec 8)
+%D COPYRIGHT (C) 1992, 1993, 1996 BY THE TEXPLORATORS CORPORATION
+%D ALL RIGHTS RESERVED
+%D \stoptypen
+%D
+%D We reformatted the macros and changed a few bits and 
+%D pieces. A further cleanup with regards to the scratch 
+%D registers will be done later. 
+
+\mathchardef\Gamma         = "0130
+\mathchardef\Delta         = "0131
+\mathchardef\Theta         = "0132
+\mathchardef\Lambda        = "0133
+\mathchardef\Xi            = "0134
+\mathchardef\Pi            = "0135
+\mathchardef\Sigma         = "0136
+\mathchardef\Upsilon       = "0137
+\mathchardef\Phi           = "0138
+\mathchardef\Psi           = "0139
+\mathchardef\Omega         = "017F
+\mathchardef\varGamma      = "0100
+\mathchardef\varDelta      = "0101
+\mathchardef\varTheta      = "0102
+\mathchardef\varLambda     = "0103
+\mathchardef\varXi         = "0104
+\mathchardef\varPi         = "0105
+\mathchardef\varSigma      = "0106
+\mathchardef\varUpsilon    = "0107
+\mathchardef\varPhi        = "0108
+\mathchardef\varPsi        = "0109
+\mathchardef\varOmega      = "010A
+\mathchardef\varkappa      = "017E
+
+\mathchardef\ldotp         = "613A
+
+\mathchardef\triangleleft  = "2247
+\mathchardef\triangleright = "2246
+\mathchardef\comp          = "2242
+
+\mathchardef\Relbar        = "3248
+\mathchardef\dagger        = "20\daghex    % to do
+\mathchardef\ddagger       = "20\ddaghex   % to do
+\mathchardef\dotacc        = "0250
+
+\mathcode`\( = "412E
+\mathcode`\) = "512F
+\mathcode`\. = "013A
+\mathcode`\, = "613B
+\mathcode`\+ = "2243
+\mathcode`\= = "3244
+\mathcode`\; = "6249
+
+\delcode `\( = "12E300
+\delcode `\) = "12F301
+
+\let\mit=\undefined % to do
+
+\def\vec{\mathaccent"0245 }
+\def\t#1{{\edef\next{\the\font}\the\textfont2\accent"41\next#1}}
+
+% fam equals -1 unless the user has said something
+% like \rm (cf. the texbook page 290)
+
+\def\ifdefaultfamelse#1#2%
+  {\ifnum\fam=\m@ne\mathaccent#1\else\mathaccent#2\fi}
+
+\let\noaccents@\relax
+
+\def\grave  {\ifdefaultfamelse{"024A}{"70\gravehex}}
+\def\acute  {\ifdefaultfamelse{"024B}{"70\acutehex}}
+\def\check  {\ifdefaultfamelse{"024C}{"70\checkhex}}
+\def\breve  {\ifdefaultfamelse{"024D}{"70\brevehex}}
+\def\bar    {\ifdefaultfamelse{"024E}{"70\barhex  }}
+\def\hat    {\ifdefaultfamelse{"024F}{"70\hathex  }}
+\def\dot    {\ifdefaultfamelse{"0250}{"70\dothex  }}
+\def\tilde  {\ifdefaultfamelse{"0251}{"70\tildehex}}
+\def\ddot   {\ifdefaultfamelse{"0252}{"70\ddothex }}
+
+\def\widebar{\mathaccent"0253 }
+
+\def\mathhexbox@#1#2#3%
+  {\relax
+   \ifmmode
+     \mathpalette{}{\m@th\rm\mathchar"#1#2#3}%
+   \else
+     \leavevmode
+     \hbox{$\m@th\rm\mathchar"#1#2#3$}%
+   \fi}
+
+\def\dag {\edef\next@{0\daghex }\expandafter\mathhexbox@\next@}
+\def\ddag{\edef\next@{0\ddaghex}\expandafter\mathhexbox@\next@}
+
+\def\S{\edef\next@{0\Shex}\expandafter\mathhexbox@\next@}
+\def\P{\edef\next@{0\Phex}\expandafter\mathhexbox@\next@}
+
+\def\vdots%
+  {\vbox
+     {\baselineskip4\p@
+      \lineskiplimit\z@
+      \kern6\p@\hbox{$\m@th.$}\hbox{$\m@th.$}\hbox{$\m@th.$}}}
+
+\def\ddots%
+  {\mathinner
+     {\mkern1mu
+      \raise7\p@\vbox{\kern 7\p@\hbox{$\m@th.$}}\mkern2mu
+      \raise4\p@\hbox{$\m@th.$}\mkern2mu
+      \raise \p@\hbox{$\m@th.$}\mkern1mu}}
+
+\def\hbar
+  {{\mathchoice
+      {\hbox{\lower.07em \hbox{$\mathchar"\barhex$}}}
+      {\hbox{\lower.07em \hbox{$\mathchar"\barhex$}}}
+      {\hbox{\lower.049em\hbox{$\scriptstyle\mathchar"\barhex$}}}
+      {\hbox{\lower.035em\hbox{$\scriptscriptstyle\mathchar"\barhex$}}}%
+  \mkern-6.3muh}}
+
+\def\angle%
+  {{\vbox{\ialign{$\m@th\scriptstyle##$\crcr
+      \not\mathrel{\mkern14mu}\crcr
+      \noalign{\nointerlineskip}
+      \mkern2.5mu\leaders\hrule height.48\p@\hfill\mkern2.5mu\crcr}}}}
+
+\newdimen\amstexex
+
+\amstexex = .2326ex
+
+\def\varinjlim%
+  {\mathop{\vtop{\ialign{##\crcr
+     \hfil\the\textfont\z@ lim\hfil\crcr
+     \noalign{\nointerlineskip}\rightarrowfill\crcr
+     \noalign{\nointerlineskip\kern-\amstexex}\crcr}}}}
+
+\def\varprojlim%
+  {\mathop{\vtop{\ialign{##\crcr
+     \hfil\the\textfont\z@ lim\hfil\crcr
+     \noalign{\nointerlineskip}\leftarrowfill\crcr
+     \noalign{\nointerlineskip\kern-\amstexex}\crcr}}}}
+
+\def\varliminf{\mathop{\underbar  {lim}}} % context-ified
+\def\varlimsup{\mathop{\overstrike{lim}}} % context-ified
+
+\def\spdot   {^{\hbox{\raise\amstexex\hbox{\the\textfont\z@   .}}}}
+\def\spddot  {^{\hbox{\raise\amstexex\hbox{\the\textfont\z@  ..}}}}
+\def\spdddot {^{\hbox{\raise\amstexex\hbox{\the\textfont\z@ ...}}}}
+\def\spddddot{^{\hbox{\raise\amstexex\hbox{\the\textfont\z@....}}}}
+
+%D Here some code is merged in order to save strings. 
+
+\def\domultidot#1#2%
+  {\setbox0\hbox{$#1#2$}%
+   \setbox2\hbox{$#1\infty$}%
+   \dimen0\ht2
+   \ifdim\ht0<\dimen0 \dimen0\ht0 \fi
+   \setbox2\hbox{$#1#2\mathchar"012D$}%
+   \dimen2\wd2
+   \advance\dimen2-\wd0
+   \setbox0\hbox{$#1\rhook$}%
+   \advance\dimen2-\wd0
+   \vbox
+     {\offinterlineskip
+      \ialign{\hfil$#1##$\hfil\cr
+        \kern\dimen2\dotacc\mkern-2.5mu\dotacc\mkern-2.5mu\dotacc\thirddot\cr
+        \noalign{\vskip-\dimen0}%
+        #2\cr}}}
+
+\def\dddot%
+  {\def\thirddot{}%
+   \mathpalette\domultidot}
+
+\def\ddddot%
+  {\def\thirddot{\mkern-2.5mu\dotacc}%
+   \mathpalette\domultidot}
+
+\newcount\uproot@
+\newcount\leftroot@
+
+\def\nonmatherr#1%
+  {\errmessage{\noexpand#1allowed only in math mode}}
+
+\def\uproot#1%
+  {\relax
+   \ifmmode
+     \uproot@#1\relax
+   \else
+     \nonmatherr\uproot
+   \fi}
+
+\def\leftroot#1%
+  {\relax
+   \ifmmode
+     \leftroot@#1\relax
+   \else
+     \nonmatherr\leftroot
+   \fi}
+
+\def\root#1\of#2%
+  {\setbox\rootbox=\hbox{$\m@th\scriptscriptstyle{#1}$}%
+   \mathpalette\r@@t{#2}}
+
+\def\r@@t#1#2%
+  {\setbox\z@=\hbox{$\uproot@\z@\leftroot\z@\m@th#1\sqrt{#2}$}%
+   \dimen@\ht\z@\advance\dimen@-\dp\z@
+   \dimen@ii\dimen@
+   \ifdim\dimen@>30\p@ \advance\dimen@ii-16\p@ \else
+   \ifdim\dimen@>24\p@ \advance\dimen@ii -8\p@ \else
+   \ifdim\dimen@>18\p@ \advance\dimen@ii -6\p@ \else
+   \ifdim\dimen@>12\p@ \advance\dimen@ii -4\p@ \else
+   \ifdim\dimen@>10\p@ \advance\dimen@ii -2\p@ \fi\fi\fi\fi\fi
+   \setbox\tw@=\hbox{$\m@th#1\mskip\uproot@ mu$}%
+   \advance\dimen@ii by1.667\wd\tw@
+   \mkern-\leftroot@ mu\mkern5mu\raise.6\dimen@ii\copy\rootbox
+   \mkern-8mu\mkern\leftroot@ mu\box\z@\leftroot\z@\uproot\z@}
+
+\def\space@.{\futurelet\space@\relax} \space@. % really needed ?
+
+\def\jadjust%
+  {\mkern-\tw@ mu}
+
+%D For the moment the following code is left unchanged. It is 
+%D not used anyway.
+
+\newif\ifsubscriptcorrection \subscriptcorrectionfalse
+
+\ifsubscriptcorrection
+
+  \expandafter\let\csname subscript character \string_\endcsname_
+
+  \catcode`\_=\active
+
+  \def_%
+    {\ifmmode
+       \expandafter\sb@
+     \else
+       \expandafter\csname subscript character \string_\endcsname
+     \fi}
+
+  \let\sb_
+
+  \ifnum\catcode`\^^A=8 \catcode`\^^A\active\let^^A_\fi
+
+  \def\sb@#1%
+    {\csname subscript character \string_\endcsname
+     {\futurelet\next\sb@@#1}}
+
+  \def\sb@@%
+    {\ifx\next\space@
+       \def\next@. %
+         {\futurelet\next\sb@@}%
+     \else
+       \def\next@.%
+         {\ifx\next j%
+            \mkern-\tw@ mu\else
+          \ifx\next f%
+            \mkern-\tw@ mu\else
+          \ifx\next p%
+            \mkern-\@ne mu\fi\fi\fi}%
+     \fi
+     \next@.}
+
+\fi
+
+\protect
diff --git a/tex/context/base/mult-sys.tex b/tex/context/base/mult-sys.tex
index ada1eb0c4..424b172f9 100644
--- a/tex/context/base/mult-sys.tex
+++ b/tex/context/base/mult-sys.tex
@@ -157,6 +157,8 @@
 %D constants. We need these because font-definitions are
 %D partially english.
 
+\definesystemconstant  {run}
+
 \definesystemconstant  {fam}
 \definesystemconstant  {text}
 \definesystemconstant  {script}
@@ -454,11 +456,14 @@
 \definesystemvariable {ta}   % TAb
 \definesystemvariable {tb}   % TekstBlokken
 \definesystemvariable {te}   % TEmplate 
+\definesystemvariable {tf}   % TypeFace
 \definesystemvariable {tg}   % Tex paGe
 \definesystemvariable {ti}   % TabelInstellingen
 \definesystemvariable {tk}   % Teksten
 \definesystemvariable {tl}   % TekstLijnen
+\definesystemvariable {tm}   % TypesynonyM
 \definesystemvariable {tp}   % TyPen
+\definesystemvariable {ts}   % TypeScript
 \definesystemvariable {tt}   % TabulaTe
 \definesystemvariable {ty}   % TYpe
 \definesystemvariable {uc}   % Unicode
@@ -557,11 +562,13 @@
 \definefileconstant {colorprefix}        {colo-}
 \definefileconstant {encodingprefix}     {enco-}
 \definefileconstant {regimeprefix}       {regi-}
+\definefileconstant {typeprefix}         {type-}
 \definefileconstant {fontprefix}         {font-}
 \definefileconstant {javascriptprefix}   {java-}
 \definefileconstant {languageprefix}     {lang-}
 \definefileconstant {metapostprefix}     {meta-}
 \definefileconstant {specialprefix}      {spec-}
+\definefileconstant {mathprefix}         {math-}
 \definefileconstant {symbolprefix}       {symb-}
 \definefileconstant {xtagprefix}         {xtag-}
 
diff --git a/tex/context/base/s-mod-00.tex b/tex/context/base/s-mod-00.tex
new file mode 100644
index 000000000..1a9500831
--- /dev/null
+++ b/tex/context/base/s-mod-00.tex
@@ -0,0 +1,408 @@
+%D \module
+%D   [      file=s-mod-00,
+%D        version=very-old,
+%D          title=\CONTEXT\ Style File,
+%D       subtitle=Documentation Base Environment,
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
+%C details. 
+
+%D This module looks like crap, is not documented, will 
+%D change, and used to be called modu-*.tex. 
+
+% todo: 
+% 
+% file inclusions -> hyperlinks 
+
+\newprettytrue
+
+\gebruikmodule[eenheid]
+
+\mainlanguage[en]
+
+\enableactivediscretionaries
+
+% beter:
+%
+% group    -> title
+% title    -> category
+% subtitle -> subtitle
+
+% herzien ivm fonts 
+
+% nog eens \interface \\ \\ verder doorvoeren 
+
+\unprotect
+
+\def\resetmodule%
+  {\getparameters
+     [Module]
+     [       file=\jobname,
+          version={\currentdate[jaar,{.},maand,{.},dag]},
+            title=,
+         subtitle=,
+           author=Hans Hagen,
+             date=\currentdate,
+        copyright={PRAGMA / Hans Hagen \& Ton Otten},
+      suggestions=]}
+
+\resetmodule
+
+\def\dostartmodule[#1]%
+  {\newcounter\ParagraphNumber
+   \resetmodule
+   \getparameters[Module][type=tex,#1]}
+
+\def\startmodule%
+  {\dosingleempty\dostartmodule}
+
+\def\complexmodule[#1]%
+  {\startglobaal % i.v.m. \bgroup in \startdocumentation  
+   \getparameters[Module][#1]
+   \stopglobaal  % i.v.m. \bgroup in \startdocumentation  
+   \moduletitel}
+
+\def\stopmodule%
+  {\pagina  
+   \plaatsindex
+     [balanceren=ja,
+      aanduiding=nee,
+      criterium=tekst]}
+
+\def\simplemodule#1%
+  {\type{#1}}
+
+\definecomplexorsimple\module
+
+\startmode[atpragma]
+
+  \def\TitelPagina#1% can be done more efficient 
+    {\startMPrun
+        mpgraph := #1 ; 
+        input mp-cont ; 
+    \stopMPrun
+     \externalfigure[\bufferprefix mprun.#1][hoogte=\vsize,breedte=\hsize]}
+
+  \definieeroverlay[titelpagina][\TitelPagina{512}]
+
+\stopmode
+
+\def\moduletitel%
+  {\ifx\ModuleNumber\undefined \else
+     \ifnum\ModuleNumber<10
+       \edef\ModuleNumber{00\ModuleNumber}%
+     \else\ifnum\ModuleNumber<100
+       \edef\ModuleNumber{0\ModuleNumber}%
+     \fi\fi
+     \stelachtergrondenin
+       [pagina] 
+       [achtergrond=titelpagina]
+   \fi
+   \startstandaardopmaak[hoofdstatus=geen,voetstatus=geen]
+   \switchnaarkorps[14.4pt,ss] 
+   \definefont[temp][SansBold at 72pt] % \font\temp=cmssbx10 at 72pt 
+   \bgroup
+   \def\CONTEXT {Con\kern-.15em\TeX t}
+   \def\TEXUTIL {\TeX Util}
+   \def\PPCHTEX {PPCH\TeX}
+   \regellinks{\temp               \CONTEXT}            \vskip24pt
+   \doifelse{\Modulesubtitle}{}
+     {\regellinks{\bfd             \Moduletitle}        \vfill}   
+     {\regellinks{\bfd             \Modulesubtitle}     \vfill
+      \doifnot{\Moduletitle}{}
+        {\regellinks{\bf category: \Moduletitle}        \vskip6pt}}
+  %\regellinks{\bf        version: \Moduleversion}      \vskip6pt
+  %\regellinks{\bf           date: \Moduledate}         \vskip6pt
+   \regellinks{\bf         author: \Moduleauthor}       \vskip6pt
+   \regellinks{\bf           date: \currentdate}        \vskip6pt
+   \doifnot{\Modulesuggestions}{}
+     {\regellinks{\bs suggestions: \Modulesuggestions}  \vskip6pt}
+  %\regellinks{\bf      copyright: \Modulecopyright}    \par
+   \egroup
+   \stopstandaardopmaak
+   \ifx\ModuleNumber\undefined \else
+     \stelachtergrondenin[pagina][achtergrond=]
+   \fi}
+
+\let\stopdocumentation=\relax
+
+\def\startdocumentation%
+  {\bgroup
+   \doglobal\newcounter\NOfMarginLines
+   \def\stopdocumentation{\par\egroup}}
+
+\newif\ifcompressdefinitions
+
+\def\startcompressdefinitions {\global\compressdefinitionstrue}
+\def\stopcompressdefinitions  {\global\compressdefinitionsfalse}
+
+\gdef\CompressDefinitions%
+  {\ifcompressdefinitions
+     \switchnaarkorps[klein]%
+   \fi}
+
+\definieertypen
+  [definition]
+
+\steltypenin
+  [definition]  
+  [voor={\pagina[voorkeur]}\blanko\PresetParagraphNumber\CompressDefinitions,
+   na=\ResetParagraphNumber\blanko,
+   optie=\Moduletype]
+
+\definieertypen
+  [PL]
+  [optie=PL,
+   marge=standaard]
+
+\definieertypen
+  [JV]
+  [optie=JV,
+   marge=standaard]
+
+\definieertypen
+  [MP]
+  [optie=MP,
+   marge=standaard]
+
+\definieertypen
+  [TEX]
+  [optie=TEX,
+   marge=standaard]
+
+\steltypenin [typen]      [marge=standaard]
+\steltypenin [file]       [marge=standaard]
+\steltypenin [definition] [marge=0pt]
+
+\newcounter\NOfMarginLines
+\newcounter\ParagraphNumber
+
+\def\ResetParagraphNumber%
+  {\egroup}
+
+\def\PresetParagraphNumber%
+  {\bgroup
+   \xdef\NOfTextLines%
+     {\the\prevgraf}%
+   \doglobal\decrement\NOfMarginLines
+   \doglobal\increment\ParagraphNumber
+   \message{.}%
+   \gdef\ShowParagraphNumber%
+     {\llap{\slx\ParagraphNumber\hskip\linkermargeafstand}}%
+   \gdef\ShowParagraphNumberA%
+     {\ifnum\NOfMarginLines>\NOfTextLines\relax
+        \doglobal\increment\NOfTextLines
+      \else
+        \ShowParagraphNumber
+        \global\let\ShowParagraphNumberA=\relax
+        \global\let\ShowParagraphNumberB=\ShowParagraphNumber
+        \doglobal\newcounter\NOfMarginLines
+      \fi}%
+   \gdef\ShowParagraphNumberB%
+     {}%
+   \EveryLine
+     {\ShowParagraphNumberA}%
+   \EveryPar 
+     {\vadjust{\nobreak}%
+      \ShowParagraphNumberB}}
+
+\EveryPar % skip one 
+  {\EveryPar 
+     {\doglobal\newcounter\NOfMarginLines}}
+
+\def\dodomargeaanduidingen[#1]#2%
+  {\def\docommando##1%
+     {\indent\hbox
+        {\ifx#2\relax 
+           \index{##1}%
+         \else
+           \index{#2{##1}}%
+         \fi
+         #2{\doboundtext{##1}{\linkermargebreedte}{..}}}%
+       \doglobal\increment\NOfMarginLines
+       \endgraf}%
+   \processcommalist[#1]\docommando}
+
+\def\margeaanduidingen#1[#2]%
+  {\def\domargeaanduidingen##1##2%
+     {\margetitel[#2]%
+        {\switchnaarkorps[klein]%
+         \doglobal\newcounter\NOfMarginLines
+         \dodomargeaanduidingen[##1]#1%
+         \scratchcounter=\NOfMarginLines
+         \multiply\scratchcounter by 10
+         \divide\scratchcounter by 12
+         \advance\scratchcounter by 1
+         \xdef\NOfMarginLines{\the\scratchcounter}%
+         \processcommalist[##2]\index}}%
+   \dodoublegroupempty\domargeaanduidingen}
+
+\def\complexmacros%
+  {\margeaanduidingen\tex}
+
+\def\complexextras%
+  {\margeaanduidingen\relax}
+
+\definecomplexorsimpleempty\macros
+\definecomplexorsimpleempty\extras
+
+% \macros{a,b}        
+% \macros{a,b}{b}     
+% \macros[a]{a,b}{b}  
+
+\definieeralineas [interface] [n=2]
+\stelalineasin    [interface] [1] [breedte=4cm]
+
+\def\startvoorbeeld{\par\startsmaller}
+\def\stopvoorbeeld {\stopsmaller}
+
+\gdef\VisualizeLastSpace%
+  {\ifdim\lastskip>0pt\unskip\tttf\char32\fi}
+\gdef\ShowHeadText#1%
+  {\tttf#1\VL\headtext{#1}\VisualizeLastSpace}%
+\gdef\ShowLabelText#1%
+  {\tttf#1\VL\labeltext{#1}\VisualizeLastSpace}
+
+\startbuffer[lang-a]
+\starttabel[|l|l|]
+  \HL
+  \VL \bf head key  \VL \bf current value \VL\SR
+  \HL
+  \VL \ShowHeadText \v!afkortingen        \VL\FR
+  \VL \ShowHeadText \v!eenheden           \VL\MR
+  \VL \ShowHeadText \v!figuren            \VL\MR
+  \VL \ShowHeadText \v!grafieken          \VL\MR
+  \VL \ShowHeadText \v!index              \VL\MR
+  \VL \ShowHeadText \v!inhoud             \VL\MR
+  \VL \ShowHeadText \v!intermezzos        \VL\MR
+  \VL \ShowHeadText \v!logos              \VL\MR
+  \VL \ShowHeadText \v!tabellen           \VL\LR
+  \HL
+\stoptabel
+\stopbuffer
+
+\startbuffer[lang-b]
+\starttabel[|l|l|]
+  \HL
+  \VL \bf label key  \VL \bf current value      \VL\SR
+  \HL
+  \VL \ShowLabelText \v!tabel                   \VL\FR
+  \VL \ShowLabelText \v!figuur                  \VL\MR
+  \VL \ShowLabelText \v!intermezzo              \VL\MR
+  \VL \ShowLabelText \v!grafiek                 \VL\MR
+  \VL \ShowLabelText \v!hoofdstuk               \VL\MR
+  \VL \ShowLabelText \v!paragraaf               \VL\MR
+  \VL \ShowLabelText {\v!sub\v!paragraaf}       \VL\MR
+  \VL \ShowLabelText {\v!sub\v!sub\v!paragraaf} \VL\MR
+  \VL \ShowLabelText \v!bijlage                 \VL\MR
+  \VL \ShowLabelText \v!deel                    \VL\MR
+  \VL \ShowLabelText \v!regel                   \VL\MR
+  \VL \ShowLabelText \v!regels                  \VL\LR
+  \HL
+\stoptabel
+\stopbuffer
+
+\startbuffer[lang-c]
+\starttabel[|l|l|]
+  \HL
+  \VL \bf label key  \VL \bf current value \VL\SR
+  \HL
+  \VL \ShowLabelText \v!january            \VL\FR
+  \VL \ShowLabelText \v!february            \VL\MR
+  \VL \ShowLabelText \v!march              \VL\MR
+  \VL \ShowLabelText \v!april              \VL\MR
+  \VL \ShowLabelText \v!may                \VL\MR
+  \VL \ShowLabelText \v!june               \VL\MR
+  \VL \ShowLabelText \v!july               \VL\MR
+  \VL \ShowLabelText \v!august             \VL\MR
+  \VL \ShowLabelText \v!september          \VL\MR
+  \VL \ShowLabelText \v!october            \VL\MR
+  \VL \ShowLabelText \v!november           \VL\MR
+  \VL \ShowLabelText \v!december           \VL\LR
+  \HL
+\stoptabel
+\stopbuffer
+ 
+\startbuffer[lang-d]
+\starttabel[|l|l|]
+  \HL
+  \VL \bf label key  \VL \bf current value \VL\SR
+  \HL
+  \VL \ShowLabelText \v!sunday             \VL\FR
+  \VL \ShowLabelText \v!monday             \VL\MR
+  \VL \ShowLabelText \v!tuesday            \VL\MR
+  \VL \ShowLabelText \v!wednesday          \VL\MR
+  \VL \ShowLabelText \v!thursday           \VL\MR
+  \VL \ShowLabelText \v!friday             \VL\MR
+  \VL \ShowLabelText \v!saturday           \VL\MR
+  \HL
+\stoptabel
+\stopbuffer
+
+\gdef\ShowTextsValues [#1] [#2]
+  {\vbox\bgroup
+   \language[#1]%
+   \setbox0=\hbox to \hsize{\hss\bfb#2 language defaults\hss}
+   \dp0=0pt
+   \box0
+   \vskip1em
+   \hrule
+   \vskip2em
+   \halign
+     {\hss##\hss&##\hskip1em&\hss##\hss\cr
+      $\vcenter{\haalbuffer[lang-a]}$&&$\vcenter{\haalbuffer[lang-b]}$\cr
+      \noalign{\vskip1em}
+      $\vcenter{\haalbuffer[lang-c]}$&&$\vcenter{\haalbuffer[lang-d]}$\cr}%
+   \egroup}
+
+\gdef\ShowLanguageValues [#1] [#2] #3 #4
+  {\hbox to \hsize
+     {\hss
+      \vbox
+        \bgroup
+        \language[#1]%
+        \let\normalbar=|
+        \starttabel[||||]
+        \HL 
+        \VL \THREE{\bf subsentence symbol and quotes} \VL\SR
+        \HL
+        \VL \citaat{#3 #4} \VL \citeer{#2} \VL \let|=\normalbar |<||<|#3|>|#4|>| \VL\SR
+        \HL 
+        \stoptabel
+        \egroup
+      \hss}}
+  
+\gdef\doShowAllLanguageValues [#1] [#2] #3 #4
+  {\vbox 
+     {\ShowTextsValues [#1] [#2]
+      \vskip2em
+      \ShowLanguageValues  [#1] [#2] #3 #4 }
+   \protect
+   \pagina}
+
+\gdef\ShowAllLanguageValues%
+  {\pagina
+   \unprotect
+   \doShowAllLanguageValues}
+
+\protect
+
+%D Command references: 
+
+\input setupa
+\input setupb
+
+\def\showsetup%
+  {\doglobal\newcounter\CurrentArgument
+   \setup}
+
+\stelkadertekstenin
+  [setuptext]
+  [achtergrond=raster,
+   kader=uit]
+
+\endinput 
diff --git a/tex/context/base/s-mod-01.tex b/tex/context/base/s-mod-01.tex
new file mode 100644
index 000000000..09fc90df7
--- /dev/null
+++ b/tex/context/base/s-mod-01.tex
@@ -0,0 +1,144 @@
+%D \module
+%D   [      file=s-mod-01,
+%D        version=very-old,
+%D          title=\CONTEXT\ Style File,
+%D       subtitle=Documentation Paper Environment,
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
+%C details. 
+
+%D This module looks like crap, is not documented, will 
+%D change, and used to be called modu-*.tex. 
+
+\input s-mod-00.tex 
+
+\stelkorpsin
+  [10pt,ams]
+
+\taal
+  [en]
+
+\stelwitruimtein
+  [groot]
+
+\steltolerantiein
+  [soepel]
+
+\emergencystretch=5em
+
+\stellayoutin
+  [rugwit=3.5cm,
+   linkermarge=1.75cm,
+   rechtermarge=0cm,
+   margeafstand=.5cm,
+   linkerrandafstand=.25cm,
+   rechterrandafstand=.5cm,
+   rand=1.5cm,
+   breedte=15.55333cm,         % 13.998cm at 9pt => 15.55333 at 10pt
+   kopwit=2cm,
+   hoofd=1.25cm,
+   voet=1.25cm,
+   hoogte=25cm,
+   letter=\ss]
+
+\stelsetupin
+  [verwijzing=1]
+
+\startnotmode[single]
+
+  \stelnummeringin
+    [variant={dubbelzijdig,enkelzijdig}]
+
+\stopnotmode
+
+\stelnummeringin
+  [plaats=]
+
+\stelvoettekstenin
+  [rand]
+  [][paginanummer]
+
+\startmode[single]
+
+  \stelvoettekstenin
+    [marge]
+    [\tt\Modulefile][]  
+
+\stopmode
+
+\startnotmode[single]
+
+  \stelvoettekstenin
+    [marge]
+    [\tt\Modulefile][]  
+    [\tt\Modulefile][]  
+
+\stopnotmode
+
+\stelvoettekstenin
+  [tekst]
+  [\CONTEXT]
+  [\Moduletitle]
+
+\stelhoofdtekstenin
+  [tekst]
+  []
+  [\Modulesubtitle]
+
+\stelinmargein
+  [plaats=links]
+
+\stelkoppenin
+  [variant=inmarge]
+
+\stelkopin
+  [hoofdstuk]
+  [letter=\ssc,
+   pagina=rechts,
+   hoofd=leeg]
+
+\stelkopin
+  [paragraaf]
+  [letter=\ssb,
+   pagina=rechts]
+
+\stellijstin
+  [hoofdstuk]
+  [letter=vet,
+   na=\blanko]
+
+\stelinhoudin
+  [breedte=3em,
+   titeluitlijnen=ja]
+
+\stelindexin
+  [balanceren=ja,
+   aanduiding=nee]
+
+\startnotmode[nocolor]
+
+\stelkleurenin
+  [status=start]
+
+\stopnotmode
+
+\startnotmode[color]
+
+  \stelkleurenin
+    [conversie=altijd]
+
+  \steltypenin
+    [palet=graypretty]
+
+\stopnotmode
+
+\stelinteractiein
+  [status=start,
+   kleur=,
+   letter=]
+
+\endinput 
diff --git a/tex/context/base/s-mod-02.tex b/tex/context/base/s-mod-02.tex
new file mode 100644
index 000000000..0280a2fd8
--- /dev/null
+++ b/tex/context/base/s-mod-02.tex
@@ -0,0 +1,409 @@
+%D \module
+%D   [      file=s-mod-02,
+%D        version=very-old,
+%D          title=\CONTEXT\ Style File,
+%D       subtitle=Documentation Screen Environment,
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
+%C details. 
+
+%D This module looks like crap, is not documented, will 
+%D change, and used to be called modu-*.tex. 
+
+% Macro's
+
+\input s-mod-00.tex
+
+\stelkopin[paragraaf][expansie=commando]
+
+\def\complexmodule[#1]% redefined
+  {\startglobaal % i.v.m. \bgroup in \startdocumentation  
+   \getparameters[Module][#1]
+   \stopglobaal  % i.v.m. \bgroup in \startdocumentation  
+   \paragraaf{\Modulesubtitle}
+   \SchrijfLijstenWeg}
+
+\def\stopmodule% redefined
+  {\pagina  
+   \bepaalregisterkenmerken
+     [index]
+     [criterium=paragraaf]
+   \ifutilitydone
+     \paginareferentie
+       [index]
+     \plaatsregister
+       [index]
+       [balanceren=ja,
+        aanduiding=nee,
+        criterium=paragraaf]
+   \fi}
+
+\let\StelLijstenSamen=\relax
+
+\newcounter\ModuleNumber
+
+\newwrite\BatchFile \openout\BatchFile=\jobname.bat
+
+\def\WriteBatchFile%
+  {\doglobal\increment\ModuleNumber
+   \immediate\write\BatchFile{call modu-run \FileName\space \ModuleNumber}}
+
+\newif\ifProcessingPublic
+
+\def\SchrijfLijstenWeg%
+  {\schrijfnaarlijst[FileNames] {}{\FileName}
+   \schrijfnaarlijst[GroupItems]{}{\GroupItem}}
+
+\def\moduletitel{}
+
+\def\TypeZeroModule#1%
+  {\paragraaf{[to be extracted: #1]}
+   {\em This module is not yet split off.}
+   \SchrijfLijstenWeg}
+
+\def\TypeOneModule#1%
+  {\paragraaf{[to be documented: #1]}
+   {\em This module is not yet fully documented.}
+   \SchrijfLijstenWeg}
+
+\def\TypeTwoModule#1%
+  {\ifProcessingPublic
+     \readfile{#1.ted}{}{}%
+     \WriteBatchFile
+   \else
+     \paragraaf{[not yet public: #1]}
+     {\em This module is documented but not yet public.}
+     \SchrijfLijstenWeg
+   \fi}
+
+\def\TypeThreeModule#1%
+  {\readfile{#1.ted}{}{}%
+   \WriteBatchFile}
+
+\def\verwerkmodule#1#2%
+  {\pagina
+   \bgroup
+   \def\FileName{#1}
+   \stelrefererenin[prefix=#1]
+   \gebruikexterndocument[PaperVersion][#1][]
+   \aftersplitstring#1\at-\to\GroupItem
+   \StelLijstenSamen
+   \ifcase#2
+     \TypeZeroModule{#1}
+   \or
+     \TypeOneModule{#1}
+   \or
+     \TypeTwoModule{#1}  % \TypeThreeModule{#1}
+   \or
+     \TypeThreeModule{#1}
+   \fi
+   \pagina
+   \stelrefererenin[prefix=]
+   \egroup}
+
+\def\ModuleGroep#1#2%
+  {\pagina
+   \let\Modulefile=\empty
+   \stelrefererenin[prefix=#1]
+   \def\FileGroup{#1}
+   \schrijfnaarlijst[FileGroups]{}{\FileGroup}
+   \hoofdstuk[inhoud]{#2}
+   \MaakLijstMetItems
+   \MaakLijstMetNames
+   \MaakLijstMetGroups
+   \plaatsinhoud[criterium=hoofdstuk,niveau=paragraaf]}
+
+% Layout 
+
+\stelkorpsin
+  [9pt,ams]
+
+\taal
+  [en]
+
+\stelpapierformaatin
+  [S6][S6]
+
+\stellayoutin
+  [rugwit=72.5pt,
+   linkermarge=50pt,
+   linkermargeafstand=12.5pt,
+   rechtermarge=0pt,
+   rechterrand=80pt,
+   rechterrandafstand=10pt,
+   linkerrand=0pt,
+   breedte=430pt,
+   kopwit=10pt,
+   hoofd=0pt,
+   voet=30pt,
+   onderafstand=10pt,
+   onder=15pt,
+   hoogte=410pt,
+   letter=\ss]
+
+\steltypenin
+  [palet=colorpretty]
+
+\stelsetupin
+  [verwijzing=3]
+
+\definieerkleur [texprettyone]     [r=.8, g=0,  b=0]  % red
+\definieerkleur [texprettytwo]     [r=0,  g=.6, b=0]  % green
+
+\definieerkleur [AchtergrondKleur] [s=.5]  % [r=1,g=1,b=.7]
+\definieerkleur [ButtonKleur]      [s=.85] % [r=.1,g=.5,b=.8]
+
+\stelinteractiein
+  [status=start,
+   pagina=ja,
+   contrastkleur=,
+   menu=aan,
+   kleur=]
+
+\stelachtergrondenin
+  [pagina]
+  [achtergrond=kleur,
+   kleur=AchtergrondKleur,
+   offset=2.5pt]  % this offset influences the menus! 
+
+\stelachtergrondenin
+  [tekst,voet]
+  [tekst,linkermarge]
+  [achtergrond=kleur,
+   kleur=wit]
+
+\stelsubpaginanummerin
+  [wijze=perparagraaf,
+   status=start]
+
+\stelinteractiebalkin
+  [kader=uit,
+   offset=0pt,
+   hoogte=passend]
+
+\stelwitruimtein
+  [groot]
+
+\steltypenin
+  [typen]
+  [optie=kleur]
+
+\steltypenin
+  [definition]
+  [optie=kleur]
+
+\steltypenin
+  [file]
+  [optie=kleur]
+
+\stelnummeringin
+  [variant=enkelzijdig,
+   wijze=perparagraaf,
+   status=geen]
+
+\stelinmargein
+  [plaats=links]
+
+\stelkoppenin
+  [variant=inmarge]
+
+\stelkopin
+  [hoofdstuk]
+  [letter=\ssc,
+   pagina=rechts]
+
+\stelkopin
+  [paragraaf]
+  [letter=\ssb,
+   pagina=rechts]
+
+\stellijstin
+  [hoofdstuk]
+  [letter=vet,
+   na=\blanko]
+
+\stelinhoudin
+  [breedte=2em]
+
+\stelindexin
+  [balanceren=ja,
+   aanduiding=nee]
+
+\stelkleurenin
+  [status=start]
+
+\def\TitelBlad#1%
+  {\startstandaardopmaak
+     \definefont[GrootFont] [SansBold at 72pt] 
+     \definefont[MiddelFont][Sans at 32pt] 
+     \definefont[KleinFont] [Sans at 24pt] 
+     \startkleur[AchtergrondKleur]
+     \vskip12pt 
+     \regelmidden{\GrootFont\setstrut\strut    Con\TeX t}
+     \vskip24pt 
+     \regelmidden{\MiddelFont\setstrut\strut   #1} 
+     \vskip24pt
+     \regelmidden{\KleinFont\setstrut\strut    Hans Hagen}
+     \vfilll
+     \regelmidden{\KleinFont\setstrut\strut    PRAGMA ADE} 
+     \vskip24pt 
+     \regelmidden{\KleinFont\setstrut\strut    www.pragma-ade.nl --- \currentdate}
+     \vskip12pt 
+     \stopkleur
+   \stopstandaardopmaak}
+ 
+\def\ColofonBlad%
+  {\startmode[atpragma]
+   \pagina
+   \bgroup
+     \def\PragmaHoogte {\zethoogte}
+     \def\PragmaBreedte{\tekstbreedte}
+     \def\PragmaKopwit {\kopwit}
+     \def\PragmaRugwit {\rugwit}
+     \def\PragmaMarge  {0pt}
+     \PragmaLijnentrue
+     \PlaatsPragmaLogo[ADE]
+     \vfill
+     \startsmaller[3*midden]
+     This is the official documentation of \CONTEXT\ version 
+     \kenmerkdatum, a \TEX\ macropackage developed by J.~Hagen
+     \& A.F.~Otten, who both hold the copyrights. 
+     \stopsmaller
+     \vfill
+     \pagina
+   \egroup
+   \stopmode}
+
+\newbox\LijstMetItems
+\newbox\LijstMetGroups
+\newbox\LijstMetNames
+
+\definieerlijst[FileNames]   \def\FileName  {}
+\definieerlijst[FileGroups]  \def\FileGroup {}
+\definieerlijst[GroupItems]  \def\GroupItem {}
+
+\stellijstin
+  [FileNames,FileGroups,FileGroups]
+  [expansie=ja,
+   paginanummer=nee,
+   letter=\ss\bf]
+
+\stellijstin
+  [FileNames]
+  [commando=\FileNameEntry,
+   variant=geen]
+
+\stellijstin
+  [FileGroups]
+  [commando=\FileGroupEntry,
+   na=\hss, 
+   variant=geen]
+
+\def\FileNameEntry#1#2#3%
+  {\strut\hbox{#2}}
+
+\def\FileGroupEntry#1#2#3%
+  {\strut#2}
+
+\def\MaakLijstMetItems%
+  {\setbox\LijstMetItems=\vbox
+     {\ss\bf
+      \stelinteractiein[kleur=ButtonKleur]
+      \plaatslijst[GroupItems][criterium=hoofdstuk]}}
+
+\def\MaakLijstMetNames%
+  {\setbox\LijstMetNames=\vbox 
+     {\hsize\rechterrandbreedte
+      \ss\bf\stelinterliniein 
+      \stelinteractiein[kleur=ButtonKleur]
+      \startsimplecolumns[afstand=10pt]
+        \plaatslijst[FileNames][criterium=hoofdstuk]
+      \stopsimplecolumns}}
+
+\def\MaakLijstMetGroups%
+  {\setbox\LijstMetGroups=\hbox to \tekstbreedte
+     {\ss\bf
+      \stelinteractiein[kleur=ButtonKleur]%
+      \plaatslijst[FileGroups][criterium=alles]\unskip\unskip}}
+
+\setbox\LijstMetGroups=\hbox{}
+
+%\stelvoettekstenin
+%  [rand]
+%  []
+%  [{\interactiebalk[variant=g]}]
+
+\stelinteractiemenuin
+  [rechts,onder]
+  [status=start,
+   kader=uit,
+   kleur=AchtergrondKleur,
+   letter=\ss\bf,
+   hoogte=15pt,
+   offset=0pt,
+   tussen=\vskip5pt,
+   achtergrond=kleur,
+   achtergrondkleur=ButtonKleur]
+
+\startinteractiemenu[rechts]
+  \boxofsize \vbox \teksthoogte \voetafstand \voethoogte 5pt
+    \bgroup                                                  
+      \copy\LijstMetNames
+      \vfill
+      \but [\FileGroup:inhoud]   local contents \\
+      \but [\FileName:index]     local register \\
+      \but [PaperVersion::begin] paper version  \\
+      \but [inhoud]              main contents  \\
+      \but [index]               main register  \\
+      \but [VorigeSprong]        previous jump  \\
+      \but [VerlaatViewer]       close document \\
+      \unskip
+    \egroup
+\stopinteractiemenu
+
+\startinteractiemenu[onder]
+  \unhcopy\LijstMetGroups
+\stopinteractiemenu
+
+\def\plaatsmoduleregister%
+  {\startuitleidingen
+   \stelsubpaginanummerin[reset]
+   \titel[-:index]{Register}
+   \plaatsindex
+   \stopuitleidingen}
+
+\def\plaatsmoduleinhoud%
+  {\startinleidingen
+   \titel[-:inhoud]{Contents}
+   \stelinteractiebalkin[status=stop]
+   \plaatsinhoud[criterium=tekst,niveau=hoofdstuk]
+   \stopinleidingen}
+
+\stelinhoudin
+  [paginanummer=nee,
+   niveau=hoofdstuk,
+   interactie=alles,
+   letter=,
+   voor=,
+   na=]
+
+\stelvoettekstenin
+  [marge]
+  [\tt\Modulefile]
+  []  
+
+\stelvoettekstenin
+  [tekst]
+  [hoofdstuk][paragraaf]
+
+\stelindexin
+  [symbool=1]
+
+\steltolerantiein
+  [zeersoepel]
+
+\endinput 
diff --git a/tex/context/base/s-pre-00.tex b/tex/context/base/s-pre-00.tex
index 583d2a0ec..e11e6f3fd 100644
--- a/tex/context/base/s-pre-00.tex
+++ b/tex/context/base/s-pre-00.tex
@@ -75,14 +75,14 @@
       \setupfield
         [presentation]
         [\c!breedte=\v!passend,\c!hoogte=\v!passend,\c!offset=\v!overlay,
-         \c!strut=\v!nee,\c!kader=\v!uit,\c!optie={\v!alleenleesbaar}]
+         \c!strut=\v!nee,\c!kader=\v!uit,\c!optie=\v!alleenleesbaar]
       \definesymbol    
         [\presentationtag]
         [\presentationshade]
       \def\presentationshade%
         {\presentationshield
            [\c!breedte=\tekstbreedte,\c!hoogte=\presentationstepheight]{}}
-      \definefield[\presentationtag][check][presentation][\presentationtag][\presentationtag]
+      \definefield[\presentationtag][check][presentation][\presentationtag,\v!geen][\presentationtag]
       \fitfield[\presentationtag]}}
 
 \startJSpreamble {presentation} used later 
@@ -141,6 +141,33 @@
 %D \setupfootertexts[{\button{Show Up}[NextStep]}]
 %D \stoptypen 
 %D
+%D In case of presentation style 2, you can say: 
+%D
+%D \starttypen 
+%D \definereference[Whatever][JS(NextPresentation{\realfolio})]
+%D \stoptypen 
+%D
+%D Depending of the viewer, you need to reset the fields at 
+%D startup:
+%D
+%D \starttypen 
+%D \setupinteraction[openaction=ResetForm]
+%D \stoptypen 
+%D
+%D Fixed spacing give you the best results:
+%D
+%D \starttypen 
+%D \setupwhitespace[fixed] 
+%D \setupblank[fixed]
+%D \stoptypen 
+%D
+%D Sometimes you need to set the color of the background, as
+%D with style 2: 
+%D
+%D \starttypen 
+%D \definecolor[StepColor][Page]
+%D \stoptypen 
+%D
 %D Special effects can be reached with: 
 %D
 %D \starttypen 
diff --git a/tex/context/base/setupa.tex b/tex/context/base/setupa.tex
new file mode 100644
index 000000000..1eb92b164
--- /dev/null
+++ b/tex/context/base/setupa.tex
@@ -0,0 +1,771 @@
+%D \module
+%D   [       file=setupa,
+%D        version=1998.07.20,
+%D          title=\CONTEXT\ Setup Definitions,
+%D       subtitle=Macro Definitions,
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
+%C details. 
+
+\startmessages  dutch  library: setup  
+        title:  setup
+      formula:  formule
+       number:  getal
+         list:  lijst
+    dimension:  maat 
+         mark:  markering
+    reference:  verwijzing
+      command:  commando
+         file:  file
+         name:  naam
+         text:  tekst
+      section:  sectie
+     singular:  naam enkelvoud
+       plural:  naam meervoud
+       matrix:  n*m
+          see:  zie
+            1:  de karakters < en > zijn globaal actief!
+            2:  -- wordt verwerkt
+            3:  -- is niet gedefinieerd
+            4:  -- wordt nogmaals verwerkt
+\stopmessages
+
+\startmessages  english  library: setup  
+        title:  setup
+      formula:  formula
+       number:  number
+         list:  list
+    dimension:  dimension 
+         mark:  mark
+    reference:  reference
+      command:  command
+         file:  file
+         name:  name
+         text:  text
+      section:  section
+     singular:  singular name 
+       plural:  plural name 
+       matrix:  n*m
+          see:  see 
+            1:  the characters < and > are globally active!
+            2:  -- is processed
+            3:  -- is undefined
+            4:  -- is processed again
+\stopmessages
+
+\startmessages  german library: setup
+        title:  Setup
+      formula:  Formel
+       number:  Nummer
+         list:  Liste
+    dimension:  Dimension
+         mark:  Beschriftung
+    reference:  Referenz
+      command:  Befehl
+         file:  Datei
+         name:  Name
+         text:  Text
+      section:  Abschnitt
+     singular:  singular
+       plural:  plural
+       matrix:  n*m
+          see:  siehe
+            1:  Die Zeichen < und > gelten global!
+            2:  -- wird verarbeitet
+            3:  -- ist undefiniert
+            4:  -- ist mehrmals verarbeitet
+\stopmessages
+
+\startmessages  czech  library: setup
+        title:  setup
+      formula:  rovnice
+       number:  cislo
+         list:  seznam
+    dimension:  dimenze
+         mark:  znacka
+    reference:  reference
+      command:  prikaz
+         file:  soubor
+         name:  jmeno
+         text:  text
+      section:  sekce
+     singular:  jmeno v singularu
+       plural:  jmeno v pluralu
+       matrix:  n*m
+          see:  viz
+            1:  znaky < a > jsou globalne aktivni!
+            2:  -- je zpracovano
+            3:  -- je nedefinovano
+            4:  -- je zpracovano znovu
+\stopmessages
+
+\startmessages  italian library: setup  
+        title:  setup
+      formula:  formula
+       number:  number
+         list:  list
+    dimension:  dimension 
+         mark:  mark
+    reference:  reference
+      command:  command
+         file:  file
+         name:  name
+         text:  text
+      section:  section
+     singular:  singular name 
+       plural:  plural name 
+       matrix:  n*m
+          see:  see 
+            1:  the characters < and > are globally active!
+            2:  -- is processed
+            3:  -- is undefined
+            4:  -- is processed again
+\stopmessages
+ 
+\startmessages  romanian library: setup
+         title:  setari
+       formula:  formula
+        number:  numar
+          list:  lista
+     dimension:  dimensiune
+          mark:  marcaj
+     reference:  referinta
+       command:  comanda
+          file:  fisier
+          name:  nume
+          text:  text
+       section:  sectiune
+      singular:  nume singular
+        plural:  nume pluram
+        matrix:  n*m
+           see:  vezi
+             1:  caracterele < si > sunt active global!
+             2:  este procesat --
+             3:  -- este nedefinit
+             4:  -- este procesat din nou
+\stopmessages
+
+
+% we need some more constants 
+
+\interfacetranslationtrue  
+
+\input mult-sys
+\input mult-con
+\input mult-com
+
+% Enkele letter-instellingen
+
+\def\setupnumfont  {}
+\def\setuptxtfont  {\tttf}
+\def\setupvarfont  {\ttsl}
+\def\setupoptfont  {\ttsl}
+\def\setupalwcolor {}
+\def\setupoptcolor {darkgray}
+
+% Het onderstaande is nodig om \type af te handelen in
+% argumenten. Standaard gebeurt dit niet.
+
+% Het actief maken en toekennen moet zeer vroeg gebeuren,
+% in ieder geval voordat cont-00a wordt geladen. Zoniet,
+% dan gaat het mis op commando's als \processaction. De
+% mathematische mode en vergelijken van waarden met \if
+% gaat echter wel goed.
+
+% Omdat in een acrobat geen < en > in een label mogen
+% zitten, moeten we deze karakters bij verwijzingen
+% converteren naar wat onschuldiger varianten.
+
+\catcode`\<=\active
+\catcode`\>=\active
+
+\def<{\lesscharacter}
+\def>{\morecharacter}
+
+\def\protectmoreless{\def<{@}\def>{@}}
+
+\showmessage{setup}{1}{}
+
+% \stelsetupin
+%   [verwijzing=<0,1,2,3>]
+%
+% \startsetup
+%   \command[name]
+%   \type[list]
+%   \value[values][default]
+%   \variable[variable][values][default]
+% \stopsetup
+%
+% \setup{name}
+%
+% \volledigelijstmettexcommandos
+% \plaatslijstmettexcommandos
+%
+% \c!val!         [a]
+% \c!vals!        [a,b,c]
+%
+% \c!var!         [x=]
+% \c!vars!        [x=,y=,z=]
+%
+% \c!trip!        [x:y:z]
+% \c!trips!       [x:y:z,..]
+%
+% \c!arg!         {..}
+% \c!args!        {..,..,..}
+%
+% \c!wrd!         {..}
+% \c!wrds!        {.. .. ..}
+%
+% \c!idx!         {..}
+% \c!idxs!        {..+..+..}
+%
+% \c!mat!         $..$
+% \c!dis!         $$..$$
+%
+% \c!pos!         (x)
+% \c!poss!        (x,y)
+%
+% \c!nop!         ...
+%
+% \c!fil!          ...
+%
+% \c!stp!         \stop...
+%
+% \c!ref!         [ref]
+% \c!refs!        [ref,..]
+%
+% \c!par!         \par
+%
+% \c!cmd!         \commando
+%
+% \c!opt!         optioneel
+% \c!alwint!      altijd interactief
+% \c!optint!      optioneel interactief
+%
+% \c!dest!        {..[refs]}
+% \c!dests!       {..[refs]},..
+%
+% \c!one!         #1
+% \c!two!         #2
+% \c!three!       #3
+%
+% \c!font!        fontspecificatie
+%
+% \c!sep!         \\
+
+\unprotect
+
+\def\@@setup    {@@setup}
+\def\c!stp      {}
+\def\c!setupref {stp}
+\def\??stp      {@@stp}
+
+\def\c!command!%
+  {{\setupvarfont\getmessage{setup}{command}}}
+
+\def\c!dimension!%      
+  {{\setupvarfont\getmessage{setup}{dimension}}}
+
+\def\c!filename!%      
+  {{\setupvarfont\getmessage{setup}{file}}}
+
+\def\c!identifier!%     
+  {{\setupvarfont\getmessage{setup}{name}}}
+
+\def\c!character!%     
+  {{\setupvarfont\getmessage{setup}{character}}}
+
+\def\c!marker!%         
+  {{\setupvarfont\getmessage{setup}{mark}}}
+
+\def\c!number!%         
+  {{\setupvarfont\getmessage{setup}{number}}}
+
+\def\c!reference!%      
+  {{\setupvarfont\getmessage{setup}{reference}}}
+
+\def\c!plural!%         
+  {{\setupvarfont\getmessage{setup}{plural}}}
+
+\def\c!singular!%       
+  {{\setupvarfont\getmessage{setup}{singular}}}
+
+\def\c!text!%           
+  {{\setupvarfont\getmessage{setup}{text}}}
+
+\def\c!formula!%        
+  {{\setupvarfont\getmessage{setup}{formula}}}
+
+\def\c!font!%           
+  {{\setupvarfont\getmessage{setup}{file}}}
+
+\def\c!matrix!%           
+  {{\setupvarfont\getmessage{setup}{matrix}}}
+
+\def\c!list!%          
+  {{\setupvarfont\getmessage{setup}{list}}}
+
+\def\c!section!%        
+  {{\setupvarfont\getmessage{setup}{section}}}
+
+\def\c!noargument!%    
+  {{\setupvarfont\texescape\getmessage{setup}{command}}}
+
+\def\c!oneargument!%    
+  {{\setupvarfont\texescape\getmessage{setup}{command}\#1}}
+
+\def\c!twoarguments!%   
+  {{\setupvarfont\texescape\getmessage{setup}{command}\#1\#2}}
+
+\def\c!threearguments!%
+  {{\setupvarfont\texescape\getmessage{setup}{command}\#1\#2\#3}}
+
+\def\c!repeat! {\c!opt!{{\setupvarfont n}*}}
+\def\c!arg!    {\leftargument\c!dots!\rightargument}
+\def\c!args!   {\leftargument..,\c!dots!,..\rightargument}
+\def\c!dis!    {\$\$\c!dots!\$\$}
+\def\c!idx!    {\leftargument\c!dots!\rightargument}
+\def\c!idxs!   {\leftargument..+\c!dots!+..\rightargument}
+\def\c!mat!    {\$\c!dots!\$}
+\def\c!nop!    {\c!dots!}
+\def\c!fil!    {~\c!dots!~}
+\def\c!pos!    {(\c!dots!)}
+\def\c!poss!   {(\c!dots!,\c!dots!)}
+\def\c!sep!    {\texescape\texescape}
+\def\c!ref!    {[{\setupvarfont ref}]}
+\def\c!refs!   {[{\setupvarfont ref},..]}
+\def\c!val!    {[\c!dots!]}
+\def\c!vals!   {[..,\c!dots!,..]}
+\def\c!var!    {[..=..]}
+\def\c!vars!   {[..,..=..,..]}
+\def\c!cmd!    {\c!noargument!}
+\def\c!dest!   {[\leftargument..\c!ref!\rightargument]}
+\def\c!dests!  {[..,\leftargument..\c!refs!\rightargument,..]}
+\def\c!trip!   {[x:y:z=]}
+\def\c!trips!  {[x:y:z=,..]}
+\def\c!wrd!    {\leftargument\c!dots!\rightargument}
+\def\c!wrds!   {\leftargument.. \c!dots!\ ..\rightargument}
+\def\c!par!    {\texescape par}
+\def\c!opt!  #1{{\setupoptfont{#1}}}
+\def\c!tex!  #1{\texescape#1}
+\def\c!or!     {\hbox spread .25em{\vl}}
+
+\let\redefinesetupconstants=\relax
+
+% Test: 
+
+\newif\ifbreaksetup
+\def\breaksetup{\ifbreaksetup\allowbreak\fi}
+
+\def\c!repeat! {\breaksetup\c!opt!{{\setupvarfont n}*}\breaksetup}
+\def\c!arg!    {\breaksetup\leftargument\c!dots!\rightargument\breaksetup}
+\def\c!args!   {\breaksetup\leftargument..,\breaksetup\c!dots!,\breaksetup..\rightargument\breaksetup}
+\def\c!dis!    {\breaksetup\$\$\c!dots!\$\$\breaksetup}
+\def\c!idx!    {\breaksetup\leftargument\c!dots!\rightargument\breaksetup}
+\def\c!idxs!   {\breaksetup\leftargument..+\breaksetup\c!dots!+\breaksetup..\rightargument\breaksetup}
+\def\c!mat!    {\breaksetup\$\c!dots!\$\breaksetup}
+\def\c!nop!    {\breaksetup\c!dots!\breaksetup}
+\def\c!fil!    {\breaksetup~\c!dots!~\breaksetup}
+\def\c!pos!    {\breaksetup(\c!dots!)\breaksetup}
+\def\c!poss!   {\breaksetup(\c!dots!,\c!dots!)\breaksetup}
+\def\c!sep!    {\breaksetup\texescape\texescape\breaksetup}
+\def\c!ref!    {\breaksetup[{\setupvarfont ref}]\breaksetup}
+\def\c!refs!   {\breaksetup[{\setupvarfont ref},\breaksetup..]\breaksetup}
+\def\c!val!    {\breaksetup[\c!dots!]\breaksetup}
+\def\c!vals!   {\breaksetup[..,\breaksetup\c!dots!,\breaksetup..]\breaksetup}
+\def\c!var!    {\breaksetup[..=..]\breaksetup} 
+\def\c!vars!   {\breaksetup[..,\breaksetup..=..,\breaksetup..]\breaksetup}
+\def\c!cmd!    {\breaksetup\c!noargument!\breaksetup}
+\def\c!dest!   {\breaksetup[\leftargument..\breaksetup\c!ref!\rightargument]\breaksetup}
+\def\c!dests!  {\breaksetup[..,\breaksetup\leftargument..\breaksetup\c!refs!\rightargument,\breaksetup..]\breaksetup}
+\def\c!trip!   {\breaksetup[x:y:z=]\breaksetup}
+\def\c!trips!  {\breaksetup[x:y:z=,\breaksetup..]\breaksetup}
+\def\c!wrd!    {\breaksetup\leftargument\c!dots!\rightargument\breaksetup}
+\def\c!wrds!   {\breaksetup\leftargument.. \breaksetup\c!dots!\ \breaksetup..\rightargument\breaksetup}
+\def\c!par!    {\breaksetup\texescape par\breaksetup}
+\def\c!opt!    #1{{\setupoptfont{#1}}}
+
+\definieerregister
+  [texmacro]
+  [texmacros]
+
+\definieersorteren
+  [texcommando]
+  [texcommandos]
+
+\stelsorterenin
+  [texcommando]
+  [\c!commando=\@@stpcommando,
+   \c!criterium=\@@stpcriterium]
+
+\definieersorteren
+  [elktexcommando]
+  [alletexcommandos]
+
+\stelsorterenin
+  [elktexcommando]
+  [\c!commando=\@@stpcommando,
+   \c!criterium=\v!alles]
+
+% verwijzing: 0 geen verwijzingen plaatsen / wel genereren 
+%             1 alleen bij zie plaatsen / wel genereren 
+%             2 alle verwijzingen plaatsen / niet genereren 
+%             3 bij zie commando klikken / wel genereren 
+
+\newif\ifv!numberingdots!
+\newif\ifv!alwaysinteractive!
+\newif\ifv!optionalinteractive!
+
+\newcount\v!dotnumber!
+
+\def\c!dots!%
+  {\ifv!numberingdots!
+     \global\advance\v!dotnumber! by 1\relax
+     .{\setupnumfont\the\v!dotnumber!}.%
+   \else
+     ...%
+   \fi}
+
+\def\writesetupparbox#1%
+  {\hbox to \@@stpbreedte{\strut#1\hss}}%
+
+\def\writesetupparameter#1#2%
+  {\doifcommonelse{#1}{#2}
+     {\underbar{#1} }
+     {#1 }}%
+
+\def\writesetupparametervalues#1#2#3%
+  {\bgroup
+   \def\dowritesetupparameter##1%
+     {\writesetupparameter{##1}{#3}}%
+   \veryraggedright
+   \noindent
+   \hangindent=\@@stpbreedte
+   \writesetupparbox{\getinterfaceconstant{#1}}%
+   \processcommalist[#2]\dowritesetupparameter
+   \doifcommonelse{#3}{#2}{}{\underbar{#3}}%
+   \endgraf
+   \egroup}
+
+\def\writesetupparameters#1#2%
+  {\doifnot{#1}{}
+     {\bgroup
+      \def\dowritesetupparameter##1%
+        {\writesetupparameter{##1}{#2}}%
+      \indent
+      \veryraggedright
+      \hangindent=\@@stpbreedte
+      \writesetupparbox{\c!dots!}%
+      \processcommalist[#1]\dowritesetupparameter
+      \endgraf
+      \egroup}}
+
+% #1=list  #3=default
+
+\def\setupvalue[#1]#2[#3]%
+  {\writesetupparameters{#1}{#3}}
+
+% #1=name  #3=list  #5=default
+
+\def\doifsystemconstantelse#1%
+  {\convertargument*\v!\to\asciia
+   \convertargument*#1\to\asciib
+   \doifinstringelse\asciia\asciib}
+
+\def\setupvariable[#1]#2[#3]#4[#5]%
+  {\doifcommonelse{\c!command!,\c!dimension!,\c!number!,\c!text!}{#3}
+     {\doifsystemconstantelse{#5}
+        {\writesetupparametervalues{#1}{#3}{#5}}
+        {\writesetupparametervalues{#1}{#3}{}}}
+     {\writesetupparametervalues{#1}{#3}{#5}}}
+
+\unexpanded\def\inheritsetup#1% 
+  {\setsetupreference#1\to\currentsetupinheritance
+   \ifcase\@@stpverwijzing
+     \texescape#1% % njet 
+   \or
+     {\op{p}[\currentsetupinheritance]: \texescape#1}% zonder { } probleem
+   \or
+     {\op{p}[\currentsetupinheritance]: \texescape#1}% nog eens uitzoeken
+   \or
+     {\naar{\tttf\texescape#1}[\currentsetupinheritance]}%
+   \fi}
+
+% #1=name
+
+\def\inheritsetupvalues[#1]#2[#3]%
+  {\bgroup
+   \ConvertToConstant\doifelse{#3}{}{\def\next{}}{\def\next{: }}%
+   \def<<{\setupvarfont}\def>>{}%
+   \protectmoreless
+   \value[\getmessage{setup}{see} \inheritsetup{#1}\next#3][]%
+   \egroup}
+
+% #1=name
+
+\def\inheritsetupvariables[#1]#2[#3]%
+  {\bgroup
+   \ConvertToConstant\doifelse{#3}{}{\def\next{}}{\def\next{: }}%
+   \def<<{\setupvarfont}\def>>{}%
+   \protectmoreless
+   \variable[..=..][\getmessage{setup}{see} \inheritsetup{#1}\next#3][]%
+   \egroup}
+
+\def\stelsetupin%
+  {\dodoubleargument\getparameters[\??stp]}
+
+\def\dowritetexcommand#1<<#2>>#3\\%
+  {\texescape#1{\setupvarfont#2}#3}
+
+\def\writetexcommand#1%
+  {\setuptxtfont
+   \doifinstringelse{<<}{#1}
+     {\dowritetexcommand#1\\}
+     {\texescape#1}}
+
+\xdef\currentsetupreference   {}
+\xdef\currentsetupinheritance {}
+
+\def\subsetupreference#1{@#1@}
+
+\let\subsetup=\subsetupreference
+
+\def\setsetupreference#1\to#2%
+  {\bgroup
+   \protectmoreless
+   \let\subsetup=\subsetupreference
+   \xdef#2{\c!setupref:#1}%
+   \egroup}
+
+\def\setsetupnumber#1\to#2%
+  {\bgroup
+   \xdef#2{\c!setupref:#1}%
+   \egroup}
+
+\def\checkparametervalues#1#2#3%
+  {\setbox0=\hbox{\getinterfaceconstant{#1}}%
+   \ifdim\wd0\morecharacter\dimen0\relax
+     \dimen0=\wd0
+   \fi}
+
+\def\checkparameters#1#2%
+  {\setbox0=\hbox{\c!dots!}%
+   \ifdim\wd0\morecharacter\dimen0\relax
+     \dimen0=\wd0
+   \fi}
+
+\def\dointeractivesetupsymbol#1%
+  {\color
+     [#1]
+     {\raise.15ex\hbox{$\gobackwardcharacter\hskip.5em\goforwardcharacter$}}}
+
+\def\dointeractivesetup%
+  {\ifv!alwaysinteractive!
+     \dointeractivesetupsymbol\setupalwcolor
+   \fi
+   \ifv!optionalinteractive!
+     \dointeractivesetupsymbol\setupoptcolor
+   \fi}
+
+\@EA\def\@EA\c!dostp!\e!start#1<<#2>>#3\\%
+  {\breaksetup~...~\breaksetup\texescape\e!stop#1{\setupvarfont#2}}%
+
+\defineframedtext
+  [setuptext]
+  [\c!breedte=\hsize,
+   \c!hoogte=\v!passend,
+   \c!offset=0.75em]
+
+\newif\ifshortsetup 
+
+\def\dosetupreference% 
+  {\doifundefinedelse{done::\currentsetupreference}
+     {\pagereference[\currentsetupnumber]%
+      \pagereference[\currentsetupreference]%
+      \setgvalue{done::\currentsetupreference}{}}
+     {\showmessage{setup}{4}{\currentsetupreference}}}
+
+\def\doprocesssetup\number[#1]\command[#2]\type[#3]#4%
+  {\bgroup
+     \showmessage{setup}{2}{#2}%
+     \ifshortsetup\else\breaksetupfalse\fi
+     \let\value=\setupvalue
+     \let\variable=\setupvariable
+     \let\inheritvalues=\inheritsetupvalues
+     \let\inheritvariables=\inheritsetupvariables
+     \@EA\def\@EA\c!stp!\@EA{\@EA\c!dostp!#2<<>>\\}%
+     \advance\hsize by -\leftskip
+     \advance\hsize by -\rightskip
+     \getvalue{\e!start setuptext}
+       \stelwitruimtein[\v!geen]%
+       \bgroup
+         \def<{}%
+         \def>{}%
+         \edef\firstcommand{#2*}%
+         \let<=\lesscharacter
+         \let>=\morecharacter
+         \edef\secondcommand{#2}%
+         \expanded{\texmacro[\firstcommand]{\noexpand\tex{\secondcommand}}}% 
+       \egroup
+       \global\v!dotnumber!=0
+       \global\v!numberingdots!true
+       \global\v!alwaysinteractive!false
+       \global\v!optionalinteractive!false
+       \def\c!alwint!{\global\v!alwaysinteractive!true}%
+       \def\c!optint!{\global\v!optionalinteractive!true}%
+       \setbox0=\hbox{\redefinesetupconstants#3}%
+       \ifnum\v!dotnumber!<2
+         \global\v!numberingdots!false
+       \fi
+       \global\v!dotnumber!=0
+       \ifbreaksetup
+         \hangafter1 
+         \hangindent1em  
+         \veryraggedright
+       \else
+         \hbox to \hsize
+       \fi
+         {\let\subsetup=\gobbleoneargument
+          \redefinesetupconstants
+          \setuptxtfont\setstrut\strut
+          \writetexcommand{#2}#3%
+          \ifbreaksetup\hfill\else\hss\fi
+          \ifnum\@@stpverwijzing>0
+            \dointeractivesetup
+          \fi
+          \setsetupnumber   #1\to\currentsetupnumber
+          \setsetupreference#2\to\currentsetupreference
+          \ifcase\@@stpverwijzing
+            \dosetupreference
+          \or
+            \dosetupreference
+          \or
+            \hskip1em
+            \doifreferencefoundelse{\currentsetupreference}
+              {\bf\op[\currentsetupreference]}
+              {\setupvarfont \translate
+                 [nl=nog niet beschreven,
+                  en=not yet described,
+                  de=not yet described]}%
+          \or
+            \dosetupreference
+          \fi}
+       \ifbreaksetup
+         \endgraf
+       \fi
+       \ifshortsetup \else
+         \switchtobodyfont[\v!klein]%
+         \setuptxtfont
+         \redefinesetupconstants
+         \global\v!dotnumber!=0
+         \setbox0=\vbox
+           {\dimen0=\!!zeropoint
+            \let\writesetupparametervalues=\checkparametervalues
+            \let\writesetupparameters=\checkparameters
+            #4\relax
+            \ifdim\dimen0<2.5em
+              \dimen0=2.5em
+            \fi
+            \advance\dimen0 by 2em
+            \xdef\@@stpbreedte{\the\dimen0}}%
+         \global\v!dotnumber!=0
+         \setbox0=\vbox{#4}%
+         \ifdim\wd0>\!!zeropoint
+           \blanko
+           \unvbox0
+         \fi
+       \fi
+     \getvalue{\e!stop setuptext}
+   \egroup}
+
+\newcounter\currentsetupnumber
+
+\def\startsetup#1\command[#2]#3\type[#4]#5\stopsetup%
+  {\bgroup
+   \def<{}%
+   \def>{}%
+   \doglobal\increment\currentsetupnumber\relax
+   \def\!!stringa{\@@setup#2}%
+   \expandafter\setgvalue\expandafter\!!stringa\expandafter
+     {\expandafter\doprocesssetup
+        \expandafter\number\expandafter[\currentsetupnumber]%
+        \command[#2]%
+        \type[#4]%
+        {#5}}%
+   \edef\firstcommand{#2*}%
+   \let<=\lesscharacter
+   \let>=\morecharacter
+   \edef\secondcommand{#2}%
+   % 'elk' comes first, else no 'gebruikt' entries are written  
+   \expanded{\elktexcommando[\firstcommand]{\secondcommand}}% 
+   % this uggly hack prevents messages
+   \let\showmessage=\gobblethreearguments
+   % here 'elk' is overruled 
+   \expanded{\texcommando[\firstcommand]{\secondcommand}}% 
+   \egroup}
+
+\def\dosetup#1%
+  {\protect
+   \@@stpvoor
+   \bgroup
+   \def<{}%
+   \def>{}%
+   \xdef\globalsetupname{#1}%
+   \gebruikcommandos{#1*}%
+   \egroup
+   \doifdefinedelse{\@@setup\globalsetupname}
+     {\getvalue{\@@setup\globalsetupname}}
+     {\bgroup
+      \showmessage{setup}{3}{#1}%
+      \setuptxtfont [setup \makemessage{setup}{3}{#1}]\endgraf
+      \egroup}%
+   \@@stpna}
+
+\def\setup%
+  {\shortsetupfalse
+   \unprotect\dosetup}
+
+\def\shortsetup%
+  {\shortsetuptrue
+   \unprotect\dosetup}
+
+\def\startsetupfile%
+  {\unprotect}
+
+\def\stopsetupfile%
+  {\protect
+   \endinput}
+
+\let\documenteduntilhere=\relax
+
+\definieerblok  [dutch, english, german, czech, italian]
+\verbergblokken [dutch, english, german, czech, italian]
+
+\stelsetupin
+  [\c!voor=,
+   \c!na=,
+   \c!commando=\setup,
+   \c!verwijzing=0,
+   \c!criterium=\v!gebruikt]
+
+\def\plaatssetup%
+  {\getvalue{\e!plaats\e!lijstmet texcommandos}}
+
+\def\plaatselkesetup% for fun purposes only
+  {\bgroup
+   \stelsetupin[\c!verwijzing=2]%
+   \setupreferencing[\c!status=\v!stop]%
+   \getvalue{\e!plaats\e!lijstmet alletexcommandos}%
+   \egroup}
+
+\let\setupsetup     = \stelsetupin
+\let\placesetup     = \plaatssetup
+\let\placeeverysetup= \plaatselkesetup
+
+\protect
+
+\endinput
diff --git a/tex/context/base/setupb.tex b/tex/context/base/setupb.tex
new file mode 100644
index 000000000..8e2f340a6
--- /dev/null
+++ b/tex/context/base/setupb.tex
@@ -0,0 +1,8635 @@
+%D \module
+%D   [       file=setupb,
+%D        version=1998.07.20,
+%D          title=\CONTEXT\ Setup Definitions,
+%D       subtitle=Command Specifications,
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% nieuw: oncomment plaatssamengesteldelijst
+
+% nog 'reductie=ja/nee'         in \setupcolors
+
+\startsetupfile
+
+% lang-ini
+
+\startsetup
+  \command
+    [\y!installlanguage]
+  \type
+    [\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \variable
+    [\c!spatiering]
+    [\v!opelkaar,\v!ruim]
+    [\v!opelkaar]
+  \variable
+    [\s!lefthyphenmin]
+    [\c!dimension!]
+    [2]
+  \variable
+    [\s!righthyphenmin]
+    [\c!dimension!]
+    [2]
+  \variable
+    [\c!status]
+    [\v!start,\v!stop]
+    [\v!stop]
+  \variable
+    [\c!leftsentence]
+    [\c!command!]
+    [---]
+  \variable
+    [\c!rightsentence]
+    [\c!command!]
+    [---]
+  \variable
+    [\c!leftsubsentence]
+    [\c!command!]
+    [---]
+  \variable
+    [\c!rightsubsentence]
+    [\c!command!]
+    [---]
+  \variable
+    [\c!leftquote]
+    [\c!command!]
+    [`]
+  \variable
+    [\c!rightquote]
+    [\c!command!]
+    [']
+  \variable
+    [\c!leftquotation]
+    [\c!command!]
+    [``]
+  \variable
+    [\c!rightquotation]
+    [\c!command!]
+    ['']
+  \variable
+    [\c!default]
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setuplanguage]
+  \type
+    [\c!val!\c!vars!]
+  \inheritvariables
+    [\y!installlanguage]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!language]
+  \type
+    [\c!val!]
+  \value
+    [\s!nl,\s!fr,\s!en,\s!uk,\s!de,\s!es,\s!cz,..]
+    [\s!nl]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!mainlanguage]
+  \type
+    [\c!val!]
+  \value
+    [\s!nl,\s!fr,\s!en,\s!uk,\s!de,\s!es,\s!cz,..]
+    [\s!nl]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!translate]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!identifier!]
+    [\c!text!]
+    []
+\stopsetup
+
+% enco-ini
+
+\startsetup
+  \command
+    [\y!useencoding]
+  \type
+    [\c!vals!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+% spec-ini
+
+\startsetup
+  \command
+    [\y!usespecials]
+  \type
+    [\c!vals!]
+  \value
+    [\c!reset,\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!defineoutput]
+  \type
+    [\c!val!\c!vals!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setupoutput]
+  \type
+    [\c!vals!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+% font-ini
+
+\startsetup
+  \command
+    [\y!definebodyfontenvironment]
+  \type
+    [\c!val!\c!vars!]
+  \value
+    [5pt,...,12pt,\s!default]
+    []
+  \variable
+    [\s!text]
+    [\c!dimension!]
+    []
+  \variable
+    [\s!script]
+    [\c!dimension!]
+    []
+  \variable
+    [\s!scriptscript]
+    [\c!dimension!]
+    []
+  \variable
+    [\c!x]
+    [\c!dimension!]
+    []
+  \variable
+    [\c!xx]
+    [\c!dimension!]
+    []
+  \variable
+    [\c!klein]
+    [\c!dimension!]
+    []
+  \variable
+    [\c!groot]
+    [\c!dimension!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setupbodyfontenvironment]
+  \type
+    [\c!val!\c!vars!]
+  \inheritvalues
+    [\y!setupbodyfont]
+    []
+  \inheritvariables
+    [\y!setupbodyfont]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!showbodyfontenvironment]
+  \type
+    [\c!vals!]
+  \inheritvalues
+    [\y!setupbodyfont]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definebodyfont]
+  \type
+    [\c!vals!\c!val!\c!vars!]
+  \value
+    [5pt,...,12pt,\s!default]
+    []
+  \value
+    [\c!rm,\c!ss,\c!tt,\c!mm,\c!hw,\c!cg]
+    []
+  \variable [\c!tf] [\c!font!] []
+  \variable [\c!bf] [\c!font!] []
+  \variable [\c!sl] [\c!font!] []
+  \variable [\c!it] [\c!font!] []
+  \variable [\c!bs] [\c!font!] []
+  \variable [\c!bi] [\c!font!] []
+  \variable [\c!sc] [\c!font!] []
+  \variable [\c!ex] [\c!font!] []
+  \variable [\c!mi] [\c!font!] []
+  \variable [\c!sy] [\c!font!] []
+  \variable [\c!ma] [\c!font!] []
+  \variable [\c!mb] [\c!font!] []
+  \variable [\c!mc] [\c!font!] []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!showbodyfont]
+  \type
+    [\c!vals!]
+  \inheritvalues
+    [\y!setupbodyfont]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setupbodyfont]
+  \type
+    [\c!vals!]
+  \value
+    [\c!identifier!,
+     \v!serif,\v!regular,\v!roman,
+     \v!sans,\v!support,\v!sansserif,
+     \v!mono,\v!type,\v!teletype,
+     \v!handwritten,\v!calligraphic,
+     5pt,...,12pt]
+    [sau,ibm,12pt,\v!serif]
+\stopsetup
+
+% not yet multi lingual
+%
+% \startsetup
+%   \command
+%     [\y!switchstyleonly]
+%   \type
+%     [\c!val!]
+%   \value
+%     [\c!identifier!]
+%     []
+% \stopsetup
+
+\startsetup
+  \command
+    [\y!switchtobodyfont]
+  \type
+    [\c!vals!]
+  \value
+    [5pt,...,12pt,\v!klein,\v!groot,\v!globaal]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definefont]
+  \type
+    [\c!val!\c!val!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!font!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setupstrut]
+  \type
+    [\c!opt!\c!vals!]
+  \value
+    [\v!ja,\v!nee,\v!kap,\c!text!]
+    [\v!ja]
+\stopsetup
+
+% colo-ini
+
+\startsetup
+  \command
+    [\y!setupcolor]
+  \type
+    [\c!val!]
+  \value
+    [\c!identifier!]
+    [\v!rgb]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setupcolors]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!status]
+    [\v!start,\v!stop,\v!globaal,\v!lokaal]
+    [\v!stop]
+  \variable
+    [\c!conversie]
+    [\v!ja,\v!nee,\v!altijd]
+    [\v!ja]
+  \variable
+    [\c!reductie]
+    [\v!ja,\v!nee]
+    [\v!nee]
+  \variable
+    [\c!rgb]
+    [\v!ja,\v!nee]
+    [\v!ja]
+  \variable
+    [\c!cmyk]
+    [\v!ja,\v!nee]
+    [\v!ja]
+  \variable
+    [\c!mp\c!cmyk]
+    [\v!ja,\v!nee]
+    [\v!ja]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definecolor]
+  \type
+    [\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \variable
+    [\c!r]
+    [\c!text!]
+    [0]
+  \variable
+    [\c!g]
+    [\c!text!]
+    [0]
+  \variable
+    [\c!b]
+    [\c!text!]
+    [0]
+  \variable
+    [\c!c]
+    [\c!text!]
+    [0]
+  \variable
+    [\c!m]
+    [\c!text!]
+    [0]
+  \variable
+    [\c!y]
+    [\c!text!]
+    [0]
+  \variable
+    [\c!k]
+    [\c!text!]
+    [0]
+  \variable
+    [\c!s]
+    [\c!text!]
+    [0]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!startcolor]
+  \type
+    [\c!val!\c!stp!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!color]
+  \type
+    [\c!val!\c!arg!]
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!graycolor]
+  \type
+    [\c!val!]
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!showcolor]
+  \type
+    [\c!val!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definepalet]
+  \type
+    [\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \variable
+    [\c!identifier!]
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setuppalet]
+  \type
+    [\c!val!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definecolorgroup]
+  \type
+    [\c!val!\c!opt!\c!val!\c!vals!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\v!rgb,\v!cmyk,\v!grijs,\v!s]
+    [\v!rgb]
+  \value
+    [\c!trips!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!showpalet]
+  \type
+    [\c!val!\c!vals!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\v!horizontaal,\v!vertikaal,\v!naam,\v!waarde]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!showcolorgroup]
+  \type
+    [\c!val!\c!vals!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\v!horizontaal,\v!vertikaal,\v!naam,\v!waarde,\v!nummer]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!comparepalet]
+  \type
+    [\c!val!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!comparecolorgroup]
+  \type
+    [\c!val!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command [\y!showmakeup]
+  \type    []
+\stopsetup
+
+\doifmode{testrun}{\stopsetupfile}
+
+% core-ver
+
+\startsetup
+  \command
+    [\y!definetype]
+  \type
+    [\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \inheritvariables
+    [\y!setuptype]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setuptype]
+  \type
+    [\c!var!]
+  \variable
+    [\c!spatie]
+    [\v!aan,\v!uit]
+    [\v!uit]
+  \variable
+    [\c!optie]
+    [\v!schuin,\v!normaal,\v!geen]
+    [\v!geen]
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!type]
+  \variable
+    [\c!kleur]
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command [\y!type]
+  \type    [\c!arg!]
+  \value   [\c!text!][]
+\stopsetup
+
+\startsetup
+  \command [\y!typ]
+  \type    [\c!arg!]
+  \value   [\c!text!][]
+\stopsetup
+
+\startsetup
+  \command [\y!tex]
+  \type    [\c!arg!]
+  \value   [\c!text!][]
+\stopsetup
+
+\startsetup
+  \command [\y!arg]
+  \type    [\c!arg!]
+  \value   [\c!text!][]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definetyping]
+  \type
+    [\c!val!\c!vars!]
+  \value
+    [\v!file,\v!typen,\c!identifier!]
+    []
+  \inheritvariables
+    [\y!setuptyping]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setuptyping]
+  \type
+    [\c!opt!\c!val!\c!vars!]
+  \value
+    [\v!file,\v!typen,\c!identifier!]
+    []
+  \variable
+    [\c!spatie]
+    [\v!aan,\v!uit]
+    [\v!uit]
+  \variable
+    [\c!pagina]
+    [\v!ja,\v!nee]
+    [\v!ja]
+  \variable
+    [\c!optie]
+    [\v!schuin,\v!normaal,\v!commandos,\v!kleur,\v!geen]
+    [\v!geen]
+  \variable
+    [\c!tekst]
+    [\v!ja,\v!nee]
+    [\v!nee]
+  \variable
+    [i\c!commando]
+    [\c!command!]
+    [\ttsl]
+  \variable
+    [v\c!commando]
+    [\c!command!]
+    []
+  \variable
+    [c\c!commando]
+    [\c!command!]
+    [\tf]
+  \variable
+    [\c!voor]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [\c!na]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [\c!marge]
+    [\c!dimension!,\v!standaard]
+    [0pt]
+  \variable
+    [\c!evenmarge]
+    [\c!dimension!]
+    [0pt]
+  \variable
+    [\c!onevenmarge]
+    [\c!dimension!]
+    [0pt]
+  \variable
+    [\c!blanko]
+    [\c!dimension!,\v!klein,\v!middel,\v!groot,\v!standaard,\v!halveregel,\v!regel]
+    [\v!regel]
+  \variable
+    [\c!escape]
+    [\c!character!]
+    [/]
+  \variable
+    [\c!springvolgendein]
+    [\v!ja,\v!nee]
+    [\v!ja]
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!type]
+  \variable
+    [\c!kleur]
+    [\c!identifier!]
+    []
+  \variable
+    [\c!palet]
+    [\c!identifier!]
+    [colorpretty]
+\stopsetup
+
+\startsetup
+  \command
+    [\e!start\v!typen]
+  \type
+    [\c!stp!]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!typefile]
+  \type
+    [\c!opt!\c!arg!\c!arg!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!filename!]
+    []
+\stopsetup
+
+% core-not
+
+\startsetup
+  \command
+    [\y!setupfootnotes]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!conversie]
+    [\v!cijfers,\v!letters,\v!Letters,\v!romeins,\v!Romeins]
+    [\v!cijfers]
+  \variable
+    [\c!wijze]
+    [\v!per\v!tekst,\v!per\c!section!]
+    [\v!per\v!tekst]
+  \variable
+    [\c!plaats]
+    [\v!pagina,\v!tekst,\v!kolommen,\v!hoog]
+    [\v!pagina]
+  \variable
+    [\c!lijn]
+    [\v!aan,\v!uit]
+    [\v!uit]
+  \variable
+    [\c!voor]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [\c!na]
+    [\c!command!]
+    []
+  \variable
+    [\c!breedte]
+    [\c!dimension!]
+    []
+  \variable
+    [\c!hoogte]
+    [\c!dimension!]
+    []
+  \variable
+    [\c!korps]
+    [5pt,...,12pt,\v!klein,\v!groot]
+    [\v!klein]
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!normaal]
+  \variable
+    [\c!afstand]
+    [\c!dimension!]
+    [.125em]
+  \variable
+    [\c!kolomafstand]
+    [\c!dimension!]
+    [1em]
+  \variable
+    [\c!margeafstand]
+    [\c!dimension!]
+    [.5em]
+  \variable
+    [\c!n]
+    [\c!number!]
+    [1]
+  \variable
+    [\c!nummercommando]
+    [\c!oneargument!]
+    []
+  \inheritvariables
+    [\y!framed]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setupfootnotedefinition]
+  \type
+    [\c!vars!]
+  \inheritvariables
+    [\y!doordefinieren]
+    []
+\stopsetup
+
+\startsetup
+  \command[\y!footnote]
+  \type[\c!opt!\c!ref!\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!footnotetext]
+  \type[\c!opt!\c!ref!\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!note]
+  \type[\c!optint!\c!ref!]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!startlocalfootnotes]
+  \type
+    [\c!stp!]
+  \inheritvariables
+    [\y!setupfootnotes]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!placelocalfootnotes]
+  \type
+    [\c!opt!\c!vars!]
+  \inheritvariables
+    [\y!setupfootnotes]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!placefootnotes]
+  \type
+    [\c!opt!\c!vars!]
+  \inheritvariables
+    [\y!setupfootnotes]
+    []
+\stopsetup
+
+% core-fnt / core-con
+
+\startsetup
+  \command
+    [\y!setupunderbar]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!variant]
+    [a,b,c]
+    [a]
+  \variable
+    [\c!lijndikte]
+    [\c!dimension!]
+    [\lijndikte]
+  \variable
+    [\c!onderoffset]
+    [\c!dimension!]
+    [1.5pt]
+  \variable
+    [\c!bovenoffset]
+    [\c!dimension!]
+    [2.5pt]
+\stopsetup
+
+\startsetup
+  \command[\y!underbar]
+  \type[\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!underbars]
+  \type[\c!wrds!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!overbar]
+  \type[\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!overbars]
+  \type[\c!wrds!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!overstrike]
+  \type[\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!overstrikes]
+  \type[\c!wrds!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!romannumerals]
+  \type[\c!arg!]
+  \value[\c!number!][]
+\stopsetup
+
+\startsetup
+  \command[\y!Romannumerals]
+  \type[\c!arg!]
+  \value[\c!number!][]
+\stopsetup
+
+\startsetup
+  \command[\y!numbers]
+  \type[\c!arg!]
+  \value[\c!number!][]
+\stopsetup
+
+\startsetup
+  \command[\y!character]
+  \type[\c!arg!]
+  \value[\c!number!][]
+\stopsetup
+
+\startsetup
+  \command[\y!Character]
+  \type[\c!arg!]
+  \value[\c!number!][]
+\stopsetup
+
+\startsetup
+  \command[\y!characters]
+  \type[\c!arg!]
+  \value[\c!number!][]
+\stopsetup
+
+\startsetup
+  \command[\y!Characters]
+  \type[\c!arg!]
+  \value[\c!number!][]
+\stopsetup
+
+\startsetup
+  \command[\v!mediaeval] % geen \y!mediaeval
+  \type[\c!arg!]
+  \value[\c!number!][]
+\stopsetup
+
+\startsetup
+  \command[\y!month]
+  \type[\c!arg!]
+  \value[\c!number!][]
+\stopsetup
+
+\startsetup
+  \command[\y!MONTH]
+  \type[\c!arg!]
+  \value[\c!number!][]
+\stopsetup
+
+\startsetup
+  \command[\y!weekday]
+  \type[\c!arg!]
+  \value[\c!number!][]
+\stopsetup
+
+\startsetup
+  \command[\y!WEEKDAY]
+  \type[\c!arg!]
+  \value[\c!number!][]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setupcapitals]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!titel]
+    [\v!ja,\v!nee]
+    [\v!ja]
+  \variable
+    [\c!sc]
+    [\v!ja,\v!nee]
+    [\v!nee]
+\stopsetup
+
+\startsetup
+  \command[\y!kap]
+  \type[\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!nokap]
+  \type[\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!KAP]
+  \type[\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!Kap]
+  \type[\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!Kaps]
+  \type[\c!wrds!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!WORD]
+  \type[\c!wrd!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!WORDS]
+  \type[\c!wrds!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!Word]
+  \type[\c!wrd!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!Words]
+  \type[\c!wrds!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!stretched]
+  \type[\c!wrd!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definesymbol]
+  \type
+    [\c!val!\c!val!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definefiguresymbol]
+  \type
+    [\c!val!\c!val!\c!opt!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!text!]
+    []
+  \inheritvariables
+    [\y!externalfigure]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!symbol]
+  \type
+    [\c!opt!\c!val!\c!val!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!startsymbolset]
+  \type
+    [\c!val!\c!stp!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setupsymbolset]
+  \type
+    [\c!val!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!usesymbols]
+  \type
+    [\c!val!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!showsymbolset]
+  \type
+    [\c!val!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!defineconversion]
+  \type
+    [\c!val!\c!val!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!command!,\c!text!] % eigenlijk texts
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!convertnumber]
+  \type
+    [\c!arg!\c!arg!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!number!]
+    []
+\stopsetup
+
+% lang-lab
+
+\startsetup
+  \command
+    [\y!setupheadtext]
+  \type
+    [\c!opt!\c!val!\c!var!]
+  \value
+    [\s!nl,\s!fr,\s!en,\s!uk,\s!de,\s!es,\s!cz,..]
+    [\s!nl]
+  \variable
+    [\c!identifier!]
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setuplabeltext]
+  \type
+    [\c!opt!\c!val!\c!var!]
+  \value
+    [\s!nl,\s!fr,\s!en,\s!uk,\s!de,\s!es,\s!cz,..]
+    [\s!nl]
+  \variable
+    [\c!identifier!]
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command[\y!headtext]
+  \type[\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!labeltext]
+  \type[\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+% core-rul
+
+\startsetup
+  \command
+    [\y!setupmarginrules]
+  \type
+    [\c!var!]
+  \variable
+    [\c!niveau]
+    [\c!number!]
+    [1]
+  \variable
+    [\c!dikte]
+    [\c!dimension!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!startmarginrule]
+  \type
+    [\c!val!\c!stp!]
+  \value
+    [\c!number!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!marginrule]
+  \type
+    [\c!val!\c!arg!]
+  \value
+    [\c!number!]
+    []
+\stopsetup
+
+% \startsetup
+%   \command
+%     [\y!setuprules]
+%   \type
+%     [\c!var!]
+%   \variable
+%     [\c!dikte]
+%     [\v!klein,\v!middel,\v!groot,\c!dimension!]
+%     [\v!middel]
+%   \variable
+%     [\c!voor]
+%     [\c!command!]
+%     []
+%   \variable
+%     [\c!na]
+%     [\c!command!]
+%     []
+% \stopsetup
+
+\startsetup
+  \command
+    [\y!setuplinewidth]
+  \type
+    [\c!val!]
+  \value
+    [\c!dimension!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setupframed]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!hoogte]
+    [\v!passend,\v!ruim,\c!dimension!]
+    [\v!ruim]
+  \variable
+    [\c!breedte]
+    [\v!passend,\v!ruim,\c!dimension!]
+    [\v!ruim]
+  \variable
+    [\c!offset]
+    [\v!geen,\v!overlay,\v!default,\c!dimension!]
+    [1em]
+  \variable
+    [\c!plaats]
+    [\v!laag,\v!diepte]
+    []
+  \variable
+    [\c!optie]
+    [\v!geen,\v!leeg]
+    [\v!geen]
+  \variable
+    [\c!strut]
+    [\v!ja,\v!nee]
+    [\v!ja]
+  \variable
+    [\c!uitlijnen]
+    [\v!nee,\v!links,\v!rechts,\v!midden,\v!normaal,\v!hoog,\v!laag,\v!laho]
+    [\v!nee]
+  \variable
+    [\c!onder]
+    [\c!command!]
+    [\vss]
+  \variable
+    [\c!boven]
+    [\c!command!]
+    []
+  \variable
+    [\c!kader]
+    [\v!aan,\v!uit,\v!overlay]
+    [\v!aan]
+  \variable
+    [\c!bovenkader]
+    [\v!aan,\v!uit]
+    [\v!uit]
+  \variable
+    [\c!onderkader]
+    [\v!aan,\v!uit]
+    [\v!uit]
+  \variable
+    [\c!linkerkader]
+    [\v!aan,\v!uit]
+    [\v!uit]
+  \variable
+    [\c!rechterkader]
+    [\v!aan,\v!uit]
+    [\v!uit]
+  \variable
+    [\c!kaderoffset]
+    [\c!dimension!]
+    [0pt]
+  \variable
+    [\c!kaderdiepte]
+    [\c!dimension!]
+    [0pt]
+  \variable
+    [\c!kaderhoek]
+    [\v!rond,\v!recht]
+    [\v!recht]
+  \variable
+    [\c!kaderstraal]
+    [\c!dimension!]
+    [.5\korpsgrootte]
+  \variable
+    [\c!kaderkleur]
+    [\c!identifier!]
+    []
+  \variable
+    [\c!achtergrond]
+    [\v!raster,\v!kleur,\v!geen,\v!voorgrond,\c!identifier!]
+    [\v!geen]
+  \variable
+    [\c!achtergrondraster]
+    [\c!number!]
+    [0.9]
+  \variable
+    [\c!achtergrondkleur]
+    [\c!identifier!]
+    []
+  \variable
+    [\c!achtergrondoffset]
+    [\v!kader,\c!dimension!]
+    [0pt]
+  \variable
+    [\c!achtergronddiepte]
+    [\c!dimension!]
+    [0pt]
+  \variable
+    [\c!achtergrondhoek]
+    [\v!rond,\v!recht]
+    [\v!recht]
+  \variable
+    [\c!achtergrondstraal]
+    [\c!dimension!]
+    [.5\korpsgrootte]
+  \variable
+    [\c!diepte]
+    [\c!dimension!]
+    [0pt]
+  \variable
+    [\c!hoek]
+    [\v!rond,\v!recht]
+    [\v!recht]
+  \variable
+    [\c!straal]
+    [\c!dimension!]
+    [.5\korpsgrootte]
+  \variable
+    [\c!leeg]
+    [\v!ja,\v!nee]
+    [\v!nee]
+  \variable
+    [\c!voorgrondkleur]
+    [\c!identifier!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!framed]
+  \type
+    [\c!opt!\c!vars!\c!arg!]
+  \inheritvariables
+    [\y!setupframed]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!inframed]
+  \type
+    [\c!opt!\c!vars!\c!arg!]
+  \inheritvariables
+    [\y!setupframed]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!thinrules]
+  \type
+    [\c!opt!\c!var!]
+  \inheritvariables
+    [\y!setupthinrules]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setupthinrules]
+  \type
+    [\c!var!]
+  \variable
+    [\c!interlinie]
+    [\v!klein,\v!middel,\v!groot]
+    [\v!klein]
+  \variable
+    [\c!n]
+    [\c!number!]
+    [3]
+  \variable
+    [\c!voor]
+    [\c!command!]
+    []
+  \variable
+    [\c!na]
+    [\c!command!]
+    []
+\stopsetup
+
+\startsetup
+  \command[\y!hairline]
+  \type[]
+\stopsetup
+
+\startsetup
+  \command[\y!thinrule]
+  \type[]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!defineframedtext]
+  \type
+    [\c!val!\c!opt!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \inheritvariables
+    [\y!setupframedtexts]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!defineframed]
+  \type
+    [\c!val!\c!opt!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \inheritvariables
+    [\y!setupframedtexts]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setupframedtexts]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!korps]
+    [5pt,...,12pt,\v!klein,\v!groot]
+    []
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!klein...,\c!command!] % \v!kap
+    [\v!vet]
+  \variable
+    [\c!links]
+    [\c!command!]
+    [\hfill]
+  \variable
+    [\c!rechts]
+    [\c!command!]
+    [\hfill]
+  \variable
+    [\c!voor]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [\c!na]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [\c!binnen]
+    [\c!command!]
+    []
+  \variable   
+    [\c!regelcorrectie]
+    [\v!aan,\v!uit]
+    [\v!aan]
+  \variable   
+    [\c!dieptecorrectie]
+    [\v!aan,\v!uit]
+    [\v!aan]
+  \variable
+    [\c!marge]
+    [\v!standaard,\v!ja,\v!nee]
+    [\v!standaard]
+  \inheritvariables
+    [\y!setupframed]
+    []
+\stopsetup
+
+% \startsetup
+%   \command
+%     [\y!startframedtext]
+%   \type
+%     [\c!opt!\c!val!\c!opt!\c!vars!\c!stp!]
+%   \value
+%     [\v!links,\v!rechts,\v!midden]
+%     []
+%   \inheritvariables
+%     [\y!setupframedtexts]
+%     []
+% \stopsetup
+
+\startsetup
+  \command
+    [\e!start<<\y!framedtext>>]
+  \type
+    [\c!opt!\c!val!\c!opt!\c!vars!\c!stp!]
+  \value
+    [\v!links,\v!rechts,\v!midden]
+    []
+  \inheritvariables
+    [\y!setupframedtexts]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [<<\y!framedtext>>]
+  \type
+    [\c!opt!\c!vars!]
+  \inheritvariables
+    [\y!setupframedtexts]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!startbackground]
+  \type
+    [\c!stp!]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!background]
+  \type
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setupbackground]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!linkeroffset]
+    [\c!dimension!]
+    [.5\korpsgrootte]
+  \variable
+    [\c!rechteroffset]
+    [\c!dimension!]
+    [.5\korpsgrootte]
+  \variable
+    [\c!bovenoffset]
+    [\c!dimension!]
+    [0pt]
+  \variable
+    [\c!onderoffset]
+    [\c!dimension!]
+    [0pt]
+  \variable
+    [\c!voor]
+    [\c!command!]
+    []
+  \variable
+    [\c!na]
+    [\c!command!]
+    []
+  \variable
+    [\c!status]
+    [\v!start,\v!stop]
+    [\v!start]
+  \inheritvariables
+    [\y!setupframed]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!fillinrules]
+  \type
+    [\c!opt!\c!vars!\c!arg!\c!opt!\c!arg!]
+  \inheritvariables
+    [\y!setupfillinrules]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!fillintext]
+  \type
+    [\c!opt!\c!vars!\c!arg!\c!opt!\c!arg!\c!par!]
+  \inheritvariables
+    [\y!setupfillinrules]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setupfillinrules]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!breedte]
+    [\v!passend,\v!ruim,\c!dimension!]
+    [\v!ruim]
+  \variable
+    [\c!afstand]
+    [\c!dimension!]
+    [1em]
+  \variable
+    [\c!voor]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [\c!na]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!normaal]
+  \variable
+    [\c!n]
+    [\c!number!]
+    [1]
+  \variable
+    [\c!interlinie]
+    [\v!klein,\v!middel,\v!groot]
+    [\v!klein]
+  \variable
+    [\c!scheider]
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!fillinline]
+  \type
+    [\c!opt!\c!vars!\c!nop!\c!par!]
+  \inheritvariables
+    [\y!setupfillinlines]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setupfillinlines]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!breedte]
+    [\c!dimension!]
+    [3cm]
+  \variable
+    [\c!marge]
+    [\c!dimension!]
+    [3cm]
+  \variable
+    [\c!afstand]
+    [\c!dimension!]
+    [1em]
+  \variable
+    [\c!voor]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [\c!na]
+    [\c!command!]
+    [\blanko]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setuptextrules]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!plaats]
+    [\v!links,\v!inmarge]
+    [\v!links]
+  \variable
+    [\c!voor]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [\c!na]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [\c!tussen]
+    [\c!command!]
+    []
+  \variable
+    [\c!breedte]
+    [\c!dimension!]
+    [2em]
+  \variable
+    [\c!afstand]
+    [\c!dimension!]
+    [2em]
+  \variable
+    [\c!korps]
+    [5pt,...,12pt,\v!klein,\v!groot]
+    []
+  \variable
+    [\c!kleur]
+    [\c!identifier!]
+    []
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!vet]
+  \variable
+    [\c!lijnkleur]
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!textrule]
+  \type
+    [\c!opt!\c!val!\c!opt!\c!arg!]
+  \value
+    [\v!boven,\v!onder]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!starttextrule]
+  \type
+    [\c!opt!\c!val!\c!opt!\c!arg!\c!stp!]
+  \value
+    [\v!boven,\v!onder]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!blackrule]
+  \type
+    [\c!opt!\c!vars!]
+  \inheritvariables
+    [\y!setupblackrules]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!blackrules]
+  \type
+    [\c!vars!]
+  \inheritvariables
+    [\y!setupblackrules]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setupblackrules]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!breedte]
+    [\c!dimension!,\v!max]
+    [1.5em]
+  \variable
+    [\c!hoogte]
+    [\c!dimension!,\v!max]
+    [1ex]
+  \variable
+    [\c!diepte]
+    [\c!dimension!,\v!max]
+    [0pt]
+  \variable
+    [\c!variant]
+    [\c!a,\c!b]
+    [\c!a]
+  \variable
+    [\c!afstand]
+    [\c!dimension!]
+    [.25ex]
+  \variable
+    [\c!n]
+    [\c!number!]
+    [3]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!defineoverlay]
+  \type
+    [\c!vals!\c!val!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!command!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!usemodule]
+  \type
+    [\c!vals!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command[\y!reset]
+  \type[\c!vals!]
+  \value[\c!identifier!][]
+\stopsetup
+
+\startsetup
+  \command[\y!geentest]
+  \type[]
+\stopsetup
+
+\startsetup
+  \command[\y!startdeelomgeving]
+  \type[\c!stp!]
+\stopsetup
+
+\startsetup % gebied, korps
+  \command
+    [\y!setupsystem]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!resolutie]
+    [\c!number!]
+    []
+  \variable
+    [\c!file]
+    [\c!text!]
+    [\jobname]
+  \variable
+    [\c!gebied]
+    [\c!text!]
+    []
+  \variable
+    [\c!willekeur]
+    [\v!normaal,\v!klein,\v!middel,\v!groot,\c!number!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!usepath]
+  \type
+    [\c!vals!]
+  \value
+    [\c!identifier!,\v!reset]
+    [.]
+\stopsetup
+
+\startsetup
+  \command[\y!low]
+  \type[\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!high]
+  \type[\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!lohi]
+  \type[\c!arg!\c!arg!]
+  \value[\c!text!][]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!toonkader]
+  \type
+    [\c!opt!\c!val!]
+  \value
+    [\v!tekst,\v!marge,\v!rand]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!toonopbouw]
+  \type
+    []
+\stopsetup
+
+\startsetup
+  \command[\y!regellinks]
+  \type[\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!regelrechts]
+  \type[\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!regelmidden]
+  \type[\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!woordrechts]
+  \type[\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!inmarge]
+  \type[\c!opt!\c!val!\c!opt!\c!ref!\c!arg!]
+  \value[+,-,\v!laag][]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!inanderemarge]
+  \type[\c!opt!\c!val!\c!opt!\c!ref!\c!arg!]
+  \value[+,-,\v!laag][]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!inlinker]
+  \type[\c!opt!\c!val!\c!opt!\c!ref!\c!arg!]
+  \value[+,-,\v!laag][]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!inrechter]
+  \type[\c!opt!\c!val!\c!opt!\c!ref!\c!arg!]
+  \value[+,-,\v!laag][]
+  \value[\c!text!][]
+\stopsetup
+
+%\startsetup
+%  \command[\y!oplinker]
+%  \type[\c!arg!]
+%  \value[\c!text!][]
+%\stopsetup
+
+\startsetup
+  \command[\y!kolom]
+  \type[]
+\stopsetup
+
+\startsetup
+  \command[\y!toonstruts]
+  \type[]
+\stopsetup
+
+\startsetup
+  \command[\y!tooninstellingen]
+  \type[]
+\stopsetup
+
+\startsetup
+  \command[\y!toonlayout]
+  \type[]
+\stopsetup
+
+% \startsetup
+%   \command[\y!margetitel]
+%   \type[\c!opt!\c!val!\c!opt!\c!ref!\c!arg!]
+%   \value[+,-,\v!laag][]
+%   \value[\c!text!][]
+% \stopsetup
+
+% \startsetup
+%   \command[\y!margewoord]
+%   \type[\c!opt!\c!val!\c!opt!\c!ref!\c!arg!]
+%   \value[+,-,\v!laag][]
+%   \value[\c!text!][]
+% \stopsetup
+
+\startsetup
+  \command[\y!margetekst]
+  \type[\c!opt!\c!val!\c!opt!\c!ref!\c!arg!]
+  \value[+,-,\v!laag][]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelmargeblokkenin]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!plaats]
+    [\v!inmarge,\v!links,\v!midden,\v!rechts]
+    [\v!inmarge]
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!normaal]
+  \variable
+    [\c!breedte]
+    [\c!dimension!]
+    []
+  \variable
+    [\c!uitlijnen]
+    [\v!links,\v!midden,\v!rechts,\v!nee]
+    []
+  \variable
+    [\c!boven]
+    [\c!command!]
+    []
+  \variable
+    [\c!tussen]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [\c!onder]
+    [\c!command!]
+    [\vfill]
+  \variable
+    [\c!links]
+    [\c!command!]
+    []
+  \variable
+    [\c!rechts]
+    [\c!command!]
+    []
+  \variable
+    [\c!voor]
+    [\c!command!]
+    []
+  \variable
+    [\c!na]
+    [\c!command!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!startmargeblok]
+  \type
+    [\c!stp!]
+\stopsetup
+
+\startsetup
+  \command[\v!deel]
+  \type[\c!opt!\c!refs!\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\v!titel]
+  \type[\c!opt!\c!refs!\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\v!hoofdstuk]
+  \type[\c!opt!\c!refs!\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\v!paragraaf]
+  \type[\c!opt!\c!refs!\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\v!sub\v!paragraaf]
+  \type[\c!opt!\c!refs!\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\v!sub\v!sub\v!paragraaf]
+  \type[\c!opt!\c!refs!\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\v!onderwerp]
+  \type[\c!opt!\c!refs!\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\v!sub\v!onderwerp]
+  \type[\c!opt!\c!refs!\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\v!sub\v!sub\v!onderwerp]
+  \type[\c!opt!\c!refs!\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\v!bijlage]
+  \type[\c!opt!\c!refs!\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!in]
+  \type[\c!optint!\c!arg!\c!optint!\c!arg!\c!ref!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!op]
+  \type[\c!optint!\c!arg!\c!optint!\c!arg!\c!ref!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!over]
+  \type[\c!optint!\c!arg!\c!ref!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!somewhere]
+  \type[\c!arg!\c!arg!\c!ref!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!atpage]
+  \type[\c!ref!]
+\stopsetup
+
+\startsetup
+  \command[\y!ref]
+  \type[\c!val!\c!ref!]
+  \value[t,p,r,s,e][]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!textreference]
+  \type[\c!ref!\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!pagereference]
+  \type[\c!ref!]
+\stopsetup
+
+\startsetup
+  \command[\y!reference]
+  \type[\c!ref!\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!usereferences]
+  \type[\c!vals!]
+  \value[\c!filename!][]
+\stopsetup
+
+\startsetup
+  \command[\y!definereference]
+  \type[\c!val!\c!refs!]
+  \value[\c!identifier!][]
+%  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definereferenceformat]
+  \type
+    [\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \variable
+    [\c!links]
+    [\c!text!]
+    []
+  \variable
+    [\c!rechts]
+    [\c!text!]
+    []
+  \variable
+    [\c!tekst]
+    [\c!text!]
+    []
+  \variable
+    [\c!label]
+    [\c!identifier!]
+    []
+\stopsetup
+
+% rudiment
+%
+% \startsetup
+%   \command[\y!definieerhbox]
+%   \type[\c!val!\c!val!]
+%   \value[\c!identifier!][]
+%   \value[\c!number!][]
+% \stopsetup
+
+\startsetup
+  \command[\y!hl]
+  \type[\c!val!]
+  \value[\c!number!][]
+\stopsetup
+
+\startsetup
+  \command[\y!vl]
+  \type[\c!val!]
+  \value[\c!number!][]
+\stopsetup
+
+\startsetup
+  \command[\y!omlaag]
+  \type[\c!val!]
+  \value[\c!dimension!][]
+\stopsetup
+
+\startsetup
+  \command[\y!witruimte]
+  \type[]
+\stopsetup
+
+\startsetup
+  \command[\y!geenwitruimte]
+  \type[]
+\stopsetup
+
+\startsetup
+  \command[\y!crlf]
+  \type[]
+\stopsetup
+
+\startsetup
+  \command[\y!space]
+  \type[]
+\stopsetup
+
+\startsetup
+  \command[\y!fixedspaces]
+  \type[]
+\stopsetup
+
+\startsetup
+  \command[\y!nospace]
+  \type[]
+\stopsetup
+
+\startsetup
+  \command[\y!opelkaar]
+  \type[]
+\stopsetup
+
+\startsetup
+  \command[\y!herhaal]
+  \type[\c!val!]
+  \value[\c!repeat!\c!text!][]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!steldoordefinierenin]
+  \type
+    [\c!opt!\c!vals!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \variable
+    [\c!kopletter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!vet]
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!normaal]
+  \variable
+    [\c!kleur]
+    [\c!identifier!]
+    []
+  \variable
+    [\c!breedte]
+    [\v!passend,\v!ruim,\c!dimension!]
+    [8em]
+  \variable
+    [\c!afstand]
+    [\c!dimension!]
+    [0pt]
+  \variable
+    [\c!monster]
+    [\c!text!]
+    []
+  \variable
+    [\c!tekst]
+    [\c!text!]
+    []
+  \variable
+    [\c!uitlijnen]
+    [\v!links,\v!midden,\v!rechts]
+    []
+  \variable
+    [\c!marge]
+    [\v!standaard,\v!ja,\v!nee,\c!dimension!]
+    []
+  \variable
+    [\c!plaats]
+    [\v!links,\v!rechts,\v!boven,\v!aanelkaar,
+     \v!inmarge,\v!inlinker,\v!inrechter,\v!hangend]
+    [\v!links]
+  \variable
+    [\c!hang]
+    [\v!passend,\v!ruim,\c!number!]
+    []
+  \variable
+    [\c!voor]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [\c!tussen]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [\c!na]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [\c!springvolgendein]
+    [\v!ja,\v!nee]
+    [\v!ja]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!steldoornummerenin]
+  \type
+    [\c!opt!\c!vals!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \inheritvariables
+    [\y!doordefinieren]
+    []
+  \variable
+    [\c!plaats]
+    [\v!links,\v!rechts,\v!boven,\v!aanelkaar,
+     \v!inmarge,\v!inlinker,\v!inrechter,\v!hangend]
+    [\v!boven]
+  \variable
+    [\c!tekst]
+    [\c!text!]
+    []
+  \variable
+    [\c!niveaus]
+    [\c!number!]
+    [3]
+  \variable
+    [\c!conversie]
+    [\v!cijfers,\v!letters,\v!Letters,\v!romeins,\v!Romeins]
+    [\v!cijfers]
+  \variable
+    [\c!wijze]
+    [\v!per\v!tekst,\v!per\c!section!]
+    [\v!per\v!tekst]
+  \variable
+    [\c!blokwijze]
+    [\v!ja,\v!nee]
+    [\v!ja]
+  \variable
+    [\c!sectienummer]
+    [\v!ja,\v!nummer,\v!nee]
+    []
+  \variable
+    [\c!scheider]
+    [\c!text!]
+    [.]
+  \variable
+    [\c!afsluiter]
+    [\c!text!]
+    []
+  \variable
+    [\c!koppeling]
+    [\c!identifier!]
+    []
+  \variable
+    [\c!koppelwijze]
+    [\v!globaal,\v!lokaal]
+    [\v!lokaal]
+  \variable
+    [\c!nummer]
+    [\v!nee,\c!identifier!]
+    []
+  \variable
+    [\c!titeluitlijnen]
+    [\v!nee,\v!ja]
+    [\v!ja]
+  \variable
+    [\c!start]
+    [\c!number!]
+    [0]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!doornummeren]
+  \type
+    [\c!vals!\c!opt!\c!val!\c!opt!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!identifier!]
+    []
+  \inheritvariables
+    [\y!steldoornummerenin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [<<\y!doornummering>>]
+  \type
+    [\c!optint!\c!nop!\c!par!]
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\e!start<<\y!doornummering>>]
+  \type
+    [\c!stp!]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!doordefinieren]
+  \type
+    [\c!val!\c!opt!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \inheritvariables
+    [\y!steldoordefinierenin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [<<\y!doordefinitie>>]
+  \type
+    [\c!arg!\c!nop!\c!par!]
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\e!start<<\y!doordefinitie>>]
+  \type
+    [\c!arg!\c!stp!]
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!steldoorspringenin]
+  \type
+    [\c!opt!\c!vals!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!normaal]
+  \variable
+    [\c!kopletter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!normaal]
+  \variable
+    [\c!breedte]
+    [\v!passend,\c!dimension!]
+    [\v!passend]
+  \variable
+    [\c!tekst]
+    [\c!text!]
+    []
+  \variable
+    [\c!monster]
+    [\c!text!]
+    []
+  \variable
+    [\c!voor]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [\c!na]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [\c!afstand]
+    [\c!dimension!]
+    [1em]
+  \variable
+    [\c!scheider]
+    [\c!text!]
+    [{:}]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!doorspringen]
+  \type
+    [\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \inheritvariables
+    [\y!steldoorspringenin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [<<\y!doorsprong>>]
+  \type
+    [\c!nop!\c!par!]
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!doorlabelen]
+  \type
+    [\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \variable
+    [\c!tekst]
+    [\c!text!]
+    []
+  \variable
+    [\c!plaats]
+    [\v!inmarge,\v!intekst]
+    [\v!intekst]
+  \variable
+    [\c!wijze]
+    [\v!per\v!tekst,\v!per\c!section!]
+    [\v!per\v!hoofdstuk]
+  \variable
+    [\c!blokwijze]
+    [\v!ja,\v!nee]
+    [\v!ja]
+  \variable
+    [\c!kopletter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    []
+  \variable
+    [\c!kopkleur]
+    [\c!identifier!]
+    []
+  \variable
+    [\c!voor]
+    [\c!command!]
+    []
+  \variable
+    [\c!na]
+    [\c!command!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [<<\y!doorlabel>>]
+  \type
+    [\c!opt!\c!ref!]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelkolommenin]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!n]
+    [\c!number!]
+    [2]
+  \variable
+    [\c!nboven]
+    [\c!number!]
+    [1]
+  \variable
+    [\c!lijn]
+    [\v!aan,\v!uit]
+    [\v!uit]
+  \variable
+    [\c!hoogte]
+    [\c!dimension!]
+    []
+  \variable
+    [\c!tolerantie]
+    [\v!zeerstreng,\v!streng,\v!soepel,\v!zeersoepel,\v!rek]
+    [\v!soepel]
+  \variable
+    [\c!afstand]
+    [\c!dimension!]
+    [1.5em]
+  \variable
+    [\c!balanceren]
+    [\v!ja,\v!nee]
+    [\v!ja]
+  \variable
+    [\c!uitlijnen]
+    [\v!ja,\v!nee,\v!tekst]
+    [\v!tekst]
+  \variable
+    [\c!blanko]
+    [\v!vast,\v!halveregel,\v!regel,\v!flexibel,\v!groot,\v!middel,\v!klein]
+    [\v!vast,\v!regel]
+  \variable
+    [\c!optie]
+    [\v!achtergrond]
+    []
+  \variable
+    [\c!richting]
+    [\v!links,\v!rechts]
+    [\v!rechts]
+  \inheritvariables
+    [\y!setupframed]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!startkolommen]
+  \type
+    [\c!opt!\c!vars!\c!stp!]
+  \inheritvariables
+    [\y!stelkolommenin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definieertekst]
+  \type
+    [\c!val!\c!val!\c!val!\c!opt!\c!val!\c!opt!\c!val!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\v!hoofd,\v!voet]
+    []
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelhoofdin]
+  \type
+    [\c!opt!\c!val!\c!vars!]
+  \value
+    [\v!tekst,\v!marge,\v!rand]
+    [\v!tekst]
+  \variable
+    [\c!status]
+    [\v!normaal,\v!stop,\v!start,\v!leeg,\v!hoog,\v!geen,
+     \v!geenmarkering,\c!identifier!]
+    [\v!normaal]
+  \variable
+    [\c!strut]
+    [\v!ja,\v!nee]
+    [\v!ja]
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!vet]
+  \variable
+    [\c!linkerletter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!vet]
+  \variable
+    [\c!rechterletter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!vet]
+  \variable
+    [\c!linkerbreedte]
+    [\c!dimension!]
+    []
+  \variable
+    [\c!rechterbreedte]
+    [\c!dimension!]
+    []
+  \variable
+    [\c!voor]
+    [\c!command!]
+    []
+  \variable
+    [\c!na]
+    [\c!command!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelvoetin]
+  \type
+    [\c!opt!\c!val!\c!vars!]
+  \inheritvalues
+    [\y!stelhoofdin]
+    []
+  \inheritvariables
+    [\y!stelhoofdin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!steltekstin]
+  \type
+    [\c!opt!\c!val!\c!vars!]
+  \inheritvalues
+    [\y!stelhoofdin]
+    []
+  \inheritvariables
+    [\y!stelhoofdin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelbovenin]
+  \type
+    [\c!opt!\c!val!\c!vars!]
+  \inheritvalues
+    [\y!stelhoofdin]
+    []
+  \inheritvariables
+    [\y!stelhoofdin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelonderin]
+  \type
+    [\c!opt!\c!val!\c!vars!]
+  \inheritvalues
+    [\y!stelhoofdin]
+    []
+  \inheritvariables
+    [\y!stelhoofdin]
+    []
+\stopsetup
+
+\startsetup
+  \command[\y!geenhoofdenvoetregels]
+  \type[]
+\stopsetup
+
+\startsetup
+  \command[\y!geenbovenenonderregels]
+  \type[]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelhoofdtekstenin]
+  \type
+    [\c!opt!\c!val!\c!val!\c!val!]
+  \value
+    [\v!tekst,\v!marge,\v!rand]
+    [\v!tekst]
+  \value
+    [\c!text!,\c!section!,\v!datum,\c!marker!,\v!paginanummer]
+    []
+  \value
+    [\c!text!,\c!section!,\v!datum,\c!marker!,\v!paginanummer]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelvoettekstenin]
+  \type
+    [\c!opt!\c!val!\c!val!\c!val!]
+  \value
+    [\v!tekst,\v!marge,\v!rand]
+    [\v!tekst]
+  \value
+    [\c!text!,\c!section!,\v!datum,\c!marker!,\v!paginanummer]
+    []
+  \value
+    [\c!text!,\c!section!,\v!datum,\c!marker!,\v!paginanummer]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelteksttekstenin]
+  \type
+    [\c!opt!\c!val!\c!val!\c!val!]
+  \value
+    [\v!tekst,\v!marge,\v!rand]
+    [\v!tekst]
+  \value
+    [\c!text!,\c!section!,\v!datum,\c!marker!,\v!paginanummer]
+    []
+  \value
+    [\c!text!,\c!section!,\v!datum,\c!marker!,\v!paginanummer]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelboventekstenin]
+  \type
+    [\c!opt!\c!val!\c!val!\c!val!]
+  \value
+    [\v!tekst,\v!marge,\v!rand]
+    [\v!tekst]
+  \value
+    [\c!text!,\c!section!,\v!datum,\c!marker!,\v!paginanummer]
+    []
+  \value
+    [\c!text!,\c!section!,\v!datum,\c!marker!,\v!paginanummer]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelondertekstenin]
+  \type
+    [\c!opt!\c!val!\c!val!\c!val!]
+  \value
+    [\v!tekst,\v!marge,\v!rand]
+    [\v!tekst]
+  \value
+    [\c!text!,\c!section!,\v!datum,\c!marker!,\v!paginanummer]
+    []
+  \value
+    [\c!text!,\c!section!,\v!datum,\c!marker!,\v!paginanummer]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definieermarkering]
+  \type
+    [\c!val!\c!opt!\c!val!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!koppelmarkering]
+  \type
+    [\c!val!\c!val!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!ontkoppelmarkering]
+  \type
+    [\c!val!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!resetmarkering]
+  \type
+    [\c!val!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelmarkeringin]
+  \type
+    [\c!val!\c!var!]
+  \value
+    [\c!identifier!]
+    []
+  \variable
+    [\c!status]
+    [\v!start,\v!stop]
+    [\v!start]
+  \variable
+    [\c!scheider]
+    [\c!command!]
+    [---]
+  \variable
+    [\c!expansie]
+    [\v!ja,\v!nee]
+    [\v!nee]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!marking]
+  \type
+    [\c!val!\c!arg!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!haalmarkering]
+  \type
+    [\c!val!\c!val!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\v!eerste,\v!laatste,\v!vorige,\v!beide,\v!alles]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!geenmarkering]
+  \type
+    [\c!arg!]
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stellayoutin]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!breedte]
+    [\c!dimension!,\v!passend,\v!midden]
+    [15cm]
+  \variable
+    [\c!hoogte]
+    [\c!dimension!,\v!passend,\v!midden]
+    [25cm]
+  \variable
+    [\c!rugwit]
+    [\c!dimension!]
+    [2.5cm]
+  \variable
+    [\c!kopwit]
+    [\c!dimension!]
+    [2.5cm]
+  \variable
+    [\c!marge]
+    [\c!dimension!]
+    [2.5cm]
+  \variable
+    [\c!linkermarge]
+    [\c!dimension!]
+    []
+  \variable
+    [\c!rechtermarge]
+    [\c!dimension!]
+    []
+  \variable
+    [\c!hoofd]
+    [\c!dimension!]
+    [2.0cm]
+  \variable
+    [\c!voet]
+    [\c!dimension!]
+    [2.0cm]
+  \variable
+    [\c!boven]
+    [\c!dimension!]
+    [2.0cm]
+  \variable
+    [\c!onder]
+    [\c!dimension!]
+    [2.0cm]
+  \variable
+    [\c!linkerrand]
+    [\c!dimension!]
+    [3cm]
+  \variable
+    [\c!rechterrand]
+    [\c!dimension!]
+    [3cm]
+  \variable
+    [\c!hoofdafstand]
+    [\c!dimension!]
+    [0pt]
+  \variable
+    [\c!voetafstand]
+    [\c!dimension!]
+    [0pt]
+  \variable
+    [\c!bovenafstand]
+    [\c!dimension!]
+    [0pt]
+  \variable
+    [\c!onderafstand]
+    [\c!dimension!]
+    [0pt]
+  \variable
+    [\c!linkermargeafstand]
+    [\c!dimension!]
+    [12pt]
+  \variable
+    [\c!rechtermargeafstand]
+    [\c!dimension!]
+    [12pt]
+  \variable
+    [\c!linkerrandafstand]
+    [\c!dimension!]
+    [12pt]
+  \variable
+    [\c!rechterrandafstand]
+    [\c!dimension!]
+    [12pt]
+  \variable
+    [\c!rugoffset]
+    [\c!dimension!]
+    [0pt]
+  \variable
+    [\c!kopoffset]
+    [\c!dimension!]
+    [0pt]
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!normaal]
+  \variable
+    [\c!markering]
+    [\v!aan,\v!uit,\v!kleur]
+    [\v!uit]
+  \variable
+    [\c!plaats]
+    [\v!links,\v!midden,\v!rechts,\v!onder,\v!boven,
+     \v!enkelzijdig,\v!dubbelzijdig]
+    [\v!enkelzijdig]
+  \variable
+    [\c!schaal]
+    [\c!dimension!]
+    [1]
+  \variable
+    [\c!nx]
+    [\c!number!]
+    [1]
+  \variable
+    [\c!ny]
+    [\c!number!]
+    [1]
+  \variable
+    [\c!dx]
+    [\c!dimension!]
+    [0pt]
+  \variable
+    [\c!dy]
+    [\c!dimension!]
+    [0pt]
+  \variable
+    [\c!regels]
+    [\c!number!]
+    []
+  \variable
+    [\c!grid]
+    [\v!ja,\v!nee]
+    [\v!nee]
+  \variable
+    [\c!bodemwit]
+    [\c!number!]
+    []
+  \variable
+    [\c!snijwit]
+    [\c!number!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!paslayoutaan]
+  \type
+    [\c!opt!\c!vals!\c!vars!]
+  \value
+    [\c!number!]
+    []
+  \variable
+    [\c!hoogte]
+    [\c!dimension!,\v!max]
+    []
+  \variable
+    [\c!regels]
+    [\c!number!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!toongrid]
+  \type
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!plaatsopgrid]
+  \type
+    [\c!opt!\c!val!\c!arg!]
+  \inheritvalues
+    [\y!verplaatsopgrid]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!verplaatsopgrid]
+  \type
+    [\c!opt!\c!val!]
+  \value
+    [\v!boven,\v!beide,\v!onder]
+    [\v!beide]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!startproject]
+  \type
+    [\c!fil!\c!stp!]
+  \value
+    [\c!filename!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!startomgeving]
+  \type
+    [\c!fil!\c!stp!]
+  \value
+    [\c!filename!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!startprodukt]
+  \type
+    [\c!fil!\c!stp!]
+  \value
+    [\c!filename!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!startonderdeel]
+  \type
+    [\c!fil!\c!stp!]
+  \value
+    [\c!filename!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!geenfilesmeer]
+  \type
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelinterliniein]
+  \type
+    [\c!opt!\c!val!\c!or!\c!vars!]
+  \value
+    [\v!reset,\v!klein,\v!middel,\v!groot,\v!aan,\v!uit]
+    [\v!klein]
+  \variable
+    [\v!hoogte]
+    [\c!number!]
+    [0.72]
+  \variable
+    [\v!diepte]
+    [\c!number!]
+    [0.28]
+  \variable
+    [\v!regel]
+    [\c!dimension!]
+    [2.8ex]
+  \variable
+    [\v!boven]
+    [\c!number!]
+    [1.0]
+  \variable
+    [\v!onder]
+    [\c!number!]
+    [0.4]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelnummeringin]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!variant]
+    [\v!enkelzijdig,\v!dubbelzijdig]
+    [\v!enkelzijdig]
+  \variable
+    [\c!plaats]
+    [\v!hoofd,\v!voet,
+     \v!links,\v!rechts,\v!midden,
+     \v!marge,\v!kantlijn,\v!inlinker,\v!inrechter]
+    [\v!midden]
+  \variable
+    [\c!conversie]
+    [\v!cijfers,\v!letters,\v!Letters,\v!romeins,\v!Romeins]
+    [\v!cijfers]
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!normaal]
+  \variable
+    [\c!links]
+    [\c!text!]
+    []
+  \variable
+    [\c!rechts]
+    [\c!text!]
+    []
+  \variable
+    [\c!wijze]
+    [\v!per\v!tekst,\v!per\c!section!]
+    [\v!per\v!deel]
+  \variable
+    [\c!tekst]
+    [\c!text!]
+    []
+  \variable
+    [\c!nummerscheider]
+    [\c!text!]
+    [--]
+  \variable
+    [\c!tekstscheider]
+    [\c!text!]
+    []
+  \variable
+    [\c!section!\c!number!]
+    [\v!ja,\v!nee]
+    []
+  \variable
+    [\c!scheider]
+    [\c!text!]
+    [--]
+  \variable
+    [\c!status]
+    [\v!start,\v!stop]
+    [\v!start]
+  \variable
+    [\c!commando]
+    [\c!oneargument!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelsmallerin]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!links]
+    [\c!dimension!]
+    [1.5em]
+  \variable
+    [\c!rechts]
+    [\c!dimension!]
+    [1.5em]
+  \variable
+    [\c!midden]
+    [\c!dimension!]
+    [1.5em]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definieer]
+  \type
+    [\c!opt!\c!val!\c!cmd!\c!arg!]
+  \value
+    [\c!number!]
+    [0]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!gebruikcommandos]
+  \type
+    [\c!arg!]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definieerstartstop]
+  \type
+    [\c!val!\c!vars!]
+  \variable
+    [\c!voor]
+    [\c!command!]
+    []
+  \variable
+    [\c!na]
+    [\c!command!]
+    []
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!normaal]
+  \variable
+    [\c!commandos]
+    [\c!command!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelkoppenin]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!sectienummer]
+    [\v!ja,\v!nummer,\v!nee]
+    [\v!ja]
+  \variable
+    [\c!variant]
+    [\v!normaal,\v!marge,\v!midden,\v!tekst,\v!alinea]
+    [\v!normaal]
+  \variable
+    [\c!scheider]
+    [\c!text!]
+    [.]
+  \variable
+    [\c!commando]
+    [\c!twoarguments!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelblokkopjesin]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!plaats]
+    [\v!boven,\v!onder,\v!geen,\v!hoog,\v!laag,\v!midden]
+    [\v!onder]
+  \variable
+    [\c!breedte]
+    [\v!passend,\v!max,\c!dimension!]
+    [\v!passend]
+  \variable
+    [\c!kopletter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!vet]
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!normaal]
+  \variable
+    [\c!nummer]
+    [\v!ja,\v!nee]
+    [\v!ja]
+  %\variable
+  %  [\c!voor]
+  %  [\c!command!]
+  %  [\blanko]
+  \variable
+    [\c!tussen]
+    [\c!command!]
+    []% {\blanko[\v!middel]}]
+  %\variable
+  %  [\c!na]
+  %  [\c!command!]
+  %  [\blanko]
+  \variable
+    [\c!uitlijnen]
+    [\v!links,\v!midden,\v!rechts,\v!nee]
+    []
+  \variable
+    [\c!conversie]
+    [\v!cijfers,\v!letters,\v!Letters,\v!romeins,\v!Romeins]
+    [\v!cijfers]
+  \variable
+    [\c!wijze]
+    [\v!per\v!tekst,\v!per\c!section!]
+    [\v!per\v!tekst]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelblokkopjein]
+  \type
+    [\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \inheritvariables
+    [\y!stelblokkopjesin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelplaatsblokkenin]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!plaats]
+    [\v!links,\v!rechts,\v!midden]
+    [\v!midden]
+  \variable
+    [\c!breedte]
+    [\v!passend,\c!dimension!]
+    [\v!passend]
+  \variable
+    [\c!voor]
+    [\c!command!]
+    []
+  \variable
+    [\c!na]
+    [\c!command!]
+    []
+  \variable
+    [\c!marge]
+    [\c!dimension!]
+    [1em]
+  \variable
+    [\c!voorwit]
+    [\c!repeat!\v!klein,\c!repeat!\v!middel,\c!repeat!\v!groot,\v!geen]
+    []
+  \variable
+    [\c!nawit]
+    [\c!repeat!\v!klein,\c!repeat!\v!middel,\c!repeat!\v!groot,\v!geen]
+    []
+  \variable
+    [\c!zijvoorwit]
+    [\c!repeat!\v!klein,\c!repeat!\v!middel,\c!repeat!\v!groot,\v!geen]
+    []
+  \variable
+    [\c!zijnawit]
+    [\c!repeat!\v!klein,\c!repeat!\v!middel,\c!repeat!\v!groot,\v!geen]
+    []
+  \variable
+    [\c!springvolgendein]
+    [\v!ja,\v!nee]
+    [\v!ja]
+  \variable
+    [\c!nboven]
+    [\c!number!]
+    [2]
+  \variable
+    [\c!nonder]
+    [\c!number!]
+    [0]
+  \variable
+    [\c!nregels]
+    [\c!number!]
+    [4]
+  \inheritvariables
+    [\y!setupframed]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelplaatsblokkensplitsenin]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!conversie]
+    [\v!cijfers,\v!letters,\v!Letters,\v!romeins,\v!Romeins]
+    [\v!letter]
+  \variable
+    [\c!regels]
+    [\c!number!]
+    [3]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!splitsplaatsblok]
+  \type
+    [\c!opt!\c!vars!\c!arg!\c!arg!]
+  \inheritvariables
+    [\y!stelplaatsblokkensplitsenin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelnaastplaatsenin]
+  \type
+    [\c!var!]
+  \variable
+    [\c!status]
+    [\v!start,\v!stop]
+    [\v!stop]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!startnaast]
+  \type
+    [\c!stp!]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelkoppeltekenin]
+  \type
+    [\c!var!]
+  \variable
+    [\c!teken]
+    [--,---,-,~,),(,=,/]
+    [--]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelpositionerenin]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!status]
+    [\v!start,\v!overlay]
+    [\v!start]
+  \variable
+    [\c!eenheid]
+    [\s!cm,\s!pt,\s!em,\s!mm,\s!ex,\s!es,\s!in]
+    [\s!cm]
+  \variable
+    [\c!factor]
+    [\c!number!]
+    [1]
+  \variable
+    [\c!schaal]
+    [\c!number!]
+    [1]
+  \variable
+    [\c!offset]
+    [\v!ja,\v!nee]
+    [\v!ja]
+  \variable
+    [\c!xstap]
+    [\v!absoluut,\v!relatief]
+    [\v!absoluut]
+  \variable
+    [\c!ystap]
+    [\v!absoluut,\v!relatief]
+    [\v!absoluut]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!startpositioneren]
+  \type
+    [\c!stp!]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!rooster]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!x]
+    [\c!number!]
+    [0]
+  \variable
+    [\c!y]
+    [\c!number!]
+    [0]
+  \variable
+    [\c!nx]
+    [\c!number!]
+    [10]
+  \variable
+    [\c!ny]
+    [\c!number!]
+    [10]
+  \variable
+    [\c!dx]
+    [\c!number!]
+    [0.5]
+  \variable
+    [\c!dy]
+    [\c!number!]
+    [0.5]
+  \variable
+    [\c!xstap]
+    [\c!number!]
+    [0]
+  \variable
+    [\c!ystap]
+    [\c!number!]
+    [0]
+  \variable
+    [\c!offset]
+    [\v!ja,\v!nee]
+    [\v!ja]
+  \variable
+    [\c!factor]
+    [\c!number!]
+    [1]
+  \variable
+    [\c!schaal]
+    [\c!number!]
+    [1]
+  \variable
+    [\c!eenheid]
+    [\s!cm,\s!pt,\s!em,\s!mm,\s!ex,\s!es,\s!in]
+    [\s!cm]
+  \variable
+    [\c!plaats]
+    [\v!links,\v!midden]
+    [\v!links]
+\stopsetup
+
+
+\startsetup
+  \command
+    [\y!pagina]
+  \type
+    [\c!vals!]
+  \value
+    [\v!ja,\v!opmaak,\v!nee,\v!voorkeur,\v!grotevoorkeur,
+     \v!links,\v!rechts,\v!blokkeer,\v!laatste,\v!viertal,
+     \v!even,\v!oneven,\v!blanko,\v!leeg,\v!reset]
+    [\v!ja]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setupreferencing]
+  \type
+    [\c!var!]
+  \variable
+    [\c!status]
+    [\v!start,\v!stop]
+    [\v!start]
+  \variable
+    [\c!section!\c!number!]
+    [\v!ja,\v!nee]
+    []
+  \variable
+    [\c!prefix]
+    [+,-,\c!text!]
+    []
+  \variable
+    [\c!interactie]
+    [\v!label,\v!tekst,\v!alles,\v!symbool]
+    [\v!alles]
+  \variable
+    [\c!breedte]
+    [\c!dimension!]
+    []
+  \variable
+    [\c!links]
+    [\c!command!]
+    []
+  \variable
+    [\c!rechts]
+    [\c!command!]
+    []
+  \variable
+    [\c!converteerfile]
+    [\v!ja,\v!nee,\v!klein,\v!groot]
+    [\v!nee]
+  \variable
+    [\c!scheider]
+    [\c!text!]
+    [~]
+  \variable 
+    [\c!autofile]
+    [\v!ja,\v!nee,\v!pagina]
+    [\v!nee]
+  \variable 
+    [\c!globaal]
+    [\v!ja,\v!nee]
+    [\v!nee]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setupurl]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!type]
+  \variable
+    [\c!urlvariant]
+    [\v!geen,\v!beide,\v!voor,\v!na]
+    [\v!beide]
+  \variable
+    [\c!urlspatie]
+    [\v!ja,\v!nee]
+    [\v!nee]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!schrijfnaarreferentielijst]
+  \type
+    [\c!val!\c!arg!\c!arg!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!plaatsreferentielijst]
+  \type
+    [\c!vals!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definieerreferentielijst]
+  \type
+    [\c!val!\c!opt!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \inheritvariables
+    [\y!stelreferentielijstin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelreferentielijstin]
+  \type
+    [\c!vals!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \variable
+    [\c!status]
+    [\v!start,\v!stop]
+    [\v!start]
+  \variable
+    [\c!criterium]
+    [\c!section!,\v!lokaal,\v!vorige,\v!alles]
+    [\v!alles]
+  \variable
+    [\c!commando]
+    [\c!command!]
+    []
+  \variable
+    [\c!voor]
+    [\c!command!]
+    []
+  \variable
+    [\c!na]
+    [\c!command!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!schrijfnaarlijst]
+  \type
+    [\c!val!\c!arg!\c!arg!]
+  \value
+    [\c!section!,\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!schrijftussenlijst]
+  \type
+    [\c!val!\c!arg!]
+  \value
+    [\c!section!,\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!geenlijst]
+  \type
+    [\c!arg!]
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!plaatslijst]
+  \type
+    [\c!vals!\c!opt!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \inheritvariables
+    [\y!stellijstin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!bepaallijstkenmerken]
+  \type
+    [\c!vals!\c!opt!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \inheritvariables
+    [\y!stellijstin]
+    []
+\stopsetup
+
+% nieuw:
+
+% \startsetup
+%   \command
+%     [\y!plaatssamengesteldelijst]
+%   \type
+%     [\c!val!\c!opt!\c!vars!]
+%   \value
+%     [\c!identifier!]
+%     []
+%   \inheritvariables
+%     [\y!stelsamengesteldelijstin]
+%     []
+% \stopsetup
+
+\startsetup
+  \command
+    [\y!definieerlijst]
+  \type
+    [\c!val!\c!opt!\c!val!\c!opt!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!identifier!]
+    []
+  \inheritvariables
+    [\y!stellijstin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stellijstin]
+  \type
+    [\c!vals!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \variable
+    [\c!status]
+    [\v!start,\v!stop]
+    [\v!start]
+  \variable
+    [\c!variant]
+    [\v!a,\v!b,\v!c,...,\v!geen,\v!commando]
+    [\v!b]
+  \variable
+    [\c!koppeling]
+    [\v!aan,\v!uit]
+    [\v!uit]
+  \variable
+    [\c!criterium]
+    [\c!section!,\v!lokaal,\v!vorige,\v!alles]
+    [\v!lokaal]
+  \variable
+    [\c!paginaovergangen]
+    [\c!list!]
+    []
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!normaal]
+  \variable
+    [\c!nummerletter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!normaal]
+  \variable
+    [\c!tekstletter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!normaal]
+  \variable
+    [\c!paginaletter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!normaal]
+  \variable
+    [\c!kleur]
+    [\c!identifier!]
+    []
+  \variable
+    [\c!commando]
+    [\c!threearguments!]
+    []
+  \variable
+    [\c!nummercommando]
+    [\c!oneargument!]
+    []
+  \variable
+    [\c!tekstcommando]
+    [\c!oneargument!]
+    []
+  \variable
+    [\c!paginacommando]
+    [\c!oneargument!]
+    []
+  \variable
+    [\c!interactie]
+    [\v!sectienummer,\v!tekst,\v!paginanummer,\v!alles]
+    [\v!sectienummer]
+  \variable
+    [\c!voor]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [\c!na]
+    [\c!command!]
+    []
+  \variable
+    [\c!tussen]
+    [\c!command!]
+    []
+  \variable
+    [\c!links]
+    [\c!text!]
+    []
+  \variable
+    [\c!rechts]
+    [\c!text!]
+    []
+  \variable
+    [\c!label]
+    [\v!ja,\v!nee]
+    [\v!nee]
+  \variable
+    [\c!prefix]
+    [\v!ja,\v!nee]
+    [\v!ja]
+  \variable
+    [\c!paginanummer]
+    [\v!ja,\v!nee]
+    [\v!ja]
+  \variable
+    [\c!section!\c!number!]
+    [\v!ja,\v!nee]
+    []
+  \variable
+    [\c!titeluitlijnen]
+    [\v!ja,\v!nee]
+    [\v!nee]
+  \variable
+    [\c!marge]
+    [\c!dimension!]
+    [3em]
+  \variable
+    [\c!breedte]
+    [\c!dimension!,\v!passend]
+    [3em]
+  \variable
+    [\c!hoogte]
+    [\c!dimension!,\v!passend,\v!ruim]
+    [\v!ruim]
+  \variable
+    [\c!diepte]
+    [\c!dimension!,\v!passend,\v!ruim]
+    [\v!ruim]
+%  \variable
+%    [\c!offset]
+%    [\c!dimension!]
+%    [.25em]
+  \variable
+    [\c!afstand]
+    [\c!dimension!]
+    [0em]
+  \variable
+    [\c!scheider]
+    [\c!text!]
+    []
+  \variable
+    [\c!symbool]
+    [\v!geen,1,2,3,...]
+    []
+  \variable
+    [\c!expansie]
+    [\v!ja,\v!nee,\v!commando]
+    [\v!nee]
+  \variable
+    [\c!maxbreedte]
+    [\c!dimension!]
+    []
+  \inheritvariables
+    [\y!framed]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definieersamengesteldelijst]
+  \type
+    [\c!val!\c!vals!\c!opt!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!list!]
+    []
+  \inheritvariables
+    [\y!stelsamengesteldelijstin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelsamengesteldelijstin]
+  \type
+    [\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \variable
+    [\c!niveau]
+    [1,2,3,4,\c!section!,\v!huidige]
+    [4]
+  \inheritvariables
+    [\y!stellijstin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\e!plaats<<\y!samengesteldelijst>>]
+  \type
+    [\c!val!\c!opt!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \inheritvariables
+    [\y!stelsamengesteldelijstin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\e!volledige<<\y!samengesteldelijst>>]
+  \type
+    [\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \inheritvariables
+    [\y!stelsamengesteldelijstin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelnummerenin]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!wijze]
+    [\v!per\v!tekst,\v!per\c!section!]
+    [\v!per\v!hoofdstuk]
+  \variable
+    [\c!status]
+    [\v!start,\v!stop]
+    [\v!start]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelformulesin]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!plaats]
+    [\v!links,\v!rechts]
+    [\v!rechts]
+  \variable
+    [\c!links]
+    [\c!text!]
+    [{(}]
+  \variable
+    [\c!rechts]
+    [\c!text!]
+    [{)}]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!publicatie]
+  \type
+    [\c!ref!]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelpublicatiesin]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!variant]
+    [\c!apa,\v!normaal]
+    [\c!apa]
+  \inheritvariables
+    [\y!steldoornummerenin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelregelsin]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!voor]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [\c!na]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [\c!tussen]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [\c!inspringen]
+    [\v!ja,\v!nee,\v!even,\v!oneven]
+    [\v!nee]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!startregels]
+  \type
+    [\c!stp!]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelparagraafnummerenin]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!status]
+    [\v!start,\v!stop,\v!reset,\v!regel]
+    [\v!stop]
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!normaal]
+  \variable
+    [\c!afstand]
+    [\c!dimension!]
+    [0pt]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelregelnummerenin]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!conversie]
+    [\v!cijfers,\v!letters,\v!Letters,\v!romeins,\v!Romeins,
+     \v!tekst]
+    [\v!cijfers]
+  \variable
+    [\c!start]
+    [\c!number!]
+    [1]
+  \variable
+    [\c!stap]
+    [\c!number!]
+    [1]
+  \variable
+    [\c!breedte]
+    [\c!dimension!]
+    [2ex]
+  \variable
+    [\c!plaats]
+    [\v!intekst,\v!inmarge]
+    [\v!inmarge]
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!normaal]
+  \variable
+    [\c!prefix]
+    [\c!text!]
+    []
+  \variable
+    [\c!refereren]
+    [\v!aan,\v!uit]
+    [\v!aan]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!startregelnummeren]
+  \type
+    [\c!val!\c!stp!]
+  \value
+    [\v!verder]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!startregel]
+  \type
+    [\c!ref!\c!stp!]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!eenregel]
+  \type
+    [\c!ref!]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!inregel]
+  \type
+    [\c!ref!]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelinmargein]
+  \type
+    [\c!opt!\c!val!\c!vars!]
+  \value
+    [\v!links,\v!rechts,\c!number!]
+    []
+  \variable
+    [\c!plaats]
+    [\v!links,\v!rechts,\v!beide]
+    [\v!beide]
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!vet]
+  \variable
+    [\c!voor]
+    [\c!command!]
+    []
+  \variable
+    [\c!na]
+    [\c!command!]
+    []
+  \variable
+    [\c!uitlijnen]
+    [\v!binnen,\v!buiten,\v!links,\v!rechts,\v!midden,\v!normaal,\v!nee,\v!ja]
+    [\v!binnen]
+  \variable
+    [\c!regel]
+    [\c!number!]
+    [1]
+  \variable
+    [\c!afstand]
+    [\c!dimension!]
+    [0pt]
+  \variable
+    [\c!scheider]
+    [\c!text!]
+    []
+  \inheritvariables
+    [\y!setupframed]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelpaginanummerin]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!nummer]
+    [\c!number!]
+    []
+  \variable
+    [\c!status]
+    [\v!start,\v!stop,\v!handhaaf]
+    [\v!start]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelsubpaginanummerin]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!wijze]
+    [\v!per\v!tekst,\v!per\c!section!]
+    [\v!per\v!deel]
+  \variable
+    [\c!status]
+    [\v!start,\v!stop,\v!geen]
+    [\v!stop]
+\stopsetup
+
+%\startsetup \command[\y!paginanummer] \type[] \stopsetup
+%\startsetup \command[\y!subpaginanummer] \type[] \stopsetup
+%\startsetup \command[\y!aantalsubpaginas] \type[] \stopsetup
+%\startsetup \command[\y!totaalaantalpaginas] \type[] \stopsetup
+
+\startsetup
+  \command
+    [\y!stelblankoin]
+  \type
+    [\c!opt!\c!val!]
+  \value
+    [\v!normaal,\v!standaard,\v!regel,\c!dimension!,
+     \v!groot,\v!middel,\v!klein,
+     \v!vast,\v!flexibel]
+    [\v!normaal]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definieerblanko]
+  \type
+    [\c!val!\c!val!]
+  \value
+    [\c!identifier!]
+    []
+  \inheritvalues
+    [\y!stelblankoin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definieerpapierformaat]
+  \type
+    [\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \variable
+    [\c!breedte]
+    [\c!dimension!]
+    [297mm]
+  \variable
+    [\c!hoogte]
+    [\c!dimension!]
+    [210mm]
+  \variable
+    [\c!offset]
+    [\c!dimension!]
+    [210mm]
+  \variable
+    [\c!schaal]
+    [\c!number!]
+    [1]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelpapierformaatin]
+  \type
+    [\c!vals!\c!opt!\c!vals!]
+  \value
+    [A3,A4,A5,A6,letter,...,CD,\c!identifier!,
+     \v!liggend,\v!gespiegeld,\v!geroteerd,90,180,270]
+    [A4]
+  \value
+    [A3,A4,A5,A6,letter,...,\c!identifier!,
+     \v!liggend,\v!gespiegeld,\v!geroteerd,\v!negatief,90,180,270]
+    [A4]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelarrangerenin]
+  \type
+    [\c!vals!]
+  \value
+    [\v!blokkeer,
+     2*16,2*8,2*4,2*2,2UP,2DOWN,
+     \v!gespiegeld,\v!geroteerd,\v!dubbelzijdig,\v!negatief,90,180,270]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!toonprint]
+  \type
+    [\c!vals!\c!vals!\c!vars!]
+  \inheritvariables
+    [\y!stelpapierformaatin]
+    []
+  \inheritvariables
+    [\y!stelpapierformaatin]
+    []
+  \inheritvariables
+    [\y!stellayoutin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definieerbeeldmerk]
+  \type
+    [\c!val!\c!val!\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\v!boven,\v!hoofd,\v!voet,\v!onder]
+    []
+  \value
+    [\v!geen,\v!pagina,
+     \v!linkerrand,\v!linkermarge,
+     \v!links,\v!midden,\v!rechts,
+     \v!rechtermarge,\v!rechterrand]
+    []
+  \variable
+    [\c!commando]
+    [\c!command!,\c!text!]
+    []
+  \variable
+    [\c!status]
+    [\v!start,\v!stop]
+    [\v!stop]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!plaatsbeeldmerken]
+  \type
+    [\c!opt!\c!vals!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelwitruimtein]
+  \type
+    [\c!opt!\c!val!]
+  \value
+    [\v!geen,\v!klein,\v!middel,\v!groot,\v!regel,\v!vast,\v!herstel,\c!dimension!]
+    [\v!geen]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelinspringenin]
+  \type
+    [\c!vals!]
+  \value
+    [\v!geen,\v!klein,\v!middel,\v!groot,\v!volgende,\v!eerste,\c!dimension!]
+    [\v!geen]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definieersectieblok]
+  \type
+    [\c!val!\c!opt!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \inheritvariables
+    [\y!stelsectieblokin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelsectieblokin]
+  \type
+    [\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \variable
+    [\c!nummer]
+    [\v!ja,\v!nee]
+    [\v!ja]
+  \variable
+    [\c!pagina]
+    [\v!ja,\v!rechts]
+    [\v!rechts]
+  \variable
+    [\c!voor]
+    [\c!command!]
+    []
+  \variable
+    [\c!na]
+    [\c!command!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definieersectie]
+  \type
+    [\c!val!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelsectiein]
+  \type
+    [\c!val!\c!opt!\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!identifier!]
+    [\v!inleiding,\v!hoofdtekst,\v!bijlage,\v!uitleiding]
+  \variable
+    [\c!conversie]
+    [\v!cijfers,\v!letters,\v!Letters,\v!romeins,\v!Romeins]
+    [\v!cijfers]
+  \variable
+    [\c!vorigenummer]
+    [\v!ja,\v!nee]
+    [\v!ja]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelkopin]
+  \type
+    [\c!val!\c!vars!]
+  \value
+    [\c!section!]
+    []
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    []
+  \variable
+    [\c!tekstletter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    []
+  \variable
+    [\c!nummerletter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    []
+  \variable
+    [\c!nummer]
+    [\v!ja,\v!nee]
+    [\v!ja]
+  \variable
+    [\c!eigennummer]
+    [\v!ja,\v!nee]
+    [\v!nee]
+  \variable
+    [\c!pagina]
+    [\v!links,\v!rechts,\v!ja]
+    []
+  \variable
+    [\c!doorgaan]
+    [\v!ja,\v!nee]
+    [\v!ja]
+  \variable
+    [\c!hoofd]
+    [\v!geen,\v!leeg,\v!hoog,\v!geenmarkering]
+    []
+  \variable
+    [\c!voor]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [\c!tussen]
+    [\c!command!]
+    []
+  \variable
+    [\c!na]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [\c!variant]
+    [\v!normaal,\v!inmarge,\v!midden,\v!tekst]
+    [\v!normaal]
+  \variable
+    [\c!commando]
+    [\c!twoarguments!]
+    []
+  \variable
+    [\c!nummercommando]
+    [\c!oneargument!]
+    []
+  \variable
+    [\c!tekstcommando]
+    [\c!oneargument!]
+    []
+  \variable
+    [\c!prefix]
+    [+,-,\c!text!]
+    []
+  \variable
+    [\c!plaatskop]
+    [\v!ja,\v!nee]
+    [\v!ja]
+  \variable
+    [\c!verhoognummer]
+    [\v!ja,\v!nee,\c!filename!]
+    [\v!ja]
+  \variable
+    [\c!uitlijnen]
+    [\v!links,\v!rechts,\v!normaal,\v!ruim]
+    [\v!normaal]
+  \variable
+    [\c!tolerantie]
+    [\v!zeerstreng,\v!streng,\v!soepel,\v!zeersoepel,\v!rek]
+    [\v!soepel]
+  \variable
+    [\c!springvolgendein]
+    [\v!ja,\v!nee]
+    [\v!nee]
+  \variable
+    [\c!file]
+    [\c!identifier!]
+    []
+  \variable
+    [\c!expansie]
+    [\v!ja,\v!commando,\v!nee]
+    [\v!nee]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelkopnummerin]
+  \type
+    [\c!val!\c!val!]
+  \value
+    [\c!section!]
+    []
+  \value
+    [\c!number!,+\c!number!,-\c!number!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!kopnummer]
+  \type
+    [\c!opt!\c!val!]
+  \value
+    [\c!section!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!bepaalkopnummer]
+  \type
+    [\c!val!]
+  \value
+    [\c!section!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!huidigekopnummer]
+  \type
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\e!volgende<<\y!sectie>>]
+  \type
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definieerkop]
+  \type
+    [\c!val!\c!val!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!section!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelopsommingin]
+  \type
+    [\c!opt!\c!val!\c!opt!\c!vals!\c!opt!\c!vars!]
+  \value
+    [\c!number!,\v!elk]
+    []
+  \value
+    [\v!standaard,\c!repeat!\v!ruim,\c!repeat!\v!aanelkaar,\v!opelkaar,
+     \v!vanelkaar,\v!afsluiter,\v!aansluitend,\v!opmarge,\v!inmarge,
+     \v!autointro,\v!los,\v!paragraaf,\v!intekst]
+    [\v!standaard]
+  \variable
+    [\c!marge]
+    [\v!nee,\v!standaard,\c!dimension!]
+    [0pt]
+  \variable
+    [\c!breedte]
+    [\c!dimension!]
+    [1.5em]
+  \variable
+    [\c!afstand]
+    [\c!dimension!]
+    [0.5em]
+  \variable
+    [\c!factor]
+    [\c!number!]
+    [0]
+  \variable
+    [\c!items]
+    [\c!number!]
+    [4]
+  \variable
+    [\c!voor]
+    [\c!command!]
+    []
+  \variable
+    [\c!tussen]
+    [\c!command!]
+    []
+  \variable
+    [\c!na]
+    [\c!command!]
+    []
+  \variable
+    [\c!links]
+    [\c!text!]
+    []
+  \variable
+    [\c!rechts]
+    [\c!text!]
+    []
+  \variable
+    [\c!kopvoor]
+    [\c!command!]
+    []
+  \variable
+    [\c!kopna]
+    [\c!command!]
+    []
+  \variable
+    [\c!kopletter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!normaal]
+  \variable
+    [\c!marletter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!type]
+  \variable
+    [\c!symletter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!normaal]
+  \variable
+    [\c!afsluiter]
+    [\c!text!]
+    [.]
+  \variable
+    [\c!n]
+    [\c!number!]
+    []
+  \variable
+    [\c!symbool]
+    [\c!number!]
+    []
+  \variable
+    [\c!uitlijnen]
+    [\v!links,\v!rechts,\v!normaal]
+    [\v!normaal]
+  \variable
+    [\c!springvolgendein]
+    [\v!ja,\v!nee]
+    [\v!ja]
+\stopsetup
+
+%\startsetup
+%  \command
+%    [\y!symbol]
+%  \type
+%    [\c!val!]
+%  \value
+%    [\c!number!]
+%    []
+%\stopsetup
+
+\startsetup
+  \command
+    [\y!startopsomming]
+  \type
+    [\c!opt!\c!vals!\c!opt!\c!vars!\c!stp!]
+  \value
+    [a,A,KA,n,N,m,r,R,KR,\c!number!,\v!verder,
+     \v!standaard,\c!repeat!\v!ruim,\c!repeat!\v!aanelkaar,\v!opelkaar,
+     \v!afsluiter,\v!aansluitend,\v!opmarge,\v!inmarge,\v!intro,\v!kolommen]
+    [\v!standaard]
+  \inheritvariables
+    [\y!stelopsommingin]
+    []
+\stopsetup
+
+\startsetup \command[\y!som] \type[\c!opt!\c!refs!]        \stopsetup
+\startsetup \command[\y!but] \type[\c!alwint!\c!ref!]      \stopsetup
+\startsetup \command[\y!its] \type[\c!opt!\c!refs!]        \stopsetup
+\startsetup \command[\y!ran] \type[\c!arg!]                \stopsetup
+\startsetup \command[\y!kop] \type[\c!opt!\c!refs!]        \stopsetup
+\startsetup \command[\y!mar] \type[\c!opt!\c!refs!\c!arg!] \stopsetup
+\startsetup \command[\v!sub] \type[\c!opt!\c!refs!]        \stopsetup % no \y!sub
+\startsetup \command[\y!sym] \type[\c!arg!]                \stopsetup
+\startsetup \command[\y!nop] \type[]                       \stopsetup
+
+\startsetup
+  \command
+    [\y!definieerregister]
+  \type
+    [\c!val!\c!val!]
+  \value
+    [\c!singular!]
+    []
+  \value
+    [\c!plural!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelregisterin]
+  \type
+    [\c!val!\c!opt!\c!val!\c!vars!]
+  \value
+    [\c!singular!]
+    []
+  \value
+    [\c!identifier!]
+    []
+  \variable
+    [\c!n]
+    [\c!number!]
+    [2]
+  \variable
+    [\c!balanceren]
+    [\v!ja,\v!nee]
+    [\v!nee]
+  \variable
+    [\c!uitlijnen]
+    [\v!ja,\v!nee]
+    [\v!nee]
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!vet]
+  \variable
+    [\c!paginaletter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!vet]
+  \variable
+    [\c!tekstletter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!vet]
+  \variable
+    [\c!aanduiding]
+    [\v!ja,\v!nee]
+    [\v!ja]
+  \variable
+    [\c!koppeling]
+    [\v!ja,\v!nee]
+    [\v!nee]
+  \variable
+    [\c!section!\c!number!]
+    [\v!ja,\v!nee]
+    []
+  \variable
+    [\c!criterium]
+    [\c!section!,\v!lokaal,\v!alles]
+    [\v!deel]
+  \variable
+    [\c!afstand]
+    [\c!dimension!]
+    [1em]
+  \variable
+    [\c!symbool]
+    [1,2,...,\c!n,\c!a,...,\v!geen]
+    []
+  \variable
+    [\c!interactie]
+    [\v!paginanummer,\v!tekst]
+    [\v!paginanummer]
+  \variable
+    [\c!expansie]
+    [\v!ja,\v!commando,\v!nee]
+    [\v!nee]
+  \variable
+    [\c!refereren]
+    [\v!aan,\v!uit]
+    [\v!aan]
+  \variable
+    [\c!commando]
+    [\c!oneargument!]
+    []
+  \variable
+    [\c!plaats]
+    [\v!links,\v!midden,\v!rechts]
+    [\v!midden]
+  \variable
+    [\c!maxbreedte]
+    [\c!dimension!]
+    []
+  \variable
+    [\c!onbekendeverwijzing]
+    [\v!leeg,\v!geen]
+    [\v!leeg]
+\stopsetup
+
+\startsetup
+  \command
+    [<<\y!register>>]
+  \type
+    [\c!opt!\c!val!\c!idxs!]
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\e!start<<\y!register>>]
+  \type
+    [\c!opt!\c!val!\c!idxs!]
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!schrijfnaarregister]
+  \type
+    [\c!val!\c!opt!\c!val!\c!idxs!]
+  \value
+    [\c!singular!]
+    []
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\e!gekoppelde<<\y!register>>]
+  \type
+    [\c!opt!\c!val!\c!idx!]
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!koppelregister]
+  \type
+    [\c!val!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\e!zie<<\y!register>>]
+  \type
+    [\c!opt!\c!val!\c!arg!\c!idxs!]
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\e!volledige<<\y!register>>]
+  \type
+    [\c!optint!\c!opt!\c!vars!]
+  \inheritvariables
+    [\y!stelregisterin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\e!plaats<<\y!register>>]
+  \type
+    [\c!optint!\c!opt!\c!vars!]
+  \inheritvariables
+    [\y!stelregisterin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definieersynoniemen]
+  \type
+    [\c!val!\c!val!\c!val!\c!opt!\c!val!]
+  \value
+    [\c!singular!]
+    []
+  \value
+    [\c!plural!]
+    []
+  \value
+    [\c!command!]
+    []
+  \value
+    [\c!command!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelsynoniemenin]
+  \type
+    [\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \variable
+    [\c!tekstletter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!kap]
+  \variable
+    [\c!synoniemletter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!normaal]
+  \variable
+    [\c!plaats]
+    [\v!links,\v!rechts,\v!boven,\v!aanelkaar,
+     \v!inmarge,\v!inlinker,\v!inrechter]
+    [\v!links]
+  \variable
+    [\c!breedte]
+    [\c!dimension!]
+    [5em]
+  \variable
+    [\c!status]
+    [\v!start,\v!stop]
+    [\v!start]
+  \variable
+    [\c!criterium]
+    [\v!alles,\v!gebruikt]
+    [\v!gebruikt]
+  \variable
+    [\c!conversie]
+    [\v!ja,\v!nee]
+    [\v!nee]
+  \variable
+    [\c!expansie]
+    [\v!ja,\v!commando,\v!nee]
+    [\v!nee]
+  \variable
+    [\c!commando]
+    [\c!threearguments!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [<<\y!synoniem>>]
+  \type
+    [\c!opt!\c!val!\c!arg!\c!arg!]
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\e!volledige\e!lijstmet<<\y!synoniemen>>]
+  \type
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\e!plaats\e!lijstmet<<\y!synoniemen>>]
+  \type
+    []
+\stopsetup
+
+\startsetup
+  \command[\e!laad<<\y!synoniemen>>]
+  \type[]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definieersorteren]
+  \type
+    [\c!val!\c!val!\c!opt!\c!val!]
+  \value
+    [\c!singular!]
+    []
+  \value
+    [\c!plural!]
+    []
+  \value
+    [\c!command!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelsorterenin]
+  \type
+    [\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \variable
+    [\c!voor]
+    [\c!command!]
+    []
+  \variable
+    [\c!na]
+    [\c!command!]
+    []
+  \variable
+    [\c!commando]
+    [\c!oneargument!]
+    []
+  \variable
+    [\c!status]
+    [\v!start,\v!stop]
+    [\v!start]
+  \variable
+    [\c!criterium]
+    [\v!alles,\v!gebruikt]
+    [\v!gebruikt]
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!normaal]
+  \variable
+    [\c!expansie]
+    [\v!ja,\v!commando,\v!nee]
+    [\v!nee]
+\stopsetup
+
+\startsetup
+  \command
+    [<<\y!sorteer>>]
+  \type
+    [\c!val!\c!arg!]
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\e!volledige\e!lijstmet<<\y!sorteren>>]
+  \type
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\e!plaats\e!lijstmet<<\y!sorteren>>]
+  \type
+    []
+\stopsetup
+
+\startsetup
+  \command[\e!laad<<\y!sorteren>>]
+  \type[]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definieeropmaak]
+  \type
+    [\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \inheritvariables
+    [\y!stelopmaakin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!startopmaak]
+  \type
+    [\c!val!\c!opt!\c!vars!\c!stp!]
+  \value
+    [\c!identifier!]
+    []
+  \inheritvariables
+    [\y!stelopmaakin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelopmaakin]
+  \type
+    [\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \variable
+    [\c!breedte]
+    [\c!dimension!]
+    [\zetbreedte]
+  \variable
+    [\c!hoogte]
+    [\c!dimension!]
+    [\teksthoogte]
+  \variable
+    [\c!voffset]
+    [\c!dimension!]
+    [\!!zeropoint]
+  \variable
+    [\c!hoffset]
+    [\c!dimension!]
+    [\!!zeropoint]
+  \variable
+    [\c!pagina]
+    [\v!links,\v!ja,\v!rechts]
+    []
+  \variable
+    [\c!commandos]
+    [\c!command!]
+    []
+  \variable
+    [\c!dubbelzijdig]
+    [\v!ja,\v!nee,\v!leeg]
+    [\v!leeg]
+  \variable
+    [\c!hoofdstatus]
+    [\v!normaal,\v!stop,\v!start,\v!leeg,\v!geen,\v!geenmarkering]
+    [\v!leeg]
+  \variable
+    [\c!voetstatus]
+    [\v!normaal,\v!stop,\v!start,\v!leeg,\v!geen,\v!geenmarkering]
+    [\v!leeg]
+  \variable
+    [\c!tekststatus]
+    [\v!normaal,\v!stop,\v!start,\v!leeg,\v!geen,\v!geenmarkering]
+    [\v!leeg]
+  \variable
+    [\c!bovenstatus]
+    [\v!stop,\v!start]
+    [\v!stop]
+  \variable
+    [\c!onderstatus]
+    [\v!stop,\v!start]
+    [\v!stop]
+\stopsetup
+
+\startsetup
+  \command
+    [\e!start<<\y!naam>>\e!opmaak] % \tf
+  \type
+    [\c!stp!]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!versie]
+  \type
+    [\c!val!]
+  \value
+    [\v!definitief,\v!concept,\v!voorlopig]
+    [\v!definitief]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!currentdate]
+  \type
+    [\c!vals!]
+  \value
+    [\v!dag,\v!maand,\v!weekdag,\v!jaar, % \v!WEEKDAG,\v!MAAND, 
+     dd,mm,jj,yy,d,m,j,y,\v!kenmerk]
+    [\v!dag,\v!maand,\v!jaar]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!date]
+  \type
+    [\c!opt!\c!vars!\c!vals!]
+  \variable
+    [d]
+    [\c!number!]
+    []
+  \variable
+    [m]
+    [\c!number!]
+    []
+  \variable
+    [y]
+    [\c!number!]
+    []
+  \inheritvalues
+    [\y!currentdate]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!kenmerkdatum]
+  \type
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!inspringen]
+  \type
+    [\c!vals!]
+  \value
+    [\v!nooit,\v!niet,\v!nee,\v!ja,\v!altijd,\v!eerste,\v!volgende]
+    [\v!nooit]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!nietinspringen]
+  \type
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!blanko]
+  \type
+    [\c!opt!\c!vals!]
+  \value
+    [\c!repeat!\v!klein,\c!repeat!\v!middel,\c!repeat!\v!groot,
+     \v!geenwit,\v!back,\v!wit,\v!blokkeer,\v!forceer,\v!reset,
+     \v!regel,\v!halveregel,\v!formule,\v!vast,\v!flexibel]
+    [\v!groot]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!startopelkaar]
+  \type
+    [\c!opt!\c!val!\c!stp!] % tzt \c!vals!
+  \value
+    [\v!blanko]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!startvanelkaar]
+  \type
+    [\c!stp!]
+\stopsetup
+
+% \startsetup
+%   \command
+%     [\y!startregelcorrectie]
+%   \type
+%     [\c!opt!\c!val!\c!stp!]
+%   \value
+%     [\v!klein,\v!middel,\v!groot,\v!blanko]
+%     []
+% \stopsetup
+%
+% beter:
+
+\startsetup
+  \command
+    [\y!startregelcorrectie]
+  \type
+    [\c!stp!]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!corrigeerwitruimte]
+  \type
+    [\c!arg!]
+\stopsetup
+
+\startsetup
+  \command
+    [\e!start\e!uitstellen]
+  \type
+    [\c!stp!]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!startlocal]
+  \type
+    [\c!stp!]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!startsmaller]
+  \type
+    [\c!opt!\c!vals!\c!stp!]
+  \value
+    [\c!repeat!\v!links,\c!repeat!\v!midden,\c!repeat!\v!rechts]
+    [\v!midden]
+\stopsetup
+
+\startsetup
+  \command
+    [\e!start\e!verbergen]
+  \type
+    [\c!stp!]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!steluitlijnenin]
+  \type
+    [\c!val!]
+  \value
+    [\v!breedte,\v!links,\v!rechts,\v!midden,\v!binnen,\v!buiten,
+     \v!breed,\v!ruim,\v!hoogte,\v!onder,\v!regel,\v!reset,
+     \v!hangend,\v!niethangend,\v!afgebroken,\v!nietafgebroken]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!startuitlijnen]
+  \type
+    [\c!stp!\c!opt!\c!val!]
+  \inheritvariables
+    [\y!steluitlijnenin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelspatieringin]
+  \type
+    [\c!val!]
+  \value
+    [\v!ruim,\v!opelkaar]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!steltolerantiein]
+  \type
+    [\c!vals!]
+  \value
+    [\v!horizontaal,\v!vertikaal,
+     \v!rek,\v!zeerstreng,\v!streng,\v!soepel,\v!zeersoepel]
+    [\v!zeerstreng]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!soortpagina]
+  \type
+    [\c!val!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!verwerkpagina]
+  \type
+    [\c!vals!\c!val!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\v!ja,\v!nee]
+    [\v!ja]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!koppelpagina]
+  \type
+    [\c!vals!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \variable
+    [\c!optie]
+    [\v!dubbelzijdig]
+    []
+  \variable
+    [\c!voor]
+    [\c!command!]
+    []
+  \variable
+    [\c!na]
+    [\c!command!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!positioneer]
+  \type
+    [\c!poss!\c!arg!]
+  \value
+    [\c!number!]
+    []
+  \value
+    [\c!number!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setupscreens]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!methode]
+    [\v!punt,\v!lijn,\v!extern]
+    [\v!extern]
+  \variable
+    [\c!resolutie]
+    [\c!number!]
+    [508]
+  \variable
+    [\c!factor]
+    [\c!number!]
+    [8]
+  \variable
+    [\c!raster]
+    [\c!number!]
+    [0.95]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelachtergrondenin]
+  \type
+    [\c!opt!\c!val!\c!opt!\c!vals!\c!vars!]
+  \value
+    [\v!boven,\v!hoofd,\v!tekst,\v!voet,\v!onder,
+     \v!pagina,\v!papier,\v!linkerpagina,\v!rechterpagina]
+    []
+  \value
+    [\v!linkerrand,\v!linkermarge,\v!tekst,\v!rechtermarge,\v!rechterrand]
+    []
+  \variable
+    [\c!status]
+    [\v!start,\v!stop,\v!herhaal]
+    [\v!start]
+%  \variable
+%    [\c!commando]
+%    [\c!command!]
+%    []
+  \inheritvariables
+    [\y!setupframed]
+    []
+\stopsetup
+
+\startsetup
+   \command
+     [\e!start\e!buffer]
+   \type
+     [\c!opt!\c!val!\c!stp!]
+   \value
+     [\c!identifier!]
+     []
+\stopsetup
+
+\startsetup
+   \command
+     [\y!haalbuffer]
+   \type
+     [\c!opt!\c!val!]
+   \value
+     [\c!identifier!]
+     []
+\stopsetup
+
+\startsetup
+   \command
+     [\y!typebuffer]
+   \type
+     [\c!val!]
+   \value
+     [\c!identifier!]
+     []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definieerbuffer]
+  \type
+    [\c!val!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelbufferin]
+  \type
+    [\c!opt!\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \variable
+    [\c!alinea]
+    [\c!number!]
+    [0]
+  \variable
+    [\c!voor]
+    [\c!command!]
+    []
+  \variable
+    [\c!na]
+    [\c!command!]
+    []
+\stopsetup
+
+\startsetup
+   \command
+     [\y!definieerblok]
+   \type
+     [\c!val!]
+   \value
+     [\c!identifier!]
+     []
+\stopsetup
+
+\startsetup
+  \command
+     [\y!geenblokkenmeer]
+  \type
+     []
+\stopsetup
+
+\startsetup
+   \command
+     [\y!verbergblokken]
+   \type
+     [\c!vals!\c!opt!\c!vals!]
+   \value
+     [\c!identifier!]
+     []
+   \value
+     [\c!identifier!]
+     []
+\stopsetup
+
+\startsetup
+   \command
+     [\y!handhaafblokken]
+   \type
+     [\c!vals!\c!opt!\c!vals!]
+   \value
+     [\c!identifier!]
+     []
+   \value
+     [\v!alles,\c!identifier!]
+     []
+\stopsetup
+
+\startsetup
+   \command
+     [\y!gebruikblokken]
+   \type
+     [\c!vals!\c!opt!\c!vals!]
+   \value
+     [\c!identifier!]
+     []
+   \value
+     [\c!identifier!]
+     []
+\stopsetup
+
+\startsetup
+   \command
+     [\y!verwerkblokken]
+   \type
+     [\c!vals!\c!opt!\c!vals!]
+   \value
+     [\c!identifier!]
+     []
+   \value
+     [\c!identifier!]
+     []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!selecteerblokken]
+  \type
+    [\c!vals!\c!opt!\c!vals!\c!opt!\c!var!]
+  \value
+    [\c!identifier!]
+    []
+   \value
+     [\c!identifier!]
+     []
+  \variable
+    [\c!criterium]
+    [\v!alles,\c!section!]
+    [\v!alles]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelblokin]
+  \type
+    [\c!vals!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \variable
+    [\c!voor]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [\c!na]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [\c!binnen]
+    [\c!command!]
+    []
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!normaal]
+%  \variable
+%    [\c!scope]
+%    [\v!globaal,\v!lokaal]
+%    [\v!globaal]
+  \variable
+    [\c!file]
+    [\c!filename!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\e!start\e!formule]
+  \type
+    [\c!stp!]
+  \value
+    [\c!formula!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!mathematics]
+  \type
+    [\c!arg!]
+  \value
+    [\c!formula!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!plaatsformule]
+  \type
+    [\c!opt!\c!refs!\c!opt!\c!arg!\c!dis!]
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!formula!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!plaatssubformule]
+  \type
+    [\c!opt!\c!refs!\c!opt!\c!arg!\c!dis!]
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!formula!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\e!plaats<<\y!blok>>]
+  \type
+    [\c!opt!\c!val!\c!opt!\c!refs!\c!arg!\c!arg!]
+  \value
+    [\v!links,\v!rechts,\v!hier,\v!boven,\v!onder,
+     \v!inlinker,\v!inrechter,\v!inmarge,\v!marge,
+     \v!pagina,\v!naast,\v!altijd,\v!forceer,\v!lang]
+    [\v!hier]
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\e!reserveer<<\y!blok>>]
+  \type
+    [\c!opt!\c!vars!\c!opt!\c!val!\c!opt!\c!refs!\c!arg!]
+  \variable
+    [\c!hoogte]
+    [\c!dimension!]
+    []
+  \variable
+    [\c!breedte]
+    [\c!dimension!]
+    []
+  \variable
+    [\c!kader]
+    [\v!aan,\v!uit]
+    []
+  \value
+    [\v!links,\v!rechts,\v!hier,\v!boven,\v!onder,
+     \v!inlinker,\v!inrechter,\v!inmarge,\v!marge,
+     \v!pagina,\v!naast,\v!altijd,\v!forceer]
+    [\v!hier]
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definieerplaatsblok]
+  \type
+    [\c!val!\c!val!]
+  \value
+    [\c!singular!]
+    []
+  \value
+    [\c!plural!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelplaatsblokin]
+  \type
+    [\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \variable
+    [\c!hoogte]
+    [\c!dimension!]
+    []
+  \variable
+    [\c!breedte]
+    [\c!dimension!]
+    []
+  \variable
+    [\c!paginaovergangen]
+    [\c!list!]
+    []
+  \inheritvariables
+    [\y!setupframed]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\e!start<<\y!blok>>\e!tekst]
+  \type
+    [\c!opt!\c!val!\c!opt!\c!ref!\c!arg!\c!arg!\c!stp!]
+  \value
+    [\v!links,\v!rechts,\v!hoog,\v!midden,\v!laag,\c!offset,\v!lang]
+    []
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command[\e!plaats\e!lijstmet<<\y!blokken>>]
+  \type[\c!optint!]
+\stopsetup
+
+\startsetup
+  \command[\e!volledige\e!lijstmet<<\y!blokken>>]
+  \type[\c!optint!]
+\stopsetup
+
+% pragma4.tex
+%
+% \startsetup
+%   \command
+%     [\y!label]
+%   \type
+%     [\c!val!\c!arg!\c!arg!\c!arg!\c!arg!\c!arg!\c!arg!]
+%   \value
+%     [\v!smal,\v!breed]
+%     [\v!breed]
+%   \value
+%     [\c!text!]
+%     []
+%   \value
+%     [\c!text!]
+%     []
+%   \value
+%     [\c!text!]
+%     []
+%   \value
+%     [\c!text!]
+%     []
+%   \value
+%     [\c!text!]
+%     []
+%   \value
+%     [\c!text!]
+%     []
+% \stopsetup
+
+\startsetup
+  \command
+    [\y!kenmerk]
+  \type
+    [\c!vars!]
+  \variable
+    [bet]
+    [\c!text!]
+    []
+  \variable
+    [ken]
+    [\c!text!]
+    []
+  \variable
+    [dat]
+    [\c!text!]
+    []
+  \variable
+    [van]
+    [\c!text!]
+    []
+  \variable
+    [aan]
+    [\c!text!]
+    []
+  \variable
+    [ref]
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!selecteerpapier]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!soort]
+    [1,2]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!koppelpapier]
+  \type
+    [\c!val!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+% pragma5.tex
+
+\startsetup
+  \command[\y!chem]
+  \type[\c!arg!\c!arg!\c!arg!]
+  \value[\c!text!][]
+  \value[\c!text!][]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!breuk]
+  \type[\c!arg!\c!arg!]
+  \value[\c!text!][]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command[\y!punten]
+  \type[\c!val!]
+  \value[\c!number!][]
+\stopsetup
+
+\startsetup
+  \command[\y!woonplaats]
+  \type[\c!arg!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!items]
+  \type
+    [\c!opt!\c!vars!\c!args!]
+  \inheritvariables
+    [\y!stelitemsin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelitemsin]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!plaats]
+    [\v!links,\v!rechts,\v!inmarge,\v!boven,\v!onder]
+    [\v!links]
+  \variable
+    [\c!symbool]
+    [1,2,...,\c!n,\c!a,...,\c!text!,\v!geen]
+    []
+  \variable
+    [\c!breedte]
+    [\c!dimension!]
+    [\hsize]
+  \variable
+    [\c!n]
+    [\c!number!,\v!onbekend]
+    [\v!onbekend]
+  \variable
+    [\c!voor]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [\c!tussen]
+    [\c!command!]
+    [{\blanko[\v!middel]}]
+  \variable
+    [\c!uitlijnen]
+    [\v!links,\v!rechts,\v!midden,\v!marge]
+    [\v!midden]
+  \variable
+    [\c!na]
+    [\c!command!]
+    [\blanko]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!startcitaat]
+  \type
+    [\c!vals!\c!stp!]
+  \value
+    [\c!repeat!\v!links,\c!repeat!\v!midden,\c!repeat!\v!rechts]
+    [\v!midden]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!citaat]
+  \type
+    [\c!arg!]
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!citeer]
+  \type
+    [\c!arg!]
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelciterenin]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!voor]
+    [\c!command!]
+    []
+  \variable
+    [\c!na]
+    [\c!command!]
+    []
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!normaal]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!toevoegen]
+  \type
+    [\c!val!]
+  \value
+    [\v!klein,\v!middel,\v!groot]
+    [\v!middel]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definieeralineas]
+  \type
+    [\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \variable
+    [\c!n]
+    [\c!number!]
+    [2]
+  \variable
+    [\c!lijn]
+    [\v!aan,\v!uit]
+    [\v!uit]
+  \variable
+    [\c!hoogte]
+    [\v!passend,\c!dimension!]
+    [\v!passend]
+  \variable
+    [\c!voor]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [\c!na]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [\c!binnen]
+    [\c!command!]
+    []
+  \variable
+    [\c!afstand]
+    [\c!dimension!]
+    [1em]
+  \variable
+    [\c!tolerantie]
+    [\v!zeerstreng,\v!streng,\v!soepel,\v!zeersoepel,\v!rek]
+    [\v!soepel]
+  \variable
+    [\c!uitlijnen]
+    [\v!links,\v!rechts,\v!midden]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [<<\y!alinea>>]
+  \type
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\e!start<<\y!alinea>>]
+  \type
+    [\c!stp!]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelalineasin]
+  \type
+    [\c!val!\c!opt!\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!number!,\v!elk]
+    []
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!normaal]
+  \variable
+    [\c!breedte]
+    [\c!dimension!]
+    []
+  \variable
+    [\c!hoogte]
+    [\c!dimension!]
+    []
+  \variable
+    [\c!uitlijnen]
+    [\v!links,\v!rechts,\v!midden,\v!breedte]
+    [\c!breedte]
+  \variable
+    [\c!tolerantie]
+    [\v!zeerstreng,\v!streng,\v!soepel,\v!zeersoepel,\v!rek]
+    [\v!soepel]
+  \variable
+    [\c!afstand]
+    [\c!dimension!]
+    []
+  \variable
+    [\c!voor]
+    [\c!command!]
+    []
+  \variable
+    [\c!na]
+    [\c!command!]
+    []
+  \variable
+    [\c!binnen]
+    [\c!command!]
+    []
+  \variable
+    [\c!commando]
+    [\c!command!]
+    []
+  \variable
+    [\c!lijn]
+    [\v!aan,\v!uit]
+    [\v!uit]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!steltabin]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!monster]
+    [\c!text!]
+    []
+  \variable
+    [\c!breedte]
+    [\c!dimension!]
+    []
+  \variable
+    [\c!kopletter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!normaal]
+  \variable
+    [\c!plaats]
+    [\v!links,\v!rechts]
+    [\v!links]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!tab]
+  \type
+    [\c!arg!\c!nop!\c!par!]
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+% pragma6.tex
+
+\startsetup
+  \command
+    [\y!startdocument]
+  \type
+    [\c!val!\c!stp!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!brieven]
+  \type
+    [\c!val!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!labels]
+  \type
+    [\c!val!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelbrievenin]
+  \type
+    [\c!vals!]
+  \value
+    [\v!formeel,\v!informeel,\v!rekening,\v!ls,
+     \v!hoog,\v!midden,\v!laag]
+    [\v!formeel,\v!laag]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelsheetsin]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!variant]
+    [\c!number!]
+    []
+  \variable
+    [\c!tekst]
+    [\c!text!]
+    []
+  \variable
+    [\c!formaat]
+    [\v!klein,\v!middel,\v!groot]
+    [\v!middel]
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!normaal]
+  \variable
+    [\c!nummer]
+    [\c!number!,\v!aansluitend]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!sheet]
+  \type
+    [\c!val!]
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelstickersin]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!variant]
+    [a]
+    []
+  \variable
+    [\c!n]
+    [\c!number!,\v!alles]
+    [\c!val!]
+  \variable
+    [\c!plaats]
+    [\v!marge,\v!links,\v!rechts,\v!midden]
+    [\v!links]
+\stopsetup
+
+% *.tex
+
+\startsetup
+  \command
+    [\y!definetabulate]
+  \type
+    [\c!val!\c!opt!\c!val!\c!val!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\e!start\e!tabulate]
+  \type
+    [\c!opt!\c!val!\c!opt!\c!vars!\c!stp!]
+  \value
+    [\c!text!]
+    []
+  \inheritvariables
+    [\y!useexternalfigure]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setuptabulate]
+  \type
+    [\c!opt!\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \variable
+    [\c!eenheid]
+    [\c!dimension!]
+    [1em]
+  \variable
+    [\c!inspringen]
+    [\v!ja,\v!nee]
+    [\v!nee]
+  \variable
+    [\c!voor]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [\c!na]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [\c!binnen]
+    [\c!command!]
+    [\blanko]
+  \variable
+    [EQ]
+    [\c!text!]
+    [:]
+  \variable
+    [\c!lijnkleur]
+    [\c!identifier!]
+    []
+  \variable
+    [\c!uitlijnen]
+    [\v!links,\v!midden,\v!rechts,\v!normaal]
+    [\v!normaal]
+  \variable
+    [\c!lijndikte]
+    [\c!dimension!]
+    [\lijndikte]
+  \variable
+    [\c!afstand]
+    [\v!blanko,\v!diepte,\c!dimension!,\v!klein,\v!middel,\v!groot,\v!geen]
+    [\v!diepte,\v!middel]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!steltabellenin]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!afstand]
+    [\v!klein,\v!middel,\v!groot]
+    [\v!middel]
+  \variable
+    [\c!korps]
+    [5pt,...,12pt,\v!klein,\v!groot]
+    []
+  \variable
+    [HL]
+    [\c!number!,\v!klein,\v!middel,\v!groot,\v!geen]
+    [\v!middel]
+  \variable
+    [VL]
+    [\c!number!,\v!klein,\v!middel,\v!groot,\v!geen]
+    [\v!middel]
+  \variable
+    [\c!diepte]
+    [\c!number!,\v!strut]
+    [.40]
+  \variable
+    [\c!hoogte]
+    [\c!number!,\v!strut]
+    [80]
+  \variable
+    [\c!lijndikte]
+    [\c!dimension!]
+    [\lijndikte]
+  \variable
+    [\c!lijnkleur]
+    [\c!identifier!]
+    []
+  \variable
+    [\c!uitlijnen]
+    [\v!rechts,\v!midden,\v!links,\v!normaal]
+    [\v!rechts]
+  \variable
+    [\c!commandos]
+    [\c!command!]
+    []
+  \variable
+    [\c!uitlijnen]
+    [\v!links,\v!midden,\v!rechts,\v!normaal]
+    [\v!rechts]
+  \variable
+    [\c!achtergrond]
+    [\v!raster,\v!kleur,\v!geen]
+    [\v!geen]
+  \variable
+    [\c!achtergrondraster]
+    [\c!number!]
+    [0.9]
+  \variable
+    [\c!achtergrondkleur]
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!starttabel]
+  \type
+    [\c!val!\c!stp!]
+  \value
+    [\c!text!,\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!starttabellen]
+  \type
+    [\c!val!\c!stp!]
+  \value
+    [\c!text!,\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definetabletemplate]
+  \type
+    [\c!val!\c!val!\c!opt!\c!val!\c!opt!\c!val!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!gebruikexternefiles]
+  \type
+    [\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \variable
+    [\c!korps]
+    [5pt,...,12pt,\v!klein,\v!groot]
+    []
+  \variable
+    [\c!file]
+    [\c!filename!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!gebruikexternefile]
+  \type
+    [\c!val!\c!val!\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!filename!]
+    []
+  \variable
+    [\c!korps]
+    [5pt,...,12pt,\v!klein,\v!groot]
+    []
+\stopsetup
+
+% \startsetup
+%   \command
+%     [\y!presetexternfiguur]
+%   \type
+%     [\c!val!\c!vars!]
+%   \value
+%     [\c!filename!]
+%     []
+%   \variable
+%     [t]
+%     [eps,mps,pdf,tif,jpg,png]
+%     []
+%   \variable
+%     [w]
+%     [\c!dimension!]
+%     []
+%   \variable
+%     [h]
+%     [\c!dimension!]
+%     []
+%   \variable
+%     [s]
+%     [\c!number!]
+%     []
+%   \variable
+%     [t]
+%     [\c!text!]
+%     []
+% \stopsetup
+
+\startsetup
+  \command
+    [\y!useexternalfigure]
+  \type
+    [\c!opt!\c!val!\c!val!\c!opt!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!filename!]
+    []
+  \variable
+    [\c!schaal]
+    [\c!number!]
+    [1000]
+  \variable
+    [\c!factor]
+    [\v!max,\v!passend,\v!ruim]
+    []
+  \variable
+    [\c!bfactor]
+    [\c!number!,\v!max,\v!ruim,\v!passend]
+    []
+  \variable
+    [\c!hfactor]
+    [\c!number!,\v!max,\v!ruim,\v!passend]
+    []
+  \variable
+    [\c!breedte]
+    [\c!dimension!]
+    []
+  \variable
+    [\c!hoogte]
+    [\c!dimension!]
+    []
+  \variable
+    [\c!kader]
+    [\v!aan,\v!uit]
+    [\v!uit]
+  \variable
+    [\c!preset]
+    [\v!ja,\v!nee]
+    [\v!ja]
+  \variable
+    [\c!scherm]
+    [\c!filename!]
+    []
+  \variable
+    [\c!preview]
+    [\v!ja,\v!nee]
+    [\v!nee]
+  \variable
+    [\c!herhaal]
+    [\v!ja,\v!nee]
+    [\v!nee]
+  \variable
+    [\c!object]
+    [\v!ja,\v!nee]
+    [\v!ja]
+  \variable
+    [\c!type]
+    [\c!eps,\c!mps,\c!pdf,\c!tif,\c!png,\c!jpg,\c!mov,\c!tex]
+    []
+  \variable
+    [\c!methode]
+    [\c!eps,\c!mps,\c!pdf,\c!tif,\c!png,\c!jpg,\c!mov,\c!tex]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!externalfigure]
+  \type
+    [\c!val!\c!vars!]
+  \value
+    [\c!filename!]
+    []
+  \inheritvariables
+    [\y!useexternalfigure]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setupexternalfigures]
+  \type
+    [\c!var!]
+  \variable
+    [\c!optie]
+    [\v!kader,\v!leeg,\v!test]
+    []
+  \variable
+    [\c!object]
+    [\v!ja,\v!nee]
+    [\v!ja]
+  \variable
+    [\c!hokjes]
+    [\v!aan,\v!uit]
+    [\v!uit]
+  \variable
+    [\c!ymax]
+    [\c!number!]
+    [24]
+  \variable
+    [\c!xmax]
+    [\c!number!]
+    []
+  \variable
+    [\c!gebied]
+    [\c!text!]
+    []
+  \variable
+    [\c!plaats]
+    [\v!lokaal,\v!globaal,\v!default]
+    []
+  \variable
+    [\c!maxbreedte]
+    [\c!dimension!]
+    []
+  \variable
+    [\c!maxhoogte]
+    [\c!dimension!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!showexternalfigures]
+  \type
+    [\c!opt!\c!vars!]
+  \variable
+    [\c!variant]
+    [\v!a,\v!b,\v!c]
+    [\v!a]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!useexternalsoundtrack]
+  \type
+    [\c!val!\c!val!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!filename!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!naam]
+  \type
+    [\c!arg!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\e!start\e!legenda]
+  \type
+    [\c!opt!\c!val!\c!tex!{leg}\c!nop!\c!sep!\c!nop!\c!sep!\c!nop!\c!sep!\c!tex!{leg}\c!stp!]
+  \value
+     [\v!twee]
+     []
+  \value
+     [\c!text!]
+     []
+  \value
+     [\c!text!]
+     []
+  \value
+     [\c!text!]
+     []
+\stopsetup
+
+\startsetup
+  \command
+    [\e!start\e!gegeven]
+  \type
+    [\c!tex!{geg}\c!nop!\c!sep!\c!nop!\c!sep!\c!nop!\c!sep!\c!tex!{geg}\c!stp!]
+  \value
+     [\c!text!]
+     []
+  \value
+     [\c!text!]
+     []
+  \value
+     [\c!text!]
+     []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!roteer]
+  \type
+    [\c!opt!\c!vars!\c!arg!]
+  \inheritvariables
+    [\y!stelroterenin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelroterenin]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!rotatie]
+    [\c!number!]
+    [90]
+  \inheritvariables
+    [\y!setupframed]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!spiegel]
+  \type
+    [\c!arg!]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!schaal]
+  \type
+    [\c!opt!\c!vars!\c!arg!]
+  \variable
+    [\c!sx]
+    [\c!number!]
+    [1]
+ \variable
+    [\c!sy]
+    [\c!number!]
+    [1]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelcombinatiesin]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!voor]
+    [\c!commando]
+    []
+  \variable
+    [\c!tussen]
+    [\c!commando]
+    []
+  \variable
+    [\c!na]
+    [\c!commando]
+    []
+  \variable
+    [\c!afstand]
+    [\c!dimension!]
+    [1em]
+  \variable
+    [\c!hoogte]
+    [\c!dimension!,\v!passend]
+    [\v!passend]
+  \variable
+    [\c!breedte]
+    [\c!dimension!,\v!passend]
+    [\v!passend]
+  \variable
+    [\c!uitlijnen]
+    [\v!nee,\v!links,\v!rechts,\v!midden,\v!normaal]
+    [\v!midden]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!startcombinatie]
+  \type
+    [\c!val!\c!stp!]
+  \value
+    [\c!matrix!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!plaatsnaastelkaar]
+  \type
+    [\c!arg!\c!arg!]
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!plaatsonderelkaar]
+  \type
+    [\c!arg!\c!arg!]
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!startoverlay]
+  \type
+    [\c!arg!\c!arg!\c!stp!]
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+% pragma8.tex
+
+% \verwerkkontakten[naam,groep][actie][]
+% \verwerkfiguren[][overzicht][]
+
+\startsetup
+  \command
+    [\y!startoverzicht]
+  \type
+    [\c!vals!\c!stp!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+% core-01d.tex
+
+\startsetup
+  \command
+    [\y!stelinteractieschermin]
+  \type
+    [\c!alwint!\c!vars!]
+  \variable
+    [\c!breedte]
+    [\c!dimension!,\v!passend,\v!max]
+    [\papierbreedte]
+  \variable
+    [\c!hoogte]
+    [\c!dimension!,\v!passend,\v!max]
+    [\papierhoogte]
+  \variable
+    [\c!rugwit]
+    [\c!dimension!]
+    [\rugwit]
+  \variable
+    [\c!kopwit]
+    [\c!dimension!]
+    [\kopwit]
+  \variable
+    [\c!rugoffset]
+    [\c!dimension!]
+    [0pt]
+  \variable
+    [\c!kopoffset]
+    [\c!dimension!]
+    [0pt]
+  \variable
+    [\c!optie]
+    [\v!max,\v!bookmark]
+    []
+  \variable
+    [\c!wachttijd]
+    [\c!number!,\v!geen]
+    [\v!geen]
+\stopsetup
+
+\startsetup
+  \command[\y!scherm]
+  \type[\c!alwint!]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelpaginaovergangenin]
+  \type
+    [\c!opt!\c!vals!]
+  \value
+    [\v!reset,
+     %dissolve,box,split,blinds,wipe,glitter,
+     %vertical,horizontal,in,out,east,west,north,south,
+     \c!number!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setupinteraction]
+  \type
+    [\c!alwint!\c!vars!]
+  \variable
+    [\c!status]
+    [\v!start,\v!stop]
+    [\v!stop]
+  \variable
+    [\c!menu]
+    [\v!aan,\v!uit]
+    [\v!uit]
+  \variable
+    [\c!pagina]
+    [\v!ja,\v!nee]
+    [\v!nee]
+  \variable
+    [\c!klik]
+    [\v!ja,\v!nee]
+    [\v!ja]
+  \variable
+    [\c!splitsen]
+    [\v!ja,\v!nee]
+    [\v!ja]
+  \variable
+    [\c!scherm]
+    [\v!nieuw]
+    []
+  \variable
+    [\c!openactie]
+    [\c!reference!]
+    []
+  \variable
+    [\c!sluitactie]
+    [\c!reference!]
+    []
+  \variable
+    [\c!openpaginaactie]
+    [\c!reference!]
+    []
+  \variable
+    [\c!sluitpaginaactie]
+    [\c!reference!]
+    []
+  \variable
+    [\c!bereken]
+    [\c!identifier!]
+    []
+%  \variable
+%    [\c!scherm]
+%    [\v!normaal,\v!passend,\v!hoogte,\v!breedte]
+%    [\v!normaal]
+  \variable
+    [\c!strut]
+    [\v!ja,\v!nee]
+    [\v!ja]
+  \variable
+    [\c!breedte]
+    [\c!dimension!]
+    [1em]
+  \variable
+    [\c!hoogte]
+    [\c!dimension!]
+    [0pt]
+  \variable
+    [\c!diepte]
+    [\c!dimension!]
+    [0pt]
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...\c!command!]
+    [\v!vet]
+  \variable
+    [\c!kleur]
+    [\c!identifier!]
+    []
+  \variable
+    [\c!contrastkleur]
+    [\c!identifier!]
+    []
+  \variable
+    [\c!symboolset]
+    [\c!identifier!]
+    []
+  \variable
+    [\c!titel]
+    [\c!text!]
+    []
+  \variable
+    [\c!subtitel]
+    [\c!text!]
+    []
+  \variable
+    [\c!auteur]
+    [\c!text!]
+    []
+  \variable
+    [\c!datum]
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelinteractiemenuin]
+  \type
+    [\c!alwint!\c!vals!\c!opt!\c!vars!\c!opt!\c!dests!]
+  \value
+    [\v!links,\v!rechts,\v!boven,\v!onder,\c!identifier!]
+    []
+  \variable
+    [\c!voor]
+    [\c!command!]
+    []
+  \variable
+    [\c!na]
+    [\c!command!]
+    []
+  \variable
+    [\c!tussen]
+    [\c!command!]
+    []
+  \variable
+    [\c!links]
+    [\c!command!]
+    []
+  \variable
+    [\c!rechts]
+    [\c!command!]
+    []
+  \variable
+    [\c!midden]
+    [\c!command!]
+    []
+  \variable
+    [\c!status]
+    [\v!start,\v!stop,\v!geen,\v!lokaal]
+    [\v!start]
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...\c!command!]
+    [\v!vet]
+  \variable
+    [\c!kleur]
+    [\c!identifier!]
+    []
+  \variable
+    [\c!afstand]
+    [\v!overlay,\c!dimension!]
+    []
+  \variable
+    [\c!zelfdepagina]
+    [\v!ja,\v!leeg,\v!nee,\v!geen]
+    []
+  \variable
+    [\c!onbekendeverwijzing]
+    [\v!ja,\v!leeg,\v!nee,\v!geen]
+    []
+  \variable
+    [\c!linkeroffset]
+    [\c!dimension!]
+    [0pt]
+  \variable
+    [\c!rechteroffset]
+    [\c!dimension!]
+    [0pt]
+  \variable
+    [\c!bovenoffset]
+    [\c!dimension!]
+    [0pt]
+  \variable
+    [\c!onderoffset]
+    [\c!dimension!]
+    [0pt]
+  \variable
+    [\c!positie]
+    [\v!ja,\v!nee]
+    [\v!nee]
+  \inheritvariables
+    [\y!setupframed]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definieerinteractiemenu]
+  \type
+    [\c!alwint!\c!val!\c!opt!\c!val!\c!opt!\c!vars!]
+  \value
+    [\v!links,\v!rechts,\v!boven,\v!onder,\c!identifier!]
+    []
+  \value
+    [\v!links,\v!rechts,\v!boven,\v!onder,\c!identifier!]
+    []
+  \inheritvariables
+    [\y!stelinteractiemenuin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\e!start\e!interactiemenu]
+  \type
+    [\c!alwint!\c!val!\c!stp!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!blokkeerinteractiemenu]
+  \type
+    [\c!alwint!\c!val!\c!refs!]
+  \value
+    [\v!links,\v!rechts,\v!boven,\v!onder,\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!gebruikexterndocument]
+  \type
+    [\c!alwint!\c!val!\c!val!\c!val!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!file]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!gebruikURL]
+  \type
+    [\c!alwint!\c!val!\c!val!\c!val!\c!val!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!file]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!coupledocument]
+  \type
+    [\c!alwint!\c!val!\c!val!\c!val!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!file]
+    []
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command[\y!uit]
+  \type[\c!alwint!\c!ref!]
+  \value[\c!text!][]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!interactiebalk]
+  \type
+    [\c!alwint!\c!vars!]
+  \inheritvariables
+    [\y!stelinteractiebalkin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!interactiebuttons]
+  \type
+    [\c!alwint!\c!opt!\c!vars!\c!vals!]
+  \inheritvariables
+    [\y!stelinteractiebalkin]
+    []
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+% \interactiebalk[reset]
+
+\startsetup
+  \command
+    [\y!stelinteractiebalkin]
+  \type
+    [\c!alwint!\c!vars!]
+  \variable
+    [\c!status]
+    [\v!start,\v!stop]
+    [\v!start]
+  \variable
+    [\c!variant]
+    [a,b,c,d,e,f,g]
+    [b]
+  \variable
+    [\c!symbool]
+    [\v!ja,\v!nee]
+    [\v!nee]
+  \variable
+    [\c!breedte]
+    [\c!dimension!,\c!hoogte,\v!passend]
+    [3cm]
+  \variable
+    [\c!hoogte]
+    [\c!dimension!,\c!hoogte,\v!passend]
+    [\v!ruim]
+  \variable
+    [\c!diepte]
+    [\c!dimension!]
+    [0pt]
+  \variable
+    [\c!kleur]
+    [\c!identifier!]
+    []
+  \variable
+    [\c!stap]
+    [\c!number!,\v!klein,\v!middel,\v!groot]
+    [1]
+  \inheritvariables
+    [\y!setupframed]
+    []
+\stopsetup
+
+\startsetup
+ \command
+   [\y!synchroniseer]
+ \type
+   [\c!alwint!]
+\stopsetup
+
+\startsetup
+ \command
+   [\y!startsynchronisatie]
+ \type
+   [\c!alwint!\c!stp!]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelsynchronisatiebalkin]
+  \type
+    [\c!alwint!\c!vars!]
+  \variable
+    [\c!variant]
+    [\v!pagina,\v!lokaal]
+    [\v!pagina]
+  \variable
+    [\c!breedte]
+    [\c!dimension!,\c!hoogte,\v!passend]
+    [3cm]
+  \variable
+    [\c!hoogte]
+    [\c!dimension!]
+    [.5em]
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    [\v!vet]
+  \variable
+    [\c!kleur]
+    [\c!identifier!]
+    []
+  \inheritvariables
+    [\y!setupframed]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!synchronisatiebalk]
+  \type
+    [\c!alwint!\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \variable
+    [\c!variant]
+    [\v!pagina,\v!lokaal]
+    [\v!pagina]
+  \inheritvariables
+    [\y!stelsynchronisatiebalkin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelsynchronisatiein]
+  \type
+    [\c!alwint!\c!vars!]
+  \variable
+    [\c!status]
+    [\v!start,\v!stop]
+    [\v!stop]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definieerprofiel]
+  \type
+    [\c!alwint!\c!vals!\c!vals!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelprofielenin]
+  \type
+    [\c!alwint!\c!vars!]
+  \variable
+    [\c!optie]
+    [\v!test]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!startprofiel]
+  \type
+    [\c!alwint!\c!vals!\c!stp!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!volgprofiel]
+  \type
+    [\c!alwint!\c!arg!\c!val!]
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!placebookmarks]
+  \type
+    [\c!opt!\c!vals!\c!opt!\c!vals!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!bookmark]
+  \type
+    [\c!opt!\c!val!\c!arg!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!startversie]
+  \type
+    [\c!alwint!\c!vals!\c!stp!]
+  \value
+    [\c!number!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelversiesin]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!nummer]
+    [\c!number!]
+    [1]
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vet\v!schuin,\v!type,\v!kap,\v!klein...,\c!command!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!markeerversie]
+  \type
+    [\c!alwint!]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!selecteerversie]
+  \type
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definieerversie]
+  \type
+    [\c!val!\c!vals!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!number!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!volgversie]
+  \type
+    [\c!alwint!\c!arg!\c!val!]
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!volgprofielversie]
+  \type
+    [\c!alwint!\c!arg!\c!val!\c!val!]
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definieerprogramma]
+  \type
+    [\c!alwint!\c!val!\c!val!\c!val!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelprogrammasin]
+  \type
+    [\c!alwint!\c!vars!]
+  \variable
+    [\c!gebied]
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!programma]
+  \type
+    [\c!alwint!\c!val!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+% pragma11.tex
+
+\startsetup
+  \command
+    [\y!startfigure]
+  \type
+    [\c!alwint!\c!val!\c!val!\c!vars!\c!stp!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!filename!]
+    []
+  \variable
+    [\c!factor]
+    [\c!number!]
+    []
+  \variable
+    [\c!kader]
+    [\v!aan,\v!uit]
+    [\v!uit]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!referring\subsetup{\v!figuur}]
+  \type
+    [\c!poss!\c!poss!\c!val!]
+  \value
+    [\c!number!]
+    []
+ \value
+    [\c!number!]
+    []
+  \value
+    [\c!number!]
+    []
+  \value
+    [\c!number!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!marking\subsetup{\v!figuur}]
+  \type
+    [\c!poss!\c!poss!\c!val!]
+  \value
+    [\c!number!]
+    []
+  \value
+    [\c!number!]
+    []
+  \value
+    [\c!number!]
+    []
+  \value
+    [\c!number!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!remark]
+  \type
+    [\c!poss!\c!poss!\c!vars!\c!arg!]
+  \value
+    [\c!number!]
+    []
+  \value
+    [\c!number!]
+    []
+  \value
+    [\c!number!]
+    []
+  \value
+    [\c!number!]
+    []
+  \inheritvariables
+    [\y!setupframed]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!naar]
+  \type
+    [\c!alwint!\c!arg!\c!alwint!\c!arg!\c!refs!]
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!naarbox]
+  \type
+    [\c!alwint!\c!arg!\c!refs!]
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!button]
+  \type
+    [\c!alwint!\c!opt!\c!vars!\c!arg!\c!refs!]
+  \inheritvariables
+    [\y!stelbuttonsin]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelbuttonsin]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!status]
+    [\v!start,\v!stop]
+    [\v!start]
+  \inheritvariables
+    [\y!setupframed]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!menubutton]
+  \type
+    [\c!alwint!\c!opt!\c!val!\c!opt!\c!vars!\c!arg!\c!refs!]
+  \inheritvariables
+    [\y!setupframed]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!stelcommentaarin]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!breedte]
+    [\c!dimension!]
+    []
+  \variable
+    [\c!hoogte]
+    [\c!dimension!]
+    []
+  \variable
+    [\c!kleur]
+    [\c!identifier!]
+    []
+  \variable
+    [\c!titel]
+    [\c!text!]
+    []
+  \variable
+    [\c!spatie]
+    [\v!ja,\v!nee]
+    [\v!ja]
+  \variable
+    [\c!symbool]
+    [\v!normaal,\v!New,\v!Balloon,\v!Addition,\v!Help,\v!Paragraph,\v!Key]
+    [\v!normaal]
+  \variable
+    [\c!optie]
+    [\v!max]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\e!start\e!commentaar]
+  \type
+    [\c!opt!\c!val!\c!opt!\c!vars!\c!stp!]
+  \value
+    [\c!identifier!]
+    []
+  \inheritvariables
+    [\y!stelcommentaarin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!commentaar]
+  \type
+    [\c!opt!\c!val!\c!opt!\c!vars!\c!arg!]
+  \value
+    [\c!identifier!]
+    []
+  \inheritvariables
+    [\y!stelcommentaarin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definefield]
+  \type
+    [\c!val!\c!val!\c!val!\c!vals!\c!opt!\c!val!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!identifier!]
+    [radio,check,push,line,text,popup,choice,combo]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definesubfield]
+  \type
+    [\c!val!\c!val!\c!vals!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!copyfield]
+  \type
+    [\c!val!\c!vals!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!clonefield]
+  \type
+    [\c!val!\c!vals!\c!val!\c!opt!\c!vals!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!field]
+  \type
+    [\c!val!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!fitfield]
+  \type
+    [\c!val!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!fillinfield]
+  \type
+    [\c!opt!\c!val!\c!arg!]
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!tooltip]
+  \type
+    [\c!opt!\c!val!\c!arg!\c!arg!]
+  \value
+    [\v!links,\v!rechts,\v!midden]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!showfields]
+  \type
+    [\c!opt!\c!vals!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!logfields]
+  \type
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setupfield]
+  \type
+    [\c!val!\c!vals!\c!vars!\c!vars!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\v!label,\v!horizontaal,\v!vertikaal,\v!kader]
+    []
+  \inheritvariables
+    [\y!framed]
+    []
+  \inheritvariables
+    [\y!setupfields]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setupfields]
+  \type
+    [\c!vals!\c!val!\c!vars!\c!vars!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\v!reset,\v!label,\v!horizontaal,\v!vertikaal,\v!kader]
+    []
+  \inheritvariables
+    [\y!framed]
+    []
+  \variable
+    [\c!n]
+    [\c!number!]
+    []
+  \variable
+    [\c!afstand]
+    [\c!dimension!]
+    []
+  \variable
+    [\c!voor]
+    [\c!command!]
+    []
+  \variable
+    [\c!na]
+    [\c!command!]
+    []
+  \variable
+    [\c!tussen]
+    [\c!command!]
+    []
+  \variable
+    [\c!kleur]
+    [\c!identifier!]
+    []
+  \variable
+    [\c!letter]
+    [\v!normaal,\v!vet,\v!schuin,\v!vetschuin,\v!type]
+    [\v!normaal]
+  \variable
+    [\c!uitlijnen]
+    [\v!links,\v!midden,\v!rechts]
+    []
+  \variable
+    [\c!optie]
+    [\v!alleenleesbaar,\v!verplicht,\v!beschermd,\v!gesorteerd,
+     \v!nietbeschikbaar, \v!verborgen,\v!printbaar]
+    []
+  \variable
+    [\c!klikin]
+    [\c!reference!]
+    []
+  \variable
+    [\c!klikuit]
+    [\c!reference!]
+    []
+  \variable
+    [\c!gebiedin]
+    [\c!reference!]
+    []
+  \variable
+    [\c!gebieduit]
+    [\c!reference!]
+    []
+  \variable
+    [\c!natoets]
+    [\c!reference!]
+    []
+  \variable
+    [\c!formatteer]
+    [\c!reference!]
+    []
+  \variable
+    [\c!valideer]
+    [\c!reference!]
+    []
+  \variable
+    [\c!bereken]
+    [\c!reference!]
+    []
+  \variable
+    [\c!veldoffset]
+    [\c!dimension!]
+    [\!!zeropoint]
+  \variable
+    [\c!veldkaderkleur]
+    [\c!identifier!]
+    []
+  \variable
+    [\c!veldachtergrondkleur]
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setupforms]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!methode]
+    [HTML,FDF]
+    [HTML]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definefieldstack]
+  \type
+    [\c!val!\c!vals!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!identifier!]
+    []
+  \inheritvariables
+    [\y!setupfields]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!fieldstack]
+  \type
+    [\c!val!\c!opt!\c!vals!\c!opt!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!identifier!]
+    []
+  \inheritvariables
+    [\y!setupfields]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!clip]
+  \type
+    [\c!opt!\c!vars!\c!arg!]
+  \inheritvariables
+    [\y!setupclipping]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setupclipping]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!nx]
+    [\c!number!]
+    [2]
+  \variable
+    [\c!ny]
+    [\c!number!]
+    [2]
+  \variable
+    [\c!x]
+    [\c!number!]
+    [1]
+  \variable
+    [\c!y]
+    [\c!number!]
+    [1]
+  \variable
+    [\c!breedte]
+    [\c!dimension!]
+    [\!!zeropoint]
+  \variable
+    [\c!hoogte]
+    [\c!dimension!]
+    [\!!zeropoint]
+  \variable
+    [\c!hoffset]
+    [\c!dimension!]
+    [\!!zeropoint]
+  \variable
+    [\c!voffset]
+    [\c!dimension!]
+    [\!!zeropoint]
+  \variable
+    [mp]
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!placelegend]
+  \type
+    [\c!arg!\c!arg!]
+  \value
+    [\c!text!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setuplegend]
+  \type
+    [\c!vars!]
+  \variable
+    [\c!n]
+    [\c!number!]
+    [1]
+  \variable
+    [\c!afstand]
+    [\c!dimension!]
+    [1em]
+  \variable
+    [\c!tussen]
+    [\c!command!]
+    [] % [{\blanko[\v!middel]}]
+  \variable
+    [\c!breedte]
+    [\c!dimension!]
+    [\hsize]
+  \variable
+    [\c!hoogte]
+    [\c!dimension!]
+    [\vsize]
+  \variable
+    [\c!plaats]
+    [\v!rechts,\v!onder]
+    [\v!onder]
+  \variable
+    [\c!korps]
+    [5pt,...,12pt,\v!klein,\v!groot]
+    []
+\stopsetup
+
+%D new
+
+\startsetup
+  \command
+    [\y!definerule]
+  \type
+    [\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \inheritvariables
+    [\y!setuprule]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!placerule]
+  \type
+    [\c!val!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setuprule]
+  \type
+    [\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \variable
+    [\c!diepte]
+    [\c!dimension!]
+    [\!!zeropoint]
+  \variable
+    [\c!hoogte]
+    [\c!dimension!]
+    [\!!zeropoint]
+  \variable
+    [\c!breedte]
+    [\c!dimension!]
+    [\hsize]
+  \variable
+    [\c!voorwit]
+    [\c!dimension!]
+    [\!!zeropoint]
+  \variable
+    [\c!nawit]
+    [\c!dimension!]
+    [\!!zeropoint]
+  \variable
+    [\c!kleur]
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definetextvariable]
+  \type
+    [\c!val!\c!opt!\c!val!\c!opt!\c!vars!]
+  \inheritvariables
+    [\y!setuptextvariable]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setuptextvariable]
+  \type
+    [\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \variable
+    [\c!links]
+    [\c!text!]
+    []
+  \variable
+    [\c!rechts]
+    [\c!text!]
+    []
+  \variable
+    [\c!afstand]
+    [\c!dimension!]
+    [5em]
+  \variable
+    [\c!commando]
+    [\c!oneargument!]
+    []
+  \variable
+    [\c!strut]
+    [\v!ja,\v!nee,\v!kap,\c!text!]
+    [\c!ja]
+\stopsetup
+
+\startsetup
+  \command
+    [\y!settextvariable]
+  \type
+    [\c!val!\c!val!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!placetextvariable]
+  \type
+    [\c!val!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!textvariable]
+  \type
+    [\c!val!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definerawfont]
+  \type
+    [\c!val!\c!opt!\c!val!\c!opt!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!font!]
+    []
+  \inheritvariables
+    [\y!stelinterliniein]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!switchtorawfont]
+  \type
+    [\c!val!]
+  \value
+    [\c!identifier!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!definetextposition]
+  \type
+    [\c!val!\c!opt!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \inheritvariables
+    [\y!stelpositionerenin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setuptextposition]
+  \type
+    [\c!val!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
+  \inheritvariables
+    [\y!stelpositionerenin]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!positiontext]
+  \type
+    [\c!val!\c!arg!]
+  \value
+    [\c!identifier!]
+    []
+  \value
+    [\c!text!]
+    []
+\stopsetup
+
+\startsetup
+  \command
+    [\y!setupstrut]
+  \type
+    [\c!val!]
+  \value
+    [\v!ja,\v!nee,\v!kap,\c!text!]
+    [\v!ja]
+\stopsetup
+
+\stopsetupfile
diff --git a/tex/context/base/setupd.tex b/tex/context/base/setupd.tex
new file mode 100644
index 000000000..0cd91b802
--- /dev/null
+++ b/tex/context/base/setupd.tex
@@ -0,0 +1,182 @@
+%D \module
+%D   [       file=setupa,
+%D        version=1998.07.20,
+%D          title=\CONTEXT\ Setup Definitions,
+%D       subtitle=Help Generation,
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
+%C details. 
+
+\let\wait\relax
+
+\input setupa
+
+\unprotect
+
+% keys 
+
+\def\copymessage#1#2#3%
+  {\dogetmessage{setup}{#3}\edef#1{#2\currentmessagetext}}
+     
+\copymessage \c!command!        *      {command}
+\copymessage \c!dimension!      *      {dimension}
+\copymessage \c!filename!       *      {file}
+\copymessage \c!identifier!     *      {name}
+\copymessage \c!character!      *      {character}
+\copymessage \c!marker!         *      {mark}
+\copymessage \c!number!         *      {number}
+\copymessage \c!reference!      *      {reference}
+\copymessage \c!plural!         *      {plural}
+\copymessage \c!singular!       *      {singular}
+\copymessage \c!text!           *      {text}
+\copymessage \c!formula!        *      {formula}
+\copymessage \c!font!           *      {file}
+\copymessage \c!matrix!         *      {matrix}
+\copymessage \c!list!           *      {list}
+\copymessage \c!section!        *      {section}
+\copymessage \c!noargument!     \empty {command}
+\copymessage \c!oneargument!    \empty {command}
+\copymessage \c!twoarguments!   \empty {command}
+\copymessage \c!threearguments! \empty {command}
+
+\edef\c!noargument!    {*\@EA\string\csname\c!noargument!    \endcsname}
+\edef\c!oneargument!   {*\@EA\string\csname\c!oneargument!   \endcsname\string#1}
+\edef\c!twoarguments!  {*\@EA\string\csname\c!twoarguments!  \endcsname\string#1\string#2}
+\edef\c!threearguments!{*\@EA\string\csname\c!threearguments!\endcsname\string#1\string#2\string#3}
+
+\def\subsetup#1{/#1}
+
+\beginTEX 
+
+\def\getinterfaceconstant#1%
+  {\ifinterfacetranslation
+     \ifx\csname\x!prefix!#1\endcsname\relax
+       #1%
+     \else
+       \csname\x!prefix!#1\endcsname
+     \fi
+   \else
+     #1%
+   \fi}
+
+\def\getinterfacevariable#1%
+  {\ifinterfacetranslation
+     \ifx\csname\y!prefix!#1\endcsname\relax
+       #1%
+     \else
+       \csname\y!prefix!#1\endcsname
+     \fi
+   \else
+     #1%
+   \fi}
+
+\endTEX
+
+\beginETEX \ifcsname
+
+\def\getinterfaceconstant#1%
+  {\ifinterfacetranslation
+     \ifcsname\x!prefix!#1\endcsname
+       \csname\x!prefix!#1\endcsname
+     \else
+       #1%
+     \fi
+   \else
+     #1%
+   \fi}
+
+\def\getinterfacevariable#1%
+  {\ifinterfacetranslation
+     \ifcsname\y!prefix!#1\endcsname
+       \csname\y!prefix!#1\endcsname
+     \else
+       #1%
+     \fi
+   \else
+     #1%
+   \fi}
+
+\endETEX
+
+\def\c!repeat! {repeat/} % {n*}
+\def\c!arg!    {arg/}    % {{...}:}
+\def\c!args!   {args/}   % {{..,...,..}:}
+\def\c!dis!    {dis/}    % {$$...$$:}
+\def\c!idx!    {idx/}    % {{...}:}
+\def\c!idxs!   {idxs/}   % {{..+...+..}:}
+\def\c!mat!    {mat/}    % {$...$:}
+\def\c!nop!    {nop/}    % {...:}            
+\def\c!fil!    {fil/}    % {...:}            
+\def\c!pos!    {pos/}    % {(...):}
+\def\c!poss!   {poss/}   % {(...,...):}
+\def\c!sep!    {sep/}    % {\string\\:}
+\def\c!ref!    {ref/}    % {[ref]:}
+\def\c!refs!   {refs/}   % {[ref,..]:}
+\def\c!val!    {val/}    % {[...]:}
+\def\c!vals!   {vals/}   % {[..,...,..]:}
+\def\c!var!    {var/}    % {[..=..]:} 
+\def\c!vars!   {vars/}   % {[..,..=..,..]:}
+\def\c!cmd!    {cmd/}    % {\string\xxx:}
+\def\c!dest!   {dest/}   % {[..ref]:}
+\def\c!dests!  {dests/}  % {[..,..refs,..]:}
+\def\c!trip!   {trip/}   % {[x:y:z=]:}
+\def\c!trips!  {trips/}  % {[x:y:z=,..]:}
+\def\c!wrd!    {wrd/}    % {{...}:}
+\def\c!wrds!   {wrds/}   % {{.. ... ..}:}
+\def\c!par!    {par/}    % {\string\par:}
+\def\c!stp!    {stp/}    % {stop:}
+\def\c!tex!    {tex/}    % {\string\cs:}
+
+\def\c!or!     {}        % tzt or 
+
+\def\c!opt!    {}        %
+\def\c!optint! {}        %
+\def\c!alwint! {}        %
+
+% wrapper 
+
+\def\startsetupfile
+  {\immediate\openout\scratchwrite=cont-\currentlanguage.tws }
+
+\def\stopsetupfile
+  {\immediate\closeout\scratchwrite}
+
+\let\documenteduntilhere\relax
+
+\long\def\startsetup#1\stopsetup % the :'s serve as breakpoints
+  {\bgroup
+   \long\def\command         [##1]%
+     {\immediate\write\scratchwrite{com:##1:}}%
+   \long\def\type            [##1]%
+     {\immediate\write\scratchwrite{typ:##1:}}%
+   \long\def\value           [##1]##2[##3]%
+     {\immediate\write\scratchwrite{val:##1:##3:}}%
+   \long\def\variable        [##1]##2[##3]##4[##5]%
+     {\convertsetupdata{##5}\ascii
+      \edef\temp{\getinterfaceconstant{##1}}%
+      \immediate\write\scratchwrite{var:\temp:##3:\ascii:}}%
+   \long\def\inheritvalues   [##1]##2[##3]%
+     {\immediate\write\scratchwrite{ivl:##1:##3:}}%
+   \long\def\inheritvariables[##1]##2[##3]%
+     {\convertsetupdata{##3}\ascii
+      \immediate\write\scratchwrite{ivr:##1:\ascii:}}%
+   \immediate\write\scratchwrite{startsetup}%
+   #1%
+   \immediate\write\scratchwrite{stopsetup}%
+   \immediate\write\scratchwrite{}%
+   \egroup}
+
+\let\stopsetup\relax
+
+\def\convertsetupdata#1#2% only accept #1=\v!whatever
+  {\doifsystemconstantelse{#1}{\edef#2{#1}}{\let#2\empty}}
+
+\input setupb 
+
+\protect
+
+\end
diff --git a/tex/context/base/supp-box.tex b/tex/context/base/supp-box.tex
index 0cdf9251b..c2640e157 100644
--- a/tex/context/base/supp-box.tex
+++ b/tex/context/base/supp-box.tex
@@ -2029,14 +2029,16 @@
 \def\@@stacklst{@xob@}
 
 \def\setstackbox#1#2%
-  {\ifcsname\csname\@otr@:\number#1:\number#2\endcsname\else
+  {\ifcsname\@@stackbox:#1:#2\endcsname\else
      \expandafter\newbox\csname\@@stackbox:#1:#2\endcsname
    \fi
    \global\setbox\csname\@@stackbox:#1:#2\endcsname\vbox}
 
 \def\initializeboxstack#1%
   {\def\docommando##1{\setstackbox{#1}{##1}{}}%
-   \processcommacommand[\getvalue{\@@stacklst#1}]\docommando
+   \ifcsname\@@stacklst#1\endcsname 
+     \processcommacommand[\getvalue{\@@stacklst#1}]\docommando
+   \fi
    \setgvalue{\@@stacklst#1}{}}
 
 \def\savebox#1#2% stack name
@@ -2045,13 +2047,13 @@
 
 \def\foundbox#1#2%
   {\vbox
-     {\ifcsname\csname\@@stackbox:#1:#2\endcsname
+     {\ifcsname\@@stackbox:#1:#2\endcsname
         \copy\csname\@@stackbox:#1:#2\endcsname
       \fi}}
 
 \long\def\doifboxelse#1#2#3#4%
-  {\ifcsname\csname\@@stackbox:#1:#2\endcsname
-     \ifvoid\csname\csname\@@stackbox:#1:#2\endcsname#4\else#3\fi
+  {\ifcsname\@@stackbox:#1:#2\endcsname
+     \ifvoid\csname\@@stackbox:#1:#2\endcsname#4\else#3\fi
    \else
      #4%
    \fi}
diff --git a/tex/context/base/supp-fil.tex b/tex/context/base/supp-fil.tex
index d1f237815..2b9acd12f 100644
--- a/tex/context/base/supp-fil.tex
+++ b/tex/context/base/supp-fil.tex
@@ -393,7 +393,7 @@
   {\doiffileelse{\pathplusfile{\f!currentpath}{#1}}}
 
 %D \macros
-%D   {doonlyonce, doinputonce}
+%D   {doonlyonce, doinputonce, doendinputonce}
 %D   
 %D Especially macropackages need only be loaded once.
 %D Repetitive loading not only costs time, relocating registers
@@ -403,7 +403,8 @@
 %D
 %D \starttypen
 %D \doonlyonce{actions}
-%D \doloadonce{filename}
+%D \doinputonce{filename}
+%D \doendinputonce{filename}
 %D \stoptypen
 %D
 %D This command obeys the standard method for locating files. 
@@ -414,6 +415,9 @@
 \def\doinputonce#1%
   {\doonlyonce{#1}{\doiffileelse{#1}{\normalinput #1\relax}{}}}
 
+\def\doendinputonce#1%
+  {\doifdefined{@@@#1@@@}{\endinput}}
+
 %D \macros
 %D   {doifparentfileelse}
 %D
diff --git a/tex/context/base/syst-con.tex b/tex/context/base/syst-con.tex
index b3af03237..2df621b64 100644
--- a/tex/context/base/syst-con.tex
+++ b/tex/context/base/syst-con.tex
@@ -21,7 +21,7 @@
 %D module. 
 
 %D \macros 
-%D   {lchexnumber,uchexnumber,lchexnumbers}
+%D   {lchexnumber,uchexnumber,lchexnumbers,uchexnumbers}
 %D
 %D In addition to the uppercase hex conversion, as needed in 
 %D math families, we occasionally need a lowercase one, for 
@@ -56,6 +56,25 @@
      e0\or e1\or e2\or e3\or e4\or e5\or e6\or e7\or e8\or e9\or ea\or eb\or ec\or ed\or ee\or ef\or
      f0\or f1\or f2\or f3\or f4\or f5\or f6\or f7\or f8\or f9\or fa\or fb\or fc\or fd\or fe\or ff\fi}
 
+\def\uchexnumbers#1%
+  {\ifcase#1
+     00\or 01\or 02\or 03\or 04\or 05\or 06\or 07\or 08\or 09\or 0A\or 0B\or 0C\or 0D\or 0E\or 0F\or
+     10\or 11\or 12\or 13\or 14\or 15\or 16\or 17\or 18\or 19\or 1A\or 1B\or 1C\or 1D\or 1E\or 1F\or
+     20\or 21\or 22\or 23\or 24\or 25\or 26\or 27\or 28\or 29\or 2A\or 2B\or 2C\or 2D\or 2E\or 2F\or
+     30\or 31\or 32\or 33\or 34\or 35\or 36\or 37\or 38\or 39\or 3A\or 3B\or 3C\or 3D\or 3E\or 3F\or
+     40\or 41\or 42\or 43\or 44\or 45\or 46\or 47\or 48\or 49\or 4A\or 4B\or 4C\or 4D\or 4E\or 4F\or
+     50\or 51\or 52\or 53\or 54\or 55\or 56\or 57\or 58\or 59\or 5A\or 5B\or 5C\or 5D\or 5E\or 5F\or
+     60\or 61\or 62\or 63\or 64\or 65\or 66\or 67\or 68\or 69\or 6A\or 6B\or 6C\or 6D\or 6E\or 6F\or
+     70\or 71\or 72\or 73\or 74\or 75\or 76\or 77\or 78\or 79\or 7A\or 7B\or 7C\or 7D\or 7E\or 7F\or
+     80\or 81\or 82\or 83\or 84\or 85\or 86\or 87\or 88\or 89\or 8A\or 8B\or 8C\or 8D\or 8E\or 8F\or
+     90\or 91\or 92\or 93\or 94\or 95\or 96\or 97\or 98\or 99\or 9A\or 9B\or 9C\or 9D\or 9E\or 9F\or
+     A0\or A1\or A2\or A3\or A4\or A5\or A6\or A7\or A8\or A9\or AA\or AB\or AC\or AD\or AE\or AF\or
+     B0\or B1\or B2\or B3\or B4\or B5\or B6\or B7\or B8\or B9\or BA\or BB\or BC\or BD\or BE\or BF\or
+     C0\or C1\or C2\or C3\or C4\or C5\or C6\or C7\or C8\or C9\or CA\or CB\or CC\or CD\or CE\or CF\or
+     D0\or D1\or D2\or D3\or D4\or D5\or D6\or D7\or D8\or D9\or DA\or DB\or DC\or DD\or DE\or DF\or
+     E0\or E1\or E2\or E3\or E4\or E5\or E6\or E7\or E8\or E9\or EA\or EB\or EC\or ED\or EE\or EF\or
+     F0\or F1\or F2\or F3\or F4\or F5\or F6\or F7\or F8\or F9\or FA\or FB\or FC\or FD\or FE\or FF\fi}
+
 %D \macros 
 %D   {octnumber}
 %D
diff --git a/tex/context/base/syst-gen.tex b/tex/context/base/syst-gen.tex
index c08ea8229..c43dc7ca1 100644
--- a/tex/context/base/syst-gen.tex
+++ b/tex/context/base/syst-gen.tex
@@ -808,7 +808,7 @@
 
 \endTEX
 
-\beginETEX
+\beginETEX \undefined
 
 \def\letbeundefined#1% 
   {\expandafter\let\csname#1\endcsname\undefined}
diff --git a/tex/context/base/syst-new.tex b/tex/context/base/syst-new.tex
index 6c321f5e5..9224725d2 100644
--- a/tex/context/base/syst-new.tex
+++ b/tex/context/base/syst-new.tex
@@ -191,9 +191,12 @@
    \retestfeature}
 
 \def\retestfeature%
-  {\message{starting feature test}\wait
+  {\bgroup
+   \ifcase\interactionmode\let\wait\relax\fi
+   \message{starting feature test}\wait
    \featuretest=-1 \dotestfeature
-   \message{feature test done}\wait}
+   \message{feature test done}\wait
+   \egroup}
 
 %D \macros
 %D   {adddimenregister,adddimenmacro}
diff --git a/tex/context/base/thrd-ran.tex b/tex/context/base/thrd-ran.tex
index 24898df51..9dd509492 100644
--- a/tex/context/base/thrd-ran.tex
+++ b/tex/context/base/thrd-ran.tex
@@ -90,10 +90,15 @@
  \ifnum\ranval<\@tempcnta\else \expandafter\getr@nval \fi
 }
 
-\def\pointless{\expandafter\PoinTless\the}
-{\catcode`p=12 \catcode`t=12 
-\gdef\PoinTless#1pt{#1}}
-
+%D The next macro is not needed in \CONTEXT, which provides 
+%D the \type {\withoutpt} macro. 
+%D
+%D \starttypen  
+%D \def\pointless{\expandafter\PoinTless\the}
+%D {\catcode`p=12 \catcode`t=12 
+%D \gdef\PoinTless#1pt{#1}}
+%D \stoptypen 
+ 
 \catcode`\@=\randomi
 \global\randomi=0
 \newcount\ranval
diff --git a/tex/context/base/type-enc.tex b/tex/context/base/type-enc.tex
new file mode 100644
index 000000000..852bce272
--- /dev/null
+++ b/tex/context/base/type-enc.tex
@@ -0,0 +1,528 @@
+%D \module
+%D   [       file=type-enc,
+%D        version=2001.04.12,
+%D          title=\CONTEXT\ Typescript Macros,
+%D       subtitle=Encoding scripts,
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% Computer Modern Roman
+
+\starttypescript [all] [computer-modern] [ec]
+  \definefontsynonym [cmb10]    [aeb10]    [encoding=ec]
+  \definefontsynonym [cmbx10]   [aebx10]   [encoding=ec]
+  \definefontsynonym [cmbx12]   [aebx12]   [encoding=ec]
+  \definefontsynonym [cmbx5]    [aebx5]    [encoding=ec]
+  \definefontsynonym [cmbx6]    [aebx6]    [encoding=ec]
+  \definefontsynonym [cmbx7]    [aebx7]    [encoding=ec]
+  \definefontsynonym [cmbx8]    [aebx8]    [encoding=ec]
+  \definefontsynonym [cmbx9]    [aebx9]    [encoding=ec]
+  \definefontsynonym [cmbxsl10] [aebxsl10] [encoding=ec]
+  \definefontsynonym [cmbxti10] [aebxti10] [encoding=ec]
+  \definefontsynonym [cmcsc10]  [aecsc10]  [encoding=ec]
+  \definefontsynonym [cmitt10]  [aeitt10]  [encoding=ec]
+  \definefontsynonym [cmr10]    [aer10]    [encoding=ec]
+  \definefontsynonym [cmr12]    [aer12]    [encoding=ec]
+  \definefontsynonym [cmr17]    [aer17]    [encoding=ec]
+  \definefontsynonym [cmr5]     [aer5]     [encoding=ec]
+  \definefontsynonym [cmr6]     [aer6]     [encoding=ec]
+  \definefontsynonym [cmr7]     [aer7]     [encoding=ec]
+  \definefontsynonym [cmr8]     [aer8]     [encoding=ec]
+  \definefontsynonym [cmr9]     [aer9]     [encoding=ec]
+  \definefontsynonym [cmsl10]   [aesl10]   [encoding=ec]
+  \definefontsynonym [cmsl12]   [aesl12]   [encoding=ec]
+  \definefontsynonym [cmsl8]    [aesl8]    [encoding=ec]
+  \definefontsynonym [cmsl9]    [aesl9]    [encoding=ec]
+  \definefontsynonym [cmsltt10] [aesltt10] [encoding=ec]
+  \definefontsynonym [cmss10]   [aess10]   [encoding=ec]
+  \definefontsynonym [cmss12]   [aess12]   [encoding=ec]
+  \definefontsynonym [cmss17]   [aess17]   [encoding=ec]
+  \definefontsynonym [cmss8]    [aess8]    [encoding=ec]
+  \definefontsynonym [cmss9]    [aess9]    [encoding=ec]
+  \definefontsynonym [cmssbx10] [aessbx10] [encoding=ec]
+  \definefontsynonym [cmssdc10] [aessdc10] [encoding=ec]
+  \definefontsynonym [cmssi10]  [aessi10]  [encoding=ec]
+  \definefontsynonym [cmssi12]  [aessi12]  [encoding=ec]
+  \definefontsynonym [cmssi17]  [aessi17]  [encoding=ec]
+  \definefontsynonym [cmssi8]   [aessi8]   [encoding=ec]
+  \definefontsynonym [cmssi9]   [aessi9]   [encoding=ec]
+  \definefontsynonym [cmtcsc10] [aetcsc10] [encoding=ec]
+  \definefontsynonym [cmti10]   [aeti10]   [encoding=ec]
+  \definefontsynonym [cmti12]   [aeti12]   [encoding=ec]
+  \definefontsynonym [cmti7]    [aeti7]    [encoding=ec]
+  \definefontsynonym [cmti8]    [aeti8]    [encoding=ec]
+  \definefontsynonym [cmti9]    [aeti9]    [encoding=ec]
+  \definefontsynonym [cmtt10]   [aett10]   [encoding=ec]
+  \definefontsynonym [cmtt12]   [aett12]   [encoding=ec]
+  \definefontsynonym [cmtt8]    [aett8]    [encoding=ec]
+  \definefontsynonym [cmtt9]    [aett9]    [encoding=ec]
+\stoptypescript
+
+\starttypescript [all] [computer-modern] [il2]
+  \definefontsynonym [cmb10]    [csb10]    [encoding=il2]
+  \definefontsynonym [cmbx10]   [csbx10]   [encoding=il2]
+  \definefontsynonym [cmbx12]   [csbx12]   [encoding=il2]
+  \definefontsynonym [cmbx5]    [csbx5]    [encoding=il2]
+  \definefontsynonym [cmbx6]    [csbx6]    [encoding=il2]
+  \definefontsynonym [cmbx7]    [csbx7]    [encoding=il2]
+  \definefontsynonym [cmbx8]    [csbx8]    [encoding=il2]
+  \definefontsynonym [cmbx9]    [csbx9]    [encoding=il2]
+  \definefontsynonym [cmbxsl10] [csbxsl10] [encoding=il2]
+  \definefontsynonym [cmbxti10] [csbxti10] [encoding=il2]
+  \definefontsynonym [cmcsc10]  [cscsc10]  [encoding=il2]
+  \definefontsynonym [cmdunh10] [csdunh10] [encoding=il2]
+  \definefontsynonym [cmff10]   [csff10]   [encoding=il2]
+  \definefontsynonym [cmfi10]   [csfi10]   [encoding=il2]
+  \definefontsynonym [cmfib8]   [csfib8]   [encoding=il2]
+  \definefontsynonym [cminch]   [csinch]   [encoding=il2]
+  \definefontsynonym [cmitt10]  [csitt10]  [encoding=il2]
+  \definefontsynonym [cmr10]    [csr10]    [encoding=il2]
+  \definefontsynonym [cmr12]    [csr12]    [encoding=il2]
+  \definefontsynonym [cmr17]    [csr17]    [encoding=il2]
+  \definefontsynonym [cmr5]     [csr5]     [encoding=il2]
+  \definefontsynonym [cmr6]     [csr6]     [encoding=il2]
+  \definefontsynonym [cmr7]     [csr7]     [encoding=il2]
+  \definefontsynonym [cmr8]     [csr8]     [encoding=il2]
+  \definefontsynonym [cmr9]     [csr9]     [encoding=il2]
+  \definefontsynonym [cmsl10]   [cssl10]   [encoding=il2]
+  \definefontsynonym [cmsl12]   [cssl12]   [encoding=il2]
+  \definefontsynonym [cmsl8]    [cssl8]    [encoding=il2]
+  \definefontsynonym [cmsl9]    [cssl9]    [encoding=il2]
+  \definefontsynonym [cmsltt10] [cssltt10] [encoding=il2]
+  \definefontsynonym [cmss10]   [csss10]   [encoding=il2]
+  \definefontsynonym [cmss12]   [csss12]   [encoding=il2]
+  \definefontsynonym [cmss17]   [csss17]   [encoding=il2]
+  \definefontsynonym [cmss8]    [csss8]    [encoding=il2]
+  \definefontsynonym [cmss9]    [csss9]    [encoding=il2]
+  \definefontsynonym [cmssbx10] [csssbx10] [encoding=il2]
+  \definefontsynonym [cmssdc10] [csssdc10] [encoding=il2]
+  \definefontsynonym [cmssi10]  [csssi10]  [encoding=il2]
+  \definefontsynonym [cmssi12]  [csssi12]  [encoding=il2]
+  \definefontsynonym [cmssi17]  [csssi17]  [encoding=il2]
+  \definefontsynonym [cmssi8]   [csssi8]   [encoding=il2]
+  \definefontsynonym [cmssi9]   [csssi9]   [encoding=il2]
+  \definefontsynonym [cmssq8]   [csssq8]   [encoding=il2]
+  \definefontsynonym [cmssqi8]  [csssqi8]  [encoding=il2]
+  \definefontsynonym [cmtcsc10] [cstcsc10] [encoding=il2]
+  \definefontsynonym [cmti10]   [csti10]   [encoding=il2]
+  \definefontsynonym [cmti12]   [csti12]   [encoding=il2]
+  \definefontsynonym [cmti7]    [csti7]    [encoding=il2]
+  \definefontsynonym [cmti8]    [csti8]    [encoding=il2]
+  \definefontsynonym [cmti9]    [csti9]    [encoding=il2]
+  \definefontsynonym [cmtt10]   [cstt10]   [encoding=il2]
+  \definefontsynonym [cmtt12]   [cstt12]   [encoding=il2]
+  \definefontsynonym [cmtt8]    [cstt8]    [encoding=il2]
+  \definefontsynonym [cmtt9]    [cstt9]    [encoding=il2]
+  \definefontsynonym [cmu10]    [csu10]    [encoding=il2]
+  \definefontsynonym [cmvtt10]  [csvtt10]  [encoding=il2]
+\stoptypescript
+
+\starttypescript [all] [computer-modern] [pl0]
+  \definefontsynonym [cmb10]    [plb10]    [encoding=pl0]
+  \definefontsynonym [cmbsy10]  [plbsy10]  [encoding=pl0]
+  \definefontsynonym [cmbx10]   [plbx10]   [encoding=pl0]
+  \definefontsynonym [cmbx12]   [plbx12]   [encoding=pl0]
+  \definefontsynonym [cmbx5]    [plbx5]    [encoding=pl0]
+  \definefontsynonym [cmbx6]    [plbx6]    [encoding=pl0]
+  \definefontsynonym [cmbx7]    [plbx7]    [encoding=pl0]
+  \definefontsynonym [cmbx8]    [plbx8]    [encoding=pl0]
+  \definefontsynonym [cmbx9]    [plbx9]    [encoding=pl0]
+  \definefontsynonym [cmbxsl10] [plbxsl10] [encoding=pl0]
+  \definefontsynonym [cmbxti10] [plbxti10] [encoding=pl0]
+  \definefontsynonym [cmcsc10]  [plcsc10]  [encoding=pl0]
+  \definefontsynonym [cmdunh10] [pldunh10] [encoding=pl0]
+  \definefontsynonym [cmex10]   [plex10]   [encoding=pl0]
+  \definefontsynonym [cmex9]    [plex9]    [encoding=pl0]
+  \definefontsynonym [cmff10]   [plff10]   [encoding=pl0]
+  \definefontsynonym [cmfi10]   [plfi10]   [encoding=pl0]
+  \definefontsynonym [cmfib8]   [plfib8]   [encoding=pl0]
+  \definefontsynonym [cminch]   [plinch]   [encoding=pl0]
+  \definefontsynonym [cmitt10]  [plitt10]  [encoding=pl0]
+  \definefontsynonym [cmmi10]   [plmi10]   [encoding=pl0]
+  \definefontsynonym [cmmi12]   [plmi12]   [encoding=pl0]
+  \definefontsynonym [cmmi5]    [plmi5]    [encoding=pl0]
+  \definefontsynonym [cmmi6]    [plmi6]    [encoding=pl0]
+  \definefontsynonym [cmmi7]    [plmi7]    [encoding=pl0]
+  \definefontsynonym [cmmi8]    [plmi8]    [encoding=pl0]
+  \definefontsynonym [cmmi9]    [plmi9]    [encoding=pl0]
+  \definefontsynonym [cmmib10]  [plmib10]  [encoding=pl0]
+  \definefontsynonym [cmr10]    [plr10]    [encoding=pl0]
+  \definefontsynonym [cmr12]    [plr12]    [encoding=pl0]
+  \definefontsynonym [cmr17]    [plr17]    [encoding=pl0]
+  \definefontsynonym [cmr5]     [plr5]     [encoding=pl0]
+  \definefontsynonym [cmr6]     [plr6]     [encoding=pl0]
+  \definefontsynonym [cmr7]     [plr7]     [encoding=pl0]
+  \definefontsynonym [cmr8]     [plr8]     [encoding=pl0]
+  \definefontsynonym [cmr9]     [plr9]     [encoding=pl0]
+  \definefontsynonym [cmsl10]   [plsl10]   [encoding=pl0]
+  \definefontsynonym [cmsl12]   [plsl12]   [encoding=pl0]
+  \definefontsynonym [cmsl8]    [plsl8]    [encoding=pl0]
+  \definefontsynonym [cmsl9]    [plsl9]    [encoding=pl0]
+  \definefontsynonym [cmsltt10] [plsltt10] [encoding=pl0]
+  \definefontsynonym [cmss10]   [plss10]   [encoding=pl0]
+  \definefontsynonym [cmss12]   [plss12]   [encoding=pl0]
+  \definefontsynonym [cmss17]   [plss17]   [encoding=pl0]
+  \definefontsynonym [cmss8]    [plss8]    [encoding=pl0]
+  \definefontsynonym [cmss9]    [plss9]    [encoding=pl0]
+  \definefontsynonym [cmssbi10] [plssbi10] [encoding=pl0]
+  \definefontsynonym [cmssbx10] [plssbx10] [encoding=pl0]
+  \definefontsynonym [cmssdc10] [plssdc10] [encoding=pl0]
+  \definefontsynonym [cmssi10]  [plssi10]  [encoding=pl0]
+  \definefontsynonym [cmssi12]  [plssi12]  [encoding=pl0]
+  \definefontsynonym [cmssi17]  [plssi17]  [encoding=pl0]
+  \definefontsynonym [cmssi8]   [plssi8]   [encoding=pl0]
+  \definefontsynonym [cmssi9]   [plssi9]   [encoding=pl0]
+  \definefontsynonym [cmssq8]   [plssq8]   [encoding=pl0]
+  \definefontsynonym [cmssqi8]  [plssqi8]  [encoding=pl0]
+  \definefontsynonym [cmsy10]   [plsy10]   [encoding=pl0]
+  \definefontsynonym [cmsy5]    [plsy5]    [encoding=pl0]
+  \definefontsynonym [cmsy6]    [plsy6]    [encoding=pl0]
+  \definefontsynonym [cmsy7]    [plsy7]    [encoding=pl0]
+  \definefontsynonym [cmsy8]    [plsy8]    [encoding=pl0]
+  \definefontsynonym [cmsy9]    [plsy9]    [encoding=pl0]
+  \definefontsynonym [cmtcsc10] [pltcsc10] [encoding=pl0]
+  \definefontsynonym [cmtex10]  [pltex10]  [encoding=pl0]
+  \definefontsynonym [cmtex8]   [pltex8]   [encoding=pl0]
+  \definefontsynonym [cmtex9]   [pltex9]   [encoding=pl0]
+  \definefontsynonym [cmti10]   [plti10]   [encoding=pl0]
+  \definefontsynonym [cmti12]   [plti12]   [encoding=pl0]
+  \definefontsynonym [cmti7]    [plti7]    [encoding=pl0]
+  \definefontsynonym [cmti8]    [plti8]    [encoding=pl0]
+  \definefontsynonym [cmti9]    [plti9]    [encoding=pl0]
+  \definefontsynonym [cmtt10]   [pltt10]   [encoding=pl0]
+  \definefontsynonym [cmtt12]   [pltt12]   [encoding=pl0]
+  \definefontsynonym [cmtt8]    [pltt8]    [encoding=pl0]
+  \definefontsynonym [cmtt9]    [pltt9]    [encoding=pl0]
+  \definefontsynonym [cmu10]    [plu10]    [encoding=pl0]
+  \definefontsynonym [cmvtt10]  [plvtt10]  [encoding=pl0]
+\stoptypescript
+
+\starttypescript [serif] [computer-modern] [default]
+  \definefontsynonym [ComputerModern]             [cmr10]
+  \definefontsynonym [ComputerModern-Bold]        [cmbx10]
+  \definefontsynonym [ComputerModern-Italic]      [cmti10]
+  \definefontsynonym [ComputerModern-Slanted]     [cmsl10]
+  \definefontsynonym [ComputerModern-BoldItalic]  [cmbxti10]
+  \definefontsynonym [ComputerModern-BoldSlanted] [cmbxsl10]
+  \definefontsynonym [ComputerModern-Caps]        [cmr10]
+\stoptypescript
+
+\starttypescript [sans] [computer-modern] [default]
+  \definefontsynonym [ComputerModernSans]             [cmss10]
+  \definefontsynonym [ComputerModernSans-Bold]        [cmssbx10]
+  \definefontsynonym [ComputerModernSans-Italic]      [cmssi10]
+  \definefontsynonym [ComputerModernSans-Slanted]     [cmssi10]
+  \definefontsynonym [ComputerModernSans-BoldItalic]  [cmssbx10]
+  \definefontsynonym [ComputerModernSans-BoldSlanted] [cmssbx10]
+  \definefontsynonym [ComputerModernSans-Caps]        [cmss10]
+\stoptypescript
+
+\starttypescript [mono] [computer-modern] [default]
+  \definefontsynonym [ComputerModernMono]             [cmtt10]
+  \definefontsynonym [ComputerModernMono-Bold]        [cmtt10]
+  \definefontsynonym [ComputerModernMono-Italic]      [cmitt10]
+  \definefontsynonym [ComputerModernMono-Slanted]     [cmsltt10]
+  \definefontsynonym [ComputerModernMono-BoldItalic]  [cmtt10]
+  \definefontsynonym [ComputerModernMono-BoldSlanted] [cmtt10]
+  \definefontsynonym [ComputerModernMono-Caps]        [cmtt10]
+\stoptypescript
+
+\starttypescript [math] [computer-modern] [default]
+  \definefontsynonym [ComputerModernMath-Roman]     [cmr10]
+  \definefontsynonym [ComputerModernMath-Extension] [cmex10]
+  \definefontsynonym [ComputerModernMath-Italic]    [cmmi10]
+  \definefontsynonym [ComputerModernMath-Symbol]    [cmsy10]
+\stoptypescript
+
+% Computer Concrete
+
+\starttypescript [serif] [concrete] [default]
+  \definefontsynonym [ComputerConcrete]         [ccr10]
+  \definefontsynonym [ComputerConcrete]         [ccr10]
+  \definefontsynonym [ComputerConcrete-Italic]  [ccti10]
+  \definefontsynonym [ComputerConcrete-Slanted] [ccsl10]
+  \definefontsynonym [ComputerConcrete-Italic]  [ccti10]
+  \definefontsynonym [ComputerConcrete-Slanted] [ccsl10]
+  \definefontsynonym [ComputerConcrete-Caps]    [cccsc10]
+\stoptypescript
+
+% Euler
+
+\starttypescript [math] [euler] [default]
+  \definefontsynonym [Euler-Extension] [euex10]
+  \definefontsynonym [Euler-Italic]    [eurm10]
+  \definefontsynonym [Euler-SymbolA]   [euex10]
+  \definefontsynonym [Euler-SymbolB]   [eusm10]
+  \definefontsynonym [Euler-SymbolC]   [eufm10]
+\stoptypescript
+
+% AMS
+
+\starttypescript [math] [ams] [default]
+  \definefontsynonym [AMS-SymbolA] [msam10]
+  \definefontsynonym [AMS-SymbolB] [msbm10]
+\stoptypescript
+
+% Courier
+
+\starttypescript [mono] [courier] [texnansi]
+  \definefontsynonym [Courier]             [com]  [encoding=texnansi]
+  \definefontsynonym [Courier-Oblique]     [coo]  [encoding=texnansi]
+  \definefontsynonym [Courier-Bold]        [cob]  [encoding=texnansi]
+  \definefontsynonym [Courier-BoldOblique] [cobo] [encoding=texnansi]
+\stoptypescript
+
+\starttypescript [mono] [courier] [ec]
+  \definefontsynonym [Courier]             [pcrr8t]  [encoding=ec]
+  \definefontsynonym [Courier-Bold]        [pcrb8t]  [encoding=ec]
+  \definefontsynonym [Courier-Oblique]     [pcrro8t] [encoding=ec]
+  \definefontsynonym [Courier-BoldOblique] [pcrbo8t] [encoding=ec]
+\stoptypescript
+
+% Helvetica
+
+\starttypescript [sans] [helvetica] [texnansi]
+  \definefontsynonym [Helvetica]             [hv]   [encoding=texnansi]
+  \definefontsynonym [Helvetica-Oblique]     [hvo]  [encoding=texnansi]
+  \definefontsynonym [Helvetica-Bold]        [hvb]  [encoding=texnansi]
+  \definefontsynonym [Helvetica-BoldOblique] [hvbo] [encoding=texnansi]
+\stoptypescript
+
+\starttypescript [sans] [helvetica] [ec]
+  \definefontsynonym [Helvetica]             [phvr8t]  [encoding=ec]
+  \definefontsynonym [Helvetica-Oblique]     [phvro8t] [encoding=ec]
+  \definefontsynonym [Helvetica-Bold]        [phvb8t]  [encoding=ec]
+  \definefontsynonym [Helvetica-BoldOblique] [phvbo8t] [encoding=ec]
+\stoptypescript
+
+\starttypescript [math] [helvetica] [default]
+  \definefontsynonym [Helvetica-MathRoman]           [hvrm10t1]
+  \definefontsynonym [Helvetica-MathExtendedSymbols] [hvex10]
+  \definefontsynonym [Helvetica-MathItalics]         [hvmi10]
+  \definefontsynonym [Helvetica-MathSymbols]         [hvsy10]
+\stoptypescript
+
+% Times Roman
+
+\starttypescript [serif] [times] [texnansi]
+  \definefontsynonym [Times-Roman]      [tir]  [encoding=texnansi]
+  \definefontsynonym [Times-Italic]     [tii]  [encoding=texnansi]
+  \definefontsynonym [Times-Bold]       [tib]  [encoding=texnansi]
+  \definefontsynonym [Times-BoldItalic] [tibi] [encoding=texnansi]
+\stoptypescript
+
+\starttypescript [serif] [times] [ec]
+  \definefontsynonym [Times-Roman]      [ptmr8t]  [encoding=ec]
+  \definefontsynonym [Times-Italic]     [ptmri8t] [encoding=ec]
+  \definefontsynonym [Times-Bold]       [ptmb8t]  [encoding=ec]
+  \definefontsynonym [Times-BoldItalic] [ptmbi8t] [encoding=ec]
+\stoptypescript
+
+% Math Times
+
+\starttypescript [math] [times] [texnansi]
+  \definefontsynonym [Times-MathRoman]     [tir]  [encoding=texnansi]
+  \definefontsynonym [Times-MathExtension] [mtex]
+  \definefontsynonym [Times-MathItalic]    [mtmi] [skewcharmi='177]
+  \definefontsynonym [Times-MathSymbol]    [mtsy] [skewcharmi='60]
+\stoptypescript
+
+% Lucida Bright
+
+\starttypescript [serif] [lucida] [texnansi]
+  \definefontsynonym [LucidaBright]               [lbr]   [encoding=texnansi]
+  \definefontsynonym [LucidaBright-Demi]          [lbd]   [encoding=texnansi]
+  \definefontsynonym [LucidaBright-DemiItalic]    [lbdi]  [encoding=texnansi]
+  \definefontsynonym [LucidaBright-Italic]        [lbi]   [encoding=texnansi]
+  \definefontsynonym [LucidaBrightSmallcaps]      [lbrsc] [encoding=texnansi]
+  \definefontsynonym [LucidaBrightSmallcaps-Demi] [lbdsc] [encoding=texnansi]
+  \definefontsynonym [LucidaBright-Oblique]       [lbsl]  [encoding=texnansi]
+\stoptypescript
+
+\starttypescript [serif] [lucida] [ec]
+  \definefontsynonym [LucidaBright]            [hlhr8t]   [encoding=ec]
+  \definefontsynonym [LucidaBright-Demi]       [hlhb8t]   [encoding=ec]
+  \definefontsynonym [LucidaBright-Italic]     [hlhri8t]  [encoding=ec]
+  \definefontsynonym [LucidaBright-Oblique]    [hlhro8t]  [encoding=ec]
+  \definefontsynonym [LucidaBright-DemiItalic] [hlhbi8t]  [encoding=ec]
+  \definefontsynonym [LucidaBrightSmallcaps]   [hlhrc8t]  [encoding=ec]
+\stoptypescript
+
+\starttypescript [sans] [lucida] [texnansi]
+  \definefontsynonym [LucidaSans]            [lsr]  [encoding=texnansi]
+  \definefontsynonym [LucidaSans-Demi]       [lsd]  [encoding=texnansi]
+  \definefontsynonym [LucidaSans-DemiItalic] [lsdi] [encoding=texnansi]
+  \definefontsynonym [LucidaSans-Italic]     [lsi]  [encoding=texnansi]
+  \definefontsynonym [LucidaSans-Bold]       [lsb]  [encoding=texnansi]
+  \definefontsynonym [LucidaSans-BoldItalic] [lsbi] [encoding=texnansi]
+\stoptypescript
+
+\starttypescript [mono] [lucida] [texnansi]
+  \definefontsynonym [LucidaSans-Typewriter]            [lstr]  [encoding=texnansi]
+  \definefontsynonym [LucidaSans-TypewriterBold]        [lstb]  [encoding=texnansi]
+  \definefontsynonym [LucidaSans-TypewriterBoldOblique] [lstbo] [encoding=texnansi]
+  \definefontsynonym [LucidaSans-TypewriterOblique]     [lsto]  [encoding=texnansi]
+\stoptypescript
+
+\starttypescript [mono] [lucida] [ec]
+  \definefontsynonym [LucidaSans]                       [hlsr8t]   [encoding=ec]
+  \definefontsynonym [LucidaSans-Demi]                  [hlsb8t]   [encoding=ec]
+  \definefontsynonym [LucidaSans-Italic]                [hlsri8t]  [encoding=ec]
+  \definefontsynonym [LucidaSans-DemiItalic]            [hlsbi8t]  [encoding=ec]
+  \definefontsynonym [LucidaSans-Typewriter]            [hlsrt8t]  [encoding=ec]
+  \definefontsynonym [LucidaSans-TypewriterBold]        [hlsbt8t]  [encoding=ec]
+  \definefontsynonym [LucidaSans-TypewriterOblique]     [hlsrot8t] [encoding=ec]
+  \definefontsynonym [LucidaSans-TypewriterBoldOblique] [hlsbot8t] [encoding=ec]
+\stoptypescript
+
+\starttypescript [math] [lucida] [texnansi]
+  \definefontsynonym [LucidaNewMath-AltItalic]     [lbmo]
+  \definefontsynonym [LucidaNewMath-Arrows]        [lbma]
+  \definefontsynonym [LucidaNewMath-Extension]     [lbme]
+  \definefontsynonym [LucidaNewMath-Roman]         [lbmr]
+  \definefontsynonym [LucidaNewMath-Italic]        [lbmi]
+  \definefontsynonym [LucidaNewMath-Symbol]        [lbms]
+  \definefontsynonym [LucidaBlackletter]           [lbl]
+\stoptypescript
+
+\starttypescript [boldmath] [lucida] [texnansi]
+  \definefontsynonym [LucidaNewMath-AltDemiItalic] [lbmdo]
+  \definefontsynonym [LucidaNewMath-Arrows-Demi]   [lbmad]
+  \definefontsynonym [LucidaNewMath-Extension]     [lbme]
+  \definefontsynonym [LucidaNewMath-Demibold]      [lbmd]
+  \definefontsynonym [LucidaNewMath-DemiItalic]    [lbmdi]
+  \definefontsynonym [LucidaNewMath-Symbol-Demi]   [lbmsd]
+\stoptypescript
+
+\starttypescript [math] [lucida] [ec]
+  \definefontsynonym [LucidaNewMath-AltItalic]     [hlcrima]
+  \definefontsynonym [LucidaNewMath-Arrows]        [hlcra]
+  \definefontsynonym [LucidaNewMath-Extension]     [hlcrv]
+  \definefontsynonym [LucidaNewMath-Roman]         [hlcrm]
+  \definefontsynonym [LucidaNewMath-Italic]        [hlcrim]
+  \definefontsynonym [LucidaNewMath-Symbol]        [hlcry]
+\stoptypescript
+
+\starttypescript [boldmath] [lucida] [ec]
+  \definefontsynonym [LucidaNewMath-AltDemiItalic] [hlcdima]
+  \definefontsynonym [LucidaNewMath-Arrows-Demi]   [hlcda]
+  \definefontsynonym [LucidaNewMath-Extension]     [hlcrv]
+  \definefontsynonym [LucidaNewMath-Demibold]      [hlcdm]
+  \definefontsynonym [LucidaNewMath-DemiItalic]    [hlcdim]
+  \definefontsynonym [LucidaNewMath-Symbol-Demi]   [hlcdy]
+\stoptypescript
+
+\starttypescript [calligraphy] [lucida] [texnansi]
+  \definefontsynonym [LucidaCalligraphy-Italic] [lbc] [encoding=texnansi]
+\stoptypescript
+
+\starttypescript [calligraphy] [lucida] [ec]
+  \definefontsynonym [LucidaCalligraphy-Italic] [hlcrie8t] [encoding=ec]
+\stoptypescript
+
+\starttypescript [casual] [lucida] [texnansi]
+  \definefontsynonym [LucidaCasual]        [lbkr] [encoding=texnansi]
+  \definefontsynonym [LucidaCasual-Italic] [lbki] [encoding=texnansi]
+\stoptypescript
+
+\starttypescript [handwriting] [lucida] [texnansi]
+  \definefontsynonym [LucidaHandwriting-Italic] [lbh] [encoding=texnansi]
+\stoptypescript
+
+\starttypescript [handwriting] [lucida] [ec]
+  \definefontsynonym [LucidaHandwriting-Italic] [hlcriw8t] [encoding=ec]
+\stoptypescript
+
+\starttypescript [fax] [lucida] [texnansi]
+  \definefontsynonym [LucidaFax]            [lfr]  [encoding=texnansi]
+  \definefontsynonym [LucidaFax-Demi]       [lfd]  [encoding=texnansi]
+  \definefontsynonym [LucidaFax-DemiItalic] [lfdi] [encoding=texnansi]
+  \definefontsynonym [LucidaFax-Italic]     [lfi]  [encoding=texnansi]
+\stoptypescript
+
+% Informal
+
+\starttypescript [casual] [informal] [default]
+  \definefontsynonym [Informal-Regular]     [ifrm10cm]
+  \definefontsynonym [Informal-Bold]        [ifrb10cm]
+  \definefontsynonym [Informal-Oblique]     [ifro10cm]
+  \definefontsynonym [Informal-BoldOblique] [ifbo10cm]
+\stoptypescript
+
+% Informal Math
+
+\starttypescript [math] [informal] [default]
+  \definefontsynonym [Informal-Regular]             [ifrm10cm]
+  \definefontsynonym [Informal-MathExtendedSymbols] [ifex10]
+  \definefontsynonym [Informal-MathItalics]         [ifmi10]
+  \definefontsynonym [Informal-MathSymbols]         [ifsy10]
+\stoptypescript
+
+% Antikwa Torunska
+
+\starttypescript [serif] [antykwa-torunska] [texnansi]
+  \definefontsynonym [AntykwaTorunska-Bold]    [anttb]  [encoding=texnansi]
+  \definefontsynonym [AntykwaTorunska-Regular] [anttr]  [encoding=texnansi]
+  \definefontsynonym [AntykwaTorunska-Italic]  [anttri] [encoding=texnansi]
+\stoptypescript
+
+\starttypescript [serif] [antykwa-torunska] [ec]
+  \definefontsynonym [AntykwaTorunska-Regular] [zatr8t]  [encoding=ec]
+  \definefontsynonym [AntykwaTorunska-Italic]  [zatri8t] [encoding=ec]
+  \definefontsynonym [AntykwaTorunska-Bold]    [zatb8t]  [encoding=ec]
+\stoptypescript
+
+% Baskerville
+
+\starttypescript [serif] [baskerville] [ec]
+  \definefontsynonym [Baskerville]                [mbvr8t]  [encoding=ec]
+  \definefontsynonym [Baskerville-Italic]         [mbvri8t] [encoding=ec]
+  \definefontsynonym [Baskerville-Bold]           [mbvb8t]  [encoding=ec]
+  \definefontsynonym [Baskerville-BoldItalic]     [mbvbi8t] [encoding=ec]
+  \definefontsynonym [Baskerville-SemiBold]       [mbvs8t]  [encoding=ec]
+  \definefontsynonym [Baskerville-SemiBoldItalic] [mbvsi8t] [encoding=ec]
+\stoptypescript
+
+% Palatino
+
+\starttypescript [serif] [palatino] [ec]
+  \definefontsynonym [Palatino]             [uplr8t]  [encoding=ec]
+  \definefontsynonym [Palatino-Italic]      [uplri8t] [encoding=ec]
+  \definefontsynonym [Palatino-Slanted]     [uplro8t] [encoding=ec]
+  \definefontsynonym [Palatino-Bold]        [uplb8t]  [encoding=ec]
+  \definefontsynonym [Palatino-BoldItalic]  [uplbi8t] [encoding=ec]
+  \definefontsynonym [Palatino-BoldSlanted] [uplbo8t] [encoding=ec]
+\stoptypescript
+
+\starttypescript [math] [palatino] [ec]
+  \definefontsynonym [Palatino-Roman-Upright]     [p1xr]  [encoding=ec]
+  \definefontsynonym [Palatino-Roman-Italic]      [p1xi]  [encoding=ec]
+  \definefontsynonym [Palatino-Roman-Slanted]     [p1xsl] [encoding=ec]
+  \definefontsynonym [Palatino-Roman-Caps]        [p1xsc] [encoding=ec]
+  \definefontsynonym [Palatino-Companion-Upright] [pcxr]
+  \definefontsynonym [Palatino-Companion-Italic]  [pcxi]
+  \definefontsynonym [Palatino-Companion-Slanted] [pcxsl]
+  \definefontsynonym [Palatino-Math-Italic]       [pxmi]
+  \definefontsynonym [Palatino-Math-Symbols]      [pxsy]
+  \definefontsynonym [Palatino-Math-Extension]    [pxex]
+  \definefontsynonym [Palatino-Math-SymbolsA]     [pxsya]
+  \definefontsynonym [Palatino-Math-SymbolsB]     [pxsyb]
+  \definefontsynonym [Palatino-Math-SymbolsC]     [pxsyc] 
+  \definefontsynonym [Palatino-Math-Italic-A]     [pxmia]
+  \definefontsynonym [Palatino-Math-Extension-A]  [pxexa]
+\stoptypescript
+
+% Whatever
+
+\starttypescript % once amd for all
+  \definefontsynonym [ContextNavigation]     [contnav]
+  \definefontsynonym [RalfSmithFormalScript] [rsfs10]
+  \definefontsynonym [ZapfDingbats]          [pzd]
+\stoptypescript
+
+\endinput
diff --git a/tex/context/base/type-exa.tex b/tex/context/base/type-exa.tex
new file mode 100644
index 000000000..43a746a3c
--- /dev/null
+++ b/tex/context/base/type-exa.tex
@@ -0,0 +1,69 @@
+%D \module
+%D   [       file=type-exa,
+%D        version=2001.04.12, 
+%D          title=\CONTEXT\ Typescript Macros,
+%D       subtitle=Example scripts, 
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D A couple of goodies:
+
+% \starttypescript [modern] [ec]
+% 
+% \definetypeface [modern] [rm] [serif] [computer-modern] [computer-modern] [encoding=ec]
+% \definetypeface [modern] [ss] [sans]  [computer-modern] [computer-modern] [encoding=ec]
+% \definetypeface [modern] [tt] [mono]  [computer-modern] [computer-modern] [encoding=ec]
+% \definetypeface [modern] [mm] [math]  [computer-modern] [computer-modern] [encoding=ec]
+% 
+% \stoptypescript
+% 
+% \starttypescript [modern] [il2]
+% 
+% \definetypeface [modern] [rm] [serif] [computer-modern] [computer-modern] [encoding=il2]
+% \definetypeface [modern] [ss] [sans]  [computer-modern] [computer-modern] [encoding=il2]
+% \definetypeface [modern] [tt] [mono]  [computer-modern] [computer-modern] [encoding=il2]
+% \definetypeface [modern] [mm] [math]  [computer-modern] [computer-modern] [encoding=il2]
+% 
+% \stoptypescript
+% 
+% \starttypescript [modern] [pl0]
+% 
+% \definetypeface [modern] [rm] [serif] [computer-modern] [computer-modern] [encoding=pl0]
+% \definetypeface [modern] [ss] [sans]  [computer-modern] [computer-modern] [encoding=pl0]
+% \definetypeface [modern] [tt] [mono]  [computer-modern] [computer-modern] [encoding=pl0]
+% \definetypeface [modern] [mm] [math]  [computer-modern] [computer-modern] [encoding=pl0]
+% 
+% \stoptypescript
+
+\starttypescript [modern] [ec,il2,pl0,default]
+
+\definetypeface [modern] [rm] [serif] [computer-modern] [computer-modern] [encoding=\typescripttwo]
+\definetypeface [modern] [ss] [sans]  [computer-modern] [computer-modern] [encoding=\typescripttwo]
+\definetypeface [modern] [tt] [mono]  [computer-modern] [computer-modern] [encoding=\typescripttwo]
+\definetypeface [modern] [mm] [math]  [computer-modern] [computer-modern] [encoding=\typescripttwo]
+
+\stoptypescript
+
+\starttypescript [postscript] [texnansi,ec]
+
+\definetypeface [postscript] [rm] [serif] [times]     [default] [encoding=\typescripttwo]
+\definetypeface [postscript] [ss] [sans]  [helvetica] [default] [rscale=.9,encoding=\typescripttwo]
+\definetypeface [postscript] [tt] [mono]  [courier]   [default] [rscale=1.1,encoding=\typescripttwo]
+
+\stoptypescript
+
+\starttypescript [mathtimes] [texnansi,ec]
+
+\definetypeface [mathtimes] [rm] [serif] [times]           [default] [encoding=\typescripttwo]
+\definetypeface [mathtimes] [ss] [sans]  [helvetica]       [default] [rscale=.9,encoding=\typescripttwo]
+\definetypeface [mathtimes] [tt] [mono]  [computer-modern] [default] [rscale=1.1,encoding=\typescripttwo]
+\definetypeface [mathtimes] [mm] [math]  [times]           [default] [encoding=\typescripttwo]
+
+\stoptypescript
+
+\endinput
diff --git a/tex/context/base/type-ini.tex b/tex/context/base/type-ini.tex
new file mode 100644
index 000000000..6cb1e43b1
--- /dev/null
+++ b/tex/context/base/type-ini.tex
@@ -0,0 +1,253 @@
+% wat te doen met casual, evt `cs', danwel een manier om te 
+% mappen (zie showcase) 
+
+%D \module
+%D   [       file=type-ini,
+%D        version=2001.03.05,
+%D          title=\CONTEXT\ Typescript Macros,
+%D       subtitle=Initialization,
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{Context Typescript Macros (ini)}
+
+\unprotect
+
+\let\typescriptfiles\empty
+
+\def\usetypescriptfile[#1]%
+  {\addtocommalist{#1}\typescriptfiles}
+
+\usetypescriptfile[\f!typeprefix syn] % font file synonyms  
+\usetypescriptfile[\f!typeprefix enc] % files and encodings 
+\usetypescriptfile[\f!typeprefix siz] % specific font sizes 
+\usetypescriptfile[\f!typeprefix map] % pdftex mapping 
+\usetypescriptfile[\f!typeprefix spe] % special macros 
+\usetypescriptfile[\f!typeprefix exa] % some examples 
+\usetypescriptfile[\f!typeprefix loc] % local scripts 
+%                 [\f!typeprefix pre] % predefined scripts (compatible)
+
+% \usetypescriptfile[typeface] % project scripts 
+
+\let\currenttypescripts\empty
+
+\newif\iftypescriptfound
+
+\def\usetypescript%
+  {\dotripleempty\dousetypescript}
+
+\let\typescriptone\empty
+\let\typescripttwo\empty
+\let\typescriptthree\empty
+
+\def\dousetypescript[#1][#2][#3]% also loads type-loc, a user file
+  {\pushmacro\typescriptone  \edef\typescriptone  {\truetypescript{#1}}%
+   \pushmacro\typescripttwo  \edef\typescripttwo  {\truetypescript{#2}}%
+   \pushmacro\typescriptthree\edef\typescriptthree{\truetypescript{#3}}%
+   \typescriptfoundfalse
+   \writestatus
+     {typescript}
+     {[\typescriptone] [\typescripttwo] [\typescriptthree]}%
+   \processcommacommand[\typescriptfiles]\dodousetypescript
+   \firsttypescriptpassfalse % testen 
+   \popmacro\typescriptthree
+   \popmacro\typescripttwo
+   \popmacro\typescriptone}
+
+\def\dodousetypescript#1%
+  {\startreadingfile
+   \pushmacro\currenttypefile
+   \def\currenttypefile{#1}%
+   \readfile{\currenttypefile}{}{}% \relax\relax
+   \popmacro\currenttypefile
+   \stopreadingfile}
+
+% \definetypescriptsynonym[lbr][cmr]
+
+\def\definetypescriptsynonym%
+  {\dodoubleempty\dodefinetypescriptsynonym}
+
+\def\dodefinetypescriptsynonym[#1][#2]%
+  {\ifsecondargument\setevalue{\??tm#1}{#2}\fi}
+
+\beginTEX
+
+\def\truetypescript#1%
+  {\expandafter\ifx\csname\??tm#1\endcsname\relax
+     #1%
+   \else
+     \@EA\truetypescript\csname\??tm#1\endcsname
+   \fi}
+
+\endTEX
+
+\beginETEX \ifcsname
+
+\def\truetypescript#1%
+  {\ifcsname\??tm#1\endcsname
+     \@EA\truetypescript\csname\??tm#1\endcsname
+   \else
+     #1%
+   \fi}
+
+\endETEX
+
+% script [serif] [default]         [size]            
+% script [serif] [computer-modern] [size]            
+% script [serif] [computer-modern] [ec]
+% script [serif] [computer-modern] [name]
+% script [serif] [computer-modern] [special]
+
+\def\dochecktypescript#1#2% script use 
+  {\donefalse
+   \doifelsenothing{#1}\donetrue
+     {\doifelse{#2}{all}\donetrue
+        {\doifelse{#1}{all}\donetrue
+           {\ExpandBothAfter\doifcommonelse{#1}{#2}\donetrue\donefalse}}}}
+
+\def\starttypescript%
+  {\dotripleempty\dostarttypescript}
+
+\newif\iffirsttypescriptpass \firsttypescriptpasstrue 
+
+\prependtoks\firsttypescriptpasstrue\to\everyjob 
+
+\long\def\dostarttypescript[#1][#2][#3]#4\stoptypescript
+  {\iffirstargument
+     \dochecktypescript{#1}{\typescriptone}\ifdone
+     \dochecktypescript{#2}{\typescripttwo}\ifdone
+     \dochecktypescript{#3}{\typescriptthree}\ifdone
+       %\writestatus 
+       \debuggerinfo
+         {typescript}
+         {\currenttypefile: [#1] [#2] [#3]}%
+        #4\typescriptfoundtrue
+     \fi\fi\fi
+   \else\iffirsttypescriptpass
+     \pushmacro\fontclass
+     #4%
+     \popmacro\fontclass
+   \else
+     % skip this since it may do unwanted resets, like 
+     % setting symbolic font names to unknown, especially 
+     % in run time user type scripts 
+   \fi\fi}
+
+\def\loadmapfile[#1]%
+  {\processcommalist[#1]\doloadmapfile}
+
+\def\doloadmapfile#1% will be special 
+  {\ifcase\pdfoutput\else\ifx\pdfmapfile\undefined\else
+     \doifundefined{map+#1}
+       {\global\letvalue{map+#1}\empty\pdfmapfile{+#1}}%
+   \fi\fi}
+
+% \definetypeface [#1:joke] [#2:rm] 
+% \definetypeface [#1:joke] [#2:rm] [#3:...]
+% \definetypeface [#1:joke] [#2:rm] [#3:serif] [#4:lucida] [#5:size] [#6:...]
+
+\def\definetypeface%
+  {\dosixtupleargument\dodefinetypeface}
+
+\def\tsvar#1#2%
+  {\@EA\ifx\csname\??ts#1\endcsname\empty
+     #2%
+   \else
+     \csname\??ts#1\endcsname
+   \fi}
+
+\let\@@tslabel    \empty
+\let\@@tsstyle    \empty
+\let\@@tsfont     \empty
+\let\@@tssize     \empty
+\let\@@tsencoding \empty
+
+\def\dodefinetypeface[#1][#2][#3][#4][#5][#6]% 
+  {\dododefinetypeface[#1][#2]
+   \iffifthargument % sixth is optional 
+     \getparameters[\??ts][rscale=1,\s!encoding=\s!default,#6]
+     \let\relativefontsize\@@tsrscale
+     \let\savedfontclass\fontclass
+     \setcurrentfontclass{#1}
+\def\@@tslabel{#1}
+\def\@@tsstyle{#2}
+\def\@@tsfont {#3}
+\def\@@tssize {#4}
+     \writestatus
+       {typeface}
+       {[#1] [#2] [#3] [#4]}%
+     \expanded{\usetypescript[#3][#4][name,default,\@@tsencoding,special]} 
+     \expanded{\usetypescript[#3][#5][size]}          
+\let\@@tslabel\empty
+\let\@@tsstyle\empty
+\let\@@tsfont \empty
+\let\@@tssize \empty
+     \setcurrentfontclass\savedfontclass           
+     \def\relativefontsize{1}
+   \else\ifthirdargument
+     \getparameters[\??tf#1#2][#3]
+   \fi\fi}
+
+\def\dododefinetypeface[#1][#2]% saveguard against redefinition
+  {\doifundefined{\??tf#1\s!default}{\setgvalue{\??tf#1\s!default}{#2}}%
+   \doifundefined{#1}{\setgvalue{#1}{\switchtotypeface[#1][#2]}}}
+
+\def\setuptypeface%
+  {\doquadrupleempty\doswitchtotypeface[\setupbodyfont][\fontclass]}
+
+\def\switchtotypeface%
+  {\doquadrupleempty\doswitchtotypeface[\switchtobodyfont][\globalfontclass]}
+
+\def\doswitchtotypeface[#1][#2][#3][#4]% 
+  {\setcurrentfontclass{#3}%
+   \let\globalfontclass#2%
+   \iffourthargument
+     #1[#4]%
+   \else\ifx\fontclass\empty
+     #1[\c!rm]%
+   \else
+     \doifdefinedelse{\??tf\fontclass\s!default}
+       {#1[\getvalue{\??tf\fontclass\s!default}]}
+       {#1[\c!rm]}%
+   \fi\fi
+   \tf}
+
+\def\usetypefile[#1]%
+  {\readfile{\f!typeprefix#1}{}{}}% \relax\relax}
+
+%D For backward compatibility we reimplement the font file 
+%D loading macro.  
+
+\ifx\normaldoreadfontdefinitionfile\undefined
+  \let\normaldoreadfontdefinitionfile\doreadfontdefinitionfile
+\fi
+
+\def\doreadfontdefinitionfile#1#2% #1 = set/switch state
+  {\ifundefined{\??tf#2\c!default}%
+     \pushmacro\typescriptone\edef\typescriptone{\truetypescript{#2}}
+     \pushmacro\typescripttwo\let \typescripttwo \empty
+     \pushmacro\typescriptthree\let \typescriptthree \empty
+     \typescriptfoundfalse
+     \dodousetypescript{\f!typeprefix pre}
+     \popmacro\typescriptthree
+     \popmacro\typescripttwo
+     \popmacro\typescriptone
+     \iftypescriptfound \else
+       \normaldoreadfontdefinitionfile{#1}{#2}
+     \fi
+   \else\ifcase#1\relax
+     \switchtotypeface[#2]%
+   \else
+     \setuptypeface[#2]%
+   \fi\fi}
+
+\fetchruntimecommand \typetypescript {\f!typeprefix\s!run}
+
+\setupbodyfont[fil] % default filenames 
+
+\protect \endinput
diff --git a/tex/context/base/type-map.tex b/tex/context/base/type-map.tex
new file mode 100644
index 000000000..db9bbb1c3
--- /dev/null
+++ b/tex/context/base/type-map.tex
@@ -0,0 +1,26 @@
+%D \module
+%D   [       file=type-map,
+%D        version=2001.04.12, 
+%D          title=\CONTEXT\ Typescript Macros,
+%D       subtitle=Mapfile scripts, 
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\starttypescript [all] [helvetica] [all] 
+  \loadmapfile[mphv.map]
+\stoptypescript 
+
+\starttypescript [all] [informal] [all]
+  \loadmapfile[mpif.map]
+\stoptypescript 
+
+\starttypescript [all] [palatino] [all]
+  \loadmapfile[pxr.map]
+\stoptypescript 
+
+\endinput 
diff --git a/tex/context/base/type-pre.tex b/tex/context/base/type-pre.tex
new file mode 100644
index 000000000..e65054814
--- /dev/null
+++ b/tex/context/base/type-pre.tex
@@ -0,0 +1,210 @@
+%D \module
+%D   [       file=type-pre,
+%D        version=2001.04.12, 
+%D          title=\CONTEXT\ Typescript Macros,
+%D       subtitle=Compatibility scripts, 
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D The Computer Modern Roman is derived from the Monotype~8a
+%D Times Roman. In this module, that is loaded by default, we
+%D define all relevant alternatives.
+
+\starttypescript [cmr] 
+
+\usetypescript [all] [computer-modern] [default,name,size]
+
+\enablemathcollection[default]
+
+\stoptypescript
+
+%D This script remaps the default Computer Modern Font Files
+%D onto the virtual EC ones, so that hyphenations work well.
+
+\starttypescript [aer]
+
+\usetypescript [all] [computer-modern] [default,name,size,ec]
+
+\enablemathcollection[default]
+
+\stoptypescript
+
+%D This script defines the Computer Modern Roman with iso
+%D latin 2 encoding, as needed for Czech and other languages.
+
+\starttypescript [csr]
+
+\usetypescript [all] [computer-modern] [default,name,size,il2]
+
+\enablemathcollection[default]
+
+\stoptypescript
+
+%D This script defines the Computer Modern Roman with a
+%D polish encoding, as needed for Czech and other languages.
+
+\starttypescript [plr]
+
+\usetypescript [all] [computer-modern] [default,name,size,pl0]
+
+\enablemathcollection[default]
+
+\stoptypescript
+
+%D Here we implement the symbol fonts as provided by the
+%D American Mathematical Society. The names of these symbols
+%D can be found in The Joy of \TeX\ by M.~Spivak.
+
+\starttypescript [ams]
+
+\usetypescript [math] [ams] [all]
+
+\enablemathcollection[ams]
+
+\stoptypescript
+
+%D The Concrete Modern Roman is just an alternative Computer
+%D Modern Roman.
+
+\starttypescript [con]
+
+\usetypescript [serif] [concrete] [all]
+ 
+\stoptypescript
+
+%D The Euler Fonts are designed by Herman Zapf and can be
+%D used with the Concrete Fonts defined elsewhere.
+
+\starttypescript [eul]
+
+\usetypescript [math] [euler] [all]
+
+\enablemathcollection[eul]
+
+\stoptypescript
+
+%D The Lucida Bright fonts are both good looking and and
+%D complete. These fonts have prebuilt accented characters,
+%D which means that we use another encoding vector: \YandY\
+%D texnansi. These fonts are a good illustration that a 12
+%D point bodyfont is indeed never that size. The Lucida Bright
+%D fonts come in one design size.
+
+\starttypescript [lbr]
+
+\usetypescript [all] [lucida]  [name,special]
+\usetypescript [all] [default] [size]
+
+\enablemathcollection[lbr]
+
+\stoptypescript
+
+%D With thanks to Berthold Horn from YandY for providing me
+%D evaluation copies of the MathTimePlus fonts.
+
+\starttypescript [mt,tim]
+
+\usetypescript [math] [times]   [all]
+\usetypescript [math] [default] [size]
+
+\enablemathcollection[tim]
+
+\stoptypescript
+
+%D The Antikwa Torunska font family is a rather nice
+%D and subtle one. Although primary meant for the polish
+%D language, it can be used for other languages as well.
+
+\starttypescript [ant]
+
+\usetypescript [serif] [antykwa-torunska] [name]
+\usetypescript [serif] [default]          [size]
+
+\stoptypescript
+
+%D This script defines the Standard Adobe Courier fonts.
+
+\starttypescript [pcr]
+
+\usetypescript [mono] [courier] [name]
+\usetypescript [mono] [default] [size] 
+
+\stoptypescript
+
+%D This script defines the Standard Adobe Helvetica fonts.
+
+\starttypescript [phv]
+
+\usetypescript [sans] [helvetica] [name]
+\usetypescript [mono] [default]   [size] 
+
+\stoptypescript
+
+%D This script defines the Standard Adobe Times fonts.
+
+\starttypescript [ptm]
+
+\usetypescript [serif] [times]   [name]
+\usetypescript [serif] [default] [size] 
+
+\stoptypescript
+
+%D This script loads the Adobe Times Roman, Helvetica and
+%D Courier.
+
+\starttypescript [pos]
+
+\usetypescript [serif] [times]     [name] 
+\usetypescript [sans]  [helvetica] [name] 
+\usetypescript [mono]  [courier]   [name] 
+
+\usetypescript [serif,sans,mono] [default] [size] 
+
+\stoptypescript
+
+%D This script defines the Palatino font.
+
+\starttypescript [ppl]
+
+\usetypescript [serif] [palatino] [name]
+\usetypescript [serif] [default]  [size]
+
+\stoptypescript
+
+%D The following scripts fake the old \type {font-ber} and
+%D alike files.
+
+\starttypescript[ber]
+
+\usetypescript
+  [all]
+  [computer-modern,concrete,euler]
+  [default]
+
+\usetypescript
+  [all]
+  [courier,helvetica,times,lucida,antykwa-torunska,baskerville,palatino]
+  [ec]
+
+\stoptypescript
+
+\starttypescript[fil]
+
+\usetypescript
+  [all]
+  [computer-modern,concrete,euler]
+  [default]
+
+\usetypescript
+  [all]
+  [courier,helvetica,times,lucida,antykwa-torunska,baskerville,palatino]
+  [texnansi]
+
+\stoptypescript
+
+\endinput
diff --git a/tex/context/base/type-run.tex b/tex/context/base/type-run.tex
new file mode 100644
index 000000000..6fdcab997
--- /dev/null
+++ b/tex/context/base/type-run.tex
@@ -0,0 +1,53 @@
+%D \module
+%D   [       file=type-run,
+%D        version=2001.04.20,
+%D          title=\CONTEXT\ Typescript Macros,
+%D       subtitle=Runtime Macros,
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\unprotect 
+
+\gdef\typetypescript%
+  {\dotripleempty\dotypetypescript}
+
+\gdef\dotypetypescript[#1][#2][#3]%
+  {\bgroup
+   \def\dochecktypescript##1##2% script use 
+     {\doifelsenothing{##1##2}
+        {\donetrue}
+        {\donefalse
+         \ExpandBothAfter\doifcommonelse{##1}{##2}\donetrue\donefalse}}
+   \edef\typescriptone  {\truetypescript{#1}}%
+   \edef\typescripttwo  {\truetypescript{#2}}%
+   \edef\typescriptthree{\truetypescript{#3}}%
+   \def\starttypescript
+     {\bgroup 
+      \obeylines % else we loose the first line due to lookahead
+      \dotripleempty\dostarttypescript}
+   \def\dostarttypescript[##1][##2][##3]%
+     {\long\def\next####1\stoptypescript{\egroup}
+      \dochecktypescript{##1}\typescriptone  \ifdone
+      \dochecktypescript{##2}\typescripttwo  \ifdone
+      \dochecktypescript{##3}\typescriptthree\ifdone
+        \def\next%
+          {\def\stoptypescript%
+             {\egroup\type{\stoptypescript}}
+           % what follows now is quite ugly 
+           \skipfirstverbatimlinefalse
+           \processdisplayverbatim{\stoptypescript}%
+           \type{\starttypescript}
+           \doifsomething{##1}{\type{[##1]}}
+           \doifsomething{##2}{\type{[##2]}}
+           \doifsomething{##3}{\type{[##3]}}}
+      \fi\fi\fi
+      \next}  
+  \processcommacommand[\typescriptfiles]\dodousetypescript
+  \egroup}
+ 
+\protect \endinput 
diff --git a/tex/context/base/type-siz.tex b/tex/context/base/type-siz.tex
new file mode 100644
index 000000000..5232edd8a
--- /dev/null
+++ b/tex/context/base/type-siz.tex
@@ -0,0 +1,554 @@
+%D \module
+%D   [       file=type-siz,
+%D        version=2001.04.12, 
+%D          title=\CONTEXT\ Typescript Macros,
+%D       subtitle=Sizing scripts, 
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\unprotect 
+
+%\starttypescript [serif] [default] [size] 
+%  \definebodyfont 
+%    [17.3pt,14.4pt,12pt,11pt,10pt,9pt,8pt,7pt,6pt,5pt,4pt] 
+%    [\tsvar{style}{rm}] [default]
+%\stoptypescript 
+
+\starttypescript [casual] [default] [size] 
+  \definebodyfont 
+    [17.3pt,14.4pt,12pt,11pt,10pt,9pt,8pt,7pt,6pt,5pt,4pt] 
+    [rm] [default]
+\stoptypescript 
+
+\starttypescript [serif] [default] [size] 
+  \definebodyfont 
+    [17.3pt,14.4pt,12pt,11pt,10pt,9pt,8pt,7pt,6pt,5pt,4pt] 
+    [rm] [default]
+\stoptypescript 
+
+\starttypescript [sans] [default] [size] 
+  \definebodyfont 
+    [17.3pt,14.4pt,12pt,11pt,10pt,9pt,8pt,7pt,6pt,5pt,4pt] 
+    [ss] [default]
+\stoptypescript 
+
+\starttypescript [mono] [default] [size]
+  \definebodyfont 
+    [17.3pt,14.4pt,12pt,11pt,10pt,9pt,8pt,7pt,6pt,5pt,4pt] 
+    [tt] [default]
+\stoptypescript 
+
+\starttypescript [math] [default] [size]
+ \definebodyfont 
+   [17.3pt,14.4pt,12pt,11pt,10pt,9pt,8pt,7pt,6pt,5pt,4pt] 
+   [mm] [default]
+\stoptypescript 
+
+\starttypescript [boldmath] [default] [size]  
+  \definebodyfont 
+    [17.3pt,14.4pt,12pt,11pt,10pt,9pt,8pt,7pt,6pt,5pt,4pt] 
+    [mm] [boldmath]
+\stoptypescript
+
+\starttypescript [all] [dtp] [size]
+
+\definebodyfontenvironment
+  [4pt]
+  [        \s!text=4pt, \s!script=4pt, \s!scriptscript=4pt,
+              \c!x=4pt,     \c!xx=4pt, 
+          \c!groot=6pt,  \c!klein=4pt]
+
+\definebodyfontenvironment
+  [5pt]
+  [        \s!text=5pt, \s!script=5pt, \s!scriptscript=5pt,
+              \c!x=5pt,     \c!xx=5pt,
+          \c!groot=7pt,  \c!klein=5pt]
+
+\definebodyfontenvironment
+  [6pt]
+  [        \s!text=6pt, \s!script=5pt, \s!scriptscript=5pt,
+              \c!x=5pt,     \c!xx=5pt,
+          \c!groot=8pt,  \c!klein=5pt]
+
+\definebodyfontenvironment
+  [7pt]
+  [        \s!text=7pt, \s!script=6pt, \s!scriptscript=5pt,
+              \c!x=6pt,     \c!xx=5pt,
+          \c!groot=9pt,  \c!klein=5pt]
+
+\definebodyfontenvironment
+  [8pt]
+  [        \s!text=8pt, \s!script=6pt, \s!scriptscript=5pt,
+              \c!x=6pt,     \c!xx=5pt,
+          \c!groot=10pt, \c!klein=6pt]
+
+\definebodyfontenvironment
+  [9pt]
+  [        \s!text=9pt, \s!script=7pt, \s!scriptscript=5pt,
+              \c!x=7pt,     \c!xx=5pt,
+          \c!groot=11pt, \c!klein=7pt]
+
+\definebodyfontenvironment
+  [10pt]
+  [        \s!text=10pt, \s!script=7pt, \s!scriptscript=5pt,
+              \c!x=8pt,      \c!xx=6pt,
+          \c!groot=12pt,  \c!klein=8pt]
+
+\definebodyfontenvironment
+  [11pt]
+  [        \s!text=11pt, \s!script=8pt, \s!scriptscript=6pt,
+              \c!x=9pt,      \c!xx=7pt,
+          \c!groot=13pt,  \c!klein=9pt]
+
+\definebodyfontenvironment
+  [12pt]
+  [        \s!text=12pt, \s!script=9pt, \s!scriptscript=7pt,
+              \c!x=10pt,     \c!xx=8pt,
+          \c!groot=14pt,  \c!klein=10pt]
+
+\definebodyfontenvironment
+  [13pt]
+  [        \s!text=13pt, \s!script=10pt, \s!scriptscript=8pt,
+              \c!x=11pt,     \c!xx=9pt,
+          \c!groot=16pt,  \c!klein=11pt]
+
+\definebodyfontenvironment
+  [14pt]
+  [        \s!text=14pt, \s!script=10pt, \s!scriptscript=7pt,
+              \c!x=12pt,     \c!xx=10pt,
+          \c!groot=16pt,  \c!klein=12pt]
+
+\definebodyfontenvironment
+  [16pt]
+  [        \s!text=16pt, \s!script=12pt, \s!scriptscript=9pt,
+              \c!x=13pt,     \c!xx=11pt,
+          \c!groot=18pt,  \c!klein=14pt]
+
+\stoptypescript
+
+\starttypescript [serif] [dtp] [size] 
+  \definebodyfont 
+    [5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,13pt,14pt,16pt,18pt,22pt,28pt]
+    [rm] [default]
+\stoptypescript 
+
+\starttypescript [sans] [dtp] [size] 
+  \definebodyfont 
+    [5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,13pt,14pt,16pt,18pt,22pt,28pt]
+    [ss] [default]
+\stoptypescript 
+
+\starttypescript [mono] [dtp] [size]
+  \definebodyfont 
+    [5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,13pt,14pt,16pt,18pt,22pt,28pt]
+    [tt] [default]
+\stoptypescript 
+
+\starttypescript [math] [dtp] [size]
+  \definebodyfont 
+    [5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,13pt,14pt,16pt,18pt,22pt,28pt]
+    [mm] [default]
+\stoptypescript 
+
+\starttypescript [boldmath] [dtp] [size]  
+  \definebodyfont 
+    [5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,13pt,14pt,16pt,18pt,22pt,28pt]
+    [mm] [boldmath]
+\stoptypescript
+
+\starttypescript [serif] [computer-modern] [size] 
+
+\definebodyfont [12pt] [rm] 
+  [tf=cmr12,
+   bf=cmbx12,
+   it=cmti12,
+   sl=cmsl12,
+   bi=cmbxti10 at 12pt, 
+   bs=cmbxsl10 at 12pt, 
+   sc=cmcsc10 at 12pt]
+
+\definebodyfont [11pt] [rm] 
+  [tf=cmr10 at 11pt, 
+   bf=cmbx10 at 11pt, 
+   sl=cmsl10 at 11pt, 
+   it=cmti10 at 11pt, 
+   bi=cmbxti10 at 11pt, 
+   bs=cmbxsl10 at 11pt, 
+   sc=cmcsc10 at 11pt]
+
+\definebodyfont [10pt] [rm] 
+  [tf=cmr10,
+   bf=cmbx10,
+   it=cmti10,
+   sl=cmsl10,
+   bi=cmbxti10, 
+   bs=cmbxsl10, 
+   sc=cmcsc10]
+
+\definebodyfont [9pt] [rm] 
+  [tf=cmr9,
+   bf=cmbx9,
+   it=cmti9,
+   sl=cmsl9,
+   bi=cmbxti10 at 9pt,          
+   bs=cmbxsl10 at 9pt,          
+   sc=cmcsc10 at 9pt]
+
+\definebodyfont [8pt] [rm] 
+  [tf=cmr8,
+   bf=cmbx8,
+   it=cmti8,
+   sl=cmsl8,
+   bi=cmbxti10 at 8pt,         
+   bs=cmbxsl10 at 8pt,         
+   sc=cmcsc10 at 8pt]
+
+\definebodyfont [7pt] [rm] 
+  [tf=cmr7,
+   bf=cmbx7,
+   it=cmti10 at 7pt,
+   sl=cmsl10 at 7pt,
+   bi=cmbxti10 at 7pt,           
+   bs=cmbxsl10 at 7pt,           
+   sc=cmcsc10 at 7pt]
+
+\definebodyfont [6pt] [rm] 
+  [tf=cmr6,
+   bf=cmbx6,
+   it=cmti10 at 6pt,
+   sl=cmsl10 at 6pt,
+   bi=cmbxti10 at 6pt,           
+   bs=cmbxsl10 at 6pt,           
+   sc=cmcsc10 at 6pt]
+
+\definebodyfont [5pt] [rm] 
+  [tf=cmr5,
+   bf=cmbx5,
+   it=cmti10 at 5pt,
+   sl=cmsl10 at 5pt,
+   bi=cmbxti10 at 5pt,           
+   bs=cmbxsl10 at 5pt,           
+   sc=cmcsc10 at 5pt]
+
+\definebodyfont [4pt] [rm] 
+  [tf=cmr10 at 4pt,
+   bf=cmbx10 at 4pt,
+   it=cmti10 at 4pt,
+   sl=cmsl10 at 4pt,
+   bi=cmbxti10 at 4pt,           
+   bs=cmbxsl10 at 4pt,
+   sc=cmr10 at 4pt]           
+
+\definebodyfont [14.4pt,17.3pt,20.7pt] [rm] 
+  [tf=cmr12    sa 1,
+   bf=cmbx12   sa 1,
+   it=cmti12   sa 1,
+   sl=cmsl12   sa 1,
+   bi=cmbxti10 sa 1,
+   bs=cmbxsl10 sa 1,
+   sc=cmcsc10  sa 1]
+
+\stoptypescript 
+
+\starttypescript [sans] [computer-modern] [size] 
+
+\definebodyfont [12pt] [ss] 
+  [tf=cmss12,
+   bf=cmssbx10 at 12pt,
+   it=cmssi12,
+   sl=cmssi12,
+   bi=cmssbx10 at 12pt,
+   bs=cmssbx10 at 12pt,
+   sc=cmss10 at 12pt]
+
+\definebodyfont [11pt] [ss] 
+  [tf=cmss10 at 11pt, 
+   bf=cmssbx10 at 11pt, 
+   it=cmssi10 at 11pt, 
+   sl=cmssi10 at 11pt, 
+   bi=cmssbx10 at 11pt, 
+   bs=cmssbx10 at 11pt, 
+   sc=cmss10 at 11pt]
+
+\definebodyfont [10pt] [ss] 
+  [tf=cmss10,
+   bf=cmssbx10, 
+   it=cmssi10,
+   sl=cmssi10,
+   bi=cmssbx10, 
+   bs=cmssbx10, 
+   sc=cmss10]
+
+\definebodyfont [9pt] [ss] 
+  [tf=cmss9,
+   bf=cmssbx10 at 9pt, 
+   it=cmssi9,
+   sl=cmssi9,
+   bi=cmssbx10 at 9pt, 
+   bs=cmssbx10 at 9pt, 
+   sc=cmss9]
+
+\definebodyfont [8pt] [ss] 
+  [tf=cmss8,
+   bf=cmssbx10 at 8pt, 
+   it=cmssi8,
+   sl=cmssi8,
+   bi=cmssbx10 at 8pt, 
+   bs=cmssbx10 at 8pt, 
+   sc=cmss8]
+
+\definebodyfont [7pt] [ss] 
+  [tf=cmss10 at 7pt,
+   bf=cmssbx10 at 7pt, 
+   it=cmssi10 at 7pt,
+   sl=cmssi10 at 7pt,
+   bs=cmssbx10 at 7pt,
+   bi=cmssbx10 at 7pt,
+   sc=cmss10 at 7pt]
+
+\definebodyfont [6pt] [ss] 
+  [tf=cmss10 at 6pt,
+   bf=cmssbx10 at 6pt, 
+   it=cmssi10 at 6pt,
+   sl=cmssi10 at 6pt,
+   bs=cmssbx10 at 6pt,
+   bi=cmssbx10 at 6pt,
+   sc=cmss10 at 6pt]
+
+\definebodyfont [5pt] [ss] 
+  [tf=cmss10 at 5pt,
+   bf=cmssbx10 at 5pt, 
+   it=cmssi10 at 5pt,
+   sl=cmssi10 at 5pt,
+   bs=cmssbx10 at 5pt,
+   bi=cmssbx10 at 5pt,
+   sc=cmss10 at 5pt]
+
+\definebodyfont [4pt] [ss] 
+  [tf=cmss10 at 4pt,
+   bf=cmssbx10 at 4pt, 
+   it=cmssi10 at 4pt,
+   sl=cmssi10 at 4pt,
+   bs=cmssbx10 at 4pt,
+   bi=cmssbx10 at 4pt,
+   sc=cmss10 at 4pt]
+
+\definebodyfont [14.4pt,17.3pt,20.7pt] [ss] 
+  [tf=cmss12   sa 1,
+   bf=cmssbx10 sa 1,
+   it=cmssi12  sa 1,
+   sl=cmssi12  sa 1,
+   bi=cmssbx10 sa 1,
+   bs=cmssbx10 sa 1,
+   sc=cmss12   sa 1]
+
+\stoptypescript 
+
+\starttypescript [mono] [computer-modern] [size] 
+
+\definebodyfont [12pt] [tt] 
+  [tf=cmtt12,
+   sl=cmsltt10 at 12pt,
+   it=cmitt10 at 12pt]
+
+\definebodyfont [11pt] [tt] 
+  [tf=cmtt10   at 11pt,
+   sl=cmsltt10 at 11pt,
+   it=cmitt10 at 11pt]
+
+\definebodyfont [10pt] [tt] 
+  [tf=cmtt10,
+   sl=cmsltt10,
+   it=cmitt10]
+
+\definebodyfont [9pt] [tt] 
+  [tf=cmtt9,
+   sl=cmsltt10 at 9pt,
+   it=cmitt10 at 9pt]
+
+\definebodyfont [8pt] [tt] 
+  [tf=cmtt8,
+   sl=cmsltt10 at 8pt,
+   it=cmitt10 at 8pt]
+
+\definebodyfont [7pt] [tt] 
+  [tf=cmtt10 at 7pt,
+   sl=cmsltt10 at 7pt,
+   it=cmitt10 at 7pt]
+
+\definebodyfont [6pt] [tt] 
+  [tf=cmtt10 at 6pt,
+   sl=cmsltt10 at 6pt,
+   it=cmitt10 at 6pt]
+
+\definebodyfont [5pt] [tt] 
+  [tf=cmtt10 at 5pt,
+   sl=cmsltt10 at 5pt,
+   it=cmitt10 at 5pt]
+
+\definebodyfont [4pt] [tt] 
+  [tf=cmtt10 at 4pt,
+   sl=cmsltt10 at 4pt,
+   it=cmitt10 at 4pt]
+
+\definebodyfont [14.4pt,17.3pt,20.7pt] [tt] 
+  [tf=cmtt12 sa 1,
+   sl=cmsltt10 sa 1,
+   it=cmitt10 sa 1]
+
+\stoptypescript 
+
+\starttypescript [math] [computer-modern] [size] 
+
+\definebodyfont [12pt] [mm] 
+  [mr=xcmr12,
+   ex=cmex10 at 12pt,
+   mi=cmmi12,
+   sy=cmsy10 at 12pt] 
+
+\definebodyfont [11pt] [mm] 
+  [mr=xcmr10 at 11pt,
+   ex=cmex10 at 11pt,
+   mi=cmmi10 at 11pt,
+   sy=cmsy10 at 11pt]
+
+\definebodyfont [10pt] [mm] 
+  [mr=xcmr10,
+   ex=cmex10,   
+   mi=cmmi10,
+   sy=cmsy10]   
+
+\definebodyfont [9pt] [mm] 
+  [mr=xcmr9,
+   ex=cmex10 at 9pt,   
+   mi=cmmi9,
+   sy=cmsy9]   
+
+\definebodyfont [8pt] [mm] 
+  [mr=xcmr8,
+   ex=cmex10 at 8pt,   
+   mi=cmmi8,
+   sy=cmsy8]   
+
+\definebodyfont [7pt] [mm] 
+  [mr=xcmr7,
+   ex=cmex10 at 7pt,   
+   mi=cmmi7,
+   sy=cmsy7]   
+
+\definebodyfont [6pt] [mm] 
+  [mr=xcmr6,
+   ex=cmex10 at 6pt,   
+   mi=cmmi6,
+   sy=cmsy6]   
+
+\definebodyfont [5pt] [mm] 
+  [mr=xcmr5,
+   ex=cmex10 at 5pt,   
+   mi=cmmi5,
+   sy=cmsy5]   
+
+\definebodyfont [4pt] [mm] 
+  [mr=xcmr5  at 4pt,
+   ex=cmex10 at 4pt,   
+   mi=cmmi5 at 4pt,
+   sy=cmsy5 at 4pt]   
+
+\definebodyfont [14.4pt,17.3pt,20.7pt] [mm] 
+  [mr=xcmr12 sa 1,
+   ex=cmex10 sa 1,
+   mi=cmmi12 sa 1,
+   sy=cmsy10 sa 1]
+
+% hack to prevent mapping of filenames, watch the space! 
+
+\definefontsynonym[xcmr12][cmr12 ]
+\definefontsynonym[xcmr10][cmr10 ]
+\definefontsynonym[xcmr9] [cmr9 ]
+\definefontsynonym[xcmr8] [cmr8 ]
+\definefontsynonym[xcmr7] [cmr7 ]
+\definefontsynonym[xcmr6] [cmr6 ]
+\definefontsynonym[xcmr5] [cmr5 ]
+
+\stoptypescript 
+
+\starttypescript [serif] [concrete] [size] 
+
+\definebodyfont [10pt,11pt,12pt,14.4pt,17.3pt] [rm] 
+  [tf=ccr10 sa 1,
+   it=ccti10 sa 1,
+   sl=ccsl10 sa 1,
+   sc=cccsc10 sa 1]
+
+\definebodyfont [5pt,6pt,7pt,8pt,9pt] [rm] 
+  [it=ccr9 sa 1,
+   sl=ccr9 sa 1,
+   sc=ccr9 sa 1]
+
+\definebodyfont [9pt] [rm] [tf=ccr9]
+\definebodyfont [8pt] [rm] [tf=ccr8]
+\definebodyfont [7pt] [rm] [tf=ccr7]
+\definebodyfont [6pt] [rm] [tf=ccr6]
+\definebodyfont [5pt] [rm] [tf=ccr5]
+
+\stoptypescript 
+
+\starttypescript [math] [euler] [size] 
+
+\definebodyfont [12pt,11pt,10pt,9pt] [mm]     
+  [mi=eurm10 sa 1,
+   ex=euex10 sa 1,
+   ma=euex10 sa 1,
+   mb=eusm10 sa 1,
+   mc=eufm10 sa 1]
+
+\definebodyfont [8pt,7pt,6pt,5pt] [mm]
+  [ex=euex10 sa 1,
+   ma=euex10 sa 1]
+
+\definebodyfont [8pt,7pt,6pt] [mm]
+  [mi=eurm7 sa 1,
+   mb=eusm7 sa 1,
+   mc=eufm7 sa 1]
+
+\definebodyfont [5pt] [mm]
+  [mi=eurm5,
+   mb=eusm5,
+   mc=eufm5]
+
+\stoptypescript 
+
+\starttypescript [math] [ams] [size] 
+  \definebodyfont [17.3pt,14.4pt,12pt,11pt,10pt,9pt] [mm]
+    [ma=msam10 sa 1,
+     mb=msam10 sa 1]
+  \definebodyfont [8pt,7pt] [mm]
+    [ma=msam7 sa 1,
+     mb=msbm7 sa 1]
+  \definebodyfont [6pt,5pt,4pt] [mm]
+    [ma=msam5 sa 1,
+     mb=msbm5 sa 1]
+\stoptypescript
+
+% math times 
+
+\starttypescript [math] [times] [size] 
+
+\mapfontsize [5pt]    [6.0pt]
+\mapfontsize [6pt]    [6.8pt]
+\mapfontsize [7pt]    [7.6pt]
+\mapfontsize [8pt]    [8.4pt]
+\mapfontsize [9pt]    [9.2pt]
+\mapfontsize [10pt]   [10pt]
+\mapfontsize [11pt]   [10.8pt]
+\mapfontsize [12pt]   [11.6pt]
+\mapfontsize [14.4pt] [13.2pt]
+
+\stoptypescript 
+
+\protect \endinput
diff --git a/tex/context/base/type-spe.tex b/tex/context/base/type-spe.tex
new file mode 100644
index 000000000..03c49f8c3
--- /dev/null
+++ b/tex/context/base/type-spe.tex
@@ -0,0 +1,38 @@
+%D \module
+%D   [       file=type-spe,
+%D        version=2001.04.12, 
+%D          title=\CONTEXT\ Typescript Macros,
+%D       subtitle=Special scripts, 
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\starttypescript [mono] [courier,lucida] [special] 
+  \def\controlspace{\getglyph{ComputerModernMono}{\char32}}
+\stoptypescript 
+
+\starttypescript [math] [computer-modern] [special] 
+  \usemathcollection[default]
+\stoptypescript
+
+\starttypescript [math] [lucida] [special] 
+  \usemathcollection[lbr]
+\stoptypescript
+
+\starttypescript [math] [ams] [special] 
+  \usemathcollection[ams]
+\stoptypescript
+
+\starttypescript [math] [times] [special] 
+  \usemathcollection[tim]
+\stoptypescript
+
+\starttypescript [math] [euler] [special] 
+  \usemathcollection[eul]
+\stoptypescript
+
+\endinput
diff --git a/tex/context/base/type-syn.tex b/tex/context/base/type-syn.tex
new file mode 100644
index 000000000..96ee5a665
--- /dev/null
+++ b/tex/context/base/type-syn.tex
@@ -0,0 +1,274 @@
+%D \module
+%D   [       file=type-syn,
+%D        version=2001.04.12, 
+%D          title=\CONTEXT\ Typescript Macros,
+%D       subtitle=Filename scripts, 
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% Computer Modern Roman : Donald Knuth 
+
+\starttypescript [serif] [computer-modern] [name]
+  \definefontsynonym [Serif]            [ComputerModern]
+  \definefontsynonym [SerifBold]        [ComputerModern-Bold]
+  \definefontsynonym [SerifItalic]      [ComputerModern-Italic]
+  \definefontsynonym [SerifSlanted]     [ComputerModern-Slanted]
+  \definefontsynonym [SerifBoldItalic]  [ComputerModern-BoldItalic]
+  \definefontsynonym [SerifBoldSlanted] [ComputerModern-BoldSlanted]
+  \definefontsynonym [SerifCaps]        [ComputerModern-Caps]
+\stoptypescript
+
+\starttypescript [sans] [computer-modern] [name]
+  \definefontsynonym [Sans]             [ComputerModernSans]
+  \definefontsynonym [SansBold]         [ComputerModernSans-Bold]
+  \definefontsynonym [SansItalic]       [ComputerModernSans-Italic]
+  \definefontsynonym [SansSlanted]      [ComputerModernSans-Slanted]
+  \definefontsynonym [SansBoldItalic]   [ComputerModernSans-BoldItalic]
+  \definefontsynonym [SansBoldSlanted]  [ComputerModernSans-BoldSlanted]
+  \definefontsynonym [SansCaps]         [ComputerModernSans-Caps]
+\stoptypescript
+
+\starttypescript [mono] [computer-modern] [name]
+  \definefontsynonym [Mono]             [ComputerModernMono]
+  \definefontsynonym [MonoBold]         [ComputerModernMono-Bold]
+  \definefontsynonym [MonoItalic]       [ComputerModernMono-Italic]
+  \definefontsynonym [MonoSlanted]      [ComputerModernMono-Slanted]
+  \definefontsynonym [MonoBoldItalic]   [ComputerModernMono-BoldItalic]
+  \definefontsynonym [MonoBoldSlanted]  [ComputerModernMono-BoldSlanted]
+  \definefontsynonym [MonoCaps]         [ComputerModernMono-Caps]
+\stoptypescript
+
+\starttypescript [math] [computer-modern] [name]
+  \definefontsynonym [MathRoman]        [ComputerModernMath-Roman]
+  \definefontsynonym [MathExtension]    [ComputerModernMath-Extension]
+  \definefontsynonym [MathItalic]       [ComputerModernMath-Italic]
+  \definefontsynonym [MathSymbol]       [ComputerModernMath-Symbol]
+\stoptypescript
+
+% This will change some day.  
+
+\starttypescript [math] [computer-modern] [name]
+  \definefontsynonym [OldStyle]     [MathItalic]         
+  \definefontsynonym [Fraktur]      [eufm10]
+  \definefontsynonym [Gothic]       [eufm10]
+  \definefontsynonym [Calligraphic] [cmsy10]
+\stoptypescript
+
+% Concrete Modern Roman : Donald Knuth 
+
+\starttypescript [serif] [concrete] [name]
+  \definefontsynonym [Serif]            [ComputerConcrete]
+  \definefontsynonym [SerifBold]        [ComputerConcrete]
+  \definefontsynonym [SerifItalic]      [ComputerConcrete-Italic]
+  \definefontsynonym [SerifSlanted]     [ComputerConcrete-Slanted]
+  \definefontsynonym [SerifBoldItalic]  [ComputerConcrete-Italic]
+  \definefontsynonym [SerifBoldSlanted] [ComputerConcrete-Slanted]
+  \definefontsynonym [SerifCaps]        [ComputerConcrete-Caps]
+\stoptypescript
+
+% Euler : Hermann Zapf
+
+\starttypescript [math] [euler] [name]
+  \definefontsynonym [MathExtension] [Euler-Extension]
+  \definefontsynonym [MathItalic]    [Euler-Italic]
+  \definefontsynonym [MathAlpha]     [Euler-SymbolA]
+  \definefontsynonym [MathBeta]      [Euler-SymbolB]
+  \definefontsynonym [MathGamma]     [Euler-SymbolC]
+\stoptypescript
+
+% American Math Society : Michael Spivak 
+
+\starttypescript [math] [ams] [name]
+  \definefontsynonym [MathAlpha] [AMS-SymbolA]
+  \definefontsynonym [MathBeta]  [AMS-SymbolB]
+\stoptypescript
+
+% Lucida Bright : Biggelow and Holmes
+
+\starttypescript [serif] [lucida] [name]
+  \definefontsynonym [Serif]            [LucidaBright]
+  \definefontsynonym [SerifBold]        [LucidaBright-Demi]
+  \definefontsynonym [SerifItalic]      [LucidaBright-Italic]
+  \definefontsynonym [SerifSlanted]     [LucidaBright-Oblique]
+  \definefontsynonym [SerifBoldItalic]  [LucidaBright-DemiItalic]
+  \definefontsynonym [SerifBoldSlanted] [LucidaBright-DemiItalic]
+  \definefontsynonym [SerifCaps]        [LucidaBrightSmallcaps]
+  \definefontsynonym [OldStyle]         [MathItalic]
+\stoptypescript
+
+\starttypescript [sans] [lucida] [name]
+  \definefontsynonym [Sans]            [LucidaSans]
+  \definefontsynonym [SansBold]        [LucidaSans-Demi]
+  \definefontsynonym [SansItalic]      [LucidaSans-Italic]
+  \definefontsynonym [SansSlanted]     [LucidaSans-Italic]
+  \definefontsynonym [SansBoldItalic]  [LucidaSans-DemiItalic]
+  \definefontsynonym [SansBoldSlanted] [LucidaSans-DemiItalic]
+  \definefontsynonym [SansCaps]        [LucidaSans]
+\stoptypescript
+
+\starttypescript [mono] [lucida] [name]
+  \definefontsynonym [Mono]            [LucidaSans-Typewriter]
+  \definefontsynonym [MonoBold]        [LucidaSans-TypewriterBold]
+  \definefontsynonym [MonoItalic]      [LucidaSans-TypewriterOblique]
+  \definefontsynonym [MonoSlanted]     [LucidaSans-TypewriterOblique]
+  \definefontsynonym [MonoBoldItalic]  [LucidaSans-TypewriterBoldOblique]
+  \definefontsynonym [MonoBoldSlanted] [LucidaSans-TypewriterBoldOblique]
+  \definefontsynonym [MonoCaps]        [LucidaSans-Typewriter]
+\stoptypescript
+
+\starttypescript [math] [lucida] [name]  
+  \definefontsynonym [MathRoman]     [LucidaBright]
+  \definefontsynonym [MathExtension] [LucidaNewMath-Extension]
+  \definefontsynonym [MathItalic]    [LucidaNewMath-AltItalic]
+  \definefontsynonym [MathSymbol]    [LucidaNewMath-Symbol]
+  \definefontsynonym [MathAlpha]     [LucidaNewMath-Arrows]
+\stoptypescript
+
+\starttypescript [boldmath] [lucida] [name]  
+  \definefontsynonym [MathRomanBold]     [LucidaBright-Demi]
+  \definefontsynonym [MathExtensionBold] [LucidaNewMath-Extension]
+  \definefontsynonym [MathItalicBold]    [LucidaNewMath-AltDemiItalic]
+  \definefontsynonym [MathSymbolBold]    [LucidaNewMath-Symbol-Demi]
+  \definefontsynonym [MathAlphaBold]     [LucidaNewMath-Arrows-Demi]
+\stoptypescript
+
+\starttypescript [handwriting] [lucida] [name]
+  \definefontsynonym [Handwriting] [LucidaHandwriting-Italic]
+\stoptypescript
+
+\starttypescript [calligraphy] [lucida] [name]
+  \definefontsynonym [Calligraphy] [LucidaCalligraphy-Italic]
+\stoptypescript
+
+% Informal
+
+\starttypescript [casual] [informal] [name]
+  \definefontsynonym [Serif]            [Informal-Regular]
+  \definefontsynonym [SerifBold]        [Informal-Bold]
+  \definefontsynonym [SerifSlanted]     [Informal-Oblique]
+  \definefontsynonym [SerifItalic]      [Informal-Oblique]
+  \definefontsynonym [SerifBoldSlanted] [Informal-BoldOblique]
+  \definefontsynonym [SerifBoldItalic]  [Informal-BoldOblique]
+  \definefontsynonym [SerifCaps]        [Informal-Regular]
+\stoptypescript
+
+\starttypescript [math] [informal] [name]
+  \definefontsynonym [MathRoman]     [Informal-Regular]
+  \definefontsynonym [MathExtension] [Informal-MathExtendedSymbols]
+  \definefontsynonym [MathItalic]    [Informal-MathItalics]
+  \definefontsynonym [MathSymbol]    [Informal-MathSymbols]
+\stoptypescript
+
+% Antykwa Torunska :
+
+\starttypescript [serif] [antykwa-torunska] [name]
+  \definefontsynonym [Serif]            [AntykwaTorunska-Regular]
+  \definefontsynonym [SerifBold]        [AntykwaTorunska-Bold]
+  \definefontsynonym [SerifItalic]      [AntykwaTorunska-Italic]
+  \definefontsynonym [SerifSlanted]     [AntykwaTorunska-Italic]
+  \definefontsynonym [SerifBoldItalic]  [AntykwaTorunska-Bold]
+  \definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-Bold]
+  \definefontsynonym [SerifCaps]        [AntykwaTorunska-Regular]
+\stoptypescript
+
+% Baskerville :
+
+\starttypescript [serif] [baskerville] [name]
+  \definefontsynonym [Serif]            [Baskerville]
+  \definefontsynonym [SerifBold]        [Baskerville-Bold]
+  \definefontsynonym [SerifItalic]      [Baskerville-Italic]
+  \definefontsynonym [SerifSlanted]     [Baskerville-Italic]
+  \definefontsynonym [SerifBoldItalic]  [Baskerville-BoldItalic]
+  \definefontsynonym [SerifBoldSlanted] [Baskerville-BoldItalic]
+  \definefontsynonym [SerifCaps]        [Baskerville]
+\stoptypescript
+
+% Garamond :
+
+\starttypescript [serif] [garamond] [name]
+  \definefontsynonym [Serif]            [Garamond-Normal]
+  \definefontsynonym [SerifBold]        [Garamond]
+  \definefontsynonym [SerifItalic]      [Garamond-Medium-Italic]
+  \definefontsynonym [SerifSlanted]     [Garamond-Medium-Italic]
+  \definefontsynonym [SerifBoldItalic]  [Garamond-Medium-Italic]
+  \definefontsynonym [SerifBoldSlanted] [Garamond-Medium-Italic]
+  \definefontsynonym [SerifCaps]        [Garamond]
+\stoptypescript
+
+% Times :
+
+\starttypescript [serif] [times] [name]
+  \definefontsynonym [Serif]            [Times-Roman]
+  \definefontsynonym [SerifBold]        [Times-Bold]
+  \definefontsynonym [SerifItalic]      [Times-Italic]
+  \definefontsynonym [SerifSlanted]     [Times-Italic]
+  \definefontsynonym [SerifBoldItalic]  [Times-BoldItalic]
+  \definefontsynonym [SerifBoldSlanted] [Times-BoldItalic]
+  \definefontsynonym [SerifCaps]        [Times-Roman]
+\stoptypescript
+
+\starttypescript [math] [times] [name]
+  \definefontsynonym [MathRoman]     [Times-MathRoman]
+  \definefontsynonym [MathExtension] [Times-MathExtension]
+  \definefontsynonym [MathItalic]    [Times-MathItalic]
+  \definefontsynonym [MathSymbol]    [Times-MathSymbol]
+\stoptypescript
+
+% Helvetica :
+
+\starttypescript [sans] [helvetica] [name]
+  \definefontsynonym [Sans]            [Helvetica]
+  \definefontsynonym [SansBold]        [Helvetica-Bold]
+  \definefontsynonym [SansItalic]      [Helvetica-Oblique]
+  \definefontsynonym [SansSlanted]     [Helvetica-Oblique]
+  \definefontsynonym [SansBoldItalic]  [Helvetica-BoldOblique]
+  \definefontsynonym [SansBoldSlanted] [Helvetica-BoldOblique]
+  \definefontsynonym [SansCaps]        [Helvetica]
+\stoptypescript
+
+\starttypescript [math] [helvetica] [name]
+  \definefontsynonym [MathRoman]     [Helvetica-MathRoman]
+  \definefontsynonym [MathExtension] [Helvetica-MathExtendedSymbols]
+  \definefontsynonym [MathItalic]    [Helvetica-MathItalics]
+  \definefontsynonym [MathSymbol]    [Helvetica-MathSymbols]
+\stoptypescript
+
+% Courier :
+
+\starttypescript [sans] [courier] [name]
+  \definefontsynonym [Mono]            [Courier]
+  \definefontsynonym [MonoBold]        [Courier-Bold]
+  \definefontsynonym [MonoItalic]      [Courier-Oblique]
+  \definefontsynonym [MonoSlanted]     [Courier-Oblique]
+  \definefontsynonym [MonoBoldItalic]  [Courier-BoldOblique]
+  \definefontsynonym [MonoBoldSlanted] [Courier-BoldOblique]
+  \definefontsynonym [MonoCaps]        [Courier]
+\stoptypescript
+
+% Palatino : Hermann Zapf 
+
+\starttypescript [serif] [palatino] [name]
+  \definefontsynonym [Serif]            [Palatino] 
+  \definefontsynonym [SerifBold]        [Palatino-Bold]
+  \definefontsynonym [SerifItalic]      [Palatino-Italic]
+  \definefontsynonym [SerifSlanted]     [Palatino-Slanted]
+  \definefontsynonym [SerifBoldItalic]  [Palatino-BoldItalic]
+  \definefontsynonym [SerifBoldSlanted] [Palatino-BoldSlanted]
+  \definefontsynonym [SerifCaps]        [Palatino]
+\stoptypescript
+
+\starttypescript [math] [palatino] [name]
+  \definefontsynonym [MathRoman]     [Palatino-Roman-Upright]     
+  \definefontsynonym [MathExtension] [Palatino-Math-Extension]     
+  \definefontsynonym [MathItalic]    [Palatino-Math-Italic]        
+  \definefontsynonym [MathSymbol]    [Palatino-Math-Symbols]          
+  \definefontsynonym [MathAlpha]     [Palatino-Math-SymbolsA]     
+  \definefontsynonym [MathBeta]      [Palatino-Math-SymbolsB]     
+\stoptypescript
+
+\endinput
diff --git a/tex/context/base/verb-ini.tex b/tex/context/base/verb-ini.tex
index ce6ff8d90..7e7f23fcf 100644
--- a/tex/context/base/verb-ini.tex
+++ b/tex/context/base/verb-ini.tex
@@ -876,11 +876,13 @@
    \skipfirstverbatimlinefalse
    \initializeverbatimline
    \def\readline%
-     {\ifx\firstverbatimfileline\empty 
-        \read\verbatiminput to \verbatimline
-      \else
-        \let\verbatimline\firstverbatimfileline
-        \let\firstverbatimfileline\empty
+     {\ifeof\verbatiminput \else
+        \ifx\firstverbatimfileline\empty 
+          \read\verbatiminput to \verbatimline
+        \else
+          \let\verbatimline\firstverbatimfileline
+          \let\firstverbatimfileline\empty
+        \fi
       \fi
       \ifeof\verbatiminput
         \ifx\lastverbatimfileline\empty 
diff --git a/tex/context/base/x-fig-00.tex b/tex/context/base/x-fig-00.tex
index 8f6899c49..4d80e3653 100644
--- a/tex/context/base/x-fig-00.tex
+++ b/tex/context/base/x-fig-00.tex
@@ -143,7 +143,7 @@
 \def\usefigurebase[#1]%
   {\doifelse{#1}{\v!reset}
      {\let\figurebaselist\empty}
-     {\appendcommacommand{#1}\figurebaselist}}
+     {\appendtocommalist{#1}\figurebaselist}}
 
 \endinput 
 
diff --git a/tex/context/base/xtag-ini.tex b/tex/context/base/xtag-ini.tex
index a34a233c3..1b6f98cfe 100644
--- a/tex/context/base/xtag-ini.tex
+++ b/tex/context/base/xtag-ini.tex
@@ -790,14 +790,14 @@
 
 % partially defined here
 
-\fetchruntimecommand\showXMLfile  {\f!xtagprefix vis}
-\fetchruntimecommand\showXMLbuffer{\f!xtagprefix vis}
-
-\fetchruntimecommand\showXMLtxt   {\f!xtagprefix vis}
-\fetchruntimecommand\showXMLpar   {\f!xtagprefix vis}
-\fetchruntimecommand\showXMLlin   {\f!xtagprefix vis}
-\fetchruntimecommand\showXMLwrd   {\f!xtagprefix vis}
-\fetchruntimecommand\showXMLemp   {\f!xtagprefix vis}
+\fetchruntimecommand\showXMLfile  {\f!xtagprefix\s!run}
+\fetchruntimecommand\showXMLbuffer{\f!xtagprefix\s!run}
+
+\fetchruntimecommand\showXMLtxt   {\f!xtagprefix\s!run}
+\fetchruntimecommand\showXMLpar   {\f!xtagprefix\s!run}
+\fetchruntimecommand\showXMLlin   {\f!xtagprefix\s!run}
+\fetchruntimecommand\showXMLwrd   {\f!xtagprefix\s!run}
+\fetchruntimecommand\showXMLemp   {\f!xtagprefix\s!run}
 
 %D \type
 %D   {processXMLbuffer}
diff --git a/tex/context/base/xtag-run.tex b/tex/context/base/xtag-run.tex
new file mode 100644
index 000000000..234238f4f
--- /dev/null
+++ b/tex/context/base/xtag-run.tex
@@ -0,0 +1,122 @@
+%D \module
+%D   [       file=xtag-vis,
+%D        version=2001.01.10,
+%D          title=\CONTEXT\ XML Support,
+%D       subtitle=Visualization,
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{Context XML Macros (visualization)}
+
+\unprotect 
+
+\bgroup
+
+\catcode`\.=\@@escape
+.catcode`.B=.@@begingroup
+.catcode`.E=.@@endgroup
+.catcode`.#=.@@active
+.catcode`.$=.@@active
+.catcode`.%=.@@active
+.catcode`.\=.@@active
+.catcode`.^=.@@active
+.catcode`._=.@@active
+.catcode`.{=.@@active
+.catcode`.}=.@@active
+.catcode`.|=.@@active
+.catcode`.~=.@@active
+
+.gdef.verbatimXML
+  B.catcode`.#=.@@active .let#.letterhash
+   .catcode`.$=.@@active .let$.dollar
+   .catcode`.%=.@@active .let%.percent
+   .catcode`.\=.@@active .let\.letterbackslash
+   .catcode`.^=.@@active .let^.letterhat
+   .catcode`._=.@@active .let_.letterunderscore
+   .catcode`.{=.@@active .let{.leftargument
+   .catcode`.}=.@@active .let}.rightargument
+   .catcode`.|=.@@active .let|.letterbar
+   .catcode`.~=.@@active .let~.lettertilde
+  E
+
+.egroup
+
+\definepalet
+  [xtag]
+  [0=darkgreen,
+   1=darkred,
+   2=darkblue,
+   3=darkgray]
+
+\newcount\XMLlevel 
+
+\def\@XMLindent#1%
+%  {\ifnum\XMLlevel>0\advance\leftskip#11em\relax\fi}
+  {\advance\leftskip#11em\relax}
+
+\def\@XMLlevel#1%
+  {\advance\XMLlevel#11\relax}
+
+\def\@XMLentity#1%
+  {\noindent
+   \hbox
+     {\localcolortrue
+      \startcolormode{xtag:3}\string&#1;\stopcolormode}}
+
+\def\@XMLelement#1%
+  {\ifhmode\unskip\fi
+   \noindent
+   \hbox
+     {\localcolortrue
+      \DoMod\XMLlevel by3to\scratchcounter
+      \startcolormode{xtag:\number\scratchcounter}\string<\currentXMLelement\stopcolormode
+      \ifcase#1\or\ifx\currentXMLarguments\empty\else
+        \startcolormode{xtag:3}\hskip.5em\currentXMLarguments\unskip\stopcolormode
+      \fi\fi
+      \startcolormode{xtag:\number\scratchcounter}\string>\stopcolormode}%
+   \ignorespaces}
+
+\def\nextXMLtext{\blank\@XMLlevel+\@XMLelement1\par}
+\def\prevXMLtext{\par\@XMLelement0\par\@XMLlevel-\blank}
+\def\nextXMLpara{\nextXMLline\par}
+\def\prevXMLpara{\par\prevXMLline}
+\def\nextXMLline{\par\@XMLlevel+\@XMLindent+\@XMLelement1}
+\def\prevXMLline{\@XMLelement0\par\@XMLlevel-\@XMLindent-}
+\def\nextXMLword{\@XMLlevel+\@XMLelement1}
+\def\prevXMLword{\@XMLelement0\@XMLlevel-}
+
+\def\someXMLword{\@XMLlevel+\@XMLelement1\@XMLlevel-}
+
+\def\setXMLshow#1#2#3[#4]%
+  {\def\docommando##1{#1[##1]#2#3}\processcommalist[#4]\docommando}
+
+\def\showXMLtxt{\setXMLshow\defineXMLenvironment\nextXMLtext\prevXMLtext}
+\def\showXMLpar{\setXMLshow\defineXMLenvironment\nextXMLpara\prevXMLpara}
+\def\showXMLlin{\setXMLshow\defineXMLenvironment\nextXMLline\prevXMLline}
+\def\showXMLwrd{\setXMLshow\defineXMLenvironment\nextXMLword\prevXMLword}
+\def\showXMLemp{\setXMLshow\defineXMLsingular\someXMLword\relax}
+
+\def\showXMLfile#1%
+  {{\tttf\dontcomplain
+    \let\executeXMLentity\@XMLentity
+    \enableXML\verbatimXML
+    \processfile{#1}}}
+
+\def\showXMLbuffer%
+  {\dosingleempty\doshowXMLbuffer}
+
+\def\doshowXMLbuffer[#1]%
+  {\doifelsenothing{#1}
+     {\doshowXMLbuffer[\jobname]}
+     {\bgroup
+      \def\dodoprocessXMLbuffer##1%
+        {\showXMLfile{\TEXbufferfile{##1}}}%
+      \processcommalist[#1]\dodoprocessXMLbuffer
+      \egroup}}
+
+\protect \endinput 
diff --git a/tex/context/base/xtag-vis.tex b/tex/context/base/xtag-vis.tex
deleted file mode 100644
index 234238f4f..000000000
--- a/tex/context/base/xtag-vis.tex
+++ /dev/null
@@ -1,122 +0,0 @@
-%D \module
-%D   [       file=xtag-vis,
-%D        version=2001.01.10,
-%D          title=\CONTEXT\ XML Support,
-%D       subtitle=Visualization,
-%D         author=Hans Hagen,
-%D           date=\currentdate,
-%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context XML Macros (visualization)}
-
-\unprotect 
-
-\bgroup
-
-\catcode`\.=\@@escape
-.catcode`.B=.@@begingroup
-.catcode`.E=.@@endgroup
-.catcode`.#=.@@active
-.catcode`.$=.@@active
-.catcode`.%=.@@active
-.catcode`.\=.@@active
-.catcode`.^=.@@active
-.catcode`._=.@@active
-.catcode`.{=.@@active
-.catcode`.}=.@@active
-.catcode`.|=.@@active
-.catcode`.~=.@@active
-
-.gdef.verbatimXML
-  B.catcode`.#=.@@active .let#.letterhash
-   .catcode`.$=.@@active .let$.dollar
-   .catcode`.%=.@@active .let%.percent
-   .catcode`.\=.@@active .let\.letterbackslash
-   .catcode`.^=.@@active .let^.letterhat
-   .catcode`._=.@@active .let_.letterunderscore
-   .catcode`.{=.@@active .let{.leftargument
-   .catcode`.}=.@@active .let}.rightargument
-   .catcode`.|=.@@active .let|.letterbar
-   .catcode`.~=.@@active .let~.lettertilde
-  E
-
-.egroup
-
-\definepalet
-  [xtag]
-  [0=darkgreen,
-   1=darkred,
-   2=darkblue,
-   3=darkgray]
-
-\newcount\XMLlevel 
-
-\def\@XMLindent#1%
-%  {\ifnum\XMLlevel>0\advance\leftskip#11em\relax\fi}
-  {\advance\leftskip#11em\relax}
-
-\def\@XMLlevel#1%
-  {\advance\XMLlevel#11\relax}
-
-\def\@XMLentity#1%
-  {\noindent
-   \hbox
-     {\localcolortrue
-      \startcolormode{xtag:3}\string&#1;\stopcolormode}}
-
-\def\@XMLelement#1%
-  {\ifhmode\unskip\fi
-   \noindent
-   \hbox
-     {\localcolortrue
-      \DoMod\XMLlevel by3to\scratchcounter
-      \startcolormode{xtag:\number\scratchcounter}\string<\currentXMLelement\stopcolormode
-      \ifcase#1\or\ifx\currentXMLarguments\empty\else
-        \startcolormode{xtag:3}\hskip.5em\currentXMLarguments\unskip\stopcolormode
-      \fi\fi
-      \startcolormode{xtag:\number\scratchcounter}\string>\stopcolormode}%
-   \ignorespaces}
-
-\def\nextXMLtext{\blank\@XMLlevel+\@XMLelement1\par}
-\def\prevXMLtext{\par\@XMLelement0\par\@XMLlevel-\blank}
-\def\nextXMLpara{\nextXMLline\par}
-\def\prevXMLpara{\par\prevXMLline}
-\def\nextXMLline{\par\@XMLlevel+\@XMLindent+\@XMLelement1}
-\def\prevXMLline{\@XMLelement0\par\@XMLlevel-\@XMLindent-}
-\def\nextXMLword{\@XMLlevel+\@XMLelement1}
-\def\prevXMLword{\@XMLelement0\@XMLlevel-}
-
-\def\someXMLword{\@XMLlevel+\@XMLelement1\@XMLlevel-}
-
-\def\setXMLshow#1#2#3[#4]%
-  {\def\docommando##1{#1[##1]#2#3}\processcommalist[#4]\docommando}
-
-\def\showXMLtxt{\setXMLshow\defineXMLenvironment\nextXMLtext\prevXMLtext}
-\def\showXMLpar{\setXMLshow\defineXMLenvironment\nextXMLpara\prevXMLpara}
-\def\showXMLlin{\setXMLshow\defineXMLenvironment\nextXMLline\prevXMLline}
-\def\showXMLwrd{\setXMLshow\defineXMLenvironment\nextXMLword\prevXMLword}
-\def\showXMLemp{\setXMLshow\defineXMLsingular\someXMLword\relax}
-
-\def\showXMLfile#1%
-  {{\tttf\dontcomplain
-    \let\executeXMLentity\@XMLentity
-    \enableXML\verbatimXML
-    \processfile{#1}}}
-
-\def\showXMLbuffer%
-  {\dosingleempty\doshowXMLbuffer}
-
-\def\doshowXMLbuffer[#1]%
-  {\doifelsenothing{#1}
-     {\doshowXMLbuffer[\jobname]}
-     {\bgroup
-      \def\dodoprocessXMLbuffer##1%
-        {\showXMLfile{\TEXbufferfile{##1}}}%
-      \processcommalist[#1]\dodoprocessXMLbuffer
-      \egroup}}
-
-\protect \endinput 
diff --git a/tex/context/extra/setup-qr.tex b/tex/context/extra/setup-qr.tex
new file mode 100644
index 000000000..a2636b8a0
--- /dev/null
+++ b/tex/context/extra/setup-qr.tex
@@ -0,0 +1,178 @@
+% output=pdftex tex=pdfetex modes=cmr,nocover
+
+% This file is not part of the regular ConTeXt distribution.
+% Because this file generates the official ConTeXt command 
+% references, you may not alter it. 
+%
+% copyright: 19..-2001, Hans Hagen, PRAGMA-ADE, Hasselt NL 
+
+% modes: cmr      use cmr fonts 
+%        nocover  don't produce a cover page 
+%
+% other modes are supported by the cod driver  
+
+\unprotect 
+
+\startinterface dutch    \def\LocalColor{green}   \stopinterface
+\startinterface english  \def\LocalColor{red}     \stopinterface
+\startinterface german   \def\LocalColor{blue}    \stopinterface
+\startinterface czech    \def\LocalColor{magenta} \stopinterface
+\startinterface italian  \def\LocalColor{cyan}    \stopinterface
+\startinterface romanian \def\LocalColor{yellow}  \stopinterface
+
+\startuseMPgraphic{cover}
+  def something = 
+    path p, q;
+    color localgray, drawcolor, fillcolor, localcolor;
+    localgray := (.9,.9,.9);
+    localcolor := \LocalColor ;  
+    p := (0,0)--(200,0)--(200,50)--(0,50)--cycle;
+    q := (25,25)--(175,25);
+    dx := uniformdeviate 600;
+    dy := uniformdeviate 900;
+    sx := .3+(uniformdeviate .5);
+    sy := .3+(uniformdeviate .5);
+    drawcolor := (uniformdeviate 1)[.75localcolor,localcolor];
+    fillcolor := (uniformdeviate 1)[.75localgray,localgray];
+    rr := uniformdeviate 360; 
+    p := p xscaled sx yscaled sy rotated rr shifted (dx,dy); 
+    q := q xscaled sx yscaled sy rotated rr shifted (dx,dy);
+    fill p withcolor fillcolor;       
+    ahlength := (.2+sy)*15;
+    ahangle  := (.2+sx)*45;
+    draw p withpen pencircle scaled 7.5 withcolor drawcolor; 
+    drawarrow q withpen pencircle scaled 7.5 withcolor drawcolor; 
+  enddef;
+  for i := 1 upto 1000: 
+    something;
+  endfor;
+  setbounds currentpicture to unitsquare 
+    xscaled \overlaywidth yscaled \overlayheight;
+\stopuseMPgraphic
+
+\startnotmode[cmr]
+
+\setupbodyfont[lbr]
+
+\stopnotmode
+
+\setupbodyfont
+  [9pt]
+
+\setupcolors
+  [\c!status=\v!start]
+
+\startnotmode[nocover]
+
+\defineoverlay
+  [cover]
+  [\useMPgraphic{cover}]
+
+\stopnotmode
+
+\stellayoutin
+  [\c!rugwit=2cm,
+   \c!kopwit=2cm,
+   \c!hoofd=0cm,
+   \c!voet=0cm,
+   \c!marge=0cm,
+   \c!breedte=\v!passend,
+   \c!hoogte=\v!passend]
+
+\stelnummeringin
+  [\c!status=\v!stop,
+   \c!variant=\v!dubbelzijdig]
+
+\input setupa.tex
+
+\stelsetupin
+  [\c!criterium=\v!alles,
+   \c!verwijzing=0]
+
+\setupframedtexts
+  [setuptext]
+  [\c!kader=\v!aan]
+
+\usemodule[cod-01]
+
+\input setupb.tex
+
+\starttekst
+
+\stelachtergrondenin
+  [\v!rechterpagina]
+  [\c!achtergrond=cover]
+
+\startopmaak[\v!standaard]
+  \definefont[test][RegularBold at 100pt]\test\setstrut
+  \steluitlijnenin[\v!midden]
+  \strut Con\TeX t \par
+  \definefont[test][RegularBold at 75pt]\test\setstrut
+  \startinterface dutch    \strut commando's   \par \stopinterface
+  \startinterface english  \strut commands     \par \stopinterface
+  \startinterface german   \strut befehle      \par \stopinterface
+  \startinterface czech    \strut prikazy      \par \stopinterface
+  \startinterface italian  \strut commands (?) \par \stopinterface
+  \startinterface romanian \strut comenzile    \par \stopinterface
+  \vfill
+  \definefont[test][RegularBold at 150pt]\test\setstrut
+  \startinterface dutch    \strut NL \stopinterface
+  \startinterface english  \strut EN \stopinterface
+  \startinterface german   \strut DE \stopinterface
+  \startinterface czech    \strut CZ \stopinterface
+  \startinterface italian  \strut IT \stopinterface
+  \startinterface romanian \strut RO \stopinterface
+\stopopmaak
+
+\stelachtergrondenin
+  [\v!rechterpagina]
+  [\c!achtergrond=]
+
+\startopmaak[\v!standaard]
+  \definefont[test][RegularBold at 60pt]\test\setstrut
+  \steluitlijnenin[\v!midden]
+  \strut Con\TeX t \par
+  \vskip24pt
+  \definefont[test][RegularBold at 45pt]\test\setstrut
+  \startinterface dutch    \strut commando's     \par \stopinterface
+  \startinterface english  \strut commands       \par \stopinterface
+  \startinterface german   \strut befehle        \par \stopinterface
+  \startinterface czech    \strut prikaz\'y      \par \stopinterface
+  \startinterface czech    \strut commands (?)   \par \stopinterface
+  \startinterface romanian \strut comenzile      \par \stopinterface
+  \vfill
+  \strut \currentdate \par
+  \startinterface dutch    \strut nederlands     \par \stopinterface
+  \startinterface english  \strut english        \par \stopinterface
+  \startinterface german   \strut deutsch        \par \stopinterface
+  \startinterface czech    \strut \^cesk\'y      \par \stopinterface
+  \startinterface italian  \strut itialiano (?)  \par \stopinterface
+  \startinterface romanian \strut rom\^{a}n\u{a} \par \stopinterface
+
+\stopopmaak
+
+\stellayoutin
+  [\c!kopwit=1.5cm]
+
+\protect \placesetup \unprotect
+
+\pagina[\v!ja,\v!blanko,\v!rechts,\v!links]
+
+\stelachtergrondenin
+  [\v!linkerpagina]
+  [\c!achtergrond=cover]
+
+\stellayoutin
+  [\c!kopwit=2cm]
+
+\startopmaak[\v!standaard][\c!pagina=]
+  \definefont[test][RegularBold at 24pt]\test\stelinterliniein
+  \steluitlijnenin[\v!midden]
+  \vfill
+  PRAGMA ADE \par
+  Ridderstraat 27, 8061GH Hasselt NL 
+\stopopmaak
+
+\protect 
+
+\stoptekst
diff --git a/tex/context/sample/douglas.tex b/tex/context/sample/douglas.tex
new file mode 100644
index 000000000..643eb123f
--- /dev/null
+++ b/tex/context/sample/douglas.tex
@@ -0,0 +1,23 @@
+Donald Knuth has spent the past several years working on a
+system allowing him to control many aspects of the design
+of his forthcoming books---from the typesetting and layout
+down to the very shapes of the letters! Seldom has an
+author had anything remotely like this power to control the
+final appearance of his or her work. Knuth's \TEX\
+typesetting system has become well||known and available in
+many countries around the world. By contrast, his
+\METAFONT\ system for designing families of typefaces has
+not become as well known or available. 
+
+In his article \quotation {The Concept of a Meta||Font}, 
+Knuth sets forth for the first time the underlying 
+philosophy of \METAFONT, as well as some of its products. 
+Not only is the concept exiting and clearly well executed, 
+but in my opinion the article is charmingly written as well.
+However, despite my overall enthusiasm for Knuth's idea and 
+article, there are some points in it that I feel might be 
+taken wrongly by many readers, and since they are points 
+that touch close to my deepest interests in artificial 
+intelligence and esthetic theory, I felt compelled to make 
+some comments to clarify certain important issues raised by 
+\quotation {The Concept of a Meta||Font}. 
diff --git a/tex/context/sample/knuth.tex b/tex/context/sample/knuth.tex
new file mode 100644
index 000000000..30b6310cc
--- /dev/null
+++ b/tex/context/sample/knuth.tex
@@ -0,0 +1,16 @@
+Thus, I came to the conclusion that the designer of a new
+system must not only be the implementer and first
+large||scale user; the designer should also write the first
+user manual.
+
+The separation of any of these four components would have
+hurt \TeX\ significantly. If I had not participated fully in
+all these activities, literally hundreds of improvements
+would never have been made, because I would never have
+thought of them or perceived why they were important.
+
+But a system cannot be successful if it is too strongly
+influenced by a single person. Once the initial design is
+complete and fairly robust, the real test begins as people
+with many different viewpoints undertake their own
+experiments. 
diff --git a/tex/context/sample/materie.tex b/tex/context/sample/materie.tex
new file mode 100644
index 000000000..5e2597186
--- /dev/null
+++ b/tex/context/sample/materie.tex
@@ -0,0 +1,50 @@
+Zaagh, of Steek||zaagh. 
+Domme||kraght. 
+Mokers. 
+Yzere Wiggen. 
+Brandt||yzer. 
+Hout||haak. 
+Spaander||haak. 
+Een Klaas Jacobzen.
+Tange. 
+Nagel||hamer. 
+Wigge. 
+Oor||houten. 
+Kluften. 
+Hellen. 
+Steven||haken. 
+Hevels en Klein||touwen. 
+Een Koe||voet. 
+Schot||bouten. 
+Yzere ram. 
+Avegaar. 
+Een houte Ram. 
+Een groote Wigge daar toe. 
+Teer||ketel. 
+Slyp||steen. 
+Een Mal. 
+Rye. 
+Hout||bok. 
+Schraagh. 
+Vlotten. 
+Een Slee. 
+Dwars||slee. 
+Kaap||stander. 
+Bytels. 
+Klavaats||hamer. 
+Rabat||yzer. 
+Klavaats||yzer. 
+Spyker||yzer. 
+Werk||bytel. 
+Duim||stok.
+Schraper.
+Een Moker. 
+Spyker||hamertje. 
+Een Roffel. 
+Gerf||schaaf. 
+Odief. 
+Ploegen. 
+Handt||zaagh. 
+Klamp||spykers||boor, tien duims Boor. 
+Dissel. 
+Byl. 
diff --git a/tex/context/sample/reich.tex b/tex/context/sample/reich.tex
new file mode 100644
index 000000000..3be5ae42e
--- /dev/null
+++ b/tex/context/sample/reich.tex
@@ -0,0 +1,11 @@
+\citaat {Heavy smoke} 
+\citaat {Stand by, stand by} 
+\citaat {It's full a' smoke} 
+\citaat {Full a' smoke}
+\citaat {Urgent}
+\citaat {Guns, knives or weapons on ya?}
+\citaat {Wha' were ya doin'?}
+\citaat {Be careful}
+\citaat {Where you go}
+\citaat {Careful} 
+\citaat {Stand by}
diff --git a/tex/context/sample/tufte.tex b/tex/context/sample/tufte.tex
new file mode 100644
index 000000000..72f39da35
--- /dev/null
+++ b/tex/context/sample/tufte.tex
@@ -0,0 +1,13 @@
+We thrive in information||thick worlds because of our 
+marvelous and everyday capacity to select, edit, 
+single out, structure, highlight, group, pair, merge, 
+harmonize, synthesize, focus, organize, condense, 
+reduce, boil down, choose, categorize, catalog, classify, 
+list, abstract, scan, look into, idealize, isolate, 
+discriminate, distinguish, screen, pigeonhole, pick over, 
+sort, integrate, blend, inspect, filter, lump, skip, 
+smooth, chunk, average, approximate, cluster, aggregate, 
+outline, summarize, itemize, review, dip into, 
+flip through, browse, glance into, leaf through, skim, 
+refine, enumerate, glean, synopsize, winnow the wheat 
+from the chaff and separate the sheep from the goats. 
diff --git a/tex/context/sample/zapf.tex b/tex/context/sample/zapf.tex
new file mode 100644
index 000000000..b95a47190
--- /dev/null
+++ b/tex/context/sample/zapf.tex
@@ -0,0 +1,11 @@
+Coming back to the use of typefaces in electronic
+publishing: many of the new typographers receive their
+knowledge and information about the rules of typography
+from books, from computer magazines or the instruction
+manuals which they get with the purchase of a PC or
+software. There is not so much basic instruction, as of
+now, as there was in the old days, showing the differences
+between good and bad typographic design. Many people are
+just fascinated by their PC's tricks, and think that a
+widely||praised program, called up on the screen, will make
+everything automatic from now on. 
diff --git a/tex/context/user/cont-sys.rme b/tex/context/user/cont-sys.rme
new file mode 100644
index 000000000..cbeee6a1e
--- /dev/null
+++ b/tex/context/user/cont-sys.rme
@@ -0,0 +1,92 @@
+%D \module
+%D   [       file=cont-sys,
+%D        version=1995.10.10,
+%D          title=\CONTEXT\ Miscellaneous Macros,
+%D       subtitle=System Specific Setups,
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
+%C details. 
+
+\unprotect
+
+% Here you can take care of overloading some (style) 
+% defaults. What goes here, depends on your local system. 
+%
+% Set default file name mapping:
+%
+% \usetypescript [ber] 
+%
+% Overload Lucida by Adobe-15:
+%
+% \definetypescriptsynonym [lbr] [pos] 
+%
+% Compensate for missing files:
+%
+% \definefontsynonym [Courier-Bold]        [Courier]
+% \definefontsynonym [Courier-BoldOblique] [Courier]
+%
+% \definefontsynonym [gbhei]   [gbsong]
+% \definefontsynonym [gbheisl] [gbsong]
+% \definefontsynonym [gbheisl] [gbsong]
+%
+% Setting up a global figure path (beware, \c!gebied may change): 
+%
+% \setupexternalfigures
+%   [\c!gebied={e:/fig/eps,t:/pragma/metapost/symbols}]
+%
+% Loading a specific special driver: 
+%
+% \setupoutput 
+%   [dviwindo]
+%
+% Enabling \CONTEXT\ navigation symbols as well as \euro's. 
+
+\usesymbols
+  [nav,eur] 
+
+\setupsymbolset
+  [navigation 1]
+
+\setupinteraction
+  [\c!symboolset=navigation 1]
+
+% Changing language defaults: 
+% 
+% \setuplanguage
+%   [nl]
+%   [\c!leftquote=\upperleftsinglesixquote,
+%    \c!leftquotation=\upperleftdoublesixquote]
+%
+% So far for the settings. 
+
+% Loading local preferences: 
+%
+% \input prag-gen % company styles 
+% \input prag-log % more company styles 
+%
+% Enabling run time \METAPOST\ (also enable \write18 in texmf.cnf):
+
+   \runMPgraphicstrue 
+\runMPTEXgraphicstrue
+  \recycleMPslotstrue 
+\useMETAFUNformattrue
+
+% Enabling nested pretty printing:
+
+       \newprettytrue 
+
+% Protect filenames: 
+
+  \protectbufferstrue
+
+% not really needed
+
+% \runutilityfiletrue 
+
+% So far. 
+
+\protect \endinput
-- 
cgit v1.2.3