summaryrefslogtreecommitdiff
path: root/tex
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2005-08-15 00:00:00 +0200
committerHans Hagen <pragma@wxs.nl>2005-08-15 00:00:00 +0200
commitf8482bca2d7d031de38b8c751aadf5e2523f1a52 (patch)
treee4d206aab12d18e9a7b3e449e2c87ac0e9e7f9da /tex
parent94afc97dd44b93da18e681e265b3c2b8666cd3e6 (diff)
downloadcontext-f8482bca2d7d031de38b8c751aadf5e2523f1a52.tar.gz
stable 2005.08.15
Diffstat (limited to 'tex')
-rw-r--r--tex/context/base/colo-ini.tex6
-rw-r--r--tex/context/base/cont-new.tex16
-rw-r--r--tex/context/base/context.tex8
-rw-r--r--tex/context/base/core-fnt.tex5
-rw-r--r--tex/context/base/core-grd.tex52
-rw-r--r--tex/context/base/core-lst.tex44
-rw-r--r--tex/context/base/core-ntb.tex1
-rw-r--r--tex/context/base/core-reg.tex2
-rw-r--r--tex/context/base/core-sec.tex150
-rw-r--r--tex/context/base/core-spa.tex21
-rw-r--r--tex/context/base/enco-ans.tex49
-rw-r--r--tex/context/base/enco-ec.tex31
-rw-r--r--tex/context/base/enco-il2.tex49
-rw-r--r--tex/context/base/enco-ini.tex382
-rw-r--r--tex/context/base/enco-mis.tex33
-rw-r--r--tex/context/base/enco-pfr.tex121
-rw-r--r--tex/context/base/enco-pol.tex55
-rw-r--r--tex/context/base/enco-qx.tex48
-rw-r--r--tex/context/base/enco-run.tex12
-rw-r--r--tex/context/base/enco-tbo.tex6
-rw-r--r--tex/context/base/font-ini.tex57
-rw-r--r--tex/context/base/font-unk.tex22
-rw-r--r--tex/context/base/math-ini.tex20
-rw-r--r--tex/context/base/mult-com.tex2
-rw-r--r--tex/context/base/mult-sys.tex2
-rw-r--r--tex/context/base/page-ini.tex12
-rw-r--r--tex/context/base/page-lin.tex26
-rw-r--r--tex/context/base/page-lyr.tex2
-rw-r--r--tex/context/base/regi-ini.tex21
-rw-r--r--tex/context/base/regi-lat.tex120
-rw-r--r--tex/context/base/s-abr-01.tex1
-rw-r--r--tex/context/base/sort-def.tex352
-rw-r--r--tex/context/base/sort-ini.tex101
-rw-r--r--tex/context/base/sort-lan.tex107
-rw-r--r--tex/context/base/sort-new.tex59
-rw-r--r--tex/context/base/supp-pat.tex31
-rw-r--r--tex/context/base/symb-mis.tex10
-rw-r--r--tex/context/base/syst-etx.tex20
-rw-r--r--tex/context/base/type-dis.tex10
-rw-r--r--tex/context/base/type-enc.tex114
-rw-r--r--tex/context/base/type-exa.tex30
-rw-r--r--tex/context/base/type-ini.tex2
-rw-r--r--tex/context/base/type-map.tex10
-rw-r--r--tex/context/base/type-siz.tex8
-rw-r--r--tex/context/base/type-spe.tex2
-rw-r--r--tex/context/base/type-syn.tex60
-rw-r--r--tex/context/base/unic-ini.tex2
-rw-r--r--tex/context/interface/cont-cz.xml13
-rw-r--r--tex/context/interface/cont-de.xml13
-rw-r--r--tex/context/interface/cont-en.xml11
-rw-r--r--tex/context/interface/cont-it.xml13
-rw-r--r--tex/context/interface/cont-nl.xml13
-rw-r--r--tex/context/interface/cont-ro.xml13
-rw-r--r--tex/context/interface/keys-cz.xml4
-rw-r--r--tex/context/interface/keys-de.xml4
-rw-r--r--tex/context/interface/keys-en.xml4
-rw-r--r--tex/context/interface/keys-it.xml4
-rw-r--r--tex/context/interface/keys-nl.xml4
-rw-r--r--tex/context/interface/keys-ro.xml4
-rw-r--r--tex/context/sample/reich.tex22
60 files changed, 1923 insertions, 493 deletions
diff --git a/tex/context/base/colo-ini.tex b/tex/context/base/colo-ini.tex
index 9748afe02..285c01486 100644
--- a/tex/context/base/colo-ini.tex
+++ b/tex/context/base/colo-ini.tex
@@ -1637,9 +1637,9 @@
\fi\fi
\processaction
[\@@clstate]
- [\v!global=>\ifincolor\else\showmessage\m!colors1\colorstyle\fi
+ [ \v!global=>\ifincolor\else\showmessage\m!colors1\colorstyle\fi
\incolortrue\localcolorfalse,
- \v!local=>\ifincolor\else\showmessage\m!colors2\colorstyle\fi
+ \v!local=>\ifincolor\else\showmessage\m!colors2\colorstyle\fi
\incolortrue\localcolortrue,
\v!start=>\ifincolor\else\showmessage\m!colors1\colorstyle\fi
\incolortrue\localcolorfalse
@@ -1741,7 +1741,7 @@
\def\@@currentcolorname {\??cl\the\colorlevel C}
\def\@@currentcolorstop {\??cl\the\colorlevel S}
-\def\@@currenttransparent{\??cl\the\colorlevel T}
+%def\@@currenttransparent{\??cl\the\colorlevel T}
\def\currentcolor
{\csname
diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex
index 03099d451..c8c84b4c8 100644
--- a/tex/context/base/cont-new.tex
+++ b/tex/context/base/cont-new.tex
@@ -24,6 +24,9 @@
\writestatus{\m!systems}{beware: some patches loaded from cont-new.tex}
+\def\headparameter#1% to do: everywhere in core-sec
+ {\csname\??ko\currenthead#1\endcsname}
+
% supp-fil.tex
% <?xml version='1.0' standalone='yes'?>
@@ -63,6 +66,8 @@
\chardef\preprocessmode\plusone
#1{#2}\donothing{\readfile{#2}\donothing\donothing}}
+\beginETEX
+
\let\oldfilename\empty
\let\newfilename\empty
@@ -107,6 +112,15 @@
\preprocessfile\inputfilename
\endinput
\normalinput\inputfilename\relax}}
+
+\endETEX
+
+\beginTEX
+
+\def\preprocessfile#1%
+ {\chardef\preprocessmode\zerocount}
+
+\endTEX
% The following may be a solution for the fact that one cannot
% change catcodes of characters like : and ; inside an environment.
@@ -2003,6 +2017,8 @@
\ifx\@@cl@@s\empty
\let\@@cl@@s\@@rsscreen
\fi
+ \let\@@cl@@t\@@cl@@z % else we get rogue
+ \let\@@cl@@a\@@cl@@z % transpancies
\setevalue{\??cr\??rs}{\colorSpattern}}
% beware, don't add extra grouping, else color in tables
diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex
index c53968a45..43446058f 100644
--- a/tex/context/base/context.tex
+++ b/tex/context/base/context.tex
@@ -31,7 +31,7 @@
%D 2004.8.30 the low level interface is english. Watch out and adapt
%D your styles an modules.
-\def\contextversion{2005.08.03}
+\def\contextversion{2005.08.15}
%D Welcome to the main module. When this module is ran through
%D \type{initex} or \type {tex -i} or \type {whatevertex} using
@@ -315,6 +315,8 @@
\input font-uni.tex
\input font-bfm.tex
+\input enco-pfr.tex % uses \everyfont
+
\input type-ini.tex
\input type-def.tex
@@ -341,6 +343,10 @@
\input lang-spa.tex
+%D Sorting:
+
+% not yet: \input sort-ini.tex
+
%D Only the basic XML parser and remapper are part of the core.
%D These macrosa re loaded last since they overload and|/|or
%D extend previously defined ones.
diff --git a/tex/context/base/core-fnt.tex b/tex/context/base/core-fnt.tex
index 99229b946..6a55849f4 100644
--- a/tex/context/base/core-fnt.tex
+++ b/tex/context/base/core-fnt.tex
@@ -246,12 +246,9 @@
\unexpanded\def\WORD#1%
{\bgroup
- \the\everyuppercase
\let\smallcapped\firstofoneargument
\let\WORD\firstofoneargument
- \uppercase{#1}% No expansion here, otherwise \getvalue problems!
- %\edef\next{#1}% keep this to prevent roll back
- %\uppercase\expandafter{\next}% keep this to prevent roll back
+ \douppercase{#1}%
\egroup}
\unexpanded\def\WORDS#1%
diff --git a/tex/context/base/core-grd.tex b/tex/context/base/core-grd.tex
index f36aa020e..ec196af1e 100644
--- a/tex/context/base/core-grd.tex
+++ b/tex/context/base/core-grd.tex
@@ -317,12 +317,22 @@
% \expandafter\dodosnaptogrid
% \fi}
+% \def\dosnaptogrid[#1]%
+% {\resetlastlinewidth % maybe in more places, otherwise spacing gets messed up
+% \ifgridsnapping
+% \iffirstargument\doifsomething{#1}{\moveongrid[#1]}\fi
+% \expandafter\dodosnaptogrid
+% \fi}
+
\def\dosnaptogrid[#1]%
{\resetlastlinewidth % maybe in more places, otherwise spacing gets messed up
- \ifgridsnapping
- \iffirstargument\doifsomething{#1}{\moveongrid[#1]}\fi
- \expandafter\dodosnaptogrid
- \fi}
+ \doifinsetelse\v!force{#1}%
+ {\moveongrid[#1]%
+ \dodosnaptogrid}
+ {\ifgridsnapping
+ \doifsomething{#1}{\moveongrid[#1]}%
+ \expandafter\dodosnaptogrid
+ \fi}}
% \def\forcedpresnapcorrection % test this on 'details'
% {\ifforcepresnap
@@ -793,13 +803,12 @@
\global\chardef\@@alignsnapdepth0
\def\@@unknowngriddisplacement
- {\global\chardef\@@alignsnapbox3
+ {\global\chardef\@@alignsnapbox\plusthree
\global\let\@@alignsnapamount\commalistelement}
\def\domoveongrid[#1]%
{\ifgridsnapping\doifsomething{#1}{\dodomoveongrid[#1]}\fi}
-
\def\dodomoveongrid[#1]% some day : speed up
{\global\chardef\@@alignsnap\zerocount
\global\chardef\@@alignsnapbox\zerocount
@@ -818,21 +827,22 @@
-\v!bottom=>\gridwarning-\negativeextrasnap\extrasnapafter,
-\v!both=>\negativeextrasnap\extrasnaparound,
\v!text=>\global\chardef\@@alignsnapmethod\plusone, % accurate calculations
- \v!page=>\global\chardef\@@alignsnap1, % topskip
- \v!high=>\global\chardef\@@alignsnap2,
- \v!middle=>\global\chardef\@@alignsnap3,
- \v!low=>\global\chardef\@@alignsnap4,
- \v!fit=>\global\chardef\@@alignsnapbox1, % new
- \v!broad=>\global\chardef\@@alignsnapbox2, % new
- \v!depth=>\global\chardef\@@alignsnapdepth1, % new
- \v!line=>\global\chardef\@@alignsnapbox3
-% \global\chardef\@@alignsnapdepth1
- \global\chardef\@@alignsnap4,
- \v!reset=>\positiveextrasnap\extrasnapreset,
- \v!none=>\global\chardef\@@alignsnap0
- \global\chardef\@@alignsnapbox0,
- \s!default=>,
- \s!unknown=>\@@unknowngriddisplacement]}
+ \v!page=>\global\chardef\@@alignsnap\plusone, % topskip
+ \v!high=>\global\chardef\@@alignsnap\plustwo,
+ \v!middle=>\global\chardef\@@alignsnap\plusthree,
+ \v!low=>\global\chardef\@@alignsnap\plusfour,
+ \v!fit=>\global\chardef\@@alignsnapbox\plusone, % new
+ \v!broad=>\global\chardef\@@alignsnapbox\plustwo, % new
+ \v!depth=>\global\chardef\@@alignsnapdepth\plusone, % new
+ \v!line=>\global\chardef\@@alignsnapbox\plusthree
+% \global\chardef\@@alignsnapdepth\plusone
+ \global\chardef\@@alignsnap\plusfour,
+ \v!reset=>\positiveextrasnap\extrasnapreset,
+ \v!none=>\global\chardef\@@alignsnap\zerocount
+ \global\chardef\@@alignsnapbox\zerocount,
+ \v!force=>, % turns on grid snapping even when not on
+ \s!default=>,
+ \s!unknown=>\@@unknowngriddisplacement]}
\def\moveongrid
{\dosingleempty\domoveongrid}
diff --git a/tex/context/base/core-lst.tex b/tex/context/base/core-lst.tex
index 820789fd9..7aa6f18c2 100644
--- a/tex/context/base/core-lst.tex
+++ b/tex/context/base/core-lst.tex
@@ -212,6 +212,7 @@
\c!textcommand=\listtextcommand,
\c!pagecommand=\listpagecommand,
\c!pagenumber=\v!yes,
+\c!sectionnumber=\v!yes,
\c!pageboundaries=,
\c!margin=\!!zeropoint,
\c!aligntitle=,
@@ -236,6 +237,7 @@
\c!textstyle,\c!textcolor,\c!textcommand,
\c!pagestyle,\c!pagecommand,\c!pagecolor,
\c!numberstyle,\c!numbercolor,\c!numbercommand,
+\c!sectionnumber,
\c!pagenumber,\c!pageboundaries,\c!margin,\c!symbol,\c!limittext,
\c!aligntitle,\c!before,\c!after,\c!inbetween,\v!part\c!number,\c!label]%
\getparameters[\??li#1][#3]}}%
@@ -429,6 +431,27 @@
\setvalue{\@@dodolistelement\v!horizontal}{\def\dosomelistelement{\dodofreehlistelement}}
\setvalue{\@@dodolistelement\v!command }{\let\dosomelistelement\dodocommandlistelement}
+% \setuplist
+% [section]
+% [alternative=MyListItem,
+% after=\blank,
+% before=\blank]
+%
+% \definelistplacement[MyListItem][none]#1#2#3%
+% {(#1) (#2) (#3)}
+
+\def\definelistplacement
+ {\dodoubleempty\dodefinelistplacement}
+
+\def\dodefinelistplacement[#1][#2]%
+ {\setvalue{\@@dodolistelement#1}%
+ {\doifelsenothing{#2}
+ {\getvalue{\@@dodolistelement\v!command}}%
+ {\executeifdefined{\@@dodolistelement#2}
+ {\getvalue{\@@dodolistelement\v!command}}}%
+ \setvalue{\??li\currentlist\c!command}{\getvalue{\@@dodolistelement::#1}}}%
+ \setvalue{\@@dodolistelement::#1}}
+
% don't mess arround with endgraf/grouping else we loose leftskip
% \strippedcsname\dodolistelement
@@ -494,9 +517,12 @@
\vbox
{\forgetall
\makelistelement\v!all
- {\makelistelement\v!sectionnumber
- {\donestedlistattributes\c!numberstyle\c!numbercolor
- {\listparameter\c!numbercommand{\currentlistsymbol}}}%
+ {%
+\doif{\listparameter\c!sectionnumber}\v!yes
+ {\makelistelement\v!sectionnumber
+ {\donestedlistattributes\c!numberstyle\c!numbercolor
+ {\listparameter\c!numbercommand{\currentlistsymbol}}}%
+}%
\makelistelement\v!text
{\donestedlistattributes\c!textstyle\c!textcolor
{\let\\=\newlineinlist
@@ -559,15 +585,23 @@
% \dontleavehmode % new, else no margin, but wrong, better (else \indent as well):
\noindent
\makelistelement\v!all
- {\setlocalhsize \hsize\localhsize \hbox to \hsize
+ {\setlocalhsize
+ \hsize\localhsize
+ \hbox to \hsize
{\forgetall
\dostartlistattributes\c!style\c!color\empty
\!!widthb\hsize
+\doifelse{\listparameter\c!sectionnumber}\v!yes{%
\setbox2\hbox \ifdim\!!widtha>\zeropoint to \!!widtha \fi
{\makelistelement\v!sectionnumber
{\donestedlistattributes\c!numberstyle\c!numbercolor
{\listparameter\c!numbercommand{\currentlistsymbol}}%
\hfill}}%
+}{%
+ \!!widtha\zeropoint
+ \!!widthc\zeropoint
+ \setbox2\hbox{}%
+}
\setbox4\hbox
{\doif{\listparameter\c!pagenumber}\v!yes
{\doifsomething{#5} % \listwidth is new ; temp hack
@@ -676,6 +710,7 @@
{\listparameter\c!pagecommand
{\pageprefix\??li\currentlist[#5]%
\translatednumber[#5]}}}}}}%
+\doif{\listparameter\c!sectionnumber}\v!yes{%
\donetrue
\doifnothing{#3}{\doifnothing{\listparameter\c!symbol}\donefalse}%
% == \doifnothing{#3\listparameter\c!symbol}\donefalse
@@ -689,6 +724,7 @@
\hskip.5em}%
\nobreak
\fi
+}%
\tolerance3500 % niet zomaar veranderen
\donestedlistattributes\c!textstyle\c!textcolor
{\let\\=\newlineinlist
diff --git a/tex/context/base/core-ntb.tex b/tex/context/base/core-ntb.tex
index 68a81d57d..080d5c31a 100644
--- a/tex/context/base/core-ntb.tex
+++ b/tex/context/base/core-ntb.tex
@@ -401,7 +401,6 @@
\def\bTABLE
{\dosingleempty\dobTABLE}
-
\def\dobTABLE[#1]%
{\pushTBL
% box not here
diff --git a/tex/context/base/core-reg.tex b/tex/context/base/core-reg.tex
index 0fad94e5b..431cee6b9 100644
--- a/tex/context/base/core-reg.tex
+++ b/tex/context/base/core-reg.tex
@@ -410,7 +410,7 @@
\def\doregistercharacterA[#1]#2{\doregistercharactera[#1]{\WORD{#2}}}
\def\doregistercharacterB[#1]#2{\doregistercharacterb[#1]{\WORD{#2}}}
-%D Don't use \type{\string#2}; another hack isneeded, since
+%D Don't use \type{\string#2}; another hack is needed, since
%D \type {#2} can be \type {\string} itself.
\def\doregisterreference[#1]#2%
diff --git a/tex/context/base/core-sec.tex b/tex/context/base/core-sec.tex
index 74bb7814a..1d91e66e0 100644
--- a/tex/context/base/core-sec.tex
+++ b/tex/context/base/core-sec.tex
@@ -1079,6 +1079,10 @@
{\xdef\@@kolevel{\getvalue{\??se\@@sectie\c!level}}%
\nobreak}
+\def\localheadheight {\strutht}
+\def\localheaddepth {\strutdp}
+\def\localheadlineheight{\lineheight}
+
\def\dolocalheadsetup#1% koppeling met standaard kopcommando / engels
{\forgetall % traag dus ...
\doifvaluesomething{\??ko#1\c!align} % wordt al expanded in spa
@@ -1300,6 +1304,9 @@
\let\localkopprefix\empty
+% \def\headparameter#1% to do: everywhere in core-sec
+% {\csname\??ko\currenthead#1\endcsname}
+
\def\dodododosomekop#1[#2]#3#4% [ref] {number} {title}
{\def\currenthead{#1}% dus #1 overal vervangen
\let\finalsectionnumber\dofinalsectionnumber % overloaded ungrouped -)
@@ -1478,7 +1485,7 @@
\rawreference\s!sec{#2}{{#3}{\asciititle}}%
\dowritetolist\@@koppeling{#3}{#4}\v!head
\writesection{#1}{#3}{#4}%
- \else
+ \else % hm, also no own number
\rawreference\s!sec{#2}{{#3}{\asciititle}}%
\dowritetolist\@@koppeling{}{#4}\v!head
\writesection{#1}{-}{#4}%
@@ -1675,8 +1682,10 @@
\placeheadmargintexts{#1}% binnen #3?
\ifdisplaysectionhead
\getvalue{\??ko#1\c!textcommand}%
- {\setstrut\begstrut#3\endstrut}%
- \xdef\localheaddepth{\the\strutdp}%
+ {\setstrut\begstrut#3\endstrut}% can be nilled with \setnostrut
+ \xdef\localheadheight {\the\strutht}%
+ \xdef\localheaddepth {\the\strutdp}%
+ \xdef\localheadlineheight{\the\lineheight}%
% == \globallet\localheaddepth\strutdepth
\else
\getvalue{\??ko#1\c!textcommand}{#3}%
@@ -1714,7 +1723,7 @@
\placeheadmargintexts{#1}% binnen #3?
\ifdisplaysectionhead
\getvalue{\??ko#1\c!numbercommand}%
- {\setstrut\begstrut#3\endstrut}%
+ {\setstrut\begstrut#3\endstrut}% can be nilled with \setnostrut
\else
\getvalue{\??ko#1\c!numbercommand}{#3}%
\fi
@@ -1733,8 +1742,10 @@
\placeheadmargintexts{#1}% binnen #3?
\ifdisplaysectionhead
\getvalue{\??ko#1\c!textcommand}%
- {\setstrut\begstrut#4\endstrut}%
- \xdef\localheaddepth{\the\strutdp}%
+ {\setstrut\begstrut#4\endstrut}% can be nilled with \setnostrut
+ \xdef\localheadheight {\the\strutht}%
+ \xdef\localheaddepth {\the\strutdp}%
+ \xdef\localheadlineheight{\the\lineheight}%
% == \globallet\localheaddepth\strutdepth
\else
\getvalue{\??ko#1\c!textcommand}{#4}%
@@ -1753,7 +1764,9 @@
{\bgroup
\setsystemmode{#1}% to be documented
\ifgridsnapping\iftracegridsnapping\showstruts\fi\fi
- \gdef\localheaddepth{\strutdp}%
+ \xdef\localheadheight {\the\strutht}%
+ \xdef\localheaddepth {\the\strutdp}%
+ \xdef\localheadlineheight{\the\lineheight}%
% == \globallet\localheaddepth\strutdp
\everypar\emptytoks % needed indeed
\noindent % ipv \whitespace elders, na \forgetall !
@@ -1779,13 +1792,125 @@
\def\localheadsetup{\dolocalheadsetup{#1}}%
\startsynchronization}
+% \def\endheadplacement#1#2%
+% {\doifelsevalue{\??rf#1\c!state}\v!start
+% {\doifvaluenothing{\??ko#1\c!file}{\autocrossdocumentfalse}}
+% {\autocrossdocumentfalse}%
+% % no message needed here, should be a proper switch
+% % \let\unknownreference\gobbleoneargument
+% \ifdisplaysectionhead
+% \let\headlastlinewidth\!!zeropoint
+% \snaptogrid[\getvalue{\??ko#1\c!grid}]\hbox
+% {\hskip\localheadskip
+% \hskip\getvalue{\??ko#1\c!margin}\relax
+% \iflocation
+% \ifautocrossdocument
+% \doifreferencefoundelse{\getvalue{\??ko#1\c!file}::#1}
+% {\edef\currentinnerreference{\s!aut:\currenttextreference}% stored in
+% \gotoouterlocation{}{\box0}} % text slot
+% {\hbox{\box0}}%
+% \else
+% \hbox{\box0}%
+% \fi
+% \else
+% \hbox{\box0}%
+% \fi}%
+% \doflushnotes % new, not really needed
+% \endgraf
+% \nointerlineskip
+% \dosomebreak\nobreak
+% #2%
+% \else
+% \strut
+% \doflushnotes % new, here since we're in par mode
+% \iflocation
+% \ifautocrossdocument
+% \hhboxindent=\ifcontinuoushead\headlastlinewidth\else\zeropoint\fi
+% \unhhbox0\with{\gotobox{\box\hhbox}[\getvalue{\??ko#1\c!file}::#1]}%
+% \advance\lasthhboxwidth by \numberheaddistance
+% \xdef\headlastlinewidth{\the\lasthhboxwidth}%
+% \else
+% \unhbox0
+% \globallet\headlastlinewidth\!!zeropoint
+% \fi
+% \else
+% \unhbox0
+% \globallet\headlastlinewidth\!!zeropoint
+% \fi
+% #2%
+% \dimen0=\numberheaddistance
+% \hskip\dimen0 \!!plus \dimen0 \!!minus .25\dimen0
+% \hskip\headsignal\ignorespaces
+% \fi
+% \ifdisplaysectionhead \ifvmode
+% \ifgridsnapping % important, font related depth, see comment
+% \prevdepth\strutdp
+% \else
+% \prevdepth\localheaddepth
+% \fi
+% \fi \fi
+% \stopsynchronization
+% \egroup
+% \egroup
+% \ifdisplaysectionhead
+% \dochecknextindentation{\??ko#1}%
+% \else
+% \nonoindentation % recently added, was a bug
+% \fi}
+
+% \setuphead[chapter] [style=\bfd,after=,hang=line] % fit broad 2
+% \setuphead[section] [style=\bfc,after=,hang=line]
+% \setuphead[subsection] [style=\bfb,after=,hang=line]
+% \setuphead[subsubsection] [style=\bfa,after=,hang=line]
+% \setuphead[subsubsubsection][style=\bf ,after=,hang=line]
+%
+% \chapter {Test} \input tufte \page
+% \section {Test} \input tufte \page
+% \subsection {Test} \input tufte \page
+% \subsubsection {Test} \input tufte \page
+% \subsubsubsection{Test} \input tufte \page
+%
+% \chapter {Test\\Test} \input tufte \page
+% \section {Test\\Test} \input tufte \page
+% \subsection {Test\\Test} \input tufte \page
+% \subsubsection {Test\\Test} \input tufte \page
+% \subsubsubsection{Test\\Test} \input tufte \page
+
+\def\hangheadplacement
+ {\scratchdimen\localheadlineheight
+ \bgroup
+ \openlineheight\scratchdimen
+ \scratchdimen\ht0
+ \advance\scratchdimen\dp0
+ \getnoflines\scratchdimen
+ \advance\noflines\minusone
+ \expanded{\egroup\noflines\the\noflines}% brrr
+ \setbox0\hbox{\lower\noflines\scratchdimen\box0}%
+ \scratchdimen\ht0
+ \advance\scratchdimen\dp0
+ \advance\scratchdimen-\localheadheight
+ \advance\scratchdimen+\strutdp
+ \ht0 \strutht
+ \dp0 \strutdp
+ \edef\localheaddepth{\the\strutdp}}
+
\def\endheadplacement#1#2%
{\doifelsevalue{\??rf#1\c!state}\v!start
{\doifvaluenothing{\??ko#1\c!file}{\autocrossdocumentfalse}}
{\autocrossdocumentfalse}%
% no message needed here, should be a proper switch
- % \let\unknownreference\gobbleoneargument
+\noflines\zerocount
\ifdisplaysectionhead
+% new
+\processaction
+ [\getvalue{\??ko#1\c!hang}]
+ [ \v!line=>\hangheadplacement\noflines\zerocount,
+ \v!broad=>\hangheadplacement\getnoflines\scratchdimen,
+ \v!fit=>\hangheadplacement\getrawnoflines\scratchdimen,
+ \v!none=>\noflines\zerocount,
+ \v!default=>\noflines\zerocount,
+ \v!unknown=>\hangheadplacement\noflines0\commalistelement\advance\noflines\minusone]%
+% so far
\let\headlastlinewidth\!!zeropoint
\snaptogrid[\getvalue{\??ko#1\c!grid}]\hbox
{\hskip\localheadskip
@@ -1804,6 +1929,9 @@
\fi}%
\doflushnotes % new, not really needed
\endgraf
+\ifnum\noflines>\zerocount
+ \dorecurse\noflines{\nointerlineskip\dosomebreak\nobreak\strut\endgraf}%
+\fi
\nointerlineskip
\dosomebreak\nobreak
#2%
@@ -2039,6 +2167,7 @@
\c!aligntitle=\@@koaligntitle,
\c!tolerance=\@@kotolerance,
\c!indentnext=\@@koindentnext,
+ \c!hang=\@@kohang,
\c!file=,
\c!expansion=,
\c!grid=,
@@ -2056,7 +2185,7 @@
% new per 20/03/3002 (o-pbu-l) / was too confusing
% \c!numberstyle,\c!textstyle,\c!expansion,
% again too confusing
- \c!align,\c!aligntitle,\c!tolerance,\c!grid,
+ \c!align,\c!aligntitle,\c!tolerance,\c!grid,\c!hang,
\c!numbercommand,\c!textcommand,\c!margintext,\c!margin]}}%
\getparameters[\??ko#1][#2]%
\doifsomething{\getvalue{\??ko#1\c!section}}
@@ -2082,7 +2211,7 @@
% new per 20/03/3002 (o-pbu-l) / was too confusing
% \c!numberstyle,\c!textstyle,\c!expansion,
% again too confusing
- \c!align,\c!aligntitle,\c!tolerance,\c!grid,
+ \c!align,\c!aligntitle,\c!tolerance,\c!grid,\c!hang,
\c!numbercommand,\c!textcommand,\c!margintext,\c!margin]%
\getparameters[\??ko#1][\c!expansion=]% iig een value, rather fuzzy
\definemarking[#1][#2]%
@@ -2144,6 +2273,7 @@
\c!tolerance=,
\c!indentnext=\v!no,
\c!margin=\zeropoint,
+ \c!hang=\v!none,
\c!command=]
\definesectionblock [\v!frontpart] [\v!frontmatter] [\c!number=\v!no]
diff --git a/tex/context/base/core-spa.tex b/tex/context/base/core-spa.tex
index c96405246..db13c4992 100644
--- a/tex/context/base/core-spa.tex
+++ b/tex/context/base/core-spa.tex
@@ -2019,6 +2019,25 @@
\let\restoreinterlinespace\relax
+\beginTEX
+
+\def\saveinterlinespace
+ {\scratchdimen\normallineheight
+ \edef\restoreinterlinespace
+ {\lineheight \the\lineheight
+ \openstrutheight \the\openstrutheight
+ \openstrutdepth \the\openstrutdepth
+ \openlineheight \the\openlineheight
+ \normalbaselineskip \the\normalbaselineskip
+ \normallineskip \the\normallineskip
+ \normallineskiplimit\the\normallineskiplimit
+ \noexpand\def\noexpand\normallineheight{\the\scratchdimen}%
+ \noexpand\normalbaselines}}
+
+\endTEX
+
+\beginETEX
+
\def\saveinterlinespace
{\edef\restoreinterlinespace
{\lineheight \the\lineheight
@@ -2031,6 +2050,8 @@
\noexpand\def\noexpand\normallineheight{\the\dimexpr\normallineheight\relax}%
\noexpand\normalbaselines}}
+\endETEX
+
% plain definition:
%
% \def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi}
diff --git a/tex/context/base/enco-ans.tex b/tex/context/base/enco-ans.tex
index 6bd7df7bf..282f33b3e 100644
--- a/tex/context/base/enco-ans.tex
+++ b/tex/context/base/enco-ans.tex
@@ -17,40 +17,19 @@
\startmapping[texnansi]
-\definecasemap 231 231 199 \definecasemap 199 231 199
-
-\definecasemap 228 228 196 \definecasemap 196 228 196
-\definecasemap 235 235 203 \definecasemap 203 235 203
-\definecasemap 239 239 207 \definecasemap 207 239 207
-\definecasemap 246 246 214 \definecasemap 214 246 214
-\definecasemap 252 252 220 \definecasemap 220 252 220
-\definecasemap 255 255 159 \definecasemap 159 255 159
-
-\definecasemap 225 225 193 \definecasemap 193 225 193
-\definecasemap 233 233 201 \definecasemap 201 233 201
-\definecasemap 237 237 205 \definecasemap 205 237 205
-\definecasemap 243 243 211 \definecasemap 211 243 211
-\definecasemap 250 250 218 \definecasemap 218 250 218
-\definecasemap 253 253 221 \definecasemap 221 253 221
-
-\definecasemap 224 224 192 \definecasemap 192 224 192
-\definecasemap 232 232 200 \definecasemap 200 232 200
-\definecasemap 236 236 204 \definecasemap 204 236 204
-\definecasemap 242 242 210 \definecasemap 210 242 210
-\definecasemap 249 249 217 \definecasemap 217 249 217
-
-\definecasemap 226 226 194 \definecasemap 194 226 194
-\definecasemap 234 234 202 \definecasemap 202 234 202
-\definecasemap 238 238 206 \definecasemap 206 238 206
-\definecasemap 244 244 212 \definecasemap 212 244 212
-\definecasemap 251 251 219 \definecasemap 219 251 219
-
-\definecasemap 227 227 195 \definecasemap 195 227 195
-\definecasemap 241 241 209 \definecasemap 209 241 209
-\definecasemap 245 245 213 \definecasemap 213 245 213
-
-\definecasemap 240 240 208 \definecasemap 208 240 208
-\definecasemap 254 254 222 \definecasemap 222 254 222
+\resetcaserange 128 to 158
+\resetcaserange 160 to 191
+\resetcaserange 215 to 215
+\resetcaserange 247 to 247
+
+\definecasemaps 192 to 214 lc +32 uc 0
+\definecasemaps 224 to 246 lc 0 uc -32
+\definecasemaps 216 to 222 lc +32 uc 0
+\definecasemaps 248 to 254 lc 0 uc -32
+
+\definecaseself 223
+\definecaseswap 156 140
+\definecaseswap 255 159
% needed by some patterns:
@@ -63,8 +42,6 @@
% \definecaseself 145 % quoteleft
% \definecaseself 146 % quoteright
-\definecaseself 223
-
\stopmapping
\startencoding[texnansi]
diff --git a/tex/context/base/enco-ec.tex b/tex/context/base/enco-ec.tex
index 78b5212f6..58ccd0400 100644
--- a/tex/context/base/enco-ec.tex
+++ b/tex/context/base/enco-ec.tex
@@ -23,27 +23,24 @@
\startmapping[ec]
-%D The case mappings are fairly simple.
+\resetcaserange 141 to 141
+\resetcaserange 149 to 149
+\definecasemap 159 to 159
+\resetcaserange 173 to 173
+\resetcaserange 180 to 181
+\resetcaserange 184 to 184
+\resetcaserange 189 to 191
-%\definecasemaps 128 to 156 lc 0 uc 0
+\definecasemap 157 `i 157
+\definecasemap 158 158 `D
-%D 157 Idotaccent
-%D 158 dcroat (with bar)
-%D 159 sectionmark
+\definecasemaps 128 to 156 lc +32 uc 0
+\definecasemaps 160 to 188 lc 0 uc -32
-\definecasemaps 160 to 188 lc +32 uc 0
+\definecasemaps 192 to 222 lc +32 uc 0
+\definecasemaps 224 to 254 lc 0 uc -32
-%D 189 exclamdown
-%D 190 questiondown
-%D 191 sterling pound
-
-\definecasemaps 192 to 255 lc 0 uc -32
-
-%D Less systematic (probably incomplete)
-
-\definecasemap 187 187 155 % z dotaccent
-\definecasemap 155 187 155 % Z dotaccent
-\definecasemap 158 158 68 % dmacron
+\definecaseswap 255 223
%D Some languages need this:
diff --git a/tex/context/base/enco-il2.tex b/tex/context/base/enco-il2.tex
index f5a118845..6f1ce351f 100644
--- a/tex/context/base/enco-il2.tex
+++ b/tex/context/base/enco-il2.tex
@@ -17,30 +17,31 @@
\startmapping[il2]
-\definecasemap 127 to 255 % we map them all to themselves
-
-\definecasemap 165 181 165 \definecasemap 169 185 169
-\definecasemap 171 187 171 \definecasemap 174 190 174
-\definecasemap 181 181 165 \definecasemap 185 185 169
-\definecasemap 187 187 171 \definecasemap 190 190 174
-\definecasemap 192 224 192 \definecasemap 193 225 193
-\definecasemap 196 228 196 \definecasemap 197 229 197
-\definecasemap 200 232 200 \definecasemap 201 233 201
-\definecasemap 204 236 204 \definecasemap 205 237 205
-\definecasemap 207 239 207 \definecasemap 210 242 210
-\definecasemap 211 243 211 \definecasemap 212 244 212
-\definecasemap 214 246 214 \definecasemap 216 248 216
-\definecasemap 217 249 217 \definecasemap 218 250 218
-\definecasemap 220 252 220 \definecasemap 221 253 221
-\definecasemap 224 224 192 \definecasemap 225 225 193
-\definecasemap 228 228 196 \definecasemap 229 229 197
-\definecasemap 232 232 200 \definecasemap 233 233 201
-\definecasemap 236 236 204 \definecasemap 237 237 205
-\definecasemap 239 239 207 \definecasemap 242 242 210
-\definecasemap 243 243 211 \definecasemap 244 244 212
-\definecasemap 246 246 214 \definecasemap 248 248 216
-\definecasemap 249 249 217 \definecasemap 250 250 218
-\definecasemap 252 252 220 \definecasemap 253 253 221
+\resetcaserange 127 to 255 % we map them all to themselves
+
+\definecaseswap 184 152
+\definecaseswap 181 165
+\definecaseswap 185 169
+\definecaseswap 187 171
+\definecaseswap 190 174
+\definecaseswap 224 192
+\definecaseswap 225 193
+\definecaseswap 228 196
+\definecaseswap 229 197
+\definecaseswap 232 200
+\definecaseswap 233 201
+\definecaseswap 236 204
+\definecaseswap 237 205
+\definecaseswap 239 207
+\definecaseswap 242 210
+\definecaseswap 243 211
+\definecaseswap 244 212
+\definecaseswap 246 214
+\definecaseswap 248 216
+\definecaseswap 249 217
+\definecaseswap 250 218
+\definecaseswap 252 220
+\definecaseswap 253 221
\stopmapping
diff --git a/tex/context/base/enco-ini.tex b/tex/context/base/enco-ini.tex
index 1fe8a8503..c1120a508 100644
--- a/tex/context/base/enco-ini.tex
+++ b/tex/context/base/enco-ini.tex
@@ -120,6 +120,7 @@
\def\@map@{@m@ap@} % mapping prefix
\def\@reg@{@r@eg@} % regime prefix
\def\@fha@{@f@ha@} % font prefix
+\def\@cas@{@c@as@} % casecom prefix
\ifx\currentlanguage\undefined \let\currentlanguage\s!en \fi
@@ -411,17 +412,72 @@
% quite slow, esp when done at runtime
-\def\startmapping[#1]%
- {\pushmacro\charactermapping
+% \def\startmapping[#1]%
+% {\pushmacro\charactermapping
+% \edef\charactermapping{@#1@}%
+% \ifundefined{\@map@\charactermapping}%
+% \expandafter\newtoks\csname\@map@\charactermapping\endcsname
+% \fi}
+
+% \def\stopmapping
+% {%\setmappingtoks\showthe\mappingtoks
+% \popmacro\charactermapping}
+
+\def\startsavingmappingtoks#1%
+ {\bgroup
\edef\charactermapping{@#1@}%
- \doifundefined{\@map@\charactermapping}
- {\expanded{\newtoks\csname\@map@\charactermapping\endcsname}}}
+ \checkmappingtoks
+ \setmappingtoks
+ \the\mappingtoks}
+
+\def\stopsavingmappingtoks
+ {\global\mappingtoks\emptytoks
+ \dostepwiserecurse{128}{255}\plusone
+ {\edef\@@expanded
+ {\the\mappingtoks
+ \noexpand\checkregimecode\recurselevel\space
+ \lccode\recurselevel\ifnum\lccode\recurselevel=\zerocount\zerocount\else\space\the\lccode\recurselevel\space\fi
+ \uccode\recurselevel\ifnum\uccode\recurselevel=\zerocount\zerocount\else\space\the\uccode\recurselevel\space\fi
+ \ifnum\sfcode\recurselevel=\plusthousand\else\sfcode\recurselevel=\the\sfcode\recurselevel\space\fi
+ }%
+ \global\mappingtoks\expandafter{\@@expanded}}%
+ \egroup
+ \let\enabledmapping\empty
+ \enablemapping[\currentmapping]}
+
+\def\startmapping[#1]%
+ {\startsavingmappingtoks{#1}}
\def\stopmapping
- {\popmacro\charactermapping}
+ {\stopsavingmappingtoks}
+
+\def\optimizemapping[#1]%
+ {\startsavingmappingtoks{#1}%
+ % nothing, just an automatic cleanup
+ \stopsavingmappingtoks
+ % we need to resync
+ %\let\enabledmapping\relax
+ }%\enablemapping[\currentmapping]}
\def\setmappingtoks
- {\@EA\let\@EA\mappingtoks\csname\@map@\charactermapping\endcsname}
+ {\@EA\let\@EA\mappingtoks\csname\@map@\charactermapping\endcsname
+ \@EA\let\@EA\casecomtoks\csname\@cas@\charactermapping\endcsname}
+
+\def\checkmappingtoks
+ {\ifundefined{\@map@\charactermapping}%
+ \expandafter\newtoks\csname\@map@\charactermapping\endcsname
+ \fi
+ \ifundefined{\@cas@\charactermapping}%
+ \expandafter\newtoks\csname\@cas@\charactermapping\endcsname
+ \fi}
+
+\def\checkregimecode#1 %
+ {\ifprotectregime\ifnum\catcode#1=\active\else
+ \catcode#1\@@letter
+ \fi\else
+ \catcode#1\@@letter
+ \fi
+ \relax}
% \def\definecasemap #1 #2 #3 % code lower upper
% {\setmappingtoks
@@ -432,65 +488,95 @@
%
% faster
+% \def\definecasemap #1 #2 #3 % code lower upper
+% {\setmappingtoks
+% \doifelse{#2}{to}
+% {\mappingtoks\@EA{\the\mappingtoks\presetcaserange{#1}{#3}}}
+% {\mappingtoks\@EA{\the\mappingtoks\setcasemap #1 #2 #3 }}%
+% \ignorespaces}
+
\def\definecasemap #1 #2 #3 % code lower upper
- {\setmappingtoks
- \doifelse{#2}{to}
- {\mappingtoks\@EA{\the\mappingtoks\presetcaserange{#1}{#3}}}
- {\mappingtoks\@EA{\the\mappingtoks\setcasemap #1 #2 #3 }}%
+ {\doifelse{#2}{to}
+ {\presetcaserange{#1}{#3}}
+ {\lccode#1=#2\relax
+ \uccode#1=#3\relax}%
\ignorespaces}
%D Saves a few tokens
-\def\definecaseself #1 % lower=upper=self
- {\setmappingtoks
- \mappingtoks\@EA{\the\mappingtoks\setcaseself #1 }%
+% \def\definecaseswap #1 #2 % lower upper
+% {\setmappingtoks
+% \mappingtoks\@EA{\the\mappingtoks\setcaseswap #1 #2 }%
+% \ignorespaces}
+
+\def\definecaseswap #1 #2 % lower upper
+ {\lccode#1=#1\relax
+ \uccode#2=#2\relax
+ \lccode#2=#1\relax
+ \uccode#1=#2\relax
\ignorespaces}
-%D Watch the \type {\definecasemap 127 to 255} option!
-%D Dedicated to Taco there is also:
+% \def\definecaseself #1 % lower=upper=self
+% {\setmappingtoks
+% \mappingtoks\@EA{\the\mappingtoks\setcaseself #1 }%
+% \ignorespaces}
-\def\definecasemaps #1 to #2 lc #3 uc #4 % from to lc+ uc+
- {\dostepwiserecurse{#1}{#2}\plusone
- {\!!counta\recurselevel\advance\!!counta #3\relax
- \!!countb\recurselevel\advance\!!countb #4\relax
- \expanded{\definecasemap
- \recurselevel\space\the\!!counta\space\the\!!countb\space}}%
+\def\definecaseself #1 % lower=upper=self
+ {\lccode #1=#1\relax
+ \uccode #1=#1\relax
\ignorespaces}
-\beginETEX
-
- % much faster, prelude to run time loading
+%D Watch the \type {\definecasemap 127 to 255} option!
+%D Dedicated to Taco there is also:
- % \def\doexpandcasemaps#1#2#3#4%
- % {\ifnum#1>#2 %
- % \expandafter\gobblefivearguments
- % \else
- % \noexpand\setcasemap#1\space\the\numexpr#1+#3\relax\space\the\numexpr#1+#4\relax\space
- % \expandafter\expandafter\expandafter\doexpandcasemaps\expandafter
- % \fi\expandafter{\the\numexpr#1+1\relax}{#2}{#3}{#4}}
- %
- % \def\definecasemaps #1 to #2 lc #3 uc #4 % from to lc+ uc+
- % {\setmappingtoks
- % \expanded{\mappingtoks{\the\mappingtoks\doexpandcasemaps{#1}{#2}{#3}{#4}}}%
- % \ignorespaces}
+% \def\definecasemaps #1 to #2 lc #3 uc #4 % from to lc+ uc+
+% {\dostepwiserecurse{#1}{#2}\plusone
+% {\!!counta\recurselevel\advance\!!counta #3\relax
+% \!!countb\recurselevel\advance\!!countb #4\relax
+% \expanded{\definecasemap
+% \recurselevel\space\the\!!counta\space\the\!!countb\space}}%
+% \ignorespaces}
- \def\doexpandcasemaps#1%
- {\ifnum#1>\scratchcounter
- \expandafter\gobbletwoarguments
- \else
- \noexpand\setcasemap#1\space\the\numexpr#1+\!!counta\relax\space\the\numexpr#1+\!!countb\relax\space
- \expandafter\expandafter\expandafter\doexpandcasemaps\expandafter
- \fi\expandafter{\the\numexpr#1+\plusone\relax}}
+% \beginETEX
+
+% % much faster, prelude to run time loading
+
+% % \def\doexpandcasemaps#1#2#3#4%
+% % {\ifnum#1>#2 %
+% % \expandafter\gobblefivearguments
+% % \else
+% % \noexpand\setcasemap#1\space\the\numexpr#1+#3\relax\space\the\numexpr#1+#4\relax\space
+% % \expandafter\expandafter\expandafter\doexpandcasemaps\expandafter
+% % \fi\expandafter{\the\numexpr#1+1\relax}{#2}{#3}{#4}}
+% %
+% % \def\definecasemaps #1 to #2 lc #3 uc #4 % from to lc+ uc+
+% % {\setmappingtoks
+% % \expanded{\mappingtoks{\the\mappingtoks\doexpandcasemaps{#1}{#2}{#3}{#4}}}%
+% % \ignorespaces}
+
+% \def\doexpandcasemaps#1%
+% {\ifnum#1>\scratchcounter
+% \expandafter\gobbletwoarguments
+% \else
+% \noexpand\setcasemap#1\space\the\numexpr#1+\!!counta\relax\space\the\numexpr#1+\!!countb\relax\space
+% \expandafter\expandafter\expandafter\doexpandcasemaps\expandafter
+% \fi\expandafter{\the\numexpr#1+\plusone\relax}}
+
+% \def\definecasemaps #1 to #2 lc #3 uc #4 % from to lc+ uc+
+% {\setmappingtoks
+% \scratchcounter#2\relax
+% \!!counta#3\relax
+% \!!countb#4\relax
+% \expanded{\mappingtoks{\the\mappingtoks\doexpandcasemaps{#1}}}%
+% \ignorespaces}
- \def\definecasemaps #1 to #2 lc #3 uc #4 % from to lc+ uc+
- {\setmappingtoks
- \scratchcounter#2\relax
- \!!counta#3\relax
- \!!countb#4\relax
- \expanded{\mappingtoks{\the\mappingtoks\doexpandcasemaps{#1}}}%
- \ignorespaces}
+% \endETEX
-\endETEX
+\def\definecasemaps #1 to #2 lc #3 uc #4 % from to lc+ uc+
+ {\dostepwiserecurse{#1}{#2}\plusone
+ {\scratchcounter\recurselevel\advance\scratchcounter#3\lccode\recurselevel=\scratchcounter
+ \scratchcounter\recurselevel\advance\scratchcounter#4\uccode\recurselevel=\scratchcounter}%
+ \ignorespaces}
%D This can be used like:
%D
@@ -516,57 +602,77 @@
%
% faster:
-\def\resetcaserange #1 to #2
- {\setmappingtoks
- \dostepwiserecurse{#1}{#2}\plusone
- {\edef\@@expanded{\recurselevel\space}%
- \mappingtoks\@EA\@EA\@EA{\@EA\the\@EA\mappingtoks\@EA\setcasemap\@@expanded 0 0 }}%
- \ignorespaces}
-
-\beginETEX
+% \def\resetcaserange #1 to #2
+% {\setmappingtoks
+% \dostepwiserecurse{#1}{#2}\plusone
+% {\edef\@@expanded{\recurselevel\space}%
+% \mappingtoks\@EA\@EA\@EA{\@EA\the\@EA\mappingtoks\@EA\setcasemap\@@expanded 0 0 }}%
+% \ignorespaces}
- % much faster, prelude to run time loading
+% \beginETEX
+
+% % much faster, prelude to run time loading
+
+% % \def\doexpandcaserange#1#2%
+% % {\ifnum#1>#2 %
+% % \expandafter\gobblethreearguments
+% % \else
+% % \noexpand\setcasemap #1 0 0 %
+% % \expandafter\expandafter\expandafter\doexpandcaserange\expandafter
+% % \fi\expandafter{\the\numexpr#1+1\relax}{#2}}
+% %
+% % \def\resetcaserange #1 to #2
+% % {\setmappingtoks
+% % \expanded{\mappingtoks{\the\mappingtoks\doexpandcaserange{#1}{#2}}}%
+% % \ignorespaces}
+
+% \def\doexpandcaserange#1%
+% {\ifnum#1>\scratchcounter
+% \expandafter\gobbletwoarguments
+% \else
+% \noexpand\setcasemap #1 0 0 %
+% \expandafter\expandafter\expandafter\doexpandcaserange\expandafter
+% \fi\expandafter{\the\numexpr#1+\plusone\relax}}
- % \def\doexpandcaserange#1#2%
- % {\ifnum#1>#2 %
- % \expandafter\gobblethreearguments
- % \else
- % \noexpand\setcasemap #1 0 0 %
- % \expandafter\expandafter\expandafter\doexpandcaserange\expandafter
- % \fi\expandafter{\the\numexpr#1+1\relax}{#2}}
- %
- % \def\resetcaserange #1 to #2
- % {\setmappingtoks
- % \expanded{\mappingtoks{\the\mappingtoks\doexpandcaserange{#1}{#2}}}%
- % \ignorespaces}
+% \def\resetcaserange #1 to #2
+% {\setmappingtoks
+% \scratchcounter#2\relax
+% \expanded{\mappingtoks{\the\mappingtoks\doexpandcaserange{#1}}}%
+% \ignorespaces}
- \def\doexpandcaserange#1%
- {\ifnum#1>\scratchcounter
- \expandafter\gobbletwoarguments
- \else
- \noexpand\setcasemap #1 0 0 %
- \expandafter\expandafter\expandafter\doexpandcaserange\expandafter
- \fi\expandafter{\the\numexpr#1+\plusone\relax}}
+% \endETEX
- \def\resetcaserange #1 to #2
- {\setmappingtoks
- \scratchcounter#2\relax
- \expanded{\mappingtoks{\the\mappingtoks\doexpandcaserange{#1}}}%
- \ignorespaces}
+\def\resetcaserange #1 to #2
+ {\dostepwiserecurse{#1}{#2}\plusone
+ {\lccode\recurselevel\zerocount
+ \uccode\recurselevel\zerocount}%
+ \ignorespaces}
-\endETEX
+% \def\presetcaserange#1#2% could be pre-expanded
+% {\dostepwiserecurse{#1}{#2}\plusone
+% {\setregimecode\recurselevel\@@letter
+% \lccode \recurselevel=\recurselevel
+% \uccode \recurselevel=\recurselevel}}
\def\presetcaserange#1#2% could be pre-expanded
{\dostepwiserecurse{#1}{#2}\plusone
- {\setregimecode\recurselevel\@@letter
- \lccode \recurselevel=\recurselevel
- \uccode \recurselevel=\recurselevel}}
+ {\lccode\recurselevel=\recurselevel
+ \uccode\recurselevel=\recurselevel}%
+ \ignorespaces}
\def\setcasemap #1 #2 #3 %
{\setregimecode{#1}\@@letter
\lccode #1=#2
\uccode #1=#3 }
+\def\setcaseswap #1 #2 %
+ {\setregimecode{#1}\@@letter
+ \setregimecode{#2}\@@letter
+ \lccode #1=#1
+ \uccode #2=#2
+ \lccode #2=#1
+ \uccode #1=#2 }
+
\def\setcaseself #1 %
{\setregimecode{#1}\@@letter
\lccode #1=#1
@@ -576,12 +682,16 @@
% {\setmappingtoks
% \appendtoks\setspacemap #1 #2 \to\mappingtoks
% \ignorespaces}
-%
+
% faster:
+% \def\definespacemap #1 #2 % code sfcode
+% {\setmappingtoks
+% \mappingtoks\expandafter{\the\mappingtoks\setspacemap #1 #2 }%
+% \ignorespaces}
+
\def\definespacemap #1 #2 % code sfcode
- {\setmappingtoks
- \mappingtoks\expandafter{\the\mappingtoks\setspacemap #1 #2 }%
+ {\sfcode#1=#2%
\ignorespaces}
\def\setspacemap #1 #2 %
@@ -602,14 +712,32 @@
%
% faster
+% \def\defineuppercasecom#1#2%
+% {\setmappingtoks
+% \mappingtoks\expandafter{\the\mappingtoks\setuppercasecom#1{#2}}%
+% \ignorespaces}
+
+% \def\definelowercasecom#1#2%
+% {\setmappingtoks
+% \mappingtoks\expandafter{\the\mappingtoks\setlowercasecom#1{#2}}%
+% \ignorespaces}
+
+% \def\defineuppercasecom#1#2%
+% {\setmappingtoks
+% \mappingtoks\expandafter{\the\mappingtoks\setuppercasecom#1{#2}}%
+% \ignorespaces}
+
+% \def\definelowercasecom#1#2%
+% {\setmappingtoks
+% \mappingtoks\expandafter{\the\mappingtoks\setlowercasecom#1{#2}}%
+% \ignorespaces}
+
\def\defineuppercasecom#1#2%
- {\setmappingtoks
- \expandafter\mappingtoks{\the\mappingtoks\setuppercasecom#1{#2}}%
+ {\global\casecomtoks\expandafter{\the\casecomtoks\setuppercasecom#1{#2}}%
\ignorespaces}
\def\definelowercasecom#1#2%
- {\setmappingtoks
- \expandafter\mappingtoks{\the\mappingtoks\setlowercasecom#1{#2}}%
+ {\global\casecomtoks\expandafter{\the\casecomtoks\setlowercasecom#1{#2}}%
\ignorespaces}
\let\setuppercasecom\gobbletwoarguments
@@ -1037,10 +1165,20 @@
{\egroup
\stopreadingfile}
+% \def\definecharacter#1 #2 %
+% {\ifundefined{#1}\setvalue{#1}{\dohandlecharacter{#1}}\fi
+% \doifnumberelse{\string#2}
+% {\setvalue{\characterprefix\characterencoding\string#1}{\char#2 }% watch the space
+% \doautosetregime{#1}{#2}}
+% {\setvalue{\characterprefix\characterencoding\string#1}{#2}}}
+
+\def\numcharacter#1{\char#1 }
+\let\dochar\numcharacter
+
\def\definecharacter#1 #2 %
{\ifundefined{#1}\setvalue{#1}{\dohandlecharacter{#1}}\fi
\doifnumberelse{\string#2}
- {\setvalue{\characterprefix\characterencoding\string#1}{\char#2 }% watch the space
+ {\setevalue{\characterprefix\characterencoding\string#1}{\dochar{#2}}%
\doautosetregime{#1}{#2}}
{\setvalue{\characterprefix\characterencoding\string#1}{#2}}}
@@ -1355,6 +1493,7 @@
\fetchruntimecommand \showcharacters {\f!encodingprefix\s!run}
\fetchruntimecommand \showcharacterbounds {\f!encodingprefix\s!run}
\fetchruntimecommand \showhyphenations {\f!encodingprefix\s!run}
+\fetchruntimecommand \showmapping {\f!encodingprefix\s!run}
%D \macros
%D {everyuppercase, EveryUppercase,
@@ -1374,9 +1513,14 @@
%D This magic trick maps takes care of mapping from lower to
%D upper case and reverse.
+\def\reloadmapping{\the\executeifdefined{\@cas@\charactermapping}\emptytoks}
+
\appendtoks\let\setuppercasecom\setcasecom\to\everyuppercase
\appendtoks\let\setlowercasecom\setcasecom\to\everylowercase
+\appendtoks\reloadmapping\to\everyuppercase % slow, will be sped up
+\appendtoks\reloadmapping\to\everylowercase % slow, will be sped up
+
\newtoks\everyULmap
\appendtoks\let\remapcase\remapuppercase\the\everyULmap\to\everyuppercase
@@ -1413,6 +1557,50 @@
% \setvalue{#1}{\getvalue{@\ifuppercase#2\else#1\fi}}%
% \setvalue{#2}{\getvalue{@\iflowercase#1\else#2\fi}}}
+% 2 = tricky, since expanding \definedfont[lowcasename] ... goes wrong
+
+\chardef\uppercasemode\plusthree % 0=ignore 1=normal 2=expand 3=auto
+\chardef\casecommode \plusone % 0=noexpand 1=expand
+
+\def\setcasecom #1#2{\def#1{\ifcase\casecommode\noexpand#1\else#2\fi}}
+
+% \def\OEPS{whatever}
+%
+% \startmapping[ec]
+% \defineuppercasecom \oeps {\getvalue{OEPS}}
+% \stopmapping
+%
+% \WORD{xx \oeps}
+
+\def\douppercase#1%
+ {\bgroup
+ \let\douppercase\firstofoneargument
+ \the\everyuppercase % currently also checks uppercasemode
+ \let\dochar\rawcharacter
+ \ifcase\uppercasemode
+ #1%
+ \or % No expansion here, otherwise \getvalue problems! Default!!!
+ %\edef\next{#1}% keep this to prevent roll back
+ %\uppercase\expandafter{\next}% keep this to prevent roll back
+ \uppercase{#1}%
+ \or
+ \chardef\casecommode\zerocount
+ \let\docasecom\firstoftwoarguments
+ \edef\ascii{#1}%
+ \edef\ascii{\expandafter\uppercase\expandafter{\ascii}}% needed when in regime
+ \chardef\casecommode\plusone
+ \ascii
+ \else
+ % mode three may trigger setting 2 elsewhere (e.g. regime test)
+ \uppercase{#1}%
+ \fi
+ \egroup}
+
+\prependtoksonce
+ \doifnot\currentregime\s!default
+ {\ifnum\uppercasemode=\plusthree \chardef\uppercasemode\plustwo \fi}%
+\to \everyuppercase
+
%D \macros
%D {everysanitize, EverySanitize}
%D
@@ -1780,8 +1968,6 @@
\useencoding[ans,il2,ec,tbo,pdf,uc,pol,qx,t5,cyr]
-% \useencoding[vna]
-
\setupencoding[\s!default=ec] % was: [\s!default=\s!default]
\protect \endinput
diff --git a/tex/context/base/enco-mis.tex b/tex/context/base/enco-mis.tex
index ceaf32584..b089fe569 100644
--- a/tex/context/base/enco-mis.tex
+++ b/tex/context/base/enco-mis.tex
@@ -61,7 +61,7 @@
% \egroup}
\def\pseudoencodeddj % like in babel, but safer
- {\leavevmode\hbox\bgroup
+ {\dontleavehmode\hbox\bgroup
\setbox\scratchbox\hbox{d}%
\scratchdimen\ht\scratchbox
\advance\scratchdimen 1ex
@@ -73,17 +73,32 @@
\raise\scratchdimen\hbox{\kern\dimen2\vbox{\hrule\!!height0.1ex\!!width0.3em}}}%
\egroup}
-\def\pseudoencodedDJ % like in babel, but safer
- {\leavevmode
+% \def\pseudoencodedDJ % like in babel, but safer
+% {\leavevmode
+% \hbox\bgroup
+% \setbox\scratchbox\hbox{D}%
+% \scratchdimen.55\ht\scratchbox
+% \dimen2=\withoutpt\the\fontdimen1\font\scratchdimen
+% \advance\dimen2 .15ex
+% \advance\dimen2 -.15\fontdimen7\font
+% \hbox to \wd\scratchbox
+% {\box\scratchbox\hss
+% \raise\scratchdimen\hbox{\kern\dimen2\vbox{\hrule\!!height0.1ex\!!width0.3em}}}%
+% \egroup}
+
+\def\pseudoencodedDJ % design: taco; quality assurance: mojca; cleanup: hans
+ {\dontleavehmode
\hbox\bgroup
\setbox\scratchbox\hbox{D}%
- \scratchdimen.55\ht\scratchbox
- \dimen2=\withoutpt\the\fontdimen1\font\scratchdimen
- \advance\dimen2 .15ex
- \advance\dimen2 -.15\fontdimen7\font
+ \dimen2=1.1ex
+ \dimen2=\withoutpt\the\fontdimen1\font\dimen2
\hbox to \wd\scratchbox
- {\box\scratchbox\hss
- \raise\scratchdimen\hbox{\kern\dimen2\vbox{\hrule\!!height0.1ex\!!width0.3em}}}%
+ {\rlap
+ {\raise.52\ht\scratchbox
+ \hbox
+ {\kern\dimen2
+ \vbox{\hrule\!!height.04ex\!!depth.04ex\!!width.4\wd\scratchbox}}}%
+ \box\scratchbox}%
\egroup}
% currency
diff --git a/tex/context/base/enco-pfr.tex b/tex/context/base/enco-pfr.tex
index 9e1e853b5..aba9bac88 100644
--- a/tex/context/base/enco-pfr.tex
+++ b/tex/context/base/enco-pfr.tex
@@ -1,6 +1,6 @@
%D \module
%D [ file=enco-pfr,
-%D version=2000.12.10,
+%D version=2000.12.10, % adapted 2005.08.14 to more delayed loading
%D title=\CONTEXT\ Encoding Macros,
%D subtitle=PDF Font Resource Inclusion,
%D author=Hans Hagen,
@@ -11,6 +11,10 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\ifx\pdffontresource\undefined\else\endinput\fi
+
+\writestatus{loading}{Context Encoding Macros (pdf)}
+
%D This is an experimental module in which we implement
%D font resource inclusion in \PDF. One reason to include
%D font resources is that it enables a search engine to
@@ -50,6 +54,15 @@
\newif\ifincludepdffontresources \includepdffontresourcestrue
+% a problem is that there is always an ec vector added even when
+% we switch to texnansi early; this has to do with the fact that
+% we need to setup fonts at startup; this a pain when we have
+% textless documents, so we should have a way around, i.e. an
+% extension to pdftex where we can tag numbers inside user specs
+% and attributes.
+%
+% currently we need to use immediate so we end up with entries
+
%D The name of the resource is stored in a macro, as is its
%D object reference. A resource is only processed once. When
%D done, the resource name is erased, and we use this fact to
@@ -111,7 +124,7 @@
\def\usepdffontresource #1 %
{\doifundefinedelse{\pdffontfileresource} % okay, undefined, so either
- {\setxvalue{\pdffontfileresource}{#1}} % band new, or not yet loaded
+ {\setxvalue{\pdffontfileresource}{#1}} % brand new, or not yet loaded
{\doifvaluesomething{\pdffontfileresource} % only if not loaded in which
{\setxvalue{\pdffontfileresource}{#1}}}} % case it's made empty
@@ -120,14 +133,13 @@
%D we save its reference. Normally a document will have one
%D such a resource.
-\long\def\startpdffontresource[#1]#2\stoppdffontresource%
- {\donefalse % we use boolean due to \par
- \doifundefined{\pdffontresource}% should be \long
- {\doif{#1}{\currentencoding}{\donetrue}}%
- \ifdone % pdftex !
- \immediate\pdfobj stream {#2}%
- \setxvalue{\pdffontresource}{\the\pdflastobj}%
- \fi}
+% \long\def\startpdffontresource[#1]#2\stoppdffontresource
+% {\doif{#1}\currentencoding
+% {\immediate\pdfobj useobjnum \getvalue{\pdffontresource} stream {#2}}}
+
+\long\def\startpdffontresource[#1]#2\stoppdffontresource
+ {\doif{#1}\currentencoding{\doifdefined\pdffontresource
+ {\immediate\pdfobj useobjnum \getvalue{\pdffontresource} stream {#2}}}}
%D The reference to such a vector is to be handled at font
%D definition time, which is why we hook it into the font
@@ -135,6 +147,8 @@
%D the process when this feature is disabled and keeps the
%D macros readable.
+% \newevery \everyfont \relax
+
\appendtoksonce \includepdffontresource \to \everyfont
\def\includepdffontresource
@@ -148,6 +162,15 @@
\fi\fi
\fi}
+\def\dododoincludepdffontresource#1% encoding
+ {\bgroup
+ \def\currentencoding{#1}%
+ \startreadingfile
+ \readsysfile{pdfr-\getvalue\pdffontfileresource}\donothing\donothing
+ \stopreadingfile
+ \letgvalue\pdffontfileresource\empty
+ \egroup}
+
\beginETEX
\def\doincludepdffontresource
@@ -155,57 +178,53 @@
\dodoincludepdffontresource
\fi}
-\def\dodoincludepdffontresource%
- {% does this font has an encoding specified
- \ifx\currentencoding\empty \else \ifx\currentencoding\s!default \else
- % is there a pdf font encoding resource file defined
- \ifcsname\pdffontfileresource\endcsname
- % load the pdf font resource
- \edef\xpdffontfileresource{\csname\pdffontfileresource\endcsname}%
- \ifx\xpdffontfileresource\empty \else
- % but load it only once
- \startreadingfile
- \readsysfile{pdfr-\xpdffontfileresource}{}{}% messages
- \stopreadingfile
- % but do that only once, so forget the flag, empty==loaded
- \global\@EA\let\csname\pdffontfileresource\endcsname\empty
- \fi
- \fi
- % is there a resource indeed, i.e. an object reference
- \ifcsname\pdffontresource\endcsname
- % if so, create a reference to the object
- \expanded{\pdffontattr\font % current font
- {/ToUnicode \csname\pdffontresource\endcsname\space0 R}}%
- \fi
- \global\@EA\let\csname\s!ucmap\fontfile\endcsname\empty
- \fi \fi}
+\def\dodoincludepdffontresource
+ {% does this font has an encoding specified vector
+ \doifsomething\currentencoding % no \ifx
+ {% is there a pdf font encoding resource file defined
+ \ifcsname\pdffontresource\endcsname
+ % (fake) object defined
+ \else\ifcsname\pdffontfileresource\endcsname
+ % is there a resource already included
+ \doifsomething\pdffontfileresource
+ {\pdfobj reserveobjnum {}%
+ \setxvalue\pdffontresource{\the\pdflastobj}%
+ \doglobal\appendetoks
+ \noexpand\dododoincludepdffontresource{\currentencoding}%
+ \to \everybeforeshipout}% prevent multiple loading
+ \fi\fi
+ \ifcsname\pdffontresource\endcsname
+ \expanded{\pdffontattr\font{/ToUnicode \csname\pdffontresource\endcsname\space0 R}}%
+ % do it only once for each font
+ \letgvalue{\s!ucmap\fontfile}\empty
+ \fi}}
\endETEX
\beginTEX
\def\doincludepdffontresource
- {\@EA\ifx\csname\s!ucmap\fontfile\endcsname\relax
+ {\expandafter\ifcsname\s!ucmap\fontfile\endcsname\relax
\dodoincludepdffontresource
\fi}
\def\dodoincludepdffontresource
- {\ifx\currentencoding\empty \else \ifx\currentencoding\s!default \else
- \@EA\ifx\csname\pdffontfileresource\endcsname\relax\else
- \edef\xpdffontfileresource{\csname\pdffontfileresource\endcsname}%
- \ifx\xpdffontfileresource\empty \else
- \startreadingfile
- \readsysfile{pdfr-\xpdffontfileresource}{}{}%
- \stopreadingfile
- \global\@EA\let\csname\pdffontfileresource\endcsname\empty
- \fi
- \fi
- \@EA\ifx\csname\pdffontresource\endcsname\relax\else
- \expanded{\pdffontattr\font
- {/ToUnicode \csname\pdffontresource\endcsname\space0 R}}%
- \fi
- \global\@EA\let\csname\s!ucmap\fontfile\endcsname\empty
- \fi\fi}
+ {\doifsomething\currentencoding % no \ifx
+ {\expandafter\ifx\csname\pdffontresource\endcsname\relax
+ \expandafter\ifx\csname\pdffontfileresource\endcsname\relax\else
+ \doifsomething\pdffontfileresource
+ {\pdfobj reserveobjnum {}%
+ \setxvalue\pdffontresource{\the\pdflastobj}%
+ \doglobal\appendetoks
+ \noexpand\dododoincludepdffontresource{\currentencoding}%
+ \to \everybeforeshipout}% prevent multiple loading
+ \fi
+ \fi
+ \expandafter\ifx\csname\pdffontresource\endcsname\relax\else
+ \expanded{\pdffontattr\font{/ToUnicode \csname\pdffontresource\endcsname\space0 R}}%
+ % do it only once for each font
+ \letgvalue{\s!ucmap\fontfile}\empty
+ \fi}}
\endTEX
diff --git a/tex/context/base/enco-pol.tex b/tex/context/base/enco-pol.tex
index b470a027e..57355019e 100644
--- a/tex/context/base/enco-pol.tex
+++ b/tex/context/base/enco-pol.tex
@@ -16,25 +16,37 @@
\startmapping[pl0]
-\definecasemap 161 161 129 % a ogonek
-\definecasemap 162 162 130 % c acute
-\definecasemap 166 166 134 % e ogonek
-\definecasemap 170 170 138 % l crossed
-\definecasemap 171 171 139 % n acute
-\definecasemap 243 243 211 % o acute
-\definecasemap 177 177 145 % s acute
-\definecasemap 185 185 153 % z acute
-\definecasemap 187 187 155 % z dotaccent
-
-\definecasemap 129 161 129 % A ogonek
-\definecasemap 130 162 130 % C acute
-\definecasemap 134 166 134 % E ogonek
-\definecasemap 138 170 138 % L crossed
-\definecasemap 139 171 139 % N acute
-\definecasemap 211 243 211 % O acute
-\definecasemap 145 177 145 % S acute
-\definecasemap 153 185 153 % Z acute
-\definecasemap 155 187 155 % Z dotaccent
+\resetcaserange 128 to 255
+
+\definecaseswap 161 129 % a ogonek
+\definecaseswap 162 130 % c acute
+\definecaseswap 166 134 % e ogonek
+\definecaseswap 170 138 % l crossed
+\definecaseswap 171 139 % n acute
+\definecaseswap 177 145 % s acute
+\definecaseswap 185 153 % z acute
+\definecaseswap 187 155 % z dotaccent
+\definecaseswap 243 211 % o acute
+
+% \definecasemap 161 161 129 % a ogonek
+% \definecasemap 162 162 130 % c acute
+% \definecasemap 166 166 134 % e ogonek
+% \definecasemap 170 170 138 % l crossed
+% \definecasemap 171 171 139 % n acute
+% \definecasemap 177 177 145 % s acute
+% \definecasemap 185 185 153 % z acute
+% \definecasemap 187 187 155 % z dotaccent
+% \definecasemap 243 243 211 % o acute
+
+% \definecasemap 129 161 129 % A ogonek
+% \definecasemap 130 162 130 % C acute
+% \definecasemap 134 166 134 % E ogonek
+% \definecasemap 138 170 138 % L crossed
+% \definecasemap 139 171 139 % N acute
+% \definecasemap 145 177 145 % S acute
+% \definecasemap 153 185 153 % Z acute
+% \definecasemap 155 187 155 % Z dotaccent
+% \definecasemap 211 243 211 % O acute
\stopmapping
@@ -112,6 +124,9 @@
% \startmapping[pl1]
%
+%
+% \resetcaserange 128 to 255
+%
% \definecasemap 185 185 165 % a ogonek
% \definecasemap 230 230 198 % c acute
% \definecasemap 234 234 202 % e ogonek
@@ -184,6 +199,8 @@
% \startmapping[pl2]
%
+% \resetcaserange 128 to 255
+%
% \definecasemap 177 177 161 % a ogonek
% \definecasemap 230 230 198 % c acute
% \definecasemap 234 234 202 % e ogonek
diff --git a/tex/context/base/enco-qx.tex b/tex/context/base/enco-qx.tex
index 7baa6269a..38db703d9 100644
--- a/tex/context/base/enco-qx.tex
+++ b/tex/context/base/enco-qx.tex
@@ -28,8 +28,52 @@
\startmapping[qx] % to be done
-\definecasemaps 160 to 188 lc +32 uc 0
-\definecasemaps 192 to 255 lc 0 uc -32
+\resetcaserange 128 to 128
+\resetcaserange 131 to 133
+\resetcaserange 136 to 137
+\resetcaserange 140 to 144
+\resetcaserange 148 to 148
+\resetcaserange 150 to 150
+\resetcaserange 157 to 160
+\resetcaserange 163 to 165
+\resetcaserange 168 to 169
+\resetcaserange 172 to 176
+\resetcaserange 180 to 180
+\resetcaserange 182 to 182
+\resetcaserange 189 to 191
+\resetcaserange 198 to 198
+\resetcaserange 215 to 216
+\resetcaserange 223 to 223
+\resetcaserange 230 to 230
+\resetcaserange 247 to 248
+\resetcaserange 255 to 255
+
+\definecaseswap 161 129
+\definecaseswap 162 130
+
+\definecaseswap 166 134
+\definecaseswap 167 135
+
+\definecaseswap 170 138
+\definecaseswap 171 139
+
+\definecaseswap 177 145
+\definecaseswap 178 146
+\definecaseswap 179 147
+
+\definecaseswap 181 149
+
+\definecasemaps 151 to 156 lc +32 uc 0
+\definecasemaps 183 to 188 lc 0 uc -32
+
+\definecasemaps 192 to 197 lc +32 uc 0
+\definecasemaps 224 to 229 lc 0 uc -32
+
+\definecasemaps 199 to 214 lc +32 uc 0
+\definecasemaps 231 to 246 lc 0 uc -32
+
+\definecasemaps 217 to 222 lc +32 uc 0
+\definecasemaps 249 to 254 lc 0 uc -32
\stopmapping
diff --git a/tex/context/base/enco-run.tex b/tex/context/base/enco-run.tex
index 976980aaf..8622a2388 100644
--- a/tex/context/base/enco-run.tex
+++ b/tex/context/base/enco-run.tex
@@ -134,4 +134,16 @@
\NC sample \NC \hyphenatedword{#1} \NC \NR
\stoptabulate}
+\gdef\showmapping
+ {\dostepwiserecurse{128}{255}{1}
+ {\hbox\bgroup
+ \hbox to 2em{\hss\recurselevel}%
+ \hbox to 2em{\hss\char\recurselevel\hss}%
+ \hbox to 3em{\hss\ifcase\lccode\recurselevel\else\the \lccode\recurselevel\fi}%
+ \hbox to 2em{\hss\ifcase\lccode\recurselevel\else\char\lccode\recurselevel\fi\hss}%
+ \hbox to 3em{\hss\ifcase\lccode\recurselevel\else\the \uccode\recurselevel\fi}%
+ \hbox to 2em{\hss\ifcase\uccode\recurselevel\else\char\uccode\recurselevel\fi\hss}%
+ \egroup
+ \endgraf}}
+
\protect \endinput
diff --git a/tex/context/base/enco-tbo.tex b/tex/context/base/enco-tbo.tex
index 3e9719c2a..475be4602 100644
--- a/tex/context/base/enco-tbo.tex
+++ b/tex/context/base/enco-tbo.tex
@@ -13,6 +13,8 @@
\startmapping[8r]
+\resetcaserange 128 to 255
+
\definecasemap 228 228 196 \definecasemap 196 228 196
\definecasemap 235 235 203 \definecasemap 203 235 203
\definecasemap 239 239 207 \definecasemap 207 239 207
@@ -137,8 +139,8 @@
\definecharacter quotesingle 31
\definecharacter quotesinglebase 130
-\definecharacter quoteleft 96
-\definecharacter quoteright 39
+\definecharacter quoteleft 96
+\definecharacter quoteright 39
\definecharacter guilsingleleft 139
\definecharacter guilsingleright 155
diff --git a/tex/context/base/font-ini.tex b/tex/context/base/font-ini.tex
index 4d1fc7fe6..aa1bafcc9 100644
--- a/tex/context/base/font-ini.tex
+++ b/tex/context/base/font-ini.tex
@@ -874,13 +874,13 @@
\newif\ifsynchronizemathfonts \synchronizemathfontstrue
\def\synchronizetext % stylish text in mmode
- {\ifsynchronizemathfonts\the\textstrategies\fam\mrfam\fi}
+ {\ifsynchronizemathfonts\the\textstrategies\fam\minusone\fi}
\def\synchronizemath % math stuff in mmode
- {\ifsynchronizemathfonts\the\mathstrategies\fam\mrfam\fi}
+ {\ifsynchronizemathfonts\the\mathstrategies\fam\minusone\fi}
\def\synchronizesymb % stylish math stuff in mmode
- {\ifsynchronizemathfonts\the\symbstrategies\fam\mrfam\fi}
+ {\ifsynchronizemathfonts\the\symbstrategies\fam\minusone\fi}
%D \macros
%D {textonly}
@@ -4099,23 +4099,50 @@
%D definitions.
\def\fontstringA
- {\ifx\fontstyle\c!rm \s!Serif \else
- \ifx\fontstyle\c!ss \s!Sans \else
- \ifx\fontstyle\c!tt \s!Mono \else
- \s!Serif \fi\fi\fi}
+ {\ifx\fontstyle\c!rm \s!Serif \else
+ \ifx\fontstyle\c!ss \s!Sans \else
+ \ifx\fontstyle\c!tt \s!Mono \else
+ \s!Serif \fi\fi\fi}
\def\fontstringB
- {\ifx\fontstyle\c!rm \s!Regular \else
- \ifx\fontstyle\c!ss \s!Support \else
- \ifx\fontstyle\c!tt \s!Type \else
- \s!Serif \fi\fi\fi}
+ {\ifx\fontstyle\c!rm \s!Regular \else
+ \ifx\fontstyle\c!ss \s!Support \else
+ \ifx\fontstyle\c!tt \s!Type \else
+ \s!Serif \fi\fi\fi}
\def\fontstringC
- {\ifx\fontalternative\c!bf \s!Bold \else
- \ifx\fontalternative\c!sl \s!Slanted \else
- \ifx\fontalternative\c!it \s!Italic \else
+ {\ifx\fontalternative\c!bf \s!Bold \else
+ \ifx\fontalternative\c!sl \s!Slanted \else
+ \ifx\fontalternative\c!it \s!Italic \else
\ifx\fontalternative\c!bs \s!BoldSlanted \else
- \ifx\fontalternative\c!bi \s!BoldItalic \fi\fi\fi\fi\fi}
+ \ifx\fontalternative\c!bi \s!BoldItalic \fi\fi\fi\fi\fi}
+
+\def\fontstringD % default fontstyle
+ {\expandafter\ifx\csname\??tf\fontclass\s!default\endcsname\c!rm \s!Serif \else
+ \expandafter\ifx\csname\??tf\fontclass\s!default\endcsname\c!ss \s!Sans \else
+ \expandafter\ifx\csname\??tf\fontclass\s!default\endcsname\c!tt \s!Mono \else
+ \s!Serif \fi\fi\fi}
+
+% potential generalization:
+
+% \letvalue{\??ff:t:\c!rm}\s!Serif
+% \letvalue{\??ff:t:\c!ss}\s!Sans
+% \letvalue{\??ff:t:\c!tt}\s!Mono
+%
+% \letvalue{\??ff:s:\c!bf}\s!Bold
+% \letvalue{\??ff:s:\c!sl}\s!Slanted
+% \letvalue{\??ff:s:\c!it}\s!Italic
+% \letvalue{\??ff:s:\c!bs}\s!BoldSlanted
+% \letvalue{\??ff:s:\c!bi}\s!BoldItalic
+%
+% \letvalue{\??ff:a:\c!rm}\s!Regular
+% \letvalue{\??ff:a:\c!ss}\s!Support
+% \letvalue{\??ff:a:\c!tt}\s!Type
+%
+% \def\fontstringA{\executeifdefined{\??ff:t:\fontstyle}\s!Serif}
+% \def\fontstringB{\executeifdefined{\??ff:a:\fontstyle}\s!Serif}
+% \def\fontstringC{\executeifdefined{\??ff:s:\fontstyle}\empty}
+% \def\fontstringD{\executeifdefined{\??ff:t:\csname\??tf\fontclass\s!default\endcsname}\s!Serif}
\beginETEX \ifcsname
diff --git a/tex/context/base/font-unk.tex b/tex/context/base/font-unk.tex
index dc17772f4..4e450ae74 100644
--- a/tex/context/base/font-unk.tex
+++ b/tex/context/base/font-unk.tex
@@ -64,6 +64,28 @@
\definefontsynonym [Handwriting] [unknown]
\definefontsynonym [Calligraphic] [unknown]
+%D This permit us to define (use) fonts that refer to the default
+%D style (so, Bold may expand to SansBold or SerifBold, depending
+%D on the default style in the typeface).
+
+% \def\setfontsynonym[#1]#2[#3]{\setvalue{\??ff\fontclass#1}{#3}}
+%
+% \setfontsynonym[\s!Normal] [\fontstringD]
+% \setfontsynonym[\s!Bold] [\fontstringD\s!Bold]
+% \setfontsynonym[\s!Italic] [\fontstringD\s!Italic]
+% \setfontsynonym[\s!Slanted] [\fontstringD\s!Slanted]
+% \setfontsynonym[\s!BoldItalic] [\fontstringD\s!BoldItalic]
+% \setfontsynonym[\s!BoldSlanted][\fontstringD\s!BoldSlanted]
+% \setfontsynonym[\s!Caps] [\fontstringD\s!Caps]
+
+\definefontsynonym[\s!Normal] [\noexpand\fontstringD]
+\definefontsynonym[\s!Bold] [\noexpand\fontstringD\noexpand\s!Bold]
+\definefontsynonym[\s!Italic] [\noexpand\fontstringD\noexpand\s!Italic]
+\definefontsynonym[\s!Slanted] [\noexpand\fontstringD\noexpand\s!Slanted]
+\definefontsynonym[\s!BoldItalic] [\noexpand\fontstringD\noexpand\s!BoldItalic]
+\definefontsynonym[\s!BoldSlanted][\noexpand\fontstringD\noexpand\s!BoldSlanted]
+\definefontsynonym[\s!Caps] [\noexpand\fontstringD\noexpand\s!Caps]
+
%D Also handy:
\definefontsynonym [Regular] [Serif]
diff --git a/tex/context/base/math-ini.tex b/tex/context/base/math-ini.tex
index 0a3c1ea76..d78a9e4fc 100644
--- a/tex/context/base/math-ini.tex
+++ b/tex/context/base/math-ini.tex
@@ -496,6 +496,26 @@
%D needed for sin, cos etc
\def\mfunction#1{{\mr#1}}
+
+%D Taco posted this solution as response to a mail by Olivier, so
+%D let's integrate it here.
+
+\def\setmathfunctionstyle#1% \rm \ss \tt
+ {\def\mfunction##1% no families, just scaling a la text
+ {\mathchoice
+ {\hbox{\csname#1\endcsname\tf ##1}}
+ {\hbox{\csname#1\endcsname\tf ##1}}
+ {\hbox{\csname#1\endcsname\tfx ##1}}
+ {\hbox{\csname#1\endcsname\tfxx##1}}}}
+
+%D Usage:
+%D
+%D \starttyping
+%D \setmathfunctionstyle\fontstyle % or {rm} or {ss} or ..
+%D \rm test $\sin{(x^{\sin(x^{\sin(x)})})}$ test
+%D \ss test $\sin{(x^{\sin(x^{\sin(x)})})}$ test
+%D \tt test $\sin{(x^{\sin(x^{\sin(x)})})}$ test
+%D \stoptyping
\edef\hexmrfam {0} \edef\hexbsfam {8}
\edef\hexmifam {1} \edef\hexbifam {9}
diff --git a/tex/context/base/mult-com.tex b/tex/context/base/mult-com.tex
index 83f3115df..3f8f61680 100644
--- a/tex/context/base/mult-com.tex
+++ b/tex/context/base/mult-com.tex
@@ -1525,7 +1525,7 @@ moveformula: verplaatsformule moveformula
component: onderdeel component
komponente komponenta
componenet componenta
- produxt: produkt product
+ product: produkt product
produkt produkt
prodotto produs
environment: omgeving environment
diff --git a/tex/context/base/mult-sys.tex b/tex/context/base/mult-sys.tex
index b8d057109..5a398b25d 100644
--- a/tex/context/base/mult-sys.tex
+++ b/tex/context/base/mult-sys.tex
@@ -78,6 +78,7 @@
\definesystemconstant {Sans} \definesystemconstant {Support}
\definesystemconstant {Mono} \definesystemconstant {Type}
+\definesystemconstant {Normal}
\definesystemconstant {Caps}
%D As the name of their define command states, the next set of
@@ -693,6 +694,7 @@
\definefileconstant {xtagprefix} {xtag-}
\definefileconstant {propprefix} {prop-}
\definefileconstant {unicprefix} {unic-}
+\definefileconstant {sortprefix} {sort-}
\definefileconstant {moduleprefix} {m-}
\definefileconstant {styleprefix} {s-}
diff --git a/tex/context/base/page-ini.tex b/tex/context/base/page-ini.tex
index 4035bb036..7c1ff78d3 100644
--- a/tex/context/base/page-ini.tex
+++ b/tex/context/base/page-ini.tex
@@ -1685,6 +1685,14 @@
\od
\filluparrangedpages}
+\installpagebreakhandler \v!lastpage % handy for backpage preceded by empty pages
+ {\executepagebreakhandler\v!yes
+ \ifdubbelzijdig
+ \executepagebreakhandler\v!left
+ \executepagebreakhandler\v!empty
+ \executepagebreakhandler\v!empty
+ \fi}
+
\installpagebreakhandler \v!start
{\globallet\shipout\normalshipout}
@@ -1708,6 +1716,10 @@
% [page=chapter,
% header=empty,
% footer=chapter]
+%
+% \definepagebreak % untested
+% [lastpage]
+% [left,{empty,right},{empty,left}]
% public page handler, beware: definepage already in use (core-ref)
%
diff --git a/tex/context/base/page-lin.tex b/tex/context/base/page-lin.tex
index 789099d26..dfb99ca95 100644
--- a/tex/context/base/page-lin.tex
+++ b/tex/context/base/page-lin.tex
@@ -185,7 +185,7 @@
{\dosingleargument\dosetuplinenumbering}
\def\dostartnummerenLINE
- {\EveryPar{placelinenumber}}
+ {\EveryPar{\placelinenumber}} % why not append to everypar ? better
\def\dostopnummerenLINE
{\the\aftereverylinenumbering
@@ -233,24 +233,24 @@
\chardef\linenumberlocation\zerocount
\processaction
[\@@rnlocation]
- [ \v!inmargin=>\chardef\linenumberlocation1,
- \v!inleft=>\chardef\linenumberlocation1,
- \v!inright=>\chardef\linenumberlocation2,
- \v!margin=>\chardef\linenumberlocation1]%
- % \v!text=>\chardef\linenumberlocation0,
- %\s!unknown=>\chardef\linenumberlocation0,
- %\s!default=>\chardef\linenumberlocation0]%
+ [ \v!inmargin=>\chardef\linenumberlocation\plusone,
+ \v!inleft=>\chardef\linenumberlocation\plusone,
+ \v!inright=>\chardef\linenumberlocation\plustwo,
+ \v!margin=>\chardef\linenumberlocation\plusone]%
+ % \v!text=>\chardef\linenumberlocation\zerocount,
+ %\s!unknown=>\chardef\linenumberlocation\zerocount,
+ %\s!default=>\chardef\linenumberlocation\zerocount]%
\ifcase\linenumberlocation % text
\advance\leftskip \@@rnwidth\relax
\fi
\chardef\@@rn@@rnmethod
- \ifprocessingverbatim0\else\iftypesettinglines1\else2\fi\fi
+ \ifprocessingverbatim\zerocount\else\iftypesettinglines\plusone\else\plustwo\fi\fi
\processaction
[\@@rnmethod]
- [ \v!type=>\chardef\@@rn@@rnmethod0,
- \v!line=>\chardef\@@rn@@rnmethod1,
- \v!text=>\chardef\@@rn@@rnmethod2,
- \v!file=>\chardef\@@rn@@rnmethod3]%
+ [ \v!type=>\chardef\@@rn@@rnmethod\zerocount,
+ \v!line=>\chardef\@@rn@@rnmethod\plusone,
+ \v!text=>\chardef\@@rn@@rnmethod\plustwo,
+ \v!file=>\chardef\@@rn@@rnmethod\plusthree]%
\ifcase\@@rn@@rnmethod % verbatim, line by line
\typesettinglinestrue
\let\dostartnummeren\dostartnummerenVERB
diff --git a/tex/context/base/page-lyr.tex b/tex/context/base/page-lyr.tex
index 42f989cc5..c1a9499f0 100644
--- a/tex/context/base/page-lyr.tex
+++ b/tex/context/base/page-lyr.tex
@@ -318,7 +318,7 @@
\ht\layerpagebox\zeropoint
\dp\layerpagebox\zeropoint
\wd\layerpagebox\zeropoint
- \doifnotvalue{\layerparameter\c!direction}\v!reverse{\box\layerpagebox}%
+ \doifnot{\layerparameter\c!direction}\v!reverse{\box\layerpagebox}%
\fi
% don't move
\xdef\lastlayerwd{\the\nextboxwd}%
diff --git a/tex/context/base/regi-ini.tex b/tex/context/base/regi-ini.tex
index 0f663a423..1c3fceb55 100644
--- a/tex/context/base/regi-ini.tex
+++ b/tex/context/base/regi-ini.tex
@@ -8,18 +8,18 @@
%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 For the moment regimes are implemented in \type
-%D {enco-ini.tex} module, but some day we will move the
-%D code here.
+%D For the moment regimes are implemented in \type
+%D {enco-ini.tex} module, but some day we will move the
+%D code here.
% also needed: message
-\unprotect
+\unprotect
-\def\douseregime#1% nearly identical to encoding
+\def\douseregime#1% nearly identical to encoding
{\doifundefined{\c!file\f!regimeprefix#1}%
{\setvalue{\c!file\f!regimeprefix#1}{}%
\makeshortfilename[\f!regimeprefix#1]%
@@ -34,8 +34,9 @@
\fetchruntimecommand \showregime {regi-run}
-\protect
+\protect
-\useregime[def,uni,ibm,win,il1,mac]
+% \useregime[def,uni,ibm,win,il1,mac]
+\useregime[def,uni,lat,win,il1,mac]
-\endinput
+\endinput
diff --git a/tex/context/base/regi-lat.tex b/tex/context/base/regi-lat.tex
index e3f3aa15a..7c1666ac6 100644
--- a/tex/context/base/regi-lat.tex
+++ b/tex/context/base/regi-lat.tex
@@ -1,9 +1,9 @@
%D \module
%D [ file=regi-lat,
-%D version=1999.11.16,
+%D version=2005.07.20, % 1999.11.16
%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=Pseudo Latin 2,
-%D author=Hans Hagen,
+%D subtitle=Iso Latin 2,
+%D author={Mojca Miklavec \& Hans Hagen},
%D date=\currentdate,
%D copyright=PRAGMA-ADE]
%C
@@ -11,24 +11,114 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D This file maps \ISO~latin~2 characters onto standard
-%D \ASCII\ characters. Some more definitions will be added.
+%D This file implements the ISO-8859-2 Central European character
+%D set.
\startregime[latin2]
-\defineactivetoken æ {\cacute}
-\defineactivetoken Æ {\Cacute}
+\defineactivetoken 160 {\nonbreakablespace} %   00A0 NO-BREAK SPACE
+\defineactivetoken 161 {\Aogonek} % ¡ 0104 LATIN CAPITAL LETTER A WITH OGONEK
+\defineactivetoken 162 {\textbreve} % ¢ 02D8 BREVE
+\defineactivetoken 163 {\Lstroke} % £ 0141 LATIN CAPITAL LETTER L WITH STROKE
+\defineactivetoken 164 {\textcurrency} % ¤ 00A4 CURRENCY SIGN
+\defineactivetoken 165 {\Lcaron} % ¥ 013D LATIN CAPITAL LETTER L WITH CARON
+\defineactivetoken 166 {\Sacute} % ¦ 015A LATIN CAPITAL LETTER S WITH ACUTE
+\defineactivetoken 167 {\sectionmark} % § 00A7 SECTION SIGN
+\defineactivetoken 168 {\textdiaeresis} % ¨ 00A8 DIAERESIS
+\defineactivetoken 169 {\Scaron} % © 0160 LATIN CAPITAL LETTER S WITH CARON
+\defineactivetoken 170 {\Scedilla} % ª 015E LATIN CAPITAL LETTER S WITH CEDILLA
+\defineactivetoken 171 {\Tcaron} % « 0164 LATIN CAPITAL LETTER T WITH CARON
+\defineactivetoken 172 {\Zacute} % ¬ 0179 LATIN CAPITAL LETTER Z WITH ACUTE
+\defineactivetoken 173 {\softhyphen} % ­ 00AD SOFT HYPHEN
+\defineactivetoken 174 {\Zcaron} % ® 017D LATIN CAPITAL LETTER Z WITH CARON
+\defineactivetoken 175 {\Zdotaccent} % ¯ 017B LATIN CAPITAL LETTER Z WITH DOT ABOVE
-\defineactivetoken è {\ccaron}
-\defineactivetoken È {\Ccaron}
-\defineactivetoken ¹ {\scaron}
-\defineactivetoken © {\Scaron}
-\defineactivetoken ¾ {\zcaron}
-\defineactivetoken ® {\Zcaron}
+\defineactivetoken 176 {\textdegree} % ° 00B0 DEGREE SIGN
+\defineactivetoken 177 {\aogonek} % ± 0105 LATIN SMALL LETTER A WITH OGONEK
+\defineactivetoken 178 {\textogonek} % ² 02DB OGONEK
+\defineactivetoken 179 {\lstroke} % ³ 0142 LATIN SMALL LETTER L WITH STROKE
+\defineactivetoken 180 {\textacute} % ´ 00B4 ACUTE ACCENT
+\defineactivetoken 181 {\lcaron} % µ 013E LATIN SMALL LETTER L WITH CARON
+\defineactivetoken 182 {\sacute} % ¶ 015B LATIN SMALL LETTER S WITH ACUTE
+\defineactivetoken 183 {\textcaron} % · 02C7 CARON
+\defineactivetoken 184 {\textcedilla} % ¸ 00B8 CEDILLA
+\defineactivetoken 185 {\scaron} % ¹ 0161 LATIN SMALL LETTER S WITH CARON
+\defineactivetoken 186 {\scedilla} % º 015F LATIN SMALL LETTER S WITH CEDILLA
+\defineactivetoken 187 {\tcaron} % » 0165 LATIN SMALL LETTER T WITH CARON
+\defineactivetoken 188 {\zacute} % ¼ 017A LATIN SMALL LETTER Z WITH ACUTE
+\defineactivetoken 189 {\texthungarumlaut} % ½ 02DD DOUBLE ACUTE ACCENT
+\defineactivetoken 190 {\zcaron} % ¾ 017E LATIN SMALL LETTER Z WITH CARON
+\defineactivetoken 191 {\zdotaccent} % ¿ 017C LATIN SMALL LETTER Z WITH DOT ABOVE
-\defineactivetoken ð {\dstroke}
-\defineactivetoken Ð {\Dstroke}
+\defineactivetoken 192 {\Racute} % À 0154 LATIN CAPITAL LETTER R WITH ACUTE
+\defineactivetoken 193 {\Aacute} % Á 00C1 LATIN CAPITAL LETTER A WITH ACUTE
+\defineactivetoken 194 {\Acircumflex} % Â 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+\defineactivetoken 195 {\Abreve} % Ã 0102 LATIN CAPITAL LETTER A WITH BREVE
+\defineactivetoken 196 {\Adiaeresis} % Ä 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
+\defineactivetoken 197 {\Lacute} % Å 0139 LATIN CAPITAL LETTER L WITH ACUTE
+\defineactivetoken 198 {\Cacute} % Æ 0106 LATIN CAPITAL LETTER C WITH ACUTE
+\defineactivetoken 199 {\Ccedilla} % Ç 00C7 LATIN CAPITAL LETTER C WITH CEDILLA
+\defineactivetoken 200 {\Ccaron} % È 010C LATIN CAPITAL LETTER C WITH CARON
+\defineactivetoken 201 {\Eacute} % É 00C9 LATIN CAPITAL LETTER E WITH ACUTE
+\defineactivetoken 202 {\Eogonek} % Ê 0118 LATIN CAPITAL LETTER E WITH OGONEK
+\defineactivetoken 203 {\Ediaeresis} % Ë 00CB LATIN CAPITAL LETTER E WITH DIAERESIS
+\defineactivetoken 204 {\Ecaron} % Ì 011A LATIN CAPITAL LETTER E WITH CARON
+\defineactivetoken 205 {\Iacute} % Í 00CD LATIN CAPITAL LETTER I WITH ACUTE
+\defineactivetoken 206 {\Icircumflex} % Î 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+\defineactivetoken 207 {\Dcaron} % Ï 010E LATIN CAPITAL LETTER D WITH CARON
+
+\defineactivetoken 208 {\Dstroke} % Ð 0110 LATIN CAPITAL LETTER D WITH STROKE
+\defineactivetoken 209 {\Nacute} % Ñ 0143 LATIN CAPITAL LETTER N WITH ACUTE
+\defineactivetoken 210 {\Ncaron} % Ò 0147 LATIN CAPITAL LETTER N WITH CARON
+\defineactivetoken 211 {\Oacute} % Ó 00D3 LATIN CAPITAL LETTER O WITH ACUTE
+\defineactivetoken 212 {\Ocircumflex} % Ô 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+\defineactivetoken 213 {\Ohungarumlaut} % Õ 0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+\defineactivetoken 214 {\Odiaeresis} % Ö 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
+\defineactivetoken 215 {\textmultiply} % × 00D7 MULTIPLICATION SIGN
+\defineactivetoken 216 {\Rcaron} % Ø 0158 LATIN CAPITAL LETTER R WITH CARON
+\defineactivetoken 217 {\Uring} % Ù 016E LATIN CAPITAL LETTER U WITH RING ABOVE
+\defineactivetoken 218 {\Uacute} % Ú 00DA LATIN CAPITAL LETTER U WITH ACUTE
+\defineactivetoken 219 {\Uhungarumlaut} % Û 0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+\defineactivetoken 220 {\Udiaeresis} % Ü 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
+\defineactivetoken 221 {\Yacute} % Ý 00DD LATIN CAPITAL LETTER Y WITH ACUTE
+\defineactivetoken 222 {\Tcedilla} % Þ 0162 LATIN CAPITAL LETTER T WITH CEDILLA
+\defineactivetoken 223 {\ssharp} % ß 00DF LATIN SMALL LETTER SHARP S
+
+\defineactivetoken 224 {\racute} % à 0155 LATIN SMALL LETTER R WITH ACUTE
+\defineactivetoken 225 {\aacute} % á 00E1 LATIN SMALL LETTER A WITH ACUTE
+\defineactivetoken 226 {\acircumflex} % â 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
+\defineactivetoken 227 {\abreve} % ã 0103 LATIN SMALL LETTER A WITH BREVE
+\defineactivetoken 228 {\adiaeresis} % ä 00E4 LATIN SMALL LETTER A WITH DIAERESIS
+\defineactivetoken 229 {\lacute} % å 013A LATIN SMALL LETTER L WITH ACUTE
+\defineactivetoken 230 {\cacute} % æ 0107 LATIN SMALL LETTER C WITH ACUTE
+\defineactivetoken 231 {\ccedilla} % ç 00E7 LATIN SMALL LETTER C WITH CEDILLA
+\defineactivetoken 232 {\ccaron} % è 010D LATIN SMALL LETTER C WITH CARON
+\defineactivetoken 233 {\eacute} % é 00E9 LATIN SMALL LETTER E WITH ACUTE
+\defineactivetoken 234 {\eogonek} % ê 0119 LATIN SMALL LETTER E WITH OGONEK
+\defineactivetoken 235 {\ediaeresis} % ë 00EB LATIN SMALL LETTER E WITH DIAERESIS
+\defineactivetoken 236 {\ecaron} % ì 011B LATIN SMALL LETTER E WITH CARON
+\defineactivetoken 237 {\iacute} % í 00ED LATIN SMALL LETTER I WITH ACUTE
+\defineactivetoken 238 {\icircumflex} % î 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
+\defineactivetoken 239 {\dcaron} % ï 010F LATIN SMALL LETTER D WITH CARON
+
+\defineactivetoken 240 {\dstroke} % ð 0111 LATIN SMALL LETTER D WITH STROKE
+\defineactivetoken 241 {\nacute} % ñ 0144 LATIN SMALL LETTER N WITH ACUTE
+\defineactivetoken 242 {\ncaron} % ò 0148 LATIN SMALL LETTER N WITH CARON
+\defineactivetoken 243 {\oacute} % ó 00F3 LATIN SMALL LETTER O WITH ACUTE
+\defineactivetoken 244 {\ocircumflex} % ô 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
+\defineactivetoken 245 {\ohungarumlaut} % õ 0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE
+\defineactivetoken 246 {\odiaeresis} % ö 00F6 LATIN SMALL LETTER O WITH DIAERESIS
+\defineactivetoken 247 {\textdiv} % ÷ 00F7 DIVISION SIGN
+\defineactivetoken 248 {\rcaron} % ø 0159 LATIN SMALL LETTER R WITH CARON
+\defineactivetoken 249 {\uring} % ù 016F LATIN SMALL LETTER U WITH RING ABOVE
+\defineactivetoken 250 {\uacute} % ú 00FA LATIN SMALL LETTER U WITH ACUTE
+\defineactivetoken 251 {\uhungarumlaut} % û 0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE
+\defineactivetoken 252 {\udiaeresis} % ü 00FC LATIN SMALL LETTER U WITH DIAERESIS
+\defineactivetoken 253 {\yacute} % ý 00FD LATIN SMALL LETTER Y WITH ACUTE
+\defineactivetoken 254 {\tcedilla} % þ 0163 LATIN SMALL LETTER T WITH CEDILLA
+\defineactivetoken 255 {\textdotaccent} % ÿ 02D9 DOT ABOVE
\stopregime
\endinput
+
diff --git a/tex/context/base/s-abr-01.tex b/tex/context/base/s-abr-01.tex
index d6dc59fa0..573b1cec2 100644
--- a/tex/context/base/s-abr-01.tex
+++ b/tex/context/base/s-abr-01.tex
@@ -109,6 +109,7 @@
\logo [LATEX] {\LaTeX}
\logo [LINUX] {linux}
\logo [LISP] {Lisp}
+\logo [LUA] {Lua}
\logo [MACOSX] {MacOSX}
\logo [MAKEMPY] {MakeMPY}
\logo [MAPS] {Maps}
diff --git a/tex/context/base/sort-def.tex b/tex/context/base/sort-def.tex
new file mode 100644
index 000000000..04ce50681
--- /dev/null
+++ b/tex/context/base/sort-def.tex
@@ -0,0 +1,352 @@
+%D \module
+%D [ file=sort-def,
+%D version=2005.08.08,
+%D title=\CONTEXT\ Sort Macros,
+%D subtitle=Defaults,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This module replaces existing sort key handling and is meant to be
+%D used with the new texutil functionality. Here we define the default
+%D mappings
+
+\exportsortexpansion{aeligature} {ae}
+\exportsortexpansion{AEligature} {AE}
+\exportsortexpansion{ijligature} {ij}
+\exportsortexpansion{IJligature} {IJ}
+\exportsortexpansion{oeligature} {oe}
+\exportsortexpansion{OEligature} {OE}
+
+\exportsortexpansion{ssharp} {ss}
+\exportsortexpansion{Ssharp} {SS}
+
+\exportsortexpansion{thorn} {}
+\exportsortexpansion{Thorn} {}
+
+\exportsortexpansion{eth} {}
+\exportsortexpansion{Eth} {}
+
+\exportsortexpansion{Acircumflex} {}
+\exportsortexpansion{acircumflex} {}
+\exportsortexpansion{Ccircumflex} {}
+\exportsortexpansion{ccircumflex} {}
+\exportsortexpansion{Ecircumflex} {}
+\exportsortexpansion{ecircumflex} {}
+\exportsortexpansion{Gcircumflex} {}
+\exportsortexpansion{gcircumflex} {}
+\exportsortexpansion{Hcircumflex} {}
+\exportsortexpansion{hcircumflex} {}
+\exportsortexpansion{Icircumflex} {}
+\exportsortexpansion{icircumflex} {}
+\exportsortexpansion{Jcircumflex} {}
+\exportsortexpansion{jcircumflex} {}
+\exportsortexpansion{Ocircumflex} {}
+\exportsortexpansion{ocircumflex} {}
+\exportsortexpansion{Scircumflex} {}
+\exportsortexpansion{scircumflex} {}
+\exportsortexpansion{Ucircumflex} {}
+\exportsortexpansion{ucircumflex} {}
+\exportsortexpansion{Wcircumflex} {}
+\exportsortexpansion{wcircumflex} {}
+\exportsortexpansion{Ycircumflex} {}
+\exportsortexpansion{ycircumflex} {}
+
+\exportsortexpansion{Agrave} {}
+\exportsortexpansion{agrave} {}
+\exportsortexpansion{Egrave} {}
+\exportsortexpansion{egrave} {}
+\exportsortexpansion{Igrave} {}
+\exportsortexpansion{igrave} {}
+\exportsortexpansion{Ograve} {}
+\exportsortexpansion{ograve} {}
+\exportsortexpansion{Ugrave} {}
+\exportsortexpansion{ugrave} {}
+\exportsortexpansion{Ygrave} {}
+\exportsortexpansion{ygrave} {}
+
+\exportsortexpansion{Atilde} {}
+\exportsortexpansion{atilde} {}
+\exportsortexpansion{Itilde} {}
+\exportsortexpansion{itilde} {}
+\exportsortexpansion{Ntilde} {}
+\exportsortexpansion{ntilde} {}
+\exportsortexpansion{Otilde} {}
+\exportsortexpansion{otilde} {}
+\exportsortexpansion{Utilde} {}
+\exportsortexpansion{utilde} {}
+\exportsortexpansion{Ytilde} {}
+\exportsortexpansion{ytilde} {}
+
+\exportsortexpansion{Adiaeresis} {}
+\exportsortexpansion{adiaeresis} {}
+\exportsortexpansion{Ediaeresis} {}
+\exportsortexpansion{ediaeresis} {}
+\exportsortexpansion{Idiaeresis} {}
+\exportsortexpansion{idiaeresis} {}
+\exportsortexpansion{Odiaeresis} {}
+\exportsortexpansion{odiaeresis} {}
+\exportsortexpansion{Udiaeresis} {}
+\exportsortexpansion{udiaeresis} {}
+\exportsortexpansion{Ydiaeresis} {}
+\exportsortexpansion{ydiaeresis} {}
+
+\exportsortexpansion{Aacute} {}
+\exportsortexpansion{aacute} {}
+\exportsortexpansion{Cacute} {}
+\exportsortexpansion{cacute} {}
+\exportsortexpansion{Eacute} {}
+\exportsortexpansion{eacute} {}
+\exportsortexpansion{Iacute} {}
+\exportsortexpansion{iacute} {}
+\exportsortexpansion{Lacute} {}
+\exportsortexpansion{lacute} {}
+\exportsortexpansion{Nacute} {}
+\exportsortexpansion{nacute} {}
+\exportsortexpansion{Oacute} {}
+\exportsortexpansion{oacute} {}
+\exportsortexpansion{Racute} {}
+\exportsortexpansion{racute} {}
+\exportsortexpansion{Sacute} {}
+\exportsortexpansion{sacute} {}
+\exportsortexpansion{Uacute} {}
+\exportsortexpansion{uacute} {}
+\exportsortexpansion{Yacute} {}
+\exportsortexpansion{yacute} {}
+\exportsortexpansion{Zacute} {}
+\exportsortexpansion{zacute} {}
+
+\exportsortexpansion{dstroke} {}
+\exportsortexpansion{Dstroke} {}
+\exportsortexpansion{Hstroke} {}
+\exportsortexpansion{hstroke} {}
+\exportsortexpansion{Tstroke} {}
+\exportsortexpansion{tstroke} {}
+
+\exportsortexpansion{Cdotaccent} {}
+\exportsortexpansion{cdotaccent} {}
+\exportsortexpansion{Edotaccent} {}
+\exportsortexpansion{edotaccent} {}
+\exportsortexpansion{Gdotaccent} {}
+\exportsortexpansion{gdotaccent} {}
+\exportsortexpansion{Idotaccent} {}
+\exportsortexpansion{idotaccent} {}
+\exportsortexpansion{Zdotaccent} {}
+\exportsortexpansion{zdotaccent} {}
+
+\exportsortexpansion{Amacron} {}
+\exportsortexpansion{amacron} {}
+\exportsortexpansion{Emacron} {}
+\exportsortexpansion{emacron} {}
+\exportsortexpansion{Imacron} {}
+\exportsortexpansion{imacron} {}
+\exportsortexpansion{Omacron} {}
+\exportsortexpansion{omacron} {}
+\exportsortexpansion{Umacron} {}
+\exportsortexpansion{umacron} {}
+
+\exportsortexpansion{Ccedilla} {}
+\exportsortexpansion{ccedilla} {}
+\exportsortexpansion{Kcedilla} {}
+\exportsortexpansion{kcedilla} {}
+\exportsortexpansion{Lcedilla} {}
+\exportsortexpansion{lcedilla} {}
+\exportsortexpansion{Ncedilla} {}
+\exportsortexpansion{ncedilla} {}
+\exportsortexpansion{Rcedilla} {}
+\exportsortexpansion{rcedilla} {}
+\exportsortexpansion{Scedilla} {}
+\exportsortexpansion{scedilla} {}
+\exportsortexpansion{Tcedilla} {}
+\exportsortexpansion{tcedilla} {}
+
+\exportsortexpansion{Ohungarumlaut} {}
+\exportsortexpansion{ohungarumlaut} {}
+\exportsortexpansion{Uhungarumlaut} {}
+\exportsortexpansion{uhungarumlaut} {}
+
+\exportsortexpansion{Aogonek} {}
+\exportsortexpansion{aogonek} {}
+\exportsortexpansion{Eogonek} {}
+\exportsortexpansion{eogonek} {}
+\exportsortexpansion{Iogonek} {}
+\exportsortexpansion{iogonek} {}
+\exportsortexpansion{Uogonek} {}
+\exportsortexpansion{uogonek} {}
+
+\exportsortexpansion{Aring} {}
+\exportsortexpansion{aring} {}
+\exportsortexpansion{Uring} {}
+\exportsortexpansion{uring} {}
+
+\exportsortexpansion{Abreve} {}
+\exportsortexpansion{abreve} {}
+\exportsortexpansion{Ebreve} {}
+\exportsortexpansion{ebreve} {}
+\exportsortexpansion{Gbreve} {}
+\exportsortexpansion{gbreve} {}
+\exportsortexpansion{Ibreve} {}
+\exportsortexpansion{ibreve} {}
+\exportsortexpansion{Obreve} {}
+\exportsortexpansion{obreve} {}
+\exportsortexpansion{Ubreve} {}
+\exportsortexpansion{ubreve} {}
+
+\exportsortexpansion{Ccaron} {}
+\exportsortexpansion{ccaron} {}
+\exportsortexpansion{Dcaron} {}
+\exportsortexpansion{dcaron} {}
+\exportsortexpansion{Ecaron} {}
+\exportsortexpansion{ecaron} {}
+\exportsortexpansion{Lcaron} {}
+\exportsortexpansion{lcaron} {}
+\exportsortexpansion{Ncaron} {}
+\exportsortexpansion{ncaron} {}
+\exportsortexpansion{Rcaron} {}
+\exportsortexpansion{rcaron} {}
+\exportsortexpansion{Scaron} {}
+\exportsortexpansion{scaron} {}
+\exportsortexpansion{Tcaron} {}
+\exportsortexpansion{tcaron} {}
+\exportsortexpansion{Ycaron} {}
+\exportsortexpansion{ycaron} {}
+\exportsortexpansion{Zcaron} {}
+\exportsortexpansion{zcaron} {}
+
+\exportsortexpansion{Lstroke} {}
+\exportsortexpansion{lstroke} {}
+\exportsortexpansion{Ostroke} {}
+\exportsortexpansion{ostroke} {}
+
+\exportsortexpansion{aumlaut} {}
+\exportsortexpansion{eumlaut} {}
+\exportsortexpansion{iumlaut} {}
+\exportsortexpansion{oumlaut} {}
+\exportsortexpansion{uumlaut} {}
+
+\exportsortexpansion{Aumlaut} {}
+\exportsortexpansion{Eumlaut} {}
+\exportsortexpansion{Iumlaut} {}
+\exportsortexpansion{Oumlaut} {}
+\exportsortexpansion{Uumlaut} {}
+
+\exportsortexpansion{scommaaccent} {}
+\exportsortexpansion{Scommaaccent} {}
+\exportsortexpansion{tcommaaccent} {}
+\exportsortexpansion{Tcommaaccent} {}
+
+\exportsortexpansion{Etilde} {}
+\exportsortexpansion{etilde} {}
+
+\exportsortexpansion{Ahook} {}
+\exportsortexpansion{ahook} {}
+\exportsortexpansion{Ehook} {}
+\exportsortexpansion{ehook} {}
+\exportsortexpansion{Ihook} {}
+\exportsortexpansion{ihook} {}
+\exportsortexpansion{Ohook} {}
+\exportsortexpansion{ohook} {}
+\exportsortexpansion{Uhook} {}
+\exportsortexpansion{uhook} {}
+\exportsortexpansion{Yhook} {}
+\exportsortexpansion{yhook} {}
+
+\exportsortexpansion{Acircumflexgrave} {}
+\exportsortexpansion{Acircumflexacute} {}
+\exportsortexpansion{Acircumflextilde} {}
+\exportsortexpansion{Acircumflexhook} {}
+\exportsortexpansion{acircumflexgrave} {}
+\exportsortexpansion{acircumflexacute} {}
+\exportsortexpansion{acircumflextilde} {}
+\exportsortexpansion{acircumflexhook} {}
+\exportsortexpansion{Ecircumflexgrave} {}
+\exportsortexpansion{Ecircumflexacute} {}
+\exportsortexpansion{Ecircumflextilde} {}
+\exportsortexpansion{Ecircumflexhook} {}
+\exportsortexpansion{ecircumflexgrave} {}
+\exportsortexpansion{ecircumflexacute} {}
+\exportsortexpansion{ecircumflextilde} {}
+\exportsortexpansion{ecircumflexhook} {}
+\exportsortexpansion{Ocircumflexgrave} {}
+\exportsortexpansion{Ocircumflexacute} {}
+\exportsortexpansion{Ocircumflextilde} {}
+\exportsortexpansion{Ocircumflexhook} {}
+\exportsortexpansion{ocircumflexgrave} {}
+\exportsortexpansion{ocircumflexacute} {}
+\exportsortexpansion{ocircumflextilde} {}
+\exportsortexpansion{ocircumflexhook} {}
+
+\exportsortexpansion{Abrevegrave} {}
+\exportsortexpansion{Abreveacute} {}
+\exportsortexpansion{Abrevetilde} {}
+\exportsortexpansion{Abrevehook} {}
+\exportsortexpansion{abrevegrave} {}
+\exportsortexpansion{abreveacute} {}
+\exportsortexpansion{abrevetilde} {}
+\exportsortexpansion{abrevehook} {}
+
+\exportsortexpansion{Adotbelow} {}
+\exportsortexpansion{adotbelow} {}
+\exportsortexpansion{Edotbelow} {}
+\exportsortexpansion{edotbelow} {}
+\exportsortexpansion{Idotbelow} {}
+\exportsortexpansion{idotbelow} {}
+\exportsortexpansion{Odotbelow} {}
+\exportsortexpansion{odotbelow} {}
+\exportsortexpansion{Udotbelow} {}
+\exportsortexpansion{udotbelow} {}
+\exportsortexpansion{Ydotbelow} {}
+\exportsortexpansion{ydotbelow} {}
+\exportsortexpansion{Ohorndotbelow} {}
+\exportsortexpansion{ohorndotbelow} {}
+\exportsortexpansion{Uhorndotbelow} {}
+\exportsortexpansion{uhorndotbelow} {}
+
+\exportsortexpansion{Acircumflexdotbelow} {}
+\exportsortexpansion{acircumflexdotbelow} {}
+\exportsortexpansion{Ecircumflexdotbelow} {}
+\exportsortexpansion{ecircumflexdotbelow} {}
+\exportsortexpansion{Ocircumflexdotbelow} {}
+\exportsortexpansion{ocircumflexdotbelow} {}
+\exportsortexpansion{Abrevedotbelow} {}
+\exportsortexpansion{abrevedotbelow} {}
+
+\exportsortexpansion{Ohorn} {}
+\exportsortexpansion{Ohorngrave} {}
+\exportsortexpansion{Ohornacute} {}
+\exportsortexpansion{Ohorntilde} {}
+\exportsortexpansion{Ohornhook } {}
+\exportsortexpansion{ohorn} {}
+\exportsortexpansion{ohorngrave} {}
+\exportsortexpansion{ohornacute} {}
+\exportsortexpansion{ohorntilde} {}
+\exportsortexpansion{ohornhook } {}
+\exportsortexpansion{Uhorn} {}
+\exportsortexpansion{Uhorngrave} {}
+\exportsortexpansion{Uhornacute} {}
+\exportsortexpansion{Uhorntilde} {}
+\exportsortexpansion{Uhornhook } {}
+\exportsortexpansion{uhorn} {}
+\exportsortexpansion{uhorngrave} {}
+\exportsortexpansion{uhornacute} {}
+\exportsortexpansion{uhorntilde} {}
+\exportsortexpansion{uhornhook} {}
+
+\exportsortexpansion{eszett} {ssharp}
+\exportsortexpansion{Eszett} {Ssharp}
+
+\exportsortexpansion{lslash} {lstroke}
+\exportsortexpansion{Lslash} {Lstroke}
+\exportsortexpansion{dslash} {dstroke}
+\exportsortexpansion{Dslash} {Dstroke}
+\exportsortexpansion{oslash} {ostroke}
+\exportsortexpansion{Oslash} {Ostroke}
+
+\exportsortexpansion{dcroat} {dstroke}
+\exportsortexpansion{Dcroat} {Dstroke}
+
+\endinput
diff --git a/tex/context/base/sort-ini.tex b/tex/context/base/sort-ini.tex
new file mode 100644
index 000000000..84d32e2ff
--- /dev/null
+++ b/tex/context/base/sort-ini.tex
@@ -0,0 +1,101 @@
+%D \module
+%D [ file=sort-ini,
+%D version=2005.08.08,
+%D title=\CONTEXT\ Sort Macros,
+%D subtitle=Initialization,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This module replaces existing sort key handling and is meant to be
+%D used with the new texutil functionality. This module defines a few
+%D auxiliary macros.
+
+%D The sorting method is largely bases on the one used in the old version
+%D of texutil but i've changed the interface a bit. It all boils down to
+%D a bunch of substitutions. The reimplementation makes it easier to extend
+%D the rules. Currently we have multipass substitution and onepass sorting,
+%D but we may change this some day. Since there is a plugin mechanism, using
+%D an external sorter is also possible.
+
+% test file:
+%
+% \mainlanguage[sl] \readfile{sort-ini}{}{}
+%
+% \starttext
+% test \index {aa1} test \index {ab1} test \index {aa2}
+% test \index {ab2} test \index {aa10} test \index {aa8}
+% test \index {aa9} test \index {aa11} test \index {aa10}
+% test \index {cccc} test \index {\ccaron ccc} test \index {\cacute ccc}
+% test \index {caaa} test \index {\ccaron aaa} test \index {\cacute aaa}
+% \placeindex
+% \stoptext
+
+% definitions:
+%
+% \exportsortshortcut{\\\'\\i}{iacute}
+% \exportsortshortcut{\\\'i} {iacute}
+% \exportsortshortcut{\\\"e} {ediaeresis}
+% \exportsortshortcut{\\\'o} {oacute}
+%
+% \exportsortexpansion{aeligature}{ae}
+% \exportsortexpansion{ijligature}{y}
+% \exportsortexpansion{oacute} {oz}
+% \exportsortexpansion{eacute} {ezzz} % or e3
+% \exportsortexpansion{egrave} {ezz} % or e2
+% \exportsortexpansion{ediaeresis}{ez} % or e1
+% \exportsortexpansion{adiaeresis}{az}
+% \exportsortreduction{ch} {c}
+% \exportsortreduction{ij} {y}
+%
+% \exportsortexpansion{ccaron} {cz}
+% \exportsortexpansion{cacute} {czz}
+% \exportsortexpansion{dstroke} {dz}
+% \exportsortexpansion{scaron} {sz}
+% \exportsortexpansion{zcaron} {zz}
+%
+% \exportsortreduction{ch}{c}
+% \exportsortreduction{ij}{y}
+%
+% \exportsortexpansion {ccaron} {c+1}
+% \exportsortdivision {c+1} {ccaron}
+% ==
+% \exportsortrule {ccaron} {c+1}
+
+\unprotect
+
+\let\currentexportclass\empty
+
+\def\exportsortaction#1#2#3%
+ {\convertargument#2\to\asciia
+ \convertargument#3\to\asciib
+ \immediatewriteutility{x #1 {\currentexportclass} {\asciia} {\asciib}}}
+
+\def\exportsortshortcut {\exportsortaction s}
+\def\exportsortexpansion{\exportsortaction e}
+\def\exportsortreduction{\exportsortaction r}
+\def\exportsortdivision {\exportsortaction d}
+
+\def\exportsortrule#1#2%
+ {\exportsortexpansion{#1}{#2}%
+ \exportsortdivision {#2}{#1}}
+
+% Next we overload some macros defined in enco-ini and core-uti. This
+% will change.
+
+\let\definesortkey\gobblefourarguments
+
+\def\savesortkeys
+ {\globallet\savesortkeys\relax
+ \enablemode[sortorder-\currentmainlanguage]%
+ \readfile{\f!sortprefix new}\donothing\donothing % temporary hacks
+ \readfile{\f!sortprefix def}\donothing\donothing % defaults
+ \readfile{\f!sortprefix lan}\donothing\donothing}% language specifics
+
+% already done \prependtoks \savesortkeys \to \everystarttext
+
+\protect \endinput
diff --git a/tex/context/base/sort-lan.tex b/tex/context/base/sort-lan.tex
new file mode 100644
index 000000000..c4489b1ff
--- /dev/null
+++ b/tex/context/base/sort-lan.tex
@@ -0,0 +1,107 @@
+%D \module
+%D [ file=sort-lan,
+%D version=2005.08.08,
+%D title=\CONTEXT\ Sort Macros,
+%D subtitle=Language Definitions,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This module replaces existing sort key handling and is meant to be
+%D used with the new texutil functionality. Here we define the language
+%D specific sort rules.
+
+% slovenian
+%
+% a-c, ccaron, cacute, d, dstroke, e-s, scaron, t-z, zcaron
+
+% \startmode[sortorder-sl]
+% \exportsortexpansion {ccaron} {cz}
+% \exportsortexpansion {cacute} {czz}
+% \exportsortexpansion {dstroke} {dz}
+% \exportsortexpansion {scaron} {sz}
+% \exportsortexpansion {zacron} {zz}
+
+% \exportsortdivision {cz} {ccaron}
+% \exportsortdivision {czz} {cacute}
+% \exportsortdivision {dz} {dstroke}
+% \exportsortdivision {sz} {scaron}
+% \exportsortdivision {zz} {zacron}
+% \stopmode
+%
+% \startmode[sortorder-sl]
+% \exportsortexpansion {ccaron} {c+1}
+% \exportsortexpansion {cacute} {c+2}
+% \exportsortexpansion {dstroke} {d+1}
+% \exportsortexpansion {scaron} {s+1}
+% \exportsortexpansion {zacron} {z+1}
+%
+% \exportsortdivision {c+1} {ccaron}
+% \exportsortdivision {c+2} {cacute}
+% \exportsortdivision {d+1} {dstroke}
+% \exportsortdivision {s+1} {scaron}
+% \exportsortdivision {z+1} {zacron}
+% \stopmode
+
+\startmode[sortorder-sl]
+ \exportsortrule {ccaron} {c+1}
+ \exportsortrule {cacute} {c+2}
+ \exportsortrule {dstroke} {d+1}
+ \exportsortrule {scaron} {s+1}
+ \exportsortrule {zacron} {z+1}
+\stopmode
+
+% finnish
+%
+% a-u, v+w sorted together, x-z, aring, adiaeresis, odiaeresis
+
+\startmode[sortorder-fi]
+ \exportsortrule {v} {w}
+ \exportsortrule {aring} {z+1}
+ \exportsortrule {adiaeresis} {z+2}
+ \exportsortrule {odiaeresis} {z+3}
+\stopmode
+
+% swedish
+%
+% a-z, aring, adiaeresis, odiaeresis
+
+\startmode[sortorder-sv]
+ \exportsortrule {aring} {z+1}
+ \exportsortrule {adiaeresis} {z+2}
+ \exportsortrule {odiaeresis} {z+3}
+\stopmode
+
+% norwegian, danish
+%
+% a-z, aeligature, oslash, aring
+
+\startmode[sortorder-no,sortorder-da]
+ \exportsortrule {aeligature} {z+1}
+ \exportsortrule {oslash} {z+2}
+ \exportsortrule {aring} {z+3}
+\stopmode
+
+% islandic
+%
+% a, aacute, b, c, d, eth, e, eacute, f-i, iacute, j-o, oacute, p-u, uacute, v, w (?), x, y, yacute, z, aeligature, oslash, thorn
+
+% estonian
+%
+% a-s, scaron, z, zcaron, t-w, otilde, adiaeresis, odiaeresis, udiaeresis, x, y
+
+% czech
+%
+%
+
+\startmode[sortorder-no,sortorder-da]
+ \exportsortreduction{ch}{c}
+\stopmode
+
+
+
+\endinput
diff --git a/tex/context/base/sort-new.tex b/tex/context/base/sort-new.tex
new file mode 100644
index 000000000..cc6d6983d
--- /dev/null
+++ b/tex/context/base/sort-new.tex
@@ -0,0 +1,59 @@
+% temporary overloading
+
+\unprotect
+
+\def\strippedcsname
+ {\expandafter\dostrippedcsname\string}
+
+\def\dostrippedcsname#1%
+ {\if\noexpand#1\letterbackslash\else#1\fi}
+
+\def\doregisterreference[#1]#2%
+ {\doifvalue{\??id#1\c!referencing}\v!on
+ {\pagereference[#1:\strippedcsname#2]}}
+
+\def\doprocesspageregister[#1]#2#3% key altnum entry
+ {\begingroup
+ \thisisnextinternal\s!ind
+ \ifduplicate\getlastregisterentry{#3}\fi
+ \convertexpanded{\registerparameter\c!keyexpansion}{#1}\asciiregisterentryA
+ \convertexpanded{\registerparameter\c!expansion }{#3}\asciiregisterentryB
+ \doifsomething{\registerparameter\c!keyexpansion}
+ {\ifx\asciiregisterentryA\empty
+ \convertexpanded{\registerparameter\c!keyexpansion}{#3}\asciiregisterentryA
+ \fi}%
+ \makesectionformat
+ \doifelse{\registerparameter\c!ownnumber}\v!yes
+ \donetrue\donefalse
+ % the spaces between } { are essential for texutil's split
+ \expanded
+ {\writeutility%
+ {r \ifcase\registerpagestatus\space\or e \or f \or t \fi
+ {\currentregister} %
+ {\nextinternalreference} %
+ {\asciiregisterentryA} %
+ {\asciiregisterentryB} %
+ {\sectionformat\sectionseparator\sectionseparator
+ \ifdone#2\else\noexpand\pagenumber\fi} %
+ {\noexpand\realfolio}}}%
+ \getfirstcharacter\currentregister
+ \registerinfo{> \firstcharacter}{#3}%
+ \endgroup}
+
+\def\convertmeaning#1\to % watch the double expansion !
+ {\bgroup
+ \honorunexpanded
+ %dontexpandencoding % new
+ \literateencodedtokens % newer
+ \xdef\@@globalexpanded{#1}%
+ \xdef\@@globalexpanded{\@@globalexpanded}%
+ \egroup
+ \convertcommand\@@globalexpanded\to}
+
+\def\reduceargument#1\to#2%
+ {\begingroup
+ \reducetocoding[raw]%
+ \edef\ascii{#1}%
+ \expandafter\endgroup\expandafter\edef\expandafter#2\expandafter{\ascii}}
+
+\protect
diff --git a/tex/context/base/supp-pat.tex b/tex/context/base/supp-pat.tex
index 3cbe1b0b1..15c69e2c2 100644
--- a/tex/context/base/supp-pat.tex
+++ b/tex/context/base/supp-pat.tex
@@ -44,7 +44,21 @@
\fi \fi
-%D Any\TEX:
+%D First we define the \ETEX\ variant. We cannot do that inside
+%D the if statement because normal \TEX\ gets confused over the
+%D csname test (which it does not see as if but it does see the
+%D else's and fi's).
+
+\def\etexfetchpatterntoken#1%
+ {\csname
+ \ifcsname @pattok@#1\endcsname
+ @pattok@#1%
+ \else\ifcsname#1\endcsname
+ #1%
+ \else
+ @pattok@default%
+ \fi\fi
+ \endcsname}
\ifx \fetchpatterntoken \undefined
@@ -54,9 +68,9 @@
{\csname
\expandafter\ifx\csname @pattok@#1\endcsname\relax
\expandafter\ifx\csname#1\endcsname\relax
- #1%
- \else
@pattok@default%
+ \else
+ #1%
\fi
\else
@pattok@#1%
@@ -65,16 +79,7 @@
\else
- \def\fetchpatterntoken#1%
- {\csname
- \ifcsname @pattok@#1\endcsname
- @pattok@#1%
- \else\ifcsname#1\endcsname
- #1%
- \else
- @pattok@default%
- \fi\fi
- \endcsname}
+ \let\fetchpatterntoken\etexfetchpatterntoken
\fi
diff --git a/tex/context/base/symb-mis.tex b/tex/context/base/symb-mis.tex
index 329d11f5e..5a24ab832 100644
--- a/tex/context/base/symb-mis.tex
+++ b/tex/context/base/symb-mis.tex
@@ -16,17 +16,23 @@
%D We predefine some common symbols and conversions that will
%D be understood by many commands.
+% \mathematics no longer needed
+
\definesymbol [\v!none] []
\definesymbol [bullet] [\mathematics{\bullet}]
\definesymbol [dash] [\mathematics{-}]
\definesymbol [star] [\mathematics{\star}]
\definesymbol [triangle] [\mathematics{\triangleright}]
\definesymbol [circle] [\mathematics{\circ}]
-\definesymbol [medcircle] [\hbox{\setsmallbodyfont\raise\onepoint\hbox{$\bigcirc$}}]
-\definesymbol [bigcircle] [\mathematics{\bigcirc}]
+%definesymbol [medcircle] [\hbox{\setsmallbodyfont\raise\onepoint\hbox{\mathematics{\bigcirc}}}]
\definesymbol [square] [\mathematics{\square}]
\definesymbol [diamond] [\mathematics{\diamond}]
+\definesymbol [smallcircle] [\hbox{\raise.1ex\hbox{\mathematics{\scriptscriptstyle\bigcirc}}}]
+\definesymbol [medcircle] [\hbox{\raise.1ex\hbox{\mathematics{\scriptstyle \bigcirc}}}]
+\definesymbol [bigcircle] [\mathematics{\bigcirc}]
+
+
\definesymbol [1] [{\symbol[bullet]}]
\definesymbol [2] [{\symbol[dash]}]
\definesymbol [3] [{\symbol[star]}]
diff --git a/tex/context/base/syst-etx.tex b/tex/context/base/syst-etx.tex
index bef56cb69..55837b02f 100644
--- a/tex/context/base/syst-etx.tex
+++ b/tex/context/base/syst-etx.tex
@@ -22,7 +22,17 @@
%D range, and spurious box behaviour of boxes adressed in the extended
%D box space made us a bit careful. It's hard to to track down such
%D bugs, especially if one has a mind set of \TEX\ being bug free. If
-%D you encounter unexpected behaviour let me know.
+%D you encounter unexpected behaviour let me know. Currently the
+%D scantokens mechanism can handle only one||liners, but Taco will
+%D provide an alternative some day.
+%D
+%D \starttyping
+%D \bgroup
+%D \lccode`a=12\lowercase{\xdef\whatever{a}}\egroup
+%D \def\whatever{test \whatever test}
+%D \scantokens\expandafter{\whatever}
+%D \egroup
+%D \stoptyping
\unprotect
@@ -31,7 +41,13 @@
\long\def\gobbleoneargument#1{}
-\mathchardef\etexversion=\numexpr(\eTeXversion*100+\expandafter\gobbleoneargument\eTeXrevision)
+\beginETEX
+ \mathchardef\etexversion=\numexpr\eTeXversion*100+\expandafter\gobbleoneargument\eTeXrevision\relax
+\endETEX
+
+\beginTEX
+ \mathchardef\etexversion=0
+\endTEX
%D Constants to be used with \type {\grouptype}.
diff --git a/tex/context/base/type-dis.tex b/tex/context/base/type-dis.tex
index 9dd0218dd..2511d9682 100644
--- a/tex/context/base/type-dis.tex
+++ b/tex/context/base/type-dis.tex
@@ -19,13 +19,13 @@
% obsolete: cork- is now ec- in latin modern
%
-% \starttypescript[all][latin-modern,computer-modern][ec]
+% \starttypescript[all][modern,latin-modern,computer-modern][ec]
%
% \definefontsynonym[ec-lmb10] [cork-lmb10] [encoding=ec]
%
% \stoptypescript
-\starttypescript[all][latin-modern,computer-modern][pl0]
+\starttypescript[all][modern,latin-modern,computer-modern][pl0]
\definefontsynonym[pl0-lmb10] [plb10] [encoding=pl0]
\definefontsynonym[pl0-lmbo10] [plbsl10] [encoding=pl0]
@@ -87,7 +87,7 @@
\stoptypescript
-\starttypescript[all][latin-modern,computer-modern][il2]
+\starttypescript[all][modern,latin-modern,computer-modern][il2]
\definefontsynonym[il2-lmb10] [csb10] [encoding=il2]
\definefontsynonym[il2-lmbo10] [csbsl10] [encoding=il2]
@@ -151,7 +151,7 @@
% we have two sets of tfm files
-\starttypescript[all][latin-modern,computer-modern][t5]
+\starttypescript[all][modern,latin-modern,computer-modern][t5]
\definefontsynonym[t5-lmb10] [vnb10] [encoding=t5]
\definefontsynonym[t5-lmbo10] [vnbsl10] [encoding=t5]
@@ -213,7 +213,7 @@
\stoptypescript
-\starttypescript[all][latin-modern][all]
+\starttypescript[all][modern,latin-modern][all]
% fallbacks, no math in latin modern
diff --git a/tex/context/base/type-enc.tex b/tex/context/base/type-enc.tex
index 91b57dbe7..8ba9156e4 100644
--- a/tex/context/base/type-enc.tex
+++ b/tex/context/base/type-enc.tex
@@ -16,7 +16,7 @@
% texfont --ven=urw --col=palatino --enc=ec --sou=auto
% texfont --ven-lucas --col=sun --enc=ec --sou=.
-% \usetypescript [all] [latin-modern] [texnansi]
+% \usetypescript [all] [modern] [texnansi]
% \setupbodyfont[reset] \setupbodyfont[cmr]
% \starttext \showfont[Serif] \stoptext
@@ -26,7 +26,7 @@
\starttypescriptcollection[encodings]
-\starttypescript [serif] [latin-modern,computer-modern] [texnansi,ec,qx,pl0,il2,t5]
+\starttypescript [serif] [modern,latin-modern,computer-modern] [texnansi,ec,qx,pl0,il2,t5]
\definefontsynonym [cmr5] [\typescriptthree-lmr5] [encoding=\typescriptthree]
\definefontsynonym [cmr6] [\typescriptthree-lmr6] [encoding=\typescriptthree]
@@ -66,7 +66,7 @@
\stoptypescript
-\starttypescript [sans] [latin-modern,computer-modern] [texnansi,ec,qx,pl0,il2,t5]
+\starttypescript [sans] [modern,latin-modern,computer-modern] [texnansi,ec,qx,pl0,il2,t5]
\definefontsynonym [cmss8] [\typescriptthree-lmss8] [encoding=\typescriptthree]
\definefontsynonym [cmss9] [\typescriptthree-lmss9] [encoding=\typescriptthree]
@@ -92,7 +92,7 @@
\stoptypescript
-\starttypescript [mono] [latin-modern,computer-modern] [texnansi,ec,qx,pl0,il2,t5]
+\starttypescript [mono] [modern,latin-modern,computer-modern] [texnansi,ec,qx,pl0,il2,t5]
\definefontsynonym [cmtt8] [\typescriptthree-lmtt8] [encoding=\typescriptthree]
\definefontsynonym [cmtt9] [\typescriptthree-lmtt9] [encoding=\typescriptthree]
@@ -636,7 +636,7 @@
\definefontsynonym [cmvtt10] [lhvtt10] [encoding=lcy]
\stoptypescript
-\starttypescript [serif] [computer-modern,latin-modern] [default]
+\starttypescript [serif] [modern,computer-modern,latin-modern] [default]
\definefontsynonym [ComputerModern] [cmr10]
\definefontsynonym [ComputerModern-Italic] [cmti10]
\definefontsynonym [ComputerModern-Slanted] [cmsl10]
@@ -646,7 +646,7 @@
\definefontsynonym [ComputerModern-Caps] [cmcsc10]
\stoptypescript
-\starttypescript [sans] [computer-modern,latin-modern] [default]
+\starttypescript [sans] [modern,computer-modern,latin-modern] [default]
\definefontsynonym [ComputerModernSans] [cmss10]
\definefontsynonym [ComputerModernSans-Italic] [cmssi10]
\definefontsynonym [ComputerModernSans-Slanted] [cmssi10]
@@ -656,7 +656,7 @@
\definefontsynonym [ComputerModernSans-Caps] [cmss10]
\stoptypescript
-\starttypescript [mono] [computer-modern,latin-modern] [default]
+\starttypescript [mono] [modern,computer-modern,latin-modern] [default]
\definefontsynonym [ComputerModernMono] [cmtt10]
\definefontsynonym [ComputerModernMono-Italic] [cmitt10]
\definefontsynonym [ComputerModernMono-Slanted] [cmsltt10]
@@ -667,7 +667,7 @@
\definefontsynonym [ComputerModernMono-Variable] [cmvtt10]
\stoptypescript
-\starttypescript [math] [computer-modern,latin-modern] [default]
+\starttypescript [math] [modern,computer-modern,latin-modern] [default]
% watch the space, it prevents remapping
\definefontsynonym [ComputerModernMath-Roman] [cmr10 ]
\definefontsynonym [ComputerModernMath-Extension] [cmex10]
@@ -675,7 +675,7 @@
\definefontsynonym [ComputerModernMath-Symbol] [cmsy10]
\stoptypescript
-\starttypescript [boldmath,bfmath] [computer-modern,latin-modern] [default]
+\starttypescript [boldmath,bfmath] [modern,computer-modern,latin-modern] [default]
% watch the space, it prevents remapping
\definefontsynonym [ComputerModernMath-Roman-Bold] [cmb10 ]
\definefontsynonym [ComputerModernMath-Extension] [cmex10]
@@ -713,7 +713,7 @@
% AMS (AMS)
-\starttypescript [math] [computer-modern,latin-modern,ams] [default]
+\starttypescript [math] [modern,computer-modern,latin-modern,ams] [default]
\definefontsynonym [AMS-SymbolA] [msam10]
\definefontsynonym [AMS-SymbolB] [msbm10]
\stoptypescript
@@ -985,17 +985,9 @@
% Iwona (JMN)
-\starttypescript [sans] [iwona,iwona-light] [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]
+% 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]
@@ -1008,43 +1000,61 @@
\definefontsynonym[Iwona-HeavyItalic] [\typescriptthree-iwonahi] [encoding=\typescriptthree]
\stoptypescript
+\starttypescript [math] [iwona] [default]
+ \definefontsynonym [Iwona-Math-Letters-Regular] [rm-iwonar]
+ \definefontsynonym [Iwona-Math-Letters-RegularItalic] [mi-iwonari]
+ \definefontsynonym [Iwona-Math-Symbols-Regular] [sy-iwonari]
+ \definefontsynonym [Iwona-Math-Extension-Regular] [ex-iwonar]
+\stoptypescript
+
+\starttypescript [math] [iwona-light] [default]
+ \definefontsynonym [Iwona-Math-Letters-Light] [rm-iwonal]
+ \definefontsynonym [Iwona-Math-Letters-LightItalic] [mi-iwonali]
+ \definefontsynonym [Iwona-Math-Symbols-Light] [sy-iwonali]
+ \definefontsynonym [Iwona-Math-Extension-Light] [ex-iwonal]
+\stoptypescript
+
+\starttypescript [math] [iwona-medium] [default]
+ \definefontsynonym [Iwona-Math-Letters-Medium] [rm-iwonam]
+ \definefontsynonym [Iwona-Math-Letters-MediumItalic] [mi-iwonami]
+ \definefontsynonym [Iwona-Math-Symbols-Medium] [sy-iwonami]
+ \definefontsynonym [Iwona-Math-Extension-Medium] [ex-iwonam]
+\stoptypescript
+
% Kurier (JMN)
-\starttypescript [sans] [kurier,kurier-light] [texnansi,ec,qx,t5]
- \definefontsynonym[Kurier-Light] [\typescriptthree-kurl] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-Regular] [\typescriptthree-kurr] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-Medium] [\typescriptthree-kurm] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-Bold] [\typescriptthree-kurb] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-Heavy] [\typescriptthree-kurh] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-LightItalic] [\typescriptthree-kurli] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-RegularItalic] [\typescriptthree-kurri] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-MediumItalic] [\typescriptthree-kurmi] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-BoldItalic] [\typescriptthree-kurbi] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-HeavyItalic] [\typescriptthree-kurhi] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-Light] [\typescriptthree-kurl] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-Regular] [\typescriptthree-kurr] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-Medium] [\typescriptthree-kurm] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-Bold] [\typescriptthree-kurb] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-Heavy] [\typescriptthree-kurh] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-LightItalic] [\typescriptthree-kurli] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-RegularItalic] [\typescriptthree-kurri] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-MediumItalic] [\typescriptthree-kurmi] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-BoldItalic] [\typescriptthree-kurbi] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-HeavyItalic] [\typescriptthree-kurhi] [encoding=\typescriptthree]
+\starttypescript [sans] [kurier-light,kurier,kurier-medium] [texnansi,ec,qx,t5]
+ \definefontsynonym[Kurier-Light] [\typescriptthree-kurierl] [encoding=\typescriptthree]
+ \definefontsynonym[Kurier-Regular] [\typescriptthree-kurierr] [encoding=\typescriptthree]
+ \definefontsynonym[Kurier-Medium] [\typescriptthree-kurierm] [encoding=\typescriptthree]
+ \definefontsynonym[Kurier-Bold] [\typescriptthree-kurierb] [encoding=\typescriptthree]
+ \definefontsynonym[Kurier-Heavy] [\typescriptthree-kurierh] [encoding=\typescriptthree]
+ \definefontsynonym[Kurier-LightItalic] [\typescriptthree-kurierli] [encoding=\typescriptthree]
+ \definefontsynonym[Kurier-RegularItalic] [\typescriptthree-kurierri] [encoding=\typescriptthree]
+ \definefontsynonym[Kurier-MediumItalic] [\typescriptthree-kuriermi] [encoding=\typescriptthree]
+ \definefontsynonym[Kurier-BoldItalic] [\typescriptthree-kurierbi] [encoding=\typescriptthree]
+ \definefontsynonym[Kurier-HeavyItalic] [\typescriptthree-kurierhi] [encoding=\typescriptthree]
\stoptypescript
\starttypescript [math] [kurier] [default]
- \definefontsynonym [Kurier-Math-Letters-Regular] [rm-kurr]
- \definefontsynonym [Kurier-Math-Letters-RegularItalic] [mi-kurr]
- \definefontsynonym [Kurier-Math-Symbols-Regular] [sy-kurr]
- \definefontsynonym [Kurier-Math-Extension-Regular] [ex-kurr]
+ \definefontsynonym [Kurier-Math-Letters-Regular] [rm-kurierr]
+ \definefontsynonym [Kurier-Math-Letters-RegularItalic] [mi-kurierri]
+ \definefontsynonym [Kurier-Math-Symbols-Regular] [sy-kurierri]
+ \definefontsynonym [Kurier-Math-Extension-Regular] [ex-kurierr]
\stoptypescript
\starttypescript [math] [kurier-light] [default]
- \definefontsynonym [Kurier-Math-Letters-Light] [rm-kurr]
- \definefontsynonym [Kurier-Math-Letters-LightItalic] [mi-kurr]
- \definefontsynonym [Kurier-Math-Symbols-Light] [sy-kurr]
- \definefontsynonym [Kurier-Math-Extension-Light] [ex-kurr]
+ \definefontsynonym [Kurier-Math-Letters-Light] [rm-kurierl]
+ \definefontsynonym [Kurier-Math-Letters-LightItalic] [mi-kurierli]
+ \definefontsynonym [Kurier-Math-Symbols-Light] [sy-kurierli]
+ \definefontsynonym [Kurier-Math-Extension-Light] [ex-kurierl]
+\stoptypescript
+
+\starttypescript [math] [kurier-medium] [default]
+ \definefontsynonym [Kurier-Math-Letters-Medium] [rm-kurierm]
+ \definefontsynonym [Kurier-Math-Letters-MediumItalic] [mi-kuriermi]
+ \definefontsynonym [Kurier-Math-Symbols-Medium] [sy-kuriermi]
+ \definefontsynonym [Kurier-Math-Extension-medium] [ex-kurierm]
\stoptypescript
% Palatino (URW)
@@ -1183,4 +1193,6 @@
\definefontsynonym [MartinVogel] [fmvr8x]
\stoptypescript
-\stoptypescriptcollection \endinput
+\stoptypescriptcollection
+
+\endinput
diff --git a/tex/context/base/type-exa.tex b/tex/context/base/type-exa.tex
index 2d7821d76..ee9e01954 100644
--- a/tex/context/base/type-exa.tex
+++ b/tex/context/base/type-exa.tex
@@ -19,10 +19,10 @@
% no fontclass, so this is the fall back
- \definetypeface [] [rm] [serif] [latin-modern] [computer-modern] [encoding=\typescripttwo]
- \definetypeface [] [ss] [sans] [latin-modern] [computer-modern] [encoding=\typescripttwo]
- \definetypeface [] [tt] [mono] [latin-modern] [computer-modern] [encoding=\typescripttwo]
- \definetypeface [] [mm] [math] [latin-modern] [computer-modern] [encoding=\typescripttwo]
+ \definetypeface [] [rm] [serif] [modern] [computer-modern] [encoding=\typescripttwo]
+ \definetypeface [] [ss] [sans] [modern] [computer-modern] [encoding=\typescripttwo]
+ \definetypeface [] [tt] [mono] [modern] [computer-modern] [encoding=\typescripttwo]
+ \definetypeface [] [mm] [math] [modern] [computer-modern] [encoding=\typescripttwo]
\quittypescriptscanning
@@ -30,10 +30,10 @@
\starttypescript [modern] [texnansi,ec,qx,il2,pl0,t5,default]
- \definetypeface [modern] [rm] [serif] [latin-modern] [computer-modern] [encoding=\typescripttwo]
- \definetypeface [modern] [ss] [sans] [latin-modern] [computer-modern] [encoding=\typescripttwo]
- \definetypeface [modern] [tt] [mono] [latin-modern] [computer-modern] [encoding=\typescripttwo]
- \definetypeface [modern] [mm] [math] [latin-modern] [computer-modern] [encoding=\typescripttwo]
+ \definetypeface [modern] [rm] [serif] [modern] [computer-modern] [encoding=\typescripttwo]
+ \definetypeface [modern] [ss] [sans] [modern] [computer-modern] [encoding=\typescripttwo]
+ \definetypeface [modern] [tt] [mono] [modern] [computer-modern] [encoding=\typescripttwo]
+ \definetypeface [modern] [mm] [math] [modern] [computer-modern] [encoding=\typescripttwo]
\quittypescriptscanning
@@ -41,10 +41,10 @@
\starttypescript [modern-base] [texnansi,ec,qx,pl0,il2,t5,default]
- \definetypeface [modern] [rm] [serif] [latin-modern] [default] [encoding=\typescripttwo]
- \definetypeface [modern] [ss] [sans] [latin-modern] [default] [encoding=\typescripttwo]
- \definetypeface [modern] [tt] [mono] [latin-modern] [default] [encoding=\typescripttwo]
- \definetypeface [modern] [mm] [math] [latin-modern] [default] [encoding=\typescripttwo]
+ \definetypeface [modern] [rm] [serif] [modern] [default] [encoding=\typescripttwo]
+ \definetypeface [modern] [ss] [sans] [modern] [default] [encoding=\typescripttwo]
+ \definetypeface [modern] [tt] [mono] [modern] [default] [encoding=\typescripttwo]
+ \definetypeface [modern] [mm] [math] [modern] [default] [encoding=\typescripttwo]
\quittypescriptscanning
@@ -111,9 +111,9 @@
% \starttypescript [utopia] [ec]
-% \definetypeface [fourier] [rm] [serif] [fourier] [default] [encoding=ec]
-% \definetypeface [fourier] [mm] [math] [fourier] [default] [encoding=default]
-% \definetypeface [fourier] [tt] [mono] [latin-modern] [default] [rscale=1.070,encoding=ec]
+% \definetypeface [fourier] [rm] [serif] [fourier] [default] [encoding=ec]
+% \definetypeface [fourier] [mm] [math] [fourier] [default] [encoding=default]
+% \definetypeface [fourier] [tt] [mono] [modern] [default] [rscale=1.070,encoding=ec]
% \usemathcollection[fou]
diff --git a/tex/context/base/type-ini.tex b/tex/context/base/type-ini.tex
index 59bdd9093..a70042448 100644
--- a/tex/context/base/type-ini.tex
+++ b/tex/context/base/type-ini.tex
@@ -298,7 +298,7 @@
\long\def\dostarttypescriptyes
{\ifdone
\typescriptfoundtrue
- \iftracetypescripts\writestatus\m!fonts{match: \ifx\currenttypefile\relax-\fi \typescriptmatch}\fi
+ \iftracetypescripts\writestatus\m!fonts{match:\ifx\currenttypefile\relax\space *\fi \typescriptmatch}\fi
\expandafter\doprocesstypescript
\else
\expandafter\noprocesstypescript
diff --git a/tex/context/base/type-map.tex b/tex/context/base/type-map.tex
index 775ed00a3..d2485baa1 100644
--- a/tex/context/base/type-map.tex
+++ b/tex/context/base/type-map.tex
@@ -104,7 +104,7 @@
% latin modern
-\starttypescript [map] [computer-modern,latin-modern] [ec,texnansi,qx,t5,pl0,il2]
+\starttypescript [map] [modern,computer-modern,latin-modern] [ec,texnansi,qx,t5,pl0,il2]
\loadmapfile[\typescriptthree-public-lm.map]
\stoptypescript
@@ -157,11 +157,15 @@
\loadmapfile[\typescriptthree-public-antp.map]
\stoptypescript
-\starttypescript [map] [iwona,iwona-light] [ec,texnansi,qx,t5]
+\starttypescript [map] [iwona,iwona-light,iwona-medium,iwona-heavy] [ec,texnansi,qx,t5]
\loadmapfile[\typescriptthree-iwona.map]
+ \loadmapfile[rm-iwona.map]
+ \loadmapfile[mi-iwona.map]
+ \loadmapfile[sy-iwona.map]
+ \loadmapfile[ex-iwona.map]
\stoptypescript
-\starttypescript [map] [kurier,kurier-light] [ec,texnansi,qx,t5,default]
+\starttypescript [map] [kurier,kurier-light,kurier-medium,kurier-heavy] [ec,texnansi,qx,t5,default]
\loadmapfile[\typescriptthree-kurier.map]
\loadmapfile[rm-kurier.map]
\loadmapfile[mi-kurier.map]
diff --git a/tex/context/base/type-siz.tex b/tex/context/base/type-siz.tex
index f37141b71..6a2e35b30 100644
--- a/tex/context/base/type-siz.tex
+++ b/tex/context/base/type-siz.tex
@@ -392,7 +392,7 @@
\stoptypescript
-\starttypescript [math] [computer-modern,latin-modern] [size]
+\starttypescript [math] [modern,computer-modern,latin-modern] [size]
% hack to prevent mapping of filenames, watch the space!
@@ -466,7 +466,7 @@
\stoptypescript
-\starttypescript [boldmath] [computer-modern,latin-modern] [size]
+\starttypescript [boldmath] [modern,computer-modern,latin-modern] [size]
% hack to prevent mapping of filenames, watch the space!
@@ -540,7 +540,7 @@
\stoptypescript
-\starttypescript [bfmath] [computer-modern,latin-modern] [size]
+\starttypescript [bfmath] [modern,computer-modern,latin-modern] [size]
% hack to prevent mapping of filenames, watch the space!
@@ -816,7 +816,7 @@
\stoptypescript
-\starttypescript [math] [computer-modern,latin-modern,ams] [size]
+\starttypescript [math] [modern,computer-modern,latin-modern,ams] [size]
\definebodyfont [17.3pt,14.4pt,12pt,11pt,10pt,9pt] [mm]
[ma=msam10 sa 1,
mb=msbm10 sa 1]
diff --git a/tex/context/base/type-spe.tex b/tex/context/base/type-spe.tex
index 7ee8d8ab3..0fd2abadd 100644
--- a/tex/context/base/type-spe.tex
+++ b/tex/context/base/type-spe.tex
@@ -20,7 +20,7 @@
\def\controlspace{\getglyph{ComputerModernMono}{\char32}}
\stoptypescript
-\starttypescript [math] [computer-modern,latin-modern,ams] [special]
+\starttypescript [math] [modern,computer-modern,latin-modern,ams] [special]
\usemathcollection[default]
\stoptypescript
diff --git a/tex/context/base/type-syn.tex b/tex/context/base/type-syn.tex
index c29684be1..894812d9c 100644
--- a/tex/context/base/type-syn.tex
+++ b/tex/context/base/type-syn.tex
@@ -47,7 +47,7 @@
% Computer Modern Roman : Donald Knuth
-\starttypescript [serif] [computer-modern,latin-modern] [name]
+\starttypescript [serif] [modern,computer-modern,latin-modern] [name]
\definefontsynonym [Serif] [ComputerModern]
\definefontsynonym [SerifBold] [ComputerModern-Bold]
\definefontsynonym [SerifItalic] [ComputerModern-Italic]
@@ -57,7 +57,7 @@
\definefontsynonym [SerifCaps] [ComputerModern-Caps]
\stoptypescript
-\starttypescript [sans] [computer-modern,latin-modern] [name]
+\starttypescript [sans] [modern,computer-modern,latin-modern] [name]
\definefontsynonym [Sans] [ComputerModernSans]
\definefontsynonym [SansBold] [ComputerModernSans-Bold]
\definefontsynonym [SansItalic] [ComputerModernSans-Italic]
@@ -67,7 +67,7 @@
\definefontsynonym [SansCaps] [ComputerModernSans-Caps]
\stoptypescript
-\starttypescript [mono] [computer-modern,latin-modern] [name]
+\starttypescript [mono] [modern,computer-modern,latin-modern] [name]
\definefontsynonym [Mono] [ComputerModernMono]
\definefontsynonym [MonoBold] [ComputerModernMono-Bold]
\definefontsynonym [MonoItalic] [ComputerModernMono-Italic]
@@ -77,28 +77,28 @@
\definefontsynonym [MonoCaps] [ComputerModernMono-Caps]
\stoptypescript
-\starttypescript [math] [computer-modern,latin-modern] [name]
+\starttypescript [math] [modern,computer-modern,latin-modern] [name]
\definefontsynonym [MathRoman] [ComputerModernMath-Roman]
\definefontsynonym [MathExtension] [ComputerModernMath-Extension]
\definefontsynonym [MathItalic] [ComputerModernMath-Italic]
\definefontsynonym [MathSymbol] [ComputerModernMath-Symbol]
\stoptypescript
-\starttypescript [boldmath] [computer-modern,latin-modern] [name]
+\starttypescript [boldmath] [modern,computer-modern,latin-modern] [name]
\definefontsynonym [MathRoman] [ComputerModernMath-Roman-Bold]
\definefontsynonym [MathExtension] [ComputerModernMath-Extension]
\definefontsynonym [MathItalic] [ComputerModernMath-Italic-Bold]
\definefontsynonym [MathSymbol] [ComputerModernMath-Symbol-Bold]
\stoptypescript
-\starttypescript [bfmath] [computer-modern,latin-modern] [name]
+\starttypescript [bfmath] [modern,computer-modern,latin-modern] [name]
\definefontsynonym [MathRomanBold] [ComputerModernMath-Roman-Bold]
\definefontsynonym [MathExtension] [ComputerModernMath-Extension]
\definefontsynonym [MathItalicBold] [ComputerModernMath-Italic-Bold]
\definefontsynonym [MathSymbolBold] [ComputerModernMath-Symbol-Bold]
\stoptypescript
-\starttypescript [serif] [computer-modern-vari,latin-modern-vari] [name]
+\starttypescript [serif] [modern,computer-modern-vari,latin-modern-vari] [name]
\definefontsynonym [Serif] [ComputerModernMono-Variable]
\definefontsynonym [SerifBold] [Serif]
\definefontsynonym [SerifItalic] [Serif]
@@ -110,7 +110,7 @@
% This will change some day.
-\starttypescript [math] [computer-modern,latin-modern] [name]
+\starttypescript [math] [modern,computer-modern,latin-modern] [name]
\definefontsynonym [OldStyle] [MathItalic]
\definefontsynonym [Fraktur] [eufm10]
\definefontsynonym [Blackboard] [msbm10]
@@ -169,7 +169,7 @@
% American Math Society : Michael Spivak
-\starttypescript [math] [computer-modern,latin-modern,ams] [name]
+\starttypescript [math] [modern,computer-modern,latin-modern,ams] [name]
\definefontsynonym [MathAlpha] [AMS-SymbolA]
\definefontsynonym [MathBeta] [AMS-SymbolB]
\stoptypescript
@@ -448,6 +448,34 @@
\definefontsynonym [SansBoldItalic] [Iwona-BoldItalic] [encoding=\typescriptthree]
\stoptypescript
+\starttypescript [sans] [iwona-medium] [name]
+ \definefontsynonym [Sans] [Iwona-Medium] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalic] [Iwona-MediumItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBold] [Iwona-Heavy] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalic] [Iwona-HeavyItalic] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [math] [iwona-light] [name]
+ \definefontsynonym [MathRoman] [Iwona-Math-Letters-Light]
+ \definefontsynonym [MathItalic] [Iwona-Math-Letters-LightItalic]
+ \definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Light]
+ \definefontsynonym [MathExtension] [Iwona-Math-Extension-Light]
+\stoptypescript
+
+\starttypescript [math] [iwona] [name]
+ \definefontsynonym [MathRoman] [Iwona-Math-Letters-Regular]
+ \definefontsynonym [MathItalic] [Iwona-Math-Letters-RegularItalic]
+ \definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Regular]
+ \definefontsynonym [MathExtension] [Iwona-Math-Extension-Regular]
+\stoptypescript
+
+\starttypescript [math] [iwona-medium] [name]
+ \definefontsynonym [MathRoman] [Iwona-Math-Letters-Medium]
+ \definefontsynonym [MathItalic] [Iwona-Math-Letters-MediumItalic]
+ \definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Medium]
+ \definefontsynonym [MathExtension] [Iwona-Math-Extension-Medium]
+\stoptypescript
+
% Kurier
\starttypescript [sans] [kurier-light] [name]
@@ -464,6 +492,13 @@
\definefontsynonym [SansBoldItalic] [Kurier-BoldItalic] [encoding=\typescriptthree]
\stoptypescript
+\starttypescript [sans] [kurier-medium] [name]
+ \definefontsynonym [Sans] [Kurier-Medium] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalic] [Kurier-MediumItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBold] [Kurier-Heavy] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalic] [Kurier-HeavyItalic] [encoding=\typescriptthree]
+\stoptypescript
+
\starttypescript [math] [kurier-light] [name]
\definefontsynonym [MathRoman] [Kurier-Math-Letters-Light]
\definefontsynonym [MathItalic] [Kurier-Math-Letters-LightItalic]
@@ -478,6 +513,13 @@
\definefontsynonym [MathExtension] [Kurier-Math-Extension-Regular]
\stoptypescript
+\starttypescript [math] [kurier-medium] [name]
+ \definefontsynonym [MathRoman] [Kurier-Math-Letters-Medium]
+ \definefontsynonym [MathItalic] [Kurier-Math-Letters-MediumItalic]
+ \definefontsynonym [MathSymbol] [Kurier-Math-Symbols-Medium]
+ \definefontsynonym [MathExtension] [Kurier-Math-Extension-Medium]
+\stoptypescript
+
% Bookman :
\starttypescript [serif] [bookman] [name]
diff --git a/tex/context/base/unic-ini.tex b/tex/context/base/unic-ini.tex
index b3ba4ec53..1881eceb2 100644
--- a/tex/context/base/unic-ini.tex
+++ b/tex/context/base/unic-ini.tex
@@ -50,7 +50,7 @@
%D \NC262144(b_1-240)\NC+\NC4096(b_2-128)\NC+\NC64(b_3-128)\NC+\NC(b_4-128)\NC if 240<=b1<=247\NC \NR
%D \stoptabulate
%D
-%D A lot of information abou tunicode can be found on the
+%D A lot of information about unicode can be found on the
%D web (search for Markus Kuhn and unicode and you'll
%D probably end up at the right place).
diff --git a/tex/context/interface/cont-cz.xml b/tex/context/interface/cont-cz.xml
index 04ab11452..7929f1075 100644
--- a/tex/context/interface/cont-cz.xml
+++ b/tex/context/interface/cont-cz.xml
@@ -3972,7 +3972,7 @@
<cd:command name="product" type="environment">
<cd:sequence>
- <cd:string value="product"/>
+ <cd:string value="produkt"/>
</cd:sequence>
<cd:arguments>
<cd:file/>
@@ -5019,6 +5019,10 @@
<cd:constant type="ano"/>
<cd:constant type="ne"/>
</cd:parameter>
+ <cd:parameter name="cislooddilu">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
<cd:parameter name="cd:sectionnumber">
<cd:constant type="ano"/>
<cd:constant type="ne"/>
@@ -5943,6 +5947,13 @@
<cd:constant type="nastred"/>
<cd:variable type="cd:text"/>
</cd:parameter>
+ <cd:parameter name="zaveseni">
+ <cd:constant type="zadny"/>
+ <cd:constant type="siroky"/>
+ <cd:constant type="prizpusobive"/>
+ <cd:constant type="radek"/>
+ <cd:variable type="cd:number"/>
+ </cd:parameter>
<cd:parameter name="prikaz">
<cd:constant type="cd:twoarguments"/>
</cd:parameter>
diff --git a/tex/context/interface/cont-de.xml b/tex/context/interface/cont-de.xml
index 97cb29779..0247fdefb 100644
--- a/tex/context/interface/cont-de.xml
+++ b/tex/context/interface/cont-de.xml
@@ -3972,7 +3972,7 @@
<cd:command name="product" type="environment">
<cd:sequence>
- <cd:string value="product"/>
+ <cd:string value="produkt"/>
</cd:sequence>
<cd:arguments>
<cd:file/>
@@ -5019,6 +5019,10 @@
<cd:constant type="ja"/>
<cd:constant type="nein"/>
</cd:parameter>
+ <cd:parameter name="abschnittsnummer">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
<cd:parameter name="cd:sectionnumber">
<cd:constant type="ja"/>
<cd:constant type="nein"/>
@@ -5943,6 +5947,13 @@
<cd:constant type="mittig"/>
<cd:variable type="cd:text"/>
</cd:parameter>
+ <cd:parameter name="haengend">
+ <cd:constant type="kein"/>
+ <cd:constant type="breit"/>
+ <cd:constant type="passend"/>
+ <cd:constant type="zeile"/>
+ <cd:variable type="cd:number"/>
+ </cd:parameter>
<cd:parameter name="befehl">
<cd:constant type="cd:twoarguments"/>
</cd:parameter>
diff --git a/tex/context/interface/cont-en.xml b/tex/context/interface/cont-en.xml
index 2c16257e4..33a6f8917 100644
--- a/tex/context/interface/cont-en.xml
+++ b/tex/context/interface/cont-en.xml
@@ -5019,6 +5019,10 @@
<cd:constant type="yes"/>
<cd:constant type="no"/>
</cd:parameter>
+ <cd:parameter name="sectionnumber">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
<cd:parameter name="cd:sectionnumber">
<cd:constant type="yes"/>
<cd:constant type="no"/>
@@ -5943,6 +5947,13 @@
<cd:constant type="middle"/>
<cd:variable type="cd:text"/>
</cd:parameter>
+ <cd:parameter name="hang">
+ <cd:constant type="none"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="fit"/>
+ <cd:constant type="line"/>
+ <cd:variable type="cd:number"/>
+ </cd:parameter>
<cd:parameter name="command">
<cd:constant type="cd:twoarguments"/>
</cd:parameter>
diff --git a/tex/context/interface/cont-it.xml b/tex/context/interface/cont-it.xml
index 2f9183b5a..c1e9f3ec1 100644
--- a/tex/context/interface/cont-it.xml
+++ b/tex/context/interface/cont-it.xml
@@ -3972,7 +3972,7 @@
<cd:command name="product" type="environment">
<cd:sequence>
- <cd:string value="product"/>
+ <cd:string value="prodotto"/>
</cd:sequence>
<cd:arguments>
<cd:file/>
@@ -5019,6 +5019,10 @@
<cd:constant type="si"/>
<cd:constant type="no"/>
</cd:parameter>
+ <cd:parameter name="numerosezione">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
<cd:parameter name="cd:sectionnumber">
<cd:constant type="si"/>
<cd:constant type="no"/>
@@ -5943,6 +5947,13 @@
<cd:constant type="centro"/>
<cd:variable type="cd:text"/>
</cd:parameter>
+ <cd:parameter name="sospendi">
+ <cd:constant type="nessuno"/>
+ <cd:constant type="ampio"/>
+ <cd:constant type="adatta"/>
+ <cd:constant type="riga"/>
+ <cd:variable type="cd:number"/>
+ </cd:parameter>
<cd:parameter name="comando">
<cd:constant type="cd:twoarguments"/>
</cd:parameter>
diff --git a/tex/context/interface/cont-nl.xml b/tex/context/interface/cont-nl.xml
index 9b54e77cf..cbb842a78 100644
--- a/tex/context/interface/cont-nl.xml
+++ b/tex/context/interface/cont-nl.xml
@@ -3972,7 +3972,7 @@
<cd:command name="product" type="environment">
<cd:sequence>
- <cd:string value="product"/>
+ <cd:string value="produkt"/>
</cd:sequence>
<cd:arguments>
<cd:file/>
@@ -5019,6 +5019,10 @@
<cd:constant type="ja"/>
<cd:constant type="nee"/>
</cd:parameter>
+ <cd:parameter name="sectienummer">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
<cd:parameter name="cd:sectionnumber">
<cd:constant type="ja"/>
<cd:constant type="nee"/>
@@ -5943,6 +5947,13 @@
<cd:constant type="midden"/>
<cd:variable type="cd:text"/>
</cd:parameter>
+ <cd:parameter name="hang">
+ <cd:constant type="geen"/>
+ <cd:constant type="ruim"/>
+ <cd:constant type="passend"/>
+ <cd:constant type="regel"/>
+ <cd:variable type="cd:number"/>
+ </cd:parameter>
<cd:parameter name="commando">
<cd:constant type="cd:twoarguments"/>
</cd:parameter>
diff --git a/tex/context/interface/cont-ro.xml b/tex/context/interface/cont-ro.xml
index 007f88b50..ff05e0543 100644
--- a/tex/context/interface/cont-ro.xml
+++ b/tex/context/interface/cont-ro.xml
@@ -3972,7 +3972,7 @@
<cd:command name="product" type="environment">
<cd:sequence>
- <cd:string value="product"/>
+ <cd:string value="produs"/>
</cd:sequence>
<cd:arguments>
<cd:file/>
@@ -5019,6 +5019,10 @@
<cd:constant type="da"/>
<cd:constant type="nu"/>
</cd:parameter>
+ <cd:parameter name="numarsectiune">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
<cd:parameter name="cd:sectionnumber">
<cd:constant type="da"/>
<cd:constant type="nu"/>
@@ -5943,6 +5947,13 @@
<cd:constant type="centru"/>
<cd:variable type="cd:text"/>
</cd:parameter>
+ <cd:parameter name="suspenda">
+ <cd:constant type="niciunul"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="ajustat"/>
+ <cd:constant type="linie"/>
+ <cd:variable type="cd:number"/>
+ </cd:parameter>
<cd:parameter name="comanda">
<cd:constant type="cd:twoarguments"/>
</cd:parameter>
diff --git a/tex/context/interface/keys-cz.xml b/tex/context/interface/keys-cz.xml
index 02c1aef49..f8748f148 100644
--- a/tex/context/interface/keys-cz.xml
+++ b/tex/context/interface/keys-cz.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2005.08.03">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2005.08.15">
<cd:variables>
<cd:variable name="one" value="jedna"/>
@@ -1407,7 +1407,7 @@
<cd:command name="setups" value="nastaveni"/>
<cd:command name="project" value="projekt"/>
<cd:command name="component" value="komponenta"/>
- <cd:command name="produxt" value="produkt"/>
+ <cd:command name="product" value="produkt"/>
<cd:command name="environment" value="prostredi"/>
<cd:command name="nomorefiles" value="zadnedalsisoubory"/>
<cd:command name="getbuffer" value="ziskejbuffer"/>
diff --git a/tex/context/interface/keys-de.xml b/tex/context/interface/keys-de.xml
index d2bd86d2a..43c6f0838 100644
--- a/tex/context/interface/keys-de.xml
+++ b/tex/context/interface/keys-de.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2005.08.03">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2005.08.15">
<cd:variables>
<cd:variable name="one" value="eins"/>
@@ -1407,7 +1407,7 @@
<cd:command name="setups" value="einstellungen"/>
<cd:command name="project" value="projekt"/>
<cd:command name="component" value="komponente"/>
- <cd:command name="produxt" value="produkt"/>
+ <cd:command name="product" value="produkt"/>
<cd:command name="environment" value="umgebung"/>
<cd:command name="nomorefiles" value="keinedateienmehr"/>
<cd:command name="getbuffer" value="holepuffer"/>
diff --git a/tex/context/interface/keys-en.xml b/tex/context/interface/keys-en.xml
index 93122c2c3..8bbc01db4 100644
--- a/tex/context/interface/keys-en.xml
+++ b/tex/context/interface/keys-en.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2005.08.03">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2005.08.15">
<cd:variables>
<cd:variable name="one" value="one"/>
@@ -1407,7 +1407,7 @@
<cd:command name="setups" value="setups"/>
<cd:command name="project" value="project"/>
<cd:command name="component" value="component"/>
- <cd:command name="produxt" value="product"/>
+ <cd:command name="product" value="product"/>
<cd:command name="environment" value="environment"/>
<cd:command name="nomorefiles" value="nomorefiles"/>
<cd:command name="getbuffer" value="getbuffer"/>
diff --git a/tex/context/interface/keys-it.xml b/tex/context/interface/keys-it.xml
index 03bbe48d0..c0ed7a5fd 100644
--- a/tex/context/interface/keys-it.xml
+++ b/tex/context/interface/keys-it.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2005.08.03">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2005.08.15">
<cd:variables>
<cd:variable name="one" value="uno"/>
@@ -1407,7 +1407,7 @@
<cd:command name="setups" value="impostazioni"/>
<cd:command name="project" value="progetto"/>
<cd:command name="component" value="componenet"/>
- <cd:command name="produxt" value="prodotto"/>
+ <cd:command name="product" value="prodotto"/>
<cd:command name="environment" value="ambiente"/>
<cd:command name="nomorefiles" value="bastafile"/>
<cd:command name="getbuffer" value="prendibuffer"/>
diff --git a/tex/context/interface/keys-nl.xml b/tex/context/interface/keys-nl.xml
index 219fb9eec..04c956b1a 100644
--- a/tex/context/interface/keys-nl.xml
+++ b/tex/context/interface/keys-nl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2005.08.03">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2005.08.15">
<cd:variables>
<cd:variable name="one" value="een"/>
@@ -1407,7 +1407,7 @@
<cd:command name="setups" value="instellingen"/>
<cd:command name="project" value="project"/>
<cd:command name="component" value="onderdeel"/>
- <cd:command name="produxt" value="produkt"/>
+ <cd:command name="product" value="produkt"/>
<cd:command name="environment" value="omgeving"/>
<cd:command name="nomorefiles" value="geenfilesmeer"/>
<cd:command name="getbuffer" value="haalbuffer"/>
diff --git a/tex/context/interface/keys-ro.xml b/tex/context/interface/keys-ro.xml
index 93cd9da49..7fdf9898f 100644
--- a/tex/context/interface/keys-ro.xml
+++ b/tex/context/interface/keys-ro.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2005.08.03">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2005.08.15">
<cd:variables>
<cd:variable name="one" value="unu"/>
@@ -1407,7 +1407,7 @@
<cd:command name="setups" value="setari"/>
<cd:command name="project" value="proiect"/>
<cd:command name="component" value="componenta"/>
- <cd:command name="produxt" value="produs"/>
+ <cd:command name="product" value="produs"/>
<cd:command name="environment" value="mediu"/>
<cd:command name="nomorefiles" value="farafisiere"/>
<cd:command name="getbuffer" value="adubuffer"/>
diff --git a/tex/context/sample/reich.tex b/tex/context/sample/reich.tex
index 3be5ae42e..db9d4404f 100644
--- a/tex/context/sample/reich.tex
+++ b/tex/context/sample/reich.tex
@@ -1,11 +1,11 @@
-\citaat {Heavy smoke}
-\citaat {Stand by, stand by}
-\citaat {It's full a' smoke}
-\citaat {Full a' smoke}
-\citaat {Urgent}
-\citaat {Guns, knives or weapons on ya?}
-\citaat {Wha' were ya doin'?}
-\citaat {Be careful}
-\citaat {Where you go}
-\citaat {Careful}
-\citaat {Stand by}
+\quotation {Heavy smoke}
+\quotation {Stand by, stand by}
+\quotation {It's full a' smoke}
+\quotation {Full a' smoke}
+\quotation {Urgent}
+\quotation {Guns, knives or weapons on ya?}
+\quotation {Wha' were ya doin'?}
+\quotation {Be careful}
+\quotation {Where you go}
+\quotation {Careful}
+\quotation {Stand by}