summaryrefslogtreecommitdiff
path: root/tex
diff options
context:
space:
mode:
Diffstat (limited to 'tex')
-rw-r--r--tex/context/base/cont-new.tex35
-rw-r--r--tex/context/base/context.tex2
-rw-r--r--tex/context/base/core-lst.tex5
-rw-r--r--tex/context/base/core-new.tex15
-rw-r--r--tex/context/base/core-ntb.tex3
-rw-r--r--tex/context/base/font-arb.tex317
-rw-r--r--tex/context/base/font-heb.tex66
-rw-r--r--tex/context/base/m-arabtex.tex457
-rw-r--r--tex/context/base/page-flt.tex4
-rw-r--r--tex/context/base/page-set.tex5
-rw-r--r--tex/context/base/spec-dpm.tex2
-rw-r--r--tex/context/base/spec-dpx.tex2
-rw-r--r--tex/context/base/spec-dvi.tex2
-rw-r--r--tex/context/base/spec-fdf.tex4
-rw-r--r--tex/context/base/spec-ini.tex12
-rw-r--r--tex/context/base/spec-tpd.tex2
-rw-r--r--tex/context/base/spec-xtx.tex11
-rw-r--r--tex/context/base/supp-fun.tex3
-rw-r--r--tex/context/base/xtag-ini.tex38
-rw-r--r--tex/context/base/xtag-utf.tex2
-rw-r--r--tex/context/interface/keys-cz.xml2
-rw-r--r--tex/context/interface/keys-de.xml2
-rw-r--r--tex/context/interface/keys-en.xml2
-rw-r--r--tex/context/interface/keys-it.xml2
-rw-r--r--tex/context/interface/keys-nl.xml2
-rw-r--r--tex/context/interface/keys-ro.xml2
26 files changed, 565 insertions, 434 deletions
diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex
index a020fa9e4..9a8665eb9 100644
--- a/tex/context/base/cont-new.tex
+++ b/tex/context/base/cont-new.tex
@@ -24,6 +24,41 @@
\ifx\normalcompound\undefined \let\normalcompound=| \fi
+% to do:
+%
+% \def\defineshapesynonym
+% {\dodoubleargument\dodefineshapesynonym}
+%
+% \def\dodefineshapesynonym[#1][#2]%
+% {\setvalue{shsy:#1}{#2}}
+%
+% \def\shapesynonym#1%
+% {\ifcsname shsy:#1\endcsname
+% \expandafter\shapesynonym\csname shsy:#1\endcsname\else#1%
+% \fi}
+%
+% \beginTEX
+%
+% \def\shapesynonym#1%
+% {\expandafter\ifx\csname shsy:#1\endcsname\relax
+% #1\else\expandafter\shapesynonym\csname shsy:#1\endcsname
+% \fi}
+%
+% \endTEX
+%
+%\defineshapesynonym[eacute] [e]
+%\defineshapesynonym[egrave] [e]
+%\defineshapesynonym[eumlaut [e]
+%\defineshapesynonym[eogonek][e]
+%
+% more reduction
+%
+%\defineshapesynonym[e][o]
+%\defineshapesynonym[w][v]
+%\defineshapesynonym[m][n]
+%
+% \shapesynonym{eacute}
+
\def\OTRSETnobalance
{\iflastcolumnfootnotes % testen ! optie
% inhibit flush of floats !
diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex
index bce747676..e60b14383 100644
--- a/tex/context/base/context.tex
+++ b/tex/context/base/context.tex
@@ -31,7 +31,7 @@
%D 2004.8.30 the low level interface is english. Watch out and adapt
%D your styles an modules.
-\def\contextversion{2005.02.23}
+\def\contextversion{2005.03.01}
%D Welcome to the main module. When this module is ran through
%D \type{initex} or \type {tex -i} or \type {whatevertex} using
diff --git a/tex/context/base/core-lst.tex b/tex/context/base/core-lst.tex
index a9472295c..aa1dbea1a 100644
--- a/tex/context/base/core-lst.tex
+++ b/tex/context/base/core-lst.tex
@@ -556,9 +556,8 @@
{\hbox{##2}}}%
\doif{\listparameter\c!interaction}\v!text % not supported ! ! ! ! ! ! text == all
{\setlistparameter\currentlist\c!interaction\v!all}%
-% \makelistelement\v!all
-% {\hbox to \hsize
- \dontleavehmode % new, else no margin
+ % \dontleavehmode % new, else no margin, but wrong, better (else \indent as well):
+ \noindent
\makelistelement\v!all
{\setlocalhsize \hsize\localhsize \hbox to \hsize
{\forgetall
diff --git a/tex/context/base/core-new.tex b/tex/context/base/core-new.tex
index 339cfde40..7227bd789 100644
--- a/tex/context/base/core-new.tex
+++ b/tex/context/base/core-new.tex
@@ -520,6 +520,21 @@
\def\env {\getvariable \s!environment}
\def\envvar {\getvariabledefault\s!environment}
+%D \macros
+%D {jobsuffix}
+%D
+%D By default, \TEX\ produces \DVI\ files which can be
+%D converted to other filetypes. Sometimes it is handy to
+%D know what the target file will be. In other driver
+%D modules we wil set \type {\jobsuffix} to \type {pdf}.
+
+\def\jobsuffix{dvi}
+
+\def\setjobsuffix#1%
+ {\resetsystemmode\jobsuffix
+ \edef\jobsuffix{#1}%
+ \setsystemmode\jobsuffix}
+
\bgroup
\gdef\cleanedupcolon{:} \catcode`:=\@@active
diff --git a/tex/context/base/core-ntb.tex b/tex/context/base/core-ntb.tex
index ce3244ed0..0e1d90e04 100644
--- a/tex/context/base/core-ntb.tex
+++ b/tex/context/base/core-ntb.tex
@@ -102,9 +102,6 @@
\def\settblhei#1#2{\setxvalue{\@@tblprefix#1:h}{#2}} % global !
\def\settblaut#1#2{\setxvalue{\@@tblprefix#1:a}{#2}} % global !
-%\def\gettblwid#1{\ifundefined{\@@tblprefix#1:w}\!!zeropoint\else\getvalue{\@@tblprefix#1:w}\fi}
-%\def\gettblhei#1{\ifundefined{\@@tblprefix#1:h}\!!zeropoint\else\getvalue{\@@tblprefix#1:h}\fi}
-
\def\gettblwid#1{\executeifdefined{\@@tblprefix#1:w}\zeropoint}
\def\gettblhei#1{\executeifdefined{\@@tblprefix#1:h}\zeropoint}
\def\gettblaut#1{\csname\@@tblprefix#1:a\endcsname}
diff --git a/tex/context/base/font-arb.tex b/tex/context/base/font-arb.tex
index 60afc43b5..3ec0395f3 100644
--- a/tex/context/base/font-arb.tex
+++ b/tex/context/base/font-arb.tex
@@ -1,318 +1,5 @@
-%D \module
-%D [ file=font-arb,
-%D version=1999.11.06,
-%D title=\CONTEXT\ Font Macros,
-%D subtitle=Arabic,
-%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.
+\unprotected \writestatus\m!systems{load ARABTEX as a module instead}
-% 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.
-%
-% keywords needed: vocalize transscribe
-%
-% \startarabic[option=vocalize] % or vocalize=yes
-% ......
-% \stoparabic
-
-
-\writestatus{loading}{Context Font Macros / ArabTeX support}
-
-%D At the \NTG\ 10\high{th} anniversary meeting Klaus Lagally
-%D introduced the audience to arabic typesetting, and after
-%D that I knew that some day I really had to look into his
-%D generic package. And then, sort of simultaniously Maarten
-%D Wisse and Imran Ahsan Nyazee asked me if \CONTEXT\ could
-%D support \ARABTEX, a package that provides right to left
-%D typesetting of (several variants of) arab and hebrew.
-%D Having implemented support for chinese a few weeks before,
-%D I could not resist to build in support for arab and hebrew
-%D too. Writing support for languages that don't give me any
-%D cue on how to pronounce their script, is kind of special.
-
-%D This is a beta version, since I still have to take care of some
-%D macros that conflict with existing stuff.
-
-\unprotect
-
-\definesystemvariable{ARABTEX}
-
-%D A few (maybe too) simple hooks into the font mechanism. The
-%D hook into the language module is not yet done.
-
-\unexpanded\def\setarabicfont#1% rscale
- {\scratchdimen=1.2\bodyfontsize
- \font\arbfont=\truefontname{Arabic#1} at \currentfontscale\scratchdimen
- \setx@skels
- \newfonttrue
- \arbfont}
-
-%D Just to be compatible with Arab\TEX\ we define:
-
-\unexpanded\def\nash {\setarabicfont\s!Regular}
-\unexpanded\def\nashbf {\setarabicfont\s!Bold }
-\unexpanded\def\pnash {\setarabicfont\s!Regular}
-\unexpanded\def\pnashbf{\setarabicfont\s!Bold }
-\unexpanded\def\xnash {\setarabicfont\s!Regular}
-\unexpanded\def\xnashbf{\setarabicfont\s!Bold }
-
-%D The display arabic environment (will be an installable
-%D object) uses a few conditionals. Let's do it the
-%D \CONTEXT\ way and define an anvironment that we later can
-%D adapt.
-
-\newif\if@ignore
-\newif\if@endpe
-
-\def\setupARABTEXalternative[#1]%
- {\dodoubleempty\getparameters[\??ARABTEX#1]}
-
-\def\defineARABTEXalternative
- {\dodoubleempty\dodefineARABTEXalternative}
-
-\def\dodefineARABTEXalternative[#1][#2]%
- {\iffirstargument % \startarab is defined but used already
- \getparameters
- [\??ARABTEX#1]
- [\c!before=,\c!after=,\c!inner=\setarab,
- \c!style=\setarabicfont{Arabic\fontstylesuffix}, % evt ArabicRegular
- #2]%
- \expandafter\all@wcmd\csname\e!stop#1\endcsname
- \setvalue{\e!start#1}%
- {\dodoubleempty\dostartARABTEXalternative[#1]}%
- \unexpanded\setvalue{#1}##1%
- {{\initializeARABTEXinternals{#1}\a@RL{##1}}}%
- \unexpanded\def\RL{\getvalue{#1}}%
- \unexpanded\def\LR{\a@LR}%
- \let\R=\RL
- \let\L=\LR
- \else
- \defineARABTEXalternative[arabic]%
- \fi}
-
-\def\initializeARABTEXinternals#1%
- {\getvalue{\??ARABTEX#1\c!inner}%
- \let \\=\ARABTEXbreakA
- \let \|=\ARABTEXbreakB
- \let \cap=\ARABTEXcap
- \let \sh@ft=\ARABTEXsh@ft
- \let \b=\ARABTEXb
- \let \d=\ARABTEXd
- \let |=\ARABTEXbar
- \let \,=\ARABTEXcomma
- \let\protect=\ARABTEXprotect
- \let\normaltx \tx \def\tx {\normaltx \setarabicfont\fontstylesuffix}%
- \let\normaltxx\txx\def\txx{\normaltxx\setarabicfont\fontstylesuffix}}
-
-\def\dostartARABTEXalternative[#1][#2]%
- {\begingroup
- \getparameters[\??ARABTEX#1][#2]%
- \ifnum1<0\getvalue{\??ARABTEX#1\c!n}\relax
- \startcolumns
- \else
- \getvalue{\??ARABTEX#1\c!before}%
- \fi
- \initializeARABTEXinternals{#1}%
- \initializeARABTEXend{#1}%
- \arabtext
- \initializeARABTEXalternative{#1}}
-
-\def\initializeARABTEXalternative#1%
- {\getvalue{\??ARABTEX#1\c!style}}
-
-\def\initializeARABTEXend#1% \CONTEXT\ does use \end quite differently
- {\long\def\end##1%
- {\endarabtext
- \ifnum1<0\getvalue{\??ARABTEX#1\c!n}\relax
- \stopcolumns
- \else
- \getvalue{\??ARABTEX#1\c!after}%
- \fi
- \endgroup}%
- \let\a@l@end\end
- \letvalue{\e!stop#1}=\end
- \long\def\end##1%
- {\endarabtext
- \endgroup
- \if@ignore\global\@ignorefalse\expandafter\ignorespaces\fi}}
-
-%D Arabic verbatim.
-
-\def\typearab{\a@@verb}
-
-%D Some \LATEX\ macros.
-
-\def \makeatletter{\unprotect}
-\def \makeatother {\protect}
-\def \typeout {\writestatus{arabtex}}
-
-%D We have to save some macros.
-
-\let\ARABTEXversion=\empty
-
-\def\startloadingARABTEX% ugly hacks
- {\catcode`!=12
- \catcode`?=12
- \pushmacro\output \let \output \scratchtoks
- \pushmacro\LaTeX \let \LaTeX \undefined
- \pushmacro\CJK \let \CJK \undefined
- \pushmacro\year \let \year \normalyear
- \pushmacro\month \let \month \normalmonth
- \pushmacro\day \let \day \normalday
- \pushmacro\input \def \input ##1 {\normalinput ##1 }
- \pushmacro\linewidth
- \pushmacro\datum \def\datum {\toks0}
- \pushmacro\version \def\version {\toks2}
- \pushmacro\theversion \let\theversion \ARABTEXversion
- \pushmacro\emphasize
- \pushmacro\cap}
-
-\def\stoploadingARABTEX
- {\catcode`!=11
- \catcode`?=11
- \popmacro\cap
- \popmacro\emphasize
- \popmacro\theversion
- \popmacro\version
- \popmacro\datum
- \popmacro\linewidth
- \popmacro\input
- \popmacro\day
- \popmacro\month
- \popmacro\year
- \popmacro\CJK
- \popmacro\LaTeX
- \popmacro\output}
-
-%D We save some macros:
-
-\startloadingARABTEX
-
-%D When loading \ARABTEX\ we have to set back the~! and~?.
-
-\input arabtex.sty
-
-%D Since \ARABTEX\ has its own \type {\cap}, we save the
-%D new meaning. We also redefine some \PLAIN\ macros, which
-%D happen to have a different meaning in \LATEX.
-
-\let\ARABTEXversion\theversion
-\let\ARABTEXcap \cap
-
-\def\ARABTEXsh@ft#1%
- {\dimen@.00#1ex
- \multiply\dimen@\fontdimen1\font
- \kern-.0156\dimen@}
-
-\def\ARABTEXd#1%
- {{\o@lign{\relax#1\crcr\hidewidth\sh@ft{10}%
- .\hidewidth}}}
-
-\def\ARABTEXb#1%
- {{\o@lign{\relax#1\crcr\hidewidth\sh@ft{29}%
- \vbox to.2ex{\hbox{\char22}\vss}\hidewidth}}}
-
-%D A few internals:
-
-\def \ARABTEXcomma {\relax\ifmmode\mskip\thinmuskip\else\thinspace\fi}
-\def \ARABTEXbreakA {\hfill\break}
-\def \ARABTEXbreakB {\break}
-\edef\ARABTEXbar {\string|}
-\let \ARABTEXprotect \relax
-
-%D Now we can pop the saved macros.
-
-\stoploadingARABTEX
-
-%D Ah, we have to get rid of some \type {\protect} stuff but
-%D to permit testing we add it in the \CONTEXT\ way.
-
-\bgroup
-\catcode`\<=\@other
-\unexpanded\gdef\a@ins%
- {\ifmmode
- \expandafter<%
- \else
- \leavevmode \bgroup
- \arab@codes \set@arabfont \@waslafalse \@wasfalse
- \expandafter\arab@insert
- \fi}
-\unexpanded\gdef\<{\a@ins}
-\catcode`\<=\active
-\global\let<=\a@ins
-\egroup
-
-%D We also need to register a few macros:
-
-\all@w@ne\initializeARABTEXalternative % one argument, internal command
-\all@wcmd\tx % no argument, small font
-\all@wcmd\txx % no argument, smaller font
-
-%D The main definitions are:
-
-\definefontsynonym [ArabicRegular] [xnsh14]
-\definefontsynonym [ArabicBold] [xnsh14bf]
-
-\defineARABTEXalternative
- [arabic]
- [\c!inner=\setarab,
- \c!style=\setarabicfont\fontstylesuffix]
-
-\defineARABTEXalternative
- [farsi]
- [\c!inner=\setfarsi,
- \c!style=\setarabicfont\fontstylesuffix]
-
-\defineARABTEXalternative
- [urdu]
- [\c!inner=\seturdu,
- \c!style=\setarabicfont\fontstylesuffix]
-
-\defineARABTEXalternative
- [maghribi]
- [\c!inner=\setmaghribi,
- \c!style=\setarabicfont\fontstylesuffix]
-
-%D Apart from such definitions, one can adapt the settings
-%D using \type {\setupARABTEXalternative}.
-%D
-%D A few years ago at the Holland Festivities, I attended {\em
-%D The Cave}, one of the most impressive combinations of music
-%D and video I know. This composition of Steve Reich (music)
-%D and .. (video) concentrates on the common grounds of arabs
-%D and jews: their ancestor Abram. Listening to the \CDROM's
-%D of {\em The Cave}, provided me the right ambiance for
-%D filling in the details of this module. In {\em The Cave},
-%D interviews, music, and |<|believe it or not|>| rhythmic
-%D typography are the cornerstones. Remembering those big
-%D screens, it strikes me that like music, \TEX\ too is a
-%D perfect instrument to cross cultural and linguistic
-%D borders. So, let's:
-
-\protect
-
-%D those macros,
+\usemodule[arabtex]
\endinput
-
-%D and use them!
-
-% \defineconversion [abjad] [\abj@d]
-%
-% voetnoten verbatim lijsten indexen tabellen uitlijnen
-%
-% \v!hoofdstuk=al-fa.slu
-% \v!inhoud=al-mu.htawayAtu
-% \v!figuren=qA'imaTu al-.suwaru
-% \v!tabellen=qA'imaTu al-^gadAwilu
-% \v!grafieken=qA'imaTu al-rusUmu
-% \v!index=al-fihrisu
-% \v!bijlage=al-mul.haqu
diff --git a/tex/context/base/font-heb.tex b/tex/context/base/font-heb.tex
index 1a77d23ea..3ec0395f3 100644
--- a/tex/context/base/font-heb.tex
+++ b/tex/context/base/font-heb.tex
@@ -1,65 +1,5 @@
-%D \module
-%D [ file=font-heb,
-%D version=1999.11.06,
-%D title=\CONTEXT\ Font Macros,
-%D subtitle=Hebrew,
-%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.
+\unprotected \writestatus\m!systems{load ARABTEX as a module instead}
-\input font-arb.tex
+\usemodule[arabtex]
-\writestatus{loading}{Context Font Macros / Hebrew (ArabTeX) support}
-
-% NOT YET ADAPTED TO THE NEW FONT MACROS
-
-%D This module is build on top of \ARABTEX\ and arabic
-%D support. I dedicate this module to my father Hein Hagen,
-%D who did not live long enough to become a user. His huge
-%D library contains math, science, history, english literature,
-%D philisophy and theology books, but his most favoured ones
-%D were those traditional hebrew printings. I must admit
-%D that some of those make clear that traditonal typesetting
-%D can still beat \TEX. Those nested multicolumn documents with
-%D complicated can give even the experienced macro writer a
-%D rather persistent headache.
-
-\unprotect
-
-%D A few fonts.
-
-\unexpanded\def\sethebrewfont#1% strange font dimensions / scale
- {\scratchdimen=10\bodyfontsize
- \font\hebfont=\truefontname{Hebrew#1} at \currentfontscale\scratchdimen
- \fontdimen5\hebfont=.8\fontdimen2\hebfont
- \fontdimen6\hebfont=3\fontdimen5\hebfont
- \hebfont}
-
-\let \setheb \sethebrew
-
-\unexpanded\def\pheb {\sethebrewfont\s!Regular}
-\unexpanded\def\phebbf{\sethebrewfont\s!Bold}
-
-\startloadingARABTEX
-
-\input hebtex.sty
-\input apatch.sty
-\input hepatch.sty
-
-\stoploadingARABTEX
-
-%D The main definition is:
-
-\definefontsynonym [HebrewRegular] [hclassic]
-\definefontsynonym [HebrewBold] [hcaption]
-
-\defineARABTEXalternative
- [hebrew]
- [\c!inner=\sethebrew,
- \c!style=\sethebrewfont{\fontstylesuffix}]
-
-\protect \endinput
+\endinput
diff --git a/tex/context/base/m-arabtex.tex b/tex/context/base/m-arabtex.tex
new file mode 100644
index 000000000..36cdc197c
--- /dev/null
+++ b/tex/context/base/m-arabtex.tex
@@ -0,0 +1,457 @@
+%D \module
+%D [ file=m-arabtex, % was font-arb,
+%D version=2003.02.22, % 1999.11.06,
+%D title=\CONTEXT\ Modules,
+%D subtitle=Arabic,
+%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.
+
+% 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.
+%
+% keywords needed: vocalize transscribe
+%
+% \startarabic[option=vocalize] % or vocalize=yes
+% ......
+% \stoparabic
+
+\writestatus{loading}{Context Font Macros / ArabTeX support}
+
+%D At the \NTG\ 10\high{th} anniversary meeting Klaus Lagally
+%D introduced the audience to arabic typesetting, and after
+%D that I knew that some day I really had to look into his
+%D generic package. And then, sort of simultaniously Maarten
+%D Wisse and Imran Ahsan Nyazee asked me if \CONTEXT\ could
+%D support \ARABTEX, a package that provides right to left
+%D typesetting of (several variants of) arab and hebrew.
+%D Having implemented support for chinese a few weeks before,
+%D I could not resist to build in support for arab and hebrew
+%D too. Writing support for languages that don't give me any
+%D cue on how to pronounce their script, is kind of special.
+
+%D This is a beta version, since I still have to take care of some
+%D macros that conflict with existing stuff.
+
+\unprotect
+
+\definesystemvariable{ARABTEX}
+
+\def\setupARABTEX
+ {\getparameters[\??ARABTEX]}
+
+\setupARABTEX
+ [\s!rscale=1.2,
+ \c!before=,
+ \c!after=,
+ \c!inner=\setarab,
+ \c!style=\setarabicfont\fontstylesuffix]
+
+%D A few (maybe too) simple hooks into the font mechanism. The
+%D hook into the language module is not yet done.
+
+% \unexpanded\def\setarabicfont#1% rscale
+% {\scratchdimen\@@ARABTEXrscale\bodyfontsize
+% \font\arbfont\truefontname{Arabic#1} at \currentfontscale\scratchdimen
+% \setx@skels
+% \newfonttrue
+% \arbfont}
+%
+% more modern
+%
+% \unexpanded\def\setarabicfont#1% rscale
+% {\definefont[arbfont][Arabic#1 sa \@@ARABTEXrscale]%
+% \setx@skels
+% \newfonttrue
+% \arbfont}
+%
+% more efficient
+
+\unexpanded\def\setarabicfont#1%
+ {\setx@skels
+ \newfonttrue
+ \definedfont[Arabic#1 sa \ARABTEXparameter\s!rscale]}
+
+%D Just to be compatible with Arab\TEX\ we define:
+
+\unexpanded\def\nash {\setarabicfont\s!Regular}
+\unexpanded\def\nashbf {\setarabicfont\s!Bold }
+\unexpanded\def\pnash {\setarabicfont\s!Regular}
+\unexpanded\def\pnashbf{\setarabicfont\s!Bold }
+\unexpanded\def\xnash {\setarabicfont\s!Regular}
+\unexpanded\def\xnashbf{\setarabicfont\s!Bold }
+
+%D The display arabic environment (will be an installable
+%D object) uses a few conditionals. Let's do it the
+%D \CONTEXT\ way and define an anvironment that we later can
+%D adapt.
+
+\newif\if@ignore
+\newif\if@endpe
+
+\def\setupARABTEXalternative[#1]%
+ {\dodoubleempty\getparameters[\??ARABTEX#1]}
+
+\def\defineARABTEXalternative
+ {\dodoubleempty\dodefineARABTEXalternative}
+
+\def\dodefineARABTEXalternative[#1][#2]%
+ {\iffirstargument % \startarab is defined but used already
+ \getparameters
+ [\??ARABTEX#1]
+ [\c!before=\@@ARABTEXbefore,
+ \c!after=\@@ARABTEXafter,
+ \c!inner=\@@ARABTEXinner,
+ \c!style=\@@ARABTEXstyle,
+ \s!rscale=\@@ARABTEXrscale,
+ #2]%
+ \setvalue {\e!start#1}{\displayARABTEXalternative{#1}}%
+ \unexpanded\setvalue{#1}{\inlineARABTEXalternative {#1}}%
+ \unexpanded\def\RL{\getvalue{#1}}%
+ \unexpanded\def\LR{\a@LR}%
+ \let\R=\RL
+ \let\L=\LR
+ \expandafter\all@wcmd\csname\e!stop#1\endcsname
+ \else
+ \defineARABTEXalternative[arabic]%
+ \fi}
+
+\def\initializeARABTEXinternals
+ {\ARABTEXparameter\c!inner
+ \the\everyARABTEXpreset}
+
+\newtoks \everyARABTEXpreset
+
+\let\currentARABTEXalternative\empty
+
+\def\ARABTEXparameter#1%
+ {\csname\??ARABTEX\currentARABTEXalternative#1\endcsname}
+
+\def\inlineARABTEXalternative#1#2%
+ {\bgroup
+ \edef\currentARABTEXalternative{#1}%
+ \initializeARABTEXinternals
+ \a@RL{#2}%
+ \egroup}
+
+\def\displayARABTEXalternative#1%
+ {\dodoubleempty\dostartARABTEXalternative[#1]}
+
+\def\dostartARABTEXalternative[#1][#2]%
+ {\begingroup
+ \edef\currentARABTEXalternative{#1}%
+ \getparameters[\??ARABTEX\currentARABTEXalternative][#2]%
+ \ifnum1<0\ARABTEXparameter\c!n\relax
+ \startcolumns
+ \else
+ \ARABTEXparameter\c!before
+ \fi
+ \initializeARABTEXinternals
+ \initializeARABTEXend
+ \arabtext
+ \initializeARABTEXalternative}
+
+\def\initializeARABTEXalternative
+ {\ARABTEXparameter\c!style}
+
+\def\initializeARABTEXend% \CONTEXT\ does use \end quite differently
+ {\long\def\end##1%
+ {\endarabtext
+ \ifnum1<0\ARABTEXparameter\c!n\relax
+ \stopcolumns
+ \else
+ \ARABTEXparameter\c!after
+ \fi
+ \endgroup}%
+ \let\a@l@end\end
+ \letvalue{\e!stop\currentARABTEXalternative}=\end
+ \long\def\end##1%
+ {\endarabtext
+ \endgroup
+ \if@ignore\global\@ignorefalse\expandafter\ignorespaces\fi}}
+
+%D Arabic verbatim.
+
+\def\typearab{\a@@verb}
+
+%D Some \LATEX\ macros.
+
+\def \makeatletter{\unprotect}
+\def \makeatother {\protect}
+\def \typeout {\writestatus{arabtex}}
+
+%D We have to save some macros.
+
+\let\ARABTEXversion=\empty
+
+\def\startloadingARABTEX% ugly hacks
+ {\catcode`!=12
+ \catcode`?=12
+ \pushmacro\output \let \output \scratchtoks
+ \pushmacro\LaTeX \let \LaTeX \undefined
+ \pushmacro\CJK \let \CJK \undefined
+% \pushmacro\peek@token \let \peek@token \undefined
+% \pushmacro\edmacloaded \let \edmacloaded \undefined
+ \pushmacro\year \let \year \normalyear
+ \pushmacro\month \let \month \normalmonth
+ \pushmacro\day \let \day \normalday
+ \pushmacro\input \def \input ##1 {\normalinput ##1 }
+ \pushmacro\linewidth
+ \pushmacro\datum \def\datum {\toks0}
+ \pushmacro\version \def\version {\toks2}
+ \pushmacro\theversion \let\theversion \ARABTEXversion
+ \pushmacro\emphasize
+ \pushmacro\cap}
+
+\def\stoploadingARABTEX
+ {\catcode`!=11
+ \catcode`?=11
+ \popmacro\cap
+ \popmacro\emphasize
+ \popmacro\theversion
+ \popmacro\version
+ \popmacro\datum
+ \popmacro\linewidth
+ \popmacro\input
+ \popmacro\day
+ \popmacro\month
+ \popmacro\year
+% \popmacro\edmacloaded
+% \popmacro\peek@token
+ \popmacro\CJK
+ \popmacro\LaTeX
+ \popmacro\output}
+
+%D We save some macros:
+
+\startloadingARABTEX
+
+%D When loading \ARABTEX\ we have to set back the~! and~?.
+
+\input arabtex.sty
+
+%D Since \ARABTEX\ has its own \type {\cap}, we save the
+%D new meaning. We also redefine some \PLAIN\ macros, which
+%D happen to have a different meaning in \LATEX.
+
+\let\ARABTEXversion\theversion
+\let\ARABTEXcap \cap
+
+\appendtoks
+ \let\cap\ARABTEXcap
+\to \everyARABTEXpreset
+
+\def\ARABTEXsh@ft#1%
+ {\dimen@.00#1ex
+ \multiply\dimen@\fontdimen1\font
+ \kern-.0156\dimen@}
+
+\appendtoks
+ \let\sh@ft\ARABTEXsh@ft
+\to \everyARABTEXpreset
+
+\def\ARABTEXd#1%
+ {{\o@lign{\relax#1\crcr\hidewidth\sh@ft{10}%
+ .\hidewidth}}}
+
+\def\ARABTEXb#1%
+ {{\o@lign{\relax#1\crcr\hidewidth\sh@ft{29}%
+ \vbox to.2ex{\hbox{\char22}\vss}\hidewidth}}}
+
+\appendtoks
+ \let\b\ARABTEXb
+ \let\d\ARABTEXd
+\to \everyARABTEXpreset
+
+\def \ARABTEXbreakA {\hfill\break}
+\def \ARABTEXbreakB {\break}
+\edef\ARABTEXbar {\string|}
+\def \ARABTEXcomma {\relax\ifmmode\mskip\thinmuskip\else\thinspace\fi}
+
+\appendtoks
+ \let\\=\ARABTEXbreakA
+ \let\|=\ARABTEXbreakB
+ \let |=\ARABTEXbar
+ \let\,=\ARABTEXcomma
+\to \everyARABTEXpreset
+
+\let\ARABTEXprotect\relax
+
+\appendtoks
+ \let\protect\ARABTEXprotect
+\to \everyARABTEXpreset
+
+%D Now we can pop the saved macros.
+
+\stoploadingARABTEX
+
+%D Ah, we have to get rid of some \type {\protect} stuff but
+%D to permit testing we add it in the \CONTEXT\ way.
+
+% \bgroup
+% \catcode`\<=\@other
+% \unexpanded\gdef\a@ins
+% {\ifmmode
+% \expandafter<%
+% \else
+% \dontleavehmode \bgroup
+% \arab@codes \set@arabfont \@waslafalse \@wasfalse
+% \expandafter\arab@insert
+% \fi}
+% \unexpanded\gdef\<{\a@ins}
+% \catcode`\<=\active
+% \global\let<=\a@ins
+% \egroup
+%
+% cleaner:
+
+\defineactivecharacter < {\a@ins} \unexpanded\gdef\<{\a@ins}%
+
+\def\normal@a@ins
+ {\dontleavehmode % context prefers this instead of \leavevmode
+ \bgroup
+ \arab@codes
+ \set@arabfont
+ \@waslafalse
+ \@wasfalse
+ \arab@insert}
+
+\unexpanded\gdef\a@ins
+ {\mathortext<\normal@a@ins}
+
+%D We also need to register a few macros:
+
+\all@wcmd\initializeARABTEXalternative % no argument, internal command
+\all@wcmd\tx % no argument, small font
+\all@wcmd\txx % no argument, smaller font
+
+%D We also hook it into the presetter.
+
+\appendtoks
+ \let\normaltx \tx \def\tx {\normaltx \setarabicfont\fontstylesuffix}%
+ \let\normaltxx\txx\def\txx{\normaltxx\setarabicfont\fontstylesuffix}%
+\to \everyARABTEXpreset
+
+%D The main definitions are:
+
+\definefontsynonym [ArabicRegular] [xnsh14]
+\definefontsynonym [ArabicBold] [xnsh14bf]
+
+\defineARABTEXalternative
+ [arabic]
+ [\c!inner=\setarab,
+ \c!style=\setarabicfont\fontstylesuffix]
+
+\defineARABTEXalternative
+ [farsi]
+ [\c!inner=\setfarsi,
+ \c!style=\setarabicfont\fontstylesuffix]
+
+\defineARABTEXalternative
+ [urdu]
+ [\c!inner=\seturdu,
+ \c!style=\setarabicfont\fontstylesuffix]
+
+\defineARABTEXalternative
+ [maghribi]
+ [\c!inner=\setmaghribi,
+ \c!style=\setarabicfont\fontstylesuffix]
+
+%D Apart from such definitions, one can adapt the settings
+%D using \type {\setupARABTEXalternative}.
+%D
+%D A few years ago at the Holland Festivities, I attended {\em
+%D The Cave}, one of the most impressive combinations of music
+%D and video I know. This composition of Steve Reich (music)
+%D and .. (video) concentrates on the common grounds of arabs
+%D and jews: their ancestor Abram. Listening to the \CDROM's
+%D of {\em The Cave}, provided me the right ambiance for
+%D filling in the details of this module. In {\em The Cave},
+%D interviews, music, and |<|believe it or not|>| rhythmic
+%D typography are the cornerstones. Remembering those big
+%D screens, it strikes me that like music, \TEX\ too is a
+%D perfect instrument to cross cultural and linguistic
+%D borders. So, let's load Hebrew support as well:
+
+% \unexpanded\def\sethebrewfont#1% strange font dimensions / scale
+% {\scratchdimen=10\bodyfontsize
+% \font\hebfont=\truefontname{Hebrew#1} at \currentfontscale\scratchdimen
+% \fontdimen5\hebfont=.8\fontdimen2\hebfont
+% \fontdimen6\hebfont=3\fontdimen5\hebfont
+% \hebfont}
+
+\unexpanded\def\sethebrewfont#1%
+ {\setx@skels
+ \newfonttrue
+ \definedfont[Hebrew#1 sa \ARABTEXparameter\s!rscale]}
+
+% \let \setheb \sethebrew
+
+\unexpanded\def\pheb {\sethebrewfont\s!Regular}
+\unexpanded\def\phebbf{\sethebrewfont\s!Bold}
+
+\startloadingARABTEX
+
+ \ReadFile{hebtex.sty}
+ \ReadFile{apatch.sty}
+ \ReadFile{hepatch.sty}
+
+\stoploadingARABTEX
+
+\definefontsynonym [HebrewRegular] [hclassic]
+\definefontsynonym [HebrewBold] [hcaption]
+
+\defineARABTEXalternative
+ [hebrew]
+ [\c!inner=\sethebrew,
+ \c!style=\sethebrewfont\fontstylesuffix]
+
+%D Now we're done:
+
+\protect \endinput
+
+% everyoutput : \charsubdefmax \arab@charsubdefmax
+
+% \defineconversion [abjad] [\abj@d]
+%
+% voetnoten verbatim lijsten indexen tabellen uitlijnen
+%
+% \v!hoofdstuk=al-fa.slu
+% \v!inhoud=al-mu.htawayAtu
+% \v!figuren=qA'imaTu al-.suwaru
+% \v!tabellen=qA'imaTu al-^gadAwilu
+% \v!grafieken=qA'imaTu al-rusUmu
+% \v!index=al-fihrisu
+% \v!bijlage=al-mul.haqu
+
+% \usemodule[arabtex]
+%
+% \usetypescript[postscript] \switchtotypeface[postscript]
+%
+% \setarab \novocalize
+%
+% \starttext
+%
+% \placecontent
+%
+% \section{\<mu.hammad>} % short arabic use \< .. >
+% \section{\<mu.hammad>} % short arabic use \< .. >
+%
+% \startarabic
+% mu.hammad 'i_d q"aAm zay"d" + i_d yaqUm zyd + A_d zyd q"aAm
+%
+% mu.hammad 'i_d q"aAm zay"d" + i_d yaqUm zyd + A_d zyd q"aAm
+% \stoparabic
+%
+% \section{\<al-maq.sad>}
+%
+% \startarabic
+% mu.hammad 'i_d q"aAm zay"d" + i_d yaqUm zyd + A_d zyd q"aAm
+% \stoparabic
+%
+% \stoptext
diff --git a/tex/context/base/page-flt.tex b/tex/context/base/page-flt.tex
index a02e755eb..35872eceb 100644
--- a/tex/context/base/page-flt.tex
+++ b/tex/context/base/page-flt.tex
@@ -1824,8 +1824,8 @@
\newevery\everytopofpage\relax
-\appendtoks\the\everytopofpage \to\everystarttext
-\appendtoks\global\everytopofpage{}\to\everystoptext
+\appendtoks \the\everytopofpage \to\everystarttext
+\appendtoks\global\everytopofpage\emptytoks\to\everystoptext
% \startpostponing [pagenumber] [+pageoffset]
%
diff --git a/tex/context/base/page-set.tex b/tex/context/base/page-set.tex
index 78c2dd6b2..3dfae1f67 100644
--- a/tex/context/base/page-set.tex
+++ b/tex/context/base/page-set.tex
@@ -842,7 +842,7 @@
\doOTRSETsetgridcells
{\copy\placeholderboxf}
\mofcolumns\columnfirstcell\plusone\noflines
- {\registeredtextarea1\columnfirstcell\scratchbox}% == \hbox
+ {\registeredtextarea1\columnfirstcell\scratchbox}% == \hbox / tricky htcorr == \columnfirstcell
\global\columnlastcell\columnfirstcell
\global\advance\columnlastcell \noflines
\global\lastcolumnlastcell\columnlastcell
@@ -1008,8 +1008,7 @@
\OTRSETcheckcolumnspace\mofcolumns\columnlastcell{#1}%
\fi
\ifenoughcolumncells
- \OTRSETsetgridcells\mofcolumns\columnlastcell\columnhcells\columnvcells
- {\copy#1}
+ \OTRSETsetgridcells\mofcolumns\columnlastcell\columnhcells\columnvcells{\copy#1}%
\OTRSETfillgapsbetweencells\mofcolumns\savedcolumnlastcell % -)
\OTRSETsetvsize
\else
diff --git a/tex/context/base/spec-dpm.tex b/tex/context/base/spec-dpm.tex
index f306c4a5c..65714d74c 100644
--- a/tex/context/base/spec-dpm.tex
+++ b/tex/context/base/spec-dpm.tex
@@ -26,7 +26,7 @@
%D Because no intermediate output format is used, we set the
%D jobsuffix to \PDF.
-\def\jobsuffix{pdf}
+\setjobsuffix{pdf}
%D Literal \PDF\ inclusion is implemented as:
diff --git a/tex/context/base/spec-dpx.tex b/tex/context/base/spec-dpx.tex
index 66884014f..d172489cc 100644
--- a/tex/context/base/spec-dpx.tex
+++ b/tex/context/base/spec-dpx.tex
@@ -35,7 +35,7 @@
%D Because no intermediate output format is used, we set the
%D jobsuffix to \PDF.
-\def\jobsuffix{pdf}
+\setjobsuffix{pdf}
%D DVIPDFMx supports the special command \type{pdf: literal ...}
%D since the version \type{dvipdfmx-20021028}.
diff --git a/tex/context/base/spec-dvi.tex b/tex/context/base/spec-dvi.tex
index daf860cbe..5da86743c 100644
--- a/tex/context/base/spec-dvi.tex
+++ b/tex/context/base/spec-dvi.tex
@@ -115,7 +115,7 @@
\definespecial\dosetpositionpapersize#1#2%
{\xdef\flushDVIpositionpapersize%
{\special{pos:papersize #1 #2}%
- \noexpand\installprogram{dvipos --outfile=\jobname.tuo}%
+ \noexpand\installprogram{dvipos \jobname}%
\global\noexpand\let\noexpand\flushDVIpositionpapersize\relax}}
\prependtoksonce \flushDVIpositionpapersize \to \everyshipout
diff --git a/tex/context/base/spec-fdf.tex b/tex/context/base/spec-fdf.tex
index 77660598c..f5bee9dbb 100644
--- a/tex/context/base/spec-fdf.tex
+++ b/tex/context/base/spec-fdf.tex
@@ -2931,6 +2931,10 @@
{\PDFcode{q \ifdim#1\points=\zeropoint\@@PDFzeroscale\else#1\fi\space 0 0
\ifdim#2\points=\zeropoint\@@PDFzeroscale\else#2\fi\space 0 0 cm}}
+% \def\doPDFstartscaling#1#2% the test is needed because acrobat is bugged!
+% {\PDFcode{q\ifdim#1\points=\zeropoint\else\ifdim#2\points=\zeropoint\else
+% \space#1\space 0 0 #2\space 0 0 cm\fi\fi}}
+
\def\doPDFstopscaling
{\PDFcode{Q}}
diff --git a/tex/context/base/spec-ini.tex b/tex/context/base/spec-ini.tex
index 958f1dbe7..c53fbbd5c 100644
--- a/tex/context/base/spec-ini.tex
+++ b/tex/context/base/spec-ini.tex
@@ -173,18 +173,8 @@
\newevery \everyresetspecials \relax
-%D \macros
-%D {jobsuffix}
-%D
-%D By default, \TEX\ produces \DVI\ files which can be
-%D converted to other filetypes. Sometimes it is handy to
-%D know what the target file will be. In other driver
-%D modules we wil set \type {\jobsuffix} to \type {pdf}.
-
-\def\jobsuffix{dvi}
-
\appendtoksonce
- \def\jobsuffix{dvi}%
+ \ifx\setjobsuffix\undefined\else\setjobsuffix{dvi}\fi
\to \everyresetspecials
%D A rather fundamental difference between special and direct
diff --git a/tex/context/base/spec-tpd.tex b/tex/context/base/spec-tpd.tex
index 479ba7e49..1cb264174 100644
--- a/tex/context/base/spec-tpd.tex
+++ b/tex/context/base/spec-tpd.tex
@@ -164,7 +164,7 @@
%D For some internal testing we need to know the output
%D suffix.
-\def\jobsuffix{pdf}
+\setjobsuffix{pdf}
%D We don't use specials here, which means that we must flush
%D settings before the page is shipped out.
diff --git a/tex/context/base/spec-xtx.tex b/tex/context/base/spec-xtx.tex
index 576560203..ea355abd7 100644
--- a/tex/context/base/spec-xtx.tex
+++ b/tex/context/base/spec-xtx.tex
@@ -8,7 +8,7 @@
%D output format, but by default, it's tranparently
%D converted to \PDF\ by \XETEX.
-\def\jobsuffix{pdf}
+\setjobsuffix{pdf}
%D Rotation looks fine.
@@ -58,6 +58,15 @@
%\installspecial [\dostarttransparency] [or] [2]
%\installspecial [\dostoptransparency] [or] [0]
+%D \macros
+%D {doloadmapfile,doloadmapline,doresetmapfilelist}
+%D
+%D \XETEX\ 0.91 allows map file additions, via a special.
+
+\definespecial\doresetmapfilelist{\special{x:fontmapfile original-empty.map}}
+\definespecial\doloadmapfile #1#2{\special{x:fontmapfile #1#2}}
+\definespecial\doloadmapline #1#2{\special{x:fontmapline #1#2}}
+
%D \XETEX\ supports \type{\doPDFdestination} and
%D \type{\doPDFbookmark} inherited straight from \DVIPDFMX.
diff --git a/tex/context/base/supp-fun.tex b/tex/context/base/supp-fun.tex
index 444e39fc7..8d46a49f2 100644
--- a/tex/context/base/supp-fun.tex
+++ b/tex/context/base/supp-fun.tex
@@ -118,8 +118,7 @@
\let\DroppedIndent\!!zeropoint \def\DroppedLines{0}
-\def\DroppedString%
- {ABCDEFGHIJKLMNOPQRSTUVWXYZ}
+\def\DroppedString{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
\let\globaldropcaps\global % will be an option, but on by default
diff --git a/tex/context/base/xtag-ini.tex b/tex/context/base/xtag-ini.tex
index edd79873c..06e236f46 100644
--- a/tex/context/base/xtag-ini.tex
+++ b/tex/context/base/xtag-ini.tex
@@ -228,7 +228,8 @@
%D a way around this, but for convenience \TEXEXEC\ will take
%D care of processing raw \XML\ files in a transparant way.
-\chardef\XMLtokensreduction\zerocount
+\chardef\XMLtokensreduction\zerocount % cmr as default
+\chardef\XMLtokensreduction\plustwo % lmr as default
% \def\alwaysreduceXMLtokens {\XMLtokensreduction\plusone}
% \def\permanentreduceXMLtokens{\XMLtokensreduction\plustwo}
@@ -271,19 +272,18 @@
* there; this is needed because reading from file goes wrong
* (eating up argument)
-.unexpanded.gdef.enableXML*
- B.catcode`.!=.@@other*
- .catcode`.?=.@@other*
- .catcode`.:=.@@other* active in french
- .catcode`.;=.@@other* active in french
- .catcode`.&=.@@active .let&=.doXMLentity*
- .catcode`.<=.@@active .unexpanded.def<B.doXMLelementE*
+.unexpanded.gdef.enableXML
+ B.catcode`.!=.@@other
+ .catcode`.?=.@@other
+ .catcode`.:=.@@other * active in french
+ .catcode`.;=.@@other * active in french
+ .catcode`.&=.@@active .let&=.doXMLentity
+ .catcode`.<=.@@active .unexpanded.def<B.doXMLelementE
.catcode`.>=.@@other
.catcode`."=.@@other
.catcode`./=.@@other
.catcode`.'=.@@other
.catcode`.~=.@@other
-* .catcode`.#=.@@active .def#B&hash;E*
.catcode`.#=.@@other
.ifcase.XMLtokensreduction
.entitleXMLescapetokens
@@ -296,7 +296,7 @@
.the.everyenableXML
E
-.gdef.activateXMLescapetokens*
+.gdef.activateXMLescapetokens
B.catcode`.$=.@@active
.catcode`.%=.@@active
.catcode`.\=.@@active
@@ -307,8 +307,8 @@
.catcode`.|=.@@active
E
-.gdef.entitleXMLescapetokens*
- B.activateXMLescapetokens*
+.gdef.entitleXMLescapetokens
+ B.activateXMLescapetokens
.def#B&tex-hash;E*
.def$B&tex-dollar;E*
.def%B&tex-percent;E*
@@ -320,8 +320,8 @@
.def|B&tex-bar;E*
E
-.gdef.reduceXMLescapetokens*
- B.activateXMLescapetokens*
+.gdef.reduceXMLescapetokens
+ B.activateXMLescapetokens
.def#B.string#E*
.def$B.string$E*
.def%B.string%E*
@@ -333,8 +333,8 @@
.def|B.string|E*
E
-.gdef.ignoreXMLescapetokens*
- B.catcode`.$=.@@other * or letter ?
+.gdef.ignoreXMLescapetokens
+ B.catcode`.$=.@@other
.catcode`.%=.@@other
.catcode`.\=.@@other
.catcode`.^=.@@other
@@ -347,14 +347,14 @@
* The following macro can be invokes when reading from
* an auxiliary file.
-.unexpanded.gdef.enableXMLelements*
+.unexpanded.gdef.enableXMLelements
B.catcode60=.@@active * .catcode`.<=.@@active
.catcode62=.@@other * .catcode`.>=.@@other
.unexpanded.def<B.doXMLelementE*
.processingXMLtrue
E
-.unexpanded.gdef.disableXMLelements*
+.unexpanded.gdef.disableXMLelements
B.catcode60=.@@active * .catcode`.<=.@@active
.catcode62=.@@other * .catcode`.>=.@@other
.let<.relax * new
@@ -1479,7 +1479,7 @@
% \fi\fi
% \dodoparseXMLarguments}
%
-% we squeeze out one more assignment
+% we can get rid of one more assignment
\long\def\doparseXMLarguments#1% space goes ok
{\if#1>%
diff --git a/tex/context/base/xtag-utf.tex b/tex/context/base/xtag-utf.tex
index 0e25bafae..b978c3339 100644
--- a/tex/context/base/xtag-utf.tex
+++ b/tex/context/base/xtag-utf.tex
@@ -16,6 +16,6 @@
%D This filter is kind of obsolete, since \UTF\ is not
%D limited to \XML. So, here we only enable \UTF\ support.
-\enableregime[utf]
+\chardef\XMLtokensreduction\plustwo \enableregime[utf]
\endinput
diff --git a/tex/context/interface/keys-cz.xml b/tex/context/interface/keys-cz.xml
index c060a3b36..6e10850df 100644
--- a/tex/context/interface/keys-cz.xml
+++ b/tex/context/interface/keys-cz.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2005.02.23">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2005.03.01">
<cd:variables>
<cd:variable name="one" value="jedna"/>
diff --git a/tex/context/interface/keys-de.xml b/tex/context/interface/keys-de.xml
index 336e75170..9d159ae35 100644
--- a/tex/context/interface/keys-de.xml
+++ b/tex/context/interface/keys-de.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2005.02.23">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2005.03.01">
<cd:variables>
<cd:variable name="one" value="eins"/>
diff --git a/tex/context/interface/keys-en.xml b/tex/context/interface/keys-en.xml
index 6c7ef2235..4666fc200 100644
--- a/tex/context/interface/keys-en.xml
+++ b/tex/context/interface/keys-en.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2005.02.23">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2005.03.01">
<cd:variables>
<cd:variable name="one" value="one"/>
diff --git a/tex/context/interface/keys-it.xml b/tex/context/interface/keys-it.xml
index a1e4f51aa..543659141 100644
--- a/tex/context/interface/keys-it.xml
+++ b/tex/context/interface/keys-it.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2005.02.23">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2005.03.01">
<cd:variables>
<cd:variable name="one" value="uno"/>
diff --git a/tex/context/interface/keys-nl.xml b/tex/context/interface/keys-nl.xml
index f0b2d0acf..a6376207f 100644
--- a/tex/context/interface/keys-nl.xml
+++ b/tex/context/interface/keys-nl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2005.02.23">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2005.03.01">
<cd:variables>
<cd:variable name="one" value="een"/>
diff --git a/tex/context/interface/keys-ro.xml b/tex/context/interface/keys-ro.xml
index c88a91cea..d9f920dd0 100644
--- a/tex/context/interface/keys-ro.xml
+++ b/tex/context/interface/keys-ro.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2005.02.23">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2005.03.01">
<cd:variables>
<cd:variable name="one" value="unu"/>