summaryrefslogtreecommitdiff
path: root/tex
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2006-01-27 13:58:00 +0100
committerHans Hagen <pragma@wxs.nl>2006-01-27 13:58:00 +0100
commit94d0527506ced512de9c2ee13e160d81414191e7 (patch)
tree70eb926e70bef9c892856f2fd44bd11e08088cee /tex
parentdcc773eed69f48d0f2d2df6801dc8c99c2690883 (diff)
downloadcontext-94d0527506ced512de9c2ee13e160d81414191e7.tar.gz
stable 2006.01.27 13:58
Diffstat (limited to 'tex')
-rw-r--r--tex/context/base/colo-ini.tex18
-rw-r--r--tex/context/base/cont-fil.tex5
-rw-r--r--tex/context/base/cont-new.tex2
-rw-r--r--tex/context/base/context.tex9
-rw-r--r--tex/context/base/core-buf.tex20
-rw-r--r--tex/context/base/core-fil.tex2
-rw-r--r--tex/context/base/core-ini.tex2
-rw-r--r--tex/context/base/core-int.tex2
-rw-r--r--tex/context/base/core-itm.tex4
-rw-r--r--tex/context/base/core-mat.tex666
-rw-r--r--tex/context/base/core-mis.tex346
-rw-r--r--tex/context/base/core-ntb.tex83
-rw-r--r--tex/context/base/core-obj.tex2
-rw-r--r--tex/context/base/core-ref.tex12
-rw-r--r--tex/context/base/core-rul.tex119
-rw-r--r--tex/context/base/core-sec.tex4
-rw-r--r--tex/context/base/core-sys.tex12
-rw-r--r--tex/context/base/core-tbl.tex6
-rw-r--r--tex/context/base/enco-chi.tex2
-rw-r--r--tex/context/base/enco-ini.tex19
-rw-r--r--tex/context/base/filt-ini.tex2
-rw-r--r--tex/context/base/font-chi.tex72
-rw-r--r--tex/context/base/font-ini.tex12
-rw-r--r--tex/context/base/font-jap.tex59
-rw-r--r--tex/context/base/font-uni.tex205
-rw-r--r--tex/context/base/hand-ini.tex2
-rw-r--r--tex/context/base/java-ini.tex2
-rw-r--r--tex/context/base/lang-chi.tex4
-rw-r--r--tex/context/base/lang-ini.tex14
-rw-r--r--tex/context/base/lang-jap.tex12
-rw-r--r--tex/context/base/m-gnuplot.tex2
-rw-r--r--tex/context/base/m-units.tex2
-rw-r--r--tex/context/base/math-pln.tex86
-rw-r--r--tex/context/base/meta-ini.tex2
-rw-r--r--tex/context/base/mult-com.tex8
-rw-r--r--tex/context/base/mult-con.tex19
-rw-r--r--tex/context/base/mult-sys.tex7
-rw-r--r--tex/context/base/page-bck.tex2
-rw-r--r--tex/context/base/page-flt.tex22
-rw-r--r--tex/context/base/page-ini.tex59
-rw-r--r--tex/context/base/regi-uni.tex3
-rw-r--r--tex/context/base/regi-utf.tex2
-rw-r--r--tex/context/base/s-chi-00.tex6
-rw-r--r--tex/context/base/s-jap-00.tex23
-rw-r--r--tex/context/base/spec-ini.tex8
-rw-r--r--tex/context/base/supp-fil.tex10
-rw-r--r--tex/context/base/supp-fun.tex2
-rw-r--r--tex/context/base/supp-mat.tex15
-rw-r--r--tex/context/base/syst-ext.tex14
-rw-r--r--tex/context/base/syst-gen.tex21
-rw-r--r--tex/context/base/syst-pln.tex26
-rw-r--r--tex/context/base/type-enc.tex55
-rw-r--r--tex/context/base/type-pre.tex1
-rw-r--r--tex/context/base/type-syn.tex120
-rw-r--r--tex/context/base/unic-chi.tex26
-rw-r--r--tex/context/base/unic-cjk.tex16
-rw-r--r--tex/context/base/unic-exp.tex44
-rw-r--r--tex/context/base/unic-ext.tex35
-rw-r--r--tex/context/base/unic-ini.tex81
-rw-r--r--tex/context/base/x-set-11.tex12
-rw-r--r--tex/context/base/xtag-ext.tex17
-rw-r--r--tex/context/base/xtag-ini.tex9
-rw-r--r--tex/context/base/xtag-stk.tex166
-rw-r--r--tex/context/interface/cont-cz.xml29
-rw-r--r--tex/context/interface/cont-de.xml29
-rw-r--r--tex/context/interface/cont-en.xml29
-rw-r--r--tex/context/interface/cont-fr.xml29
-rw-r--r--tex/context/interface/cont-it.xml29
-rw-r--r--tex/context/interface/cont-nl.xml29
-rw-r--r--tex/context/interface/cont-ro.xml29
-rw-r--r--tex/context/interface/keys-cz.xml9
-rw-r--r--tex/context/interface/keys-de.xml9
-rw-r--r--tex/context/interface/keys-en.xml9
-rw-r--r--tex/context/interface/keys-fr.xml9
-rw-r--r--tex/context/interface/keys-it.xml9
-rw-r--r--tex/context/interface/keys-nl.xml9
-rw-r--r--tex/context/interface/keys-ro.xml9
77 files changed, 1936 insertions, 970 deletions
diff --git a/tex/context/base/colo-ini.tex b/tex/context/base/colo-ini.tex
index c5f220dd5..d8b057f11 100644
--- a/tex/context/base/colo-ini.tex
+++ b/tex/context/base/colo-ini.tex
@@ -182,18 +182,18 @@
\startmessages french library: colors
title: color
- 1: le système -- est globalement activé
- 2: le système -- est localement activé
- 3: -- n'est pas défini --
- 4: le système -- est chargé
- 5: système -- inconnu
+ 1: le système -- est globalement activé
+ 2: le système -- est localement activé
+ 3: -- n'est pas défini --
+ 4: le système -- est chargé
+ 5: système -- inconnu
6: la palette -- est disponible
7: le palette -- n'est pas disponible
- 8: la spécification -- de la couleur -- devient noire
- 9: l'espace de couleur -- n'est pas supporté
- 10: -- l'espace de couleur est supporté
+ 8: la spécification -- de la couleur -- devient noire
+ 9: l'espace de couleur -- n'est pas supporté
+ 10: -- l'espace de couleur est supporté
11: la couleur est convertie en niveau de gris
- 12: -- est enregistré
+ 12: -- est enregistré
\stopmessages
%D We use a couple of local registers. That way we don't have
diff --git a/tex/context/base/cont-fil.tex b/tex/context/base/cont-fil.tex
index a28647b07..6988f57f0 100644
--- a/tex/context/base/cont-fil.tex
+++ b/tex/context/base/cont-fil.tex
@@ -96,9 +96,14 @@
\definefilesynonym [abr-smallcaps] [abr-02]
\definefilesynonym [chinese] [chi-00]
+\definefilesynonym [japanese] [jap-00]
+
%definefilesynonym [chi-simplified] [chi-01]
%definefilesynonym [chi-traditional] [chi-02]
\definefilesynonym [greek] [grk-00]
+\definefilesynonym [unic-chi] [unic-cjk]
+\definefilesynonym [unic-jap] [unic-cjk]
+
\endinput
diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex
index fe6f7df02..52a83ee2b 100644
--- a/tex/context/base/cont-new.tex
+++ b/tex/context/base/cont-new.tex
@@ -24,7 +24,7 @@
\normalend}}
\fi
-\newcontextversion{2006.01.16 18:35}
+\newcontextversion{2006.01.27 13:58}
%D This file is loaded at runtime, thereby providing an
%D excellent place for hacks, patches, extensions and new
diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex
index b4e228ae3..64b9f9134 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{2006.01.16 18:35}
+\def\contextversion{2006.01.27 13:58}
%D For those who want to use this:
@@ -189,7 +189,7 @@
\input lang-ctx.tex
\input lang-dis.tex % after lang-ctx !
\input unic-ini.tex
-\input unic-ext.tex
+%input unic-ext.tex % obsolete
\input colo-ini.tex
\input colo-ext.tex
@@ -300,6 +300,7 @@
%D functionality:
\input lang-chi.tex
+\input lang-jap.tex
%D How about fill||in fields and related stuff?
@@ -325,6 +326,7 @@
\input type-ini.tex
\input type-def.tex
+
\input prop-ini.tex
\input prop-lay.tex % needs core-ref.tex
\input prop-mis.tex
@@ -359,7 +361,8 @@
\input xtag-ini.tex
\input xtag-ext.tex
\input xtag-prs.tex
-\input xtag-map.tex
+\input xtag-map.tex % may become obsolete
+\input xtag-stk.tex
\input xtag-exp.tex
\input xtag-pre.tex
\input xtag-xsd.tex
diff --git a/tex/context/base/core-buf.tex b/tex/context/base/core-buf.tex
index 56897c824..7462ea6ff 100644
--- a/tex/context/base/core-buf.tex
+++ b/tex/context/base/core-buf.tex
@@ -129,18 +129,18 @@
\startmessages french library: textblocks
title: textblocks
- 1: nouvelle version, une seconde passe est nécessaire
+ 1: nouvelle version, une seconde passe est nécessaire
2: ecriture des blocs vers --
3: lecture des blocs en provenance de --
- 4: seconde passe nécessaire
- 5: -- non caché
- 6: -- caché et traité
- 7: -- caché
- 8: -- composé
- 9: -- non composé
- 10: -- chargé et traité
- 11: -- chargé et composé
- 12: -- sauté
+ 4: seconde passe nécessaire
+ 5: -- non caché
+ 6: -- caché et traité
+ 7: -- caché
+ 8: -- composé
+ 9: -- non composé
+ 10: -- chargé et traité
+ 11: -- chargé et composé
+ 12: -- sauté
\stopmessages
\unprotect
diff --git a/tex/context/base/core-fil.tex b/tex/context/base/core-fil.tex
index 09c91be56..e8b92221c 100644
--- a/tex/context/base/core-fil.tex
+++ b/tex/context/base/core-fil.tex
@@ -56,7 +56,7 @@
\startmessages french library: files
title: files
- 1: le synonyme de fichier -- est déjà utilisé pour --
+ 1: le synonyme de fichier -- est déjà utilisé pour --
\stopmessages
%D \macros
diff --git a/tex/context/base/core-ini.tex b/tex/context/base/core-ini.tex
index a63b0c74e..4f6e9fe1d 100644
--- a/tex/context/base/core-ini.tex
+++ b/tex/context/base/core-ini.tex
@@ -36,7 +36,7 @@
\appendtoks \registerparoptions \to \everypar
\appendtoks \flushsyncpositions \to \everypar
\appendtoks \flushpostponednodedata \to \everypar
-\appendtoks \dohandlespeech \to \everypar
+\appendtoks \dohandlerepeatdelimitedtext \to \everypar
\appendtoks \insertparagraphintro \to \everypar
\appendtoks \flushpostponedbookmark \to \neverypar
diff --git a/tex/context/base/core-int.tex b/tex/context/base/core-int.tex
index c1eb33f3f..90bcc23fa 100644
--- a/tex/context/base/core-int.tex
+++ b/tex/context/base/core-int.tex
@@ -152,7 +152,7 @@
title: version
1: @+ manquant
2: marquage des pages
- 3: pages sélectionnées : --
+ 3: pages sélectionnées : --
\stopmessages
\unprotect
diff --git a/tex/context/base/core-itm.tex b/tex/context/base/core-itm.tex
index 85dff12bd..8b216190b 100644
--- a/tex/context/base/core-itm.tex
+++ b/tex/context/base/core-itm.tex
@@ -45,7 +45,7 @@
\stopmessages
\startmessages french library: layouts
- 9: pas plus de -- niveaux pour l'instant dans les élémentarisations
+ 9: pas plus de -- niveaux pour l'instant dans les élémentarisations
\stopmessages
\unprotect
@@ -177,7 +177,7 @@
\v!inmargin*=>\setitemparameter{#1}\c!width{-2em}, % signal
\v!atmargin*=>\doifnot{#1}{1}{\setitemparameter{#1}\c!width{0em}}, % signal
\v!intext*=>\settrue\inlinelistitem, % new
- \v!loose*=>\optimizeitemsfalse,
+ \v!loose*=>\setfalse\optimizelistitem,
\v!paragraph*=>\settrue\paragraphlistitem
\packitems,
\v!joinedup*=>\dosetuppackeditemgroup{#1}%
diff --git a/tex/context/base/core-mat.tex b/tex/context/base/core-mat.tex
index 4e716cffe..603f18d62 100644
--- a/tex/context/base/core-mat.tex
+++ b/tex/context/base/core-mat.tex
@@ -268,7 +268,8 @@
\fi
\advance\displaywidth-\displayindent
\advance\displaywidth-\rightdisplayskip
- \advance\displaywidth-\rightdisplaymargin}
+ \advance\displaywidth-\rightdisplaymargin
+ \hsize\displaywidth} % new, else overfull in itemize
\newif\ifoptimizedisplayspacing
@@ -294,7 +295,12 @@
\switchtoformulabodyfont[#2]%
\parskip\formulaparskip
\def\currentformula{#1}%
- \doifsomething{\formulaparameter\c!margin}% so we test first
+% may look better in itemizations
+\doif{\formulaparameter\c!option}\v!middle
+ {\def\leftdisplayskip{\zeropoint}%
+ \def\rightdisplayskip{\zeropoint}}%
+% this was an experiment
+ \doif{\formulaparameter\c!margin}% so we test first
{\dosetleftskipadaption{\formulaparameter\c!margin}%
\edef\leftdisplaymargin{\the\leftskipadaption}}% overloaded
\long\def\dostartformula##1{\bgroup\let\dostopformula\egroup}%
@@ -549,30 +555,80 @@
{\setfalse\incrementformulanumber
\dodoubleempty\doplaceformula}
+% \def\doplaceformula[#1][#2]% #2 = dummy, gobbles spaces
+% {\def\redoplaceformula
+% {\bgroup\def\dostartformula####1{\relax}%
+% \ifx\next\bgroup
+% \@EA\moreplaceformula % [ref]{}
+% \else
+% \expandafter\convertargument\e!start\to\asciiA % actually, \next's meaning is \dostartformula
+% \expandafter\convertargument\next \to\asciiB
+% \ExpandBothAfter\doifincsnameelse\asciiA\asciiB
+% {\egroup \@EA\dodoplaceformula}% [ref]\start
+% {\egroup \@EA\dispplaceformula}% [ref]$$
+% \fi[#1]{}}%
+% \futurelet\next\redoplaceformula}
+%
+% \long\def\moreplaceformula[#1]#2#3#4% #2 dummy #4 gobbles spaces
+% {\def\redoplaceformula
+% {\expandafter\convertargument\e!start\to\asciiA
+% \expandafter\convertargument\next \to\asciiB
+% \ExpandBothAfter\doifincsnameelse\asciiA\asciiB
+% {\egroup \dodoplaceformula}% [ref]\start
+% {\egroup \dispplaceformula}% [ref]$$
+% [#1]{#3}}%
+% \futurelet\next\redoplaceformula#4}
+%
+% BEGIN OF PATCH (CORE-MAT.TEX)
+
\def\doplaceformula[#1][#2]% #2 = dummy, gobbles spaces
{\def\redoplaceformula
- {\bgroup\def\dostartformula####1{\relax}%
+ {\bgroup
\ifx\next\bgroup
- \@EA\moreplaceformula % [ref]{}
+ \egroup \@EA\moreplaceformula % [ref]{}
\else
- \expandafter\convertargument\e!start\to\asciiA
- \expandafter\convertargument\next \to\asciiB
- \ExpandBothAfter\doifincsnameelse\asciiA\asciiB
- {\egroup \@EA\dodoplaceformula}% [ref]\start
- {\egroup \@EA\dispplaceformula}% [ref]$$
+ \def\nextnext{$}%
+ \ifx\next\nextnext
+ \egroup \@EAEAEA\dispplaceformula % [ref]$$
+ \else
+ \egroup \@EAEAEA\dodoplaceformula % [ref]\start
+ \fi
\fi[#1]{}}%
\futurelet\next\redoplaceformula}
\long\def\moreplaceformula[#1]#2#3#4% #2 dummy #4 gobbles spaces
{\def\redoplaceformula
- {\expandafter\convertargument\e!start\to\asciiA
- \expandafter\convertargument\next \to\asciiB
- \ExpandBothAfter\doifincsnameelse\asciiA\asciiB
- {\egroup \dodoplaceformula}% [ref]\start
- {\egroup \dispplaceformula}% [ref]$$
+ {\bgroup
+ \def\nextnext{$}%
+ \ifx\next\nextnext
+ \egroup \@EA\dispplaceformula % [ref]$$
+ \else
+ \egroup \@EA\dodoplaceformula % [ref]\start
+ \fi
[#1]{#3}}%
\futurelet\next\redoplaceformula#4}
+% END OF PATCH
+
+\def\startformulas#1\stopformulas % new / to be internationalized
+ {\bgroup
+ \forgetdisplayskips
+ \startdisplaymath
+ \setlocalhsize
+ \long\def\startformula##1\stopformula{\advance\scratchcounter\plusone}%
+ \scratchcounter\zerocount #1% preroll
+ \divide \hsize \scratchcounter
+ \hbox to \localhsize \bgroup
+ \hss
+ \def\normalstartformula{\vskip-\strutdepth$$}% i hate this
+ \def\normalstopformula {$$}%
+ \def\startformula{$\vcenter\bgroup\normalstartformula}%
+ \def\stopformula {\normalstopformula\egroup$\hss}%
+ #1%
+ \egroup
+ \stopdisplaymath
+ \egroup}
+
\def\dispplaceformula[#1]#2$$#3$$%
{\dodoplaceformula[#1]{#2}\dostartformula{}#3\dostopformula}
@@ -1422,6 +1478,588 @@
\appendtoks \let\text\mathtext \to \everymathematics
%D \macros
+%D {\definemathalignment, setupmathalignment, startmathalignment}
+%D
+%D Modules may provide additional alignment features. The following
+%D mechanisms are provided by the core.
+
+% n>1 #### needed, strange # interaction in recurse
+
+\def\presetdisplaymath{\displ@y} % some day i will relocate the plain stuff
+
+\def\buildeqalign
+ {\scratchtoks\emptytoks
+ \dorecurse{\mathalignmentparameter\c!m}
+ {\ifnum\recurselevel>\plusone
+ \appendtoks
+ \tabskip\mathalignmentparameter\c!distance&\tabskip\zeropoint
+ \to\scratchtoks
+ \fi
+ \expanded{\scratchtoks{\the\scratchtoks\the\!!toksa}}%
+ \dorecurse{\numexpr\mathalignmentparameter\c!n-\plusone\relax}
+ {\expanded{\scratchtoks{\the\scratchtoks\the\!!toksb}}}}%
+ \expanded{\scratchtoks{\the\scratchtoks\the\!!toksc}}}
+
+\def\forgetalign
+ {\tabskip\zeropoint\everycr\emptytoks}
+
+\let\firstineqalign\empty
+\let\nextineqalign \empty
+\let\leftofeqalign \empty
+\let\rightofeqalign\empty
+
+\def\mathineqalign#1{$\forgetalign\displaystyle{{}#1{}}$}
+\def\textineqalign#1{$\forgetalign#1$}
+
+\def\eqalign#1% why no halign here, probably because of displaywidth
+ {\!!toksa{\strut\hfil$\displaystyle{##}$}%
+ \!!toksb{&$\displaystyle{{}##{}}$\hfil}%
+ \!!toksc\emptytoks
+ \buildeqalign
+ \null\,\vcenter
+ {\openup{.25\bodyfontsize}% was: \openup\jot
+ \mathsurround\zeropoint
+ \expandafter \ialign \expandafter {\the\scratchtoks\crcr#1\crcr}%
+ }\,}
+
+% preamble is scanned for tabskips so we need the span to prevent an error message
+
+\def\prepareeqalignno
+ {\!!toksa{\strut\firstineqalign\hfil\leftofeqalign\span\mathineqalign{##}\rightofeqalign\tabskip\zeropoint}%
+ \!!toksb{&\nextineqalign\leftofeqalign\span\mathineqalign{##}\rightofeqalign\tabskip\zeropoint}%
+ \!!toksc{\hfil\tabskip\centering&\llap{\span\textineqalign{##}}\tabskip\zeropoint}%
+ \buildeqalign
+ \presetdisplaymath
+ \tabskip\centering}
+
+\def\prepareleqalignno
+ {\!!toksa{\strut\firstineqalign\hfil\leftofeqalign\span\mathineqalign{##}\rightofeqalign\tabskip\zeropoint}%
+ \!!toksb{&\nextineqalign\leftofeqalign\span\mathineqalign{##}\rightofeqalign\tabskip\zeropoint}%
+ \!!toksc{\hfil\tabskip\centering&\kern-\displaywidth\rlap{\span\textineqalign{##}}\tabskip\displaywidth}%
+ \buildeqalign
+ \presetdisplaymath
+ \tabskip\centering}
+
+\chardef\eqalignmode=1
+
+\def\eqalignno#1%
+ {\prepareeqalignno
+ \halign \ifcase\eqalignmode \or to \displaywidth \fi \@EA {\the\scratchtoks\crcr#1\crcr}}
+
+\def\leqalignno#1%
+ {\prepareleqaligno
+ \halign \ifcase\eqalignmode \or to \displaywidth \fi \@EA {\the\scratchtoks\crcr#1\crcr}}
+
+\def\aligneqalignno
+ {\prepareeqalignno
+ \halign \ifcase\eqalignmode \or to \displaywidth \fi \@EA \bgroup\the\scratchtoks\crcr}
+
+\def\alignleqalignno
+ {\prepareleqalignno
+ \halign \ifcase\eqalignmode \or to \displaywidth \fi \@EA \bgroup\the\scratchtoks\crcr}
+
+\def\finishalignno
+ {\crcr\egroup}
+
+%D Here we implement teh user interface part.
+
+\def\setupmathalignment
+ {\dodoubleempty\dosetupmathalignment}
+
+\def\dosetupmathalignment[#1][#2]%
+ {\ifsecondargument
+ \getparameters[\??eq#1][#2]%
+ \else
+ \getparameters[\??eq][#1]%
+ \fi}
+
+\let\currentmathalignment\empty
+
+\def\mathalignmentparameter#1%
+ {\executeifdefined{\??eq\currentmathalignment#1}{\executeifdefined{\??eq#1}\empty}}
+
+\setupmathalignment
+ [\c!n=2,
+ \c!m=1,
+ \c!distance=1em]
+
+\def\numberedeqalign
+ {\doifelse\@@fmlocation\v!left\alignleqalignno\aligneqalignno}
+
+\def\doxxdoubleempty#1#2%
+ {\ifx#2[\expandafter\dodoxxdoubleempty\else\expandafter\noxxdoubleempty\fi#1#2}
+
+\def\dodoxxdoubleempty#1[#2]#3%
+ {\ifx#3[\else\expandafter\nonoxxdoubleempty\fi#1[#2]#3}
+
+\def\noxxdoubleempty #1{#1[][]}
+\def\nonoxxdoubleempty#1[#2]{#1[#2][]}
+
+\newcount\eqaligncolumn
+
+\def\firstineqalign{\global\eqaligncolumn\plusone}
+\def\nextineqalign {\global\advance\eqaligncolumn\plusone}
+\def\leftofeqalign {\getvalue{\??eq:\v!left :\number\eqaligncolumn}}
+\def\rightofeqalign{\getvalue{\??eq:\v!right:\number\eqaligncolumn}}
+
+\def\doseteqaligncolumn#1%
+ {\letvalue{\??eq:\v!left :\number\eqaligncolumn}\empty
+ \letvalue{\??eq:\v!right:\number\eqaligncolumn}\empty
+ \doif{#1}\v!left {\letvalue{\??eq:\v!right:\number\eqaligncolumn}\hfill}%
+ \doif{#1}\v!right {\letvalue{\??eq:\v!left :\number\eqaligncolumn}\hfill}%
+ \doif{#1}\v!middle{\letvalue{\??eq:\v!right:\number\eqaligncolumn}\hfill
+ \letvalue{\??eq:\v!left :\number\eqaligncolumn}\hfill}}
+
+\def\dodoalignNC
+ {\gdef\doalignNC##1{&##1}}
+
+\def\doalignNR[#1][#2]%
+ {\doifsomething{#1}
+ {\doifelse{#1}{+}
+ {\doformulanumber[][#2][]{}}
+ {\doformulanumber[#1][#2][]{}}}%
+ \crcr}
+
+% todo: pop in cell
+
+\def\dostartmathalignment[#1][#2]%
+ {\begingroup
+ \pushmacro\doalignNC
+ \edef\currentmathalignment{#1}%
+ \doifassignmentelse{#2}{\setupmathalignment[#1][#2]}\donothing
+ \def\NC{\doalignNC}%
+ \global\let\doalignNC\dodoalignNC
+ \def\EQ{&=}%
+ \def\NR{&\global\let\doalignNC\dodoalignNC\doxxdoubleempty\doalignNR}%
+ % amstex compatibility mode: (ugly, will disappear)
+ \def\notag{\def\\{&\crcr}}%
+ \doifelse{#2}{*}{\def\\{&\crcr}}{\def\\{&\doalignNR[+][]\crcr}}%
+ % end of compatibility mode
+ \eqaligncolumn\zerocount
+ \processcommacommand[\mathalignmentparameter\c!align]{\advance\eqaligncolumn\plusone\doseteqaligncolumn}%
+ % the real action
+ \global\eqaligncolumn\plusone
+ \numberedeqalign}
+
+\def\dostopmathalignment
+ {\finishalignno
+ \popmacro\doalignNC
+ \endgroup}
+
+\def\definemathalignment
+ {\dodoubleempty\dodefinemathalignment}
+
+\def\dodefinemathalignment[#1]% [#2]%
+ {\setvalue{\e!start#1}{\dodoubleempty\dostartmathalignment[#1]}%
+ \setvalue{\e!stop #1}{\dostopmathalignment}%
+ \setupmathalignment[#1]}% [#2]
+
+%D For the moment we only provide english commands.
+
+\definemathalignment[align] % default case (this is what amstex users expect)
+\definemathalignment[\v!mathalignment] % prefered case (this is cleaner, less clashing)
+
+% \def\startsplit
+% {\startalign[*]} % no number by default
+%
+% \def\stopsplit
+% {&\doalignNR[+][]\crcr % for a number on last line
+% \stopalign}
+
+%D \startbuffer
+%D \placeformula \startformula \eqalignno {
+%D a &= b & \formulanumber \cr
+%D c &= d \cr
+%D &= e \cr
+%D &= f & \formulanumber
+%D } \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula \startalign
+%D \NC a \EQ b \NR[+]
+%D \NC c \EQ d \NR
+%D \NC \EQ f \NR[for:demo-a-1]
+%D \NC \EQ g \NR[for:demo-a-2][a]
+%D \NC \EQ h \NR[for:demo-a-3][b]
+%D \NC \EQ i \NR
+%D \stopalign \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula \startalign
+%D \NC a \EQ b \NR[+]
+%D \NC c \EQ d \NR
+%D \NC \EQ f \NR
+%D \NC \EQ g \NR
+%D \NC \EQ h \NR
+%D \NC \EQ i \NR[+]
+%D \stopalign \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula \startalign
+%D a &= b \\
+%D c &= d \notag \\
+%D &= e \notag \\
+%D &= f \\
+%D \stopalign \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula \startalign
+%D \NC a \NC \eq b \NR[+]
+%D \NC c \NC \neq d \NR
+%D \NC \NC \neq f \NR[for:demo-b-1]
+%D \NC \NC \geq g \NR[for:demo-b-2][a]
+%D \NC \NC \leq h \NR[for:demo-b-3][b]
+%D \NC \NC \neq i \NR
+%D \stopalign \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula \startalign[*]
+%D a &= b \\
+%D c &= d \\
+%D &= e \\
+%D &= f \\
+%D \stopalign \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula \startalign
+%D x &= y \\
+%D a &= b \\
+%D \stopalign \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula \startalign[m=3]
+%D x &= y & x &= y & z &= t \\
+%D a &= b & p &= q & w &= s \\
+%D \stopalign \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula \startalign[m=3,distance=0pt]
+%D x &= y &= x &= y &= z &= t \\
+%D a &= b &= p &= q &= w &= s \\
+%D \stopalign \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula \startalign[n=5,distance=0pt]
+%D x &= yy &= xx &= yy &= zz \\
+%D a &= b &= p &= q &= w \\
+%D \stopalign \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula \startalign[n=3,align={left,middle,right}]
+%D \NC l \NC = \NC r \NR
+%D \NC left \NC = \NC right \NR
+%D \stopalign \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula \startalign[n=3,align={right,middle,left}]
+%D \NC l \NC = \NC r \NR
+%D \NC left \NC = \NC right \NR
+%D \stopalign \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula \startalign[n=3,align={middle,middle,middle}]
+%D \NC l \NC = \NC r \NR
+%D \NC left \NC = \NC right \NR
+%D \stopalign \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula
+%D \startformula
+%D \startalign[n=3,align={middle,middle,middle}]
+%D \NC a \NC = \NC b \NR[+]
+%D \NC 2a \NC = \NC 2b \NR
+%D \stopalign
+%D \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula
+%D \startformulas
+%D \setupmathalignment[n=3,align={middle,middle,middle}]%
+%D \startformula
+%D \startalign
+%D \NC a \NC = \NC b \NR[+]
+%D \NC 2a \NC = \NC 2b \NR
+%D \stopalign
+%D \stopformula
+%D \startformula
+%D \startalign
+%D \NC a \NC = \NC b \NR[+]
+%D \NC 2a \NC = \NC 2b \NR
+%D \stopalign
+%D \stopformula
+%D \stopformulas
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula
+%D \startformulas
+%D \dorecurse{5}{\startformula
+%D \startalign[n=3,align={middle,middle,middle}]
+%D \NC a \NC = \NC b \NR[+]
+%D \NC 2a \NC = \NC 2b \NR
+%D \stopalign
+%D \stopformula}
+%D \stopformulas
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+%D \macros
+%D {definemathcases, setupmathcases, startmathcases}
+%D
+%D Another wish \unknown
+
+\def\setupmathcases
+ {\dodoubleempty\dosetupmathcases}
+
+\def\dosetupmathcases[#1][#2]%
+ {\ifsecondargument
+ \getparameters[\??ce#1][#2]%
+ \else
+ \getparameters[\??ce][#1]%
+ \fi}
+
+\let\currentmathcases\empty
+
+\def\mathcasesparameter#1%
+ {\executeifdefined{\??ce\currentmathcases#1}{\executeifdefined{\??ce#1}\empty}}
+
+\setupmathcases
+ [\c!distance=1em,
+ \c!numberdistance=2.5em,
+ \c!left={\left\{\,},
+ \c!right={\right.}]
+
+\def\dodocasesNC
+ {\gdef\docasesNC{\endmath&}}
+
+\let\docasesNR\doalignNR
+
+\def\dostartmathcases[#1][#2]%
+ {\begingroup
+ \edef\currentmathcases{#1}%
+ \doifassignmentelse{#2}{\setupmathcases[#1][#2]}\donothing
+ \mathcasesparameter\c!left
+ \vcenter\bgroup
+ \pushmacro\docasesNC
+ \let\endmath\relax
+ \def\NC{\docasesNC}%
+ \def\MC{\docasesNC\ifmmode\else$\def\endmath{$}\fi}%
+ \global\let\docasesNC\dodocasesNC
+ \def\NR{\endmath&\global\let\docasesNC\dodocasesNC\doxxdoubleempty\docasesNR}%
+ \normalbaselines
+ \mathsurround\zeropoint
+ \everycr\emptytoks
+ \tabskip\zeropoint
+ \global\eqaligncolumn\plusone
+ \halign\bgroup
+ $##$\hfil
+ &\hskip\mathcasesparameter\c!distance\relax\popmacro\docasesNC##\hfil
+ &\hskip\mathcasesparameter\c!numberdistance\relax\span\textineqalign{##}%
+ \crcr} % todo: number
+
+\def\dostopmathcases
+ {\crcr
+ \egroup
+ \popmacro\docasesNC
+ \egroup
+ \mathcasesparameter\c!right
+ \endgroup}
+
+\def\definemathcases
+ {\dodoubleempty\dodefinemathcases}
+
+\def\dodefinemathcases[#1]% [#2]%
+ {\setvalue{\e!start#1}{\dodoubleempty\dostartmathcases[#1]}%
+ \setvalue{\e!stop #1}{\dostopmathcases}%
+ \setupmathcases[#1]}% [#2]
+
+\definemathcases[cases]
+\definemathcases[\v!mathcases]
+
+%D \startbuffer
+%D \placeformula \startformula \startcases
+%D \NC 2 \NC $ y > 0 $ \NR
+%D \NC 7 \NC $ x = 7 $ \NR[+]
+%D \NC 4 \NC otherwise \NR
+%D \stopcases \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula x \startcases
+%D \NC 2 \NC $ y > 0 $ \NR[+]
+%D \NC 7 \NC $ x = 7 $ \NR
+%D \NC 4 \NC otherwise \NR
+%D \stopcases \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula \startcases
+%D \NC 2 \NC $ y > 0 $ \NR
+%D \NC 7 \NC $ x = 7 $ \NR
+%D \NC 4 \NC otherwise \NR
+%D \stopcases \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula x \startcases
+%D \NC 2 \NC $ y > 0 $ \NR
+%D \NC 7 \NC $ x = 7 $ \NR
+%D \NC 4 \NC otherwise \NR
+%D \stopcases \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+%D \macros
+%D {definemathmatrix, setupmathmatrix, startmathmatrix}
+%D
+%D Yet another one \unknown
+
+\def\setupmathmatrix
+ {\dodoubleempty\dosetupmathmatrix}
+
+\def\dosetupmathmatrix[#1][#2]%
+ {\ifsecondargument
+ \getparameters[\??mx#1][#2]%
+ \else
+ \getparameters[\??mx][#1]%
+ \fi}
+
+\let\currentmathmatrix\empty
+
+\def\mathmatrixparameter#1%
+ {\executeifdefined{\??mx\currentmathmatrix#1}{\executeifdefined{\??mx#1}\empty}}
+
+\setupmathmatrix
+ [\c!distance=1em,
+ \c!left=,
+ \c!right=]
+
+\def\definemathmatrix
+ {\dodoubleempty\dodefinemathmatrix}
+
+\def\dodefinemathmatrix[#1]% [#2]%
+ {\setvalue{\e!start#1}{\dodoubleempty\dostartmathmatrix[#1]}%
+ \setvalue{\e!stop #1}{\dostopmathmatrix}%
+ \setupmathmatrix[#1]}% [#2]
+
+\definemathmatrix[matrix]
+\definemathmatrix[\v!mathmatrix]
+
+\def\dodomatrixNC
+ {\gdef\domatrixNC{\endmath&}}
+
+% \let\domatrixNR\doalignNR
+
+\def\dostartmathmatrix[#1][#2]%
+ {\begingroup
+ \edef\currentmathmatrix{#1}%
+ \doifassignmentelse{#2}{\setupmathmatrix[#1][#2]}\donothing
+ \null
+ \mathmatrixparameter\c!left
+ \vcenter\bgroup
+ \pushmacro\domatrixNC
+ \let\endmath\relax
+ \def\NC{\domatrixNC}%
+ \def\MC{\domatrixNC\ifmmode\else$\def\endmath{$}\fi}%
+ \global\let\domatrixNC\dodomatrixNC
+ %\def\NR{\endmath&\global\let\domatrixNC\dodomatrixNC\doxxdoubleempty\domatrixNR}%
+ \def\NR{\endmath\global\let\domatrixNC\dodomatrixNC\crcr}%
+ \normalbaselines
+ \mathsurround\zeropoint
+ \everycr\emptytoks
+ \tabskip\zeropoint
+ \global\eqaligncolumn\plusone
+ \halign\bgroup
+ \hfil$##$\hfil
+ &&\hskip\mathmatrixparameter\c!distance\relax\hfil$##$\hfil\crcr
+ \mathstrut\crcr
+ \noalign{\kern-\baselineskip}}
+
+\def\dostopmathmatrix
+ {\crcr
+ \mathstrut\crcr
+ \noalign{\kern-\baselineskip}%
+ \egroup
+ \popmacro\domatrixNC
+ \egroup
+ \mathmatrixparameter\c!right
+ \endgroup}
+
+%D \startbuffer
+%D \placeformula \startformula[-] \startmatrix
+%D \NC 1 \NC x \NC a \NR
+%D \NC 2 \NC y \NC b \NR
+%D \NC 3 \NC z \NC c \NR
+%D \stopmatrix \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \definemathmatrix[bmatrix][left={\left[\,},right={\,\right]}]
+%D
+%D \startbuffer
+%D \placeformula \startformula[-] \startbmatrix
+%D \NC 1 \NC x \NC a \NR
+%D \NC 2 \NC y \NC b \NR
+%D \NC 3 \NC z \NC c \NR
+%D \stopbmatrix \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+%D \macros
%D {frac, xfrac, xxfrac}
%D
%D This is another one Tobias asked for. It replaces the
diff --git a/tex/context/base/core-mis.tex b/tex/context/base/core-mis.tex
index 830d2b5a9..475383ea6 100644
--- a/tex/context/base/core-mis.tex
+++ b/tex/context/base/core-mis.tex
@@ -716,100 +716,99 @@
[\c!middlespeech]
[\leftboundarycharacter\c!middlespeech{speech}]
-%%%%% will be replaced by delimitedtext %%%%%
-
-\def\leftquotationmark
- {\setbox\scratchbox\hbox{\symbol[\c!leftquotation]}%
- \doif\@@cilocation\v!margin{\hskip-\wd\scratchbox}%
- \box\scratchbox}
-
-\def\rightquotationmark
- {\hsmash{\symbol[\c!rightquotation]}}
-
-\newsignal\quotationsignal
-
-\def\setupquote
- {\dodoubleargument\getparameters[\??ci]}
-
-% \def\setuoquotation
-% {\setupquote}
-
-\def\startquotation
- {\bgroup\dosingleempty\dostartquotation}
-
-\def\dostartquotation[#1]%
- {\@@cibefore
- \doifelsenothing{#1}
- {\let\dostopquotation\relax}
- {\startnarrower[#1]%
- \let\dostopquotation\stopnarrower}%
- \dostartattributes\??ci\c!style\c!color\empty
- \leftquotationmark
- \ignorespaces}
-
-\def\stopquotation
- {\removeunwantedspaces
- \removelastskip
- \rightquotationmark
- \dostopattributes
- \dostopquotation
- \@@ciafter
- \egroup}
-
-\def\dohandlequotation#1#2%
- {\ifdim\lastskip=\quotationsignal
- \unskip\hskip\hspaceamount\currentlanguage{interquotation}%
- \else
- #2%
- \fi
- \ifhmode % else funny pagebeaks
- \penalty\!!tenthousand\hskip\zeropoint % == \prewordbreak
- \fi
- \strut % new, needed below
- \symbol[#1]%
- \penalty\!!tenthousand\hskip\quotationsignal} % +- \prewordbreak
-
-\def\handlequotation#1%
- {\dohandlequotation{#1}\relax}
-
-\unexpanded\def\quotation
- {\groupedcommand
- {\dohandlequotation\c!leftquotation \relax}
- {\dohandlequotation\c!rightquotation\removelastskip}}
-
-\unexpanded\def\quote
- {\doifelse\@@cistyle\v!normal\doquotedcite\doattributedcite}
-
-\def\doquotedcite
- {\groupedcommand
- {\dohandlequotation\c!leftquote \relax}
- {\dohandlequotation\c!rightquote\removelastskip}}
-
-\def\doattributedcite
- {\groupedcommand
- {\dostartattributes\??ci\c!style\c!color}
- {\dostopattributes}}
+% has been replaced by delimitedtext
+%
+% \def\leftquotationmark
+% {\setbox\scratchbox\hbox{\symbol[\c!leftquotation]}%
+% \doif\@@cilocation\v!margin{\hskip-\wd\scratchbox}%
+% \box\scratchbox}
+%
+% \def\rightquotationmark
+% {\hsmash{\symbol[\c!rightquotation]}}
+%
+% \newsignal\quotationsignal
+%
+% \def\setupquote
+% {\dodoubleargument\getparameters[\??ci]}
+%
+% \def\startquotation
+% {\bgroup\dosingleempty\dostartquotation}
+%
+% \def\dostartquotation[#1]%
+% {\@@cibefore
+% \doifelsenothing{#1}
+% {\let\dostopquotation\relax}
+% {\startnarrower[#1]%
+% \let\dostopquotation\stopnarrower}%
+% \dostartattributes\??ci\c!style\c!color\empty
+% \leftquotationmark
+% \ignorespaces}
+%
+% \def\stopquotation
+% {\removeunwantedspaces
+% \removelastskip
+% \rightquotationmark
+% \dostopattributes
+% \dostopquotation
+% \@@ciafter
+% \egroup}
+%
+% \def\dohandlequotation#1#2%
+% {\ifdim\lastskip=\quotationsignal
+% \unskip\hskip\hspaceamount\currentlanguage{interquotation}% hardcoded
+% \else
+% #2%
+% \fi
+% \ifhmode % else funny pagebeaks
+% \penalty\!!tenthousand\hskip\zeropoint % == \prewordbreak
+% \fi
+% \strut % new, needed below
+% \symbol[#1]%
+% \penalty\!!tenthousand\hskip\quotationsignal} % +- \prewordbreak
+%
+% \def\handlequotation#1%
+% {\dohandlequotation{#1}\relax}
+%
+% \unexpanded\def\quotation
+% {\groupedcommand
+% {\dohandlequotation\c!leftquotation \relax}
+% {\dohandlequotation\c!rightquotation\removelastskip}}
+%
+% \unexpanded\def\quote
+% {\doifelse\@@cistyle\v!normal\doquotedcite\doattributedcite}
+%
+% \def\doquotedcite
+% {\groupedcommand
+% {\dohandlequotation\c!leftquote \relax}
+% {\dohandlequotation\c!rightquote\removelastskip}}
+%
+% \def\doattributedcite
+% {\groupedcommand
+% {\dostartattributes\??ci\c!style\c!color}
+% {\dostopattributes}}
%D The previous one fails in \placefloat[left]{}{}, so instead
%D we use the next alternative, where the first one is handled
%D outside group. Watch the strut.
-\unexpanded\def\quotation
- {\dohandlequotation\c!leftquotation\relax
- \groupedcommand \donothing
- {\dohandlequotation\c!rightquotation\removelastskip}}
-
-\def\doquotedcite
- {\dohandlequotation\c!leftquote\relax
- \groupedcommand \donothing
- {\dohandlequotation\c!rightquote\removelastskip}}
-
-\setupquote
- [\c!location=\v!margin,
- \c!style=\v!normal,
- \c!color=,
- \c!before=\startnarrower,
- \c!after=\stopnarrower]
+% has been replaced by delimitedtext
+%
+% \unexpanded\def\quotation
+% {\dohandlequotation\c!leftquotation\relax
+% \groupedcommand \donothing
+% {\dohandlequotation\c!rightquotation\removelastskip}}
+%
+% \def\doquotedcite
+% {\dohandlequotation\c!leftquote\relax
+% \groupedcommand \donothing
+% {\dohandlequotation\c!rightquote\removelastskip}}
+%
+% \setupquote
+% [\c!location=\v!margin,
+% \c!style=\v!normal,
+% \c!color=,
+% \c!before=\startnarrower,
+% \c!after=\stopnarrower]
\appendtoks\def\quotation#1{"#1"}\to\simplifiedcommands
\appendtoks\def\quote #1{'#1'}\to\simplifiedcommands
@@ -822,38 +821,38 @@
%D closing symbols are defined per language. Italian is an
%D example of a language that has them set.
-%%%%% will be replaced by delimitedtext %%%%%
-
-\newcounter\speechlevel \newconditional\insidespeech
-
-\def\startspeech
- {\doglobal\increment\speechlevel\relax
- \dohandlequotation\c!leftspeech\relax
- \global\settrue\insidespeech
- \ignorespaces}
-
-\def\stopspeech
- {\dohandlequotation\c!rightspeech\removelastskip
- \doglobal\decrement\speechlevel\relax
- \ifcase\speechlevel\relax \global\setfalse\insidespeech \fi}
-
-\def\dohandlespeech % indirect since called in everypar
- {\relax % still needed?
- \ifcase\speechlevel\or\dodohandlespeech\fi}
-
-\def\dodohandlespeech
- {\ifconditional\insidespeech
- \dohandlequotation\c!middlespeech\relax
- \else
- \global\settrue\insidespeech
- \fi}
-
-\unexpanded\def\speech
- {\doglobal\increment\speechlevel\relax
- \dohandlequotation\c!leftspeech\relax
- \groupedcommand \ignorespaces
- {\dohandlequotation\c!rightspeech\removelastskip
- \doglobal\decrement\speechlevel\relax}}
+% has been be replaced by delimitedtext
+%
+% \newcounter\speechlevel \newconditional\insidespeech
+%
+% \def\startspeech
+% {\doglobal\increment\speechlevel\relax
+% \dohandlequotation\c!leftspeech\relax
+% \global\settrue\insidespeech
+% \ignorespaces}
+%
+% \def\stopspeech
+% {\dohandlequotation\c!rightspeech\removelastskip
+% \doglobal\decrement\speechlevel\relax
+% \ifcase\speechlevel\relax \global\setfalse\insidespeech \fi}
+%
+% \def\dohandlespeech % indirect since called in everypar
+% {\relax % still needed?
+% \ifcase\speechlevel\or\dodohandlespeech\fi}
+%
+% \def\dodohandlespeech
+% {\ifconditional\insidespeech
+% \dohandlequotation\c!middlespeech\relax
+% \else
+% \global\settrue\insidespeech
+% \fi}
+%
+% \unexpanded\def\speech
+% {\doglobal\increment\speechlevel\relax
+% \dohandlequotation\c!leftspeech\relax
+% \groupedcommand \ignorespaces
+% {\dohandlequotation\c!rightspeech\removelastskip
+% \doglobal\decrement\speechlevel\relax}}
% \appendtoks \dohandlespeech \to \everypar
@@ -887,6 +886,7 @@
\c!right=,
\c!level=0,
\c!repeat=\v!no,
+ \c!method=\s!font,
#2]}%
{\doifdefined{#2}
{\copyparameters[\??ci#1][\??ci#2]
@@ -913,13 +913,20 @@
\dohandledelimitedtext\c!middle
\fi}
+\let\dohandlerepeatdelimitedtext\relax
+
\def\startdelimitedtext[#1]%
{\bgroup
\def\currentdelimitedtext{#1}%
- \doif{\delimitedtextparameter\c!repeat}\v!yes
- {\appendtoks \dorepeatdelimitedtext \to \everypar}%
- \doifinsetelse{\delimitedtextparameter\c!location}{\v!paragraph,\v!margin}%
- {\dosingleempty\dostartdelimitedtextpar}\dostartdelimitedtexttxt}
+ \doifelse{\delimitedtextparameter\c!method}\s!font
+ {\doglobal\decrementvalue{\??ci\currentdelimitedtext\c!level}%
+ \def\dostopdelimitedtext{\nohandledelimitedtext\c!right}%
+ \nohandledelimitedtext\c!left}
+ {\doifelse{\delimitedtextparameter\c!repeat}\v!yes
+ {\let\dohandlerepeatdelimitedtext\dorepeatdelimitedtext}%
+ {\let\dohandlerepeatdelimitedtext\relax}%
+ \doifinsetelse{\delimitedtextparameter\c!location}{\v!paragraph,\v!margin}%
+ {\dosingleempty\dostartdelimitedtextpar}\dostartdelimitedtexttxt}}
\def\dostartdelimitedtextpar[#1]%
{\let\dostopdelimitedtext\dostopdelimitedtextpar
@@ -971,8 +978,10 @@
\def\delimitedtext[#1]%
{\pushmacro\currentdelimitedtext
\def\currentdelimitedtext{#1}%
- \doifinsetelse{\delimitedtextparameter\c!location}{\v!paragraph,\v!margin}%
- \dodelimitedtextpar\dodelimitedtexttxt}
+ \doifelse{\delimitedtextparameter\c!method}\s!font
+ {\dofontdrivendelimited}
+ {\doifinsetelse{\delimitedtextparameter\c!location}{\v!paragraph,\v!margin}%
+ \dodelimitedtextpar\dodelimitedtexttxt}}
% shortcuts
@@ -990,8 +999,8 @@
{\hsmash{\delimitedtextparameter\c!right}}
\def\dohandledelimitedtext#1#2%
- {\bgroup
- \setbox\scratchbox\hbox{#1}%
+ {\begingroup
+ \setbox\scratchbox\hbox{\delimitedtextparameter#1}%
\ifdim\wd\scratchbox>\zeropoint
\ifdim\lastskip=\delimitedtextsignal
\unskip\hskip\hspaceamount\currentlanguage{interquotation}%
@@ -1002,10 +1011,13 @@
\penalty\!!tenthousand\hskip\zeropoint % == \prewordbreak
\fi
\strut % new, needed below
- \delimitedtextparameter#1%
+ \delimitedtextparameter#1% unhbox\scratchbox
\penalty\!!tenthousand\hskip\delimitedtextsignal % +- \prewordbreak
\fi
- \egroup}
+ \endgroup}
+
+\def\nohandledelimitedtext#1#2%
+ {\delimitedtextparameter#1}
\def\handledelimitedtext#1%
{\dohandledelimitedtext{#1}\relax}
@@ -1033,32 +1045,38 @@
{\dostartattributes{\??ci\currentdelimitedtext}\c!style\c!color}
{\dostopattributes
\popmacro\currentdelimitedtext}}
+
+\def\dofontdrivendelimited
+ {\groupedcommand
+ {\dohandledelimitedtext\c!left\relax}
+ {\dohandledelimitedtext\c!right\relax
+ \popmacro\currentdelimitedtext}}
-% \definedelimitedtext
-% [\v!quotation]
-% [\c!left={\symbol[\c!leftquotation]},
-% \c!right={\symbol[\c!rightquotation]},
-% \c!leftmargin=\v!standard]
-%
-% \definedelimitedtext
-% [\v!quote][\v!quotation]
-%
-% \setupdelimitedtext
-% [\v!quote]
-% [\c!location=\v!text,
-% \c!left={\symbol[\c!leftquote]},
-% \c!right={\symbol[\c!rightquote]}]
-%
-% \definedelimitedtext
-% [\v!speech][\v!quotation]
-%
-% \setupdelimitedtext
-% [\v!speech]
-% [\c!repeat=\v!yes,
-% \c!left={\symbol[\c!leftspeech]},
-% \c!middle={\symbol[\c!middlespeech]},
-% \c!right={\symbol[\c!rightspeech]}]
-%
+\definedelimitedtext
+ [\v!quotation]
+ [\c!left={\symbol[\c!leftquotation]},
+ \c!right={\symbol[\c!rightquotation]},
+ \c!leftmargin=\v!standard]
+
+\definedelimitedtext
+ [\v!quote][\v!quotation]
+
+\setupdelimitedtext
+ [\v!quote]
+ [\c!location=\v!text,
+ \c!left={\symbol[\c!leftquote]},
+ \c!right={\symbol[\c!rightquote]}]
+
+\definedelimitedtext
+ [\v!speech][\v!quotation]
+
+\setupdelimitedtext
+ [\v!speech]
+ [\c!repeat=\v!yes,
+ \c!left={\symbol[\c!leftspeech]},
+ \c!middle={\symbol[\c!middlespeech]},
+ \c!right={\symbol[\c!rightspeech]}]
+
% how do we call an tight quote
%
% \definedelimitedtext
@@ -1068,9 +1086,9 @@
% [\v!quotation]
% [\c!indentnext=\v!no,
% \c!spacebefore=\v!nowhite]
-%
-% \def\setupquotation{\setupdelimitedtext[\v!quotation]}
-% \def\setupquote {\setupdelimitedtext[\v!quote]}
+
+\def\setupquotation{\setupdelimitedtext[\v!quotation]}
+\def\setupquote {\setupdelimitedtext[\v!quote]}
% seldom used, move from kernel to run time module
@@ -1775,15 +1793,15 @@
\getparameters[\??co][#1]%
\fi}
-\def\startcombination
- {\dodoubleempty\dostartcombination}
-
\def\combinationparameter#1%
{\csname\??co\currentcombination#1\endcsname}%
+\def\startcombination
+ {\bgroup % so we can grab a group
+ \dodoubleempty\dostartcombination}
+
\def\dostartcombination[#1][#2]%
- {\bgroup
- \global\setsystemmode{combination}%
+ {\global\setsystemmode{combination}%
\ifsecondargument
\def\currentcombination{#1}%
\else
diff --git a/tex/context/base/core-ntb.tex b/tex/context/base/core-ntb.tex
index ff0252069..1e607eabb 100644
--- a/tex/context/base/core-ntb.tex
+++ b/tex/context/base/core-ntb.tex
@@ -62,11 +62,11 @@
%D and following white space.
\def\bTBLCELL % why not \doinhibitblank
- {\inhibitblank\doconvertfont\tbltblstyle\empty\everypar{\begstrut}}
+ {\inhibitblank\doconvertfont\tbltblstyle\empty\everypar{\delayedbegstrut}}
\def\eTBLCELL
{\ifhmode
- \endstrut
+ \delayedendstrut
\else
\par
\ifdim\prevdepth<\zeropoint % =-1000pt ?
@@ -259,9 +259,9 @@
\executeifdefined{\@@tblprefix\v!header#2}\donothing
\fi
\executeifdefined{\@@tblprefix\c!y#1}\donothing
-\getvalue{\@@tbl\@@tbl\c!extras}\letvalue{\@@tbl\@@tbl\c!extras}\relax % new, see x-fo
+ \getvalue{\@@tbl\@@tbl\c!extras}\letvalue{\@@tbl\@@tbl\c!extras}\relax % new, see x-fo
\executeifdefined{\@@tblprefix\c!x#2}\donothing
-\getvalue{\@@tbl\@@tbl\c!extras}\letvalue{\@@tbl\@@tbl\c!extras}\relax % new, see x-fo
+ \getvalue{\@@tbl\@@tbl\c!extras}\letvalue{\@@tbl\@@tbl\c!extras}\relax % new, see x-fo
\executeifdefined{\@@tblprefix\c!x#2\c!y#1}\donothing
\global\letcscsname\@@tblsplitafter\csname\@@tbl\@@tbl\c!after\endcsname
\relax}
@@ -347,7 +347,7 @@
\increment\col}%
\increment\row}%
% check max column
- \decrement\col
+ \decrement\col\relax
\ifnum\col>\maximumcol\relax
\let\maximumcol\col
\fi
@@ -567,22 +567,24 @@
\doifnottblcol\row\col{\settblcol\row\col\!!zerocount}%
\doifnottbltag\row\col{\settbltag\row\col\tblnone}}}%
% check and do
- \startTBLprocessing
- \begTBL
- \dorecurse\maximumrow
- {\bTBL
- \let\row\recurselevel
- \dorecurse\maximumcol
- {\let\col\recurselevel
- \expanded{\doTBL{\row}{\col}}}%
- \eTBL}%
- \removeunwantedspaces % only if hmode
- \endTBL
- \stopTBLprocessing
- % wrong ! ! ! better to have an auto-offset-overlay
- % \ifnum\TBLlevel>1
- % \vskip-\strutdp
- % \fi
+ \ifcase\maximumcol\else
+ \startTBLprocessing
+ \begTBL
+ \dorecurse\maximumrow
+ {\bTBL
+ \let\row\recurselevel
+ \dorecurse\maximumcol
+ {\let\col\recurselevel
+ \expanded{\doTBL{\row}{\col}}}%
+ \eTBL}%
+ \removeunwantedspaces % only if hmode
+ \endTBL
+ \stopTBLprocessing
+ % wrong ! ! ! better to have an auto-offset-overlay
+ % \ifnum\TBLlevel>1
+ % \vskip-\strutdp
+ % \fi
+ \fi
\egroup
\popTBL}
@@ -825,24 +827,26 @@
\fi\fi{\the\tbltoks}}
\def\stretchtblwidths
- {\!!dimend\zeropoint
- \!!dimene\hsize
- \dorecurse\maximumcol
- {\advance\!!dimend \gettblwid\recurselevel
- \advance\!!dimend \tbltblcolumndistance
- \advance\!!dimene-\gettbldis\recurselevel}%
- \advance\!!dimend-\tbltblcolumndistance
- \advance\!!dimend\tbltblleftmargindistance
- \advance\!!dimend\tbltblrightmargindistance
- % distribute width (stretch)
- \ifdim\!!dimend<\!!dimene
- \advance\!!dimend-\!!dimene
- \!!dimend-\!!dimend
- \divide\!!dimend\maximumcol
+ {\ifcase\maximumcol\else % else division by zero
+ \!!dimend\zeropoint
+ \!!dimene\hsize
\dorecurse\maximumcol
- {\scratchdimen\gettblwid\recurselevel
- \advance\scratchdimen\!!dimend
- \settblwid\recurselevel{\the\scratchdimen}}%
+ {\advance\!!dimend \gettblwid\recurselevel
+ \advance\!!dimend \tbltblcolumndistance
+ \advance\!!dimene-\gettbldis\recurselevel}%
+ \advance\!!dimend-\tbltblcolumndistance
+ \advance\!!dimend\tbltblleftmargindistance
+ \advance\!!dimend\tbltblrightmargindistance
+ % distribute width (stretch)
+ \ifdim\!!dimend<\!!dimene
+ \advance\!!dimend-\!!dimene
+ \!!dimend-\!!dimend
+ \divide\!!dimend\maximumcol
+ \dorecurse\maximumcol
+ {\scratchdimen\gettblwid\recurselevel
+ \advance\scratchdimen\!!dimend
+ \settblwid\recurselevel{\the\scratchdimen}}%
+ \fi
\fi}
\newbox\finaltblbox
@@ -1365,7 +1369,8 @@
\c!style=,
\c!headstyle=\v!bold,
\c!headcolor=,
- \c!strut=\v!no,
+ \c!strut=\v!yes,
+ \c!autostrut=\v!no,
\c!aligncharacter=\v!no,
\c!alignmentcharacter={,},
\c!option=, % \v!stretch
diff --git a/tex/context/base/core-obj.tex b/tex/context/base/core-obj.tex
index 93c21e269..d9e51911c 100644
--- a/tex/context/base/core-obj.tex
+++ b/tex/context/base/core-obj.tex
@@ -52,7 +52,7 @@
\startmessages french library: references
30: objet -- inconnu
- 31: objet -- dupliqué
+ 31: objet -- dupliqué
\stopmessages
%D \macros
diff --git a/tex/context/base/core-ref.tex b/tex/context/base/core-ref.tex
index 17474a0b4..eada84ce1 100644
--- a/tex/context/base/core-ref.tex
+++ b/tex/context/base/core-ref.tex
@@ -121,13 +121,13 @@
\startmessages french library: references
title: references
- 1: réference -- inconnue
- 2: réference -- dupliquée à la page --
- 3: type -- de réference inconnu
- 4: réference -- inconnue
- 21: document -- chargé
+ 1: réference -- inconnue
+ 2: réference -- dupliquée à la page --
+ 3: type -- de réference inconnu
+ 4: réference -- inconnue
+ 21: document -- chargé
22: le document -- n'est pas interactif
- 23: reference -- indéterminé (préfixe=--)
+ 23: reference -- indéterminé (préfixe=--)
\stopmessages
%D This module deals with referencing. In \CONTEXT\ referencing
diff --git a/tex/context/base/core-rul.tex b/tex/context/base/core-rul.tex
index a617559f2..88fcb8cb2 100644
--- a/tex/context/base/core-rul.tex
+++ b/tex/context/base/core-rul.tex
@@ -587,6 +587,8 @@
%D start with defining some booleans. These give an impression
%D of what we are going to take into account.
+% todo: chardefs
+
\newif\ifboxhasoffset
\newif\ifboxhaswidth
\newif\ifboxhasheight
@@ -594,6 +596,7 @@
\newif\ifboxhasstrut
\newif\ifboxisoverlaid
\newif\ifboxhasframe
+\newif\ifdelayedstrut
%D We also need a few \DIMENSIONS:
@@ -644,7 +647,7 @@
\c!topframe,\c!bottomframe,\c!leftframe,\c!rightframe,%
\c!rulethickness,\c!frameoffset,\c!background,\c!component,%
\c!backgroundoffset,\c!backgroundscreen,\c!backgroundcolor,%
- \c!align,\c!bottom,\c!top,\c!strut,\c!location,\c!setups,\c!extras]%
+ \c!align,\c!bottom,\c!top,\c!strut,\c!autostrut,\c!location,\c!setups,\c!extras]%
\copyparameters[#1\c!background][#1]%
[\c!radius,\c!corner,\c!depth]%
\copyparameters[#1\c!frame][#1]%
@@ -733,6 +736,7 @@
\edef\localformat{\framedparameter\c!align}%
\edef\localstrut {\framedparameter\c!strut}%
% these are not
+ \edef\@@localautostrut {\framedparameter\c!autostrut}%
\edef\@@localframing {\framedparameter\c!frame}%
\edef\@@locallocation {\framedparameter\c!location}%
\edef\@@localorientation{\framedparameter\c!orientation}%
@@ -843,6 +847,7 @@
\setstrut
\else\ifx\localstrut\v!local
\setfontstrut
+ \else
\fi\fi\fi
\ifboxhasstrut
\setstrut
@@ -854,10 +859,22 @@
\let\localendstrut\pseudoendstrut % was: \relax
\let\localstrut \pseudostrut % was: \relax
%\ifboxhasheight\ifdim\!!heighta<\strutht % saveguard
- % \let\localbegstrut\relax % but not that
- % \let\localstrut \relax % save afterall
+ % \let\localbegstrut\relax % but not that
+ % \let\localstrut \relax % save after all
%\fi\fi
\fi
+ \ifx\@@localautostrut\v!yes
+ \let\delayedbegstrut\relax
+ \let\delayedendstrut\relax
+ \let\delayedstrut \relax
+ \else
+ \let\delayedbegstrut\localbegstrut
+ \let\delayedendstrut\localendstrut
+ \let\delayedstrut \localstrut
+ \let\localbegstrut \relax
+ \let\localendstrut \relax
+ \let\localstrut \relax
+ \fi
\ifboxhasheight
\let\\\vboxednewline
\ifboxhaswidth
@@ -1473,99 +1490,6 @@
%D or free widths and heights. Each combination gets its own
%D macro.
-% \def\dopresetformatbox
-% {\forgetall
-% \oninterlineskip}
-
-% \def\doformatboxSomeFormat
-% {\vbox to \!!heighta
-% \bgroup
-% \dopresetformatbox
-% \hsize\!!widtha
-% \vsize\!!heighta
-% \raggedcommand
-% \dobeforeframedbox
-% \bgroup
-% \localbegstrut
-% \aftergroup\localendstrut
-% \aftergroup\doafterframedbox
-% \aftergroup\egroup
-% \let\next=}
-
-% \def\doformatboxNoFormat
-% {\vbox to \!!heighta
-% \bgroup
-% \dopresetformatbox
-% \hsize\!!widtha
-% \vsize\!!heighta
-% \raggedcenter
-% \vss
-% \bgroup
-% \localbegstrut
-% \aftergroup\localendstrut
-% \aftergroup\vss
-% \aftergroup\egroup
-% \let\next=}
-
-% \def\doformatboxHeight
-% {\vbox to \!!heighta
-% \bgroup
-% \dopresetformatbox
-% \raggedcommand
-% \vss
-% \bgroup
-% \aftergroup\localendstrut
-% \aftergroup\vss
-% \aftergroup\egroup
-% \localbegstrut
-% \let\next=}
-
-% \def\doformatboxWidth
-% {\vbox
-% \bgroup
-% \dopresetformatbox
-% \hsize\!!widtha
-% \raggedcommand
-% \dobeforeframedbox
-% \bgroup
-% \localbegstrut
-% \aftergroup\localendstrut
-% \aftergroup\doafterframedbox
-% \aftergroup\egroup
-% \let\next=}
-
-% \def\doformatboxVSize
-% {\vbox to \!!heighta
-% \bgroup
-% \forgetall
-% \vsize\!!heighta
-% \vss
-% \bgroup
-% \aftergroup\vss
-% \aftergroup\egroup
-% \hbox
-% \bgroup
-% \aftergroup\egroup
-% \localstrut
-% \let\next=}
-
-% \def\doformatboxHSize
-% {\hbox to \!!widtha
-% \bgroup
-% \forgetall
-% \hss
-% \localstrut
-% \bgroup
-% \aftergroup\hss
-% \aftergroup\egroup
-% \let\next=}
-
-% \def\doformatboxNoSize
-% {\hbox
-% \bgroup
-% \localstrut
-% \let\next=}
-
\def\doformatboxSomeFormat
{\vbox to \!!heighta
\bgroup
@@ -2675,7 +2599,7 @@
% \insidefloattrue % ? better
\expanded{\switchtobodyfont[\framedtextparameter{#1}\c!bodyfont]}%
\startcolor[\framedtextparameter{#1}\c!color]%
- \localframed[\??kd#1][\c!strut=\v!no,#3]%
+ \localframed[\??kd#1][\c!strut=\v!no,#3]% todo: use delayedstrut
\bgroup
\let\\=\endgraf
\framedtextparameter{#1}\c!inner % oud spul
@@ -3409,6 +3333,7 @@
\c!bottom=\vss,
\c!top=,
\c!strut=\v!yes,
+ \c!autostrut=\v!yes,
\c!location=\v!normal,
\c!orientation=,
\c!setups=]
diff --git a/tex/context/base/core-sec.tex b/tex/context/base/core-sec.tex
index 555c5fcee..69b7f26cc 100644
--- a/tex/context/base/core-sec.tex
+++ b/tex/context/base/core-sec.tex
@@ -67,9 +67,9 @@
2: sfarsit de bloc sectiune --
\stopmessages
-\startmessages english library: structures
+\startmessages french library: structures
title: structure
- 1: début de blocsection --
+ 1: début de blocsection --
2: fin de blocsection --
\stopmessages
diff --git a/tex/context/base/core-sys.tex b/tex/context/base/core-sys.tex
index c65ef64c2..f606b1ad7 100644
--- a/tex/context/base/core-sys.tex
+++ b/tex/context/base/core-sys.tex
@@ -303,6 +303,8 @@
\installexpander\v!yes {\convertmeaning }
\installexpander\v!yes {\convertmeaning } % something lost ?
\installexpander\v!strict {\reduceargument }
+\installexpander {utf} {\reducetoutf}
+%installexpander {xml} {see xtag-ext}
\def\convertmeaning#1\to % watch the double expansion !
{\bgroup
@@ -318,6 +320,16 @@
\reducetocoding[raw]%
\edef\ascii{#1}%
\expandafter\endgroup\expandafter\edef\expandafter#2\expandafter{\ascii}}
+
+% \setupindex[expansion=utf]\index{\eacute}
+
+\def\reducetoutf#1\to#2%
+ {\begingroup
+ \reducetocoding[uc]%
+ \let\uchar\uchartoutf
+ \let\unicodechar\numbertoutf
+ \edef\ascii{#1}%
+ \expandafter\endgroup\expandafter\edef\expandafter#2\expandafter{\ascii}}
% \setvalue{statevalue\v!stop }{0}
% \setvalue{statevalue\v!start }{1}
diff --git a/tex/context/base/core-tbl.tex b/tex/context/base/core-tbl.tex
index c3be264bd..4c2f238da 100644
--- a/tex/context/base/core-tbl.tex
+++ b/tex/context/base/core-tbl.tex
@@ -961,9 +961,9 @@
\globallet\tabulateruleheight\!!zeropoint
\ExpandFirstAfter\processaction % use \setalignmentswitch instead
[\getvalue{\??tt\currenttabulate\c!align}]
- [\v!normal=>\def\@@tabulatealign{0},% = default value
- \v!right=>\def\@@tabulatealign{1},% chardefs gebruiken
- \v!left=>\def\@@tabulatealign{2},%
+ [ \v!normal=>\def\@@tabulatealign{0},% = default value
+ \v!right=>\def\@@tabulatealign{1},% chardefs gebruiken
+ \v!left=>\def\@@tabulatealign{2},%
\v!middle=>\def\@@tabulatealign{3},%
\s!default=>\def\@@tabulatealign{0},%
\s!unknown=>\def\@@tabulatealign{0}]%
diff --git a/tex/context/base/enco-chi.tex b/tex/context/base/enco-chi.tex
index 1aaf5b235..9d77893a0 100644
--- a/tex/context/base/enco-chi.tex
+++ b/tex/context/base/enco-chi.tex
@@ -22,7 +22,7 @@
% untested, probably wrong
-\startencoding[c-uni]
+\startencoding[cjk-uni]
\defineuclass 1 32 24
\defineuclass 1 32 28
diff --git a/tex/context/base/enco-ini.tex b/tex/context/base/enco-ini.tex
index 53cec0d9d..befed9e05 100644
--- a/tex/context/base/enco-ini.tex
+++ b/tex/context/base/enco-ini.tex
@@ -118,7 +118,7 @@
\startmessages french library: encodings
title: encoding
1: encodage --
- 2: l'encodage -- est chargé
+ 2: l'encodage -- est chargé
3: encodage -- inconnu
\stopmessages
@@ -1184,8 +1184,9 @@
\def\definecharacter#1 #2 %
{\ifundefined{#1}\setvalue{#1}{\dohandlecharacter{#1}}\fi
+% \doifnumberelse{\string#2}
\doifnumberelse{\string#2}
- {\setevalue{\characterprefix\characterencoding\string#1}{\dochar{#2}}%
+ {\setvalue{\characterprefix\characterencoding\string#1}{\dochar{#2}}%
\doautosetregime{#1}{#2}}
{\setvalue{\characterprefix\characterencoding\string#1}{#2}}}
@@ -1654,7 +1655,19 @@
%D The next few macros are experimental and needed for unicoded
%D chinese characters.
-\def\defineuclass #1 #2 #3 {\setvalue{uc#2#3}{#1}}
+\beginETEX
+ \def\defineuclass #1 #2 #3 %
+ {\setvalue{uc\the\numexpr#2*256+#3\relax}{#1}}
+\endETEX
+
+\beginTEX
+ \def\defineuclass #1 #2 #3 %
+ {\scratchcounter256\relax
+ \multiply\scratchcounter#2\relax
+ \advance\scratchcounter#3\relax
+ \setvalue{uc\the\scratchcounter}{#1}}
+\endTEX
+
\def\defineudigit #1 #2 #3 {\setvalue{\characterencoding uc#1}{\uchar{#2}{#3}}}
%D It may look strange, but for the moment, we want the encoding
diff --git a/tex/context/base/filt-ini.tex b/tex/context/base/filt-ini.tex
index f9edc73dc..3df7da946 100644
--- a/tex/context/base/filt-ini.tex
+++ b/tex/context/base/filt-ini.tex
@@ -60,7 +60,7 @@
\startmessages french library: filters
title: filter
- 1: le filtre -- est chargé
+ 1: le filtre -- est chargé
2: filtre -- inconnu
\stopmessages
diff --git a/tex/context/base/font-chi.tex b/tex/context/base/font-chi.tex
index 5d3e20f27..cf30470d7 100644
--- a/tex/context/base/font-chi.tex
+++ b/tex/context/base/font-chi.tex
@@ -12,6 +12,8 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\ifx\handlechineseunicodeglyph\undefined \else \endinput \fi
+
% NOT YET ADAPTED TO THE NEW FONT MACROS
%D The first implementation (most of which is here) is based on
@@ -111,6 +113,8 @@
%D There are a few variables, that can be (re|)|set
%D depending on the current font. They default to:
+% hm, why don't we use the normal unicodestrut mechanism?
+
\def\chineseunicodescale {1.00} % not smaller than .85
\def\chineseunicodeheight {1.00}
\def\chineseunicodedepth {1.00}
@@ -164,25 +168,25 @@
\chardef\plusfour=4
\def\analyzechineseunicodeglyph % beware, no zerocount !
- {\chardef\chineseSstatus0\getvalue{uc\the\unicodeposition}\relax}
+ {\chardef\chineseSstatus0\getvalue{uc\number\unicodeposition}\relax}
\def\analyzechineseunicodeenviroment
{% left
- \ifx (\nextglyph \chardef\chineseAstatus\plusone \else
- \ifx [\nextglyph \chardef\chineseAstatus\plusone \else
+ \ifx (\nextutoken \chardef\chineseAstatus\plusone \else
+ \ifx [\nextutoken \chardef\chineseAstatus\plusone \else
% right
- \ifx ,\nextglyph \chardef\chineseAstatus\plustwo \else
- \ifx .\nextglyph \chardef\chineseAstatus\plustwo \else
- \ifx ?\nextglyph \chardef\chineseAstatus\plustwo \else
- \ifx ;\nextglyph \chardef\chineseAstatus\plustwo \else
- \ifx :\nextglyph \chardef\chineseAstatus\plustwo \else
- \ifx !\nextglyph \chardef\chineseAstatus\plustwo \else
- \ifx )\nextglyph \chardef\chineseAstatus\plustwo \else
- \ifx ]\nextglyph \chardef\chineseAstatus\plustwo \else
+ \ifx ,\nextutoken \chardef\chineseAstatus\plustwo \else
+ \ifx .\nextutoken \chardef\chineseAstatus\plustwo \else
+ \ifx ?\nextutoken \chardef\chineseAstatus\plustwo \else
+ \ifx ;\nextutoken \chardef\chineseAstatus\plustwo \else
+ \ifx :\nextutoken \chardef\chineseAstatus\plustwo \else
+ \ifx !\nextutoken \chardef\chineseAstatus\plustwo \else
+ \ifx )\nextutoken \chardef\chineseAstatus\plustwo \else
+ \ifx ]\nextutoken \chardef\chineseAstatus\plustwo \else
% space
- \ifx\nextglyph\blankspace \chardef\chineseAstatus\plusthree \else
- \ifx\nextglyph\space \chardef\chineseAstatus\plusthree \else
- \chardef\chineseAstatus\zerocount
+ \ifx\nextutoken\blankspace \chardef\chineseAstatus\plusthree \else
+ \ifx\nextutoken\space \chardef\chineseAstatus\plusthree \else
+ \chardef\chineseAstatus\zerocount
% unknown
\fi\fi\fi\fi\fi \fi\fi\fi\fi\fi \fi\fi
% maybe save the last skip?
@@ -209,15 +213,15 @@
\def\horizontalchineseunicodeglyph
{\relax
\ifhmode\else\dontleavehmode\fi % added
- \setunicodescale\chineseunicodescale
- \setunicodestrut\chineseunicodeheight\chineseunicodedepth
+ \setunicodescale\chineseunicodescale % redundant
+ \setunicodestrut\chineseunicodeheight\chineseunicodedepth % redundant
\ifprocessingverbatim
\iftracechinese
\ruledhbox{\insertunicodeglyph}%
\else
\insertunicodeglyph
\fi
- \else\ifx\nextglyph\relax
+ \else\ifx\nextutoken\relax
\insertunicodeglyph
\else
\analyzechineseunicodeglyph
@@ -294,9 +298,9 @@
\ifprocessingverbatim % to do
\horizontalchineseunicodeglyph
\else
- \setunicodescale\chineseunicodescale
- \setunicodestrut\chineseunicodeheight\chineseunicodedepth
- \ifx\nextglyph\relax
+ \setunicodescale\chineseunicodescale % redundant
+ \setunicodestrut\chineseunicodeheight\chineseunicodedepth % redundant
+ \ifx\nextutoken\relax
\insertchineseglyph
\ifvmode % catches \hbox{...}, actually \hbox should be \vbox -)
\nointerlineskip
@@ -848,12 +852,14 @@
\setupunicodefont
[chinese]
- [ \c!scale=\chineseunicodescale,
- \c!height=\chineseunicodeheight,
- \c!depth=\chineseunicodedepth,
- \c!conversion=\chinesenumber,
- \c!commands=\setchineseencoding, % needed for digits
- \c!command=\handlechineseunicodeglyph]
+ [ \c!scale=\chineseunicodescale,
+ \c!height=\chineseunicodeheight,
+ \c!depth=\chineseunicodedepth,
+ \c!strut=\v!yes,
+ \c!interlinespace=\v!yes,
+ \c!conversion=\chinesenumber,
+ \c!commands=\setchineseencoding, % needed for digits
+ \c!command=\handlechineseunicodeglyph]
%D For the moment, this encoding is implemented rather ugly. The
%D trick is to move the encoding value from the current font
@@ -902,8 +908,6 @@
\doifelse \currentregime {utf} {
- \useunicodevector[chi]
-
\definefontsynonym [SimplifiedChineseRegular] [ChineseRegular]
\definefontsynonym [SimplifiedChineseSlanted] [ChineseSlanted]
\definefontsynonym [SimplifiedChineseItalic] [ChineseItalic]
@@ -918,12 +922,12 @@
\definefontsynonym [TraditionalChineseBoldSlanted][ChineseBoldSlanted]
\definefontsynonym [TraditionalChineseBoldItalic] [ChineseBoldItalic]
- \definefontsynonym [ChineseRegular] [uni-htsong-][encoding=c-uni]
- \definefontsynonym [ChineseSlanted] [uni-htsong-][encoding=c-uni]
- \definefontsynonym [ChineseItalic] [uni-htsong-][encoding=c-uni]
- \definefontsynonym [ChineseBold] [uni-hthei-] [encoding=c-uni]
- \definefontsynonym [ChineseBoldSlanted][uni-hthei-] [encoding=c-uni]
- \definefontsynonym [ChineseBoldItalic] [uni-hthei-] [encoding=c-uni]
+ \definefontsynonym [ChineseRegular] [uni-htsong-][encoding=cjk-uni]
+ \definefontsynonym [ChineseSlanted] [uni-htsong-][encoding=cjk-uni]
+ \definefontsynonym [ChineseItalic] [uni-htsong-][encoding=cjk-uni]
+ \definefontsynonym [ChineseBold] [uni-hthei-] [encoding=cjk-uni]
+ \definefontsynonym [ChineseBoldSlanted][uni-hthei-] [encoding=cjk-uni]
+ \definefontsynonym [ChineseBoldItalic] [uni-hthei-] [encoding=cjk-uni]
\loadmapfile[uni-htsong.map]
\loadmapfile[uni-htfs.map]
diff --git a/tex/context/base/font-ini.tex b/tex/context/base/font-ini.tex
index 74384e88a..a352564ed 100644
--- a/tex/context/base/font-ini.tex
+++ b/tex/context/base/font-ini.tex
@@ -229,16 +229,16 @@
\startmessages french library: fonts
title: bodyfont
1: encodage --
- 2: la variante -- est chargée
+ 2: la variante -- est chargée
3: variante -- inconnue
- 4: policecorps -- n'est pas définie
- 5: le style -- n'est pas défini
- 6: -- est chargé
+ 4: policecorps -- n'est pas définie
+ 5: le style -- n'est pas défini
+ 6: -- est chargé
7: format -- inconnu
8: style -- defini
% 9: mapping -- is loaded
10: fichier de police -- inconnu
- 14: policecorps -- est défini (une définition globale pourrait être plus adéquat)
+ 14: policecorps -- est défini (une définition globale pourrait être plus adéquat)
\stopmessages
%D This module is one of the oldest modules of \CONTEXT. The
@@ -863,7 +863,7 @@
%D defining it here, we have at least an safeguard for utility
%D file reading.
-\unexpanded\def\uchar#1#2{[#1,#2]}
+\ifx\uchar\undefined \unexpanded\def\uchar#1#2{[#1,#2]} \fi
%D We define some (very private) constants to improve speed,
%D memory usage and consistency.
diff --git a/tex/context/base/font-jap.tex b/tex/context/base/font-jap.tex
index 4c84f1b88..6bb813ccc 100644
--- a/tex/context/base/font-jap.tex
+++ b/tex/context/base/font-jap.tex
@@ -12,6 +12,9 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\ifx\handlejapaneseunicodeglyph\undefined \else \endinput \fi
+\ifx\handlechineseunicodeglyph \undefined \input font-chi.tex \fi
+
\writestatus{loading}{Context Font Macros / Japanese}
\unprotect
@@ -26,44 +29,46 @@
\let\japaneseencoding\currentfontfileencoding
\fi}
-\def\japaneseunicodescale {1.00}
-\def\japaneseunicodeheight {1.00}
-\def\japaneseunicodedepth {1.00}
+\def\japaneseunicodescale {\chineseunicodescale }
+\def\japaneseunicodeheight {\chineseunicodeheight }
+\def\japaneseunicodedepth {\chineseunicodedepth }
+\def\japaneseinterglyphskip{\chineseinterglyphskip}
+\def\japanesesurroundskip {\chinesesurroundskip }
\setupunicodefont
[japanese]
- [ \c!scale=\japaneseunicodescale,
- \c!height=\japaneseunicodeheight,
- \c!depth=\japaneseunicodedepth,
- \c!conversion=\japanesenumber,
- \c!commands=\setjapaneseencoding, % needed for digits
- \c!command=\handlejapaneseunicodeglyph]
+ [ \c!scale=\japaneseunicodescale,
+ \c!height=\japaneseunicodeheight,
+ \c!depth=\japaneseunicodedepth,
+ \c!strut=\v!yes,
+ \c!interlinespace=\v!yes,
+ \c!conversion=\japanesenumber,
+ \c!commands=\setjapaneseencoding, % needed for digits
+ \c!command=\handlejapaneseunicodeglyph]
\def\japanesenumber{\numbers}
\def\handlejapaneseunicodeglyph
- {\relax
- \ifhmode\else\dontleavehmode\fi
- \setunicodescale\japaneseunicodescale
- \setunicodestrut\japaneseunicodeheight\japaneseunicodedepth
- \iftracejapanese
- \ruledhbox{\insertunicodeglyph}%
- \else
- \insertunicodeglyph
- \fi
- \allowbreak
- \ignorespaces}
+ {\begingroup
+% \let\chineseunicodescale \japaneseunicodescale
+% \let\chineseunicodeheight \japaneseunicodeheight
+% \let\chineseunicodedepth \japaneseunicodedepth
+% \let\chineseinterglyphskip\japaneseinterglyphskip
+% \let\chinesesurroundskip \japanesesurroundskip
+ \iftracejapanese\tracechinesetrue\else\tracechinesefalse\fi
+ \handlechineseunicodeglyph
+ \endgroup}
\doifelse \currentregime {utf} {
% todo: typescripts
- \definefontsynonym [JapaneseRegular] [uni-cybercjk-][encoding=j-uni]
- \definefontsynonym [JapaneseSlanted] [uni-cybercjk-][encoding=j-uni]
- \definefontsynonym [JapaneseItalic] [uni-cybercjk-][encoding=j-uni]
- \definefontsynonym [JapaneseBold] [uni-cybercjk-][encoding=j-uni]
- \definefontsynonym [JapaneseBoldSlanted][uni-cybercjk-][encoding=j-uni]
- \definefontsynonym [JapaneseBoldItalic] [uni-cybercjk-][encoding=j-uni]
+ \definefontsynonym [JapaneseRegular] [uni-cybercjk-][encoding=cjk-uni]
+ \definefontsynonym [JapaneseSlanted] [uni-cybercjk-][encoding=cjk-uni]
+ \definefontsynonym [JapaneseItalic] [uni-cybercjk-][encoding=cjk-uni]
+ \definefontsynonym [JapaneseBold] [uni-cybercjk-][encoding=cjk-uni]
+ \definefontsynonym [JapaneseBoldSlanted][uni-cybercjk-][encoding=cjk-uni]
+ \definefontsynonym [JapaneseBoldItalic] [uni-cybercjk-][encoding=cjk-uni]
\loadmapfile[uni-cybercjk.map]
@@ -73,4 +78,6 @@
\writestatus{Japanese}{No fonts defined}
}
+\Japanese
+
\protect \endinput
diff --git a/tex/context/base/font-uni.tex b/tex/context/base/font-uni.tex
index 6a53aa782..a0d393025 100644
--- a/tex/context/base/font-uni.tex
+++ b/tex/context/base/font-uni.tex
@@ -46,7 +46,7 @@
\stopmessages
\startmessages french library: fonts
- 21: l'utilisation de (pdf)eTeX est plus économe (more save)
+ 21: l'utilisation de (pdf)eTeX est plus économe (more save)
\stopmessages
\unprotect
@@ -97,7 +97,7 @@
%D
%D \starttyping
%D \def\handleunicodeglyph
-%D {take actions based on \unicodeone-two-position cq. \nextglyph
+%D {take actions based on \unicodeone-two-position cq. \nextutoken
%D redefine \unicodecharcommand if needed
%D expand \insertunicodeglyph
%D take some final actions}
@@ -105,84 +105,41 @@
\newcount\unicodeposition
-% \def\handleunicodeflowglyph#1#2%
-% {\def\dohandleunicodeflowglyph{\dodohandleunicodeflowglyphA{#1}{#2}}%
-% \futurelet\nextglyph\dohandleunicodeflowglyph}
-%
-% %D The first alternative (A) takes a character as second
-% %D argument and is used in the primary handler introduced
-% %D earlier.
-%
-% \def\dodohandleunicodeflowglyphA#1#2%
-% {\bgroup
-% \def\unicodeone{#1}%
-% \edef\unicodetwo{\number\expandafter`\string#2}% takes also <128 !
-% \unicodeposition=\unicodeone\unicodetwo\relax
-% \handleunicodeglyph
-% \egroup}
-%
-% %D The second alternative (B) takes numbers and is used in
-% %D the \type {\uchar} command. This command takes two
-% %D decimal numbers.
-%
-% \def\dodohandleunicodeflowglyphB#1#2%
-% {\bgroup
-% \def\unicodeone{#1}%
-% \def\unicodetwo{#2}%
-% \unicodeposition=\unicodeone\unicodetwo\relax
-% \handleunicodeglyph
-% \egroup}
-%
-% \unexpanded\def\uchar%
-% {\let\nextglyph\relax
-% \dodohandleunicodeflowglyphB}
-
%D The multistep approach is needed to pick up the second
%D token, since this token can have any value and any
%D catcode.
-%\def\handleunicodeflowglyph#1%
-% {\bgroup
-% \edef\unicodeone{#1}%
-% \@EA\afterassignment\@EA\dohandleunicodeflowglyph
-% \@EA\chardef\@EA\nexttoken\@EA`\string}
-%
-%\def\dohandleunicodeflowglyph
-% {\futurelet\nextglyph\dodohandleunicodeflowglyph}
-%
-%\def\dodohandleunicodeflowglyph%
-% {\edef\unicodetwo{\the\nexttoken}%
-% \unicodeposition\unicodeone\unicodetwo\relax
-% \handleunicodeglyph
-% \egroup}
-
% the \relax trick prevents eating up the space (needed for
% korean
\def\handleunicodeflowglyph#1#2%
- {\bgroup
+ {\begingroup
\edef\unicodeone{#1}%
- \@EA\afterassignment\@EA\dohandleunicodeflowglyph
+ \@EA\afterassignment\@EA\dohandleunicodeflowglyph % two redundant ea's
\@EA\chardef\@EA\nexttoken\@EA`\string#2\relax}
\def\dohandleunicodeflowglyph\relax
- {\futurelet\nextglyph\dodohandleunicodeflowglyph}
+ {\futurelet\nextutoken\dodohandleunicodeflowglyph}
-\def\dodohandleunicodeflowglyph
+\def\dodohandleunicodeflowglyph % todo tex (or maybe no longer)
{\edef\unicodetwo{\the\nexttoken}%
- \unicodeposition\unicodeone\unicodetwo\relax
+ \unicodeposition\numexpr\unicodeone*256+\unicodetwo\relax
\handleunicodeglyph
- \egroup}
+ \endgroup}
\unexpanded\def\uchar#1#2% use as standalone glyph
- {\bgroup
- % wrong: \let\nextglyph\relax % needed for lookahead chinese
+ {\begingroup
\edef\unicodeone{#1}%
\edef\unicodetwo{#2}%
-% \unicodeposition=\unicodeone\unicodetwo\relax
- \unicodeposition\unicodeone\unicodetwo\relax
+ \unicodeposition\numexpr\unicodeone*256+\unicodetwo\relax
\handleunicodeglyph
- \egroup}
+ \endgroup}
+
+\let\nextutoken\relax
+
+\unexpanded\def\lookaheaduchar#1#2%
+ {\def\dolookaheaduchar{\uchar{#1}{#2}\let\nextutoken\relax}%
+ \futurelet\nextutoken\dolookaheaduchar}
%D In \XETEX, unicode support is straightforward, so we
%D simply output a \type {\char} with a 16||bit number.
@@ -198,63 +155,20 @@
\endXETEX
\def\dohandleucflowglyph
-% {\unicodeposition=\unicodeone\unicodetwo\relax
- {\unicodeposition\unicodeone\unicodetwo\relax
+ {\unicodeposition\numexpr\unicodeone*256+\unicodetwo\relax
\handleunicodeglyph
- \egroup}
+ \endgroup}
\unexpanded\def\uc#1#2% used in tricky situations
- {\bgroup
+ {\begingroup
\edef\unicodeone{#1}%
\edef\unicodetwo{#2}%
- \futurelet\nextglyph\dohandleucflowglyph}
-
-% Alternative, handles [char >127]{number} too.
-%
-% \def\handleunicodeflowglyph#1%
-% {\bgroup
-% \edef\unicodeone{#1}%
-% \futurelet\nexttoken\dohandleunicodeflowglyph}
-%
-% \def\dohandleunicodeflowglyph%
-% {\ifx\nexttoken\bgroup
-% \expandafter\dohandleunicodeflowglyphA
-% \else
-% \expandafter\dohandleunicodeflowglyphB
-% \fi}
-%
-% \def\dohandleunicodeflowglyphA#1%
-% {\chardef\nexttoken=#1\relax
-% \dodohandleunicodeflowglyph}
-%
-% \def\dohandleunicodeflowglyphB%
-% {\@EA\afterassignment\@EA\dodohandleunicodeflowglyph
-% \@EA\chardef\@EA\nexttoken\@EA=\@EA`\string}
-%
-% \def\dodohandleunicodeflowglyph%
-% {\futurelet\nextglyph\dododohandleunicodeflowglyph}
-%
-% \def\dododohandleunicodeflowglyph%
-% {\edef\unicodetwo{\the\nexttoken}%
-% \unicodeposition=\unicodeone\unicodetwo\relax
-% \handleunicodeglyph
-% \egroup}
-%
-% Can be used with (the less byte hungry alternative):
-%
-% sub unirecode
-% { my ($a,$b) = @_ ;
-% if ((ord($b)<0x80)&&($b !~ /[a-zA-Z0-9]/))
-% { print "$b" ; ++$recoded ;
-% #return "\\uc\{" . ord($a) . "\}\{". ord($b) . "\}" }
-% return "$a\{". ord($b) . "\}" }
-% else
-% { return "$a$b" } }
+ \futurelet\nextutoken\dohandleucflowglyph}
\def\insertunicodeglyph
{\unicodeglyph\unicodeone\unicodetwo}
-\let\handleunicodeglyph=\insertunicodeglyph
+\let\handleunicodeglyph\insertunicodeglyph
%D One can use the \type {\unicodeposition} in the macros
%D that handle pre and post material.
@@ -307,22 +221,43 @@
\let\unicodecharcommand\firstofoneargument
-% \unexpanded\def\unicodeglyph#1#2% watch the double mapping
-% {\bgroup
-% \bodyfontsize=\unicodescale\bodyfontsize
-% \font\unicodefont=\truefontname{\truefontname\unicodestyle\lchexnumbers{#1}}
-% at \currentfontscale\bodyfontsize
-% \unicodestrut\unicodefont\unicodecharcommand{\char#2\relax}%
-% \egroup}
-
\unexpanded\def\unicodeglyph#1#2% watch the double mapping
- {\bgroup
- \getvalue{@@\currentucharmapping\strippedcsname\uchar}{#1}{#2}%
+ {\begingroup
+ \getvalue{@@\currentucharmapping\strippedcsname\uchar}{#1}{#2}% map to a to hex font range
\bodyfontsize\unicodescale\bodyfontsize
- \font\unicodefont=\truefontname{\truefontname\unicodestyle\unicodeone}
- at \currentfontscale\bodyfontsize
- \unicodestrut\unicodefont\unicodecharcommand{\char\unicodetwo\relax}%
- \egroup}
+ % readable:
+ % \doifelsefontsynonym{\unicodestyle\unicodeone}
+ % {\font\unicodefont=\truefontname{\unicodestyle\unicodeone}
+ % at \currentfontscale\bodyfontsize}
+ % {\font\unicodefont=\truefontname{\truefontname\unicodestyle\unicodeone}
+ % at \currentfontscale\bodyfontsize}%
+ % unreadable but more efficient:
+ \font\unicodefont=\truefontname{\doifelsefontsynonym{\unicodestyle
+ \unicodeone}\empty\truefontname\unicodestyle\unicodeone}
+ at \currentfontscale\bodyfontsize
+ \unicodestrut % off by default
+ \unicodefont\unicodecharcommand{\char\unicodetwo\relax}%
+ \endgroup}
+
+%D This handler is used by default, for instance in:
+%D
+%D \starttyping
+%D \defineunicodefont [MySwitch] [MyFont] % [strut=no,command=\insertunicodeglyph]
+%D
+%D \definefontsynonym [MyFontRegular40] [Sans]
+%D \definefontsynonym [MyFontBold40] [SansBold]
+%D
+%D {\MySwitch \uchar{"40}{`a}}
+%D {\MySwitch \bf \uchar{"40}{`a}}
+%D \stoptyping
+%D
+%D \starttyping
+%D \definefontsynonym [MyFontRegular] [Sans]
+%D \definefontsynonym [MyFontBold] [SansBold]
+%D \stoptyping
+%D
+%D Is also possible, but in that case the number is appended to the raw font
+%D name!
%D \macros
%D {currentucharmapping,defineucharmapping}
@@ -357,15 +292,13 @@
\def\dorepositionunicode
{\dosetdivision\unicodeposition{256}\scratchcounter
- %\DoDiv\unicodeposition by256to\scratchcounter
\advance\scratchcounter \plusone
\edef\unicodeone{\ifnum\scratchcounter<10 0\fi\the\scratchcounter}%
\dosetmodulo\unicodeposition{256}\scratchcounter
- %\DoMod\unicodeposition by256to\scratchcounter
\edef\unicodetwo{\the\scratchcounter}}
%D \macros
-%D {setunicodestrut, setunicodescale, nextglyph,
+%D {setunicodestrut, setunicodescale, nextutoken,
%D handleunicodeglyph, insertunicodeglyph}
%D
%D A careful analysis of the previous macros, learns that the
@@ -405,15 +338,22 @@
\let\unicodestrut\empty
\fi\fi}
+\def\resetunicodestrut
+ {\let\unicodestrut\empty}
+
%D The additional scaling and strut default to:
\setunicodescale{1}
\setunicodestrut{1}{1}
+%D But better is not to have a strut added by default:
+
+\resetunicodestrut
+
%D The actual code for the additional actions as well as
%D specific spacing is handled outside these routines. The
%D character after the two that are under treatment is
-%D available in \type {\nextglyph}.
+%D available in \type {\nextutoken}.
%D \macros
%D {defineunicodefont, setupunicodefont}
@@ -475,7 +415,7 @@
{\setupunicodefont[#1][#3]}
{\copyparameters
[\??uc#1][\??uc#3]
- [\c!height,\c!depth,\c!scale,\c!commands,
+ [\c!height,\c!depth,\c!scale,\c!commands,\c!strut,
\c!interlinespace,\c!command,\c!conversion]}}%
\doifelsenothing{#2}
{\setvalue{#1}{[uc font #1 undefined]}}
@@ -495,7 +435,7 @@
{\doifundefined{\??uc#1\c!command}
{\copyparameters
[\??uc#1][\??uc\s!default]
- [\c!height,\c!depth,\c!scale,\c!commands,
+ [\c!height,\c!depth,\c!scale,\c!commands,\v!strut,
\c!interlinespace,\c!command,\c!conversion]}%
\getparameters[\??uc#1][#2]}
@@ -508,7 +448,11 @@
\def\handleunicodeglyph {\getvalue{\??uc#1\c!command}}%
\doifnot\currentregime{utf}{\enableregime[unicode]}%
% the following \relax's are realy needed
- \doifvalue{\??uc#1\c!interlinespace}\v!yes\setupinterlinespace\relax
+ \doifvalue{\??uc#1\c!interlinespace}\v!yes
+ \setupinterlinespace\relax
+ \doifvalue{\??uc#1\c!strut}\v!yes
+ {\setunicodestrut\unicodeheight\unicodedepth}
+ {\resetunicodestrut}%
\getvalue{\??uc#1\c!commands}\relax}
%D \macros
@@ -533,7 +477,8 @@
[\c!height=1,
\c!depth=1,
\c!scale=1,
- \c!interlinespace=\v!yes,
+ \c!strut=\v!no,
+ \c!interlinespace=\v!no,
\c!command=\insertunicodeglyph,
\c!conversion=\number]
diff --git a/tex/context/base/hand-ini.tex b/tex/context/base/hand-ini.tex
index 1ce0259e3..19f99f7d2 100644
--- a/tex/context/base/hand-ini.tex
+++ b/tex/context/base/hand-ini.tex
@@ -72,7 +72,7 @@
\startmessages french library: handlings
title: handling
1: manipulation -- de police
- 2: la manipulation -- de police est chargée
+ 2: la manipulation -- de police est chargée
3: manipulation -- inconnue de police
\stopmessages
diff --git a/tex/context/base/java-ini.tex b/tex/context/base/java-ini.tex
index 6135c9941..d2821162e 100644
--- a/tex/context/base/java-ini.tex
+++ b/tex/context/base/java-ini.tex
@@ -78,7 +78,7 @@
\startmessages french library: javascript
title: javascript
1: chargement du jeu de script --
- 2: préambule -- inconnu
+ 2: préambule -- inconnu
\stopmessages
diff --git a/tex/context/base/lang-chi.tex b/tex/context/base/lang-chi.tex
index a743c800b..7458268f7 100644
--- a/tex/context/base/lang-chi.tex
+++ b/tex/context/base/lang-chi.tex
@@ -96,7 +96,7 @@
\unexpanded\def\cnencoding{\enableencoding[\chineseencoding]} % ugly and temporary
-\startencoding[c-uni]
+\startencoding[cjk-uni]
\definecommand cnleftsentence {\uchar{32}{20}\uchar{32}{20}}
\definecommand cnrightsentence {\uchar{32}{20}\uchar{32}{20}}
\definecommand cnleftsubsentence {\uchar{32}{20}\uchar{32}{20}}
@@ -263,7 +263,7 @@
% Traditional Chinese characters (only where they differ to the
% simplified ones) for lang-chi.tex and font-chi.tex.
-% \startencoding[c-uni]
+% \startencoding[cjk-uni]
% \defineudigit 10000 132 44
% \defineudigit 100000000 81 4
diff --git a/tex/context/base/lang-ini.tex b/tex/context/base/lang-ini.tex
index f0b200a29..d3295128a 100644
--- a/tex/context/base/lang-ini.tex
+++ b/tex/context/base/lang-ini.tex
@@ -124,16 +124,16 @@
\startmessages french library: linguals
title: language
- 1: les motifs -- pour -- sont chargés (n=--,e=--,m=--)
+ 1: les motifs -- pour -- sont chargés (n=--,e=--,m=--)
2: pas de motifs -- pour -- (n=--,e=--,m=--) (--,--)
- 3: hyphenations -- pour -- chargés (n=--,e=--,m=--)
+ 3: hyphenations -- pour -- chargés (n=--,e=--,m=--)
4: pas d'hyphenations -- pour -- (n=--,e=--,m=--)
- 5: les motifs pour -- ne sont pas chargés
- 6: langue -- non définie
- 7: les options spécifiques de langue [--] introduisent un -- saut
- 8: les options spécifiques de langue [--] sont ajoutés en douceur
+ 5: les motifs pour -- ne sont pas chargés
+ 6: langue -- non définie
+ 7: les options spécifiques de langue [--] introduisent un -- saut
+ 8: les options spécifiques de langue [--] sont ajoutés en douceur
9: la langue -- est active
- 10: motifs -- chargés
+ 10: motifs -- chargés
\stopmessages
%D When loading hyphenation patterns, \TEX\ assign a number to
diff --git a/tex/context/base/lang-jap.tex b/tex/context/base/lang-jap.tex
index 7023bd646..ffb53ea70 100644
--- a/tex/context/base/lang-jap.tex
+++ b/tex/context/base/lang-jap.tex
@@ -59,8 +59,6 @@
%D Why are these languagespecifics ?
-% \startlanguagespecifics[\s!ja]
-
\setuplabeltext [\s!ja] [\v!january=1]
\setuplabeltext [\s!ja] [\v!february=2]
\setuplabeltext [\s!ja] [\v!march=3]
@@ -82,15 +80,13 @@
\setuplabeltext [\s!ja] [\v!friday=\jaencoding\jaencodedfriday ]
\setuplabeltext [\s!ja] [\v!saturday=\jaencoding\jaencodedsaturday ]
-% \stoplanguagespecifics
-
% Hardcoded - \japaneseencoding should be defined similarly to \chineseencoding
-\unexpanded\def\jaencoding{\enableencoding[j-uni]}
+\unexpanded\def\jaencoding{\enableencoding[cjk-uni]}
%D This list is taken from DocBook XSL stylesheets (http://docbook.sourceforge.net/).
-\startencoding[j-uni]
+\startencoding[cjk-uni]
\definecommand jaencodedabstract {\uchar{105}{130}\uchar{137}{129}}
\definecommand jaencodedand {\uchar{48}{1}}
@@ -185,7 +181,7 @@
%D Taken from Chinese (will be investigated yet...)
-\startencoding[j-uni]
+\startencoding[cjk-uni]
\definecommand jaencodedleftsentence {\uchar{32}{20}\uchar{32}{20}}
\definecommand jaencodedrightsentence {\uchar{32}{20}\uchar{32}{20}}
@@ -196,7 +192,7 @@
%D Special thanxx to Eizo Tsuchihashi (eizo@arcbrain.jp) for the following stuff
-\startencoding[j-uni]
+\startencoding[cjk-uni]
\definecommand jaencodedchristiandate {\uchar{137}{127}\uchar{102}{166}}
diff --git a/tex/context/base/m-gnuplot.tex b/tex/context/base/m-gnuplot.tex
index 5345cdb4e..8da9317b6 100644
--- a/tex/context/base/m-gnuplot.tex
+++ b/tex/context/base/m-gnuplot.tex
@@ -95,7 +95,7 @@
{\edef\GNUPLOTnumber{\getvalue{gpg:n:#1}}%
\edef\GNUPLOTfile {\bufferprefix gnuplot-\GNUPLOTnumber}%
\bgroup
- \the\everyGNUplotgraphic
+ \the\everyGNUPLOTgraphic
\immediate\openout\scratchwrite=\GNUPLOTfile.gpd
\immediate\write\scratchwrite{set terminal \@@GNUPLOToutput\space\@@GNUPLOToption}%
\doifnotempty
diff --git a/tex/context/base/m-units.tex b/tex/context/base/m-units.tex
index 8e0883a78..949297686 100644
--- a/tex/context/base/m-units.tex
+++ b/tex/context/base/m-units.tex
@@ -61,7 +61,7 @@
\startmessages french library: units
title: units
- 1: utilisez \string\Degrees\space\string\Celsius\space à la place de \string\Celsius !
+ 1: utilisez \string\Degrees\space\string\Celsius\space à la place de \string\Celsius !
\stopmessages
\unprotect
diff --git a/tex/context/base/math-pln.tex b/tex/context/base/math-pln.tex
index 73c12c973..b8148491f 100644
--- a/tex/context/base/math-pln.tex
+++ b/tex/context/base/math-pln.tex
@@ -1,6 +1,6 @@
%D \module
%D [ file=math-pln,
-%D version=2001.11.16,
+%D version=2001.11.16,
%D title=\CONTEXT\ System Macros,
%D subtitle=Efficient \PLAIN\ \TEX\ loading,
%D author=Hans Hagen,
@@ -8,17 +8,17 @@
%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.
-%D This is a temporary module, some of this code will move to
-%D the other math modules.
+%D This is a temporary module, some of this code will move to
+%D the other math modules.
-\unprotect
+\unprotect
\def\m@th{\mathsurround\z@}
-\newbox\rootbox
+\newbox\rootbox
\def\root#1\of%
{\setbox\rootbox\hbox{$\m@th\scriptscriptstyle{#1}$}%
@@ -27,7 +27,7 @@
\def\r@@t#1#2% will be overloaded
{\setbox\z@\hbox{$\m@th#1\sqrt{#2}$}\dimen@\ht\z@
\advance\dimen@-\dp\z@
- \mkern5mu\raise.6\dimen@\copy\rootbox
+ \mkern5mu\raise.6\dimen@\copy\rootbox
\mkern-10mu\box\z@}
\def\mathhexbox#1#2#3%
@@ -38,13 +38,13 @@
{\leavevmode
\vtop
{\baselineskip\z@skip \lineskip.25ex%
- \ialign{##\crcr#1\crcr}}}
+ \ialign{##\crcr#1\crcr}}}
\def\o@lign
{\lineskiplimit\z@ \oalign}
\def\ooalign % chars over each other
- {\lineskiplimit-\maxdimen
+ {\lineskiplimit-\maxdimen
\oalign}
{\catcode`p=12 \catcode`t=12 \gdef\\#1pt{#1}} \let\getf@ctor=\\
@@ -52,9 +52,9 @@
\def\sh@ft#1% kern by #1 times the current slant
{\dimen@#1%
\kern\expandafter\getf@ctor\the\fontdimen1\font
- \dimen@}
+ \dimen@}
-% \def\copyright % will be overloaded
+% \def\copyright % will be overloaded
% {{\ooalign{\hfil\raise.07ex\hbox{c}\hfil\crcr\Orb}}}
\def\dots
@@ -76,11 +76,11 @@
\cleaders\hbox{$\mkern-2mu\smash-\mkern-2mu$}\hfill
\mkern-7mu\smash-$}
-% must go to math-tex
+% must go to math-tex
-\mathchardef\braceld="37A
+\mathchardef\braceld="37A
\mathchardef\bracerd="37B
-\mathchardef\bracelu="37C
+\mathchardef\bracelu="37C
\mathchardef\braceru="37D
\def\downbracefill
@@ -95,7 +95,7 @@
\def\bye{\par\vfill\supereject\end}
-\let\sp=^
+\let\sp=^
\let\sb=_
\def\,{\mskip\thinmuskip}
\def\>{\mskip\medmuskip}
@@ -110,14 +110,14 @@
% \def\pr@m@s
% {\ifx'\next
-% \let\nxt\pr@@@s
+% \let\nxt\pr@@@s
% \else
% \ifx^\next
% \let\nxt\pr@@@t
% \else
% \let\nxt\egroup
% \fi
-% \fi
+% \fi
% \nxt}
\def\pr@m@s
@@ -130,7 +130,7 @@
\fi\fi}
\def\pr@@@s#1%
- {\prim@s}
+ {\prim@s}
\def\pr@@@t#1#2%
{#2\egroup}
@@ -258,7 +258,7 @@
% \setbox0=\hbox{\tenex B} \p@renwd=\wd0 % width of the big left (
\def\bordermatrix#1%
- {\begingroup
+ {\begingroup
\m@th
\setbox\z@\vbox
{\def\cr{\crcr\noalign{\kern2\p@\global\let\cr\endline}}%
@@ -279,18 +279,30 @@
\vbox{\kern\ht\@ne\box\tw@}%
\endgroup}
-\def\openup{\afterassignment\@penup\dimen@=}
+% \def\openup{\afterassignment\@penup\dimen@=}
+%
+% \def\@penup{\advance\lineskip\dimen@
+% \advance\baselineskip\dimen@
+% \advance\lineskiplimit\dimen@}
-\def\@penup{\advance\lineskip\dimen@
- \advance\baselineskip\dimen@
- \advance\lineskiplimit\dimen@}
+\def\openup
+ {\afterassignment\doopenup\scratchdimen=}
+
+\def\doopenup
+ {\advance\lineskip \scratchdimen
+ \advance\baselineskip \scratchdimen
+ \advance\lineskiplimit\scratchdimen}
+
+% \def\jot{.25\bodyfontsize} % plain tex: 3 pt (todo: better name and configurable)
+
+\def\displayopenupvalue{.25\bodyfontsize}
\def\eqalign#1%
{\null
\,%
\vcenter
- {\openup
- \jot\m@th
+ {\openup\displayopenupvalue % was \openup\jot
+ \m@th
\ialign
{\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil\crcr
#1\crcr}}%
@@ -300,32 +312,32 @@
\def\displ@y
{\global\dt@ptrue
- \openup\jot\m@th
+ \openup\displayopenupvalue % was \openup\jot
\everycr
{\noalign
- {\ifdt@p
- \global\dt@pfalse
+ {\ifdt@p
+ \global\dt@pfalse
\ifdim\prevdepth>-1000\p@
- \vskip-\lineskiplimit
- \vskip\normallineskiplimit
+ \vskip-\lineskiplimit
+ \vskip\normallineskiplimit
\fi
- \else
- \penalty\interdisplaylinepenalty
+ \else
+ \penalty\interdisplaylinepenalty
\fi}}}
\def\@lign % restore inside \displ@y
{\tabskip\z@skip
- \everycr{}}
+ \everycr{}}
\def\displaylines#1%
- {\displ@y
+ {\displ@y
\tabskip\z@skip
\halign
{\hbox to \displaywidth{$\@lign\hfil\displaystyle##\hfil$}\crcr
#1\crcr}}
\def\eqalignno#1%
- {\displ@y
+ {\displ@y
\tabskip\centering
\halign to \displaywidth
{\hfil$\@lign\displaystyle{##}$\tabskip\z@skip
@@ -334,7 +346,7 @@
#1\crcr}}
\def\leqalignno#1%
- {\displ@y
+ {\displ@y
\tabskip\centering
\halign to \displaywidth
{\hfil$\@lign\displaystyle{##}$\tabskip\z@skip
diff --git a/tex/context/base/meta-ini.tex b/tex/context/base/meta-ini.tex
index 16dc96138..6995201cb 100644
--- a/tex/context/base/meta-ini.tex
+++ b/tex/context/base/meta-ini.tex
@@ -57,7 +57,7 @@
\startmessages french library: metapost
title: metapost
- 1: chargement de la bibliothèque metapost --
+ 1: chargement de la bibliothèque metapost --
\stopmessages
%D This module extends the functionality of the support module
diff --git a/tex/context/base/mult-com.tex b/tex/context/base/mult-com.tex
index 05e7c66e5..0582c3472 100644
--- a/tex/context/base/mult-com.tex
+++ b/tex/context/base/mult-com.tex
@@ -2411,6 +2411,14 @@ determineregistercharacteristics: bepaalregisterkenmerken determineregi
definecolumnbreak definecolumnbreak
definecolumnbreak definecolumnbreak
definitsautdecolonne
+ definemathalignment: definieerwiskundeuitlijnen definemathalignment
+ definemathalignment definemathalignment
+ definemathalignment definemathalignment
+ definemathalignment
+ setupmathalignment: stelwiskundeuitlijnenin setupmathalignment
+ setupmathalignment setupmathalignment
+ setupmathalignment setupmathalignment
+ setupmathalignment
\stopcommands
diff --git a/tex/context/base/mult-con.tex b/tex/context/base/mult-con.tex
index 518b36aca..cf3da58b2 100644
--- a/tex/context/base/mult-con.tex
+++ b/tex/context/base/mult-con.tex
@@ -499,6 +499,18 @@ subsubsubsubsubsubject: subsubsubsubsubonderwerp subsubsubsubsub
aufzaehlung vycet
elenco enumerare
lister
+ mathalignment: wiskundeuitlijnen mathalignment
+ mathalignment mathalignment
+ mathalignment mathalignment
+ mathalignment
+ mathcases: mathcases mathcases
+ mathcases mathcases
+ mathcases mathcases
+ mathcases
+ mathmatrix: wiskundematrix mathmatrix
+ mathmatrix mathmatrix
+ mathmatrix mathmatrix
+ mathmatrix
\stopvariables
@@ -1945,6 +1957,10 @@ subsubsubsubsubsubject: subsubsubsubsubonderwerp subsubsubsubsub
textdistance textdistance
distanzatesto textdistance
distancetexte
+ numberdistance: nummerafstand numberdistance
+ numberdistance numberdistance
+ numberdistance numberdistance
+ numberdistance
textmargin: tekstmarge textmargin
textmargin textmargin
textmargin textmargin
@@ -3185,6 +3201,7 @@ subsubsubsubsubsubject: subsubsubsubsubonderwerp subsubsubsubsub
vfil: vfil
hfil: hfil
strut: strut
+ autostrut: autostrut
reset: reset
set: set
escape: escape
@@ -3814,8 +3831,6 @@ subsubsubsubsubsubject: subsubsubsubsubonderwerp subsubsubsubsub
\stopvariables
-%D \stopcompressdefinitions
-
\stoplogginginterface
\endinput
diff --git a/tex/context/base/mult-sys.tex b/tex/context/base/mult-sys.tex
index 7db143f97..2e02bbf07 100644
--- a/tex/context/base/mult-sys.tex
+++ b/tex/context/base/mult-sys.tex
@@ -410,6 +410,7 @@
\definesystemvariable {by} % Per
\definesystemvariable {cb} % CollectBox
\definesystemvariable {cc} % Comment
+\definesystemvariable {ce} % CasEs
\definesystemvariable {ci} % CItaat
\definesystemvariable {cl} % kleur (CoLor setup)
\definesystemvariable {cn} % CollumN
@@ -433,6 +434,7 @@
\definesystemvariable {ec} % EnCoding
\definesystemvariable {en} % ENvironments
\definesystemvariable {ep} % ExternfiguurPreset
+\definesystemvariable {eq} % EQalign
\definesystemvariable {er} % external resources
\definesystemvariable {ex} % ExterneFiguren
\definesystemvariable {ht} % HiddenText
@@ -496,6 +498,7 @@
\definesystemvariable {mt} % inline MaTh
\definesystemvariable {mo} % Math Options
\definesystemvariable {nm} % Nummering
+\definesystemvariable {mx} % MatriX
\definesystemvariable {np} % NaastPlaatsen
\definesystemvariable {nr} % Nummeren
\definesystemvariable {of} % OFfset
@@ -830,8 +833,8 @@
\startmessages french library: check
title: check
- 1: missing or ungrouped '=' manquant ou dégroupé après '--' à la ligne --
- 2: -- argument(s) attendu(s) à la ligne --
+ 1: missing or ungrouped '=' manquant ou dégroupé après '--' à la ligne --
+ 2: -- argument(s) attendu(s) à la ligne --
3: -- -- remplace une macro, utilisez des MAJUSCULES !
\stopmessages
diff --git a/tex/context/base/page-bck.tex b/tex/context/base/page-bck.tex
index d69281d63..22596001d 100644
--- a/tex/context/base/page-bck.tex
+++ b/tex/context/base/page-bck.tex
@@ -44,7 +44,7 @@
\stopmessages
\startmessages french library: layouts
- 8: calcul des arrières-plans
+ 8: calcul des arrières-plans
\stopmessages
%D \macros
diff --git a/tex/context/base/page-flt.tex b/tex/context/base/page-flt.tex
index 3ceabc2e2..a19c326a3 100644
--- a/tex/context/base/page-flt.tex
+++ b/tex/context/base/page-flt.tex
@@ -162,18 +162,18 @@
\startmessages french library: floatblocks
title: floatblocks
- 1: -- renuméroté / -- => --
- 2: -- sauvegardé
- 3: -- déplacé
- 4: -- placé
- 5: ordre adapté
- 6: n flottants de haut de page limité à --
- 7: n flottants de bas de page limité à --
+ 1: -- renuméroté / -- => --
+ 2: -- sauvegardé
+ 3: -- déplacé
+ 4: -- placé
+ 5: ordre adapté
+ 6: n flottants de haut de page limité à --
+ 7: n flottants de bas de page limité à --
8: moins de -- lignes
- 9: ordre perturbé
- 10: -- limité
- 11: pas de bloc donné
- 12: indéfini
+ 9: ordre perturbé
+ 10: -- limité
+ 11: pas de bloc donné
+ 12: indéfini
\stopmessages
\def\setupfloats
diff --git a/tex/context/base/page-ini.tex b/tex/context/base/page-ini.tex
index 09c5368e7..55442fd5e 100644
--- a/tex/context/base/page-ini.tex
+++ b/tex/context/base/page-ini.tex
@@ -245,31 +245,31 @@
\startmessages french library: systems
title: system
- 1: chargement de fichier utilitaire reporté (typemode)
- 2: -- chargé
+ 1: chargement de fichier utilitaire reporté (typemode)
+ 2: -- chargé
% 3: try LaTeX
- 4: la commande -- est déjà définie
- 5: module -- chargé
- 6: module -- non trouvé
- 7: module -- déjà chargé
- 8: nouvelle version de fichier utilitaire, seconde passe nécessaire
- 9: -- non trouvé/traité
+ 4: la commande -- est déjà définie
+ 5: module -- chargé
+ 6: module -- non trouvé
+ 7: module -- déjà chargé
+ 8: nouvelle version de fichier utilitaire, seconde passe nécessaire
+ 9: -- non trouvé/traité
10: n'utilisez pas em dans --
11: construction util simple
- 12: le fichier utilitaire n'est pas trié, utilise texutil
+ 12: le fichier utilitaire n'est pas trié, utilise texutil
13: marquage -- defini --
- 14: nouvellepage forcée dans la liste à --
+ 14: nouvellepage forcée dans la liste à --
15: sauvegarde du tampon (buffer) --
16: composition du tampon (buffer) --
17: composition textuelle du tampon (buffer) --
18: le synonyme -- -- n'existe pas
- 19: signification (synonymes) de -- chargée
- 20: signification (tris) de -- chargée
- 21: pas de données utilitaires chargées
+ 19: signification (synonymes) de -- chargée
+ 20: signification (tris) de -- chargée
+ 21: pas de données utilitaires chargées
22: utilise un fichier utilitaire valide
- 23: -- arrangé à --
+ 23: -- arrangé à --
24: blocsflottants
- 25: Réferences
+ 25: Réferences
26: Registres
27: Version
\stopmessages
@@ -374,12 +374,12 @@
\startmessages french library: layouts
title: layout
- 1: hauteurtexte adaptée avec -- à la page --
+ 1: hauteurtexte adaptée avec -- à la page --
2: -- times postponed text placed
3: -- times text postponed
4: blocsmarge actifs
5: blocsmarge inactifs
- 6: jeu de souspage -- traité (taille --)
+ 6: jeu de souspage -- traité (taille --)
% 7: calculating logospace
% 8: calculating backgrounds
10: -- and -- don't add up to 1.0
@@ -611,17 +611,17 @@
title: columns
1: seules -- colonnes possibles
2: utilisez \string\filbreak\space en tant qu'alternative
- 3: problèmes, désactive l'équilibrage
- 4: flottant en partie supérieure pas encore supporté
- 5: flottant en partie inférieure pas encore supporté
- 6: -- flottant(s) reporté(s)postponed
- 7: équilibrage abandonné après 100 pas
- 8: équilibré en -- pas
- 9: vérification des irrégularités
+ 3: problèmes, désactive l'équilibrage
+ 4: flottant en partie supérieure pas encore supporté
+ 5: flottant en partie inférieure pas encore supporté
+ 6: -- flottant(s) reporté(s)postponed
+ 7: équilibrage abandonné après 100 pas
+ 8: équilibré en -- pas
+ 9: vérification des irrégularités
10: (moins de) 1 ligne restante
- 11: flottant mis à la largeur de la colonne
- 12: flottant déplacé à la colonne suivante / --
- 13: flottant large déplacé dans la partie supérieure de la colonne
+ 11: flottant mis à la largeur de la colonne
+ 12: flottant déplacé à la colonne suivante / --
+ 13: flottant large déplacé dans la partie supérieure de la colonne
\stopmessages
\ifx\dosetuplayout\undefined % overloaded in page-lay !
@@ -1557,8 +1557,7 @@
% was: \resetsectionmarks\firstsection, zie \handlepagebreak
-\def\page {\pagebreak} % the short form of \pagebreak (mult-com one)
-\def\page{\pagebreak} % for the moment, keep this one
+\def\page{\pagebreak} % the short form of \pagebreak (mult-com one)
\def\resetpagebreak
{\global\paginageblokkeerdfalse}
@@ -1586,7 +1585,7 @@
% {\flushnotes % see head's; watch how we group
% \doifsomething{#1}{\bgroup\executepagebreakhandlers{#1}\egroup}}
-\def\pagebreak
+\unexpanded\def\pagebreak
{\dosingleempty\dopagebreak}
\def\dopagebreak[#1]% so, page ornaments are reset after a pagebreak command, unless set
diff --git a/tex/context/base/regi-uni.tex b/tex/context/base/regi-uni.tex
index 4d694383a..c4d9521e9 100644
--- a/tex/context/base/regi-uni.tex
+++ b/tex/context/base/regi-uni.tex
@@ -12,7 +12,8 @@
%C details.
%D This module activates all characters in the upper range
-%D and sets them to the basic unicodehandler.
+%D and sets them to the basic unicodehandler. Beware, this is
+%D a special purpose handler (esp for chinese encodings).
\startregime[unicode]
diff --git a/tex/context/base/regi-utf.tex b/tex/context/base/regi-utf.tex
index b529406e1..96f1a4061 100644
--- a/tex/context/base/regi-utf.tex
+++ b/tex/context/base/regi-utf.tex
@@ -23,6 +23,8 @@
\unprotect
+% beware, this may change: \utftwouniglyph rawchar
+
\startregime[utf]
\dostepwiserecurse{192}{223}{1}
diff --git a/tex/context/base/s-chi-00.tex b/tex/context/base/s-chi-00.tex
index 956f362b7..add0b333b 100644
--- a/tex/context/base/s-chi-00.tex
+++ b/tex/context/base/s-chi-00.tex
@@ -1,5 +1,5 @@
%D \module
-%D [ file=s-chi-00,
+%D [ file=s-chi-00,
%D version=1999.12.21,
%D title=\CONTEXT\ Style File,
%D subtitle=Basic Chinese Style,
@@ -12,9 +12,9 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\mainlanguage[cn]
+\input font-chi.tex % faster than \setupbodyfont[chi]
-\setupbodyfont[chi] % loads font-chi
+\mainlanguage [cn]
\unprotect
diff --git a/tex/context/base/s-jap-00.tex b/tex/context/base/s-jap-00.tex
new file mode 100644
index 000000000..28cb6c241
--- /dev/null
+++ b/tex/context/base/s-jap-00.tex
@@ -0,0 +1,23 @@
+%D \module
+%D [ file=s-jap-00,
+%D version=2006.01.19,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Basic Japanese Style,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D suggestions=Richard Gabriel,
+%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.
+
+\input font-jap.tex % faster than \setupbodyfont[jap]
+
+\mainlanguage [ja]
+
+\unprotect
+
+\setuptyping[\c!tab=\v!no]
+
+\protect \endinput
diff --git a/tex/context/base/spec-ini.tex b/tex/context/base/spec-ini.tex
index 281cbe0b5..4a7299266 100644
--- a/tex/context/base/spec-ini.tex
+++ b/tex/context/base/spec-ini.tex
@@ -114,11 +114,11 @@
\startmessages french library: specials
title: specials
- 1: -- chargé
+ 1: -- chargé
2: pas d'imbracations plus profondes ne sont permises --
- 3: -- est remis à zéro
+ 3: -- est remis à zéro
4: la commande -- n'existe pas
- 5: chargement du fichier de définition --
+ 5: chargement du fichier de définition --
6: l'imbrication n'est pas permise
7: pilote -- inconnu
\stopmessages
@@ -152,7 +152,7 @@
\stopmessages
\startmessages french library: interactions
- 21: -- code inseré
+ 21: -- code inseré
\stopmessages
%D \TEX\ produces files in the \DVI\ format. This format is
diff --git a/tex/context/base/supp-fil.tex b/tex/context/base/supp-fil.tex
index b89ba295c..63e2f3730 100644
--- a/tex/context/base/supp-fil.tex
+++ b/tex/context/base/supp-fil.tex
@@ -617,11 +617,17 @@
\catcode`\\=\@@escape
\catcode`\{=\@@begingroup
\catcode`\}=\@@endgroup
- \catcode`\%=\@@comment}
+ \catcode`\%=\@@comment
+ \pushendofline
+ \restoreendofline}
\def\stopreadingfile
- {\getvalue{\string\readingfilelevel::\readingfilelevel}%
+ {\popendofline
+ \getvalue{\string\readingfilelevel::\readingfilelevel}%
\doglobal\decrement\readingfilelevel}
+
+\let\normalstartreadingfile\startreadingfile
+\let\normalstopreadingfile \stopreadingfile
%D \macros
%D {splitfilename}
diff --git a/tex/context/base/supp-fun.tex b/tex/context/base/supp-fun.tex
index 89c5f7ea8..812323826 100644
--- a/tex/context/base/supp-fun.tex
+++ b/tex/context/base/supp-fun.tex
@@ -135,7 +135,7 @@
{\convertargument #7\to\asciia
\convertcommand \DroppedString\to\asciib
\ExpandBothAfter\doifinstringelse\asciia\asciib
- {\noindenting
+ {\noindentation
\dontleavehmode
%\ifhmode\hskip-\parindent\fi % sensitive for context mechanism
\keeplinestogether{#6}%
diff --git a/tex/context/base/supp-mat.tex b/tex/context/base/supp-mat.tex
index 54ff34f01..d35dc52d3 100644
--- a/tex/context/base/supp-mat.tex
+++ b/tex/context/base/supp-mat.tex
@@ -45,9 +45,9 @@
%D
%D Which is implemented as:
-\def\mathematics#1{\relax\ifmmode#1\else$#1$\fi} % lookahead bug reported by brooks
-\def\displaymath#1{\relax\ifmmode#1\else$$#1$$\fi}
-\def\inlinemath #1{\relax\ifmmode#1\else$#1$\fi}
+\long\def\mathematics#1{\relax\ifmmode#1\else $#1$\fi} % lookahead bug reported by brooks
+\long\def\displaymath#1{\relax\ifmmode#1\else$$#1$$\fi}
+\long\def\inlinemath #1{\relax\ifmmode#1\else $#1$\fi}
\def\startmathmode
{\ifmmode
@@ -62,6 +62,15 @@
\let\math\mathematics
%D \macros
+%D {displaymathematics,inlinemathematics,automathematics}
+%D
+%D An example of usage of the following can be found in the MathML module:
+
+\long\def\displaymathematics#1{\relax\ifmmode#1\else\dostartformula{}#1\dostopformula\fi}
+ \let\inlinemathematics \mathematics
+ \def\automathematics {\relax\ifhmode\@EA\inlinemathematics\else\@EA\displaymathematics\fi}
+
+%D \macros
%D {dimension, nodimension}
%D
%D The next few macros are used for typesetting dimensions in
diff --git a/tex/context/base/syst-ext.tex b/tex/context/base/syst-ext.tex
index f7fef569b..16f55bca4 100644
--- a/tex/context/base/syst-ext.tex
+++ b/tex/context/base/syst-ext.tex
@@ -1144,6 +1144,20 @@
\def\convertvalue#1\to
{\expandafter\convertcommand\csname#1\endcsname\to}
+%D \macros
+%D {convertasciiafter}
+%D
+%D Sometimes we need to convert an argument to a string (letters
+%D only), for instance when we compare it with another string:
+%D
+%D \starttyping
+%D \convertasciiafter\doifinstringelse{em}{\ascii}{...}
+%D \stoptyping
+
+\def\convertasciiafter#1#2%
+ {\convertargument#2\to\asciiafter
+ \@EA#1\@EA{\asciiafter}}
+
%D In \ETEX\ we can use \type {\detokenize} and gain some
%D speed, but in general far less that 1\% for \type
%D {\convertargument} and nil for \type {\convertcommand}.
diff --git a/tex/context/base/syst-gen.tex b/tex/context/base/syst-gen.tex
index 12efab2cb..fd78b2520 100644
--- a/tex/context/base/syst-gen.tex
+++ b/tex/context/base/syst-gen.tex
@@ -2244,7 +2244,7 @@
{\let\expandedaction\noexpandedaction}
%D \macros
-%D {getfirstcharacter,firstcharacter, doiffirstcharacter}
+%D {getfirstcharacter, firstcharacter, remainingcharacters, doiffirstcharacter}
%D
%D Sometimes the action to be undertaken depends on the
%D next character. This macro get this character and puts it in
@@ -2258,12 +2258,13 @@
%D complicated arguments, for instance arguments that
%D consist of two or more expandable tokens.
-\def\dogetfirstcharacter#1#2\\%
- {\def\firstcharacter{#1}}
+\def\dogetfirstcharacter#1#2\relax
+ {\def\firstcharacter{#1}%
+ \def\remainingcharacters{#2}}
\def\getfirstcharacter#1%
{\edef\!!stringa{#1}%
- \expandafter\dogetfirstcharacter\!!stringa\\}
+ \expandafter\dogetfirstcharacter\!!stringa\relax}
\def\doiffirstcharelse#1#2% char string
% kort (maar onleesbaar)
@@ -4386,11 +4387,16 @@
\chardef\statuswidth=15
\chardef\statuswrite=16
-\def\writestring
- {\immediate\write\statuswrite}
+\newtoks\everywritestring
+
+\def\writestring#1%
+ {\begingroup
+ \the\everywritestring
+ \immediate\write\statuswrite{#1}%
+ \endgroup}
\def\writeline
- {\writestring{}}
+ {\immediate\write\statuswrite{}}
%D First we present the normal \TEX\ variant, later we will
%D show the \ETEX-way.
@@ -4419,7 +4425,6 @@
\space\space\space\space\space\space\space
\space\space\space\space\space\space\space
\space\space\space\space\space\space\end
- %\expanded{\writestring{\the\scratchtoks\space:\space#2}}%
\@EA\writestring\@EA{\the\scratchtoks\space:\space#2}%
\endgroup}
diff --git a/tex/context/base/syst-pln.tex b/tex/context/base/syst-pln.tex
index e60a73644..4259eb04e 100644
--- a/tex/context/base/syst-pln.tex
+++ b/tex/context/base/syst-pln.tex
@@ -374,21 +374,15 @@
%D Extra dimension parameters.
-\newskip \bigskipamount
-\newdimen \jot
-\newskip \medskipamount
-\newskip \normalbaselineskip
-\newskip \normallineskip
-\newdimen \normallineskiplimit
-\newskip \smallskipamount
-
-\bigskipamount = 12pt plus 4pt minus 4pt
-\jot = 3pt
-\medskipamount = 6pt plus 2pt minus 2pt
-\normalbaselineskip = 12pt
-\normallineskip = 1pt
-\normallineskiplimit = 0pt
-\smallskipamount = 3pt plus 1pt minus 1pt
+\newskip \bigskipamount \bigskipamount = 12pt plus 4pt minus 4pt
+\newskip \medskipamount \medskipamount = 6pt plus 2pt minus 2pt
+\newskip \smallskipamount \smallskipamount = 3pt plus 1pt minus 1pt
+
+\newskip \normalbaselineskip \normalbaselineskip = 12pt
+\newskip \normallineskip \normallineskip = 1pt
+\newdimen \normallineskiplimit \normallineskiplimit = 0pt
+
+\newdimen \jot \jot = 3pt
%D The following shortcuts are rather standard:
@@ -595,7 +589,7 @@
{\advance\leftskip \parindent
\advance\rightskip\parindent}
-%D Useful, used too, but sometimes dangerous:
+%D Useful, used too, but sometimes dangerous:
\def\leavevmode{\unhbox\voidb@x}
diff --git a/tex/context/base/type-enc.tex b/tex/context/base/type-enc.tex
index 33553e3b9..fce1ed7ab 100644
--- a/tex/context/base/type-enc.tex
+++ b/tex/context/base/type-enc.tex
@@ -859,17 +859,50 @@
% maybe this will change in Iwona-Math-Letters and Iwona-Math-Letters-Italic
-\starttypescript [sans] [iwona,iwona-light,iwona-medium] [texnansi,ec,qx,t5]
- \definefontsynonym[Iwona-Light] [\typescriptthree-iwonal] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-Regular] [\typescriptthree-iwonar] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-Medium] [\typescriptthree-iwonam] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-Bold] [\typescriptthree-iwonab] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-Heavy] [\typescriptthree-iwonah] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-LightItalic] [\typescriptthree-iwonali] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-RegularItalic] [\typescriptthree-iwonari] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-MediumItalic] [\typescriptthree-iwonami] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-BoldItalic] [\typescriptthree-iwonabi] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-HeavyItalic] [\typescriptthree-iwonahi] [encoding=\typescriptthree]
+\starttypescript [sans] [iwona-light,iwona,iwona-medium,iwona-heavy,iwona-light-cond,iwona-cond,iwona-medium-cond,iwona-heavy-cond] [texnansi,ec,el,qx,t5]
+ \definefontsynonym[Iwona-Light] [\typescriptthree-iwonal] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-Regular] [\typescriptthree-iwonar] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-Medium] [\typescriptthree-iwonam] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-Bold] [\typescriptthree-iwonab] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-Heavy] [\typescriptthree-iwonah] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-LightItalic] [\typescriptthree-iwonali] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-RegularItalic] [\typescriptthree-iwonari] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-MediumItalic] [\typescriptthree-iwonami] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-BoldItalic] [\typescriptthree-iwonabi] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-HeavyItalic] [\typescriptthree-iwonahi] [encoding=\typescriptthree]
+
+ \definefontsynonym[Iwona-CapsLight] [\typescriptthree-iwonalcap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CapsRegular] [\typescriptthree-iwonarcap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CapsMedium] [\typescriptthree-iwonamcap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CapsBold] [\typescriptthree-iwonabcap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CapsHeavy] [\typescriptthree-iwonahcap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CapsLightItalic] [\typescriptthree-iwonalicap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CapsRegularItalic] [\typescriptthree-iwonaricap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CapsMediumItalic] [\typescriptthree-iwonamicap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CapsBoldItalic] [\typescriptthree-iwonabicap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CapsHeavyItalic] [\typescriptthree-iwonahicap] [encoding=\typescriptthree]
+
+ \definefontsynonym[Iwona-CondLight] [\typescriptthree-iwonacl] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CondRegular] [\typescriptthree-iwonacr] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CondMedium] [\typescriptthree-iwonacm] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CondBold] [\typescriptthree-iwonacb] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CondHeavy] [\typescriptthree-iwonach] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CondLightItalic] [\typescriptthree-iwonacli] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CondRegularItalic] [\typescriptthree-iwonacri] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CondMediumItalic] [\typescriptthree-iwonacmi] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CondBoldItalic] [\typescriptthree-iwonacbi] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CondHeavyItalic] [\typescriptthree-iwonachi] [encoding=\typescriptthree]
+
+ \definefontsynonym[Iwona-CondCapsLight] [\typescriptthree-iwonaclcap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CondCapsRegular] [\typescriptthree-iwonacrcap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CondCapsMedium] [\typescriptthree-iwonacmcap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CondCapsBold] [\typescriptthree-iwonacbcap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CondCapsHeavy] [\typescriptthree-iwonachcap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CondCapsLightItalic] [\typescriptthree-iwonaclicap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CondCapsRegularItalic] [\typescriptthree-iwonacricap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CondCapsMediumItalic] [\typescriptthree-iwonacmicap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CondCapsBoldItalic] [\typescriptthree-iwonacbicap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CondCapsHeavyItalic] [\typescriptthree-iwonachicap] [encoding=\typescriptthree]
\stoptypescript
\starttypescript [math] [iwona] [default]
diff --git a/tex/context/base/type-pre.tex b/tex/context/base/type-pre.tex
index dd7feb443..ad2109a65 100644
--- a/tex/context/base/type-pre.tex
+++ b/tex/context/base/type-pre.tex
@@ -244,6 +244,7 @@
\starttypescriptcollection[special scripts]
\starttypescript[chi] \readfile{\f!fontprefix chi}\donothing\donothing \stoptypescript
+ \starttypescript[jap] \readfile{\f!fontprefix jap}\donothing\donothing \stoptypescript
\starttypescript[arb] \readfile{\f!fontprefix arb}\donothing\donothing \stoptypescript
\starttypescript[heb] \readfile{\f!fontprefix heb}\donothing\donothing \stoptypescript
diff --git a/tex/context/base/type-syn.tex b/tex/context/base/type-syn.tex
index 549e560fb..e5967d2f0 100644
--- a/tex/context/base/type-syn.tex
+++ b/tex/context/base/type-syn.tex
@@ -452,26 +452,122 @@
\starttypescript [sans] [iwona-light] [name]
\setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-Light] [encoding=\typescriptthree]
- \definefontsynonym [SansItalic] [Iwona-LightItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBold] [Iwona-Medium] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalic] [Iwona-MediumItalic] [encoding=\typescriptthree]
+ \definefontsynonym [Sans] [Iwona-Light] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalic] [Iwona-LightItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBold] [Iwona-Medium] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalic] [Iwona-MediumItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansCaps] [Iwona-CapsLight] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalicCaps] [Iwona-CapsLightItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldCaps] [Iwona-CapsMedium] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsMediumItalic] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [sans] [iwona-light-caps] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CapsLight] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalic] [Iwona-CapsLightItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBold] [Iwona-CapsMedium] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalic] [Iwona-CapsMediumItalic] [encoding=\typescriptthree]
\stoptypescript
\starttypescript [sans] [iwona] [name]
\setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-Regular] [encoding=\typescriptthree]
- \definefontsynonym [SansItalic] [Iwona-RegularItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBold] [Iwona-Bold] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalic] [Iwona-BoldItalic] [encoding=\typescriptthree]
+ \definefontsynonym [Sans] [Iwona-Regular] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalic] [Iwona-RegularItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBold] [Iwona-Bold] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalic] [Iwona-BoldItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansCaps] [Iwona-CapsRegular] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalicCaps] [Iwona-CapsRegularItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldCaps] [Iwona-CapsBold] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsBoldItalic] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [sans] [iwona-caps] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CapsRegular] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalic] [Iwona-CapsRegularItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBold] [Iwona-CapsBold] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalic] [Iwona-CapsBoldItalic] [encoding=\typescriptthree]
\stoptypescript
\starttypescript [sans] [iwona-medium] [name]
\setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-Medium] [encoding=\typescriptthree]
- \definefontsynonym [SansItalic] [Iwona-MediumItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBold] [Iwona-Heavy] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalic] [Iwona-HeavyItalic] [encoding=\typescriptthree]
+ \definefontsynonym [Sans] [Iwona-Medium] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalic] [Iwona-MediumItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBold] [Iwona-Heavy] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalic] [Iwona-HeavyItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansCaps] [Iwona-CapsHeavy] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalicCaps] [Iwona-CapsMediumItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavyItalic] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [sans] [iwona-medium-caps] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CapsHeavy] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalic] [Iwona-CapsMediumItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBold] [Iwona-CapsHeavy] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalic] [Iwona-CapsHeavyItalic] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [sans] [iwona-light-cond] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CondLight] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalic] [Iwona-CondLightItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBold] [Iwona-CondMedium] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalic] [Iwona-CondMediumItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansCaps] [Iwona-CondCapsLight] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalicCaps] [Iwona-CondCapsLightItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldCaps] [Iwona-CondCapsMedium] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CondCapsMediumItalic] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [sans] [iwona-light-cond-caps] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CondCapsLight] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalic] [Iwona-CondCapsLightItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBold] [Iwona-CondCapsMedium] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalic] [Iwona-CondCapsMediumItalic] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [sans] [iwona-cond] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CondRegular] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalic] [Iwona-CondRegularItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBold] [Iwona-CondBold] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalic] [Iwona-CondBoldItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansCaps] [Iwona-CondCapsRegular] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalicCaps] [Iwona-CondCapsRegularItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldCaps] [Iwona-CondCapsBold] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CondCapsBoldItalic] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [sans] [iwona-cond-caps] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CondCapsRegular] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalic] [Iwona-CondCapsRegularItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBold] [Iwona-CondCapsBold] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalic] [Iwona-CondCapsBoldItalic] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [sans] [iwona-medium-cond] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CondMedium] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalic] [Iwona-CondMediumItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBold] [Iwona-CondHeavy] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalic] [Iwona-CondHeavyItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansCaps] [Iwona-CondCapsHeavy] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalicCaps] [Iwona-CondCapsMediumItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldCaps] [Iwona-CondCapsHeavy] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CondCapsHeavyItalic] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [sans] [iwona-medium-cond-caps] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CondCapsHeavy] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalic] [Iwona-CondCapsMediumItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBold] [Iwona-CondCapsHeavy] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalic] [Iwona-CondCapsHeavyItalic] [encoding=\typescriptthree]
\stoptypescript
\starttypescript [math] [iwona-light] [name]
diff --git a/tex/context/base/unic-chi.tex b/tex/context/base/unic-chi.tex
deleted file mode 100644
index b8e498690..000000000
--- a/tex/context/base/unic-chi.tex
+++ /dev/null
@@ -1,26 +0,0 @@
-%D \module
-%D [ file=unic-chi,
-%D version=2005.12.14,
-%D title=\CONTEXT\ \UNICODE\ Macros,
-%D subtitle=Chinese Vectors,
-%D author=Hans Hagen,
-%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.
-
-% \def\chineseglyph#1#2#3% #1=hex (we know the font anyway), #2=dec, #3=chr
-% {\uchar{#2}{#3}}
-%
-% \dostepwiserecurse{78}{159}{1} % 4E-9F
-% {\expanded{\defineunicodecommand \recurselevel\space {\noexpand\chineseglyph{\lchexnumbers{\recurselevel}}}}}
-
-% \dostepwiserecurse{78}{159}{1}{\defineunicodecommand #1 {\uchar}} % 4E-9F
-
-% temp: we need proper ranges
-
-\dostepwiserecurse{40}{159}{1}{\defineunicodecommand #1 {\uchar}}
-
-\endinput
diff --git a/tex/context/base/unic-cjk.tex b/tex/context/base/unic-cjk.tex
new file mode 100644
index 000000000..2835e6cf1
--- /dev/null
+++ b/tex/context/base/unic-cjk.tex
@@ -0,0 +1,16 @@
+%D \module
+%D [ file=unic-cjk,
+%D version=2005.12.14,
+%D title=\CONTEXT\ \UNICODE\ Macros,
+%D subtitle=CJK Vectors,
+%D author=Hans Hagen,
+%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.
+
+\dostepwiserecurse{40}{159}{1}{\expanded{\defineunicodecommand {\recurselevel}} {\lookaheaduchar}}
+
+\endinput
diff --git a/tex/context/base/unic-exp.tex b/tex/context/base/unic-exp.tex
index 17bdaef06..6ed2ef38d 100644
--- a/tex/context/base/unic-exp.tex
+++ b/tex/context/base/unic-exp.tex
@@ -51,31 +51,29 @@
%D For this purpose, we need to redefine the resolver.
\def\doutfunihash#1#2%
- {\ifcsname\@@univector\@@univector\number#1\endcsname
- \csname\@@univector\@@univector\number#1\endcsname{\utfmod{#2}}%
- \else\ifcsname\@@univector\number#1\endcsname
- \csname\@@univector#1\endcsname{\utfmod{#2}}%
- \else
- \@@unknownchar
- \fi\fi}
+ {\csname \@@univector
+ \ifcsname\@@univector\@@univector#1\endcsname \@@univector#1\else
+ \ifcsname\@@univector #1\endcsname #1\else
+ \s!unknown\fi\fi
+ \endcsname{\utfmod{#2}}}
+
+\setvalue{\@@univector\s!unknown}#1%
+ {\@@unknownchar}
+
+\def\doutfunihashglyph#1#2#3% div mod raw
+ {\csname utf!\ifnum#3<\utf@i1\else
+ \ifcsname\@@unicommand#1\endcsname2\else
+ \ifcsname\@@univector\@@univector#1\endcsname3\else
+ \ifcsname\@@univector #1\endcsname4\else
+ 5\fi\fi\fi\fi !\endcsname{#1}{#2}}
-% or:
-%
-% \def\doutfunihash#1#2%
-% {\csname
-% \ifcsname\@@univector\@@univector\number#1\endcsname
-% \@@univector\@@univector\number#1%
-% \else\ifcsname\@@univector\number#1\endcsname
-% \@@univector#1%
-% \else
-% \strippedcsname\noutfunihash
-% \fi\fi
-% \endcsname{\utfmod{#2}}}
-%
-% \def\noutfunihash#1%
-% {\unknowncharacter}
+\setvalue{utf!1!}#1{\unicodeasciicharacter} % {#2}
+\setvalue{utf!2!}#1{\csname\@@unicommand#1\endcsname} % {#2}
+\setvalue{utf!3!}#1#2{\csname\csname\@@univector\@@univector#1\endcsname{#2}\endcsname} % watch the nested csname; it's a speed up
+\setvalue{utf!4!}#1#2{\csname\csname\@@univector#1\endcsname{#2}\endcsname} % watch the nested csname; it's a speed up
+\setvalue{utf!5!}#1#2{\unicodeunknowncharacter}
-\let\utfunihash\utfunihashglyph
+% \let\utfunihash\utfunihashglyph
%D Let's use it:
diff --git a/tex/context/base/unic-ext.tex b/tex/context/base/unic-ext.tex
deleted file mode 100644
index eb483fc17..000000000
--- a/tex/context/base/unic-ext.tex
+++ /dev/null
@@ -1,35 +0,0 @@
-%D \module
-%D [ file=unic-ini,
-%D version=2006.13.01,
-%D title=\CONTEXT\ \UNICODE\ Support,
-%D subtitle=\UNICODE\ \& UTF-8 extras,
-%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 UNICODE Macros (ext)}
-
-\beginTEX \expandafter \endinput \endTEX
-
-\unprotect
-
-%D Here we hook in a lookahead mechanism. This is needed for
-%D Chinese. In future versions of \PDFTEX\ we need a real
-%D lookahead mechanism.
-
-\let\normalunicodechar\unicodechar
-
-\newcount\unicodecharnumber
-
-\def\unicodechar#1%
- {\unicodecharnumber#1%
- \futurelet\nextglyph\dounicodechar}
-
-\def\dounicodechar
- {\normalunicodechar\unicodecharnumber}
-
-\protect \endinput
diff --git a/tex/context/base/unic-ini.tex b/tex/context/base/unic-ini.tex
index 479b197be..e4fea8739 100644
--- a/tex/context/base/unic-ini.tex
+++ b/tex/context/base/unic-ini.tex
@@ -22,6 +22,18 @@
\unprotect
+% ÀÃÂÃÄÅàáâãäå
+% ÆÇæç
+% ÈÉÊËèéêë
+% ÃŒÃÃŽÃÞìíîïþ
+% Ãð
+% Ññ
+% ÒÓÔÕÖòóôõö
+% Øø
+% ÙÚÛÜùúû
+% Ãýÿ
+% ß
+
%D This module deals with unicode, and in particular with
%D \UTF-8 conversion. The prelude to this module was \type
%D {xtag-utf}, which is now replaced by a one||liner. The
@@ -218,6 +230,8 @@
%D
%D Less parsing, and therefore faster:
+% beware, this may change: #1 rawchar (=> `#1 and such, saves tokens)
+
\def\utftwouniglph#1#2%
{\@EA\unicodechar\@EA{\the\numexpr\utf@a*(#1-\utf@d)+%
`#2-\utf@g\relax}}
@@ -230,6 +244,23 @@
{\@EA\unicodechar\@EA{\the\numexpr\utf@c*(#1-\utf@f)+%
\utf@b*(`#2-\utf@g)+\utf@a*(`#3-\utf@g)+`#4-\utf@g\relax}}
+% \def\keeputfcharacters
+% {\def\utftwouniglph ##1##2{\rawcharacter{##1}\string##2}%
+% \def\utfthreeuniglph ##1##2##3{\rawcharacter{##1}\string##2\string##3}%
+% \def\utffouruniglph ##1##2##3##4{\rawcharacter{##1}\string##2\string##3\string##4}}
+
+\def\keeputfcharacters
+ {\let\utftwouniglph \rawcharacter
+ \let\utfthreeuniglph\rawcharacter
+ \let\utffouruniglph \rawcharacter}
+
+\appendtoks \keeputfcharacters \to \everywritestring
+
+% \bgroup
+% \keeputfcharacters
+% \expanded{\index{\XMLflush{whatever}}}
+% \egroup
+
%D Now we come to the unicode handler itself. We will use a few
%D constants, which saves us (at least at the time of writing
%D and testing these macros) another 10\%.
@@ -408,19 +439,35 @@
\def\utfunihashglyph#1%
{\@EA\doutfunihashglyph\@EA{\number\numexpr\utfdiv{#1}\@EA\relax\@EA}\@EA{\number\utfmod{#1}}{#1}}
+% \def\doutfunihashglyph#1#2#3% div mod raw
+% {\csname
+% \ifnum#3<\utf@i
+% \strippedcsname\unicodeasciicharacter\endcsname{#2}%
+% \else\ifcsname\@@unicommand#1\endcsname
+% \@@unicommand#1\endcsname{#2}%
+% \else\ifcsname\@@univector#1\endcsname
+% \csname\@@univector#1\endcsname{#2}\endcsname % watch the nested csname; it's a speed up
+% \else
+% \strippedcsname\unicodeunknowncharacter\endcsname{#2}%
+% \fi\fi\fi}
+%
+% \def\unicodeunknowncharacter#1%
+% {\unknownchar}
+%
+% The next one permits lookahead
+
\def\doutfunihashglyph#1#2#3% div mod raw
- {\csname
- \ifnum#3<\utf@i
- \strippedcsname\unicodeasciicharacter\endcsname{#2}%
- \else\ifcsname\@@unicommand#1\endcsname
- \@@unicommand#1\endcsname{#2}%
- \else\ifcsname\@@univector#1\endcsname
- \csname\@@univector#1\endcsname{#2}\endcsname % watch the nested csname; it's a speed up
- \else
- \strippedcsname\unicodeunknowncharacter\endcsname{#2}%
- \fi\fi\fi}
+ {\csname utf!\ifnum#3<\utf@i 1\else
+ \ifcsname\@@unicommand#1\endcsname2\else
+ \ifcsname\@@univector #1\endcsname3\else
+ 4\fi\fi\fi !\endcsname{#1}{#2}}
+
+\setvalue{utf!1!}#1{\unicodeasciicharacter} % {#2}
+\setvalue{utf!2!}#1{\csname\@@unicommand#1\endcsname} % {#2}
+\setvalue{utf!3!}#1#2{\csname\csname\@@univector#1\endcsname{#2}\endcsname} % watch the nested csname; it's a speed up
+\setvalue{utf!4!}#1#2{\unicodeunknowncharacter}
-\def\unicodeunknowncharacter#1%
+\def\unicodeunknowncharacter
{\unknownchar}
%D With:
@@ -569,7 +616,7 @@
\def\unidiv{0} \def\unimod{0}
-\chardef\utfunihashmode=0 % 0=hash glyph 1=font glyph
+\chardef\utfunihashmode=0 % 0=hash glyph / 1=font glyph
\def\utfunifontglyph#1%
{\xdef\unidiv{\number\utfdiv{#1}}%
@@ -613,7 +660,6 @@
\def\utfunihashcommand
{\ifcase\utfunihashmode
- % \@EA\@EAEAEA\@EA\string\@EA\utfunihashglyph
\@EA\utfunihushcommand
\else
\@EA\utfunifontcommand
@@ -686,6 +732,9 @@
\endTEX
+\def\uchartoutf#1#2%
+ {\expandafter\numbertoutf\expandafter{\the\numexpr#1*256+#2\relax}}
+
%D Goodies:
\fetchruntimecommand \showunicodevector {\f!unicprefix\s!run}
@@ -694,10 +743,14 @@
%D Well, let's at least preload a few familiar ones. Here we
%D also load the \UTF\ regime.
-\useunicodevector[0,1,2,3,4,5,30,32,33,34,39] \useregime[utf]
+\useunicodevector[0,1,2,3,4,5,30,32,33,34,39]
+\useunicodevector[cjk]
+
+\useregime[utf]
% 31, text mem usage first
\protect \endinput
\unprotect
+
diff --git a/tex/context/base/x-set-11.tex b/tex/context/base/x-set-11.tex
index 739c07ccf..9c24ae53d 100644
--- a/tex/context/base/x-set-11.tex
+++ b/tex/context/base/x-set-11.tex
@@ -383,7 +383,17 @@
\let\plaatssetup \placesetup
\let\plaatselkesetup\placeeverysetup
-\def\dosetup#1{{\enableXML\flushXMLelement{stp:#1}}}
+\bgroup \catcode`\<=\active
+
+\gdef\dosetup#1%
+ {\bgroup
+ \def<<##1>>{##1}%
+ \edef\ascii{#1}%
+ \enableXML
+ \expanded{\flushXMLelement{stp:\ascii}}%
+ \egroup}
+
+\egroup
\defineXMLenvironment [cd:command] [name=,type=,generated=,interactive=]
{}
diff --git a/tex/context/base/xtag-ext.tex b/tex/context/base/xtag-ext.tex
index e2db5eae4..e109ce2c7 100644
--- a/tex/context/base/xtag-ext.tex
+++ b/tex/context/base/xtag-ext.tex
@@ -310,7 +310,7 @@
{\csname\??xp#1\endcsname}
\appendtoks
- \defineXMLargument[\XMLprocessingparameter\c!escape]\getXMlentity
+ \defineXMLargument[\XMLprocessingparameter\c!escape]\getXMLentity
\to \aftersetupXMLprocessing
\setupXMLprocessing
@@ -325,12 +325,25 @@
\def\getXMLdeccharacter##1{\numbertoutf{##1}}%
\def\getXMLentity##1{<e>##1</e>}%
\def<{\noexpand<}%
+ \ifcase\xmlexpandmode
+ \or
+ % 1 = default
+ \or
+ % 2 = keep utf
+ \keeputfcharacters % new, needed for chinese and such
+ \fi
+ \let\uchar\relax
+ \let\unicodechar\relax
\xdef\@@globalexpanded{#1}%
\endgroup
\convertcommand\@@globalexpanded\to}
\egroup
-\installexpander \v!xml {\expandxmlargument}
+\chardef\xmlexpandmode\plusone
+
+\installexpander {xml} {\chardef\xmlexpandmode\plusone\expandxmlargument}
+\installexpander {xml:cmd} {\chardef\xmlexpandmode\plusone\expandxmlargument}
+\installexpander {xml:utf} {\chardef\xmlexpandmode\plustwo\expandxmlargument}
\protect \endinput
diff --git a/tex/context/base/xtag-ini.tex b/tex/context/base/xtag-ini.tex
index 2b9dc8aa2..48f0c8c6f 100644
--- a/tex/context/base/xtag-ini.tex
+++ b/tex/context/base/xtag-ini.tex
@@ -1857,7 +1857,8 @@
\@EA\let\csname\@@XMLelement:#1/\endcsname\donothing}
\long\gdef\dododefineXMLnestedenvironment#1#2#3%
- {\long\@EA\def\csname\@@XMLelement:#1\endcsname{\getXMLgroupedenvironment{#1}{#2}{#3}}}
+ {\long\@EA\def\csname\@@XMLelement:#1\endcsname{\getXMLgroupedenvironment{#1}{#2}{#3}}%
+ \long\@EA\def\csname\@@XMLelement:#1/\endcsname{#2#3}}
\long\gdef\dododefineXMLnestedargument#1#2%
{\long\@EA\def\csname\@@XMLelement:#1\endcsname{\getXMLgroupedargument{#1}{#2}}%
@@ -2254,6 +2255,12 @@
\egroup
\convertcommand\@@XML@@string\to#1}
+\def\defXMLpar#1#2#3% to be documented
+ {\@EA\def\@EA#1\csname\ifcsname\@@XMLvariable:#2:#3\endcsname\@@XMLvariable:#2:#3\else\s!empty\fi\endcsname}
+
+\def\setvalueXMLpar#1#2#3% to be documented
+ {\@EA\let\csname#1\@EA\endcsname\csname\ifcsname\@@XMLvariable:#2:#3\endcsname\@@XMLvariable:#2:#3\else\s!empty\fi\endcsname}
+
\def\XMLshow#1%
{\showvalue{\@@XMLdata:#1}}
diff --git a/tex/context/base/xtag-stk.tex b/tex/context/base/xtag-stk.tex
new file mode 100644
index 000000000..d879a3ace
--- /dev/null
+++ b/tex/context/base/xtag-stk.tex
@@ -0,0 +1,166 @@
+%D \module
+%D [ file=xtag-exp,
+%D version=2006.01.19,
+%D title=\CONTEXT\ XML Support,
+%D subtitle=Stacking Data,
+%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.
+
+\beginTEX
+ \writestatus{XML}{sorry, XML is only supported in (pdf)etex}
+ \endinput
+\endTEX
+
+\writestatus{loading}{Context XML Macros (stacks)}
+
+%D This module is experimental. Don't use it (yet). It needs a
+%D clean-up. The stack handler is used in the third MathML renderer.
+
+\unprotect
+
+\ifx\XMLRtoks \undefined \newtoks \XMLRtoks \fi
+\ifx\XMLstacklevel\undefined \newcount\XMLstacklevel \fi
+
+\def\@@xmlstack{@@xmlstk}
+
+\let\XMLstackid\empty
+
+\def\resetXMLelements
+ {\XMLstacklevel\zerocount}
+
+\def\startsavingXMLelements
+ {\XMLstacklevel\zerocount
+ \let\normalexecuteXMLelement\executeXMLelement
+ \def\executeXMLelement{\csname\@@XMLelement:\@@xmlstack\ifcase\kindofXMLelement\or\or\or/\fi\endcsname}}
+
+\def\stopsavingXMLelements
+ {\let\executeXMLelement\normalexecuteXMLelement}
+
+\defineXMLnestedenvironmentsave
+ [xmlstack]
+ {}
+ {\pushXMLdataonstack}
+
+\startXMLmapping[xmlstack:test]
+
+ \defineXMLnestedenvironmentsave
+ [xmlstack]
+ {}
+ {\pushXMLnameonstack}
+
+ % in mathml handler:
+ %
+ % \defineXMLnested
+ % [apply]
+ % {\startsavingXMLelements}
+ % {\stopsavingXMLelements}
+
+\stopXMLmapping
+
+\def\pushXMLdataonstack
+ {\advance\XMLstacklevel\plusone
+ \letvalue {\@@xmlstack:n:\XMLstackid:\number\XMLstacklevel}\currentXMLelement
+ \saveXMLdata {\@@xmlstack:t:\XMLstackid:\number\XMLstacklevel} \@@xmlstack
+ \saveXMLdatainelement{\@@xmlstack:d:\XMLstackid:\number\XMLstacklevel}\currentXMLelement\@@xmlstack}
+
+\def\pushXMLnameonstack
+ {\advance\XMLstacklevel\plusone
+ \letvalue {\@@xmlstack:n:\XMLstackid:\number\XMLstacklevel}\currentXMLelement}
+
+\def\eraseXMLdataonstack#1%
+ {\letvalue{\@@xmlstack:n:\XMLstackid:\number#1}\empty
+ \XMLerase{\@@xmlstack:t:\XMLstackid:\number#1}%
+ \XMLerase{\@@xmlstack:d:\XMLstackid:\number#1}}
+
+\def\getXMLstackdata{\getXMLstackiddata\XMLstackid}
+\def\getXMLstackname{\getXMLstackidname\XMLstackid}
+\def\getXMLstacktext{\getXMLstackidtext\XMLstackid}
+
+\def\getXMLstackiddata#1#2{\flushXMLelement{\@@xmlstack:d:#1:\ifnum#2>\XMLstacklevel\else\number#2\fi}}
+\def\getXMLstackidname#1#2{\getvalue {\@@xmlstack:n:#1:\ifnum#2>\XMLstacklevel\else\number#2\fi}}
+\def\getXMLstackidtext#1#2{\flushXMLelement{\@@xmlstack:t:#1:\ifnum#2>\XMLstacklevel\else\number#2\fi}}
+
+\def\rawXMLstackdata{\rawXMLstackiddata\XMLstackid}
+\def\rawXMLstackname{\rawXMLstackidname\XMLstackid}
+\def\rawXMLstacktext{\rawXMLstackidtext\XMLstackid}
+
+\def\rawXMLstackiddata#1#2{\flushXMLelement{\@@xmlstack:d:#1:\number#2}}
+\def\rawXMLstackidname#1#2{\getvalue {\@@xmlstack:n:#1:\number#2}}
+\def\rawXMLstackidtext#1#2{\flushXMLelement{\@@xmlstack:t:#1:\number#2}}
+
+\def\defXMLstackiddata#1#2#3%
+ {\defXMLelement#1{\@@xmlstack:d:#2:\ifnum#3>\XMLstacklevel\else\number#3\fi}}
+
+\def\defXMLstackdata#1% #2
+ {\defXMLstackiddata#1\XMLstackid}
+
+\def\showXMLstacknames
+ {[\space\dorecurse\XMLstacklevel{\getXMLstackname\recurselevel\space}]}
+
+\def\flushXMLstackfrom#1%
+ {\dostepwiserecurse{#1}\XMLstacklevel\plusone
+ {\getXMLstackdata\recurselevel}}
+
+\def\flushXMLstackwith#1#2%
+ {\dostepwiserecurse{#1}\XMLstacklevel\plusone
+ {\relax\ifnum\recurselevel>#1\relax#2\fi
+ \getXMLstackdata\recurselevel}}
+
+\def\flushXMLnamedstackwith#1#2#3%
+ {\dostepwiserecurse{#1}\XMLstacklevel\plusone
+ {\expanded{\doifinset{\getXMLstackname\recurselevel}{#2}}
+ {\ifnum\recurselevel>#1\relax#3\fi
+ \getXMLstackdata\recurselevel}}}
+
+\def\countXMLnamedstack#1%
+ {\scratchcounter\zerocount
+ \dorecurse\XMLstacklevel
+ {\expanded{\doifinset{\getXMLstackname\recurselevel}{#1}}
+ {\advance\scratchcounter\plusone}}}
+
+\def\collectXMLstack#1%
+ {\XMLRtoks\emptytoks
+ \dorecurse\XMLstacklevel
+ {\ifnum\recurselevel>\plusone\appendtoks#1\to\XMLRtoks\fi
+ \expandafter\appendtoks\expandafter\getXMLstackdata\expandafter{\recurselevel}\to\XMLRtoks}}
+
+\def\collectXMLstackrows#1#2%
+ {\XMLRtoks\emptytoks
+ \dostepwiserecurse{#1}\XMLstacklevel\plusone
+ {\ifnum\recurselevel>#1\appendtoks#2\to\XMLRtoks\fi
+ \expandafter\appendtoks\expandafter\getXMLstackdata\expandafter{\recurselevel}\to\XMLRtoks}}
+
+\def\collectXMLnamedstack#1#2%
+ {\XMLRtoks\emptytoks
+ \dorecurse\XMLstacklevel
+ {\expanded{\doifinset{\getXMLstackname\recurselevel}{#1}}
+ {\ifnum\recurselevel>\plusone\appendtoks#2\to\XMLRtoks\fi
+ \expandafter\appendtoks\expandafter\getXMLstackdata\expandafter{\recurselevel}\to\XMLRtoks}}}
+
+\def\collectXMLnamedstacknamed#1#2#3% names, inbetween, nestednames (maddness, this macro)
+ {\XMLRtoks\emptytoks
+ \!!doneafalse
+ \let\globalascii\empty
+ \dorecurse\XMLstacklevel
+ {\expanded{\doifinset{\getXMLstackname\recurselevel}{#1}}
+ {\begingroup
+ \startsavingXMLelements
+ \rawXMLstacktext\recurselevel % still on stack, raw does not test
+ \stopsavingXMLelements
+ \let\globalascii\empty
+ \dorecurse\XMLstacklevel
+ {\expanded{\doifinset{\getXMLstackname\recurselevel}{#2}}
+ {\xdef\globalascii{\getXMLstackdata\recurselevel}}}%
+ \endgroup
+ \ifx\globalascii\empty\else
+ \if!!donea\appendtoks#3\to\XMLRtoks\fi
+ \expandafter\appendtoks\globalascii\to\XMLRtoks
+ \!!doneatrue
+ \fi}}}
+
+\protect \endinput
diff --git a/tex/context/interface/cont-cz.xml b/tex/context/interface/cont-cz.xml
index 8cc2d7638..548f59f0a 100644
--- a/tex/context/interface/cont-cz.xml
+++ b/tex/context/interface/cont-cz.xml
@@ -385,20 +385,6 @@
</cd:arguments>
</cd:command>
-<cd:command name="setupstrut" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="setupstrut"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="ano" default="yes"/>
- <cd:constant type="ne"/>
- <cd:constant type="kap"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
<cd:command name="setupcolor" file="colo-ini.tex">
<cd:sequence>
<cd:string value="nastavbarvu"/>
@@ -4885,7 +4871,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placecombinedlist" file="core-lst.tex">
+<cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
<cd:sequence>
<cd:string value="umistikombinovanyseznam"/>
</cd:sequence>
@@ -5137,7 +5123,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placecombinedlist" generated="yes" file="core-lst.tex">
+<cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
<cd:sequence>
<cd:string value="place"/>
<cd:variable value="combinedlist"/>
@@ -5206,6 +5192,9 @@
<cd:constant type="nastred"/>
<cd:constant type="vpravo"/>
</cd:parameter>
+ <cd:parameter name="volba">
+ <cd:constant type="nastred"/>
+ </cd:parameter>
<cd:parameter name="strut">
<cd:constant type="ano"/>
<cd:constant type="ne"/>
@@ -6543,7 +6532,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placeregister" file="core-reg.tex">
+<cd:command name="placeregister" variant="1" file="core-reg.tex">
<cd:sequence>
<cd:string value="umistirejstrik"/>
</cd:sequence>
@@ -6583,7 +6572,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placeregister" generated="yes" file="core-reg.tex">
+<cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
<cd:sequence>
<cd:string value="place"/>
<cd:variable value="rejstrik"/>
@@ -8916,7 +8905,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="defineinteractionmenu" file="core-int.tex">
+<cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
<cd:sequence>
<cd:string value="definujinterakcnimenu"/>
</cd:sequence>
@@ -9003,7 +8992,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="defineinteractionmenu" file="core-int.tex">
+<cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
<cd:sequence>
<cd:string value="definujinterakcnimenu"/>
</cd:sequence>
diff --git a/tex/context/interface/cont-de.xml b/tex/context/interface/cont-de.xml
index 9ea60bdba..9170b8bb7 100644
--- a/tex/context/interface/cont-de.xml
+++ b/tex/context/interface/cont-de.xml
@@ -385,20 +385,6 @@
</cd:arguments>
</cd:command>
-<cd:command name="setupstrut" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="setupstrut"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="ja" default="yes"/>
- <cd:constant type="nein"/>
- <cd:constant type="kap"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
<cd:command name="setupcolor" file="colo-ini.tex">
<cd:sequence>
<cd:string value="stellefarbeein"/>
@@ -4885,7 +4871,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placecombinedlist" file="core-lst.tex">
+<cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
<cd:sequence>
<cd:string value="platzierezusammengestellteliste"/>
</cd:sequence>
@@ -5137,7 +5123,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placecombinedlist" generated="yes" file="core-lst.tex">
+<cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
<cd:sequence>
<cd:string value="place"/>
<cd:variable value="combinedlist"/>
@@ -5206,6 +5192,9 @@
<cd:constant type="mittig"/>
<cd:constant type="rechts"/>
</cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="mittig"/>
+ </cd:parameter>
<cd:parameter name="strut">
<cd:constant type="ja"/>
<cd:constant type="nein"/>
@@ -6543,7 +6532,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placeregister" file="core-reg.tex">
+<cd:command name="placeregister" variant="1" file="core-reg.tex">
<cd:sequence>
<cd:string value="platziereregister"/>
</cd:sequence>
@@ -6583,7 +6572,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placeregister" generated="yes" file="core-reg.tex">
+<cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
<cd:sequence>
<cd:string value="place"/>
<cd:variable value="register"/>
@@ -8916,7 +8905,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="defineinteractionmenu" file="core-int.tex">
+<cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
<cd:sequence>
<cd:string value="definiereinteraktionsmenue"/>
</cd:sequence>
@@ -9003,7 +8992,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="defineinteractionmenu" file="core-int.tex">
+<cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
<cd:sequence>
<cd:string value="definiereinteraktionsmenue"/>
</cd:sequence>
diff --git a/tex/context/interface/cont-en.xml b/tex/context/interface/cont-en.xml
index 26ff06d56..fe72edfe2 100644
--- a/tex/context/interface/cont-en.xml
+++ b/tex/context/interface/cont-en.xml
@@ -385,20 +385,6 @@
</cd:arguments>
</cd:command>
-<cd:command name="setupstrut" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="setupstrut"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="yes" default="yes"/>
- <cd:constant type="no"/>
- <cd:constant type="cap"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
<cd:command name="setupcolor" file="colo-ini.tex">
<cd:sequence>
<cd:string value="setupcolor"/>
@@ -4885,7 +4871,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placecombinedlist" file="core-lst.tex">
+<cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
<cd:sequence>
<cd:string value="placecombinedlist"/>
</cd:sequence>
@@ -5137,7 +5123,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placecombinedlist" generated="yes" file="core-lst.tex">
+<cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
<cd:sequence>
<cd:string value="place"/>
<cd:variable value="combinedlist"/>
@@ -5206,6 +5192,9 @@
<cd:constant type="middle"/>
<cd:constant type="right"/>
</cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="middle"/>
+ </cd:parameter>
<cd:parameter name="strut">
<cd:constant type="yes"/>
<cd:constant type="no"/>
@@ -6543,7 +6532,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placeregister" file="core-reg.tex">
+<cd:command name="placeregister" variant="1" file="core-reg.tex">
<cd:sequence>
<cd:string value="placeregister"/>
</cd:sequence>
@@ -6583,7 +6572,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placeregister" generated="yes" file="core-reg.tex">
+<cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
<cd:sequence>
<cd:string value="place"/>
<cd:variable value="register"/>
@@ -8916,7 +8905,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="defineinteractionmenu" file="core-int.tex">
+<cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
<cd:sequence>
<cd:string value="defineinteractionmenu"/>
</cd:sequence>
@@ -9003,7 +8992,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="defineinteractionmenu" file="core-int.tex">
+<cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
<cd:sequence>
<cd:string value="defineinteractionmenu"/>
</cd:sequence>
diff --git a/tex/context/interface/cont-fr.xml b/tex/context/interface/cont-fr.xml
index bacd77ec4..c177fc403 100644
--- a/tex/context/interface/cont-fr.xml
+++ b/tex/context/interface/cont-fr.xml
@@ -385,20 +385,6 @@
</cd:arguments>
</cd:command>
-<cd:command name="setupstrut" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="reglestrut"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="oui" default="yes"/>
- <cd:constant type="non"/>
- <cd:constant type="cap"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
<cd:command name="setupcolor" file="colo-ini.tex">
<cd:sequence>
<cd:string value="reglecouleur"/>
@@ -4885,7 +4871,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placecombinedlist" file="core-lst.tex">
+<cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
<cd:sequence>
<cd:string value="placelisteinmbriquee"/>
</cd:sequence>
@@ -5137,7 +5123,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placecombinedlist" generated="yes" file="core-lst.tex">
+<cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
<cd:sequence>
<cd:string value="place"/>
<cd:variable value="combinedlist"/>
@@ -5206,6 +5192,9 @@
<cd:constant type="milieu"/>
<cd:constant type="droite"/>
</cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="milieu"/>
+ </cd:parameter>
<cd:parameter name="strut">
<cd:constant type="oui"/>
<cd:constant type="non"/>
@@ -6543,7 +6532,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placeregister" file="core-reg.tex">
+<cd:command name="placeregister" variant="1" file="core-reg.tex">
<cd:sequence>
<cd:string value="placeregistre"/>
</cd:sequence>
@@ -6583,7 +6572,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placeregister" generated="yes" file="core-reg.tex">
+<cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
<cd:sequence>
<cd:string value="place"/>
<cd:variable value="registre"/>
@@ -8916,7 +8905,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="defineinteractionmenu" file="core-int.tex">
+<cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
<cd:sequence>
<cd:string value="definitmenuinteraction"/>
</cd:sequence>
@@ -9003,7 +8992,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="defineinteractionmenu" file="core-int.tex">
+<cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
<cd:sequence>
<cd:string value="definitmenuinteraction"/>
</cd:sequence>
diff --git a/tex/context/interface/cont-it.xml b/tex/context/interface/cont-it.xml
index 5e43a59b4..0ee663431 100644
--- a/tex/context/interface/cont-it.xml
+++ b/tex/context/interface/cont-it.xml
@@ -385,20 +385,6 @@
</cd:arguments>
</cd:command>
-<cd:command name="setupstrut" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="impostastrut"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="si" default="yes"/>
- <cd:constant type="no"/>
- <cd:constant type="cap"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
<cd:command name="setupcolor" file="colo-ini.tex">
<cd:sequence>
<cd:string value="impostacolore"/>
@@ -4885,7 +4871,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placecombinedlist" file="core-lst.tex">
+<cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
<cd:sequence>
<cd:string value="mettielencocombinato"/>
</cd:sequence>
@@ -5137,7 +5123,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placecombinedlist" generated="yes" file="core-lst.tex">
+<cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
<cd:sequence>
<cd:string value="place"/>
<cd:variable value="combinedlist"/>
@@ -5206,6 +5192,9 @@
<cd:constant type="centro"/>
<cd:constant type="destra"/>
</cd:parameter>
+ <cd:parameter name="opzione">
+ <cd:constant type="centro"/>
+ </cd:parameter>
<cd:parameter name="strut">
<cd:constant type="si"/>
<cd:constant type="no"/>
@@ -6543,7 +6532,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placeregister" file="core-reg.tex">
+<cd:command name="placeregister" variant="1" file="core-reg.tex">
<cd:sequence>
<cd:string value="mettiregistro"/>
</cd:sequence>
@@ -6583,7 +6572,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placeregister" generated="yes" file="core-reg.tex">
+<cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
<cd:sequence>
<cd:string value="place"/>
<cd:variable value="registro"/>
@@ -8916,7 +8905,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="defineinteractionmenu" file="core-int.tex">
+<cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
<cd:sequence>
<cd:string value="definiscimenuinterazione"/>
</cd:sequence>
@@ -9003,7 +8992,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="defineinteractionmenu" file="core-int.tex">
+<cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
<cd:sequence>
<cd:string value="definiscimenuinterazione"/>
</cd:sequence>
diff --git a/tex/context/interface/cont-nl.xml b/tex/context/interface/cont-nl.xml
index 39dda6977..97b03f596 100644
--- a/tex/context/interface/cont-nl.xml
+++ b/tex/context/interface/cont-nl.xml
@@ -385,20 +385,6 @@
</cd:arguments>
</cd:command>
-<cd:command name="setupstrut" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="stelstrutin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="ja" default="yes"/>
- <cd:constant type="nee"/>
- <cd:constant type="kap"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
<cd:command name="setupcolor" file="colo-ini.tex">
<cd:sequence>
<cd:string value="stelkleurin"/>
@@ -4885,7 +4871,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placecombinedlist" file="core-lst.tex">
+<cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
<cd:sequence>
<cd:string value="plaatssamengesteldelijst"/>
</cd:sequence>
@@ -5137,7 +5123,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placecombinedlist" generated="yes" file="core-lst.tex">
+<cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
<cd:sequence>
<cd:string value="place"/>
<cd:variable value="combinedlist"/>
@@ -5206,6 +5192,9 @@
<cd:constant type="midden"/>
<cd:constant type="rechts"/>
</cd:parameter>
+ <cd:parameter name="optie">
+ <cd:constant type="midden"/>
+ </cd:parameter>
<cd:parameter name="strut">
<cd:constant type="ja"/>
<cd:constant type="nee"/>
@@ -6543,7 +6532,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placeregister" file="core-reg.tex">
+<cd:command name="placeregister" variant="1" file="core-reg.tex">
<cd:sequence>
<cd:string value="plaatsregister"/>
</cd:sequence>
@@ -6583,7 +6572,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placeregister" generated="yes" file="core-reg.tex">
+<cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
<cd:sequence>
<cd:string value="place"/>
<cd:variable value="register"/>
@@ -8916,7 +8905,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="defineinteractionmenu" file="core-int.tex">
+<cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
<cd:sequence>
<cd:string value="definieerinteractiemenu"/>
</cd:sequence>
@@ -9003,7 +8992,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="defineinteractionmenu" file="core-int.tex">
+<cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
<cd:sequence>
<cd:string value="definieerinteractiemenu"/>
</cd:sequence>
diff --git a/tex/context/interface/cont-ro.xml b/tex/context/interface/cont-ro.xml
index 966492e51..39823b0bf 100644
--- a/tex/context/interface/cont-ro.xml
+++ b/tex/context/interface/cont-ro.xml
@@ -385,20 +385,6 @@
</cd:arguments>
</cd:command>
-<cd:command name="setupstrut" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="seteazastrut"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="da" default="yes"/>
- <cd:constant type="nu"/>
- <cd:constant type="cap"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
<cd:command name="setupcolor" file="colo-ini.tex">
<cd:sequence>
<cd:string value="seteazaculoare"/>
@@ -4885,7 +4871,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placecombinedlist" file="core-lst.tex">
+<cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
<cd:sequence>
<cd:string value="punelistacombinata"/>
</cd:sequence>
@@ -5137,7 +5123,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placecombinedlist" generated="yes" file="core-lst.tex">
+<cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
<cd:sequence>
<cd:string value="place"/>
<cd:variable value="combinedlist"/>
@@ -5206,6 +5192,9 @@
<cd:constant type="centru"/>
<cd:constant type="dreapta"/>
</cd:parameter>
+ <cd:parameter name="optiune">
+ <cd:constant type="centru"/>
+ </cd:parameter>
<cd:parameter name="strut">
<cd:constant type="da"/>
<cd:constant type="nu"/>
@@ -6543,7 +6532,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placeregister" file="core-reg.tex">
+<cd:command name="placeregister" variant="1" file="core-reg.tex">
<cd:sequence>
<cd:string value="puneregistru"/>
</cd:sequence>
@@ -6583,7 +6572,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placeregister" generated="yes" file="core-reg.tex">
+<cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
<cd:sequence>
<cd:string value="place"/>
<cd:variable value="registru"/>
@@ -8916,7 +8905,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="defineinteractionmenu" file="core-int.tex">
+<cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
<cd:sequence>
<cd:string value="definestemeniuinteractiune"/>
</cd:sequence>
@@ -9003,7 +8992,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="defineinteractionmenu" file="core-int.tex">
+<cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
<cd:sequence>
<cd:string value="definestemeniuinteractiune"/>
</cd:sequence>
diff --git a/tex/context/interface/keys-cz.xml b/tex/context/interface/keys-cz.xml
index c88098322..89c927bd1 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="2006.01.16 18:35">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2006.01.27 13:58">
<cd:variables>
<cd:variable name="one" value="jedna"/>
@@ -120,6 +120,9 @@
<cd:variable name="quote" value="citovat"/>
<cd:variable name="speech" value="speech"/>
<cd:variable name="itemize" value="vycet"/>
+ <cd:variable name="mathalignment" value="mathalignment"/>
+ <cd:variable name="mathcases" value="mathcases"/>
+ <cd:variable name="mathmatrix" value="mathmatrix"/>
</cd:variables>
<cd:constants>
@@ -479,6 +482,7 @@
<cd:constant name="icommand" value="iprikaz"/>
<cd:constant name="ccommand" value="cprikaz"/>
<cd:constant name="textdistance" value="textdistance"/>
+ <cd:constant name="numberdistance" value="numberdistance"/>
<cd:constant name="textmargin" value="textmargin"/>
<cd:constant name="keyword" value="keyword"/>
<cd:constant name="deeptextcommand" value="deeptextcommand"/>
@@ -797,6 +801,7 @@
<cd:constant name="vfil" value="vfil"/>
<cd:constant name="hfil" value="hfil"/>
<cd:constant name="strut" value="strut"/>
+ <cd:constant name="autostrut" value="autostrut"/>
<cd:constant name="reset" value="reset"/>
<cd:constant name="set" value="set"/>
<cd:constant name="escape" value="escape"/>
@@ -1528,6 +1533,8 @@
<cd:command name="placeheadnumber" value="placeheadnumber"/>
<cd:command name="definepagebreak" value="definepagebreak"/>
<cd:command name="definecolumnbreak" value="definecolumnbreak"/>
+ <cd:command name="definemathalignment" value="definemathalignment"/>
+ <cd:command name="setupmathalignment" value="setupmathalignment"/>
</cd:commands>
<cd:commands>
diff --git a/tex/context/interface/keys-de.xml b/tex/context/interface/keys-de.xml
index 97fc05f41..81a269c5f 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="2006.01.16 18:35">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2006.01.27 13:58">
<cd:variables>
<cd:variable name="one" value="eins"/>
@@ -120,6 +120,9 @@
<cd:variable name="quote" value="zitieren"/>
<cd:variable name="speech" value="speech"/>
<cd:variable name="itemize" value="aufzaehlung"/>
+ <cd:variable name="mathalignment" value="mathalignment"/>
+ <cd:variable name="mathcases" value="mathcases"/>
+ <cd:variable name="mathmatrix" value="mathmatrix"/>
</cd:variables>
<cd:constants>
@@ -479,6 +482,7 @@
<cd:constant name="icommand" value="ibefehl"/>
<cd:constant name="ccommand" value="cbefehl"/>
<cd:constant name="textdistance" value="textdistance"/>
+ <cd:constant name="numberdistance" value="numberdistance"/>
<cd:constant name="textmargin" value="textmargin"/>
<cd:constant name="keyword" value="keyword"/>
<cd:constant name="deeptextcommand" value="deeptextcommand"/>
@@ -797,6 +801,7 @@
<cd:constant name="vfil" value="vfil"/>
<cd:constant name="hfil" value="hfil"/>
<cd:constant name="strut" value="strut"/>
+ <cd:constant name="autostrut" value="autostrut"/>
<cd:constant name="reset" value="reset"/>
<cd:constant name="set" value="set"/>
<cd:constant name="escape" value="escape"/>
@@ -1528,6 +1533,8 @@
<cd:command name="placeheadnumber" value="placeheadnumber"/>
<cd:command name="definepagebreak" value="definepagebreak"/>
<cd:command name="definecolumnbreak" value="definecolumnbreak"/>
+ <cd:command name="definemathalignment" value="definemathalignment"/>
+ <cd:command name="setupmathalignment" value="setupmathalignment"/>
</cd:commands>
<cd:commands>
diff --git a/tex/context/interface/keys-en.xml b/tex/context/interface/keys-en.xml
index 48e154948..1fb5d235d 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="2006.01.16 18:35">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2006.01.27 13:58">
<cd:variables>
<cd:variable name="one" value="one"/>
@@ -120,6 +120,9 @@
<cd:variable name="quote" value="quote"/>
<cd:variable name="speech" value="speech"/>
<cd:variable name="itemize" value="itemize"/>
+ <cd:variable name="mathalignment" value="mathalignment"/>
+ <cd:variable name="mathcases" value="mathcases"/>
+ <cd:variable name="mathmatrix" value="mathmatrix"/>
</cd:variables>
<cd:constants>
@@ -479,6 +482,7 @@
<cd:constant name="icommand" value="icommand"/>
<cd:constant name="ccommand" value="ccommand"/>
<cd:constant name="textdistance" value="textdistance"/>
+ <cd:constant name="numberdistance" value="numberdistance"/>
<cd:constant name="textmargin" value="textmargin"/>
<cd:constant name="keyword" value="keyword"/>
<cd:constant name="deeptextcommand" value="deeptextcommand"/>
@@ -797,6 +801,7 @@
<cd:constant name="vfil" value="vfil"/>
<cd:constant name="hfil" value="hfil"/>
<cd:constant name="strut" value="strut"/>
+ <cd:constant name="autostrut" value="autostrut"/>
<cd:constant name="reset" value="reset"/>
<cd:constant name="set" value="set"/>
<cd:constant name="escape" value="escape"/>
@@ -1528,6 +1533,8 @@
<cd:command name="placeheadnumber" value="placeheadnumber"/>
<cd:command name="definepagebreak" value="definepagebreak"/>
<cd:command name="definecolumnbreak" value="definecolumnbreak"/>
+ <cd:command name="definemathalignment" value="definemathalignment"/>
+ <cd:command name="setupmathalignment" value="setupmathalignment"/>
</cd:commands>
<cd:commands>
diff --git a/tex/context/interface/keys-fr.xml b/tex/context/interface/keys-fr.xml
index c728c4dce..f7d7755b1 100644
--- a/tex/context/interface/keys-fr.xml
+++ b/tex/context/interface/keys-fr.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="fr" version="2006.01.16 18:35">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="fr" version="2006.01.27 13:58">
<cd:variables>
<cd:variable name="one" value="un"/>
@@ -120,6 +120,9 @@
<cd:variable name="quote" value="citer"/>
<cd:variable name="speech" value="discours"/>
<cd:variable name="itemize" value="lister"/>
+ <cd:variable name="mathalignment" value="mathalignment"/>
+ <cd:variable name="mathcases" value="mathcases"/>
+ <cd:variable name="mathmatrix" value="mathmatrix"/>
</cd:variables>
<cd:constants>
@@ -479,6 +482,7 @@
<cd:constant name="icommand" value="icommande"/>
<cd:constant name="ccommand" value="ccommande"/>
<cd:constant name="textdistance" value="distancetexte"/>
+ <cd:constant name="numberdistance" value="numberdistance"/>
<cd:constant name="textmargin" value="margetexte"/>
<cd:constant name="keyword" value="motcle"/>
<cd:constant name="deeptextcommand" value="deeptextcommand"/>
@@ -797,6 +801,7 @@
<cd:constant name="vfil" value="vfil"/>
<cd:constant name="hfil" value="hfil"/>
<cd:constant name="strut" value="strut"/>
+ <cd:constant name="autostrut" value="autostrut"/>
<cd:constant name="reset" value="reset"/>
<cd:constant name="set" value="set"/>
<cd:constant name="escape" value="escape"/>
@@ -1528,6 +1533,8 @@
<cd:command name="placeheadnumber" value="placenumerotete"/>
<cd:command name="definepagebreak" value="definitsautdepage"/>
<cd:command name="definecolumnbreak" value="definitsautdecolonne"/>
+ <cd:command name="definemathalignment" value="definemathalignment"/>
+ <cd:command name="setupmathalignment" value="setupmathalignment"/>
</cd:commands>
<cd:commands>
diff --git a/tex/context/interface/keys-it.xml b/tex/context/interface/keys-it.xml
index 557068f6f..09a4d499a 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="2006.01.16 18:35">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2006.01.27 13:58">
<cd:variables>
<cd:variable name="one" value="uno"/>
@@ -120,6 +120,9 @@
<cd:variable name="quote" value="menzione"/>
<cd:variable name="speech" value="speech"/>
<cd:variable name="itemize" value="elenco"/>
+ <cd:variable name="mathalignment" value="mathalignment"/>
+ <cd:variable name="mathcases" value="mathcases"/>
+ <cd:variable name="mathmatrix" value="mathmatrix"/>
</cd:variables>
<cd:constants>
@@ -479,6 +482,7 @@
<cd:constant name="icommand" value="icomando"/>
<cd:constant name="ccommand" value="ccomando"/>
<cd:constant name="textdistance" value="distanzatesto"/>
+ <cd:constant name="numberdistance" value="numberdistance"/>
<cd:constant name="textmargin" value="textmargin"/>
<cd:constant name="keyword" value="parolachiave"/>
<cd:constant name="deeptextcommand" value="deeptextcommand"/>
@@ -797,6 +801,7 @@
<cd:constant name="vfil" value="vfil"/>
<cd:constant name="hfil" value="hfil"/>
<cd:constant name="strut" value="strut"/>
+ <cd:constant name="autostrut" value="autostrut"/>
<cd:constant name="reset" value="reset"/>
<cd:constant name="set" value="set"/>
<cd:constant name="escape" value="escape"/>
@@ -1528,6 +1533,8 @@
<cd:command name="placeheadnumber" value="posizionanumerotesta"/>
<cd:command name="definepagebreak" value="definepagebreak"/>
<cd:command name="definecolumnbreak" value="definecolumnbreak"/>
+ <cd:command name="definemathalignment" value="definemathalignment"/>
+ <cd:command name="setupmathalignment" value="setupmathalignment"/>
</cd:commands>
<cd:commands>
diff --git a/tex/context/interface/keys-nl.xml b/tex/context/interface/keys-nl.xml
index ac75d0920..cb3930f26 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="2006.01.16 18:35">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2006.01.27 13:58">
<cd:variables>
<cd:variable name="one" value="een"/>
@@ -120,6 +120,9 @@
<cd:variable name="quote" value="citeer"/>
<cd:variable name="speech" value="spraak"/>
<cd:variable name="itemize" value="opsomming"/>
+ <cd:variable name="mathalignment" value="wiskundeuitlijnen"/>
+ <cd:variable name="mathcases" value="mathcases"/>
+ <cd:variable name="mathmatrix" value="wiskundematrix"/>
</cd:variables>
<cd:constants>
@@ -479,6 +482,7 @@
<cd:constant name="icommand" value="icommando"/>
<cd:constant name="ccommand" value="ccommando"/>
<cd:constant name="textdistance" value="tekstafstand"/>
+ <cd:constant name="numberdistance" value="nummerafstand"/>
<cd:constant name="textmargin" value="tekstmarge"/>
<cd:constant name="keyword" value="trefwoord"/>
<cd:constant name="deeptextcommand" value="dieptekstcommando"/>
@@ -797,6 +801,7 @@
<cd:constant name="vfil" value="vfil"/>
<cd:constant name="hfil" value="hfil"/>
<cd:constant name="strut" value="strut"/>
+ <cd:constant name="autostrut" value="autostrut"/>
<cd:constant name="reset" value="reset"/>
<cd:constant name="set" value="set"/>
<cd:constant name="escape" value="escape"/>
@@ -1528,6 +1533,8 @@
<cd:command name="placeheadnumber" value="plaatskopnummer"/>
<cd:command name="definepagebreak" value="definieerpaginaovergang"/>
<cd:command name="definecolumnbreak" value="definieerkolomovergang"/>
+ <cd:command name="definemathalignment" value="definieerwiskundeuitlijnen"/>
+ <cd:command name="setupmathalignment" value="stelwiskundeuitlijnenin"/>
</cd:commands>
<cd:commands>
diff --git a/tex/context/interface/keys-ro.xml b/tex/context/interface/keys-ro.xml
index 14beaf1fc..9bba8b635 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="2006.01.16 18:35">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2006.01.27 13:58">
<cd:variables>
<cd:variable name="one" value="unu"/>
@@ -120,6 +120,9 @@
<cd:variable name="quote" value="minicitat"/>
<cd:variable name="speech" value="speech"/>
<cd:variable name="itemize" value="enumerare"/>
+ <cd:variable name="mathalignment" value="mathalignment"/>
+ <cd:variable name="mathcases" value="mathcases"/>
+ <cd:variable name="mathmatrix" value="mathmatrix"/>
</cd:variables>
<cd:constants>
@@ -479,6 +482,7 @@
<cd:constant name="icommand" value="comandai"/>
<cd:constant name="ccommand" value="comandac"/>
<cd:constant name="textdistance" value="textdistance"/>
+ <cd:constant name="numberdistance" value="numberdistance"/>
<cd:constant name="textmargin" value="textmargin"/>
<cd:constant name="keyword" value="keyword"/>
<cd:constant name="deeptextcommand" value="deeptextcommand"/>
@@ -797,6 +801,7 @@
<cd:constant name="vfil" value="vfil"/>
<cd:constant name="hfil" value="hfil"/>
<cd:constant name="strut" value="strut"/>
+ <cd:constant name="autostrut" value="autostrut"/>
<cd:constant name="reset" value="reset"/>
<cd:constant name="set" value="set"/>
<cd:constant name="escape" value="escape"/>
@@ -1528,6 +1533,8 @@
<cd:command name="placeheadnumber" value="placeheadnumber"/>
<cd:command name="definepagebreak" value="definepagebreak"/>
<cd:command name="definecolumnbreak" value="definecolumnbreak"/>
+ <cd:command name="definemathalignment" value="definemathalignment"/>
+ <cd:command name="setupmathalignment" value="setupmathalignment"/>
</cd:commands>
<cd:commands>