From 04f482905287b3f547607cd32d0842d59350a5ab Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Tue, 16 Nov 2004 00:00:00 +0100 Subject: stable 2004.11.16 --- tex/context/base/colo-pra.tex | 55 +- tex/context/base/cont-fil.tex | 4 +- tex/context/base/cont-log.tex | 2 + tex/context/base/cont-new.tex | 57 + tex/context/base/context.tex | 4 +- tex/context/base/core-box.tex | 2 +- tex/context/base/core-ini.tex | 3 + tex/context/base/core-not.tex | 11 +- tex/context/base/core-ntb.tex | 5 +- tex/context/base/core-rul.tex | 6 +- tex/context/base/core-sec.tex | 10 +- tex/context/base/core-spa.tex | 59 +- tex/context/base/core-ver.tex | 36 +- tex/context/base/enco-def.tex | 6 +- tex/context/base/font-uni.tex | 13 + tex/context/base/java-exa.tex | 2 +- tex/context/base/mult-con.tex | 15 + tex/context/base/mult-ini.tex | 44 +- tex/context/base/page-flt.tex | 14 +- tex/context/base/page-lay.tex | 5 +- tex/context/base/page-mar.tex | 10 +- tex/context/base/setupb.tex | 10 +- tex/context/base/setupe.tex | 2 +- tex/context/base/spec-def.tex | 3 + tex/context/base/spec-xtx.tex | 199 +- tex/context/base/supp-dir.tex | 42 + tex/context/base/supp-mps.tex | 6 +- tex/context/base/symb-uni.tex | 1123 ++++ tex/context/base/syst-etx.tex | 6 +- tex/context/base/syst-prm.tex | 90 +- tex/context/base/syst-xtx.tex | 23 + tex/context/base/type-akb.tex | 2 +- tex/context/base/type-exa.tex | 12 +- tex/context/base/type-fsf.tex | 2 +- tex/context/base/type-ghz.tex | 2 +- tex/context/base/type-ini.tex | 4 +- tex/context/base/type-xtx.tex | 496 ++ tex/context/base/unic-001.tex | 285 +- tex/context/base/unic-002.tex | 28 +- tex/context/base/unic-032.tex | 158 +- tex/context/base/unic-ini.tex | 22 +- tex/context/base/x-fe.tex | 27 +- tex/context/base/x-fo.tex | 702 ++- tex/context/base/x-foxet.tex | 4 +- tex/context/base/x-set-01.tex | 75 + tex/context/base/x-set-02.tex | 33 + tex/context/base/x-set-11.tex | 743 +++ tex/context/base/x-set-12.tex | 211 + tex/context/base/xtag-ini.tex | 154 +- tex/context/base/xtag-mmp.tex | 46 +- tex/context/base/xtag-run.tex | 20 +- tex/context/interface/cont-cz.xml | 10222 ++++++++++++++++++++++++++++++++++++ tex/context/interface/cont-de.xml | 10222 ++++++++++++++++++++++++++++++++++++ tex/context/interface/cont-en.xml | 10222 ++++++++++++++++++++++++++++++++++++ tex/context/interface/cont-it.xml | 10222 ++++++++++++++++++++++++++++++++++++ tex/context/interface/cont-nl.xml | 10222 ++++++++++++++++++++++++++++++++++++ tex/context/interface/cont-ro.xml | 10222 ++++++++++++++++++++++++++++++++++++ tex/context/interface/keys-cz.xml | 1576 ++++++ tex/context/interface/keys-de.xml | 1576 ++++++ tex/context/interface/keys-en.xml | 1576 ++++++ tex/context/interface/keys-it.xml | 1576 ++++++ tex/context/interface/keys-nl.xml | 1576 ++++++ tex/context/interface/keys-ro.xml | 1576 ++++++ 63 files changed, 74879 insertions(+), 802 deletions(-) create mode 100644 tex/context/base/supp-dir.tex create mode 100644 tex/context/base/symb-uni.tex create mode 100644 tex/context/base/syst-xtx.tex create mode 100644 tex/context/base/type-xtx.tex create mode 100644 tex/context/base/x-set-01.tex create mode 100644 tex/context/base/x-set-02.tex create mode 100644 tex/context/base/x-set-11.tex create mode 100644 tex/context/base/x-set-12.tex create mode 100644 tex/context/interface/cont-cz.xml create mode 100644 tex/context/interface/cont-de.xml create mode 100644 tex/context/interface/cont-en.xml create mode 100644 tex/context/interface/cont-it.xml create mode 100644 tex/context/interface/cont-nl.xml create mode 100644 tex/context/interface/cont-ro.xml create mode 100644 tex/context/interface/keys-cz.xml create mode 100644 tex/context/interface/keys-de.xml create mode 100644 tex/context/interface/keys-en.xml create mode 100644 tex/context/interface/keys-it.xml create mode 100644 tex/context/interface/keys-nl.xml create mode 100644 tex/context/interface/keys-ro.xml (limited to 'tex') diff --git a/tex/context/base/colo-pra.tex b/tex/context/base/colo-pra.tex index 228df546a..b7717cb75 100644 --- a/tex/context/base/colo-pra.tex +++ b/tex/context/base/colo-pra.tex @@ -8,30 +8,34 @@ %D copyright={PRAGMA / Hans Hagen \& Ton Otten}] %C %C This module is part of the \CONTEXT\ macro||package and is -%C therefore copyrighted by \PRAGMA. See mreadme.pdf for -%C details. +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. %D This module is not meant for third party use and defines %D some \PRAGMA\ specific colors. -% huisstijl +% company colors -\definecolor [pragmaburcolor] [r=1,g=0.62,b=0.06] % (Pantone 138 CV) +\definecolor [pragmaburcolor] [r=1,g=.62,b=.06] % (Pantone 138 CV) \definecolor [pragmaburkleur] [pragmaburcolor] -\definecolor [pragmaadecolor] [r=1,g=0.62,b=0.06] % (Pantone 138 CV) +\definecolor [pragmaadecolor] [r=1,g=.62,b=.06] % (Pantone 138 CV) \definecolor [pragmaadekleur] [pragmaadecolor] -\definecolor [pragmapodcolor] [r=.6,g=.7,b=.8] % (rather mathematic) +\definecolor [pragmapodcolor] [r=.6,g=.7,b=.8] % (no pantone here) \definecolor [pragmapodkleur] [pragmapodcolor] \definecolor [pragmacolor] [pragmaburcolor] \definecolor [pragmakleur] [pragmaburcolor] -\definecolor [texprettyone] [r=.8, g=0, b=0] % red -\definecolor [texprettytwo] [r=0, g=.6, b=0] % green -\definecolor [texprettythree] [r=.0, g=.0, b=.9] % blue -\definecolor [texprettyfour] [r=.8, g=.8, b=.6] % yellow +% pretty printing + +\definecolor [texprettyone] [r=.8,g=0, b=0] % red +\definecolor [texprettytwo] [r=0, g=.6,b=0] % green +\definecolor [texprettythree] [r=.0,g=.0,b=.9] % blue +\definecolor [texprettyfour] [r=.8,g=.8,b=.6] % yellow + +% all kind of colors \definecolor [BackgroundColor] [r=1, g=1, b=.7] \definecolor [InteractionColor] [r=.1, g=.5, b=.8] @@ -39,26 +43,35 @@ \definecolor [AchtergrondKleur] [BackgroundColor] \definecolor [InteractieKleur] [InteractionColor] -\definecolor [DemoRed] [r=1, g=.6, b=.6] +\definecolor [DemoRed] [r=1,g=.6,b=.6] \definecolor [DemoRood] [DemoRed] -\definecolor [DemoBlue] [r=.6, g=.8, b=1] +\definecolor [DemoBlue] [r=.6,g=.8,b=1] \definecolor [DemoBlauw] [DemoBlue] \definecolor [DemoYellow] [BackgroundColor] \definecolor [DemoGeel] [BackgroundColor] -% demonstratiekleuren +% more colors + +\definecolor [cyaan:x] [r=.3,g=.85,b=1] +\definecolor [cyaan:y] [r=.4,g=.80,b=1] +\definecolor [cyaan:z] [r=.5,g=.75,b=1] -\definecolor [cyaan:x] [r=.3, g=.85, b=1] -\definecolor [cyaan:y] [r=.4, g=.8, b=1] -\definecolor [cyaan:z] [r=.5, g=.75, b=1] +% even more colors -% schermkleuren +\definecolor [screenred] [r=.8] +\definecolor [screengreen] [g=.8] +\definecolor [screenblue] [r=.8] +\definecolor [screencyan] [g=.8,b=.8] +\definecolor [screenmagenta] [r=.8,b=.8] +\definecolor [screenyellow] [r=.8,g=.8] -\definecolor [schermgroen] [r=0, g=.8, b=0] -\definecolor [schermrood] [r=.8, g=0, b=0] -\definecolor [schermcyaan] [r=0, g=.8, b=.8] -\definecolor [schermgeel] [r=.9, g=.9, b=0] +\definecolor [schermrood] [screenred] +\definecolor [schermgroen] [screengreen] +\definecolor [schermblauw] [screenblue] +\definecolor [schermcyaan] [screencyan] +\definecolor [schermmagenta] [screenmagenta] +\definecolor [schermgeel] [screenyellow] \endinput diff --git a/tex/context/base/cont-fil.tex b/tex/context/base/cont-fil.tex index 0dab749fe..b6d3fba65 100644 --- a/tex/context/base/cont-fil.tex +++ b/tex/context/base/cont-fil.tex @@ -32,8 +32,8 @@ \definefilesynonym [xml-pretty] [xml-02] \definefilesynonym [xml-analyze] [xml-11] -\definefilesynonym [int-load] [set-01] -\definefilesynonym [int-make] [set-02] +\definefilesynonym [int-load] [set-11] +\definefilesynonym [int-make] [set-12] \definefilesynonym [fig-base] [fig-00] \definefilesynonym [fig-make] [fig-01] diff --git a/tex/context/base/cont-log.tex b/tex/context/base/cont-log.tex index 488e0a735..92b04e9c9 100644 --- a/tex/context/base/cont-log.tex +++ b/tex/context/base/cont-log.tex @@ -220,10 +220,12 @@ \def\eTeX {\mathematics{\varepsilon}-\TeX} \def\pdfTeX {pdf\TeX} \def\pdfeTeX {pdfe-\TeX} +\def\XeTeX {X\lower.5ex\hbox{\kern-.15em\mirror{E}}\kern-.1667em\TeX} % Adam Lindsay \let\ETEX \eTeX \let\PDFTEX \pdfTeX \let\PDFETEX \pdfeTeX +\let\PDFETEX \XeTeX \def\XML {XML} \def\MATHML {MathML} diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex index 7e8b87e61..3db368588 100644 --- a/tex/context/base/cont-new.tex +++ b/tex/context/base/cont-new.tex @@ -23,6 +23,63 @@ \ifx\normalcompound\undefined \let\normalcompound=| \fi +\bgroup \catcode`\<=\active + +% usage: \expanded{\rescanXMLatttributes{fo:table-cell}} + +\gdef\rescanXMLattributes #1{\noexpand\dogetXMLarguments{#1}\currentXMLarguments>} +\gdef\parseXMLattributes #1#2{\dogetXMLarguments{#1}#2>} + +\egroup + +\def\setupTBLcell#1#2% cell over col over row + {\setupTBLsection % already forgotten + \getvalue{\@@tblprefix\c!y\v!each}% + \getvalue{\@@tblprefix\c!x\v!each}% + \getvalue{\@@tblprefix\c!y\v!oddeven{#1}}% + \getvalue{\@@tblprefix\c!x\v!oddeven{#2}}% + \getvalue{\@@tblprefix\c!x\v!oddeven{#2}\c!y\v!oddeven{#1}}% + \ifnum#1=\plusone + \getvalue{\@@tblprefix\c!y\v!first}% + \executeifdefined{\@@tblprefix\c!x#2\c!y\v!first}\donothing + \fi + \ifnum#2=\plusone + \getvalue{\@@tblprefix\c!x\v!first}% + \executeifdefined{\@@tblprefix\c!x\v!first\c!y#1}\donothing + \fi + \ifnum#1=\maximumrow\relax + \getvalue{\@@tblprefix\c!y\v!last}% + \executeifdefined{\@@tblprefix\c!x#2\c!y\v!last}\donothing + \fi + \ifnum#2=\maximumcol\relax + \getvalue{\@@tblprefix\c!x\v!last}% + \executeifdefined{\@@tblprefix\c!x\v!last\c!y#1}\donothing + \fi + \ifnum#1=\maximumrow\relax\ifnum#2=\maximumcol\relax + \getvalue{\@@tblprefix\c!x\v!last\c!y\v!last}% + \fi\fi + \ifnum#1=\plusone \ifnum#2=\plusone + \getvalue{\@@tblprefix\c!x\v!first\c!y\v!first}% + \fi\fi + \ifnum#1>\noftblhdnxlines\else + \executeifdefined{\@@tblprefix\v!header\v!each}\donothing + \executeifdefined{\@@tblprefix\v!header#2}\donothing + \fi + \executeifdefined{\@@tblprefix\c!y#1}\donothing +\getvalue{\@@tbl\@@tbl\c!extras}\letvalue{\@@tbl\@@tbl\c!extras}\relax + \executeifdefined{\@@tblprefix\c!x#2}\donothing +\getvalue{\@@tbl\@@tbl\c!extras}\letvalue{\@@tbl\@@tbl\c!extras}\relax + \executeifdefined{\@@tblprefix\c!x#2\c!y#1}\donothing + \global\letcscsname\@@tblsplitafter\csname\@@tbl\@@tbl\c!after\endcsname + \relax} + +\newbox\@@dlhbox + +\def\dontleavehmode + {\ifhmode\else \ifmmode\else + \setbox\@@dlhbox\hbox{\mathsurround\zeropoint\everymath\emptytoks$ $}\unhbox\@@dlhbox + \fi \fi} + % in xtag-ini: \def\doexecuteXMLhexcharacter#1\relax{\getXMLcharacter{"#1}} diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex index da8c8f28a..1caa66994 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{2004.10.28} +\def\contextversion{2004.11.16} %D Welcome to the main module. When this module is ran through %D \type{initex} or \type {tex -i} or \type {whatevertex} using @@ -81,6 +81,7 @@ \input syst-etx.tex % english / etex \input syst-omg.tex % english / omega-aleph +\input syst-xtx.tex % english / xetex \input syst-gen.tex % english \input syst-ext.tex % english \input syst-new.tex % english @@ -97,6 +98,7 @@ \input supp-ini.tex % english \input supp-fil.tex % english +\input supp-dir.tex % english %D After this we're ready for the multi||lingual interface %D modules. diff --git a/tex/context/base/core-box.tex b/tex/context/base/core-box.tex index c1bfaefc6..7a36706bc 100644 --- a/tex/context/base/core-box.tex +++ b/tex/context/base/core-box.tex @@ -382,7 +382,7 @@ {\bgroup \doifassignmentelse{#1} {\getparameters[\s!dummy][\c!alternative=\v!a,#1]% - \doifelse\dummyvariant\v!a + \doifelse\dummyalternative\v!a {\egroup\collectedtext}% {\egroup\layeredtext }% [#1][#2]}% diff --git a/tex/context/base/core-ini.tex b/tex/context/base/core-ini.tex index ef7523953..3dde16abc 100644 --- a/tex/context/base/core-ini.tex +++ b/tex/context/base/core-ini.tex @@ -23,6 +23,9 @@ \appendtoks \flushnotes \to \everypar \appendtoks \synchronizesidefloats \to \everypar + +\appendtoks \checkinlinedirection \to \everypar + \appendtoks \checkindentation \to \everypar \appendtoks \showparagraphnumber \to \everypar \appendtoks \flushmargincontents \to \everypar diff --git a/tex/context/base/core-not.tex b/tex/context/base/core-not.tex index a697b708e..5cde5fb57 100644 --- a/tex/context/base/core-not.tex +++ b/tex/context/base/core-not.tex @@ -148,10 +148,15 @@ %D \setupfootnotes[conversion=set 2] %D \stoptyping +% experiment: (compare scope=text and scope=page) +% +% \definenote[mynote][way=bytext,location=text,width=\leftmarginwidth,scope=page,rule=,before=,after=,factor=0] +% \setuptexttexts[margin][\vbox to \textheight{\placenotes[mynote]\vfill}][] + \def\definenote {\dodoubleempty\dodefinenote} -% maybe we should inherit +% maybe we should inherit (todo) \def\dodefinenote[#1][#2]% {\def\currentnote{#1}% @@ -205,6 +210,7 @@ \c!textcolor=, \c!interaction=\v!yes, \c!factor=, + \c!scope=, % \v!text \v!page \c!n=1]% \definenumber [\currentnote] @@ -230,7 +236,7 @@ [\??vn\currentnote][#2]% \processaction [\noteparameter\c!rule] - [ \v!on=>\letvalue{\??vn\c!rule:\currentnote}\normalnoterule, + [ \v!on=>\letvalue{\??vn\c!rule:\currentnote}\normalnoterule, \v!off=>\letvalue{\??vn\c!rule:\currentnote}\relax, \s!default=>\letvalue{\??vn\c!rule:\currentnote}\relax, \s!unknown=>\setvalue{\??vn\c!rule:\currentnote}{\noteparameter\c!rule}]% @@ -589,6 +595,7 @@ \fi \ignorespaces \localnoteinsert\currentnoteins\bgroup +\doif{\noteparameter\c!scope}\v!page{\floatingpenalty\maxdimen}% experiment \penalty\notepenalty \forgetall \setnotebodyfont diff --git a/tex/context/base/core-ntb.tex b/tex/context/base/core-ntb.tex index 65a9a92be..9edc7b431 100644 --- a/tex/context/base/core-ntb.tex +++ b/tex/context/base/core-ntb.tex @@ -227,6 +227,7 @@ \def\setupTBLcell#1#2% cell over col over row {\setupTBLsection % already forgotten +\getvalue{\@@tblprefix\c!each\v!each}% \getvalue{\@@tblprefix\c!y\v!each}% \getvalue{\@@tblprefix\c!x\v!each}% \getvalue{\@@tblprefix\c!y\v!oddeven{#1}}% @@ -653,7 +654,7 @@ \setbox\scratchbox\vbox{\trialtypesettingtrue \the\tbltoks}% \fi\fi\fi\fi \let\handleTBLcell\dohandleTBLcellD - \chardef\TBLpass2 + \chardef\TBLpass\plustwo \def\makeTBL##1##2% meer in cellD {\dimen2\zeropoint \globalpushmacro\colTBL @@ -672,7 +673,7 @@ \checktblheightsone \checktblheightstwo \let\handleTBLcell\dohandleTBLcellE - \chardef\TBLpass3 + \chardef\TBLpass\plusthree \def\makeTBL##1##2% {% height \globalpushmacro\rowTBL diff --git a/tex/context/base/core-rul.tex b/tex/context/base/core-rul.tex index 6a45e1294..06ca596d6 100644 --- a/tex/context/base/core-rul.tex +++ b/tex/context/base/core-rul.tex @@ -642,7 +642,7 @@ \c!topframe,\c!bottomframe,\c!leftframe,\c!rightframe,% \c!rulethickness,\c!frameoffset,\c!background,\c!component,% \c!backgroundoffset,\c!backgroundscreen,\c!backgroundcolor,% - \c!align,\c!bottom,\c!top,\c!strut,\c!location,\c!setups]% + \c!align,\c!bottom,\c!top,\c!strut,\c!location,\c!setups,\c!extras]% \copyparameters[#1\c!background][#1]% [\c!radius,\c!corner,\c!depth]% \copyparameters[#1\c!frame][#1]% @@ -711,6 +711,8 @@ \ifsecondargument % faster \getparameters[\@@framed][#2]% here ! \fi + % new, experimental dirty hook + \framedparameter\c!extras % we need to register the (outer) color \startregistercolor[\framedparameter\c!foregroundcolor]% % to get the right spacing @@ -3104,6 +3106,8 @@ \c!right=, #2]} +\let\setuplocalframed\getparameters + \def\setupframedcontent {\dodoubleempty\dosetupframedcontent} diff --git a/tex/context/base/core-sec.tex b/tex/context/base/core-sec.tex index bb27285d4..caf59baa0 100644 --- a/tex/context/base/core-sec.tex +++ b/tex/context/base/core-sec.tex @@ -2182,10 +2182,10 @@ \c!margin=\zeropoint, \c!command=] -\definesectionblock [\v!bodypart] [\v!bodymatter] [\c!number=\v!yes] -\definesectionblock [\v!appendix] [\v!appendices] [\c!number=\v!yes] -\definesectionblock [\v!frontpart] [\v!frontmatter] [\c!number=\v!no] -\definesectionblock [\v!backpart] [\v!backmatter] [\c!number=\v!no] +\definesectionblock [\v!bodypart] [\v!bodymatter] [\c!number=\v!yes] +\definesectionblock [\v!appendix] [\v!appendices] [\c!number=\v!yes] +\definesectionblock [\v!frontpart] [\v!frontmatter] [\c!number=\v!no] +\definesectionblock [\v!backpart] [\v!backmatter] [\c!number=\v!no] \definesection[\v!sectionlevel-1] % deel \definesection[\v!sectionlevel-2] % hoofdstuk @@ -2351,7 +2351,7 @@ \setuplist [\v!chapter] [\c!width=2em] \setuplist [\v!section] [\c!width=3em] \setuplist [\v!subsection] [\c!width=4em] -\setuplist [\v!subsubsection] [\c!width=5em] +\setuplist [\v!subsubsection] [\c!width=5em] \setuplist [\v!subsubsubsection] [\c!width=6em] \setuplist [\v!subsubsubsubsection] [\c!width=7em] diff --git a/tex/context/base/core-spa.tex b/tex/context/base/core-spa.tex index f429e874f..30f8c5351 100644 --- a/tex/context/base/core-spa.tex +++ b/tex/context/base/core-spa.tex @@ -1097,11 +1097,11 @@ \def\complexsetupindenting[#1]% {\processallactionsinset [#1] - [ \v!first=>\indentfirstparagraphtrue, - \v!next=>\indentfirstparagraphfalse, - \s!default=>\simplesetupindenting, - \s!unknown=>\edef\currentindentation{\commalistelement}% - \simplesetupindenting]} + [ \v!first=>\indentfirstparagraphtrue, + \v!next=>\indentfirstparagraphfalse, + \s!default=>\simplesetupindenting, + \s!unknown=>\edef\currentindentation{\commalistelement}% + \simplesetupindenting]} \def\simplesetupindenting {\assigndimension\currentindentation\ctxparindent{1em}{1.5em}{2em}% @@ -1110,25 +1110,31 @@ \def\indenting % watch out: \dodo and no \do {\dosingleargument\dodoindenting} -\def\dodoindenting[#1]% +\def\dodoindenting[#1]% oeps, we needed a commalist handler here! + {\edef\currentindenting{#1}% + \processcommacommand[#1]\dododoindenting} + +\def\dododoindenting#1% {\executeifdefined{\??in:#1}\donothing} +\let\currentindenting\empty + \def\defineindentingmethod[#1]#2% {\setvalue{\??in:#1}{#2}} -\defineindentingmethod [\v!no] {\parindent\ctxparindent\noindent} -\defineindentingmethod [\v!not] {\parindent\ctxparindent\noindent} +\defineindentingmethod [\v!no] {\parindent\ctxparindent\noindent} +\defineindentingmethod [\v!not] {\parindent\ctxparindent\noindent} -\defineindentingmethod [\v!first] {\indentfirstparagraphtrue} -\defineindentingmethod [\v!next] {\indentfirstparagraphfalse} +\defineindentingmethod [\v!first] {\indentfirstparagraphtrue} +\defineindentingmethod [\v!next] {\indentfirstparagraphfalse} -\defineindentingmethod [\v!yes] {\parindent\ctxparindent\relax} % no \indent ! -\defineindentingmethod [\v!always] {\parindent\ctxparindent\relax} % no \indent ! +\defineindentingmethod [\v!yes] {\parindent\ctxparindent\relax} % no \indent ! +\defineindentingmethod [\v!always] {\parindent\ctxparindent\relax} % no \indent ! -\defineindentingmethod [\v!never] {\parindent\zeropoint\relax} % no \indent ! +\defineindentingmethod [\v!never] {\parindent\zeropoint\relax} % no \indent ! -\def\noindenting{\indenting[\v!no,\v!next]} % was \nietinspringen -\def\doindenting{\indenting[\v!yes,\v!first]} % was \welinspringen +\def\noindenting{\indenting[\v!no,\v!next]} % was \nietinspringen +\def\doindenting{\indenting[\v!yes,\v!first]} % was \welinspringen \def\dochecknextindentation#1% internal one {\checknextindentation[\getvalue{#1\c!indentnext}]} @@ -1964,8 +1970,9 @@ \def\dosetupstrut[#1]% yet undocumented, todo: fontstrut {\processaction [#1] - [ \v!yes=>\setstrut, - \v!no=>\setnostrut, + [ \v!yes=>\setstrut, + \v!auto=>\setautostrut, + \v!no=>\setnostrut, \v!cap=>\setcapstrut, \v!fit=>\setfontstrut, \v!line=>\setstrut, @@ -1976,6 +1983,20 @@ {\def\strutwidth{.8pt}% \setstrut} +\def\autostrutfactor{1.1} + +\def\setautostrut + {\begingroup + \setbox\scratchbox\copy\strutbox + \setstrut + \ifdim\ht\strutbox>\autostrutfactor\ht\scratchbox + \endgroup \setstrut + \else\ifdim\dp\strutbox>\autostrutfactor\dp\scratchbox + \endgroup \setstrut + \else + \endgroup + \fi\fi} + % simple version % % \def\begstrut @@ -2261,7 +2282,7 @@ \v!middle=>\global\advance\ctxmidskip \@@slmiddle, \v!right=>\global\advance\ctxrightskip \@@slright, \v!none=>, - \s!unknown=>\global\advance\ctxmidskip \commalistelement]} + \s!unknown=>\global\advance\ctxmidskip \commalistelement]} \def\donarrower[#1]% {\processaction @@ -2277,7 +2298,7 @@ \bgroup \global\ctxleftskip \zeropoint \global\ctxrightskip\zeropoint - \global\ctxmidskip\zeropoint + \global\ctxmidskip \zeropoint \processcommalistwithparameters[#1]\donarrower \advance\leftskip \ctxleftskip \advance\rightskip \ctxrightskip diff --git a/tex/context/base/core-ver.tex b/tex/context/base/core-ver.tex index dcd26e718..f5b477849 100644 --- a/tex/context/base/core-ver.tex +++ b/tex/context/base/core-ver.tex @@ -150,7 +150,7 @@ \ExpandFirstAfter\processaction [\getvalue{#1\c!lines}] [ \v!yes=>\obeybreakpoints, - \v!hyphenated=>\obeyhyphens]% + \v!hyphenated=>\obeyhyphens]% % \ExpandFirstAfter\processaction [\getvalue{#1\c!option}] @@ -158,10 +158,10 @@ \v!color=>\setupprettiesintype{TEX}% \let\obeycharacters\setupprettytype \let\obeytabs\ignoretabs, - \v!normal=>\let\obeycharacters\setupgroupedtype, - \v!commands=>\def\obeycharacters{\setupcommandsintype{#1}}% + \v!normal=>\let\obeycharacters\setupgroupedtype, + \v!commands=>\def\obeycharacters{\setupcommandsintype{#1}}% \let\obeytabs\ignoretabs, - \v!slanted=>\let\obeycharacters\setupslantedtype + \v!slanted=>\let\obeycharacters\setupslantedtype \let\obeytabs\ignoretabs, \s!unknown=>\setupprettiesintype{\getvalue{#1\c!option}}% \let\obeycharacters\setupprettytype @@ -789,27 +789,27 @@ %D alternative escape character. \setuptyping - [ \c!before=\blank, - \c!after=\blank, - \c!bodyfont=, - \c!color=, + [ \c!before=\blank, + \c!after=\blank, + \c!bodyfont=, + \c!color=, \c!space=\v!off, - \c!page=\v!no, - \c!tab=\s!ascii, - \c!option=\v!none, - \c!palet=colorpretty, + \c!page=\v!no, + \c!tab=\s!ascii, + \c!option=\v!none, + \c!palet=colorpretty, \c!text=\v!no, \c!style=\tttf, \c!icommand=\ttsl, \c!vcommand=, \c!ccommand=\tttf, - \c!indentnext=\v!yes, - \c!margin=\!!zeropoint, - \c!evenmargin=\!!zeropoint, - \c!oddmargin=\!!zeropoint, + \c!indentnext=\v!yes, + \c!margin=\!!zeropoint, + \c!evenmargin=\!!zeropoint, + \c!oddmargin=\!!zeropoint, \c!blank=\v!line, - \c!escape=/, % beware \string\ , should also be accepted - \c!numbering=\v!no, + \c!escape=/, % beware \string\ , should also be accepted + \c!numbering=\v!no, \c!lines=] %D \macros diff --git a/tex/context/base/enco-def.tex b/tex/context/base/enco-def.tex index 422c52826..78e1df7d7 100644 --- a/tex/context/base/enco-def.tex +++ b/tex/context/base/enco-def.tex @@ -390,8 +390,10 @@ % some more -\def\hyphen {\softhyphen} -\def\cwm {\compoundwordmark} +\def\hyphen {\softhyphen} +\def\cwm {\compoundwordmark} +\def\nonbreakinghyphen {\hyphen} +\def\breakinghyphen {\hyphen\prewordbreak} % quotes diff --git a/tex/context/base/font-uni.tex b/tex/context/base/font-uni.tex index 381fa2fdf..d6b340ec3 100644 --- a/tex/context/base/font-uni.tex +++ b/tex/context/base/font-uni.tex @@ -180,6 +180,19 @@ \handleunicodeglyph \egroup} +%D In \XETEX, unicode support is straightforward, so we +%D simply output a \type {\char} with a 16||bit number. +%D +%D \starttyping +%D \def\uchar#1#2{\char\numexpr(#2+(#1*256))\relax} +%D \stoptyping + +\beginXETEX \uchar + + \unexpanded\def\uchar#1#2{\char\numexpr#2+#1*\@cclvi\relax} + +\endXETEX + \def\dohandleucflowglyph % {\unicodeposition=\unicodeone\unicodetwo\relax {\unicodeposition\unicodeone\unicodetwo\relax diff --git a/tex/context/base/java-exa.tex b/tex/context/base/java-exa.tex index 47ea96f23..21b366174 100644 --- a/tex/context/base/java-exa.tex +++ b/tex/context/base/java-exa.tex @@ -89,7 +89,7 @@ console.println("url before check: "+url) ; } % url = url.replace(/(http:\\\/\\\/.+)(\\\/.*$)/, "$1") ; - url = url.replace(/(http:\\\/\\\/.+?)(\\\/.*$)/, "$1") ; + url = url.replace(/(https*:\\\/\\\/.+?)(\\\/.*$)/, "$1/exarequest") ; if (example_log) { console.println("url after check: "+url) ; } diff --git a/tex/context/base/mult-con.tex b/tex/context/base/mult-con.tex index 5054a5bb0..fe2c647f9 100644 --- a/tex/context/base/mult-con.tex +++ b/tex/context/base/mult-con.tex @@ -1459,6 +1459,18 @@ textlayer: tekstlaag textlayer \stopconstants +%D This one is a private one, used for very dirty hooks. + +\startconstants dutch english + german czech + italian romanian + + extras: extras extras + extras extras + extras extras + +\stopconstants + %D \stopcompressdefinitions %D The keywords of values are very language specific and @@ -1684,6 +1696,9 @@ textlayer: tekstlaag textlayer italic: italic italic italic kurziva corsivo italic + inherit: erf inherit + inherit inherit + inherit inherit % new inleft: inlinker inleft imlinken vlevo insinistra instanga diff --git a/tex/context/base/mult-ini.tex b/tex/context/base/mult-ini.tex index 5e0b68e36..95c89b228 100644 --- a/tex/context/base/mult-ini.tex +++ b/tex/context/base/mult-ini.tex @@ -1184,21 +1184,16 @@ {\ifx\next#2% \flushinterfaceelementline \flushinterfaceelementline - \let\next\gobbleoneargument + \def\next####1{#2}% was: \let\next\gobbleoneargument \else\ifx\next\par - \long\def\next####1% - {\dogetinterfaceobjects}% + \long\def\next####1{\dogetinterfaceobjects}% \else\ifx\next\empty - \def\next####1% - {\dogetinterfaceobjects}% + \def\next####1{\dogetinterfaceobjects}% \else - \def\next####1 % - {\dogetinterfaceobject[####1:\relax]% - \dogetinterfaceobjects}% + \def\next####1 {\dogetinterfaceobject[####1:\relax]\dogetinterfaceobjects}% \fi\fi\fi \next}% - \def\dogetinterfaceobjects - {\futurelet\next\dodogetinterfaceobjects}% + \def\dogetinterfaceobjects{\futurelet\next\dodogetinterfaceobjects}% \dogetinterfaceobjects} \def\dogetinterfacetemplate[#1:#2]% @@ -1244,15 +1239,17 @@ %D Anno 2003 I've forgotten why the \type {\c!internal} is %D still in there; it's probably a left over from an experiment. +%D Once we're gone XML we can drop some of the extra mappings. + \let\c!internal!y \string \def\c!internal!n {-} \let\c!internal! \c!internal!y \def\setinterfaceconstant#1#2% {\setvalue{\c!prefix!#1}{\c!internal!#1}% - \doifelse{#2}\nointerfaceobject + \doifelse{#2}\nointerfaceobject % ? {\debuggerinfo{constant}{#1 defined as #1 by default}% - \setvalue{\k!prefix!#2}{#1}} + }% \setvalue{\k!prefix!#1}{#1}} % was #2 -> #1 {\debuggerinfo{constant}{#1 defined as #2}% \ifinterfacetranslation \setvalue{\x!prefix!#1}{#2}% @@ -1273,11 +1270,11 @@ {\doifdefined{#1}{\doifvaluesomething{#1}{\doifnotvalue{#1}{#2} {\writestatus{problems}{set #1 to #2 overloads \getvalue{#1}}}}}} -\def\startvariables - {\startinterfaceobjects\setinterfacevariable\stopvariables} +\def\startvariables{\startinterfaceobjects\setinterfacevariable\stopvariables} +\def\startconstants{\startinterfaceobjects\setinterfaceconstant\stopconstants} -\def\startconstants - {\startinterfaceobjects\setinterfaceconstant\stopconstants} +\let\stopvariables\relax +\let\stopconstants\relax %D \macros %D {defineinterfaceconstant} @@ -1318,8 +1315,9 @@ {\setvalue{\y!prefix!#1}{#2}}% \fi} -\def\startsetupvariables - {\startinterfaceobjects\setinterfacesetupvariable\stopsetupvariables} +\def\startsetupvariables{\startinterfaceobjects\setinterfacesetupvariable\stopsetupvariables} + +\let\stopsetupvariables\relax %D \macros %D {startelements} @@ -1368,8 +1366,9 @@ {\debuggerinfo{element}{#1 defined as #2}% \setvalue{\e!prefix!#1}{#2}}}} -\def\startelements - {\startinterfaceobjects\setinterfaceelement\stopelements} +\def\startelements{\startinterfaceobjects\setinterfaceelement\stopelements} + +\let\stopelements\relax %D \macros %D {startcommands} @@ -1410,8 +1409,9 @@ \@EA\def\csname#2\@EA\endcsname\@EA{\csname#1\endcsname}}% ugly but faster \setinterfacesetupvariable{#1}{#2}}} -\def\startcommands - {\startinterfaceobjects\setinterfacecommand\stopcommands} +\def\startcommands{\startinterfaceobjects\setinterfacecommand\stopcommands} + +\let\stopcommands\relax %D \macros %D {getinterfaceconstant, getinterfacevariable} diff --git a/tex/context/base/page-flt.tex b/tex/context/base/page-flt.tex index 20a72ebdc..94fd2e0e5 100644 --- a/tex/context/base/page-flt.tex +++ b/tex/context/base/page-flt.tex @@ -723,7 +723,7 @@ \fi} % In \dofloatinfomessage wordt {{ }} gebruikt omdat anders -% binnen \startuitstellen...\stopuitstellen geen goede +% binnen \startpostponing...\stoppostponing geen goede % melding in de marge volgt: \ifinner is dan namelijk true. \def\dofloatinfomessage#1#2#3% @@ -1846,7 +1846,7 @@ \newcounter\nofpostponedblocks -\newif\ifinuitstellen +\newif\ifinpostponing \newevery\everytopofpage\relax @@ -1872,7 +1872,7 @@ \newtoks \postponedpageblocks \newcounter\nofpostponedpageblocks -% \ifinuitstellen: handhaven, want gebruikt in stijlen ! ! ! ! ! +% \ifinpostponing: handhaven, want gebruikt in stijlen ! ! ! ! ! \def\dopostponeblock {\bgroup % new may 2004 @@ -1883,24 +1883,24 @@ \unvbox\collectedpagefloats \fi \donefalse - \ifinuitstellen \else + \ifinpostponing \else \ifcase\nofpostponedblocks \else \donetrue \fi \ifcase\nofpostponedpageblocks \else \donetrue \fi \fi \ifdone \bgroup % we need the color/font switch, else problems inside split verbatim - \setnormalcatcodes % uitstellen in verbatim + \setnormalcatcodes % postponing in verbatim \edef\savedtopofpagecolor{\topofpagecolor}% \doifsomething\savedtopofpagecolor\restorecolormode % \stopcolormode \restoreglobalbodyfont % The \nof-test is \global\pagetotal\zeropoint % recently added and - \global\inuitstellentrue % definitely needed else + \global\inpostponingtrue % definitely needed else \the\postponedpageblocks % we can loose or disorder \dorecurse\nofpostponedblocks % floats; anyhow, this {\getbuffer[pbuf-\recurselevel]} % mechanism is still \doflushfloats % new but potential dangerous % suboptimal and needs a \doglobal\newcounter\nofpostponedblocks % proper analysis - \global\inuitstellenfalse + \global\inpostponingfalse \doifsomething\savedtopofpagecolor\startcolormode\savedtopofpagecolor \egroup \fi diff --git a/tex/context/base/page-lay.tex b/tex/context/base/page-lay.tex index d8dfeaca1..61c5ee736 100644 --- a/tex/context/base/page-lay.tex +++ b/tex/context/base/page-lay.tex @@ -341,7 +341,7 @@ \def\dodosetuppapersize[#1][#2]% {\ifsecondargument - \dododosetuppapersize[#1][#2]% + \expanded{\dododosetuppapersize[#1][#2]}% \calculatehsizes \calculatevsizes \recalculatelogos @@ -442,10 +442,9 @@ % \newtoks \everybeforelayout \relax % \newtoks \everyafterlayout \relax - \def\recalculatelayout {\doifsomething{\layoutparameter\c!page\layoutparameter\c!paper} - {\dododosetuppapersize[\layoutparameter\c!page][\layoutparameter\c!paper]}% + {\expanded{\dododosetuppapersize[\layoutparameter\c!page][\layoutparameter\c!paper]}}% \dorecalculatelayout} \def\dorecalculatelayout diff --git a/tex/context/base/page-mar.tex b/tex/context/base/page-mar.tex index 2cb6d8785..e0961d4e4 100644 --- a/tex/context/base/page-mar.tex +++ b/tex/context/base/page-mar.tex @@ -213,6 +213,7 @@ \c!hoffset=\zeropoint, \c!style=\@@imstyle, \c!color=\@@imcolor, + \c!strut=\@@imstrut, \c!location=\@@imlocation, \c!align=\@@imalign, \c!before=\@@imbefore, @@ -249,18 +250,18 @@ \doifvaluesomething{\??im\margincontenttag\c!align} % watch {} around set {\edef\margincontentalign{{\getvalue{\??im\margincontenttag\c!align},\margincontentalign}}}% % - \expanded{\getparameters - [\??im\margincontenttag] - [\c!strut=\v!no,\c!offset=\v!overlay,\c!align=\margincontentalign]}% + \expanded{\getparameters[\??im\margincontenttag][\c!align=\margincontentalign]}% % + \edef\margincontentstrut{\getvalue{\??im\margincontenttag\c!strut}}% \savestrut % \setbox\scratchbox\vbox\localframed [\??im\margincontenttag] + [\c!strut=\v!no,\c!offset=\v!overlay] % strut handled internally {\decrement\margincontentlines \dorecurse\margincontentlines{\savedstrut\endgraf\nointerlineskip}% ! savedstrut \@@imbefore \dostartattributes{\??im\margincontenttag}\c!style\c!color\empty - \setstrut % yes or no + \dosetupstrut[\margincontentstrut]% was: \setstrut % yes or no \begstrut#3\endstrut\endgraf \xdef\margincontentstrutheight{\the\strutht}% so that it's known outside the framed \dostopattributes @@ -741,6 +742,7 @@ \setupinmargin [\c!style=\v!bold, \c!color=, + \c!strut=\v!auto, \c!location=\v!both, \c!align=\v!inner, \c!stack=\v!no, diff --git a/tex/context/base/setupb.tex b/tex/context/base/setupb.tex index 1959f5d8e..cd8588a9b 100644 --- a/tex/context/base/setupb.tex +++ b/tex/context/base/setupb.tex @@ -6675,11 +6675,11 @@ \value[\c!number!][] \stopsetup -\startsetup - \command[\y!domicile] - \type[\c!arg!] - \value[\c!text!][] -\stopsetup +% \startsetup +% \command[\y!domicile] +% \type[\c!arg!] +% \value[\c!text!][] +% \stopsetup \startsetup \command diff --git a/tex/context/base/setupe.tex b/tex/context/base/setupe.tex index 29ef61c61..9fef6e512 100644 --- a/tex/context/base/setupe.tex +++ b/tex/context/base/setupe.tex @@ -152,7 +152,7 @@ {\immediate\openout\scratchwrite=cont-\currentlanguage.xml \doline{\string} \doline{} - \dostring{}{}{interface \SETUPnamespace\space name="context"}} + \dostring{}{}{interface \SETUPnamespace\space name="context" language="\currentlanguage" version="\contextversion"}} \def\stopsetupfile {\doline{} diff --git a/tex/context/base/spec-def.tex b/tex/context/base/spec-def.tex index 863f355ee..e949dd17e 100644 --- a/tex/context/base/spec-def.tex +++ b/tex/context/base/spec-def.tex @@ -960,6 +960,9 @@ \defineoutput [dpx] [dpx] \defineoutput [acrobat] [pdf,ps,tr] +\defineoutput [xetex] [dvi,xtx] +\defineoutput [xtx] [dvi,xtx] + %D Please let me know if we need more. From now on we default %D to: diff --git a/tex/context/base/spec-xtx.tex b/tex/context/base/spec-xtx.tex index 56a61631c..a8f0c0d48 100644 --- a/tex/context/base/spec-xtx.tex +++ b/tex/context/base/spec-xtx.tex @@ -1,110 +1,151 @@ -%D \module -%D [ file=spec-xtx, -%D version=2004.*.*, -%D title=\CONTEXT\ Special Macros, -%D subtitle=DVIPDFMx support, -%D author={Adam Lindsay \& Hans Hagen \& \unknown}, -%D date=\currentdate, -%D copyright={Adam Lindsay \& Hans Hagen}] +%D \module %D [ file=spec-xtx, %D version=2004.11.08, %D title=\CONTEXT\ Special Macros, %D subtitle=\XETEX\ support, %D author={Adam Lindsay \& Hans Hagen \& \unknown}, %D date=\currentdate, %D copyright={Adam Lindsay \& Hans Hagen}] \unprotect -\startspecials[xetex] +\startspecials[xetex][reset,dpx] -%D Rotation looks fine. Scaling and mirroring are also fine. +%D Actually, there's an intermediate ``\type{xdv}'' +%D output format, but by default, it's tranparently +%D converted to \PDF\ by \XETEX. -\definespecial\dostartrotation #1{\special{x:gsave}\special{x:rotate #1}} -\definespecial\dostartscaling #1#2{\special{x:gsave}\special{x:scale #1 #2}} -\definespecial\dostartmirroring {\special{x:gsave}\special{x:scale -1 1}} +\def\jobsuffix{pdf} -\definespecial\dostoprotation {\special{x:grestore}} -\definespecial\dostopscaling {\special{x:grestore}} -\definespecial\dostopmirroring{\special{x:grestore}} +%D Rotation looks fine. -\ifx\colorhexcomponent\undefined +\definespecial\dostartrotation#1% + {\special{x:gsave}\special{x:rotate #1}} - % this will be added to colo-hex.tex +\definespecial\dostoprotation% + {\special{x:grestore}} -\else +%D Scaling and mirroring are also fine. - % because we intercept the zero condition, the .23pt in 1.23pt will disappear in the - % ifcase zero part branch +\definespecial\dostartscaling#1#2% + {\special{x:gsave}\special{x:scale #1 #2}} - \def\colorhexcomponent#1% - {\ifdim#1\points<.005\points - 00\else\lchexnumbers{\the\dimexpr(255\dimexpr(#1\points)\relax+.5\points)\relax}% - \fi} +\definespecial\dostopscaling% + {\special{x:grestore}} - % the faster one +\definespecial\dostartmirroring% + {\special{x:gsave}\special{x:scale -1 1}} - \newdimen\hex@color@a \hex@color@a=.005pt - \newdimen\hex@color@b \hex@color@b=.5pt - \chardef \hex@color@c =255 +\definespecial\dostopmirroring% + {\special{x:grestore}} - \def\colorhexcomponent#1% - {\ifdim#1\points<\hex@color@a - 00\else\lchexnumbers{\the\dimexpr(#1\points*\hex@color@c+\hex@color@b)\relax}% - \fi} +%D Colors are done with the \DVIPDFMX\ color model, which are +%D inherited. -\fi +%D Although hex colors were accommodated by Hans, we'll try the +%D more familiar \DVIPDFMX\ ones. One good side-effect of the +%D previous approach +%D was that it kept track of the color state (transparency +%D in XeTeX is accomplished setting the color to an RGBA quadruple, +%D rather than an RGB triple). So transparency will need another +%D plan. +% \macros +% {dostarttransparency,dostoptransparency} % +% \starttypen +% \dostarttransparency{fraction}{type} +% \dostoptransparency +% \stoptypen +% +% Although in \CONTEXT\ transparency is closely integrated +% in the color drivers, in the end it is an independent +% feature. -\definespecial\dostartrgbcolormode#1#2#3% - {\bgroup - \edef\hexcolorstring{\colorhexcomponent{#1}\colorhexcomponent{#2}\colorhexcomponent{#3}}% - \special{x:textcolor=\hexcolorstring}% - \special{x:rulecolor=\hexcolorstring}% - \egroup} - -\definespecial\dostopcolormode - {\special{x:textcolor=000000}% - \special{x:rulecolor=000000}} - -%D Whadda you mean by 'corected;, this hex color model is crazy. Why does -%D \XETEX\ provide high end font support but only hex rgb colors -) - -%D once colors are ``corrected'' by Hans, transparency should -%D follow fairly easily. A good side-effect of the above approach -%D is that we need to keep track of the color state (transparency -%D in \XETEX\ is accomplished setting the color to an RGBA quadruple, -%D rather than an RGB triple) - -%D File/graphic insertion is fouled up. I don't know why, but -%D the externalfile misses its designated box/frame. It's also not -%D finding files without the help of a \TEXUTIL\ file. - -%D Maybe \XETEX\ should provide a way to report the figure dimensions, -%D I suppose it can ask the QuickTime Driver. - -%D However it gets resolved, the following is the basic schema -%D of file inclusion for \XETEX. \type {\XeTeXpicfile} supports -%D rotation, as well, but it seems less important for \CONTEXT. -%D \XETEX\ uses QuickTime file import, which means a huge number of -%D file import options. +%\installspecial [\dostarttransparency] [or] [2] +%\installspecial [\dostoptransparency] [or] [0] -%D More importantly and interestingly, there is \type -%D {XeTeXpdffile}, which supports a \type {page} option. +%D \XETEX\ supports \type{\doPDFdestination} and +%D \type{\doPDFbookmark} inherited straight from \DVIPDFMX. \definespecial\doinsertfile#1#2#3#4#5#6#7#8#9% {\bgroup \dodoinsertfile{xtx}{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9}% \egroup} -\definefileinsertion{xtx}{jpg}{\handlepdfimage} -\definefileinsertion{xtx}{png}{\handlepdfimage} -\definefileinsertion{xtx}{pdf}{\handlepdfimage} -\definefileinsertion{xtx}{gif}{\handlepdfimage} -\definefileinsertion{xtx}{tif}{\handlepdfimage} +\definefileinsertion{xtx}{jpg}{\xtxhandleotherimage} +\definefileinsertion{xtx}{png}{\xtxhandleotherimage} +\definefileinsertion{xtx}{gif}{\xtxhandleotherimage} +\definefileinsertion{xtx}{tif}{\xtxhandleotherimage} +\definefileinsertion{xtx}{pdf}{\xtxhandlepdfimage } -% do we need it this way? either provide width and height or provide scales, -% best provide the dimensions +\def\xtxhandleotherimage#1#2#3#4#5#6#7#8#9% + {\bgroup % not needed, we load this under a normal catcode regime; \catcode`\"=11 + \XeTeXpicfile "#1" width #7 height #8\relax% + \donetrue + \egroup} -% \def\handlepdfimage#1#2#3#4#5#6#7#8#9% -% {\XeTeXpicfile "#1" width #7 height #8 xscaled #3 yscaled #4\relax} +\def\xtxhandlepdfimage#1#2#3#4#5#6#7#8#9% + {\bgroup % not needed, we load this under a normal catcode regime; \catcode`\"=11 + \checkpdfimagepagenumber{#9} + \XeTeXpdffile "#1" \pdfimagepagenumber\space width #7 height #8 \relax% + \donetrue + \egroup} -\def\handlepdfimage#1#2#3#4#5#6#7#8#9% - {\XeTeXpicfile "#1" width #7 height #8\relax} +\def\checkpdfimagepagenumber#1% + {\let\pdfimagepagenumber\empty + \getfromcommacommand[#1][1]% + \doifnumberelse\commalistelement + {\ifcase\commalistelement\else + \edef\pdfimagepagenumber{page \commalistelement}% + %\message{(pdf image \pdfimagepagenumber)}% + \fi} + {}} + +% \type{\getfiguredimensionsA} calls this one. +% \type{\executedtrue} means it was able to get the desired +% dogetfiguresizeBLAH method for the image type. +% \type{\donetrue} means that the image was successfully +% measured to be more than zero points. + +\def\dogetXTXfiguresize#1#2#3#4#5#6#7% + {#4\zeropoint + #5\zeropoint + \setbox\foundexternalfigure\vbox{\XeTeXpicfile "#2"}% + #6\wd\foundexternalfigure + #7\ht\foundexternalfigure + \ifdim\wd\foundexternalfigure=\zeropoint % \ifzeropt\wd\foundexternalfigure + #1{#2}{#3}{#4}{#5}{#6}{#7}% + \fi} + +\def\dogetXTXpdfsize#1#2#3#4#5#6#7% + {#4\zeropoint + #5\zeropoint + \checkpdfimagepagenumber{#3} + \setbox\foundexternalfigure\vbox{\XeTeXpdffile "#2" \pdfimagepagenumber}% \relax not needed + #6\wd\foundexternalfigure + #7\ht\foundexternalfigure + \ifdim\wd\foundexternalfigure=\zeropoint % \ifzeropt\wd\foundexternalfigure + #1{#2}{#3}{#4}{#5}{#6}{#7}% + \fi} + +\let\normaldogetfiguresizepng=\dogetfiguresizepng +\let\normaldogetfiguresizetif=\dogetfiguresizetif +\let\normaldogetfiguresizejpg=\dogetfiguresizejpg +\let\normaldogetfiguresizegif=\dogetfiguresizegif +\let\normaldogetfiguresizepdf=\dogetfiguresizepdf + +\def\dogetfiguresizepng{\dogetXTXfiguresize\normaldogetfiguresizepng} +\def\dogetfiguresizejpg{\dogetXTXfiguresize\normaldogetfiguresizejpg} +\def\dogetfiguresizegif{\dogetXTXfiguresize\normaldogetfiguresizegif} +\def\dogetfiguresizetif{\dogetXTXfiguresize\normaldogetfiguresizetif} +\def\dogetfiguresizepdf{\dogetXTXpdfsize\normaldogetfiguresizepdf} + +\appendtoksonce + \let\dogetfiguresizepng\normaldogetfiguresizepng + \let\dogetfiguresizetif\normaldogetfiguresizetif + \let\dogetfiguresizejpg\normaldogetfiguresizejpg + \let\dogetfiguresizegif\normaldogetfiguresizegif + \let\dogetfiguresizepdf\normaldogetfiguresizepdf +\to \everyresetspecials + +%D The figure object system caused no end of headaches. They all +%D went away with this single line: + +\setupexternalfigures[\c!object=\v!no] \stopspecials diff --git a/tex/context/base/supp-dir.tex b/tex/context/base/supp-dir.tex new file mode 100644 index 000000000..fa4bfa6f7 --- /dev/null +++ b/tex/context/base/supp-dir.tex @@ -0,0 +1,42 @@ +%D \module +%D [ file=supp-dir, +%D version=2004.11.11, +%D title=\CONTEXT\ Support Macros, +%D subtitle=Directional Things, +%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 Inspired by and needed for Adam Lindsay's \XETEX\ efforts: +%D +%D \starttyping +%D \starttext +%D \input tufte \par +%D \pardir TRT \input tufte \par \input tufte \par +%D \pardir TLT \input tufte \par +%D \stoptext +%D \stoptyping + +\unprotect + +\chardef\inlinedirection\zerocount % 0==notset 1==LR 2==RL + +\beginETEX \beginL + + \def\pardir#1#2#3% messages end up in a higher level command + {\global\TeXXeTstate\plusone + \if#2L\chardef\inlinedirection\plusone\else + \if#2R\chardef\inlinedirection\plustwo\fi\fi} + + %\appendtoks \checkinlinedirection \to \everypar % see core-ini.tex + + \def\checkinlinedirection + {\ifcase\inlinedirection\or\beginL\or\beginR\fi} + +\endETEX + +\protect \endinput diff --git a/tex/context/base/supp-mps.tex b/tex/context/base/supp-mps.tex index f9ae07acc..48c681643 100644 --- a/tex/context/base/supp-mps.tex +++ b/tex/context/base/supp-mps.tex @@ -1395,7 +1395,7 @@ \doprocessfile\scratchread{#1}\handleMPcolor \immediate\closeout\scratchwrite \ifdone - \immediate\openout\scratchwrite=\convertMPcolorpath#1 + \immediate\openout\scratchwrite=\convertMPcolorpath#1\relax \doprocessfile\scratchread{\convertMPcolorpath \convertMPcolorfile}\handleMPcopy \immediate\closeout\scratchwrite \message{done]}% @@ -1638,9 +1638,7 @@ \bgroup \enableincludeMPgraphics \presetMPdefinitions % in case #2 has measures - \doifelse{#1}{-} - {\convertargument#2\to\asciiA} - {\long\def\asciiA{#2}}% + \doifelse{#1}{-}{\convertargument#2\to\asciiA}{\long\def\asciiA{#2}}% \long\xdef\MPdrawingdata{\MPdrawingdata\asciiA}% \egroup} diff --git a/tex/context/base/symb-uni.tex b/tex/context/base/symb-uni.tex new file mode 100644 index 000000000..b33d9a159 --- /dev/null +++ b/tex/context/base/symb-uni.tex @@ -0,0 +1,1123 @@ +%D \module +%D [ file=symb-uni, +%D version=2004.11.15, +%D title=\CONTEXT\ Symbol Libraries, +%D subtitle=Unicode Symbols, +%D author=Adam T. Lindsay, +%D date=\currentdate, +%D copyright={Adam T. Lindsay / PRAGMA}] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C prepared by Adam T. Lindsay. + +%D The content of this file originates from the Unicode standard, via some +%D original XSLT scripts and some hand-editing. This file is open for use +%D with the ConTeXt typesetting system. +%D +%D Adam considers the symbol names and categories to be stable, as they're +%D directly derived from the Unicode standard. +%D +%D \startitemize[packed] +%D \item Originated 2004-01-05 by Adam T. Lindsay +%D \item Updated 2004-01-16 with Unicode vector 0x27xx and some in +%D 215x and 246x +%D \item Updated 2004-11-15 to include default fonts for MacOSX and +%D \XETEX. +%D \stopitemize +%D +%D The following macros adapt to default fonts (that contain the characters) +%D in MacOSX. The font selection mechanism is likely to change once \XETEX\ +%D correctly supports \type{\doiffontcharelse}. + +\doifundefinedelse{XeTeXversion} + {\let\USymbChar \uchar + \let\USymbCharTwo \uchar + \let\USymbCharZapf\uchar} + {\def\USymbChar #1#2{\bgroup\UnicodeSymbolFont \uchar{#1}{#2}\relax\egroup} + \def\USymbCharTwo #1#2{\bgroup\UnicodeSymbolFontTwo \uchar{#1}{#2}\relax\egroup} + \def\USymbCharZapf#1#2{\bgroup\UnicodeSymbolFontZapf\uchar{#1}{#2}\relax\egroup} + \doifundefined{UnicodeSymbolFont} {\definefont[UnicodeSymbolFont] [{"Apple Symbols"} sa 1]} + \doifundefined{UnicodeSymbolFontTwo} {\definefont[UnicodeSymbolFontTwo] [{"Lucida Grande"} sa 1]} + \doifundefined{UnicodeSymbolFontZapf}{\definefont[UnicodeSymbolFontZapf][{"Zapf Dingbats"} sa 1]}} + +\startsymbolset[Unicode Additional Punctuation] % 0x2000: Requires UnicodeRegular20 + + \definesymbol[Caret][\USymbChar{32}{56}] % CARET + \definesymbol[ReferenceMark][\USymbChar{32}{59}] % REFERENCE MARK + \definesymbol[DoubleExclamationMark][\USymbChar{32}{60}] % DOUBLE EXCLAMATION MARK + \definesymbol[Interrobang][\USymbChar{32}{61}] % INTERROBANG + \definesymbol[Overline][\USymbChar{32}{62}] % OVERLINE + \definesymbol[Undertie][\USymbChar{32}{63}] % UNDERTIE + \definesymbol[CharacterTie][\USymbChar{32}{64}] % CHARACTER TIE + \definesymbol[CaretInsertionPoint][\USymbChar{32}{65}] % CARET INSERTION POINT + \definesymbol[Asterism][\USymbChar{32}{66}] % ASTERISM + \definesymbol[HyphenBullet][\USymbChar{32}{67}] % HYPHEN BULLET + \definesymbol[FractionSlash][\USymbChar{32}{68}] % FRACTION SLASH + \definesymbol[LeftSquareBracketWithQuill][\USymbChar{32}{69}] % LEFT SQUARE BRACKET WITH QUILL + \definesymbol[RightSquareBracketWithQuill][\USymbChar{32}{70}] % RIGHT SQUARE BRACKET WITH QUILL + \definesymbol[QuestionExclamationMark][\USymbChar{32}{72}] % QUESTION EXCLAMATION MARK + \definesymbol[ExclamationQuestionMark][\USymbChar{32}{73}] % EXCLAMATION QUESTION MARK + \definesymbol[TironianSignEt][\USymbChar{32}{74}] % TIRONIAN SIGN ET + \definesymbol[ReversedPilcrowSign][\USymbChar{32}{75}] % REVERSED PILCROW SIGN + \definesymbol[BlackLeftwardsBullet][\USymbChar{32}{76}] % BLACK LEFTWARDS BULLET + \definesymbol[BlackRightwardsBullet][\USymbChar{32}{77}] % BLACK RIGHTWARDS BULLET + +\stopsymbolset + +\startsymbolset[Unicode Currency] % 0x20A0: Requires UnicodeRegular20 + + \definesymbol[Euro-currencySign][\USymbChar{32}{160}] % EURO-CURRENCY SIGN + \definesymbol[ColonSign][\USymbChar{32}{161}] % COLON SIGN + \definesymbol[CruzeiroSign][\USymbChar{32}{162}] % CRUZEIRO SIGN + \definesymbol[FrenchFrancSign][\USymbChar{32}{163}] % FRENCH FRANC SIGN + \definesymbol[LiraSign][\USymbChar{32}{164}] % LIRA SIGN + \definesymbol[MillSign][\USymbChar{32}{165}] % MILL SIGN + \definesymbol[NairaSign][\USymbChar{32}{166}] % NAIRA SIGN + \definesymbol[PesetaSign][\USymbChar{32}{167}] % PESETA SIGN + \definesymbol[RupeeSign][\USymbChar{32}{168}] % RUPEE SIGN + \definesymbol[WonSign][\USymbChar{32}{169}] % WON SIGN + \definesymbol[NewSheqelSign][\USymbChar{32}{170}] % NEW SHEQEL SIGN + \definesymbol[DongSign][\USymbChar{32}{171}] % DONG SIGN + \definesymbol[EuroSign][\USymbChar{32}{172}] % EURO SIGN + \definesymbol[KipSign][\USymbChar{32}{173}] % KIP SIGN + \definesymbol[TugrikSign][\USymbChar{32}{174}] % TUGRIK SIGN + \definesymbol[DrachmaSign][\USymbChar{32}{175}] % DRACHMA SIGN + \definesymbol[GermanPennySign][\USymbChar{32}{176}] % [Unassigned U+20B0] + \definesymbol[PfennigSign][\USymbChar{32}{176}] % Unofficial duplicate + \definesymbol[PesoSign][\USymbChar{32}{177}] % [Unassigned U+20B1] + +\stopsymbolset + + +\startsymbolset[Unicode Letterlike] % 0x2100: Requires UnicodeRegular21 + + \definesymbol[DegreeCelsius][\USymbChar{33}{3}] % DEGREE CELSIUS + \definesymbol[EulerConstant][\USymbChar{33}{7}] % EULER CONSTANT + \definesymbol[Scruple][\USymbChar{33}{8}] % SCRUPLE + \definesymbol[DegreeFahrenheit][\USymbChar{33}{9}] % DEGREE FAHRENHEIT + \definesymbol[PlanckConstant][\USymbChar{33}{14}] % PLANCK CONSTANT + \definesymbol[PlanckConstantOverTwoPi][\USymbChar{33}{15}] % PLANCK CONSTANT OVER TWO PI + \definesymbol[LBBarSymbol][\USymbChar{33}{20}] % L B BAR SYMBOL + \definesymbol[Versicle][\USymbChar{33}{35}] % VERSICLE + \definesymbol[OunceSign][\USymbChar{33}{37}] % OUNCE SIGN + \definesymbol[OhmSign][\USymbChar{33}{38}] % OHM SIGN + \definesymbol[InvertedOhmSign][\USymbChar{33}{39}] % INVERTED OHM SIGN + \definesymbol[KelvinSign][\USymbChar{33}{42}] % KELVIN SIGN + \definesymbol[AngstromSign][\USymbChar{33}{43}] % ANGSTROM SIGN + \definesymbol[EstimatedSymbol][\USymbChar{33}{46}] % ESTIMATED SYMBOL + +\stopsymbolset + +\startsymbolset[Unicode Letterlike Additional] % 0x2100: Requires UnicodeRegular21 + + \definesymbol[AccountOf][\USymbChar{33}{0}] % ACCOUNT OF + \definesymbol[AddressedToTheSubject][\USymbChar{33}{1}] % ADDRESSED TO THE SUBJECT + \definesymbol[CareOf][\USymbChar{33}{5}] % CARE OF + \definesymbol[CadaUna][\USymbChar{33}{6}] % CADA UNA + \definesymbol[CentreLineSymbol][\USymbChar{33}{4}] % CENTRE LINE SYMBOL + \definesymbol[NumeroSign][\USymbChar{33}{22}] % NUMERO SIGN + \definesymbol[SoundRecordingCopyright][\USymbChar{33}{23}] % SOUND RECORDING COPYRIGHT + \definesymbol[PrescriptionTake][\USymbChar{33}{30}] % PRESCRIPTION TAKE + \definesymbol[Response][\USymbChar{33}{31}] % RESPONSE + \definesymbol[ServiceMark][\USymbChar{33}{32}] % SERVICE MARK + \definesymbol[TelephoneSign][\USymbChar{33}{33}] % TELEPHONE SIGN + \definesymbol[TradeMarkSign][\USymbChar{33}{34}] % TRADE MARK SIGN + \definesymbol[InformationSource][\USymbChar{33}{57}] % INFORMATION SOURCE + \definesymbol[PropertyLine][\USymbChar{33}{74}] % [Unassigned U+214A] + +\stopsymbolset + +\startsymbolset[Unicode Script Letterlike] % 0x2100: Requires UnicodeRegular21 + + \definesymbol[ScriptSmallG][\USymbChar{33}{10}] % SCRIPT SMALL G + \definesymbol[ScriptCapitalH][\USymbChar{33}{11}] % SCRIPT CAPITAL H + \definesymbol[ScriptCapitalI][\USymbChar{33}{16}] % SCRIPT CAPITAL I + \definesymbol[ScriptCapitalL][\USymbChar{33}{18}] % SCRIPT CAPITAL L + \definesymbol[ScriptSmallL][\USymbChar{33}{19}] % SCRIPT SMALL L + \definesymbol[ScriptCapitalP][\USymbChar{33}{24}] % SCRIPT CAPITAL P + \definesymbol[ScriptCapitalR][\USymbChar{33}{27}] % SCRIPT CAPITAL R + \definesymbol[ScriptSmallE][\USymbChar{33}{47}] % SCRIPT SMALL E + \definesymbol[ScriptCapitalE][\USymbChar{33}{48}] % SCRIPT CAPITAL E + \definesymbol[ScriptCapitalF][\USymbChar{33}{49}] % SCRIPT CAPITAL F + \definesymbol[ScriptCapitalB][\USymbChar{33}{44}] % SCRIPT CAPITAL B + \definesymbol[ScriptCapitalM][\USymbChar{33}{51}] % SCRIPT CAPITAL M + \definesymbol[ScriptSmallO][\USymbChar{33}{52}] % SCRIPT SMALL O + +\stopsymbolset + +\startsymbolset[Unicode Hebrew Letterlike] % 0x2100: Requires UnicodeRegular21 + + \definesymbol[AlefSymbol][\USymbChar{33}{53}] % ALEF SYMBOL + \definesymbol[BetSymbol][\USymbChar{33}{54}] % BET SYMBOL + \definesymbol[GimelSymbol][\USymbChar{33}{55}] % GIMEL SYMBOL + \definesymbol[DaletSymbol][\USymbChar{33}{56}] % DALET SYMBOL + +\stopsymbolset + +\startsymbolset[Unicode Turned Letterlike] % 0x2100: Requires UnicodeRegular21 + + \definesymbol[RotatedCapitalQ][\USymbChar{33}{58}] % ROTATED CAPITAL Q + \definesymbol[TurnedSansSerifCapitalG][\USymbChar{33}{65}] % [Unassigned U+2141] + \definesymbol[TurnedSansSerifCapitalL][\USymbChar{33}{66}] % [Unassigned U+2142] + \definesymbol[ReversedSansSerifCapitalL][\USymbChar{33}{67}] % [Unassigned U+2143] + \definesymbol[TurnedSansSerifCapitalY][\USymbChar{33}{68}] % [Unassigned U+2144] + \definesymbol[TurnedAmpersand][\USymbChar{33}{75}] % [Unassigned U+214B] + \definesymbol[TurnedGreekSmallLetterIota][\USymbChar{33}{41}] % TURNED GREEK SMALL LETTER IOTA + \definesymbol[TurnedCapitalF][\USymbChar{33}{50}] % TURNED CAPITAL F + +\stopsymbolset + +\startsymbolset[Unicode Black-letter Letterlike] % 0x2100: Requires UnicodeRegular21 + + \definesymbol[BlackLetterCapitalH][\USymbChar{33}{12}] % BLACK-LETTER CAPITAL H + \definesymbol[BlackLetterCapitalI][\USymbChar{33}{17}] % BLACK-LETTER CAPITAL I + \definesymbol[BlackLetterCapitalR][\USymbChar{33}{28}] % BLACK-LETTER CAPITAL R + \definesymbol[BlackLetterCapitalZ][\USymbChar{33}{40}] % BLACK-LETTER CAPITAL Z + \definesymbol[BlackLetterCapitalC][\USymbChar{33}{45}] % BLACK-LETTER CAPITAL C + +\stopsymbolset + +\startsymbolset[Unicode Double-struck Letterlike Math] % 0x2100: Requires UnicodeRegular21 + + \definesymbol[DoubleStruckCapitalC][\USymbChar{33}{2}] % DOUBLE-STRUCK CAPITAL C + \definesymbol[DoubleStruckCapitalH][\USymbChar{33}{13}] % DOUBLE-STRUCK CAPITAL H + \definesymbol[DoubleStruckCapitalN][\USymbChar{33}{21}] % DOUBLE-STRUCK CAPITAL N + \definesymbol[DoubleStruckCapitalP][\USymbChar{33}{25}] % DOUBLE-STRUCK CAPITAL P + \definesymbol[DoubleStruckCapitalQ][\USymbChar{33}{26}] % DOUBLE-STRUCK CAPITAL Q + \definesymbol[DoubleStruckCapitalR][\USymbChar{33}{29}] % DOUBLE-STRUCK CAPITAL R + \definesymbol[DoubleStruckCapitalZ][\USymbChar{33}{36}] % DOUBLE-STRUCK CAPITAL Z + \definesymbol[DoubleStruckSmallGamma][\USymbChar{33}{61}] % [Unassigned U+213D] + \definesymbol[DoubleStruckCapitalGamma][\USymbChar{33}{62}] % [Unassigned U+213E] + \definesymbol[DoubleStruckCapitalPi][\USymbChar{33}{63}] % [Unassigned U+213F] + \definesymbol[DoubleStruckNArySummation][\USymbChar{33}{64}] % [Unassigned U+2140] + \definesymbol[DoubleStruckItalicCapitalD][\USymbChar{33}{69}] % [Unassigned U+2145] + \definesymbol[DoubleStruckItalicSmallD][\USymbChar{33}{70}] % [Unassigned U+2146] + \definesymbol[DoubleStruckItalicSmallE][\USymbChar{33}{71}] % [Unassigned U+2147] + \definesymbol[DoubleStruckItalicSmallI][\USymbChar{33}{72}] % [Unassigned U+2148] + \definesymbol[DoubleStruckItalicSmallJ][\USymbChar{33}{73}] % [Unassigned U+2149] + +\stopsymbolset + +\startsymbolset[Unicode Roman Numerals] % 0x2150: Requires UnicodeRegular21 + + \definesymbol[RomanNumeralOne][\USymbCharTwo{33}{96}] % ROMAN NUMERAL ONE + \definesymbol[RomanNumeralTwo][\USymbCharTwo{33}{97}] % ROMAN NUMERAL TWO + \definesymbol[RomanNumeralThree][\USymbCharTwo{33}{98}] % ROMAN NUMERAL THREE + \definesymbol[RomanNumeralFour][\USymbCharTwo{33}{99}] % ROMAN NUMERAL FOUR + \definesymbol[RomanNumeralFive][\USymbCharTwo{33}{100}] % ROMAN NUMERAL FIVE + \definesymbol[RomanNumeralSix][\USymbCharTwo{33}{101}] % ROMAN NUMERAL SIX + \definesymbol[RomanNumeralSeven][\USymbCharTwo{33}{102}] % ROMAN NUMERAL SEVEN + \definesymbol[RomanNumeralEight][\USymbCharTwo{33}{103}] % ROMAN NUMERAL EIGHT + \definesymbol[RomanNumeralNine][\USymbCharTwo{33}{104}] % ROMAN NUMERAL NINE + \definesymbol[RomanNumeralTen][\USymbCharTwo{33}{105}] % ROMAN NUMERAL TEN + \definesymbol[RomanNumeralEleven][\USymbCharTwo{33}{106}] % ROMAN NUMERAL ELEVEN + \definesymbol[RomanNumeralTwelve][\USymbCharTwo{33}{107}] % ROMAN NUMERAL TWELVE + \definesymbol[RomanNumeralFifty][\USymbCharTwo{33}{108}] % ROMAN NUMERAL FIFTY + \definesymbol[RomanNumeralOneHundred][\USymbCharTwo{33}{109}] % ROMAN NUMERAL ONE HUNDRED + \definesymbol[RomanNumeralFiveHundred][\USymbCharTwo{33}{110}] % ROMAN NUMERAL FIVE HUNDRED + \definesymbol[RomanNumeralOneThousand][\USymbCharTwo{33}{111}] % ROMAN NUMERAL ONE THOUSAND + \definesymbol[RomanNumeralOneThousandCD][\USymbCharTwo{33}{128}] % ROMAN NUMERAL ONE THOUSAND C D + \definesymbol[RomanNumeralFiveThousand][\USymbCharTwo{33}{129}] % ROMAN NUMERAL FIVE THOUSAND + \definesymbol[RomanNumeralTenThousand][\USymbCharTwo{33}{130}] % ROMAN NUMERAL TEN THOUSAND + \definesymbol[RomanNumeralReversedOneHundred][\USymbCharTwo{33}{131}] % ROMAN NUMERAL REVERSED ONE HUNDRED + +\stopsymbolset + +\startsymbolset[Unicode Small Roman Numerals] % 0x2150: Requires UnicodeRegular21 + + \definesymbol[SmallRomanNumeralOne][\USymbCharTwo{33}{112}] % SMALL ROMAN NUMERAL ONE + \definesymbol[SmallRomanNumeralTwo][\USymbCharTwo{33}{113}] % SMALL ROMAN NUMERAL TWO + \definesymbol[SmallRomanNumeralThree][\USymbCharTwo{33}{114}] % SMALL ROMAN NUMERAL THREE + \definesymbol[SmallRomanNumeralFour][\USymbCharTwo{33}{115}] % SMALL ROMAN NUMERAL FOUR + \definesymbol[SmallRomanNumeralFive][\USymbCharTwo{33}{116}] % SMALL ROMAN NUMERAL FIVE + \definesymbol[SmallRomanNumeralSix][\USymbCharTwo{33}{117}] % SMALL ROMAN NUMERAL SIX + \definesymbol[SmallRomanNumeralSeven][\USymbCharTwo{33}{118}] % SMALL ROMAN NUMERAL SEVEN + \definesymbol[SmallRomanNumeralEight][\USymbCharTwo{33}{119}] % SMALL ROMAN NUMERAL EIGHT + \definesymbol[SmallRomanNumeralNine][\USymbCharTwo{33}{120}] % SMALL ROMAN NUMERAL NINE + \definesymbol[SmallRomanNumeralTen][\USymbCharTwo{33}{121}] % SMALL ROMAN NUMERAL TEN + \definesymbol[SmallRomanNumeralEleven][\USymbCharTwo{33}{122}] % SMALL ROMAN NUMERAL ELEVEN + \definesymbol[SmallRomanNumeralTwelve][\USymbCharTwo{33}{123}] % SMALL ROMAN NUMERAL TWELVE + \definesymbol[SmallRomanNumeralFifty][\USymbCharTwo{33}{124}] % SMALL ROMAN NUMERAL FIFTY + \definesymbol[SmallRomanNumeralOneHundred][\USymbCharTwo{33}{125}] % SMALL ROMAN NUMERAL ONE HUNDRED + \definesymbol[SmallRomanNumeralFiveHundred][\USymbCharTwo{33}{126}] % SMALL ROMAN NUMERAL FIVE HUNDRED + \definesymbol[SmallRomanNumeralOneThousand][\USymbCharTwo{33}{127}] % SMALL ROMAN NUMERAL ONE THOUSAND + +\stopsymbolset + +\startsymbolset[Unicode Arrows] % 0x2190: Requires UnicodeRegular21 + + \definesymbol[LeftwardsArrow][\USymbChar{33}{144}] % LEFTWARDS ARROW + \definesymbol[UpwardsArrow][\USymbChar{33}{145}] % UPWARDS ARROW + \definesymbol[RightwardsArrow][\USymbChar{33}{146}] % RIGHTWARDS ARROW + \definesymbol[DownwardsArrow][\USymbChar{33}{147}] % DOWNWARDS ARROW + \definesymbol[LeftRightArrow][\USymbChar{33}{148}] % LEFT RIGHT ARROW + \definesymbol[UpDownArrow][\USymbChar{33}{149}] % UP DOWN ARROW + \definesymbol[NorthWestArrow][\USymbChar{33}{150}] % NORTH WEST ARROW + \definesymbol[NorthEastArrow][\USymbChar{33}{151}] % NORTH EAST ARROW + \definesymbol[SouthEastArrow][\USymbChar{33}{152}] % SOUTH EAST ARROW + \definesymbol[SouthWestArrow][\USymbChar{33}{153}] % SOUTH WEST ARROW + \definesymbol[LeftwardsArrowWithStroke][\USymbChar{33}{154}] % LEFTWARDS ARROW WITH STROKE + \definesymbol[RightwardsArrowWithStroke][\USymbChar{33}{155}] % RIGHTWARDS ARROW WITH STROKE + \definesymbol[LeftwardsWaveArrow][\USymbChar{33}{156}] % LEFTWARDS WAVE ARROW + \definesymbol[RightwardsWaveArrow][\USymbChar{33}{157}] % RIGHTWARDS WAVE ARROW + \definesymbol[LeftwardsTwoHeadedArrow][\USymbChar{33}{158}] % LEFTWARDS TWO HEADED ARROW + \definesymbol[UpwardsTwoHeadedArrow][\USymbChar{33}{159}] % UPWARDS TWO HEADED ARROW + \definesymbol[RightwardsTwoHeadedArrow][\USymbChar{33}{160}] % RIGHTWARDS TWO HEADED ARROW + \definesymbol[DownwardsTwoHeadedArrow][\USymbChar{33}{161}] % DOWNWARDS TWO HEADED ARROW + \definesymbol[LeftwardsArrowWithTail][\USymbChar{33}{162}] % LEFTWARDS ARROW WITH TAIL + \definesymbol[RightwardsArrowWithTail][\USymbChar{33}{163}] % RIGHTWARDS ARROW WITH TAIL + \definesymbol[LeftwardsArrowFromBar][\USymbChar{33}{164}] % LEFTWARDS ARROW FROM BAR + \definesymbol[UpwardsArrowFromBar][\USymbChar{33}{165}] % UPWARDS ARROW FROM BAR + \definesymbol[RightwardsArrowFromBar][\USymbChar{33}{166}] % RIGHTWARDS ARROW FROM BAR + \definesymbol[DownwardsArrowFromBar][\USymbChar{33}{167}] % DOWNWARDS ARROW FROM BAR + \definesymbol[UpDownArrowWithBase][\USymbChar{33}{168}] % UP DOWN ARROW WITH BASE + \definesymbol[LeftwardsArrowWithHook][\USymbChar{33}{169}] % LEFTWARDS ARROW WITH HOOK + \definesymbol[RightwardsArrowWithHook][\USymbChar{33}{170}] % RIGHTWARDS ARROW WITH HOOK + \definesymbol[LeftwardsArrowWithLoop][\USymbChar{33}{171}] % LEFTWARDS ARROW WITH LOOP + \definesymbol[RightwardsArrowWithLoop][\USymbChar{33}{172}] % RIGHTWARDS ARROW WITH LOOP + \definesymbol[LeftRightWaveArrow][\USymbChar{33}{173}] % LEFT RIGHT WAVE ARROW + \definesymbol[LeftRightArrowWithStroke][\USymbChar{33}{174}] % LEFT RIGHT ARROW WITH STROKE + \definesymbol[DownwardsZigzagArrow][\USymbChar{33}{175}] % DOWNWARDS ZIGZAG ARROW + \definesymbol[UpwardsArrowWithTipLeftwards][\USymbChar{33}{176}] % UPWARDS ARROW WITH TIP LEFTWARDS + \definesymbol[UpwardsArrowWithTipRightwards][\USymbChar{33}{177}] % UPWARDS ARROW WITH TIP RIGHTWARDS + \definesymbol[DownwardsArrowWithTipLeftwards][\USymbChar{33}{178}] % DOWNWARDS ARROW WITH TIP LEFTWARDS + \definesymbol[DownwardsArrowWithTipRightwards][\USymbChar{33}{179}] % DOWNWARDS ARROW WITH TIP RIGHTWARDS + \definesymbol[RightwardsArrowWithCornerDownwards][\USymbChar{33}{180}] % RIGHTWARDS ARROW WITH CORNER DOWNWARDS + \definesymbol[DownwardsArrowWithCornerLeftwards][\USymbChar{33}{181}] % DOWNWARDS ARROW WITH CORNER LEFTWARDS + \definesymbol[AnticlockwiseTopSemicircleArrow][\USymbChar{33}{182}] % ANTICLOCKWISE TOP SEMICIRCLE ARROW + \definesymbol[ClockwiseTopSemicircleArrow][\USymbChar{33}{183}] % CLOCKWISE TOP SEMICIRCLE ARROW + \definesymbol[NorthWestArrowToLongBar][\USymbChar{33}{184}] % NORTH WEST ARROW TO LONG BAR + \definesymbol[AnticlockwiseOpenCircleArrow][\USymbChar{33}{186}] % ANTICLOCKWISE OPEN CIRCLE ARROW + \definesymbol[ClockwiseOpenCircleArrow][\USymbChar{33}{187}] % CLOCKWISE OPEN CIRCLE ARROW + \definesymbol[LeftwardsHarpoonWithBarbUpwards][\USymbChar{33}{188}] % LEFTWARDS HARPOON WITH BARB UPWARDS + \definesymbol[LeftwardsHarpoonWithBarbDownwards][\USymbChar{33}{189}] % LEFTWARDS HARPOON WITH BARB DOWNWARDS + \definesymbol[UpwardsHarpoonWithBarbRightwards][\USymbChar{33}{190}] % UPWARDS HARPOON WITH BARB RIGHTWARDS + \definesymbol[UpwardsHarpoonWithBarbLeftwards][\USymbChar{33}{191}] % UPWARDS HARPOON WITH BARB LEFTWARDS + \definesymbol[RightwardsHarpoonWithBarbUpwards][\USymbChar{33}{192}] % RIGHTWARDS HARPOON WITH BARB UPWARDS + \definesymbol[RightwardsHarpoonWithBarbDownwards][\USymbChar{33}{193}] % RIGHTWARDS HARPOON WITH BARB DOWNWARDS + \definesymbol[DownwardsHarpoonWithBarbRightwards][\USymbChar{33}{194}] % DOWNWARDS HARPOON WITH BARB RIGHTWARDS + \definesymbol[DownwardsHarpoonWithBarbLeftwards][\USymbChar{33}{195}] % DOWNWARDS HARPOON WITH BARB LEFTWARDS + \definesymbol[LeftwardsSquiggleArrow][\USymbChar{33}{220}] % LEFTWARDS SQUIGGLE ARROW + \definesymbol[RightwardsSquiggleArrow][\USymbChar{33}{221}] % RIGHTWARDS SQUIGGLE ARROW + \definesymbol[UpwardsArrowWithDoubleStroke][\USymbChar{33}{222}] % UPWARDS ARROW WITH DOUBLE STROKE + \definesymbol[DownwardsArrowWithDoubleStroke][\USymbChar{33}{223}] % DOWNWARDS ARROW WITH DOUBLE STROKE + \definesymbol[LeftwardsDashedArrow][\USymbChar{33}{224}] % LEFTWARDS DASHED ARROW + \definesymbol[UpwardsDashedArrow][\USymbChar{33}{225}] % UPWARDS DASHED ARROW + \definesymbol[RightwardsDashedArrow][\USymbChar{33}{226}] % RIGHTWARDS DASHED ARROW + \definesymbol[DownwardsDashedArrow][\USymbChar{33}{227}] % DOWNWARDS DASHED ARROW + \definesymbol[LeftwardsArrowToBar][\USymbChar{33}{228}] % LEFTWARDS ARROW TO BAR + \definesymbol[RightwardsArrowToBar][\USymbChar{33}{229}] % RIGHTWARDS ARROW TO BAR + \definesymbol[LeftwardsWhiteArrow][\USymbChar{33}{230}] % LEFTWARDS WHITE ARROW + \definesymbol[UpwardsWhiteArrow][\USymbChar{33}{231}] % UPWARDS WHITE ARROW + \definesymbol[RightwardsWhiteArrow][\USymbChar{33}{232}] % RIGHTWARDS WHITE ARROW + \definesymbol[DownwardsWhiteArrow][\USymbChar{33}{233}] % DOWNWARDS WHITE ARROW + \definesymbol[UpwardsWhiteArrowFromBar][\USymbChar{33}{234}] % UPWARDS WHITE ARROW FROM BAR + \definesymbol[UpwardsWhiteArrowOnPedestal][\USymbChar{33}{235}] % UPWARDS WHITE ARROW ON PEDESTAL + \definesymbol[UpwardsWhiteArrowOnPedestalWithHorizontalBar][\USymbChar{33}{236}] % UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR + \definesymbol[UpwardsWhiteArrowOnPedestalWithVerticalBar][\USymbChar{33}{237}] % UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR + \definesymbol[RightwardsWhiteArrowFromWall][\USymbChar{33}{240}] % RIGHTWARDS WHITE ARROW FROM WALL + \definesymbol[NorthWestArrowToCorner][\USymbChar{33}{241}] % NORTH WEST ARROW TO CORNER + \definesymbol[SouthEastArrowToCorner][\USymbChar{33}{242}] % SOUTH EAST ARROW TO CORNER + \definesymbol[UpDownWhiteArrow][\USymbChar{33}{243}] % UP DOWN WHITE ARROW + +\stopsymbolset + +\startsymbolset[Unicode Multi Arrows] % 0x2190: Requires UnicodeRegular21 + + \definesymbol[LeftwardsArrowToBarOverRightwardsArrowToBar][\USymbChar{33}{185}] % LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR + \definesymbol[RightwardsArrowOverLeftwardsArrow][\USymbChar{33}{196}] % RIGHTWARDS ARROW OVER LEFTWARDS ARROW + \definesymbol[UpwardsArrowLeftwardsOfDownwardsArrow][\USymbChar{33}{197}] % UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW + \definesymbol[LeftwardsArrowOverRightwardsArrow][\USymbChar{33}{198}] % LEFTWARDS ARROW OVER RIGHTWARDS ARROW + \definesymbol[LeftwardsPairedArrows][\USymbChar{33}{199}] % LEFTWARDS PAIRED ARROWS + \definesymbol[UpwardsPairedArrows][\USymbChar{33}{200}] % UPWARDS PAIRED ARROWS + \definesymbol[RightwardsPairedArrows][\USymbChar{33}{201}] % RIGHTWARDS PAIRED ARROWS + \definesymbol[DownwardsPairedArrows][\USymbChar{33}{202}] % DOWNWARDS PAIRED ARROWS + \definesymbol[LeftwardsHarpoonOverRightwardsHarpoon][\USymbChar{33}{203}] % LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON + \definesymbol[RightwardsHarpoonOverLeftwardsHarpoon][\USymbChar{33}{204}] % RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON + \definesymbol[LeftwardsDoubleArrowWithStroke][\USymbChar{33}{205}] % LEFTWARDS DOUBLE ARROW WITH STROKE + \definesymbol[LeftRightDoubleArrowWithStroke][\USymbChar{33}{206}] % LEFT RIGHT DOUBLE ARROW WITH STROKE + \definesymbol[RightwardsDoubleArrowWithStroke][\USymbChar{33}{207}] % RIGHTWARDS DOUBLE ARROW WITH STROKE + \definesymbol[LeftwardsDoubleArrow][\USymbChar{33}{208}] % LEFTWARDS DOUBLE ARROW + \definesymbol[UpwardsDoubleArrow][\USymbChar{33}{209}] % UPWARDS DOUBLE ARROW + \definesymbol[RightwardsDoubleArrow][\USymbChar{33}{210}] % RIGHTWARDS DOUBLE ARROW + \definesymbol[DownwardsDoubleArrow][\USymbChar{33}{211}] % DOWNWARDS DOUBLE ARROW + \definesymbol[LeftRightDoubleArrow][\USymbChar{33}{212}] % LEFT RIGHT DOUBLE ARROW + \definesymbol[UpDownDoubleArrow][\USymbChar{33}{213}] % UP DOWN DOUBLE ARROW + \definesymbol[NorthWestDoubleArrow][\USymbChar{33}{214}] % NORTH WEST DOUBLE ARROW + \definesymbol[NorthEastDoubleArrow][\USymbChar{33}{215}] % NORTH EAST DOUBLE ARROW + \definesymbol[SouthEastDoubleArrow][\USymbChar{33}{216}] % SOUTH EAST DOUBLE ARROW + \definesymbol[SouthWestDoubleArrow][\USymbChar{33}{217}] % SOUTH WEST DOUBLE ARROW + \definesymbol[LeftwardsTripleArrow][\USymbChar{33}{218}] % LEFTWARDS TRIPLE ARROW + \definesymbol[RightwardsTripleArrow][\USymbChar{33}{219}] % RIGHTWARDS TRIPLE ARROW + \definesymbol[UpwardsWhiteDoubleArrow][\USymbChar{33}{238}] % UPWARDS WHITE DOUBLE ARROW + \definesymbol[UpwardsWhiteDoubleArrowOnPedestal][\USymbChar{33}{239}] % UPWARDS WHITE DOUBLE ARROW ON PEDESTAL + +\stopsymbolset + + +\startsymbolset[Unicode Optical Character Recognition] % 0x2440: Requires UnicodeRegular24 + + \definesymbol[OcrHook][\USymbChar{36}{64}] % OCR HOOK + \definesymbol[OcrChair][\USymbChar{36}{65}] % OCR CHAIR + \definesymbol[OcrFork][\USymbChar{36}{66}] % OCR FORK + \definesymbol[OcrInvertedFork][\USymbChar{36}{67}] % OCR INVERTED FORK + \definesymbol[OcrBeltBuckle][\USymbChar{36}{68}] % OCR BELT BUCKLE + \definesymbol[OcrBowTie][\USymbChar{36}{69}] % OCR BOW TIE + \definesymbol[OcrBranchBankIdentification][\USymbChar{36}{70}] % OCR BRANCH BANK IDENTIFICATION + \definesymbol[OcrAmountOfCheck][\USymbChar{36}{71}] % OCR AMOUNT OF CHECK + \definesymbol[OcrDash][\USymbChar{36}{72}] % OCR DASH + \definesymbol[OcrCustomerAccountNumber][\USymbChar{36}{73}] % OCR CUSTOMER ACCOUNT NUMBER + \definesymbol[OcrDoubleBackslash][\USymbChar{36}{74}] % OCR DOUBLE BACKSLASH + +\stopsymbolset + + +\startsymbolset[Unicode Box Drawing] % 0x2500: Requires UnicodeRegular25 + + \definesymbol[LightHorizontal][\USymbChar{37}{0}] % BOX DRAWINGS LIGHT HORIZONTAL + \definesymbol[HeavyHorizontal][\USymbChar{37}{1}] % BOX DRAWINGS HEAVY HORIZONTAL + \definesymbol[LightVertical][\USymbChar{37}{2}] % BOX DRAWINGS LIGHT VERTICAL + \definesymbol[HeavyVertical][\USymbChar{37}{3}] % BOX DRAWINGS HEAVY VERTICAL + \definesymbol[LightTripleDashHorizontal][\USymbChar{37}{4}] % BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL + \definesymbol[HeavyTripleDashHorizontal][\USymbChar{37}{5}] % BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL + \definesymbol[LightTripleDashVertical][\USymbChar{37}{6}] % BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL + \definesymbol[HeavyTripleDashVertical][\USymbChar{37}{7}] % BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL + \definesymbol[LightQuadrupleDashHorizontal][\USymbChar{37}{8}] % BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL + \definesymbol[HeavyQuadrupleDashHorizontal][\USymbChar{37}{9}] % BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL + \definesymbol[LightQuadrupleDashVertical][\USymbChar{37}{10}] % BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL + \definesymbol[HeavyQuadrupleDashVertical][\USymbChar{37}{11}] % BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL + \definesymbol[LightDownAndRight][\USymbChar{37}{12}] % BOX DRAWINGS LIGHT DOWN AND RIGHT + \definesymbol[DownLightAndRightHeavy][\USymbChar{37}{13}] % BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY + \definesymbol[DownHeavyAndRightLight][\USymbChar{37}{14}] % BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT + \definesymbol[HeavyDownAndRight][\USymbChar{37}{15}] % BOX DRAWINGS HEAVY DOWN AND RIGHT + \definesymbol[LightDownAndLeft][\USymbChar{37}{16}] % BOX DRAWINGS LIGHT DOWN AND LEFT + \definesymbol[DownLightAndLeftHeavy][\USymbChar{37}{17}] % BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY + \definesymbol[DownHeavyAndLeftLight][\USymbChar{37}{18}] % BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT + \definesymbol[HeavyDownAndLeft][\USymbChar{37}{19}] % BOX DRAWINGS HEAVY DOWN AND LEFT + \definesymbol[LightUpAndRight][\USymbChar{37}{20}] % BOX DRAWINGS LIGHT UP AND RIGHT + \definesymbol[UpLightAndRightHeavy][\USymbChar{37}{21}] % BOX DRAWINGS UP LIGHT AND RIGHT HEAVY + \definesymbol[UpHeavyAndRightLight][\USymbChar{37}{22}] % BOX DRAWINGS UP HEAVY AND RIGHT LIGHT + \definesymbol[HeavyUpAndRight][\USymbChar{37}{23}] % BOX DRAWINGS HEAVY UP AND RIGHT + \definesymbol[LightUpAndLeft][\USymbChar{37}{24}] % BOX DRAWINGS LIGHT UP AND LEFT + \definesymbol[UpLightAndLeftHeavy][\USymbChar{37}{25}] % BOX DRAWINGS UP LIGHT AND LEFT HEAVY + \definesymbol[UpHeavyAndLeftLight][\USymbChar{37}{26}] % BOX DRAWINGS UP HEAVY AND LEFT LIGHT + \definesymbol[HeavyUpAndLeft][\USymbChar{37}{27}] % BOX DRAWINGS HEAVY UP AND LEFT + \definesymbol[LightVerticalAndRight][\USymbChar{37}{28}] % BOX DRAWINGS LIGHT VERTICAL AND RIGHT + \definesymbol[VerticalLightAndRightHeavy][\USymbChar{37}{29}] % BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY + \definesymbol[UpHeavyAndRightDownLight][\USymbChar{37}{30}] % BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT + \definesymbol[DownHeavyAndRightUpLight][\USymbChar{37}{31}] % BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT + \definesymbol[VerticalHeavyAndRightLight][\USymbChar{37}{32}] % BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT + \definesymbol[DownLightAndRightUpHeavy][\USymbChar{37}{33}] % BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY + \definesymbol[UpLightAndRightDownHeavy][\USymbChar{37}{34}] % BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY + \definesymbol[HeavyVerticalAndRight][\USymbChar{37}{35}] % BOX DRAWINGS HEAVY VERTICAL AND RIGHT + \definesymbol[LightVerticalAndLeft][\USymbChar{37}{36}] % BOX DRAWINGS LIGHT VERTICAL AND LEFT + \definesymbol[VerticalLightAndLeftHeavy][\USymbChar{37}{37}] % BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY + \definesymbol[UpHeavyAndLeftDownLight][\USymbChar{37}{38}] % BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT + \definesymbol[DownHeavyAndLeftUpLight][\USymbChar{37}{39}] % BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT + \definesymbol[VerticalHeavyAndLeftLight][\USymbChar{37}{40}] % BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT + \definesymbol[DownLightAndLeftUpHeavy][\USymbChar{37}{41}] % BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY + \definesymbol[UpLightAndLeftDownHeavy][\USymbChar{37}{42}] % BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY + \definesymbol[HeavyVerticalAndLeft][\USymbChar{37}{43}] % BOX DRAWINGS HEAVY VERTICAL AND LEFT + \definesymbol[LightDownAndHorizontal][\USymbChar{37}{44}] % BOX DRAWINGS LIGHT DOWN AND HORIZONTAL + \definesymbol[LeftHeavyAndRightDownLight][\USymbChar{37}{45}] % BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT + \definesymbol[RightHeavyAndLeftDownLight][\USymbChar{37}{46}] % BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT + \definesymbol[DownLightAndHorizontalHeavy][\USymbChar{37}{47}] % BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY + \definesymbol[DownHeavyAndHorizontalLight][\USymbChar{37}{48}] % BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT + \definesymbol[RightLightAndLeftDownHeavy][\USymbChar{37}{49}] % BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY + \definesymbol[LeftLightAndRightDownHeavy][\USymbChar{37}{50}] % BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY + \definesymbol[HeavyDownAndHorizontal][\USymbChar{37}{51}] % BOX DRAWINGS HEAVY DOWN AND HORIZONTAL + \definesymbol[LightUpAndHorizontal][\USymbChar{37}{52}] % BOX DRAWINGS LIGHT UP AND HORIZONTAL + \definesymbol[LeftHeavyAndRightUpLight][\USymbChar{37}{53}] % BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT + \definesymbol[RightHeavyAndLeftUpLight][\USymbChar{37}{54}] % BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT + \definesymbol[UpLightAndHorizontalHeavy][\USymbChar{37}{55}] % BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY + \definesymbol[UpHeavyAndHorizontalLight][\USymbChar{37}{56}] % BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT + \definesymbol[RightLightAndLeftUpHeavy][\USymbChar{37}{57}] % BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY + \definesymbol[LeftLightAndRightUpHeavy][\USymbChar{37}{58}] % BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY + \definesymbol[HeavyUpAndHorizontal][\USymbChar{37}{59}] % BOX DRAWINGS HEAVY UP AND HORIZONTAL + \definesymbol[LightVerticalAndHorizontal][\USymbChar{37}{60}] % BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL + \definesymbol[LeftHeavyAndRightVerticalLight][\USymbChar{37}{61}] % BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT + \definesymbol[RightHeavyAndLeftVerticalLight][\USymbChar{37}{62}] % BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT + \definesymbol[VerticalLightAndHorizontalHeavy][\USymbChar{37}{63}] % BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY + \definesymbol[UpHeavyAndDownHorizontalLight][\USymbChar{37}{64}] % BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT + \definesymbol[DownHeavyAndUpHorizontalLight][\USymbChar{37}{65}] % BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT + \definesymbol[VerticalHeavyAndHorizontalLight][\USymbChar{37}{66}] % BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT + \definesymbol[LeftUpHeavyAndRightDownLight][\USymbChar{37}{67}] % BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT + \definesymbol[RightUpHeavyAndLeftDownLight][\USymbChar{37}{68}] % BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT + \definesymbol[LeftDownHeavyAndRightUpLight][\USymbChar{37}{69}] % BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT + \definesymbol[RightDownHeavyAndLeftUpLight][\USymbChar{37}{70}] % BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT + \definesymbol[DownLightAndUpHorizontalHeavy][\USymbChar{37}{71}] % BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY + \definesymbol[UpLightAndDownHorizontalHeavy][\USymbChar{37}{72}] % BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY + \definesymbol[RightLightAndLeftVerticalHeavy][\USymbChar{37}{73}] % BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY + \definesymbol[LeftLightAndRightVerticalHeavy][\USymbChar{37}{74}] % BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY + \definesymbol[HeavyVerticalAndHorizontal][\USymbChar{37}{75}] % BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL + \definesymbol[LightArcDownAndRight][\USymbChar{37}{109}] % BOX DRAWINGS LIGHT ARC DOWN AND RIGHT + \definesymbol[LightArcDownAndLeft][\USymbChar{37}{110}] % BOX DRAWINGS LIGHT ARC DOWN AND LEFT + \definesymbol[LightArcUpAndLeft][\USymbChar{37}{111}] % BOX DRAWINGS LIGHT ARC UP AND LEFT + \definesymbol[LightArcUpAndRight][\USymbChar{37}{112}] % BOX DRAWINGS LIGHT ARC UP AND RIGHT + \definesymbol[LightDiagonalUpperRightToLowerLeft][\USymbChar{37}{113}] % BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT + \definesymbol[LightDiagonalUpperLeftToLowerRight][\USymbChar{37}{114}] % BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT + \definesymbol[LightDiagonalCross][\USymbChar{37}{115}] % BOX DRAWINGS LIGHT DIAGONAL CROSS + \definesymbol[LightLeft][\USymbChar{37}{116}] % BOX DRAWINGS LIGHT LEFT + \definesymbol[LightUp][\USymbChar{37}{117}] % BOX DRAWINGS LIGHT UP + \definesymbol[LightRight][\USymbChar{37}{118}] % BOX DRAWINGS LIGHT RIGHT + \definesymbol[LightDown][\USymbChar{37}{119}] % BOX DRAWINGS LIGHT DOWN + \definesymbol[HeavyLeft][\USymbChar{37}{120}] % BOX DRAWINGS HEAVY LEFT + \definesymbol[HeavyUp][\USymbChar{37}{121}] % BOX DRAWINGS HEAVY UP + \definesymbol[HeavyRight][\USymbChar{37}{122}] % BOX DRAWINGS HEAVY RIGHT + \definesymbol[HeavyDown][\USymbChar{37}{123}] % BOX DRAWINGS HEAVY DOWN + \definesymbol[LightLeftAndHeavyRight][\USymbChar{37}{124}] % BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT + \definesymbol[LightUpAndHeavyDown][\USymbChar{37}{125}] % BOX DRAWINGS LIGHT UP AND HEAVY DOWN + \definesymbol[HeavyLeftAndLightRight][\USymbChar{37}{126}] % BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT + \definesymbol[HeavyUpAndLightDown][\USymbChar{37}{127}] % BOX DRAWINGS HEAVY UP AND LIGHT DOWN + +\stopsymbolset + +\startsymbolset[Unicode Circled Digits] % 0x2460: Requires UnicodeRegular24 + + \definesymbol[CircledOne][\USymbCharZapf{36}{96}] % CIRCLED DIGIT ONE + \definesymbol[CircledTwo][\USymbCharZapf{36}{97}] % CIRCLED DIGIT TWO + \definesymbol[CircledThree][\USymbCharZapf{36}{98}] % CIRCLED DIGIT THREE + \definesymbol[CircledFour][\USymbCharZapf{36}{99}] % CIRCLED DIGIT FOUR + \definesymbol[CircledFive][\USymbCharZapf{36}{100}] % CIRCLED DIGIT FIVE + \definesymbol[CircledSix][\USymbCharZapf{36}{101}] % CIRCLED DIGIT SIX + \definesymbol[CircledSeven][\USymbCharZapf{36}{102}] % CIRCLED DIGIT SEVEN + \definesymbol[CircledEight][\USymbCharZapf{36}{103}] % CIRCLED DIGIT EIGHT + \definesymbol[CircledNine][\USymbCharZapf{36}{104}] % CIRCLED DIGIT NINE + \definesymbol[CircledTen][\USymbCharZapf{36}{105}] % CIRCLED NUMBER TEN + +\stopsymbolset + +\startsymbolset[Unicode Double Box Drawing] % 0x2500: Requires UnicodeRegular25 + + \definesymbol[LightDoubleDashHorizontal][\USymbChar{37}{76}] % BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL + \definesymbol[HeavyDoubleDashHorizontal][\USymbChar{37}{77}] % BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL + \definesymbol[LightDoubleDashVertical][\USymbChar{37}{78}] % BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL + \definesymbol[HeavyDoubleDashVertical][\USymbChar{37}{79}] % BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL + \definesymbol[DoubleHorizontal][\USymbChar{37}{80}] % BOX DRAWINGS DOUBLE HORIZONTAL + \definesymbol[DoubleVertical][\USymbChar{37}{81}] % BOX DRAWINGS DOUBLE VERTICAL + \definesymbol[DownSingleAndRightDouble][\USymbChar{37}{82}] % BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE + \definesymbol[DownDoubleAndRightSingle][\USymbChar{37}{83}] % BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE + \definesymbol[DoubleDownAndRight][\USymbChar{37}{84}] % BOX DRAWINGS DOUBLE DOWN AND RIGHT + \definesymbol[DownSingleAndLeftDouble][\USymbChar{37}{85}] % BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE + \definesymbol[DownDoubleAndLeftSingle][\USymbChar{37}{86}] % BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE + \definesymbol[DoubleDownAndLeft][\USymbChar{37}{87}] % BOX DRAWINGS DOUBLE DOWN AND LEFT + \definesymbol[UpSingleAndRightDouble][\USymbChar{37}{88}] % BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE + \definesymbol[UpDoubleAndRightSingle][\USymbChar{37}{89}] % BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE + \definesymbol[DoubleUpAndRight][\USymbChar{37}{90}] % BOX DRAWINGS DOUBLE UP AND RIGHT + \definesymbol[UpSingleAndLeftDouble][\USymbChar{37}{91}] % BOX DRAWINGS UP SINGLE AND LEFT DOUBLE + \definesymbol[UpDoubleAndLeftSingle][\USymbChar{37}{92}] % BOX DRAWINGS UP DOUBLE AND LEFT SINGLE + \definesymbol[DoubleUpAndLeft][\USymbChar{37}{93}] % BOX DRAWINGS DOUBLE UP AND LEFT + \definesymbol[VerticalSingleAndRightDouble][\USymbChar{37}{94}] % BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE + \definesymbol[VerticalDoubleAndRightSingle][\USymbChar{37}{95}] % BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE + \definesymbol[DoubleVerticalAndRight][\USymbChar{37}{96}] % BOX DRAWINGS DOUBLE VERTICAL AND RIGHT + \definesymbol[VerticalSingleAndLeftDouble][\USymbChar{37}{97}] % BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE + \definesymbol[VerticalDoubleAndLeftSingle][\USymbChar{37}{98}] % BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE + \definesymbol[DoubleVerticalAndLeft][\USymbChar{37}{99}] % BOX DRAWINGS DOUBLE VERTICAL AND LEFT + \definesymbol[DownSingleAndHorizontalDouble][\USymbChar{37}{100}] % BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE + \definesymbol[DownDoubleAndHorizontalSingle][\USymbChar{37}{101}] % BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE + \definesymbol[DoubleDownAndHorizontal][\USymbChar{37}{102}] % BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL + \definesymbol[UpSingleAndHorizontalDouble][\USymbChar{37}{103}] % BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE + \definesymbol[UpDoubleAndHorizontalSingle][\USymbChar{37}{104}] % BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE + \definesymbol[DoubleUpAndHorizontal][\USymbChar{37}{105}] % BOX DRAWINGS DOUBLE UP AND HORIZONTAL + \definesymbol[VerticalSingleAndHorizontalDouble][\USymbChar{37}{106}] % BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE + \definesymbol[VerticalDoubleAndHorizontalSingle][\USymbChar{37}{107}] % BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE + \definesymbol[DoubleVerticalAndHorizontal][\USymbChar{37}{108}] % BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL + +\stopsymbolset + +\startsymbolset[Unicode Block Elements] % 0x2580: Requires UnicodeRegular25 + + \definesymbol[UpperHalfBlock][\USymbChar{37}{128}] % UPPER HALF BLOCK + \definesymbol[LowerOneEighthBlock][\USymbChar{37}{129}] % LOWER ONE EIGHTH BLOCK + \definesymbol[LowerOneQuarterBlock][\USymbChar{37}{130}] % LOWER ONE QUARTER BLOCK + \definesymbol[LowerThreeEighthsBlock][\USymbChar{37}{131}] % LOWER THREE EIGHTHS BLOCK + \definesymbol[LowerHalfBlock][\USymbChar{37}{132}] % LOWER HALF BLOCK + \definesymbol[LowerFiveEighthsBlock][\USymbChar{37}{133}] % LOWER FIVE EIGHTHS BLOCK + \definesymbol[LowerThreeQuartersBlock][\USymbChar{37}{134}] % LOWER THREE QUARTERS BLOCK + \definesymbol[LowerSevenEighthsBlock][\USymbChar{37}{135}] % LOWER SEVEN EIGHTHS BLOCK + \definesymbol[FullBlock][\USymbChar{37}{136}] % FULL BLOCK + \definesymbol[LeftSevenEighthsBlock][\USymbChar{37}{137}] % LEFT SEVEN EIGHTHS BLOCK + \definesymbol[LeftThreeQuartersBlock][\USymbChar{37}{138}] % LEFT THREE QUARTERS BLOCK + \definesymbol[LeftFiveEighthsBlock][\USymbChar{37}{139}] % LEFT FIVE EIGHTHS BLOCK + \definesymbol[LeftHalfBlock][\USymbChar{37}{140}] % LEFT HALF BLOCK + \definesymbol[LeftThreeEighthsBlock][\USymbChar{37}{141}] % LEFT THREE EIGHTHS BLOCK + \definesymbol[LeftOneQuarterBlock][\USymbChar{37}{142}] % LEFT ONE QUARTER BLOCK + \definesymbol[LeftOneEighthBlock][\USymbChar{37}{143}] % LEFT ONE EIGHTH BLOCK + \definesymbol[RightHalfBlock][\USymbChar{37}{144}] % RIGHT HALF BLOCK + \definesymbol[UpperOneEighthBlock][\USymbChar{37}{148}] % UPPER ONE EIGHTH BLOCK + \definesymbol[RightOneEighthBlock][\USymbChar{37}{149}] % RIGHT ONE EIGHTH BLOCK + +\stopsymbolset + +\startsymbolset[Unicode Shade Characters] % 0x2580: Requires UnicodeRegular25 + + \definesymbol[LightShade][\USymbChar{37}{145}] % LIGHT SHADE + \definesymbol[MediumShade][\USymbChar{37}{146}] % MEDIUM SHADE + \definesymbol[DarkShade][\USymbChar{37}{147}] % DARK SHADE + +\stopsymbolset + +\startsymbolset[Unicode Terminal Graphics] % 0x2580: Requires UnicodeRegular25 + + \definesymbol[QuadrantLowerLeft][\USymbChar{37}{150}] % [Unassigned U+2596] + \definesymbol[QuadrantLowerRight][\USymbChar{37}{151}] % [Unassigned U+2597] + \definesymbol[QuadrantUpperLeft][\USymbChar{37}{152}] % [Unassigned U+2598] + \definesymbol[QuadrantUpperLeftAndLowerLeftAndLowerRight][\USymbChar{37}{153}] % [Unassigned U+2599] + \definesymbol[QuadrantUpperLeftAndLowerRight][\USymbChar{37}{154}] % [Unassigned U+259A] + \definesymbol[QuadrantUpperLeftAndUpperRightandLowerLeft][\USymbChar{37}{155}] % [Unassigned U+259B] + \definesymbol[QuadrantUpperLeftAndUpperRightAndLowerRight][\USymbChar{37}{156}] % [Unassigned U+259C] + \definesymbol[QuadrantUpperRight][\USymbChar{37}{157}] % [Unassigned U+259D] + \definesymbol[QuadrantUpperRightAndLowerLeft][\USymbChar{37}{158}] % [Unassigned U+259E] + \definesymbol[QuadrantUpperRightAndLowerLeftAndLowerRight][\USymbChar{37}{159}] % [Unassigned U+259F] + +\stopsymbolset + +\startsymbolset[Unicode Geometric Shapes] % 0x25A0: Requires UnicodeRegular25 + + \definesymbol[BlackSquare][\USymbChar{37}{160}] % BLACK SQUARE + \definesymbol[WhiteSquare][\USymbChar{37}{161}] % WHITE SQUARE + \definesymbol[WhiteSquareWithRoundedCorners][\USymbChar{37}{162}] % WHITE SQUARE WITH ROUNDED CORNERS + \definesymbol[WhiteSquareContainingBlackSmallSquare][\USymbChar{37}{163}] % WHITE SQUARE CONTAINING BLACK SMALL SQUARE + \definesymbol[SquareWithHorizontalFill][\USymbChar{37}{164}] % SQUARE WITH HORIZONTAL FILL + \definesymbol[SquareWithVerticalFill][\USymbChar{37}{165}] % SQUARE WITH VERTICAL FILL + \definesymbol[SquareWithOrthogonalCrosshatchFill][\USymbChar{37}{166}] % SQUARE WITH ORTHOGONAL CROSSHATCH FILL + \definesymbol[SquareWithUpperLeftToLowerRightFill][\USymbChar{37}{167}] % SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL + \definesymbol[SquareWithUpperRightToLowerLeftFill][\USymbChar{37}{168}] % SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL + \definesymbol[SquareWithDiagonalCrosshatchFill][\USymbChar{37}{169}] % SQUARE WITH DIAGONAL CROSSHATCH FILL + \definesymbol[BlackSmallSquare][\USymbChar{37}{170}] % BLACK SMALL SQUARE + \definesymbol[WhiteSmallSquare][\USymbChar{37}{171}] % WHITE SMALL SQUARE + \definesymbol[BlackRectangle][\USymbChar{37}{172}] % BLACK RECTANGLE + \definesymbol[WhiteRectangle][\USymbChar{37}{173}] % WHITE RECTANGLE + \definesymbol[BlackVerticalRectangle][\USymbChar{37}{174}] % BLACK VERTICAL RECTANGLE + \definesymbol[WhiteVerticalRectangle][\USymbChar{37}{175}] % WHITE VERTICAL RECTANGLE + \definesymbol[BlackParallelogram][\USymbChar{37}{176}] % BLACK PARALLELOGRAM + \definesymbol[WhiteParallelogram][\USymbChar{37}{177}] % WHITE PARALLELOGRAM + \definesymbol[BlackUpPointingTriangle][\USymbChar{37}{178}] % BLACK UP-POINTING TRIANGLE + \definesymbol[WhiteUpPointingTriangle][\USymbChar{37}{179}] % WHITE UP-POINTING TRIANGLE + \definesymbol[BlackUpPointingSmallTriangle][\USymbChar{37}{180}] % BLACK UP-POINTING SMALL TRIANGLE + \definesymbol[WhiteUpPointingSmallTriangle][\USymbChar{37}{181}] % WHITE UP-POINTING SMALL TRIANGLE + \definesymbol[BlackRightPointingTriangle][\USymbChar{37}{182}] % BLACK RIGHT-POINTING TRIANGLE + \definesymbol[WhiteRightPointingTriangle][\USymbChar{37}{183}] % WHITE RIGHT-POINTING TRIANGLE + \definesymbol[BlackRightPointingSmallTriangle][\USymbChar{37}{184}] % BLACK RIGHT-POINTING SMALL TRIANGLE + \definesymbol[WhiteRightPointingSmallTriangle][\USymbChar{37}{185}] % WHITE RIGHT-POINTING SMALL TRIANGLE + \definesymbol[BlackRightPointingPointer][\USymbChar{37}{186}] % BLACK RIGHT-POINTING POINTER + \definesymbol[WhiteRightPointingPointer][\USymbChar{37}{187}] % WHITE RIGHT-POINTING POINTER + \definesymbol[BlackDownPointingTriangle][\USymbChar{37}{188}] % BLACK DOWN-POINTING TRIANGLE + \definesymbol[WhiteDownPointingTriangle][\USymbChar{37}{189}] % WHITE DOWN-POINTING TRIANGLE + \definesymbol[BlackDownPointingSmallTriangle][\USymbChar{37}{190}] % BLACK DOWN-POINTING SMALL TRIANGLE + \definesymbol[WhiteDownPointingSmallTriangle][\USymbChar{37}{191}] % WHITE DOWN-POINTING SMALL TRIANGLE + \definesymbol[BlackLeftPointingTriangle][\USymbChar{37}{192}] % BLACK LEFT-POINTING TRIANGLE + \definesymbol[WhiteLeftPointingTriangle][\USymbChar{37}{193}] % WHITE LEFT-POINTING TRIANGLE + \definesymbol[BlackLeftPointingSmallTriangle][\USymbChar{37}{194}] % BLACK LEFT-POINTING SMALL TRIANGLE + \definesymbol[WhiteLeftPointingSmallTriangle][\USymbChar{37}{195}] % WHITE LEFT-POINTING SMALL TRIANGLE + \definesymbol[BlackLeftPointingPointer][\USymbChar{37}{196}] % BLACK LEFT-POINTING POINTER + \definesymbol[WhiteLeftPointingPointer][\USymbChar{37}{197}] % WHITE LEFT-POINTING POINTER + \definesymbol[BlackDiamond][\USymbChar{37}{198}] % BLACK DIAMOND + \definesymbol[WhiteDiamond][\USymbChar{37}{199}] % WHITE DIAMOND + \definesymbol[WhiteDiamondContainingBlackSmallDiamond][\USymbChar{37}{200}] % WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND + \definesymbol[Fisheye][\USymbChar{37}{201}] % FISHEYE + \definesymbol[Lozenge][\USymbChar{37}{202}] % LOZENGE + \definesymbol[WhiteCircle][\USymbChar{37}{203}] % WHITE CIRCLE + \definesymbol[DottedCircle][\USymbChar{37}{204}] % DOTTED CIRCLE + \definesymbol[CircleWithVerticalFill][\USymbChar{37}{205}] % CIRCLE WITH VERTICAL FILL + \definesymbol[Bullseye][\USymbChar{37}{206}] % BULLSEYE + \definesymbol[BlackCircle][\USymbChar{37}{207}] % BLACK CIRCLE + \definesymbol[CircleWithLeftHalfBlack][\USymbChar{37}{208}] % CIRCLE WITH LEFT HALF BLACK + \definesymbol[CircleWithRightHalfBlack][\USymbChar{37}{209}] % CIRCLE WITH RIGHT HALF BLACK + \definesymbol[CircleWithLowerHalfBlack][\USymbChar{37}{210}] % CIRCLE WITH LOWER HALF BLACK + \definesymbol[CircleWithUpperHalfBlack][\USymbChar{37}{211}] % CIRCLE WITH UPPER HALF BLACK + \definesymbol[CircleWithUpperRightQuadrantBlack][\USymbChar{37}{212}] % CIRCLE WITH UPPER RIGHT QUADRANT BLACK + \definesymbol[CircleWithAllButUpperLeftQuadrantBlack][\USymbChar{37}{213}] % CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK + \definesymbol[LeftHalfBlackCircle][\USymbChar{37}{214}] % LEFT HALF BLACK CIRCLE + \definesymbol[RightHalfBlackCircle][\USymbChar{37}{215}] % RIGHT HALF BLACK CIRCLE + \definesymbol[InverseBullet][\USymbChar{37}{216}] % INVERSE BULLET + \definesymbol[InverseWhiteCircle][\USymbChar{37}{217}] % INVERSE WHITE CIRCLE + \definesymbol[UpperHalfInverseWhiteCircle][\USymbChar{37}{218}] % UPPER HALF INVERSE WHITE CIRCLE + \definesymbol[LowerHalfInverseWhiteCircle][\USymbChar{37}{219}] % LOWER HALF INVERSE WHITE CIRCLE + \definesymbol[UpperLeftQuadrantCircularArc][\USymbChar{37}{220}] % UPPER LEFT QUADRANT CIRCULAR ARC + \definesymbol[UpperRightQuadrantCircularArc][\USymbChar{37}{221}] % UPPER RIGHT QUADRANT CIRCULAR ARC + \definesymbol[LowerRightQuadrantCircularArc][\USymbChar{37}{222}] % LOWER RIGHT QUADRANT CIRCULAR ARC + \definesymbol[LowerLeftQuadrantCircularArc][\USymbChar{37}{223}] % LOWER LEFT QUADRANT CIRCULAR ARC + \definesymbol[LowerHalfCircle][\USymbChar{37}{225}] % LOWER HALF CIRCLE + \definesymbol[BlackLowerRightTriangle][\USymbChar{37}{226}] % BLACK LOWER RIGHT TRIANGLE + \definesymbol[BlackLowerLeftTriangle][\USymbChar{37}{227}] % BLACK LOWER LEFT TRIANGLE + \definesymbol[BlackUpperLeftTriangle][\USymbChar{37}{228}] % BLACK UPPER LEFT TRIANGLE + \definesymbol[BlackUpperRightTriangle][\USymbChar{37}{229}] % BLACK UPPER RIGHT TRIANGLE + \definesymbol[WhiteBullet][\USymbChar{37}{230}] % WHITE BULLET + \definesymbol[SquareWithLeftHalfBlack][\USymbChar{37}{231}] % SQUARE WITH LEFT HALF BLACK + \definesymbol[SquareWithRightHalfBlack][\USymbChar{37}{232}] % SQUARE WITH RIGHT HALF BLACK + \definesymbol[SquareWithUpperLeftDiagonalHalfBlack][\USymbChar{37}{233}] % SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK + \definesymbol[SquareWithLowerRightDiagonalHalfBlack][\USymbChar{37}{234}] % SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK + \definesymbol[WhiteSquareWithVerticalBisectingLine][\USymbChar{37}{235}] % WHITE SQUARE WITH VERTICAL BISECTING LINE + \definesymbol[WhiteUpPointingTriangleWithDot][\USymbChar{37}{236}] % WHITE UP-POINTING TRIANGLE WITH DOT + \definesymbol[UpPointingTriangleWithLeftHalfBlack][\USymbChar{37}{237}] % UP-POINTING TRIANGLE WITH LEFT HALF BLACK + \definesymbol[UpPointingTriangleWithRightHalfBlack][\USymbChar{37}{238}] % UP-POINTING TRIANGLE WITH RIGHT HALF BLACK + \definesymbol[LargeCircle][\USymbChar{37}{239}] % LARGE CIRCLE + \definesymbol[UpperLeftTriangle][\USymbChar{37}{248}] % [Unassigned U+25F8] + \definesymbol[UpperRightTriangle][\USymbChar{37}{249}] % [Unassigned U+25F9] + \definesymbol[LowerLeftTriangle][\USymbChar{37}{250}] % [Unassigned U+25FA] + \definesymbol[WhiteMediumSquare][\USymbChar{37}{251}] % [Unassigned U+25FB] + \definesymbol[BlackMediumSquare][\USymbChar{37}{252}] % [Unassigned U+25FC] + \definesymbol[WhiteMediumSmallSquare][\USymbChar{37}{253}] % [Unassigned U+25FD] + \definesymbol[BlackMediumSmallSquare][\USymbChar{37}{254}] % [Unassigned U+25FE] + \definesymbol[LowerRightTriangle][\USymbChar{37}{255}] % [Unassigned U+25FF] + +\stopsymbolset + +\startsymbolset[Unicode Control Code Graphics] % 0x25A0: Requires UnicodeRegular25 + + \definesymbol[WhiteSquareWithUpperLeftQuadrant][\USymbChar{37}{240}] % WHITE SQUARE WITH UPPER LEFT QUADRANT + \definesymbol[WhiteSquareWithLowerLeftQuadrant][\USymbChar{37}{241}] % WHITE SQUARE WITH LOWER LEFT QUADRANT + \definesymbol[WhiteSquareWithLowerRightQuadrant][\USymbChar{37}{242}] % WHITE SQUARE WITH LOWER RIGHT QUADRANT + \definesymbol[WhiteSquareWithUpperRightQuadrant][\USymbChar{37}{243}] % WHITE SQUARE WITH UPPER RIGHT QUADRANT + \definesymbol[WhiteCircleWithUpperLeftQuadrant][\USymbChar{37}{244}] % WHITE CIRCLE WITH UPPER LEFT QUADRANT + \definesymbol[WhiteCircleWithLowerLeftQuadrant][\USymbChar{37}{245}] % WHITE CIRCLE WITH LOWER LEFT QUADRANT + \definesymbol[WhiteCircleWithLowerRightQuadrant][\USymbChar{37}{246}] % WHITE CIRCLE WITH LOWER RIGHT QUADRANT + \definesymbol[WhiteCircleWithUpperRightQuadrant][\USymbChar{37}{247}] % WHITE CIRCLE WITH UPPER RIGHT QUADRANT + +\stopsymbolset + +\startsymbolset[Unicode Weather and Astrological] % 0x2600: Requires UnicodeRegular26 + + \definesymbol[BlackSunWithRays][\USymbChar{38}{0}] % BLACK SUN WITH RAYS + \definesymbol[Cloud][\USymbChar{38}{1}] % CLOUD + \definesymbol[Umbrella][\USymbChar{38}{2}] % UMBRELLA + \definesymbol[Snowman][\USymbChar{38}{3}] % SNOWMAN + \definesymbol[Comet][\USymbChar{38}{4}] % COMET + \definesymbol[BlackStar][\USymbChar{38}{5}] % BLACK STAR + \definesymbol[WhiteStar][\USymbChar{38}{6}] % WHITE STAR + \definesymbol[Lightning][\USymbChar{38}{7}] % LIGHTNING + \definesymbol[Thunderstorm][\USymbChar{38}{8}] % THUNDERSTORM + \definesymbol[Sun][\USymbChar{38}{9}] % SUN + \definesymbol[AscendingNode][\USymbChar{38}{10}] % ASCENDING NODE + \definesymbol[DescendingNode][\USymbChar{38}{11}] % DESCENDING NODE + \definesymbol[Conjunction][\USymbChar{38}{12}] % CONJUNCTION + \definesymbol[Opposition][\USymbChar{38}{13}] % OPPOSITION + \definesymbol[FirstQuarterMoon][\USymbChar{38}{61}] % FIRST QUARTER MOON + \definesymbol[LastQuarterMoon][\USymbChar{38}{62}] % LAST QUARTER MOON + \definesymbol[Mercury][\USymbChar{38}{63}] % MERCURY + \definesymbol[FemaleSign][\USymbChar{38}{64}] % FEMALE SIGN + \definesymbol[Earth][\USymbChar{38}{65}] % EARTH + \definesymbol[MaleSign][\USymbChar{38}{66}] % MALE SIGN + \definesymbol[Jupiter][\USymbChar{38}{67}] % JUPITER + \definesymbol[Saturn][\USymbChar{38}{68}] % SATURN + \definesymbol[Uranus][\USymbChar{38}{69}] % URANUS + \definesymbol[Neptune][\USymbChar{38}{70}] % NEPTUNE + \definesymbol[Pluto][\USymbChar{38}{71}] % PLUTO + +\stopsymbolset + +\startsymbolset[Unicode Miscellaneous] % 0x2600: Requires UnicodeRegular26 + + \definesymbol[BlackTelephone][\USymbChar{38}{14}] % BLACK TELEPHONE + \definesymbol[WhiteTelephone][\USymbChar{38}{15}] % WHITE TELEPHONE + \definesymbol[BallotBox][\USymbChar{38}{16}] % BALLOT BOX + \definesymbol[BallotBoxWithCheck][\USymbChar{38}{17}] % BALLOT BOX WITH CHECK + \definesymbol[BallotBoxWithX][\USymbChar{38}{18}] % BALLOT BOX WITH X + \definesymbol[Saltire][\USymbChar{38}{19}] % SALTIRE + \definesymbol[ReversedRotatedFloralHeartBullet][\USymbChar{38}{25}] % REVERSED ROTATED FLORAL HEART BULLET + \definesymbol[WheelOfDharma][\USymbChar{38}{56}] % WHEEL OF DHARMA + \definesymbol[WhiteFrowningFace][\USymbChar{38}{57}] % WHITE FROWNING FACE + \definesymbol[WhiteSmilingFace][\USymbChar{38}{58}] % WHITE SMILING FACE + \definesymbol[BlackSmilingFace][\USymbChar{38}{59}] % BLACK SMILING FACE + \definesymbol[WhiteSunWithRays][\USymbChar{38}{60}] % WHITE SUN WITH RAYS + \definesymbol[HotSprings][\USymbChar{38}{104}] % HOT SPRINGS + +\stopsymbolset + +\startsymbolset[Unicode Japanese Chess] % 0x2600: Requires UnicodeRegular26 + + \definesymbol[WhiteShogiPiece][\USymbChar{38}{22}] % [Unassigned U+2616] + \definesymbol[BlackShogiPiece][\USymbChar{38}{23}] % [Unassigned U+2617] + +\stopsymbolset + +\startsymbolset[Unicode Pointing Hand] % 0x2600: Requires UnicodeRegular26 + + \definesymbol[BlackLeftPointingIndex][\USymbChar{38}{26}] % BLACK LEFT POINTING INDEX + \definesymbol[BlackRightPointingIndex][\USymbChar{38}{27}] % BLACK RIGHT POINTING INDEX + \definesymbol[WhiteLeftPointingIndex][\USymbChar{38}{28}] % WHITE LEFT POINTING INDEX + \definesymbol[WhiteUpPointingIndex][\USymbChar{38}{29}] % WHITE UP POINTING INDEX + \definesymbol[WhiteRightPointingIndex][\USymbChar{38}{30}] % WHITE RIGHT POINTING INDEX + \definesymbol[WhiteDownPointingIndex][\USymbChar{38}{31}] % WHITE DOWN POINTING INDEX + +\stopsymbolset + +\startsymbolset[Unicode Warning Signs] % 0x2600: Requires UnicodeRegular26 + + \definesymbol[SkullAndCrossbones][\USymbChar{38}{32}] % SKULL AND CROSSBONES + \definesymbol[CautionSign][\USymbChar{38}{33}] % CAUTION SIGN + \definesymbol[RadioactiveSign][\USymbChar{38}{34}] % RADIOACTIVE SIGN + \definesymbol[BiohazardSign][\USymbChar{38}{35}] % BIOHAZARD SIGN + +\stopsymbolset + +\startsymbolset[Unicode Healing Signs] % 0x2600: Requires UnicodeRegular26 + \definesymbol[Caduceus][\USymbChar{38}{36}] % CADUCEUS + \definesymbol[Ankh][\USymbChar{38}{37}] % ANKH +\stopsymbolset + +\startsymbolset[Unicode Religious and Political] % 0x2600: Requires UnicodeRegular26 and 27 + + \definesymbol[OrthodoxCross][\USymbChar{38}{38}] % ORTHODOX CROSS + \definesymbol[ChiRho][\USymbChar{38}{39}] % CHI RHO + \definesymbol[CrossOfLorraine][\USymbChar{38}{40}] % CROSS OF LORRAINE + \definesymbol[CrossOfJerusalem][\USymbChar{38}{41}] % CROSS OF JERUSALEM + \definesymbol[StarAndCrescent][\USymbChar{38}{42}] % STAR AND CRESCENT + \definesymbol[FarsiSymbol][\USymbChar{38}{43}] % FARSI SYMBOL + \definesymbol[AdiShakti][\USymbChar{38}{44}] % ADI SHAKTI + \definesymbol[HammerAndSickle][\USymbChar{38}{45}] % HAMMER AND SICKLE + \definesymbol[PeaceSymbol][\USymbChar{38}{46}] % PEACE SYMBOL + \definesymbol[YinYang][\USymbChar{38}{47}] % YIN YANG + \definesymbol[WestSyriacCross][\USymbChar{38}{112}] % WEST SYRIAC CROSS + \definesymbol[EastSyriacCross][\USymbChar{38}{113}] % EAST SYRIAC CROSS +% 27xx starts here + \definesymbol[OutlinedGreekCross][\USymbCharZapf{39}{25}] % OUTLINED GREEK CROSS + \definesymbol[HeavyGreekCross][\USymbCharZapf{39}{26}] % HEAVY GREEK CROSS + \definesymbol[OpenCentreCross][\USymbCharZapf{39}{27}] % OPEN CENTRE CROSS + \definesymbol[HeavyOpenCentreCross][\USymbCharZapf{39}{28}] % HEAVY OPEN CENTRE CROSS + \definesymbol[LatinCross][\USymbCharZapf{39}{29}] % LATIN CROSS + \definesymbol[ShadowedWhiteLatinCross][\USymbCharZapf{39}{30}] % SHADOWED WHITE LATIN CROSS + \definesymbol[OutlinedLatinCross][\USymbCharZapf{39}{31}] % OUTLINED LATIN CROSS + \definesymbol[MalteseCross][\USymbCharZapf{39}{32}] % MALTESE CROSS + \definesymbol[StarOfDavid][\USymbCharZapf{39}{33}] % STAR OF DAVID + + +\stopsymbolset + +\startsymbolset[Unicode Trigram] % 0x2600: Requires UnicodeRegular26 + + \definesymbol[TrigramForHeaven][\USymbChar{38}{48}] % TRIGRAM FOR HEAVEN + \definesymbol[TrigramForLake][\USymbChar{38}{49}] % TRIGRAM FOR LAKE + \definesymbol[TrigramForFire][\USymbChar{38}{50}] % TRIGRAM FOR FIRE + \definesymbol[TrigramForThunder][\USymbChar{38}{51}] % TRIGRAM FOR THUNDER + \definesymbol[TrigramForWind][\USymbChar{38}{52}] % TRIGRAM FOR WIND + \definesymbol[TrigramForWater][\USymbChar{38}{53}] % TRIGRAM FOR WATER + \definesymbol[TrigramForMountain][\USymbChar{38}{54}] % TRIGRAM FOR MOUNTAIN + \definesymbol[TrigramForEarth][\USymbChar{38}{55}] % TRIGRAM FOR EARTH + +\stopsymbolset + +\startsymbolset[Unicode Zodiac] % 0x2600: Requires UnicodeRegular26 + + \definesymbol[Aries][\USymbChar{38}{72}] % ARIES + \definesymbol[Taurus][\USymbChar{38}{73}] % TAURUS + \definesymbol[Gemini][\USymbChar{38}{74}] % GEMINI + \definesymbol[Cancer][\USymbChar{38}{75}] % CANCER + \definesymbol[Leo][\USymbChar{38}{76}] % LEO + \definesymbol[Virgo][\USymbChar{38}{77}] % VIRGO + \definesymbol[Libra][\USymbChar{38}{78}] % LIBRA + \definesymbol[Scorpius][\USymbChar{38}{79}] % SCORPIUS + \definesymbol[Sagittarius][\USymbChar{38}{80}] % SAGITTARIUS + \definesymbol[Capricorn][\USymbChar{38}{81}] % CAPRICORN + \definesymbol[Aquarius][\USymbChar{38}{82}] % AQUARIUS + \definesymbol[Pisces][\USymbChar{38}{83}] % PISCES + +\stopsymbolset + +\startsymbolset[Unicode Chess] % 0x2600: Requires UnicodeRegular26 + + \definesymbol[WhiteChessKing][\USymbChar{38}{84}] % WHITE CHESS KING + \definesymbol[WhiteChessQueen][\USymbChar{38}{85}] % WHITE CHESS QUEEN + \definesymbol[WhiteChessRook][\USymbChar{38}{86}] % WHITE CHESS ROOK + \definesymbol[WhiteChessBishop][\USymbChar{38}{87}] % WHITE CHESS BISHOP + \definesymbol[WhiteChessKnight][\USymbChar{38}{88}] % WHITE CHESS KNIGHT + \definesymbol[WhiteChessPawn][\USymbChar{38}{89}] % WHITE CHESS PAWN + \definesymbol[BlackChessKing][\USymbChar{38}{90}] % BLACK CHESS KING + \definesymbol[BlackChessQueen][\USymbChar{38}{91}] % BLACK CHESS QUEEN + \definesymbol[BlackChessRook][\USymbChar{38}{92}] % BLACK CHESS ROOK + \definesymbol[BlackChessBishop][\USymbChar{38}{93}] % BLACK CHESS BISHOP + \definesymbol[BlackChessKnight][\USymbChar{38}{94}] % BLACK CHESS KNIGHT + \definesymbol[BlackChessPawn][\USymbChar{38}{95}] % BLACK CHESS PAWN + +\stopsymbolset + +\startsymbolset[Unicode Playing Card] % 0x2600: Requires UnicodeRegular26 + + \definesymbol[BlackSpadeSuit][\USymbChar{38}{96}] % BLACK SPADE SUIT + \definesymbol[WhiteHeartSuit][\USymbChar{38}{97}] % WHITE HEART SUIT + \definesymbol[WhiteDiamondSuit][\USymbChar{38}{98}] % WHITE DIAMOND SUIT + \definesymbol[BlackClubSuit][\USymbChar{38}{99}] % BLACK CLUB SUIT + \definesymbol[WhiteSpadeSuit][\USymbChar{38}{100}] % WHITE SPADE SUIT + \definesymbol[BlackHeartSuit][\USymbChar{38}{101}] % BLACK HEART SUIT + \definesymbol[BlackDiamondSuit][\USymbChar{38}{102}] % BLACK DIAMOND SUIT + \definesymbol[WhiteClubSuit][\USymbChar{38}{103}] % WHITE CLUB SUIT + +\stopsymbolset + +\startsymbolset[Unicode Musical] % 0x2600: Requires UnicodeRegular26 + + \definesymbol[QuarterNote][\USymbChar{38}{105}] % QUARTER NOTE + \definesymbol[EighthNote][\USymbChar{38}{106}] % EIGHTH NOTE + \definesymbol[BeamedEighthNotes][\USymbChar{38}{107}] % BEAMED EIGHTH NOTES + \definesymbol[BeamedSixteenthNotes][\USymbChar{38}{108}] % BEAMED SIXTEENTH NOTES + \definesymbol[MusicFlatSign][\USymbChar{38}{109}] % MUSIC FLAT SIGN + \definesymbol[MusicNaturalSign][\USymbChar{38}{110}] % MUSIC NATURAL SIGN + \definesymbol[MusicSharpSign][\USymbChar{38}{111}] % MUSIC SHARP SIGN + +\stopsymbolset + +\startsymbolset[Unicode Recycling] % 0x2600: Requires UnicodeRegular26 + + \definesymbol[UniversalRecycling][\USymbChar{38}{114}] % [Unassigned U+2672] + \definesymbol[Type1Plastics][\USymbChar{38}{115}] % [Unassigned U+2673] + \definesymbol[Type2Plastics][\USymbChar{38}{116}] % [Unassigned U+2674] + \definesymbol[Type3Plastics][\USymbChar{38}{117}] % [Unassigned U+2675] + \definesymbol[Type4Plastics][\USymbChar{38}{118}] % [Unassigned U+2676] + \definesymbol[Type5Plastics][\USymbChar{38}{119}] % [Unassigned U+2677] + \definesymbol[Type6Plastics][\USymbChar{38}{120}] % [Unassigned U+2678] + \definesymbol[Type7Plastics][\USymbChar{38}{121}] % [Unassigned U+2679] + \definesymbol[GenericMaterials][\USymbChar{38}{122}] % [Unassigned U+267A] + \definesymbol[BlackUniversalRecycling][\USymbChar{38}{123}] % [Unassigned U+267B] + \definesymbol[RecycledPaper][\USymbChar{38}{124}] % [Unassigned U+267C] + \definesymbol[PartiallyRecycledPaper][\USymbChar{38}{125}] % [Unassigned U+267D] + +\stopsymbolset + +\startsymbolset[Unicode Dice] % 0x2600: Requires UnicodeRegular26 + + \definesymbol[DieFace1][\USymbChar{38}{128}] % [Unassigned U+2680] + \definesymbol[DieFace2][\USymbChar{38}{129}] % [Unassigned U+2681] + \definesymbol[DieFace3][\USymbChar{38}{130}] % [Unassigned U+2682] + \definesymbol[DieFace4][\USymbChar{38}{131}] % [Unassigned U+2683] + \definesymbol[DieFace5][\USymbChar{38}{132}] % [Unassigned U+2684] + \definesymbol[DieFace6][\USymbChar{38}{133}] % [Unassigned U+2685] + +\stopsymbolset + +\startsymbolset[Unicode Go Markers] % 0x2600: Requires UnicodeRegular26 + + \definesymbol[WhiteCircleWithDotRight][\USymbChar{38}{134}] % [Unassigned U+2686] + \definesymbol[WhiteCircleWithTwoDots][\USymbChar{38}{135}] % [Unassigned U+2687] + \definesymbol[BlackCircleWithWhiteDotRight][\USymbChar{38}{136}] % [Unassigned U+2688] + \definesymbol[BlackCircleWithTwoWhiteDots][\USymbChar{38}{137}] % [Unassigned U+2689] + +\stopsymbolset + +\startsymbolset[Unicode Scissors] % 0x2700: Requires UnicodeRegular27 + + \definesymbol[UpperBladeScissors][\USymbCharZapf{39}{1}] % UPPER BLADE SCISSORS + \definesymbol[BlackScissors][\USymbCharZapf{39}{2}] % BLACK SCISSORS + \definesymbol[LowerBladeScissors][\USymbCharZapf{39}{3}] % LOWER BLADE SCISSORS + \definesymbol[WhiteScissors][\USymbCharZapf{39}{4}] % WHITE SCISSORS + +\stopsymbolset + +\startsymbolset[Unicode Dingbats] % 0x2700: Requires UnicodeRegular27 + + \definesymbol[TelephoneLocationSign][\USymbCharZapf{39}{6}] % TELEPHONE LOCATION SIGN + \definesymbol[TapeDrive][\USymbCharZapf{39}{7}] % TAPE DRIVE + \definesymbol[Airplane][\USymbCharZapf{39}{8}] % AIRPLANE + \definesymbol[Envelope][\USymbCharZapf{39}{9}] % ENVELOPE + \definesymbol[VictoryHand][\USymbCharZapf{39}{12}] % VICTORY HAND + \definesymbol[WritingHand][\USymbCharZapf{39}{13}] % WRITING HAND + \definesymbol[LowerRightPencil][\USymbCharZapf{39}{14}] % LOWER RIGHT PENCIL + \definesymbol[Pencil][\USymbCharZapf{39}{15}] % PENCIL + \definesymbol[UpperRightPencil][\USymbCharZapf{39}{16}] % UPPER RIGHT PENCIL + \definesymbol[WhiteNib][\USymbCharZapf{39}{17}] % WHITE NIB + \definesymbol[BlackNib][\USymbCharZapf{39}{18}] % BLACK NIB + \definesymbol[BlackDiamondMinusWhiteX][\USymbCharZapf{39}{86}] % BLACK DIAMOND MINUS WHITE X + +\stopsymbolset + +\startsymbolset[Unicode Checks and Xs] % 0x2700: Requires UnicodeRegular27 + + \definesymbol[CheckMark][\USymbCharZapf{39}{19}] % CHECK MARK + \definesymbol[HeavyCheckMark][\USymbCharZapf{39}{20}] % HEAVY CHECK MARK + \definesymbol[MultiplicationX][\USymbCharZapf{39}{21}] % MULTIPLICATION X + \definesymbol[HeavyMultiplicationX][\USymbCharZapf{39}{22}] % HEAVY MULTIPLICATION X + \definesymbol[BallotX][\USymbCharZapf{39}{23}] % BALLOT X + \definesymbol[HeavyBallotX][\USymbCharZapf{39}{24}] % HEAVY BALLOT X + +\stopsymbolset + +\startsymbolset[Unicode Stars] % 0x2700: Requires UnicodeRegular27 + + \definesymbol[FourTeardropSpokedAsterisk][\USymbCharZapf{39}{34}] % FOUR TEARDROP-SPOKED ASTERISK + \definesymbol[FourBalloonSpokedAsterisk][\USymbCharZapf{39}{35}] % FOUR BALLOON-SPOKED ASTERISK + \definesymbol[HeavyFourBalloonSpokedAsterisk][\USymbCharZapf{39}{36}] % HEAVY FOUR BALLOON-SPOKED ASTERISK + \definesymbol[FourClubSpokedAsterisk][\USymbCharZapf{39}{37}] % FOUR CLUB-SPOKED ASTERISK + \definesymbol[BlackFourPointedStar][\USymbCharZapf{39}{38}] % BLACK FOUR POINTED STAR + \definesymbol[WhiteFourPointedStar][\USymbCharZapf{39}{39}] % WHITE FOUR POINTED STAR + \definesymbol[StressOutlinedWhiteStar][\USymbCharZapf{39}{41}] % STRESS OUTLINED WHITE STAR + \definesymbol[CircledWhiteStar][\USymbCharZapf{39}{42}] % CIRCLED WHITE STAR + \definesymbol[OpenCentreBlackStar][\USymbCharZapf{39}{43}] % OPEN CENTRE BLACK STAR + \definesymbol[BlackCentreWhiteStar][\USymbCharZapf{39}{44}] % BLACK CENTRE WHITE STAR + \definesymbol[OutlinedBlackStar][\USymbCharZapf{39}{45}] % OUTLINED BLACK STAR + \definesymbol[HeavyOutlinedBlackStar][\USymbCharZapf{39}{46}] % HEAVY OUTLINED BLACK STAR + \definesymbol[PinwheelStar][\USymbCharZapf{39}{47}] % PINWHEEL STAR + \definesymbol[ShadowedWhiteStar][\USymbCharZapf{39}{48}] % SHADOWED WHITE STAR + \definesymbol[HeavyAsterisk][\USymbCharZapf{39}{49}] % HEAVY ASTERISK + \definesymbol[OpenCentreAsterisk][\USymbCharZapf{39}{50}] % OPEN CENTRE ASTERISK + \definesymbol[EightSpokedAsterisk][\USymbCharZapf{39}{51}] % EIGHT SPOKED ASTERISK + \definesymbol[EightPointedBlackStar][\USymbCharZapf{39}{52}] % EIGHT POINTED BLACK STAR + \definesymbol[EightPointedPinwheelStar][\USymbCharZapf{39}{53}] % EIGHT POINTED PINWHEEL STAR + \definesymbol[SixPointedBlackStar][\USymbCharZapf{39}{54}] % SIX POINTED BLACK STAR + \definesymbol[EightPointedRectilinearBlackStar][\USymbCharZapf{39}{55}] % EIGHT POINTED RECTILINEAR BLACK STAR + \definesymbol[HeavyEightPointedRectilinearBlackStar][\USymbCharZapf{39}{56}] % HEAVY EIGHT POINTED RECTILINEAR BLACK STAR + \definesymbol[TwelvePointedBlackStar][\USymbCharZapf{39}{57}] % TWELVE POINTED BLACK STAR + \definesymbol[SixteenPointedAsterisk][\USymbCharZapf{39}{58}] % SIXTEEN POINTED ASTERISK + \definesymbol[TeardropSpokedAsterisk][\USymbCharZapf{39}{59}] % TEARDROP-SPOKED ASTERISK + \definesymbol[OpenCentreTeardropSpokedAsterisk][\USymbCharZapf{39}{60}] % OPEN CENTRE TEARDROP-SPOKED ASTERISK + \definesymbol[HeavyTeardropSpokedAsterisk][\USymbCharZapf{39}{61}] % HEAVY TEARDROP-SPOKED ASTERISK + \definesymbol[SixPetalledBlackAndWhiteFlorette][\USymbCharZapf{39}{62}] % SIX PETALLED BLACK AND WHITE FLORETTE + \definesymbol[BlackFlorette][\USymbCharZapf{39}{63}] % BLACK FLORETTE + \definesymbol[WhiteFlorette][\USymbCharZapf{39}{64}] % WHITE FLORETTE + \definesymbol[EightPetalledOutlinedBlackFlorette][\USymbCharZapf{39}{65}] % EIGHT PETALLED OUTLINED BLACK FLORETTE + \definesymbol[CircledOpenCentreEightPointedStar][\USymbCharZapf{39}{66}] % CIRCLED OPEN CENTRE EIGHT POINTED STAR + \definesymbol[HeavyTeardropSpokedPinwheelAsterisk][\USymbCharZapf{39}{67}] % HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK + \definesymbol[Sparkle][\USymbCharZapf{39}{71}] % SPARKLE + \definesymbol[HeavySparkle][\USymbCharZapf{39}{72}] % HEAVY SPARKLE + \definesymbol[Balloon-spokedAsterisk][\USymbCharZapf{39}{73}] % BALLOON-SPOKED ASTERISK + \definesymbol[EightTeardrop-spokedPropellerAsterisk][\USymbCharZapf{39}{74}] % EIGHT TEARDROP-SPOKED PROPELLER ASTERISK + \definesymbol[HeavyEightTeardrop-spokedPropellerAsterisk][\USymbCharZapf{39}{75}] % HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK + +\stopsymbolset + +\startsymbolset[Unicode Snowflakes] % 0x2700: Requires UnicodeRegular27 + + \definesymbol[Snowflake][\USymbCharZapf{39}{68}] % SNOWFLAKE + \definesymbol[TightTrifoliateSnowflake][\USymbCharZapf{39}{69}] % TIGHT TRIFOLIATE SNOWFLAKE + \definesymbol[HeavyChevronSnowflake][\USymbCharZapf{39}{70}] % HEAVY CHEVRON SNOWFLAKE + +\stopsymbolset + +\startsymbolset[Unicode Shadowed Shapes] % 0x2700: Requires UnicodeRegular27 + + \definesymbol[ShadowedWhiteCircle][\USymbCharZapf{39}{77}] % SHADOWED WHITE CIRCLE + \definesymbol[LowerRightDrop-shadowedWhiteSquare][\USymbCharZapf{39}{79}] % LOWER RIGHT DROP-SHADOWED WHITE SQUARE + \definesymbol[UpperRightDrop-shadowedWhiteSquare][\USymbCharZapf{39}{80}] % UPPER RIGHT DROP-SHADOWED WHITE SQUARE + \definesymbol[LowerRightShadowedWhiteSquare][\USymbCharZapf{39}{81}] % LOWER RIGHT SHADOWED WHITE SQUARE + \definesymbol[UpperRightShadowedWhiteSquare][\USymbCharZapf{39}{82}] % UPPER RIGHT SHADOWED WHITE SQUARE + +\stopsymbolset + +\startsymbolset[Unicode Bars] % 0x2700: Requires UnicodeRegular27 + + \definesymbol[LightVerticalBar][\USymbCharZapf{39}{88}] % LIGHT VERTICAL BAR + \definesymbol[MediumVerticalBar][\USymbCharZapf{39}{89}] % MEDIUM VERTICAL BAR + \definesymbol[HeavyVerticalBar][\USymbCharZapf{39}{90}] % HEAVY VERTICAL BAR + +\stopsymbolset + +\startsymbolset[Unicode Dingbat Punctuation] % 0x2700: Requires UnicodeRegular27 + + \definesymbol[HeavySingleTurnedCommaQuotationMark][\USymbCharZapf{39}{91}] % HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT + \definesymbol[HeavySingleCommaQuotationMark][\USymbCharZapf{39}{92}] % HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT + \definesymbol[HeavyDoubleTurnedCommaQuotationMark][\USymbCharZapf{39}{93}] % HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT + \definesymbol[HeavyDoubleCommaQuotationMark][\USymbCharZapf{39}{94}] % HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT + \definesymbol[CurvedStemParagraphSign][\USymbCharZapf{39}{97}] % CURVED STEM PARAGRAPH SIGN ORNAMENT + \definesymbol[HeavyExclamationMark][\USymbCharZapf{39}{98}] % HEAVY EXCLAMATION MARK ORNAMENT + \definesymbol[HeavyHeartExclamationMark][\USymbCharZapf{39}{99}] % HEAVY HEART EXCLAMATION MARK ORNAMENT + +\stopsymbolset + +\startsymbolset[Unicode Hearts] % 0x2700: Requires UnicodeRegular27 + + \definesymbol[HeavyBlackHeart][\USymbCharZapf{39}{100}] % HEAVY BLACK HEART + \definesymbol[RotatedHeavyBlackHeartBullet][\USymbCharZapf{39}{101}] % ROTATED HEAVY BLACK HEART BULLET + \definesymbol[FloralHeart][\USymbCharZapf{39}{102}] % FLORAL HEART + \definesymbol[RotatedFloralHeartBullet][\USymbCharZapf{39}{103}] % ROTATED FLORAL HEART BULLET + +\stopsymbolset + +\startsymbolset[Unicode Negative Circled Digits] % 0x2700: Requires UnicodeRegular27 + + \definesymbol[CircledOne][\USymbCharZapf{39}{118}] % DINGBAT NEGATIVE CIRCLED DIGIT ONE + \definesymbol[CircledTwo][\USymbCharZapf{39}{119}] % DINGBAT NEGATIVE CIRCLED DIGIT TWO + \definesymbol[CircledThree][\USymbCharZapf{39}{120}] % DINGBAT NEGATIVE CIRCLED DIGIT THREE + \definesymbol[CircledFour][\USymbCharZapf{39}{121}] % DINGBAT NEGATIVE CIRCLED DIGIT FOUR + \definesymbol[CircledFive][\USymbCharZapf{39}{122}] % DINGBAT NEGATIVE CIRCLED DIGIT FIVE + \definesymbol[CircledSix][\USymbCharZapf{39}{123}] % DINGBAT NEGATIVE CIRCLED DIGIT SIX + \definesymbol[CircledSeven][\USymbCharZapf{39}{124}] % DINGBAT NEGATIVE CIRCLED DIGIT SEVEN + \definesymbol[CircledEight][\USymbCharZapf{39}{125}] % DINGBAT NEGATIVE CIRCLED DIGIT EIGHT + \definesymbol[CircledNine][\USymbCharZapf{39}{126}] % DINGBAT NEGATIVE CIRCLED DIGIT NINE + \definesymbol[CircledTen][\USymbCharZapf{39}{127}] % DINGBAT NEGATIVE CIRCLED NUMBER TEN + +\stopsymbolset + +\startsymbolset[Unicode Circled Sans-serif Digits] % 0x2700: Requires UnicodeRegular27 + + \definesymbol[CircledOne][\USymbCharZapf{39}{128}] % DINGBAT CIRCLED SANS-SERIF DIGIT ONE + \definesymbol[CircledTwo][\USymbCharZapf{39}{129}] % DINGBAT CIRCLED SANS-SERIF DIGIT TWO + \definesymbol[CircledThree][\USymbCharZapf{39}{130}] % DINGBAT CIRCLED SANS-SERIF DIGIT THREE + \definesymbol[CircledFour][\USymbCharZapf{39}{131}] % DINGBAT CIRCLED SANS-SERIF DIGIT FOUR + \definesymbol[CircledFive][\USymbCharZapf{39}{132}] % DINGBAT CIRCLED SANS-SERIF DIGIT FIVE + \definesymbol[CircledSix][\USymbCharZapf{39}{133}] % DINGBAT CIRCLED SANS-SERIF DIGIT SIX + \definesymbol[CircledSeven][\USymbCharZapf{39}{134}] % DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN + \definesymbol[CircledEight][\USymbCharZapf{39}{135}] % DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT + \definesymbol[CircledNine][\USymbCharZapf{39}{136}] % DINGBAT CIRCLED SANS-SERIF DIGIT NINE + \definesymbol[CircledTen][\USymbCharZapf{39}{137}] % DINGBAT CIRCLED SANS-SERIF NUMBER TEN + +\stopsymbolset + +\startsymbolset[Unicode Negative Circled Sans-serif Digits] % 0x2700: Requires UnicodeRegular27 + + \definesymbol[CircledOne][\USymbCharZapf{39}{138}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE + \definesymbol[CircledTwo][\USymbCharZapf{39}{139}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO + \definesymbol[CircledThree][\USymbCharZapf{39}{140}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE + \definesymbol[CircledFour][\USymbCharZapf{39}{141}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR + \definesymbol[CircledFive][\USymbCharZapf{39}{142}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE + \definesymbol[CircledSix][\USymbCharZapf{39}{143}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX + \definesymbol[CircledSeven][\USymbCharZapf{39}{144}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN + \definesymbol[CircledEight][\USymbCharZapf{39}{145}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT + \definesymbol[CircledNine][\USymbCharZapf{39}{146}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE + \definesymbol[CircledTen][\USymbCharZapf{39}{147}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN + +\stopsymbolset + +\startsymbolset[Unicode Dingbat Arrows] % 0x2700: Requires UnicodeRegular27 + + \definesymbol[HeavyWideHeadedRightwardsArrow][\USymbCharZapf{39}{148}] % HEAVY WIDE-HEADED RIGHTWARDS ARROW + \definesymbol[HeavySouthEastArrow][\USymbCharZapf{39}{152}] % HEAVY SOUTH EAST ARROW + \definesymbol[HeavyRightwardsArrow][\USymbCharZapf{39}{153}] % HEAVY RIGHTWARDS ARROW + \definesymbol[HeavyNorthEastArrow][\USymbCharZapf{39}{154}] % HEAVY NORTH EAST ARROW + \definesymbol[DraftingPointRightwardsArrow][\USymbCharZapf{39}{155}] % DRAFTING POINT RIGHTWARDS ARROW + \definesymbol[HeavyRoundTippedRightwardsArrow][\USymbCharZapf{39}{156}] % HEAVY ROUND-TIPPED RIGHTWARDS ARROW + \definesymbol[TriangleHeadedRightwardsArrow][\USymbCharZapf{39}{157}] % TRIANGLE-HEADED RIGHTWARDS ARROW + \definesymbol[HeavyTriangleHeadedRightwardsArrow][\USymbCharZapf{39}{158}] % HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW + \definesymbol[DashedTriangleHeadedRightwardsArrow][\USymbCharZapf{39}{159}] % DASHED TRIANGLE-HEADED RIGHTWARDS ARROW + \definesymbol[HeavyDashedTriangleHeadedRightwardsArrow][\USymbCharZapf{39}{160}] % HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW + \definesymbol[BlackRightwardsArrow][\USymbCharZapf{39}{161}] % BLACK RIGHTWARDS ARROW + \definesymbol[3DTopLightedRightwardsArrowhead][\USymbCharZapf{39}{162}] % THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD + \definesymbol[3DBottomLightedRightwardsArrowhead][\USymbCharZapf{39}{163}] % THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD + \definesymbol[BlackRightwardsArrowhead][\USymbCharZapf{39}{164}] % BLACK RIGHTWARDS ARROWHEAD + \definesymbol[HeavyBlackCurvedDownwardsAndRightwardsArrow][\USymbCharZapf{39}{165}] % HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW + \definesymbol[HeavyBlackCurvedUpwardsAndRightwardsArrow][\USymbCharZapf{39}{166}] % HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW + \definesymbol[SquatBlackRightwardsArrow][\USymbCharZapf{39}{167}] % SQUAT BLACK RIGHTWARDS ARROW + \definesymbol[HeavyConcavePointedBlackRightwardsArrow][\USymbCharZapf{39}{168}] % HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW + \definesymbol[CircledHeavyWhiteRightwardsArrow][\USymbCharZapf{39}{178}] % CIRCLED HEAVY WHITE RIGHTWARDS ARROW + \definesymbol[OpenOutlinedRightwardsArrow][\USymbCharZapf{39}{190}] % OPEN-OUTLINED RIGHTWARDS ARROW + +\stopsymbolset + +\startsymbolset[Unicode Shadowed Arrows] % 0x2700: Requires UnicodeRegular27 + + \definesymbol[RightShadedWhiteRightwardsArrow][\USymbCharZapf{39}{169}] % RIGHT-SHADED WHITE RIGHTWARDS ARROW + \definesymbol[LeftShadedWhiteRightwardsArrow][\USymbCharZapf{39}{170}] % LEFT-SHADED WHITE RIGHTWARDS ARROW + \definesymbol[BackTiltedShadowedWhiteRightwardsArrow][\USymbCharZapf{39}{171}] % BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW + \definesymbol[FrontTiltedShadowedWhiteRightwardsArrow][\USymbCharZapf{39}{172}] % FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW + \definesymbol[HeavyLowerRightShadowedWhiteRightwardsArrow][\USymbCharZapf{39}{173}] % HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW + \definesymbol[HeavyUpperRightShadowedWhiteRightwardsArrow][\USymbCharZapf{39}{174}] % HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW + \definesymbol[NotchedLowerRightShadowedWhiteRightwardsArrow][\USymbCharZapf{39}{175}] % NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW + \definesymbol[NotchedUpperRightShadowedWhiteRightwardsArrow][\USymbCharZapf{39}{177}] % NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW + +\stopsymbolset + +\startsymbolset[Unicode Tailed Arrows] % 0x2700: Requires UnicodeRegular27 + + \definesymbol[WhiteFeatheredRightwardsArrow][\USymbCharZapf{39}{179}] % WHITE-FEATHERED RIGHTWARDS ARROW + \definesymbol[BlackFeatheredSouthEastArrow][\USymbCharZapf{39}{180}] % BLACK-FEATHERED SOUTH EAST ARROW + \definesymbol[BlackFeatheredRightwardsArrow][\USymbCharZapf{39}{181}] % BLACK-FEATHERED RIGHTWARDS ARROW + \definesymbol[BlackFeatheredNorthEastArrow][\USymbCharZapf{39}{182}] % BLACK-FEATHERED NORTH EAST ARROW + \definesymbol[HeavyBlack-featheredSouthEastArrow][\USymbCharZapf{39}{183}] % HEAVY BLACK-FEATHERED SOUTH EAST ARROW + \definesymbol[HeavyBlackFeatheredRightwardsArrow][\USymbCharZapf{39}{184}] % HEAVY BLACK-FEATHERED RIGHTWARDS ARROW + \definesymbol[HeavyBlackFeatheredNorthEastArrow][\USymbCharZapf{39}{185}] % HEAVY BLACK-FEATHERED NORTH EAST ARROW + \definesymbol[TeardropBarbedRightwardsArrow][\USymbCharZapf{39}{186}] % TEARDROP-BARBED RIGHTWARDS ARROW + \definesymbol[HeavyTeardropShankedRightwardsArrow][\USymbCharZapf{39}{187}] % HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW + \definesymbol[WedgeTailedRightwardsArrow][\USymbCharZapf{39}{188}] % WEDGE-TAILED RIGHTWARDS ARROW + \definesymbol[HeavyWedgeTailedRightwardsArrow][\USymbCharZapf{39}{189}] % HEAVY WEDGE-TAILED RIGHTWARDS ARROW + +\stopsymbolset + +\endinput diff --git a/tex/context/base/syst-etx.tex b/tex/context/base/syst-etx.tex index 80a24b250..bef56cb69 100644 --- a/tex/context/base/syst-etx.tex +++ b/tex/context/base/syst-etx.tex @@ -258,15 +258,13 @@ \beginETEX \ifcsname -\def\begcsname#1\endcsname - {\ifcsname#1\endcsname\csname#1\endcsname\fi} + \def\begcsname#1\endcsname{\ifcsname#1\endcsname\csname#1\endcsname\fi} \endETEX \beginTEX -\def\begcsname#1\endcsname - {\csname#1\endcsname} + \def\begcsname#1\endcsname{\csname#1\endcsname} \endTEX diff --git a/tex/context/base/syst-prm.tex b/tex/context/base/syst-prm.tex index bb34cb4d8..3214a5bb2 100644 --- a/tex/context/base/syst-prm.tex +++ b/tex/context/base/syst-prm.tex @@ -2,27 +2,27 @@ %D [ file=syst-prm, %D version=1999.03.17, %D title=\CONTEXT\ System Macros, -%D subtitle=Primitive Behavior, +%D subtitle=Primitive Behavior, %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. +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. -\unprotect +\unprotect -%D Saved primitives are preceded by \type {\normal}, as in: +%D Saved primitives are preceded by \type {\normal}, as in: \let\normalfmtversion\fmtversion -%D When applicable, we also load the \ETEX\ source and -%D definition files. +%D When applicable, we also load the \ETEX\ source and +%D definition files. -\bgroup \obeylines +\bgroup \obeylines -\ifx\eTeXversion\undefined +\ifx\eTeXversion\undefined \long\gdef\beginETEX#1\endETEX% {} @@ -30,7 +30,7 @@ \gdef\beginTEX% {\bgroup\obeylines\dobeginTEX} - \gdef\dobeginTEX#1 + \gdef\dobeginTEX#1 {\egroup} \global\let\endTEX\relax @@ -40,64 +40,92 @@ \long\gdef\beginTEX#1\endTEX% {} - \gdef\beginETEX% + \gdef\beginETEX% {\bgroup\obeylines\dobeginETEX} - \gdef\dobeginETEX#1 + \gdef\dobeginETEX#1 {\egroup\immediate\write16% {system (E-TEX) : [line \the\inputlineno] \detokenize{#1}}} \global\let\endETEX\relax -\fi +\fi -\ifx\OmegaVersion\undefined +\ifx\OmegaVersion\undefined \long\gdef\beginOMEGA#1\endOMEGA% {} \else - \gdef\beginOMEGA% + \gdef\beginOMEGA% {\bgroup\obeylines\dobeginOMEGA} - \gdef\dobeginOMEGA#1 - {\egroup\immediate\write16% - {system (OMEGA) : [line \the\inputlineno] \string#1}} + \ifx\detokenize\undefined + + \gdef\dobeginOMEGA#1 + {\egroup\immediate\write16% + {system (OMEGA) : [line \the\inputlineno] \string#1 }} % we assume an argument + + \else + + \gdef\dobeginOMEGA#1 + {\egroup\immediate\write16% + {system (OMEGA) : [line \the\inputlineno] \detokenize{#1}}} % we assume aleph + + \fi \global\let\endOMEGA\relax \fi +\ifx\XeTeXversion\undefined + + \long\gdef\beginXETEX#1\endXETEX% + {} + +\else + + \gdef\beginXETEX% + {\bgroup\obeylines\dobeginXETEX} + + \gdef\dobeginXETEX#1 + {\egroup\immediate\write16% + {system (XETEX) : [line \the\inputlineno] \detokenize{#1}}} + + \global\let\endXETEX\relax + +\fi + \egroup -%D Let's get rid of this one: +%D Let's get rid of this one: -\def\wlog#1{} +\def\wlog#1{} %D Just for tracing purposes we set: \tracingstats=1 -%D We don't like outer commands, and we always want access -%D to the original \type {\input} primitive. +%D We don't like outer commands, and we always want access +%D to the original \type {\input} primitive. \let\normalouter = \outer \let\outer\relax -\let\normalinput = \input +\let\normalinput = \input -%D We need to make sure that we start up in \DVI\ mode, so, -%D after testing for running \PDFTEX, we default to \DVI. +%D We need to make sure that we start up in \DVI\ mode, so, +%D after testing for running \PDFTEX, we default to \DVI. \ifx\pdftexversion\undefined \newcount\pdfoutput \fi \pdfoutput=0 -%D To circumvent dependencies, we can postpone certain -%D initializations to dumping time, by appending them to the -%D \type {\everydump} token register. +%D To circumvent dependencies, we can postpone certain +%D initializations to dumping time, by appending them to the +%D \type {\everydump} token register. -\newtoks \everydump +\newtoks \everydump -\let\normaldump \dump +\let\normaldump \dump \def\dump{\the\everydump\normaldump} -\protect \endinput +\protect \endinput diff --git a/tex/context/base/syst-xtx.tex b/tex/context/base/syst-xtx.tex new file mode 100644 index 000000000..1593e5eb0 --- /dev/null +++ b/tex/context/base/syst-xtx.tex @@ -0,0 +1,23 @@ +%D \module +%D [ file=syst-xtx, +%D version=2004.09.11, +%D title=\CONTEXT\ System Macros, +%D subtitle=\XETEX\ specifics, +%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. + +\ifx\XeTeXversion\undefined \endinput \fi + +\unprotect + +%D For the moment, the only thing needed is to load are the +%D mappings from lower to uppercase characters. + +\input xplain.tex + +\protect \endinput diff --git a/tex/context/base/type-akb.tex b/tex/context/base/type-akb.tex index 196b13be5..dd02c157b 100644 --- a/tex/context/base/type-akb.tex +++ b/tex/context/base/type-akb.tex @@ -5,7 +5,7 @@ %D subtitle=Adobe's Famous Gang of Fonts, %D author=Patrick Gundlach, %D date=\currentdate, -%D copyright={PRAGMA / Hans Hagen \& Ton Otten}] +%D copyright={Patrick Gundlach / PRAGMA}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for diff --git a/tex/context/base/type-exa.tex b/tex/context/base/type-exa.tex index b9dfd0049..222faa0d7 100644 --- a/tex/context/base/type-exa.tex +++ b/tex/context/base/type-exa.tex @@ -31,7 +31,7 @@ \stoptypescript -\starttypescript [postscript] [texnansi,ec,8r] +\starttypescript [postscript] [texnansi,ec,8r,uc] \definetypeface [postscript] [rm] [serif] [times] [default] [encoding=\typescripttwo] \definetypeface [postscript] [mm] [math] [times] [default] @@ -40,7 +40,7 @@ \stoptypescript -\starttypescript [times] [texnansi,ec,8r] +\starttypescript [times] [texnansi,ec,8r,uc] \definetypeface [times] [rm] [serif] [times] [default] [encoding=\typescripttwo] \definetypeface [times] [ss] [sans] [helvetica] [default] [rscale=.9,encoding=\typescripttwo] @@ -51,7 +51,7 @@ \stoptypescript -\starttypescript [palatino] [texnansi,ec,8r] +\starttypescript [palatino] [texnansi,ec,8r,uc] \definetypeface [palatino] [rm] [serif] [palatino] [default] [encoding=\typescripttwo] \definetypeface [palatino] [mm] [math] [palatino] [default] [encoding=default] @@ -81,17 +81,17 @@ % \stoptypescript -\starttypescript [lucida,lucidabfm] [texnansi,ec,8r] +\starttypescript [lucida,lucidabfm] [texnansi,ec,8r,uc] \definetypeface [lucida] [rm] [serif] [lucida] [default] [encoding=\typescripttwo] \definetypeface [lucida] [ss] [sans] [lucida] [default] [encoding=\typescripttwo] \definetypeface [lucida] [tt] [mono] [lucida] [default] [encoding=\typescripttwo] \definetypeface [lucida] [hw] [handwriting] [lucida] [default] [encoding=\typescripttwo] - %definetypeface [lucida] [cg] [calligraphy] [lucida] [default] [encoding=\typescripttwo] + \definetypeface [lucida] [cg] [calligraphy] [lucida] [default] [encoding=\typescripttwo] \stoptypescript -\starttypescript [lucida] [texnansi,ec,8r] +\starttypescript [lucida] [texnansi,ec,8r,uc] \definetypeface [lucida] [mm] [math] [lucida] [default] [encoding=\typescripttwo] diff --git a/tex/context/base/type-fsf.tex b/tex/context/base/type-fsf.tex index f8a2aff78..264420abf 100644 --- a/tex/context/base/type-fsf.tex +++ b/tex/context/base/type-fsf.tex @@ -98,4 +98,4 @@ \loadmapfile[\typefaceencoding-fontsite-garamond.map] \stoptypescript -\endinput \ No newline at end of file +\endinput diff --git a/tex/context/base/type-ghz.tex b/tex/context/base/type-ghz.tex index ad429aa1d..2b4fe2d76 100644 --- a/tex/context/base/type-ghz.tex +++ b/tex/context/base/type-ghz.tex @@ -133,4 +133,4 @@ \loadmapfile[\typefaceencoding-linotype-palatino.map] \stoptypescript -\endinput \ No newline at end of file +\endinput diff --git a/tex/context/base/type-ini.tex b/tex/context/base/type-ini.tex index b4fc331d3..5466eeaab 100644 --- a/tex/context/base/type-ini.tex +++ b/tex/context/base/type-ini.tex @@ -21,7 +21,9 @@ \let\typescriptfiles\empty \unexpanded\def\usetypescriptfile[#1]% - {\addtocommalist{#1}\typescriptfiles} + {\doifelse{#1}\v!reset + {\let\typescriptfiles\empty} + {\addtocommalist{#1}\typescriptfiles}} \usetypescriptfile[\f!typeprefix syn] % font file synonyms \usetypescriptfile[\f!typeprefix enc] % files and encodings diff --git a/tex/context/base/type-xtx.tex b/tex/context/base/type-xtx.tex new file mode 100644 index 000000000..65266fea1 --- /dev/null +++ b/tex/context/base/type-xtx.tex @@ -0,0 +1,496 @@ +%D \module +%D [ file=type-xtx, +%D version=2004.11.15, % prereleased earlier +%D title=\CONTEXT\ Typescript Macros, +%D subtitle=\XETEX's font treasures, +%D author=Adam T. Lindsay, +%D date=\currentdate, +%D copyright={Adam T. Lindsay / PRAGMA}] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. + +%D Here are some fonts definitions that can get you started with +%D \XETEX (for more details see Adam's MyWay documents). +%D +%D Most typescripts in this file are mostly independent of the other +%D typescript files. Generally, you can speed things up a lot by +%D eliminating all but one of \CONTEXT's typescript files: +%D +%D \starttyping +%D \usetypescriptfiles[reset] % HH: watch out, new feature, since +%D \usetypescriptfiles[type-siz] % I disliked the low level redef. +%D \stoptyping +%D +%D The exceptions are the \quotation {legacy} fonts Times, Palatino, +%D Courier, and Helvetica, which also depend on \type {type-syn}. +%D +%D These following six typescripts call the basic four variants on any +%D given font, given the name of the \quotation {Regular} variant in the +%D name slot. These typescripts default to a Unicode encoding, +%D accepts sizes \quotation {default} and \quotation {dtp}, and are +%D activated with the identifiers \quotation {Xserif}, \quotation {Xsans}, +%D and \quotation {Xmono}. They can have relative scaling within the +%D typeface. Any of the following work: +%D +%D \starttyping +%D \definetypeface[basic][rm][Xserif][Baskerville] +%D \definetypeface[basic][ss][Xsans] [Optima Regular][default][encoding=uc,rscale=.87] +%D \definetypeface[basic][tt][Xmono] [Courier] [default] +%D \stoptyping +%D +%D Activate the typeface with: +%D +%D \starttyping +%D \setupbodyfont[basic] +%D \stoptyping + +\starttypescript[Xserif][all][name] + +\definefontsynonym[Dummy] ['\typescripttwo:mapping=tex-text'] [encoding=uc] +\definefontsynonym[DummyItalic] ['\typescripttwo/I:mapping=tex-text'] [encoding=uc] +\definefontsynonym[DummyBold] ['\typescripttwo/B:mapping=tex-text'] [encoding=uc] +\definefontsynonym[DummyBoldItalic]['\typescripttwo/BI:mapping=tex-text'][encoding=uc] + +\definefontsynonym[Serif] [Dummy] +\definefontsynonym[SerifBold] [DummyBold] +\definefontsynonym[SerifItalic] [DummyItalic] +\definefontsynonym[SerifBoldItalic] [DummyBoldItalic] +\definefontsynonym[SerifSlanted] [DummyItalic] +\definefontsynonym[SerifBoldSlanted][DummyBoldItalic] +\definefontsynonym[SerifCaps] [Dummy] + +\stoptypescript + +\starttypescript[Xsans][all][name] + +\definefontsynonym[DummySans] ['\typescripttwo:mapping=tex-text'] [encoding=uc] +\definefontsynonym[DummySansItalic] ['\typescripttwo/I:mapping=tex-text'] [encoding=uc] +\definefontsynonym[DummySansBold] ['\typescripttwo/B:mapping=tex-text'] [encoding=uc] +\definefontsynonym[DummySansBoldItalic]['\typescripttwo/BI:mapping=tex-text'][encoding=uc] + +\definefontsynonym[Sans] [DummySans] +\definefontsynonym[SansBold] [DummySansBold] +\definefontsynonym[SansItalic] [DummySansItalic] +\definefontsynonym[SansBoldItalic] [DummySansBoldItalic] +\definefontsynonym[SansSlanted] [DummySansItalic] +\definefontsynonym[SansBoldSlanted][DummySansBoldItalic] +\definefontsynonym[SansCaps] [DummySans] + +\stoptypescript + +\starttypescript[Xmono][all][name] + +\definefontsynonym[DummyMono] ['\typescripttwo'] [encoding=uc] +\definefontsynonym[DummyMonoItalic] ['\typescripttwo/I'] [encoding=uc] +\definefontsynonym[DummyMonoBold] ['\typescripttwo/B'] [encoding=uc] +\definefontsynonym[DummyMonoBoldItalic]['\typescripttwo/BI'][encoding=uc] + +\definefontsynonym[Mono] [DummyMono] +\definefontsynonym[MonoBold] [DummyMonoBold] +\definefontsynonym[MonoItalic] [DummyMonoItalic] +\definefontsynonym[MonoBoldItalic] [DummyMonoBoldItalic] +\definefontsynonym[MonoSlanted] [DummyMonoItalic] +\definefontsynonym[MonoBoldSlanted][DummyMonoBoldItalic] +\definefontsynonym[MonoCaps] [DummyMono] + +\stoptypescript + +\starttypescript[Xserif][default][size] + \definebodyfont + [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt] + [rm] [default] +\stoptypescript + +\starttypescript[Xsans][default][size] + \definebodyfont + [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt] + [ss] [default] +\stoptypescript + +\starttypescript [Xmono][default][size] + \definebodyfont + [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt] + [tt] [default] +\stoptypescript + +\starttypescript[Xserif][dtp][size] + \definebodyfont + [5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,13pt,14pt,16pt,18pt,22pt,28pt] + [rm] [default] +\stoptypescript + +\starttypescript[Xsans][dtp][size] + \definebodyfont + [5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,13pt,14pt,16pt,18pt,22pt,28pt] + [ss] [default] +\stoptypescript + +\starttypescript[Xmono][dtp][size] + \definebodyfont + [5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,13pt,14pt,16pt,18pt,22pt,28pt] + [tt] [default] +\stoptypescript + +%D The following are \quotation {legacy} named fonts. Times, Palatino, +%D and Helvetica are familiar to most users of modern \TEX\ +%D systems. These versions are accessed via the Unicode encoding +%D enabled by \XETEX. There is no attempt to match metrics with +%D the actual legacy fonts. These are simply familiar names. + +%D These typescripts, unlike others in this file, depend on those in +%D \type{type-pre}. + +\starttypescript[serif][times][uc] + +\definefontsynonym[Times-Roman] ['Times Roman:mapping=tex-text'] [encoding=uc] +\definefontsynonym[Times-Italic] ['Times Italic:mapping=tex-text'] [encoding=uc] +\definefontsynonym[Times-Bold] ['Times Bold:mapping=tex-text'] [encoding=uc] +\definefontsynonym[Times-BoldItalic]['Times Bold Italic:mapping=tex-text;'][encoding=uc] + +\stoptypescript + +%D Book Antiqua is Mac OS X's Palatino clone. + +\starttypescript[serif][palatino][uc] + +\definefontsynonym[Palatino] ['Book Antiqua:mapping=tex-text'] [encoding=uc] +\definefontsynonym[Palatino-Italic] ['Book Antiqua Italic:mapping=tex-text'] [encoding=uc] +\definefontsynonym[Palatino-Bold] ['Book Antiqua Bold:mapping=tex-text'] [encoding=uc] +\definefontsynonym[Palatino-BoldItalic] ['Book Antiqua Bold Italic:mapping=tex-text'][encoding=uc] + +\definefontsynonym[Palatino-Slanted] [Palatino-Italic] +\definefontsynonym[Palatino-BoldSlanted][Palatino-BoldItalic] +\definefontsynonym[Palatino-Caps] [Palatino] + +\stoptypescript + +%D The default Helvetica doesn't have an oblique variant, so we'll +%D go ahead and name Helvertica Neue here. + +\starttypescript[sans][helvetica][uc] + +\definefontsynonym[Helvetica] ['Helvetica Neue:mapping=tex-text'] [encoding=uc] +\definefontsynonym[Helvetica-Oblique] ['Helvetica Neue Italic:mapping=tex-text'] [encoding=uc] +\definefontsynonym[Helvetica-Bold] ['Helvetica Neue Bold:mapping=tex-text'] [encoding=uc] +\definefontsynonym[Helvetica-BoldOblique]['Helvetica Neue Bold Italic:mapping=tex-text'][encoding=uc] + +\stoptypescript + +%D Courier, as delivered on MacOSX 10.3, doesn't have an oblique +%D variant, either. Unfortunately, none of the default Mono fonts in +%D MacOSX have oblique|/|italic versions! + +\starttypescript[mono][courier][uc] + +\definefontsynonym[Courier] ['Courier:mapping=tex-text'] [encoding=uc] +\definefontsynonym[Courier-Oblique] [Courier] +\definefontsynonym[Courier-Bold] ['Courier Bold:mapping=tex-text'][encoding=uc] +\definefontsynonym[Courier-BoldOblique][Courier-Bold] + +\stoptypescript + +%D The following fonts go beyond the usual four variants that +%D are accessible via the above wildcard typescripts, so they +%D get a more expanded treatment here: + +\starttypescript[serif][hoefler][uc] + +\definefontsynonym[Hoefler] ['Hoefler Text:mapping=tex-text; + Ligatures=Diphthongs'] [encoding=uc] +\definefontsynonym[HoeflerItalic]['Hoefler Text Italic:mapping=tex-text; + Ligatures=Diphthongs'] [encoding=uc] +\definefontsynonym[HoeflerBlack] ['Hoefler Text Black:mapping=tex-text; + Ligatures=Diphthongs'] [encoding=uc] +\definefontsynonym[HoeflerBlackItalic]['Hoefler Text Black Italic:mapping=tex-text; + Ligatures=Diphthongs'] [encoding=uc] +\definefontsynonym[HoeflerSmCap] ['Hoefler Text:mapping=tex-text; + Ligatures=Diphthongs; + Letter Case=Small Caps'][encoding=uc] +\stoptypescript + +\starttypescript[serif][hoefler][name] + +\definefontsynonym[Serif] [Hoefler] +\definefontsynonym[SerifBold] [HoeflerBlack] +\definefontsynonym[SerifItalic] [HoeflerItalic] +\definefontsynonym[SerifBoldItalic] [HoeflerBlackItalic] +\definefontsynonym[SerifSlanted] [HoeflerItalic] +\definefontsynonym[SerifBoldSlanted][HoeflerBlackItalic] +\definefontsynonym[SerifCaps] [HoeflerSmCap] + +\stoptypescript + +\starttypescript[sans][lucidagrande][uc] + +\definefontsynonym[LucidaGrande] ['Lucida Grande:mapping=tex-text'] [encoding=uc] +\definefontsynonym[LucidaGrandeBold]['Lucida Grande Bold:mapping=tex-text'][encoding=uc] + +\stoptypescript + +\starttypescript[sans][lucidagrande][name] + +\definefontsynonym[Sans] [LucidaGrande] +\definefontsynonym[SansBold] [LucidaGrandeBold] +\definefontsynonym[SansItalic] [LucidaGrande] +\definefontsynonym[SansBoldItalic] [LucidaGrandeBold] +\definefontsynonym[SansSlanted] [LucidaGrande] +\definefontsynonym[SansBoldSlanted][LucidaGrandeBold] +\definefontsynonym[SansCaps] [LucidaGrande] + +\stoptypescript + +\starttypescript[sans][optima][uc] +\definefontsynonym[Optima] ['Optima Regular:mapping=tex-text'] [encoding=uc] +\definefontsynonym[OptimaItalic] ['Optima Italic:mapping=tex-text'] [encoding=uc] +\definefontsynonym[OptimaBold] ['Optima Bold:mapping=tex-text'] [encoding=uc] +\definefontsynonym[OptimaBoldItalic]['Optima Bold Italic:mapping=tex-text'][encoding=uc] +\definefontsynonym[OptimaBlack] ['Optima ExtraBlack:mapping=tex-text'] [encoding=uc] +\stoptypescript + +\starttypescript[sans][optima][name] + +\definefontsynonym[Sans] [Optima] +\definefontsynonym[SansBold] [OptimaBold] +\definefontsynonym[SansItalic] [OptimaItalic] +\definefontsynonym[SansBoldItalic] [OptimaBoldItalic] +\definefontsynonym[SansSlanted] [OptimaItalic] +\definefontsynonym[SansBoldSlanted][OptimaBoldItalic] +\definefontsynonym[SansCaps] [Optima] + +\stoptypescript + +\starttypescript[sans][gillsans,gillsanslt][uc] + +\definefontsynonym[GillSans] ['Gill Sans:mapping=tex-text'] [encoding=uc] +\definefontsynonym[GillSansItalic] ['Gill Sans Italic:mapping=tex-text'] [encoding=uc] +\definefontsynonym[GillSansBold] ['Gill Sans Bold:mapping=tex-text'] [encoding=uc] +\definefontsynonym[GillSansBoldItalic] ['Gill Sans Bold Italic:mapping=tex-text'] [encoding=uc] +\definefontsynonym[GillSansLight] ['Gill Sans Light:mapping=tex-text'] [encoding=uc] +\definefontsynonym[GillSansLightItalic]['Gill Sans Light Italic:mapping=tex-text'][encoding=uc] + +\stoptypescript + +\starttypescript[sans][gillsans][name] + +\definefontsynonym[Sans] [GillSans] +\definefontsynonym[SansBold] [GillSansBold] +\definefontsynonym[SansItalic] [GillSansItalic] +\definefontsynonym[SansBoldItalic] [GillSansBoldItalic] +\definefontsynonym[SansSlanted] [GillSansItalic] +\definefontsynonym[SansBoldSlanted][GillSansBoldItalic] +\definefontsynonym[SansCaps] [GillSans] + +\stoptypescript + +\starttypescript[sans][gillsanslt][name] + +\definefontsynonym[Sans] [GillSansLight] +\definefontsynonym[SansBold] [GillSans] +\definefontsynonym[SansItalic] [GillSansLightItalic] +\definefontsynonym[SansBoldItalic] [GillSansItalic] +\definefontsynonym[SansSlanted] [GillSansLightItalic] +\definefontsynonym[SansBoldSlanted][GillSansItalic] +\definefontsynonym[SansCaps] [GillSansLight] + +\stoptypescript + +\starttypescript[serif,handwriting][zapfino][uc] + +\definefontsynonym[ZapfinoOne] ['Zapfino:mapping=tex-text'] [encoding=uc] +\definefontsynonym[ZapfinoTwo] ['Zapfino:mapping=tex-text; + Stylistic Variants=First variant glyph set'] [encoding=uc] +\definefontsynonym[ZapfinoThree]['Zapfino:mapping=tex-text; + Stylistic Variants=Second variant glyph set'][encoding=uc] +\definefontsynonym[ZapfinoFour] ['Zapfino:mapping=tex-text; + Stylistic Variants=Third variant glyph set'] [encoding=uc] +\stoptypescript + +\starttypescript[handwriting][zapfino][name] + +\definefontsynonym[Handwriting][ZapfinoOne] + +\stoptypescript + +\starttypescript[serif][zapfino][name] + +\definefontsynonym[Serif] [ZapfinoOne] +\definefontsynonym[SerifBold] [ZapfinoThree] +\definefontsynonym[SerifItalic] [ZapfinoTwo] +\definefontsynonym[SerifBoldItalic] [ZapfinoTwo] +\definefontsynonym[SerifSlanted] [ZapfinoThree] +\definefontsynonym[SerifBoldSlanted][ZapfinoThree] +\definefontsynonym[SerifCaps] [ZapfinoOne] + +\stoptypescript + +\starttypescript[serif,calligraphy][applechancery][uc] + +\definefontsynonym[AppleChanceryOne] ['Apple Chancery:mapping=tex-text; + Number Case=Old Styles'] [encoding=uc] +\definefontsynonym[AppleChanceryTwo] ['Apple Chancery:mapping=tex-text; + Number Case=Old Styles; + Design Complexity=Elegant Design Level'][encoding=uc] +\definefontsynonym[AppleChanceryThree] ['Apple Chancery:mapping=tex-text; + Number Case=Old Styles; + Design Complexity=Flourishes Set A'] [encoding=uc] +\definefontsynonym[AppleChanceryFour] ['Apple Chancery:mapping=tex-text; + Number Case=Old Styles; + Design Complexity=Flourishes Set B'] [encoding=uc] +\definefontsynonym[AppleChanceryCaps] ['Apple Chancery:mapping=tex-text; + Number Case=Old Styles; + Letter Case=Small Caps'] [encoding=uc] +\definefontsynonym[AppleChanceryCapsTwo]['Apple Chancery:mapping=tex-text; + Number Case=Old Styles; + Letter Case=Small Caps; + Design Complexity=Flourishes Set B'] [encoding=uc] +\stoptypescript + +\starttypescript[calligraphy][applechancery][name] + +\definefontsynonym[Calligraphy][AppleChanceryOne] + +\stoptypescript + +\starttypescript[serif][applechancery][name] + +\definefontsynonym[Serif] [AppleChanceryOne] +\definefontsynonym[SerifBold] [AppleChanceryThree] +\definefontsynonym[SerifItalic] [AppleChanceryTwo] +\definefontsynonym[SerifBoldItalic] [AppleChanceryFour] +\definefontsynonym[SerifSlanted] [AppleChanceryThree] +\definefontsynonym[SerifBoldSlanted][AppleChanceryFour] +\definefontsynonym[SerifCaps] [AppleChanceryCaps] + +\stoptypescript + +% MS Office 2004 for Mac has impressive Unicode coverage in +% many of its fonts. + +\starttypescript[serif][timesnewroman][uc] + +\definefontsynonym[MSTimes] ['Times New Roman:mapping=tex-text'] [encoding=uc] +\definefontsynonym[MSTimesItalic] ['Times New Roman Italic:mapping=tex-text'] [encoding=uc] +\definefontsynonym[MSTimesBold] ['Times New Roman Bold:mapping=tex-text'] [encoding=uc] +\definefontsynonym[MSTimesBoldItalic]['Times New Roman Bold Italic:mapping=tex-text'][encoding=uc] + +\stoptypescript + +\starttypescript[serif][timesnewroman][name] + +\definefontsynonym[Serif] [MSTimes] +\definefontsynonym[SerifBold] [MSTimesBold] +\definefontsynonym[SerifItalic] [MSTimesItalic] +\definefontsynonym[SerifBoldItalic] [MSTimesBoldItalic] +\definefontsynonym[SerifSlanted] [MSTimesItalic] +\definefontsynonym[SerifBoldSlanted][MSTimesBoldItalic] +\definefontsynonym[SerifCaps] [MSTimes] + +\stoptypescript + +\starttypescript[sans][arial][uc] + +\definefontsynonym[Arial] ['Arial:mapping=tex-text'] [encoding=uc] +\definefontsynonym[ArialItalic] ['Arial Italic:mapping=tex-text'] [encoding=uc] +\definefontsynonym[ArialBold] ['Arial Bold:mapping=tex-text'] [encoding=uc] +\definefontsynonym[ArialBoldItalic]['Arial Bold Italic:mapping=tex-text'][encoding=uc] + +\stoptypescript + +\starttypescript[sans][arial][name] + +\definefontsynonym[Sans] [Arial] +\definefontsynonym[SansBold] [ArialBold] +\definefontsynonym[SansItalic] [ArialItalic] +\definefontsynonym[SansBoldItalic] [ArialBoldItalic] +\definefontsynonym[SansSlanted] [ArialItalic] +\definefontsynonym[SansBoldSlanted][ArialBoldItalic] +\definefontsynonym[SansCaps] [Arial] + +\stoptypescript + +%D MS Office comes with an installation of the Lucida family in +%D TrueType form. It's nice, except\dots\ no math, no slanted, no caps +%D and some other auxiliary fonts. + +\starttypescript [serif] [lucida] [uc] + + \definefontsynonym [LucidaBright] ['Lucida Bright:mapping=tex-text'] [encoding=uc] + \definefontsynonym [LucidaBright-Demi] ['Lucida Bright Demibold:mapping=tex-text'][encoding=uc] + \definefontsynonym [LucidaBright-DemiItalic] ['Lucida Bright Demibold:mapping=tex-text'][encoding=uc] + \definefontsynonym [LucidaBright-Italic] ['Lucida Bright:mapping=tex-text'] [encoding=uc] + + \definefontsynonym [LucidaBrightSmallcaps] [LucidaBright] + \definefontsynonym [LucidaBrightSmallcaps-Demi][LucidaBright-Demi] + \definefontsynonym [LucidaBright-Oblique] [LucidaBright-Italic] + +\stoptypescript + +\starttypescript [sans] [lucida] [uc] + \definefontsynonym [LucidaSans] ['Lucida Sans Regular:mapping=tex-text'] [encoding=uc] + \definefontsynonym [LucidaSans-Demi] ['Lucida Sans Demibold Roman:mapping=tex-text'] [encoding=uc] + \definefontsynonym [LucidaSans-DemiItalic]['Lucida Sans Demibold Italic:mapping=tex-text'][encoding=uc] + \definefontsynonym [LucidaSans-Italic] ['Lucida Sans Italic:mapping=tex-text'] [encoding=uc] + + \definefontsynonym [LucidaSans-Bold] [LucidaSans-Demi] + \definefontsynonym [LucidaSans-BoldItalic][LucidaSans-DemiItalic] + +\stoptypescript + +\starttypescript [mono] [lucida] [uc] + + \definefontsynonym [LucidaSans-Typewriter] ['Lucida Sans Typewriter Regular'] [encoding=uc] + \definefontsynonym [LucidaSans-TypewriterBold] ['Lucida Sans Typewriter Bold'] [encoding=uc] + \definefontsynonym [LucidaSans-TypewriterBoldOblique]['Lucida Sans Typewriter Bold Oblique'][encoding=uc] + \definefontsynonym [LucidaSans-TypewriterOblique] ['Lucida Sans Typewriter Oblique'] [encoding=uc] + +\stoptypescript + +\starttypescript [calligraphy] [lucida] [uc] + + \definefontsynonym[LucidaCalligraphy-Italic]['Lucida Calligraphy Italic:mapping=tex-text'][encoding=uc] + +\stoptypescript + +% No casual that I know of + +\starttypescript[handwriting][lucida][uc] + + \definefontsynonym[LucidaHandwriting-Italic]['Lucida Handwriting Italic:mapping=tex-text'][encoding=uc] + +\stoptypescript + +\starttypescript[fax][lucida][uc] + + \definefontsynonym[LucidaFax] ['Lucida Fax Regular:mapping=tex-text'] [encoding=uc] + \definefontsynonym[LucidaFax-Demi] ['Lucida Fax Demibold:mapping=tex-text'] [encoding=uc] + \definefontsynonym[LucidaFax-DemiItalic]['Lucida Fax Demibold Italic:mapping=tex-text'][encoding=uc] + \definefontsynonym[LucidaFax-Italic] ['Lucida Fax Italic:mapping=tex-text'] [encoding=uc] + +\stoptypescript + +%D Gentium is from SIL, the fine makers of \XETEX, and it's not only +%D very complete with Roman and Italic Unicode support, but very +%D attractive. + +\starttypescript[serif][gentium][uc] + +\definefontsynonym[Gentium] ['Gentium:mapping=tex-text'] [encoding=uc] +\definefontsynonym[GentiumItalic]['Gentium Italic:mapping=tex-text'][encoding=uc] + +\stoptypescript + +\starttypescript[serif][gentium][name] + +\definefontsynonym[Serif] [Gentium] +\definefontsynonym[SerifBold] [Gentium] +\definefontsynonym[SerifItalic] [GentiumItalic] +\definefontsynonym[SerifBoldItalic] [GentiumItalic] +\definefontsynonym[SerifSlanted] [GentiumItalic] +\definefontsynonym[SerifBoldSlanted][GentiumItalic] +\definefontsynonym[SerifCaps] [Gentium] + +\stoptypescript + +\endinput diff --git a/tex/context/base/unic-001.tex b/tex/context/base/unic-001.tex index 5a7a59fc1..f68ca7ec9 100644 --- a/tex/context/base/unic-001.tex +++ b/tex/context/base/unic-001.tex @@ -13,138 +13,138 @@ \unprotect -\startunicodevector 1 - \ifcase#1\or - \@@unknownchar\or - Abreve\or - abreve\or - Aogonek\or - aogonek\or - Cacute\or - cacute\or - Ccircumflex\or - ccircumflex\or - Cdotaccent\or - cdotaccent\or - Ccaron\or - ccaron\or - Dcaron\or - dcaron\or - Dstroke\or - dstroke\or - Emacron\or - emacron\or - Ebreve\or - ebreve\or - Edotaccent\or - edotaccent\or - Eogonek\or - eogonek\or - Ecaron\or - ecaron\or - Gcircumflex\or - gcircumflex\or - Gbreve\or - gbreve\or - Gdotaccent\or - gdotaccent\or - \@@unknownchar\or % Gcedilla\or - \@@unknownchar\or % gcedilla\or - Hcircumflex\or - hcircumflex\or - Hstroke\or - hstroke\or - Itilde\or - itilde\or - Imacron\or - imacron\or - Ibreve\or - ibreve\or - Iogonek\or - iogonek\or - Idotaccent\or - dotlessi\or - IJligature\or - ijligature\or - Jcircumflex\or - jcircumflex\or - Kcedilla\or - kcedilla\or - \@@unknownchar\or % kra\or - Lacute\or - lacute\or - Lcedilla\or - lcedilla\or - Lcaron\or - lcaron\or - \@@unknownchar\or % Ldotmiddle\or - \@@unknownchar\or % ldotmiddle\or - Lstroke\or - lstroke\or - Nacute\or - nacute\or - Ncedilla\or - ncedilla\or - Ncaron\or - ncaron\or - napostrophe\or - Neng\or - neng\or - Omacron\or - omacron\or - Obreve\or - obreve\or - Ohungarumlaut\or - ohungarumlaut\or - OEligature\or - oeligature\or - Racute\or - racute\or - Rcedilla\or - rcedilla\or - Rcaron\or - rcaron\or - Sacute\or - sacute\or - Scircumflex\or - scircumflex\or - Scedilla\or - scedilla\or - Scaron\or - scaron\or - Tcedilla\or - tcedilla\or - Tcaron\or - tcaron\or - Tstroke\or - tstroke\or - Utilde\or - utilde\or - Umacron\or - umacron\or - Ubreve\or - ubreve\or - Uring\or - uring\or - Uhungarumlaut\or - uhungarumlaut\or - Uogonek\or - uogonek\or - Wcircumflex\or - wcircumflex\or - Ycircumflex\or - ycircumflex\or - Ydiaeresis\or - Zacute\or - zacute\or - Zdotaccent\or - zdotaccent\or - Zcaron\or - zcaron\or - \@@unknownchar\else % slong\else - \@@unknownchar - \fi -\stopunicodevector +% \startunicodevector 1 +% \ifcase#1\or +% \@@unknownchar\or +% Abreve\or +% abreve\or +% Aogonek\or +% aogonek\or +% Cacute\or +% cacute\or +% Ccircumflex\or +% ccircumflex\or +% Cdotaccent\or +% cdotaccent\or +% Ccaron\or +% ccaron\or +% Dcaron\or +% dcaron\or +% Dstroke\or +% dstroke\or +% Emacron\or +% emacron\or +% Ebreve\or +% ebreve\or +% Edotaccent\or +% edotaccent\or +% Eogonek\or +% eogonek\or +% Ecaron\or +% ecaron\or +% Gcircumflex\or +% gcircumflex\or +% Gbreve\or +% gbreve\or +% Gdotaccent\or +% gdotaccent\or +% \@@unknownchar\or % Gcedilla\or +% \@@unknownchar\or % gcedilla\or +% Hcircumflex\or +% hcircumflex\or +% Hstroke\or +% hstroke\or +% Itilde\or +% itilde\or +% Imacron\or +% imacron\or +% Ibreve\or +% ibreve\or +% Iogonek\or +% iogonek\or +% Idotaccent\or +% dotlessi\or +% IJligature\or +% ijligature\or +% Jcircumflex\or +% jcircumflex\or +% Kcedilla\or +% kcedilla\or +% \@@unknownchar\or % kra\or +% Lacute\or +% lacute\or +% Lcedilla\or +% lcedilla\or +% Lcaron\or +% lcaron\or +% \@@unknownchar\or % Ldotmiddle\or +% \@@unknownchar\or % ldotmiddle\or +% Lstroke\or +% lstroke\or +% Nacute\or +% nacute\or +% Ncedilla\or +% ncedilla\or +% Ncaron\or +% ncaron\or +% napostrophe\or +% Neng\or +% neng\or +% Omacron\or +% omacron\or +% Obreve\or +% obreve\or +% Ohungarumlaut\or +% ohungarumlaut\or +% OEligature\or +% oeligature\or +% Racute\or +% racute\or +% Rcedilla\or +% rcedilla\or +% Rcaron\or +% rcaron\or +% Sacute\or +% sacute\or +% Scircumflex\or +% scircumflex\or +% Scedilla\or +% scedilla\or +% Scaron\or +% scaron\or +% Tcedilla\or +% tcedilla\or +% Tcaron\or +% tcaron\or +% Tstroke\or +% tstroke\or +% Utilde\or +% utilde\or +% Umacron\or +% umacron\or +% Ubreve\or +% ubreve\or +% Uring\or +% uring\or +% Uhungarumlaut\or +% uhungarumlaut\or +% Uogonek\or +% uogonek\or +% Wcircumflex\or +% wcircumflex\or +% Ycircumflex\or +% ycircumflex\or +% Ydiaeresis\or +% Zacute\or +% zacute\or +% Zdotaccent\or +% zdotaccent\or +% Zcaron\or +% zcaron\or +% \@@unknownchar\else % slong\else +% \@@unknownchar +% \fi +% \stopunicodevector %D Faster, watch how we avoid zero and \TEX's %D automatically added \type {\relax}. @@ -279,7 +279,26 @@ \zdotaccent \or \Zcaron \or \zcaron \or - \unknownchar \else % \slong \else + \unknownchar \or % 127 \slong \else + \unknownchar \or + \unknownchar \or + \unknownchar \or + \unknownchar \or + \unknownchar \or + \unknownchar \or + \unknownchar \or + \unknownchar \or + \unknownchar \or + \unknownchar \or + \unknownchar \or + \unknownchar \or + \unknownchar \or + \unknownchar \or + \unknownchar \or + \unknownchar \or + \unknownchar \or + \unknownchar \or + \textflorin \or % 146 \unknownchar \fi \stopunicodevector diff --git a/tex/context/base/unic-002.tex b/tex/context/base/unic-002.tex index 40475b297..f8626e6e4 100644 --- a/tex/context/base/unic-002.tex +++ b/tex/context/base/unic-002.tex @@ -13,20 +13,20 @@ \unprotect -\startunicodevector 2 - \ifcase\numexpr(#1-198) - textcircumflex\or - textcaron\else - \ifcase\numexpr(#1-216) - textbreve\or - textdotaccent\or - \@@unknownchar\or - textogonek\or - texttilde\or - texthungarumlaut\else - \@@unknownchar - \fi\fi -\stopunicodevector +% \startunicodevector 2 +% \ifcase\numexpr(#1-198) +% textcircumflex\or +% textcaron\else +% \ifcase\numexpr(#1-216) +% textbreve\or +% textdotaccent\or +% \@@unknownchar\or +% textogonek\or +% texttilde\or +% texthungarumlaut\else +% \@@unknownchar +% \fi\fi +% \stopunicodevector % ugly but faster diff --git a/tex/context/base/unic-032.tex b/tex/context/base/unic-032.tex index f2061823a..2b7366e59 100644 --- a/tex/context/base/unic-032.tex +++ b/tex/context/base/unic-032.tex @@ -13,38 +13,38 @@ \unprotect -\startunicodevector 32 - \ifcase\numexpr(#1-19) - endash\or - emdash\or - \@@unknownchar\or - \@@unknownchar\or - \@@unknownchar\or - quoteleft\or - quoteright\or - quotesinglebase\or - \@@unknownchar\or - quotedblleft\or - quotedblright\or - quotedblbase\or - \@@unknownchar\or - textdag\or - textddag\or - textbullet\or - \@@unknownchar\or - \@@unknownchar\or - \@@unknownchar\or - textellipsis\else - \ifcase\numexpr(#1-48) - perthousand\else - \ifcase\numexpr(#1-57) - \@@unknownchar\or % SINGLE LEFT-POINTING ANGLE QUOTATION MARK - \@@unknownchar\else % SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - \ifcase\numexpr(#1-172) - texteuro\else - \@@unknownchar - \fi\fi\fi\fi -\stopunicodevector +% \startunicodevector 32 +% \ifcase\numexpr(#1-19) +% endash\or +% emdash\or +% \@@unknownchar\or +% \@@unknownchar\or +% \@@unknownchar\or +% quoteleft\or +% quoteright\or +% quotesinglebase\or +% \@@unknownchar\or +% quotedblleft\or +% quotedblright\or +% quotedblbase\or +% \@@unknownchar\or +% textdag\or +% textddag\or +% textbullet\or +% \@@unknownchar\or +% \@@unknownchar\or +% \@@unknownchar\or +% textellipsis\else +% \ifcase\numexpr(#1-48) +% perthousand\else +% \ifcase\numexpr(#1-57) +% \@@unknownchar\or % SINGLE LEFT-POINTING ANGLE QUOTATION MARK +% \@@unknownchar\else % SINGLE RIGHT-POINTING ANGLE QUOTATION MARK +% \ifcase\numexpr(#1-172) +% texteuro\else +% \@@unknownchar +% \fi\fi\fi\fi +% \stopunicodevector %D More efficient: @@ -147,57 +147,57 @@ \startunicodevector 32 \ifcase\numexpr(#1) - \strippedcsname \enspace \or % U+2000 EN QUAD - \strippedcsname \emspace \or % U+2001 EM QUAD - \strippedcsname \enspace \or % U+2002 EN SPACE - \strippedcsname \emspace \or % U+2003 EM SPACE - \strippedcsname \unknownchar \or % U+2004 THREE-PER-EM SPACE - \strippedcsname \unknownchar \or % U+2005 FOUR-PER-EM SPACE - \strippedcsname \unknownchar \or % U+2006 SIX-PER-EM SPACE - \strippedcsname \unknownchar \or % U+2007 FIGURE SPACE - \strippedcsname \unknownchar \or % U+2008 PUNCTUATION SPACE - \strippedcsname \unknownchar \or % U+2009 THIN SPACE - \strippedcsname \unknownchar \or % U+200A HAIR SPACE - \strippedcsname \unknownchar \or % U+200B ZERO WIDTH SPACE - \strippedcsname \unknownchar \or % U+200C ZERO WIDTH NON-JOINER - \strippedcsname \unknownchar \or % U+200D ZERO WIDTH JOINER - \strippedcsname \unknownchar \or % U+200E LEFT-TO-RIGHT MARK - \strippedcsname \unknownchar \or % U+200F RIGHT-TO-LEFT MARK - \strippedcsname \unknownchar \or % U+2010 HYPHEN - \strippedcsname \unknownchar \or % U+2011 NON-BREAKING HYPHEN - \strippedcsname \unknownchar \or % U+2012 FIGURE DASH + \strippedcsname \enspace \or % U+2000 EN QUAD + \strippedcsname \emspace \or % U+2001 EM QUAD + \strippedcsname \enspace \or % U+2002 EN SPACE + \strippedcsname \emspace \or % U+2003 EM SPACE + \strippedcsname \unknownchar \or % U+2004 THREE-PER-EM SPACE + \strippedcsname \unknownchar \or % U+2005 FOUR-PER-EM SPACE + \strippedcsname \unknownchar \or % U+2006 SIX-PER-EM SPACE + \strippedcsname \unknownchar \or % U+2007 FIGURE SPACE + \strippedcsname \unknownchar \or % U+2008 PUNCTUATION SPACE + \strippedcsname \unknownchar \or % U+2009 THIN SPACE + \strippedcsname \unknownchar \or % U+200A HAIR SPACE + \strippedcsname \unknownchar \or % U+200B ZERO WIDTH SPACE + \strippedcsname \unknownchar \or % U+200C ZERO WIDTH NON-JOINER + \strippedcsname \unknownchar \or % U+200D ZERO WIDTH JOINER + \strippedcsname \unknownchar \or % U+200E LEFT-TO-RIGHT MARK + \strippedcsname \unknownchar \or % U+200F RIGHT-TO-LEFT MARK + \strippedcsname \breakinghyphen \or % U+2010 HYPHEN + \strippedcsname \nonbreakinghyphen\or % U+2011 NON-BREAKING HYPHEN + \strippedcsname \endash \or % U+2012 FIGURE DASH % \ifcase\numexpr(#1-19) - \strippedcsname \endash \or % U+2013 EN DASH - \strippedcsname \emdash \or % U+2014 EM DASH - \strippedcsname \unknownchar \or % U+2015 HORIZONTAL BAR - \strippedcsname \unknownchar \or % U+2016 DOUBLE VERTICAL LINE - \strippedcsname \unknownchar \or % U+2017 DOUBLE LOW LINE - \strippedcsname \quoteleft \or - \strippedcsname \quoteright \or - \strippedcsname \quotesinglebase \or - \strippedcsname \unknownchar \or - \strippedcsname \quotedblleft \or - \strippedcsname \quotedblright \or - \strippedcsname \quotedblbase \or - \strippedcsname \unknownchar \or - \strippedcsname \textdag \or - \strippedcsname \textddag \or - \strippedcsname \textbullet \or - \strippedcsname \unknownchar \or - \strippedcsname \unknownchar \or - \strippedcsname \unknownchar \or - \strippedcsname \textellipsis \else + \strippedcsname \endash \or % U+2013 EN DASH + \strippedcsname \emdash \or % U+2014 EM DASH + \strippedcsname \unknownchar \or % U+2015 HORIZONTAL BAR + \strippedcsname \unknownchar \or % U+2016 DOUBLE VERTICAL LINE + \strippedcsname \unknownchar \or % U+2017 DOUBLE LOW LINE + \strippedcsname \quoteleft \or + \strippedcsname \quoteright \or + \strippedcsname \quotesinglebase \or + \strippedcsname \unknownchar \or + \strippedcsname \quotedblleft \or + \strippedcsname \quotedblright \or + \strippedcsname \quotedblbase \or + \strippedcsname \unknownchar \or + \strippedcsname \textdag \or + \strippedcsname \textddag \or + \strippedcsname \textbullet \or + \strippedcsname \unknownchar \or + \strippedcsname \unknownchar \or + \strippedcsname \unknownchar \or + \strippedcsname \textellipsis \else \ifcase\numexpr(#1-48) - \strippedcsname \perthousand \or % U+2030 PER MILLE SIGN - \strippedcsname \unknownchar \or % U+2031 PER TEN THOUSAND SIGN - \strippedcsname \prime \or % U+2032 PRIME - \strippedcsname \doubleprime \or % U+2033 DOUBLE PRIME - \strippedcsname \tripleprime \else % U+2034 TRIPLE PRIME + \strippedcsname \perthousand \or % U+2030 PER MILLE SIGN + \strippedcsname \unknownchar \or % U+2031 PER TEN THOUSAND SIGN + \strippedcsname \prime \or % U+2032 PRIME + \strippedcsname \doubleprime \or % U+2033 DOUBLE PRIME + \strippedcsname \tripleprime \else % U+2034 TRIPLE PRIME \ifcase\numexpr(#1-57) - \strippedcsname \unknownchar \or % SINGLE LEFT-POINTING ANGLE QUOTATION MARK - \strippedcsname \unknownchar \else % SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + \strippedcsname \unknownchar \or % SINGLE LEFT-POINTING ANGLE QUOTATION MARK + \strippedcsname \unknownchar \else % SINGLE RIGHT-POINTING ANGLE QUOTATION MARK \ifcase\numexpr(#1-172) - \strippedcsname \texteuro \else + \strippedcsname \texteuro \else \strippedcsname \unknownchar \fi\fi\fi\fi \stopunicodevector diff --git a/tex/context/base/unic-ini.tex b/tex/context/base/unic-ini.tex index 8125bab2d..6cc498475 100644 --- a/tex/context/base/unic-ini.tex +++ b/tex/context/base/unic-ini.tex @@ -257,11 +257,20 @@ \expandafter\utfunihashchar \or \expandafter\utfunihashsplit \or \expandafter\utfunihashboth \or - \@EA\string\@EA\unicodechar \or + \expandafter\utfuniglyphname \or \expandafter\utfunientity \else \expandafter\utfunihash \fi} +%D \startbuffer +%D \enableregime[utf] \dostepwiserecurse{0}{8}{1} +%D {\recurselevel: +%D \chardef\utfunicodetracer=\recurselevel aap‒noot coördinatie – één +%D \crlf} +%D \stopbuffer +%D +%D \typebuffer \start \getbuffer \stop + %D \macros %D {unicodehexnumber} %D @@ -379,6 +388,17 @@ \let\utfunihash\utfunihashglyph +%D We also need: + +\def\utfuniglyphname#1% + {{\tttf + \expandafter\string\csname + \ifnum#1<\utf@i + \strippedcsname\unicodeasciicharacter\endcsname{#1}% + \else + \@EA\doutfunihash\@EA{\number\utfdiv{#1}}{#1}\endcsname + \fi}} + %D The combined presentation is implemented by: \def\utfunihashchar #1% diff --git a/tex/context/base/x-fe.tex b/tex/context/base/x-fe.tex index 5748c8ff0..302960d0c 100644 --- a/tex/context/base/x-fe.tex +++ b/tex/context/base/x-fe.tex @@ -1,8 +1,8 @@ %D \module %D [ file=x-fe, %D version=2004.03.12, % based on earlier experiments -%D title=\CONTEXT\ XML Modules, -%D subtitle=Formatting Objects Extensions, +%D title=\FOXET, +%D subtitle=Simple Extensions, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE / Hans Hagen \& Ton Otten}] @@ -96,7 +96,23 @@ \defineXMLargument [fe:message] - {\writestatus{XML-FO}} + [category=XML-FO] + {\writestatus{\XMLop{category}}} + +%D Handy + +\defineXMLargument + [fe:trace] + [attribute=,option=] + {\showXMLinh{\XMLop{attribute}}% + \XMLval{fe:trace}{\XMLop{option}}{}} + +\mapXMLvalue + {fe:trace} + {font} + {\hbox\bgroup\infofont[% + \xFOfont/\xFOfontsize/\xFOfontsizeadjust/\xFOfontfamily/\xFOfontweight/\xFOfontstyle/\xFOfontvariant:\FOfontdefinition + ]\egroup} %D Extensions: @@ -119,4 +135,9 @@ \XMLval{fe:testgrid}{\XMLop{fe:testgrid}}{} \stopsetups +%D Private (testing) + +\defineXMLcommand[fe:synchronizeoutput]{\synchronizeoutput} + + \protect \endinput diff --git a/tex/context/base/x-fo.tex b/tex/context/base/x-fo.tex index 094bb71fc..04555fbdd 100644 --- a/tex/context/base/x-fo.tex +++ b/tex/context/base/x-fo.tex @@ -1,7 +1,7 @@ %D \module %D [ file=x-fo, %D version=2004.03.12, % based on earlier experiments -%D title=\CONTEXT\ XML Modules, +%D title=\FOXET, %D subtitle=Formatting Objects, %D author=Hans Hagen, %D date=\currentdate, @@ -11,12 +11,23 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. +% \showframe + +% This is a first implementation, maybe I will write another one with mixed +% element indifferent vars and something 'when set, act upon it, and forget', +% for instance: in each element check if font set, if so, change font and +% reset font attributes. I'm not sure if this is wise. + % todo: global assignment in order to limit restore % todo: combine mp graphics (see end) saves 30% % todo: using contants and variables (for internal use) +% todo: language at more levels + % beware: aftergroup vs egroup/endgroup +\input xtag-run + \unprotect % syst-new.tex @@ -66,6 +77,16 @@ \chardef\XMLtokensreduction = 2 \chardef\XMLcdatamethod = 2 +%D For the purpose of testing. + +\startmode[fo-verbose] + \def\writeFOstatus{\writestatus{XML-FO}} +\stopmode + +\startnotmode[fo-verbose] + \let\writeFOstatus\gobbleoneargument +\stopnotmode + %D For the moment we stick to utf-8. \useXMLfilter[utf] @@ -117,7 +138,7 @@ location=middle] \setuppagenumbering - [alternative=doublesided, + [alternative={doublesided,singlesided}, % sic location=] \setuptolerance @@ -256,10 +277,10 @@ font-family=,% Times, font-selection-strategy=, font-size=,% 12pt, - font-size-adjust=1, - font-style=normal, - font-variant=normal, - font-weight=normal] + font-size-adjust=, % 1, + font-style=, % normal, + font-variant=, % normal, + font-weight=] % normal] \defineXMLattributeset [fo:hyphenation] @@ -592,7 +613,7 @@ %D is needed in order to comfortably fetch attribute values from %D ancestors. -\startXMLcompiling +\startXMLcompiling[inherit] %D Element: fo:root @@ -609,6 +630,7 @@ leader-pattern-width=12pt, \startsetups fo:root:start \starttext \beginXMLelement \startXMLignore + \doifsomething{\XMLop{language}}{\mainlanguage[\XMLop{language}]}% todo, everywhere \stopsetups \startsetups fo:root:stop @@ -721,13 +743,23 @@ leader-pattern-width=12pt, \setpercentdimen\FOcolumngap{\XMLpar{fo:region-body}{column-gap}{12pt}} - \definecolumnset + % we need to freeze the lineheight here + + \expanded{\definecolumnset [fo:set] [n=\XMLpar{fo:region-body}{column-count}{1}, - distance=\FOcolumngap] + distance=\FOcolumngap]} + + \expanded{\definecolumnsetspan + [fo:set] + [n=\XMLpar{fo:region-body}{column-count}{1}]} \directsetup{fo:font:setup} % else problems + \directsetup{fo:line-height:setup} + +% \parseXMLattributes{fo:flow}{line-height='normal'} + \startcolumnset[fo:set] % \startcolumns[\XMLpar{fo:region-body}{column-count}{1}] @@ -851,7 +883,7 @@ leader-pattern-width=12pt, \startsetups fo:simple-page-master:stop - \writestatus{XML-FO}{defining papersize '\directsetup{fo:layout:kind}'} + \writeFOstatus{defining papersize '\directsetup{fo:layout:kind}'} \expanded {\definepapersize @@ -863,25 +895,32 @@ leader-pattern-width=12pt, \checkFOmargin {fo:region-body} \checkFOmargin {fo:simple-page-master-do} - \writestatus{XML-FO}{defining layout '\directsetup{fo:layout:kind}'} + \writeFOstatus{defining layout '\directsetup{fo:layout:kind}'} + + \FOscratchMT\paperheight \setpercentdimen\FOscratchMT{\XMLpar{fo:simple-page-master-do}{margin-top} \zeropoint} + \FOscratchMB\paperheight \setpercentdimen\FOscratchMB{\XMLpar{fo:simple-page-master-do}{margin-bottom}\zeropoint} + \FOscratchML\paperwidth \setpercentdimen\FOscratchML{\XMLpar{fo:simple-page-master-do}{margin-left} \zeropoint} + \FOscratchMR\paperwidth \setpercentdimen\FOscratchMR{\XMLpar{fo:simple-page-master-do}{margin-right} \zeropoint} + + \FOscratchRB\paperheight \setpercentdimen\FOscratchRB{\XMLpar{fo:region-body}{margin-top} \zeropoint} + \FOscratchRA\paperheight \setpercentdimen\FOscratchRA{\XMLpar{fo:region-body}{margin-bottom}\zeropoint} + \FOscratchRS\paperwidth \setpercentdimen\FOscratchRS{\XMLpar{fo:region-body}{margin-left} \zeropoint} + \FOscratchRE\paperwidth \setpercentdimen\FOscratchRE{\XMLpar{fo:region-body}{margin-right} \zeropoint} + + \FOscratchPB\paperheight \setpercentdimen\FOscratchPB{\XMLpar{fo:region-body}{padding-top} \zeropoint} + \FOscratchPA\paperheight \setpercentdimen\FOscratchPA{\XMLpar{fo:region-body}{padding-bottom}\zeropoint} + \FOscratchPS\paperwidth \setpercentdimen\FOscratchPS{\XMLpar{fo:region-body}{padding-left} \zeropoint} + \FOscratchPE\paperwidth \setpercentdimen\FOscratchPE{\XMLpar{fo:region-body}{padding-right} \zeropoint} \expanded {\definelayout [\directsetup{fo:layout:kind}] [ page={\directsetup{fo:layout:kind},\XMLval{fo:reference-orientation}{\XMLop{reference-orientation}}{}}, paper=\directsetup{fo:layout:kind}, - backspace=\the\dimexpr(\XMLpar{fo:simple-page-master-do}{margin-left}{0pt}+ - \XMLpar{fo:region-body}{padding-left}{0pt}+ - \XMLpar{fo:region-body}{margin-left}{0pt}), - cutspace=\the\dimexpr(\XMLpar{fo:simple-page-master-do}{margin-right}{0pt}+ - \XMLpar{fo:region-body}{padding-right}{0pt}+ - \XMLpar{fo:region-body}{margin-right}{0pt}), - topspace=\the\dimexpr(\XMLpar{fo:simple-page-master-do}{margin-top}{0pt}+ - \XMLpar{fo:region-body}{padding-top}{0pt}+ - \XMLpar{fo:region-body}{margin-top}{0pt}), - bottomspace=\the\dimexpr(\XMLpar{fo:simple-page-master-do}{margin-top}{0pt}+ - \XMLpar{fo:region-body}{padding-bottom}{0pt}+ - \XMLpar{fo:region-body}{margin-bottom}{0pt})]} + backspace=\the\dimexpr(\FOscratchML+\FOscratchPS+\FOscratchRS), + cutspace=\the\dimexpr(\FOscratchMR+\FOscratchPE+\FOscratchRE), + topspace=\the\dimexpr(\FOscratchMT+\FOscratchPB+\FOscratchRB), + bottomspace=\the\dimexpr(\FOscratchMB+\FOscratchPA+\FOscratchRA)]} \expanded{\setuplayout[\directsetup{fo:layout:kind}]} @@ -890,7 +929,7 @@ leader-pattern-width=12pt, \startexpanded \noexpand \startlocalsetups[layout:\directsetup{fo:layout:kind}] - \noexpand \writestatus{XML-FO}{processing simple page master '\XMLpar{fo:simple-page-master-do}{master-name}{any}'} + \noexpand \writeFOstatus{processing simple page master '\XMLpar{fo:simple-page-master-do}{master-name}{any}'} \noexpand \resetsetups[fo:simple-page-master:start] \noexpand \resetsetups[fo:simple-page-master:stop] \noexpand \flushXMLelement{fo:simple-page-master:\XMLpar{fo:simple-page-master-do}{master-name}{any}} @@ -900,7 +939,7 @@ leader-pattern-width=12pt, \stopsetups % \defineXMLcommand[fo:simple-page-master-do-do] -% {\writestatus{XML-FO}{setting up master \XMLop{master-name} in page body}} +% {\writeFOstatus{setting up master \XMLop{master-name} in page body}} %D Element: fo:region-body @@ -921,7 +960,7 @@ leader-pattern-width=12pt, {\directsetup{fo:region-body:process}} \startsetups fo:region-body:process - \writestatus{XML-FO}{refreshing region-body parameters} + \writeFOstatus{refreshing region-body parameters} \stopsetups % todo: naar realfolio handelen ipv folio @@ -994,7 +1033,7 @@ leader-pattern-width=12pt, {\directsetup{fo:region-before:process}} \startsetups fo:region-before:process - \writestatus{XML-FO}{refreshing region-before parameters} + \writeFOstatus{refreshing region-before parameters} \stopsetups \defineXMLprocess @@ -1094,10 +1133,9 @@ leader-pattern-width=12pt, \stopsetups -\newdimen\FOscratchML \newdimen\FOscratchMR -\newdimen\FOscratchMT \newdimen\FOscratchMB -\newdimen\FOscratchRB \newdimen\FOscratchRA -\newdimen\FOscratchRS \newdimen\FOscratchRE +\newdimen\FOscratchML \newdimen\FOscratchMR \newdimen\FOscratchMT \newdimen\FOscratchMB +\newdimen\FOscratchPB \newdimen\FOscratchPA \newdimen\FOscratchPS \newdimen\FOscratchPE +\newdimen\FOscratchRB \newdimen\FOscratchRA \newdimen\FOscratchRS \newdimen\FOscratchRE \mapXMLvalue {fo:background-repeat} {no-repeat} {0} \mapXMLvalue {fo:background-repeat} {repeat} {1} @@ -1195,7 +1233,7 @@ leader-pattern-width=12pt, [background=text] \def\FOregionbuilder#1#2#3#4#5#6% #1=location #2=preset #3=x #4=y #5=width #6=height - {\writestatus{XML-FO}{building region #1}% + {\writeFOstatus{building region #1}% \defineoverlay [image] [{\framed @@ -1233,17 +1271,17 @@ leader-pattern-width=12pt, \checkFOmargin{fo:simple-page-master-do} - \FOscratchML \XMLpar{fo:simple-page-master-do}{margin-left} \zeropoint - \FOscratchMR \XMLpar{fo:simple-page-master-do}{margin-right} \zeropoint - \FOscratchMT \XMLpar{fo:simple-page-master-do}{margin-top} \zeropoint - \FOscratchMB \XMLpar{fo:simple-page-master-do}{margin-bottom}\zeropoint + \FOscratchMT\paperheight \setpercentdimen\FOscratchMT{\XMLpar{fo:simple-page-master-do}{margin-top} \zeropoint} + \FOscratchMB\paperheight \setpercentdimen\FOscratchMB{\XMLpar{fo:simple-page-master-do}{margin-bottom}\zeropoint} + \FOscratchML\paperwidth \setpercentdimen\FOscratchML{\XMLpar{fo:simple-page-master-do}{margin-left} \zeropoint} + \FOscratchMR\paperwidth \setpercentdimen\FOscratchMR{\XMLpar{fo:simple-page-master-do}{margin-right} \zeropoint} \doif{\XMLpar{fo:region-body}{fe:z-order}{above}}{below}{\directsetup{fo:regions:process:body}} - \FOscratchRB \XMLpar{fo:region-before} {extent} \zeropoint - \FOscratchRA \XMLpar{fo:region-after} {extent} \zeropoint - \FOscratchRS \XMLpar{fo:region-start} {extent} \zeropoint - \FOscratchRE \XMLpar{fo:region-end} {extent} \zeropoint + \FOscratchRB\paperheight \setpercentdimen\FOscratchRB{\XMLpar{fo:region-before}{extent}\zeropoint} + \FOscratchRA\paperheight \setpercentdimen\FOscratchRA{\XMLpar{fo:region-after} {extent}\zeropoint} + \FOscratchRS\paperwidth \setpercentdimen\FOscratchRS{\XMLpar{fo:region-start} {extent}\zeropoint} + \FOscratchRE\paperwidth \setpercentdimen\FOscratchRE{\XMLpar{fo:region-end} {extent}\zeropoint} \doifelse{\XMLpar{fo:region-before}{precedence}{false}}{true} {\doifelse{\XMLpar{fo:region-after}{precedence}{false}}{true} @@ -1257,14 +1295,38 @@ leader-pattern-width=12pt, \stopsetups +\newdimen\FOscratchEB +\newdimen\FOscratchEA + +\chardef\FOregionmode\zerocount + +\startmode[fo-pt] + \chardef\FOregionmode\plusone % fotex mode -) +\stopmode + +\startsetups fo:regions:modes + + \ifcase\FOregionmode + \FOscratchEB\zeropoint + \FOscratchEA\zeropoint + \or + \FOscratchEB\paperheight \setpercentdimen\FOscratchEB{\XMLpar{fo:region-before}{extent}\zeropoint} + \FOscratchEA\paperheight \setpercentdimen\FOscratchEA{\XMLpar{fo:region-after} {extent}\zeropoint} + \else + \FOscratchEB\zeropoint + \FOscratchEA\zeropoint + \fi + +\stopsetups + \startsetups fo:regions:process:body \bgroup - \FOscratchRB \XMLpar{fo:region-body}{margin-top} \zeropoint - \FOscratchRA \XMLpar{fo:region-body}{margin-bottom}\zeropoint - \FOscratchRS \XMLpar{fo:region-body}{margin-left} \zeropoint - \FOscratchRE \XMLpar{fo:region-body}{margin-right} \zeropoint + \FOscratchRB\paperheight \setpercentdimen\FOscratchRB{\XMLpar{fo:region-body}{margin-top} \zeropoint} + \FOscratchRA\paperheight \setpercentdimen\FOscratchRA{\XMLpar{fo:region-body}{margin-bottom}\zeropoint} + \FOscratchRS\paperwidth \setpercentdimen\FOscratchRS{\XMLpar{fo:region-body}{margin-left} \zeropoint} + \FOscratchRE\paperwidth \setpercentdimen\FOscratchRE{\XMLpar{fo:region-body}{margin-right} \zeropoint} \FOregionbuilder {region-body} @@ -1280,13 +1342,15 @@ leader-pattern-width=12pt, \startsetups fo:regions:process:true:true + \directsetup{fo:regions:modes} + \ifdim\FOscratchRB>\zeropoint \FOregionbuilder {region-before}{lefttop} - {\FOscratchML}{\FOscratchMT} + {\FOscratchML}{\FOscratchMT-\FOscratchEB} {\paperwidth-\FOscratchML-\FOscratchMR}{\FOscratchRB} \fi \ifdim\FOscratchRA>\zeropoint \FOregionbuilder {region-after}{leftbottom} - {\FOscratchML}{\FOscratchMB} + {\FOscratchML}{\FOscratchMB-\FOscratchEA} {\paperwidth-\FOscratchML-\FOscratchMR}{\FOscratchRA} \fi \ifdim\FOscratchRS>\zeropoint \FOregionbuilder {region-start}{lefttop} @@ -1302,13 +1366,15 @@ leader-pattern-width=12pt, \startsetups fo:regions:process:false:true + \directsetup{fo:regions:modes} + \ifdim\FOscratchRB>\zeropoint \FOregionbuilder {region-before}{lefttop} - {\FOscratchML+\FOscratchRS}{\FOscratchMT} + {\FOscratchML+\FOscratchRS}{\FOscratchMT-\FOscratchEB} {\paperwidth-\FOscratchML-\FOscratchMR-\FOscratchRS-\FOscratchRE}{\FOscratchRB} \fi \ifdim\FOscratchRA>\zeropoint \FOregionbuilder {region-after}{leftbottom} - {\FOscratchML}{\FOscratchMB} + {\FOscratchML}{\FOscratchMB-\FOscratchEA} {\paperwidth-\FOscratchML-\FOscratchMR}{\FOscratchRA} \fi \ifdim\FOscratchRS>\zeropoint \FOregionbuilder {region-start}{lefttop} @@ -1324,13 +1390,15 @@ leader-pattern-width=12pt, \startsetups fo:regions:process:true:false + \directsetup{fo:regions:modes} + \ifdim\FOscratchRB>\zeropoint \FOregionbuilder {region-before}{lefttop} - {\FOscratchML}{\FOscratchMT} + {\FOscratchML}{\FOscratchMT-\FOscratchEB} {\paperwidth-\FOscratchML-\FOscratchMR}{\FOscratchRB} \fi \ifdim\FOscratchRA>\zeropoint \FOregionbuilder {region-after}{leftbottom} - {\FOscratchML+\FOscratchRS}{\FOscratchMB} + {\FOscratchML+\FOscratchRS}{\FOscratchMB-\FOscratchEA} {\paperwidth-\FOscratchML-\FOscratchMR-\FOscratchRS-\FOscratchRE}{\FOscratchRA} \fi \ifdim\FOscratchRS>\zeropoint \FOregionbuilder {region-start}{lefttop} @@ -1346,13 +1414,15 @@ leader-pattern-width=12pt, \startsetups fo:regions:process:false:false + \directsetup{fo:regions:modes} + \ifdim\FOscratchRB>\zeropoint \FOregionbuilder {region-before}{lefttop} - {\FOscratchML+\FOscratchRS}{\FOscratchMT} + {\FOscratchML+\FOscratchRS}{\FOscratchMT-\FOscratchEB} {\paperwidth-\FOscratchML-\FOscratchMR-\FOscratchRS-\FOscratchRE}{\FOscratchRB} \fi \ifdim\FOscratchRA>\zeropoint \FOregionbuilder {region-after}{leftbottom} - {\FOscratchML+\FOscratchRS}{\FOscratchMB} + {\FOscratchML+\FOscratchRS}{\FOscratchMB-\FOscratchEA} {\paperwidth-\FOscratchML-\FOscratchMR-\FOscratchRS-\FOscratchRE}{\FOscratchRA} \fi \ifdim\FOscratchRS>\zeropoint \FOregionbuilder {region-start}{lefttop} @@ -1368,7 +1438,7 @@ leader-pattern-width=12pt, \startsetups fo:before:each:page - \writestatus{XML-FO}{setting up layout \currentlayout} + \writeFOstatus{setting up layout \currentlayout} \directsetup{layout:\currentlayout} \directsetup{fo:regions:process} @@ -1417,6 +1487,10 @@ leader-pattern-width=12pt, \endgraf + \writeFOstatus{fo:block in line \the\inputlineno} + +\doif{\XMLpar{fo:block}{span}{}}{all}{\ifinsidecolumns \startcolumnsetspan[fo:set] \fi} + \begingroup \directsetup{fe:setup} @@ -1435,7 +1509,7 @@ leader-pattern-width=12pt, \directsetup{fo:line-height:setup} - \directsetup{fo:indent:setup} + \directsetup{fo:indent:setup}% hier ? \doifsomething{\XMLop{background-color}} {\checkhexcolor[\XMLop{background-color}] @@ -1467,6 +1541,7 @@ leader-pattern-width=12pt, \directsetup{fo:hyphenation:setup} \directsetup{fo:align:setup} + \directsetup{fo:margin:setup} \doif{\XMLop{wrap-option}}{no-wrap} {\obeylines} @@ -1474,9 +1549,9 @@ leader-pattern-width=12pt, \doif{\XMLop{white-space-collapse}}{false} {\obeyspaces} - \doifsomething{\XMLop{text-indent}} - {\expanded{\setupindenting[\XMLop{text-indent}]} - \indenting[always]} + % todo : remember old one and do like fonts + + \directsetup{fo:textindent:setup} \stopsetups @@ -1494,8 +1569,23 @@ leader-pattern-width=12pt, \endgroup + \doif{\XMLpar{fo:block}{span}{}}{all}{\ifinsidecolumns \stopcolumnsetspan \fi} + \stopsetups +\startsetups fo:textindent:setup + + \edefXMLinh\xFOtextindent{text-indent} + + \doifsomething\xFOtextindent + {\scratchdimen\hsize + \setpercentdimen\scratchdimen\xFOtextindent + \expanded{\setupindenting[\the\scratchdimen]}} + +\stopsetups + +\indenting[always] % can be zero points + % todo: map \mapXMLvalue {fo:break} {column} {\column} @@ -1508,7 +1598,7 @@ leader-pattern-width=12pt, % nasty interference with accumulated skips \mapXMLvalue {fo:keep-next} {auto} {} -\mapXMLvalue {fo:keep-next} {always} {\allowbreak} +\mapXMLvalue {fo:keep-next} {always} {\nobreak} \mapXMLvalue {fo:keep-prev} {auto} {} \mapXMLvalue {fo:keep-prev} {always} {\nobreak} @@ -1525,10 +1615,7 @@ leader-pattern-width=12pt, \XMLval{fo:break}{\XMLop{break-before}}{} -% test -% -% \FOsavedlastskip \lastskip -% \ifdim\FOsavedlastskip>\zeropoint \vskip-\FOsavedlastskip \fi + \FOsavedlastskip \lastskip \ifdim\FOsavedlastskip>\zeropoint \vskip-\FOsavedlastskip \fi \XMLval{fo:keep-start}{\XMLop{keep-together}}\empty \XMLval{fo:keep-start}{\XMLop{keep-together.within-column}}\empty @@ -1538,9 +1625,7 @@ leader-pattern-width=12pt, \XMLval{fo:keep-prev} {\XMLop{keep-with-previous.within-column}}\empty \XMLval{fo:keep-prev} {\XMLop{keep-with-previous.within-page}}\empty -% test -% -% \ifdim\FOsavedlastskip>\zeropoint \vskip\FOsavedlastskip \fi + \ifdim\FOsavedlastskip>\zeropoint \vskip\FOsavedlastskip \fi \doFObeforeskip\currentXMLelement @@ -1548,10 +1633,9 @@ leader-pattern-width=12pt, \startsetups fo:break-and-space:after - \doFOafterskip\currentXMLelement +% \doFOafterskip\currentXMLelement -% \FOsavedlastskip \lastskip -% \ifdim\FOsavedlastskip>\zeropoint \vskip-\FOsavedlastskip \fi + \FOsavedlastskip \lastskip \ifdim\FOsavedlastskip>\zeropoint \vskip-\FOsavedlastskip \fi \XMLval{fo:keep-stop}{\XMLop{keep-together}}\empty \XMLval{fo:keep-stop}{\XMLop{keep-together.within-column}}\empty @@ -1561,7 +1645,9 @@ leader-pattern-width=12pt, \XMLval{fo:keep-next}{\XMLop{keep-with-next.within-column}}\empty \XMLval{fo:keep-next}{\XMLop{keep-with-next.within-page}}\empty -% \ifdim\FOsavedlastskip>\zeropoint \vskip\FOsavedlastskip \fi + \ifdim\FOsavedlastskip>\zeropoint \vskip\FOsavedlastskip \fi + + \doFOafterskip\currentXMLelement \XMLval{fo:break}{\XMLop{break-after}}{} @@ -1580,19 +1666,27 @@ leader-pattern-width=12pt, \doifsomething{\XMLop{start-indent}}{\advance\leftskip \XMLop{start-indent}\relax} \doifsomething{\XMLop{end-indent}} {\advance\rightskip\XMLop{end-indent} \relax} +% \FOattributeT +% \FOattributeR +% \FOattributeB +% \FOattributeL + + \stopsetups \mapXMLvalue {fo:align} {center} {\raggedcenter} \mapXMLvalue {fo:align} {left} {\raggedright} \mapXMLvalue {fo:align} {right} {\raggedleft} \mapXMLvalue {fo:align} {begin} {\raggedright} +\mapXMLvalue {fo:align} {start} {\raggedright} \mapXMLvalue {fo:align} {end} {\raggedleft} \mapXMLvalue {fo:align-key} {center} {middle} -\mapXMLvalue {fo:align-key} {left} {right} -\mapXMLvalue {fo:align-key} {right} {left} -\mapXMLvalue {fo:align-key} {begin} {right} -\mapXMLvalue {fo:align-key} {end} {left} +\mapXMLvalue {fo:align-key} {left} {flushleft} +\mapXMLvalue {fo:align-key} {right} {flushright} +\mapXMLvalue {fo:align-key} {begin} {flushleft} +\mapXMLvalue {fo:align-key} {start} {flushleft} +\mapXMLvalue {fo:align-key} {end} {flushright} \startsetups fo:align:setup @@ -1600,6 +1694,20 @@ leader-pattern-width=12pt, \stopsetups +\startsetups fo:margin:setup + + \checkFOmargin{fo:block} + + \FOscratchML \XMLpar{fo:block}{margin-left} \zeropoint + \FOscratchMR \XMLpar{fo:block}{margin-right} \zeropoint + \FOscratchMT \XMLpar{fo:block}{margin-top} \zeropoint + \FOscratchMB \XMLpar{fo:block}{margin-bottom}\zeropoint + + \advance\leftskip \FOscratchML + \advance\rightskip\FOscratchMR + +\stopsetups + % todo: font-stretch % % ultra-condensed @@ -1627,22 +1735,37 @@ leader-pattern-width=12pt, % evt class Times Helvetica -\definefontsynonym [FO:Times] [Times-Roman] -\definefontsynonym [FO:Times:bold] [Times-Bold] -\definefontsynonym [FO:Times:italic] [Times-Italic] -\definefontsynonym [FO:Times:bold:italic] [Times-BoldItalic] +\definefontsynonym [FO:Times] [Times-Roman] +\definefontsynonym [FO:Times:bold] [Times-Bold] +\definefontsynonym [FO:Times:italic] [Times-Italic] +\definefontsynonym [FO:Times:bold:italic] [Times-BoldItalic] + +\definefontsynonym [FO:Times:small-caps] [Times-Roman] +\definefontsynonym [FO:Times:bold:small-caps] [Times-Bold] +\definefontsynonym [FO:Times:italic:small-caps] [Times-Italic] +\definefontsynonym [FO:Times:bold:italic:small-caps] [Times-BoldItalic] + +\definefontsynonym [FO:Helvetica] [Helvetica] +\definefontsynonym [FO:Helvetica:bold] [Helvetica-Bold] +\definefontsynonym [FO:Helvetica:italic] [Helvetica-Italic] +\definefontsynonym [FO:Helvetica:bold:italic] [Helvetica-BoldItalic] -\definefontsynonym [FO:Helvetica] [Helvetica] -\definefontsynonym [FO:Helvetica:bold] [Helvetica-Bold] -\definefontsynonym [FO:Helvetica:italic] [Helvetica-Italic] -\definefontsynonym [FO:Helvetica:bold:italic] [Helvetica-BoldItalic] +\definefontsynonym [FO:Helvetica:small-caps] [Helvetica] +\definefontsynonym [FO:Helvetica:bold:small-caps] [Helvetica-Bold] +\definefontsynonym [FO:Helvetica:italic:small-caps] [Helvetica-Italic] +\definefontsynonym [FO:Helvetica:bold:italic:small-caps] [Helvetica-BoldItalic] -\definefontsynonym [FO:Courier] [Courier] -\definefontsynonym [FO:Courier:bold] [Courier-Bold] -\definefontsynonym [FO:Courier:italic] [Courier-Oblique] -\definefontsynonym [FO:Courier:bold:italic] [Courier-BoldOblique] +\definefontsynonym [FO:Courier] [Courier] +\definefontsynonym [FO:Courier:bold] [Courier-Bold] +\definefontsynonym [FO:Courier:italic] [Courier-Oblique] +\definefontsynonym [FO:Courier:bold:italic] [Courier-BoldOblique] -\definefontsynonym [FO:Symbol] [ZapfDingbats] +\definefontsynonym [FO:Courier:small-caps] [Courier] +\definefontsynonym [FO:Courier:bold:small-caps] [Courier-Bold] +\definefontsynonym [FO:Courier:italic:small-caps] [Courier-Oblique] +\definefontsynonym [FO:Courier:bold:italic:small-caps] [Courier-BoldOblique] + +\definefontsynonym [FO:Symbol] [ZapfDingbats] \definefontsynonym [FO:Computer-Modern-Typewriter] [ComputerModernMono] \definefontsynonym [FO:Computer-Modern-Typewriter:italic] [ComputerModernMono-Slanted] @@ -1670,7 +1793,7 @@ leader-pattern-width=12pt, \dFOfontsize=\bodyfontsize \def\FOfontsize {10pt}% {12pt} - \def\FOfontfamily {}% {Times} + \def\FOfontfamily {Times} \def\FOfontweight {normal} \def\FOfontstyle {normal} \def\FOfontvariant {normal} @@ -1685,10 +1808,16 @@ leader-pattern-width=12pt, \stopsetups +\def\FOfontdefinition{} +\def\FOfontname {} + \directsetup{fo:fonts:reset} +% test for \FOfontvariant: normal or else + \def\setFOfontname {\edef\xFOfontname{FO:\FOfontfamily:\FOfontweight:\FOfontstyle:\FOfontvariant}% + %\begingroup\infofont\xFOfontname]\endgroup \doifelsefontsynonym\xFOfontname {\let\FOfontname\xFOfontname} {\edef\xFOfontname{FO:\FOfontfamily:\FOfontweight:\FOfontstyle}% @@ -1707,12 +1836,12 @@ leader-pattern-width=12pt, % \unprotected \def\doifelseFOfontsynonym#1#2#3#4#5% family weight style variant default % {\edef\FOfontname -% {\ifcsname\??ff\fontclass FO:#1:#2:#3:#4\endcsname FO:#1:#2:#3:#4% -% \else\ifcsname\??ff\fontclass FO:#1:#2:#3\endcsname FO:#1:#2:#3% -% \else\ifcsname\??ff\fontclass FO:#1:#3\endcsname FO:#1:#3% -% \else\ifcsname\??ff\fontclass FO:#1:#2\endcsname FO:#1:#2% -% \else\ifcsname\??ff\fontclass FO:#1\endcsname FO:#1% -% \else #5% +% {\ifcsname \??ff\fontclass FO:#1:#2:#3:#4\endcsname FO:#1:#2:#3:#4% +% \else\ifcsname\??ff\fontclass FO:#1:#2:#3\endcsname FO:#1:#2:#3% +% \else\ifcsname\??ff\fontclass FO:#1:#3\endcsname FO:#1:#3% +% \else\ifcsname\??ff\fontclass FO:#1:#2\endcsname FO:#1:#2% +% \else\ifcsname\??ff\fontclass FO:#1\endcsname FO:#1% +% \else #5% % \fi\fi\fi\fi\fi}} \startsetups fo:font:family:check @@ -1737,6 +1866,14 @@ leader-pattern-width=12pt, \edefXMLinh\xFOfontstyle {font-style} \edefXMLinh\xFOfontvariant {font-variant} +% \edef\xFOfont {\XMLpar{fo}{font}{}} +% \edef\xFOfontsize {\XMLpar{fo}{font-size}{}} +% \edef\xFOfontsizeadjust{\XMLpar{fo}{font-size-adjust}{}} +% \edef\xFOfontfamily {\XMLpar{fo}{font-family}{}} +% \edef\xFOfontweight {\XMLpar{fo}{font-weight}{}} +% \edef\xFOfontstyle {\XMLpar{fo}{font-style}{}} +% \edef\xFOfontvariant {\XMLpar{fo}{font-variant}{}} + \donefalse \ifx\xFOfont\empty \else \ifx\xFOfont\relax \else @@ -1751,13 +1888,6 @@ leader-pattern-width=12pt, {\setpercentdimen\dFOfontsize\FOfontsize} \fi \fi - \ifx\xFOfontsize\empty \else - \let\FOfontsize\xFOfontsize - \doifXMLvalelse{fo:font-size}\FOfontsize - {\XMLval{fo:font-size}\FOfontsize\empty} - {\setpercentdimen\dFOfontsize\FOfontsize} - \fi - \ifx\xFOfontsizeadjust\empty \else \doifelse\xFOfontsizeadjust{none} {\def\FOfontsizeadjust{1}} @@ -1779,17 +1909,23 @@ leader-pattern-width=12pt, \ifdone \setFOfontname - \ifx\FOfontname\empty \else + \ifx\FOfontname\empty % klopt dit + \edef\xFOfontdefinition{\purefontname{\font} at \the\dimexpr(\FOfontsizeadjust\dFOfontsize)} +% \let\xFOfontdefinition\empty + \else \edef\xFOfontdefinition{\FOfontname\space at \the\dimexpr(\FOfontsizeadjust\dFOfontsize)} \fi \else \edef\xFOfontdefinition{\purefontname{\font} at \the\dimexpr(\FOfontsizeadjust\dFOfontsize)} \fi - \ifx\xFOfontdefinition\empty \else \ifx\FOfontdefinition\xFOfontdefinition \else - \let\FOfontdefinition\xFOfontdefinition - \expanded{\definedfont[\FOfontdefinition]} - \fi \fi + \ifx\xFOfontdefinition\empty \else + \ifx\FOfontdefinition\xFOfontdefinition + \else + \let\FOfontdefinition\xFOfontdefinition + \expanded{\definedfont[\FOfontdefinition]} + \fi + \fi \stopsetups @@ -1807,6 +1943,10 @@ leader-pattern-width=12pt, \edefXMLinh\xFOtextaltitude{text-altitude} \edefXMLinh\xFOlineheight {line-height} +% \edef\xFOtextdepth {\XMLpar{fo}{text-depth}{}} +% \edef\xFOtextaltitude{\XMLpar{fo}{text-altitude}{}} +% \edef\xFOlineheight {\XMLpar{fo}{line-height}{}} + \ifx\xFOtextdepth\empty \else \ifx\xFOtextdepth\FOtextdepth \else \let\FOtextdepth\xFOtextdepth \doifnot\FOtextdepth{use-font-metrics} @@ -1823,6 +1963,8 @@ leader-pattern-width=12pt, \setupinterlinespace[minheight=\dFOaltitude]} \fi \fi +\ifinsidecolumns \else + \ifx\xFOlineheight\empty \else \ifx\xFOlineheight\FOlineheight \else \let\FOlineheight\xFOlineheight \doifelse\FOlineheight{normal} @@ -1834,6 +1976,8 @@ leader-pattern-width=12pt, \setupinterlinespace[line=\dFOlineheight]}} \fi \fi +\fi + \stopsetups \let\orphanpenalty \clubpenalty @@ -1851,6 +1995,10 @@ leader-pattern-width=12pt, \edefXMLinh\xFOwidows {widows} \edefXMLinh\xFOorphans {orphans} +% \edef\xFOhyphenate {\XMLpar{fo}{hyphenate}{}} +% \edef\xFOwidows {\XMLpar{fo}{widows}{}} +% \edef\xFOorphans {\XMLpar{fo}{orphans}{}} + \ifx\xFOhyphenate\empty \else \XMLval{fo:hyphens}{\xFOhyphenate}\empty \fi @@ -2122,20 +2270,26 @@ leader-pattern-width=12pt, \doifelsenothing{\XMLop{content-height}} {\FOgraphicheight\zeropoint} - {\doifelse{\XMLop{content-height}}{auto} - {\FOgraphicheight\zeropoint} - {\FOgraphicheight\lineheight - \setpercentdimen\FOgraphicheight{\XMLop{content-height}}}} + {\doifelse{\XMLop{content-height}}{scale-to-fit}% is this official ? + {\FOgraphicwidth\zeropoint} + {\doifelse{\XMLop{content-height}}{auto} + {\FOgraphicheight\zeropoint} + {\FOgraphicheight\lineheight + \setpercentdimen\FOgraphicheight{\XMLop{content-height}}}}} \doifelsenothing{\XMLop{content-width}} {\FOgraphicwidth\zeropoint} - {\doifelse{\XMLop{content-width}}{auto} - {\FOgraphicheight\zeropoint} - {\FOgraphicwidth1em - \setpercentdimen\FOgraphicwidth {\XMLop{content-width}}}} + {\doifelse{\XMLop{content-width}}{scale-to-fit}% is this official ? + {\FOgraphicwidth\zeropoint} + {\doifelse{\XMLop{content-width}}{auto} + {\FOgraphicwidth\zeropoint} + {\FOgraphicwidth1em + \setpercentdimen\FOgraphicwidth {\XMLop{content-width}}}}} % leeg maken vars gaat ook goed, dan een \externalfigure + % todo : height/width scale-to-fit: factor=... + \setbox\scratchbox\hbox {\setFOimagename{\XMLpar{fo:external-graphic}{src}{dummy}} \ifdim\FOgraphicheight>\zeropoint @@ -2247,6 +2401,8 @@ leader-pattern-width=12pt, \dontleavehmode + \doFOreference{fo:inline} + \begingroup \directsetup{fe:setup} @@ -2478,12 +2634,11 @@ leader-pattern-width=12pt, \startsetups fo:leader:process - % \tracebackXMLattribute{leader-pattern-width} +% \tracebackXMLattribute{leader-pattern-width} \strut \leaders -% \hbox to \XMLop{leader-pattern-width} -% {\hss\XMLval{fo:leader-pattern}{\XMLop{leader-pattern}}{\hfill}\hss} +% \edefXMLinh \FOlepatwd {leader-pattern-width} \hbox to \XMLinh{leader-pattern-width} {\hss\XMLval{fo:leader-pattern}{\XMLinh{leader-pattern}}{\hfill}\hss} @@ -2534,15 +2689,17 @@ leader-pattern-width=12pt, \globallet\FOpnrefnumber\folio \else \global\advance\FOpnrefcounter\plusone - \pagereference[pnref:\the\FOpnrefcounter]% + \pagereference[pnref:\the\FOpnrefcounter] \doifreferencefoundelse{pnref:\the\FOpnrefcounter} - {\globallet\FOpnrefnumber\currentfolioreference}% - {\globallet\FOpnrefnumber\folio}% + {\globallet\FOpnrefnumber\currentfolioreference} + {\globallet\FOpnrefnumber\folio} \fi \expanded{\handletokens\XMLpar{fo:page-sequence}{format}{}}\with{\handleFOformat{\FOpnrefnumber}}} \stopsetups +\defineconversion[1][\numbers] + \def\handleFOformat#1#2% {\convertargument#2\to\ascii \doifconversiondefinedelse\ascii{\convertnumber\ascii{#1}}{#2}} @@ -2651,6 +2808,7 @@ leader-pattern-width=12pt, table-layout=, table-omit-footer-at-break=, table-omit-header-at-break=, +% text-indent=0pt, % yes or no? width=] {\beginXMLelement \bTABLE % [option=stretch] % @@ -2659,6 +2817,7 @@ leader-pattern-width=12pt, \endXMLelement} \newdimen\FOtableW +\newdimen\FOtableH \defineXMLsingular [fo:table-column] @@ -2673,14 +2832,7 @@ leader-pattern-width=12pt, number-columns-repeated=, number-columns-spanned=, visibility=] - {\doifelsenothing{\XMLop{column-number}} - {\increment\FOtablecolumn} - {\edef\FOtablecolumn{\XMLop{column-number}}% - \expanded{\setupTABLE[column][\FOtablecolumn][n=\FOtablecolumn]}}% - \doifsomething{\XMLop{column-width}} - {\setlocalhsize\FOtableW\localhsize - \setpercentdimen\FOtableW{\XMLop{column-width}}% - \expanded{\setupTABLE[column][\FOtablecolumn][width=\FOtableW]}}} + {\directsetup{fo:table-column:action}} % \XMLattributeset{fo:aural}, % intrusion-displace=, @@ -2771,8 +2923,39 @@ leader-pattern-width=12pt, keep-with-next=, keep-with-previous=, visibility=] - {\beginXMLelement\bTR\inTABLErowtrue} - {\eTR\inTABLErowfalse\endXMLelement} + {\beginXMLelement + \directsetup{fo:table-row:start}% + \expanded{\bTR[\the\scratchtoks]}% + \beginXMLelement} + {\endXMLelement + \eTR + \directsetup{fo:table-row:stop} + \endXMLelement} + +\startsetups fo:table-row:start + + \inTABLErowtrue + + \scratchtoks\emptytoks + + \doifsomething{\XMLop{height}} + {\FOtableH\textheight + \setpercentdimen\FOtableH{\XMLop{height}} + \appendetoks + height=\the\FOtableH + \to \scratchtoks} + + \appendetoks + ,extras={\rescanXMLattributes{fo:table-row}} + \to\scratchtoks + +\stopsetups + +\startsetups fo:table-row:stop + + \inTABLErowfalse + +\stopsetups % \XMLattributeset{fo:aural}, % display-align=, @@ -2780,6 +2963,8 @@ leader-pattern-width=12pt, % empty-cells=, \newif\ifinTABLErow +\newdimen\FOtablecellwidth +\newdimen\FOtablecellheight \defineXMLnested [fo:table-cell] @@ -2800,26 +2985,135 @@ leader-pattern-width=12pt, number-rows-spanned=1, starts-row=, width=] - {\doif{\XMLop{starts-row}}{true} - {\ifinTABLErow\eTR\inTABLErowfalse\fi}% - \ifinTABLErow\else\bTR\inTABLErowtrue\fi - \doifelsenothing{\XMLop{background-color}} - {\let\FoTableBG\empty} - {\checkhexcolor[\XMLop{background-color}]% - \doifcolorelse{\XMLop{background-color}} - {\def\FoTableBG{color}} - {\setXMLpar{fo:table-cell}{background-color}{}% - \let\FoTableBG\empty}}% - \expanded{\bTD[nx=\XMLop{number-columns-spanned},ny=\XMLop{number-rows-spanned},% - offset=\XMLop{padding},n=\XMLop{column-number}, - align={normal,lohi},background=\FoTableBG,backgroundcolor=\XMLop{background-color}]}% - % better as align=... - \setups{fo:align:setup}% - \ignorespaces} - {\removeunwantedspaces + {\directsetup{fo:table-cell:start}% + \expanded{\bTD[\the\scratchtoks]}% + \beginXMLelement} + {\endXMLelement \eTD - \doif{\XMLop{ends-row}}{true} - {\eTR\inTABLErowfalse}} + \directsetup{fo:table-cell:stop}} + +\startsetups fo:table-column:action + + \doifelsenothing{\XMLop{column-number}} + {\increment\FOtablecolumn} + {\edef\FOtablecolumn{\XMLop{column-number}} + \expanded{\setupTABLE[column][\FOtablecolumn][n=\FOtablecolumn]}} + + \doifsomething{\XMLop{column-width}} + {%\setlocalhsize + %\FOtableW\localhsize + \FOtableW\textwidth % hm, we need to set localhsize earlier + \setpercentdimen\FOtableW{\XMLop{column-width}} + \expanded{\setupTABLE[column][\FOtablecolumn][width=\the\FOtableW]}} + + \doif{\XMLop{border-style}}{none} + {\expanded{\setupTABLE[column][\FOtablecolumn][frame=off]}} + + \doifelsenothing{\XMLop{display-align}} + {\doifsomething{\XMLop{text-align}} + {\expanded{\setupTABLE[column][\FOtablecolumn] + [align=\XMLpav{fo:align-key}{fo:table-column}{text-align}{normal}]}}} + {\doifsomething{\XMLop{text-align}} + {\expanded{\setupTABLE[column][\FOtablecolumn] + [align={\XMLpav{fo:display-align}{fo:table-column}{display-align}{high},\XMLpav{fo:align-key}{fo:table-column}{text-align}{normal}}]}} + {\expanded{\setupTABLE[column][\FOtablecolumn] + [align=\XMLpav{fo:display-align}{fo:table-column}{display-align}{high}]}}} + +\expanded{\setupTABLE[column][\FOtablecolumn][extras={\rescanXMLattributes{fo:table-column}}]} + +\stopsetups + +\startsetups fo:table-cell:start + + \doif{\XMLop{starts-row}}{true}{\ifinTABLErow\eTR\inTABLErowfalse\fi} + + \ifinTABLErow\else\bTR\inTABLErowtrue\fi + + \doifelsenothing{\XMLop{background-color}} + {\let\FoTableBG\empty} + {\checkhexcolor[\XMLop{background-color}] + \doifcolorelse{\XMLop{background-color}} + {\def\FoTableBG{color}} + {\setXMLpar{fo:table-cell}{background-color}{} + \let\FoTableBG\empty}} + +% \doifelse{\XMLpar{fo:table-cell}{width}{}}{} +% {\def\pFOtablewidth{fit}} +% {\FOtablecellwidth\textwidth % probably must be localhsize or frozen at an outer level +% \setpercentdimen\FOtablecellwidth{\XMLpar{fo:table-cell}{width}{0pt}}% +% \edef\pFOtablewidth{\the\FOtablecellwidth}}% + +% \doifelse{\XMLpar{fo:table-cell}{height}{}}{} +% {\def\pFOtableheight{fit}} +% {\FOtablecellheight\textheight % probably must be localhsize or frozen at an outer level +% \setpercentdimen\FOtablecellheight{\XMLpar{fo:table-cell}{height}{0pt}}% +% \edef\pFOtableheight{\the\FOtablecellheight}}% + + \scratchtoks\emptytoks \appendetoks +% style=\noexpand\directsetup{fo:font:setup}, % else not expanded + nx=\XMLop{number-columns-spanned}, + ny=\XMLop{number-rows-spanned}, + n=\XMLop{column-number}, + background=\FoTableBG + \to \scratchtoks + + \doifnot{\XMLop{border-style}}{none} + {\appendetoks + ,frame=on + \to\scratchtoks} + + \doifsomething{\XMLop{background-color}} + {\appendetoks + ,backgroundcolor=\XMLop{background-color} + \to \scratchtoks} + + % todo : padding + + \doifsomething{\XMLop{padding}} + {\appendetoks + ,offset=\XMLop{padding} + \to \scratchtoks} + + % todo: interference with presets in column (outer level) -> \setupcolumn[column] ...; + % misschien meerdere align switches + + \doifelsenothing{\XMLop{display-align}} + {\doifsomething{\XMLop{text-align}} + {\appendetoks + ,align=\XMLpav{fo:align-key}{fo:table-cell}{text-align}{normal} + \to \scratchtoks}} + {\doifsomething{\XMLop{text-align}} + {\appendetoks + ,align={\XMLpav{fo:display-align}{fo:table-cell}{display-align}{high},\XMLpav{fo:align-key}{fo:table-cell}{text-align}{normal}}, + \to \scratchtoks} + {\appendetoks + ,align=\XMLpav{fo:display-align}{fo:table-cell}{display-align}{high} + \to \scratchtoks}} + + \appendetoks + ,extras={\rescanXMLattributes{fo:table-cell}} + \to\scratchtoks + +\stopsetups + +% \startsetups fo:table-cell:setup + +% [\XMLpar{fo:table-cell}{text-indent}{}] + +% \edefXMLinhpar\xFOtextindent{fo:table-cell}{text-indent} + +% \doifsomething\xFOtextindent +% {\scratchdimen\hsize +% \setpercentdimen\scratchdimen\xFOtextindent +% \expanded{\setupindenting[\the\scratchdimen]}} + +% \stopsetups + +\startsetups fo:table-cell:stop + + \doif{\XMLop{ends-row}}{true}{\eTR\inTABLErowfalse} + +\stopsetups %D Element: fo:list-block fo:list-item fo:list-body fo:list-item-label @@ -2842,6 +3136,7 @@ leader-pattern-width=12pt, break-before=, keep-with-next=, % space-between-list-rows=, % ? mentioned in bradley +text-indent=0pt, % yes keep-with-previous=] {\beginXMLelement\directsetup{fo:list:start}} {\directsetup{fo:list:stop}\endXMLelement} @@ -2931,9 +3226,14 @@ leader-pattern-width=12pt, % 24pt en 6pt in fo:root instellen + % \tracebackXMLattribute{provisional-distance-between-starts} + \edefXMLinh \FOprodis {provisional-distance-between-starts} \edefXMLinh \FOprolab {provisional-label-separation} +% \edef\FOprodis{\XMLpar{fo}{provisional-distance-between-starts}{}} +% \edef\FOprolab{\XMLpar{fo}{provisional-label-separation}{}} + \edef\FOprodis{\ifx\FOprodis\empty24pt\else\FOprodis\fi} \edef\FOprolab{\ifx\FOprolab\empty 6pt\else\FOprolab\fi} @@ -2999,6 +3299,8 @@ leader-pattern-width=12pt, \stopsetups +% todo: textindent + \startsetups fo:list-item:display \endgraf @@ -3007,8 +3309,8 @@ leader-pattern-width=12pt, \advance\rightskip\FOlistitembodyrightskip \dontleavehmode \valign\bgroup\forgetall\vss##\vss\cr - \iftracingFO\ruledvtop\else\vbox\fi{\hsize\FOlistitemlabelhsize\XMLflush{fo:list-item-label}}\cr - \iftracingFO\ruledvtop\else\vbox\fi{\hsize\FOlistitembodyhsize \XMLflush{fo:list-item-body}}\cr + \iftracingFO\ruledvtop\else\vbox\fi{\hsize\FOlistitemlabelhsize\directsetup{fo:list-item-label:setup}\XMLflush{fo:list-item-label}}\cr + \iftracingFO\ruledvtop\else\vbox\fi{\hsize\FOlistitembodyhsize \directsetup{fo:list-item-body:setup}\XMLflush{fo:list-item-body}}\cr \egroup % \dontleavehmode \placesidebyside % or maybe paired boxes (legends) @@ -3019,17 +3321,44 @@ leader-pattern-width=12pt, \stopsetups +\newtoks\savedeverypar \savedeverypar\everypar + \startsetups fo:list-item:text + \everypar\savedeverypar % \appendtoksonce\insertparagraphintro\to\everypar % hack, binnen footnote ... + \advance\leftskip \FOlistitembodyleftskip \advance\rightskip\FOlistitembodyrightskip \setupparagraphintro[first][\directsetup{fo:list-item-label:process}] \setupparagraphintro[next] [\begstrut\resetpenalties\clubpenalties] + \directsetup{fo:list-item-body:setup} \XMLflush{fo:list-item-body}\endstrut \stopsetups +\startsetups fo:list-item-label:setups + + \edefXMLinhpar\xFOtextindent{fo:item-label}{text-indent} + + \doifsomething\xFOtextindent + {\scratchdimen\hsize + \setpercentdimen\scratchdimen\xFOtextindent + \expanded{\setupindenting[\the\scratchdimen]}} + +\stopsetups + +\startsetups fo:list-item-body:setups + + \edefXMLinh\xFOtextindent{fo:item-body}{text-indent} + + \doifsomething\xFOtextindent + {\scratchdimen\hsize + \setpercentdimen\scratchdimen\xFOtextindent + \expanded{\setupindenting[\the\scratchdimen]}} + +\stopsetups + \newbox\FOitembox \startsetups fo:list-item-label:process @@ -3038,6 +3367,7 @@ leader-pattern-width=12pt, \forgetall \postponefootnotes \hsize\FOlistitemlabelhsize + \directsetup{fo:list-item-label:setup} \XMLflush{fo:list-item-label} \egroup \getnoflines{\dimexpr(\ht\FOitembox+\dp\FOitembox)} @@ -3492,6 +3822,10 @@ leader-pattern-width=12pt, {\the\FOreferences \global\FOreferences\emptytoks} +\def\doFOreference#1% + {\doifsomething{\XMLpar{#1}{id}{}} + {\expanded{\reference[\XMLpar{#1}{id}{}]{\XMLpar{fo:page-sequence}{format}{}}}}} + \appendtoks \flushFOreferences \to \everypar \appendtoks \flushFOreferences \to \neverypar % check ! @@ -3499,70 +3833,8 @@ leader-pattern-width=12pt, %D Graphics: static frames -% can become mp-foeg - \startMPinclusions - FoNone := 0 ; FoHidden := 1 ; FoDotted := 2 ; FoDashed := 3 ; FoSolid := 4 ; - FoDouble := 5 ; FoGroove := 6 ; FoRidge := 7 ; FoInset := 8 ; FoOutset := 9 ; - FoAll := 0 ; FoTop := 1 ; FoBottom := 2 ; FoLeft := 3 ; FoRight := 4 ; - FoMedium := .5pt ; FoThin := FoMedium/2 ; FoThick := FoMedium*2 ; - color FoBackgroundColor, FoNoColor, FoLineColor[] ; FoNoColor := (-1,-1,-1) ; - numeric FoLineWidth[], FoLineStyle[] ; - boolean FoFrame, FoBackground, FoSplit ; - FoFrame := FoBackground := FoSplit := false ; - FoBackgroundColor := white ; - FoDashFactor := .5 ; - FoDotFactor := .375 ; - for i = FoAll upto FoRight : - FoLineColor[i] := black ; - FoLineWidth[i] := .5pt ; - FoLineStyle[i] := FoNone ; - endfor ; - def DrawFoFrame(expr n, p) = - drawoptions(withcolor FoLineColor[n] withpen pencircle scaled FoLineWidth[n]) ; - if FoLineStyle[n] = FoNone : - % nothing - elseif FoLineStyle[n] = FoHidden : - % nothing - elseif FoLineStyle[n] = FoDotted : - draw p dashed (withdots scaled (FoDotFactor*FoLineWidth[n])) ; - elseif FoLineStyle[n] = FoDashed : - draw p dashed (evenly scaled (FoDashFactor*FoLineWidth[n])) ; - elseif FoLineStyle[n] = FoSolid : - draw p ; - elseif FoLineStyle[n] = FoDouble : - draw p enlarged FoLineWidth[n] ; draw p enlarged -FoLineWidth[n] ; - elseif FoLineStyle[n] = FoGroove : - draw p ; - draw p withpen pencircle scaled .5FoLineWidth[n] withcolor (inverted FoLineColor[n] softened .5) ; - elseif FoLineStyle[n] = FoRidge : - draw p withcolor (inverted FoLineColor[n] softened .5) ; - draw p withpen pencircle scaled .5FoLineWidth[n] ; - elseif FoLineStyle[n] = FoInset : - draw p ; draw p inset 2.5FoLineWidth[n] ; - elseif FoLineStyle[n] = FoOutset : - draw p ; draw p outset 2.5FoLineWidth[n] ; - fi ; - enddef ; - primarydef p outset d = - ((lrcorner p -- urcorner p -- ulcorner p -- llcorner p -- cycle) - shifted (d*(-1,1)) cutbefore topboundary p) cutafter leftboundary p - enddef ; - primarydef p inset d = - ((ulcorner p -- llcorner p -- lrcorner p -- urcorner p -- cycle) - shifted (d*(1,-1)) cutbefore bottomboundary p) cutafter rightboundary p - enddef ; - vardef equalpaths(expr p, q) = - if length(p) = length(q) : - save ok ; boolean ok ; ok := true ; - for i = 0 upto length(p)-1 : - ok := ok and (round(point i of p) = round(point i of q)) ; - endfor ; - ok - else : - false - fi - enddef ; + input mp-fobg.mp ; \stopMPinclusions \def\unknownMPcolor{FoNoColor} @@ -3635,12 +3907,16 @@ leader-pattern-width=12pt, \startuseMPgraphic{region-start} \includeMPgraphic{region-do} \stopuseMPgraphic \startuseMPgraphic{region-end} \includeMPgraphic{region-do} \stopuseMPgraphic +\startnotmode[fo-no-bg] + \defineoverlay[region-body-graphic] [\useMPgraphic{region-body}{location=body}] \defineoverlay[region-before-graphic][\useMPgraphic{region-before}{location=before}] \defineoverlay[region-after-graphic] [\useMPgraphic{region-after}{location=after}] \defineoverlay[region-start-graphic] [\useMPgraphic{region-start}{location=start}] \defineoverlay[region-end-graphic] [\useMPgraphic{region-end}{location=end}] +\stopnotmode + % more efficient: todo: relocate and move to page background % \def\FoRegionWidth#1#2% diff --git a/tex/context/base/x-foxet.tex b/tex/context/base/x-foxet.tex index e58d93c60..78cc0efb7 100644 --- a/tex/context/base/x-foxet.tex +++ b/tex/context/base/x-foxet.tex @@ -8,6 +8,8 @@ \usemodule[fo,fe,fx,fu,fs,mathml] +\usemodule[fp] % passivetex bonus + % \autoXMLnamespace[mml,mm,mathml] -\endinput \ No newline at end of file +\endinput diff --git a/tex/context/base/x-set-01.tex b/tex/context/base/x-set-01.tex new file mode 100644 index 000000000..65fd78865 --- /dev/null +++ b/tex/context/base/x-set-01.tex @@ -0,0 +1,75 @@ +%D \module +%D [ file=x-set-01, +%D version=2004.10.31, +%D remark=setupx.tex: 1998.07.20 and later, +%D title=\CONTEXT\ Setup Mappings, +%D subtitle=Macro Definitions, +%D author=Hans Hagen, +%D date=\currentdate, +%D copyright={PRAGMA / Hans Hagen \& Ton Otten}] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. + +\unprotect + +\def\SETUPnamespace{xmlns:cd="http://www.pragma-ade.com/commands"} + +\bgroup \catcode`\<=\@@other + +\unexpanded\gdef\dostring#1#2#3% + {\immediate\write\scratchwrite{#1<#2cd:#3>}} + +\gdef\doline#1% + {\immediate\write\scratchwrite{#1}} + +\egroup + +\def\startsetupfile + {\immediate\openout\scratchwrite=keys-\currentlanguage.xml + \doline{\string} + \doline{} + \dostring{}{}{interface \SETUPnamespace\space name="context" language="\currentlanguage" version="\contextversion"}} + +\def\stopsetupfile + {\doline{} + \dostring{}{/}{interface} + \immediate\closeout\scratchwrite} + +\def\interfacecomponenttoxml#1#2#3% + {\doifelse{#3}\nointerfaceobject + {\dostring{\space\space\space\space}{}{#1 name="#2" value="#2"/}} + {\dostring{\space\space\space\space}{}{#1 name="#2" value="#3"/}}} + +\def\setinterfaceconstant{\interfacecomponenttoxml{constant}} +\def\setinterfacevariable{\interfacecomponenttoxml{variable}} +\def\setinterfaceelement {\interfacecomponenttoxml{element}} +\def\setinterfacecommand {\interfacecomponenttoxml{command}} + +\def\startinterfacexmlcomponent{\doline{}\dostring{\space\space}{}} % #1 +\def\stopinterfacexmlcomponent {\dostring{\space\space}{/}} % #1 + +\let\normalstartvariables\startvariables \let\normalstopvariables\stopvariables +\let\normalstartconstants\startconstants \let\normalstopconstants\stopconstants +\let\normalstartcommands \startcommands \let\normalstopcommands \stopcommands +\let\normalstartelements \startelements \let\normalstopelements \stopelements + +\def\startvariables{\startinterfacexmlcomponent{variables}\normalstartvariables} +\def\startconstants{\startinterfacexmlcomponent{constants}\normalstartconstants} +\def\startcommands {\startinterfacexmlcomponent{commands} \normalstartcommands } +\def\startelements {\startinterfacexmlcomponent{elements} \normalstartelements } + +\def\stopvariables{\stopinterfacexmlcomponent{variables}\normalstopvariables} +\def\stopconstants{\stopinterfacexmlcomponent{constants}\normalstopconstants} +\def\stopcommands {\stopinterfacexmlcomponent{commands} \normalstopcommands } +\def\stopelements {\stopinterfacexmlcomponent{elements} \normalstopelements } + +\protect + +\starttext + \startsetupfile + \input mult-con.tex + \input mult-com.tex + \stopsetupfile +\stoptext diff --git a/tex/context/base/x-set-02.tex b/tex/context/base/x-set-02.tex new file mode 100644 index 000000000..05f1616c6 --- /dev/null +++ b/tex/context/base/x-set-02.tex @@ -0,0 +1,33 @@ +%D \module +%D [ file=x-set-02, +%D version=2004.10.31, +%D remark=setupx.tex: 1998.07.20 and later, +%D title=\CONTEXT\ Setup Mappings, +%D subtitle=Macro Definitions, +%D author=Hans Hagen, +%D date=\currentdate, +%D copyright={PRAGMA / Hans Hagen \& Ton Otten}] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. + +\unprotect \bgroup \catcode`\<=\@@other + +\def\setinterfacecomponent#1#2#3% + {\doifelse{#3}\nointerfaceobject + {\setgvalue{\string<#1\string:#2\string>}{#2}} + {\setgvalue{\string<#1\string:#2\string>}{#3}}} + +\gdef\getinterfacecomponent#1#2% + {\executeifdefined{\string<#1\string:#2\string>}{#2}} + +\def\setinterfaceconstant{\setinterfacecomponent{constant}} % constant +\def\setinterfacevariable{\setinterfacecomponent{variable}} % variable +\def\setinterfaceelement {\setinterfacecomponent{string}} % element +\def\setinterfacecommand {\setinterfacecomponent{string}} % command + +\input mult-con.tex +\input mult-com.tex + +\egroup \protect \endinput diff --git a/tex/context/base/x-set-11.tex b/tex/context/base/x-set-11.tex new file mode 100644 index 000000000..2e4363159 --- /dev/null +++ b/tex/context/base/x-set-11.tex @@ -0,0 +1,743 @@ +%D \module +%D [ file=x-set-01, +%D version=2004.10.31, +%D remark=setupx.tex: 1998.07.20 and later, +%D title=\CONTEXT\ Setup Definitions, +%D subtitle=Macro Definitions, +%D author=Hans Hagen, +%D date=\currentdate, +%D copyright={PRAGMA / Hans Hagen \& Ton Otten}] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. + +% module x-set-02 loads the mapping, after that we can say: +% +% \getinterfacecomponent{constant|variable|string}{tag} + +\usemodule[set-02] + +\unprotect + +% general + +\def\setupnumfont {} +\def\setuptxtfont {} +\def\setupintfont#1{\uppercase{#1}} +\def\setupvarfont {\sl} +\def\setupoptfont {\sl} +\def\setupalwcolor {} +\def\setupoptcolor {darkgray} + +\defineXMLenvironmentsave [cd:content] [list=,state=] + {\simpleSETUPargument{content}\blank[\v!halfline]\ignorespaces} + {\ignorespaces} + +\startmessages dutch library: setup + title: setup + formula: formule + number: getal + list: lijst + dimension: maat + mark: markering + reference: verwijzing + command: commando + file: file + name: naam + identifier: naam + text: tekst + section: sectie + singular: naam enkelvoud + plural: naam meervoud + matrix: n*m + see: zie + inherits: erft van + 1: de karakters < en > zijn globaal actief! + 2: -- wordt verwerkt + 3: -- is niet gedefinieerd + 4: -- wordt nogmaals verwerkt + optional: optioneel + displaymath: formule + index: ingang + math: formule + nothing: leeg + file: file + position: positie + reference: verwijzing + csname: naam + destination: bestemming + triplet: triplet + word: woord + content: tekst +\stopmessages + +\startmessages english library: setup + title: setup + formula: formula + number: number + list: list + dimension: dimension + mark: mark + reference: reference + command: command + file: file + name: name + identifier: identifier + text: text + section: section + singular: singular name + plural: plural name + matrix: n*m + see: see + inherits: inherits from + 1: the characters < and > are globally active! + 2: -- is processed + 3: -- is undefined + 4: -- is processed again + optional: optioneel + displaymath: formula + index: entry + math: formula + nothing: empty + file: file + position: position + reference: reference + csname: name + destination: destination + triplet: triplet + word: word + content: text +\stopmessages + +\startmessages german library: setup + title: Setup + formula: Formel + number: Nummer + list: Liste + dimension: Dimension + mark: Beschriftung + reference: Referenz + command: Befehl + file: Datei + name: Name + identifier: Name + text: Text + section: Abschnitt + singular: singular + plural: plural + matrix: n*m + see: siehe + inherits: inherits from + 1: Die Zeichen < und > gelten global! + 2: -- wird verarbeitet + 3: -- ist undefiniert + 4: -- ist mehrmals verarbeitet + optional: optioneel + displaymath: formula + index: entry + math: formula + nothing: empty + file: file + position: position + reference: reference + csname: name + destination: destination + triplet: triplet + word: word + content: text +\stopmessages + +\startmessages czech library: setup + title: setup + formula: rovnice + number: cislo + list: seznam + dimension: dimenze + mark: znacka + reference: reference + command: prikaz + file: soubor + name: jmeno + identifier: jmeno + text: text + section: sekce + singular: jmeno v singularu + plural: jmeno v pluralu + matrix: n*m + see: viz + inherits: inherits from + 1: znaky < a > jsou globalne aktivni! + 2: -- je zpracovano + 3: -- je nedefinovano + 4: -- je zpracovano znovu + optional: optioneel + displaymath: formula + index: entry + math: formula + nothing: empty + file: file + position: position + reference: reference + csname: name + destination: destination + triplet: triplet + word: word + content: text +\stopmessages + +\startmessages italian library: setup + title: setup + formula: formula + number: number + list: list + dimension: dimension + mark: mark + reference: reference + command: command + file: file + name: name + identifier: name + text: text + section: section + singular: singular name + plural: plural name + matrix: n*m + see: see + inherits: inherits from + 1: the characters < and > are globally active! + 2: -- is processed + 3: -- is undefined + 4: -- is processed again + optional: optioneel + displaymath: formula + index: entry + math: formula + nothing: empty + file: file + position: position + reference: reference + csname: name + destination: destination + triplet: triplet + word: word + content: text +\stopmessages + +\startmessages romanian library: setup + title: setari + formula: formula + number: numar + list: lista + dimension: dimensiune + mark: marcaj + reference: referinta + command: comanda + file: fisier + name: nume + identifier: nume + text: text + section: sectiune + singular: nume singular + plural: nume pluram + matrix: n*m + see: vezi + inherits: inherits from + 1: caracterele < si > sunt active global! + 2: este procesat -- + 3: -- este nedefinit + 4: -- este procesat din nou + optional: optioneel + displaymath: formula + index: entry + math: formula + nothing: empty + file: file + position: position + reference: reference + csname: name + destination: destination + triplet: triplet + word: word + content: text +\stopmessages + +\def\c!setup!internal!#1% + {{\dogetmessage{setup}{#1}% + \expanded{\setupintfont{\currentmessagetext}}}} + +\def\c!setup!text!#1% + {{\dogetmessage{setup}{#1}% + \setupvarfont{\currentmessagetext}}} + +\def\c!setup!command!#1% + {{\setupvarfont{\texescape...#1}}} + +\def\??stp{@@stp} + +\defineregister + [texmacro] + [texmacros] + +\definesorting + [texcommand] + [texcommands] + +\setupsorting + [texcommand] + [\c!command=\@@stpcommand, + \c!criterium=\@@stpcriterium] + +\definesorting + [eachtexcommand] + [alltexcommands] + +\setupsorting + [eachtexcommand] + [\c!command=\@@stpcommand, + \c!criterium=\v!all] + +\pushmacro\setuptext + +\defineframedtext + [setuptext] + [\c!width=\hsize, + \c!height=\v!fit, + \c!align=\v!right, + \c!offset=0.75em] + +\popmacro\setuptext + +\newif\ifshortsetup + +\def\setup {\shortsetupfalse\dosetup} +\def\shortsetup{\shortsetuptrue\dosetup} +\def\setupsetup{\dodoubleargument\getparameters[\??stp]} + +\setupsetup + [\c!before=, + \c!after=, + \c!command=\setup, + \c!criterium=\v!used] + +% verwijzing: 0 geen verwijzingen plaatsen / wel genereren +% 1 alleen bij zie plaatsen / wel genereren +% 2 alle verwijzingen plaatsen / niet genereren +% 3 bij zie commando klikken / wel genereren + +\setupsetup + [\c!reference=0] + +\def\placesetup + {\bgroup + \getvalue{\e!place\e!listof texcommands} + \egroup} + +\def\placeeverysetup % for fun purposes only + {\bgroup + \setupsetup[\c!reference=2]% + \setupreferencing[\c!state=\v!stop]% + \getvalue{\e!place\e!listof alltexcommands}% + \egroup} + +\let\plaatssetup \placesetup +\let\plaatselkesetup\placeeverysetup + +\def\dosetup#1{{\enableXML\flushXMLelement{stp:#1}}} + +\defineXMLenvironment [cd:command] [name=,type=,generated=,interactive=] + {} + {\showSETUPrecord} + +\def\showSETUPrecord + {\getvalue{startsetuptext} + \tttf + \nohyphens + \veryraggedright + \startXMLmapping [one] + \doglobal\newcounter\currentSETUPargument + \global\let\maximumSETUPargument\currentSETUPargument + \bgroup + \doifXMLop{generated}{yes}{\ttsl}% + \doifelseXMLop{type}{environment} + {\tex{\e!start}}{\tex{}}\ignorespaces + \XMLflush{cd:sequence}\ignorespaces + \egroup + \doifelseXMLempty{cd:arguments} + {} + {\bgroup + \setbox0=\hbox{\XMLflush{cd:arguments}}% + \global\let\maximumSETUPargument\currentSETUPargument + \doglobal\newcounter\currentSETUPargument + \ignorespaces\XMLflush{cd:arguments}% + \doif{\XMLpar{cd:command}{type}{}}{environment} + {\hskip.5em\unknown\hskip.5em + \tex{\e!stop}\ignorespaces\XMLflush{cd:sequence}}% + \endgraf + \egroup + %\bgroup + % \tx + % \doif{\XMLpar{cd:command}{interactive}{}}{yes} {\quad INTERACTIVE}% + % \doif{\XMLpar{cd:command}{interactive}{}}{exclusive}{\quad INTERACTIVE ONLY}% + %\egroup + \startXMLmapping [two] + \bgroup + \doglobal\newcounter\currentSETUPargument + \blank[\v!line] + \switchtobodyfont[small] % kan sneller + \ignorespaces\XMLflush{cd:arguments}\endgraf + \egroup + \stopXMLmapping} + \stopXMLmapping + \getvalue{stopsetuptext}} + +\defineXMLenvironmentsave [cd:sequence] \ignorespaces \ignorespaces +\defineXMLenvironmentsave [cd:arguments] \ignorespaces \ignorespaces + +%D This is the first pass; here we generate the top line. + +\newcounter\currentSETUPargument +\def\currentSETUPwidth{0pt} + +% environmentsave ? + +\startXMLmapping [one] + +\defineXMLenvironmentsave [cd:string] [value=] + {\getinterfacecomponent{string}{\XMLop{value}}\ignorespaces} + {\ignorespaces} + +\defineXMLenvironmentsave [cd:variable] [value=] + {{\expanded{\setupintfont{\getinterfacecomponent{variable}{\XMLop{value}}}}}\ignorespaces} + {\ignorespaces} + +% moet een standaard type worden + +\defineXMLenvironmentsave [cd:assignments] [list=,state=] + {\showSETUPassignment\ignorespaces} {\ignorespaces} + +\defineXMLenvironmentsave [cd:keywords] [list=,state=] + {\showSETUPkeyword\ignorespaces} {\ignorespaces} + +\defineXMLenvironmentsave [cd:content] [list=,state=] + {\showSETUPcontent\ignorespaces} {\ignorespaces} + +\defineXMLenvironmentsave [cd:displaymath] [list=,state=] + {\showSETUPdisplaymath\ignorespaces} {\ignorespaces} + +\defineXMLenvironmentsave [cd:index] [list=,state=] + {\showSETUPindex\ignorespaces} {\ignorespaces} + +\defineXMLenvironmentsave [cd:math] [list=,state=] + {\showSETUPmath\ignorespaces} {\ignorespaces} + +\defineXMLenvironmentsave [cd:nothing] [list=,state=] + {\showSETUPnothing\ignorespaces} {\ignorespaces} + +\defineXMLenvironmentsave [cd:file] [list=,state=] + {\showSETUPfile\ignorespaces} {\ignorespaces} + +\defineXMLenvironmentsave [cd:position] [list=,state=] + {\showSETUPposition\ignorespaces} {\ignorespaces} + +\defineXMLenvironmentsave [cd:reference] [list=,state=] + {\showSETUPreference\ignorespaces} {\ignorespaces} + +\defineXMLenvironmentsave [cd:csname] [list=,state=] + {\showSETUPcsname\ignorespaces} {\ignorespaces} + +\defineXMLenvironmentsave [cd:destination] [list=,state=] + {\showSETUPdestination\ignorespaces} {\ignorespaces} + +\defineXMLenvironmentsave [cd:triplet] [list=,state=] + {\showSETUPtriplet\ignorespaces} {\ignorespaces} + +\defineXMLenvironmentsave [cd:word] [list=,state=] + {\showSETUPword\ignorespaces} {\ignorespaces} + +\stopXMLmapping + +%D This is the second pass; here we generate the table. + +\startXMLmapping [two] + +\def\startfirstSETUPcolumn#1% + {\bgroup + \advance\leftskip 2em + \noindent\llap{\hbox to 2em{#1\hss}}} + +\def\stopfirstSETUPcolumn + {\endgraf + \egroup} + +\def\startsecondSETUPcolumn#1#2% + {\bgroup + \advance\hangindent \currentSETUPwidth + \advance\hangindent 2.5em + \noindent \hbox to \hangindent{#1\hss\hbox to 2.5em{\hss#2\hss}}} + +\def\stopsecondSETUPcolumn + {\endgraf + \egroup} + +\def\secondSETUPcolumn#1#2% + {\startsecondSETUPcolumn{#1}{#2}\stopsecondSETUPcolumn} + +\def\previousSETUPargument{\currentSETUPargument} + +\defineXMLenvironmentsave [cd:assignments] + {} + {\xdef\currentSETUPwidth{0pt}% + \bgroup + \defineXMLenvironment [cd:parameter] [name=] + {\setbox0=\hbox{\potentialXMLentity{\getinterfacecomponent{constant}{\XMLop{name}}}}% + \ifdim\wd0>\currentSETUPwidth\xdef\currentSETUPwidth{\the\wd0}\fi}% + {} + \setbox0=\vbox{\XMLflush{cd:assignments}}% + \egroup + \startfirstSETUPcolumn{\showSETUPnumber}% + \doifelseXMLempty{cd:assignments} + {\secondSETUPcolumn{\c!setup!text!{see} \previousSETUPargument}{}} + {\ignorespaces + \XMLflush{cd:assignments}% + \let\previousSETUPargument\currentSETUPargument}% + \stopfirstSETUPcolumn + \blank[\v!halfline] + \ignorespaces} + +\defineXMLenvironmentsave [cd:keywords] + {} + {\startfirstSETUPcolumn{\showSETUPnumber}% + \doifelseXMLempty{cd:keywords} + {\secondSETUPcolumn{see \previousSETUPargument}{}} + {\ignorespaces + \XMLflush{cd:keywords}% + \let\previousSETUPargument\currentSETUPargument}% + \stopfirstSETUPcolumn + \blank[\v!halfline] + \ignorespaces} + +\defineXMLenvironment [cd:parameter] [name=] + {\startsecondSETUPcolumn{\potentialXMLentity{\getinterfacecomponent{constant}{\XMLop{name}}}}{=}% + \ignorespaces} + {\stopsecondSETUPcolumn + \ignorespaces} + +\defineXMLenvironmentsave [cd:constant] [type=,default=] + {\doifXMLop{default}{yes}{\underbar}% + {\potentialXMLentity{\getinterfacecomponent{variable}{\XMLop{type}}}}\quad\ignorespaces} + {\ignorespaces} + +\defineXMLenvironmentsave [cd:variable] [type=] + {\potentialXMLentity{\getinterfacecomponent{variable}{\XMLop{type}}}\quad\ignorespaces} + {\ignorespaces} + +\defineXMLenvironmentsave [cd:inherit] [name=] + {\secondSETUPcolumn{\c!setup!text!{inherits} \tex{}\getinterfacecomponent{string}{\XMLop{name}}}{}\ignorespaces} + {\ignorespaces} + +\def\simpleSETUPargument#1% + {\startfirstSETUPcolumn{\showSETUPnumber}% + \c!setup!internal!{#1}% + \stopfirstSETUPcolumn} + +\defineXMLenvironmentsave [cd:content] [list=,state=] + {\simpleSETUPargument{content}\blank[\v!halfline]\ignorespaces} + {\ignorespaces} + +\defineXMLenvironmentsave [cd:displaymath] [list=,state=] + {\simpleSETUPargument{display math}\blank[\v!halfline]\ignorespaces} + {\ignorespaces} + +\defineXMLenvironmentsave [cd:index] [list=,state=] + {\simpleSETUPargument{index}\blank[\v!halfline]\ignorespaces} + {\ignorespaces} + +\defineXMLenvironmentsave [cd:math] [list=,state=] + {\simpleSETUPargument{math}\blank[\v!halfline]\ignorespaces} + {\ignorespaces} + +\defineXMLenvironmentsave [cd:nothing] [list=,state=] + {\simpleSETUPargument{nothing}\blank[\v!halfline]\ignorespaces} + {\ignorespaces} + +\defineXMLenvironmentsave [cd:file] [list=,state=] + {\simpleSETUPargument{file name}\blank[\v!halfline]\ignorespaces} + {\ignorespaces} + +\defineXMLenvironmentsave [cd:position] [list=,state=] + {\simpleSETUPargument{position}\blank[\v!halfline]\ignorespaces} + {\ignorespaces} + +\defineXMLenvironmentsave [cd:reference] [list=,state=] + {\simpleSETUPargument{reference}\blank[\v!halfline]\ignorespaces} + {\ignorespaces} + +\defineXMLenvironmentsave [cd:csname] [list=,state=] + {\simpleSETUPargument{csname}\blank[\v!halfline]\ignorespaces} + {\ignorespaces} + +\defineXMLenvironmentsave [cd:destination] [list=,state=] + {\simpleSETUPargument{destination}\blank[\v!halfline]\ignorespaces} + {\ignorespaces} + +\defineXMLenvironmentsave [cd:triplet] [list=,state=] + {\simpleSETUPargument{triplet}\blank[\v!halfline]\ignorespaces} + {\ignorespaces} + +\defineXMLenvironmentsave [cd:word] [list=,state=] + {\simpleSETUPargument{word}\blank[\v!halfline]\ignorespaces} + {\ignorespaces} + +\stopXMLmapping + +\defineXMLentity [cd:command] {\c!setup!internal!{command}} +\defineXMLentity [cd:dimension] {\c!setup!internal!{dimension}} +\defineXMLentity [cd:file] {\c!setup!internal!{file}} +\defineXMLentity [cd:name] {\c!setup!internal!{identifier}} +\defineXMLentity [cd:character] {\c!setup!internal!{character}} +\defineXMLentity [cd:mark] {\c!setup!internal!{mark}} +\defineXMLentity [cd:number] {\c!setup!internal!{number}} +\defineXMLentity [cd:reference] {\c!setup!internal!{reference}} +\defineXMLentity [cd:plural] {\c!setup!internal!{plural}} +\defineXMLentity [cd:singular] {\c!setup!internal!{singular}} +\defineXMLentity [cd:text] {\c!setup!internal!{text}} +\defineXMLentity [cd:formula] {\c!setup!internal!{formula}} +\defineXMLentity [cd:file] {\c!setup!internal!{file}} +\defineXMLentity [cd:matrix] {\c!setup!internal!{matrix}} +\defineXMLentity [cd:list] {\c!setup!internal!{list}} +\defineXMLentity [cd:section] {\c!setup!internal!{section}} + +\defineXMLentity [cd:noargument] {\c!setup!command!{}} +\defineXMLentity [cd:oneargument] {\c!setup!command!{\#1}} +\defineXMLentity [cd:twoarguments] {\c!setup!command!{\#1\#2}} +\defineXMLentity [cd:threearguments] {\c!setup!command!{\#1\#2\#3}} + +%D Todo: + +\defineXMLprocess [cd:choice] + +%D Auxiliary. + +\unexpanded\def\showSETUP#1#2% + {\bgroup + \doglobal\increment\currentSETUPargument + \setbox0=\hbox + {\doifelseXMLop{list}{yes}{#2}{#1}}% + \setbox2=\hbox to \wd0 + {\hss + \raise1ex\hbox + {\tx\ifcase\maximumSETUPargument\relax + \or*\else\currentSETUPargument + \fi}% + \hss}% + \setbox4=\hbox to \wd0 + {\hss + \lower2ex\hbox + \bgroup + \txx\doifXMLop{optional}{yes}{\c!setup!internal!{optional}}% + \egroup + \hss}% + \ht2\ht\strutbox + \dp4\dp\strutbox + \hskip.5em\hsmash{\box0}\hsmash{\box4}\box2% + \egroup} + +\def\showSETUPnumber + {\doglobal\increment\currentSETUPargument + \hbox to 2em + {\ifcase\maximumSETUPargument\relax + \or*\else\currentSETUPargument + \fi + \hss}} + +\def\showSETUPassignment {\showSETUP + {[.\lower.5ex\hbox{=}.]} + {[..,.\lower.5ex\hbox{=}.,..]}} + +\def\showSETUPkeyword {\showSETUP + {[...]} + {[...,...]}} + +\def\showSETUPargument {\showSETUP + {\leftargument..\rightargument} + {\leftargument..,...,..\rightargument}} + +\def\showSETUPdisplaymath {\showSETUP + {\$\$...\$\$} + {\$\$...\$\$}} + +\def\showSETUPindex {\showSETUP + {\leftargument...\rightargument} + {\leftargument..+...+..\rightargument}} + +\def\showSETUPmath {\showSETUP + {\$...\$} + {\$...\$}} + +\def\showSETUPnothing {\showSETUP + {...} + {}} + +\def\showSETUPfile {\showSETUP + {~...~} + {}} + +\def\showSETUPposition {\showSETUP + {(...)} + {(...,...)}} + +\def\showSETUPreference {\showSETUP + {[...]} + {[...,...]}} + +\def\showSETUPcsname {\showSETUP + {{\c!setup!command!{}}} + {}} + +\def\showSETUPdestination {\showSETUP + {[\leftargument..[ref]\rightargument]} + {[..,\leftargument..[ref,..]\rightargument,..]}} + +\def\showSETUPtriplet {\showSETUP + {[x:y:z=]} + {[x:y:z=,..]}} + +\def\showSETUPword {\showSETUP + {\leftargument...\rightargument} + {\leftargument.. ... ..\rightargument}} + +\def\showSETUPcontent {\showSETUP + {\leftargument...\rightargument} + {\leftargument.. ... ..\rightargument}} + +%\def\c!par!{\c!setup!internal!{endofpar}} +%\def\c!repeat!{\c!opt!{{\setupvarfont n}*}} +%\showSETUP\def\c!par!{\texescape par} +%\showSETUP\def\c!sep!{\texescape\texescape} +%\def\c!par!{\addtypespec{delimiter}{par}} % \par +%\def\c!sep!{\addtypespec{separator}{backslash}} % \\ +%\def\c!repeat!{} +%\def\c!tex!#1{\addtypespec{command}{#1}\doanother{tex}} + +\startXMLmapping[zero] + +\defineXMLenvironmentsave [cd:command] [name=,type=,generated=,interactive=] + {} + {\doifelseXMLop{type}{environment} + {\edef\currentSETUPname{start\getinterfacecomponent{string}{\XMLop{name}}}} + {\edef\currentSETUPname{\getinterfacecomponent{string}{\XMLop{name}}}}% + \doifXMLop{generated}{yes} + {\edef\currentSETUPname{\currentSETUPname*}}% + \doglobal\saveXMLdatainelement{stp:\currentSETUPname}{cd:command}{cd:command}% + \expanded{\eachtexcommand[stp:x:\currentSETUPname]{\currentSETUPname}}% + \expanded{\texcommand [stp:y:\currentSETUPname]{\currentSETUPname}}} + +\stopXMLmapping + +\def\loadsetups + {\startXMLmapping[zero] + \processXMLfilegrouped{cont-en.xml} + \stopXMLmapping} + +\protect \endinput diff --git a/tex/context/base/x-set-12.tex b/tex/context/base/x-set-12.tex new file mode 100644 index 000000000..a0fbbd22d --- /dev/null +++ b/tex/context/base/x-set-12.tex @@ -0,0 +1,211 @@ +%D \module +%D [ file=x-set-02, +%D version=2004.10.31, +%D remark=setupx.tex: 1998.07.20 and later, +%D title=\CONTEXT\ Setup Definitions, +%D subtitle=Macro Definitions, +%D author=Hans Hagen, +%D date=\currentdate, +%D copyright={PRAGMA / Hans Hagen \& Ton Otten}] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. + +\usemodule[set-11] + +\unprotect + +\loadsetups + +\startinterface dutch \definecolor[LocalColor][green] \stopinterface +\startinterface english \definecolor[LocalColor][red] \stopinterface +\startinterface german \definecolor[LocalColor][blue] \stopinterface +\startinterface czech \definecolor[LocalColor][magenta] \stopinterface +\startinterface italian \definecolor[LocalColor][cyan] \stopinterface +\startinterface romanian \definecolor[LocalColor][yellow] \stopinterface + +\startinterface english \definecolor[TitleColor][g=.5,b=.5] \stopinterface +\startinterface dutch \definecolor[TitleColor][r=.5,b=.5] \stopinterface +\startinterface german \definecolor[TitleColor][r=.5,g=.5] \stopinterface +\startinterface italian \definecolor[TitleColor][r=.5] \stopinterface +\startinterface czech \definecolor[TitleColor][g=.5] \stopinterface +\startinterface romanian \definecolor[TitleColor][b=.5] \stopinterface + +\definecolor [lightgray] [s=.9] +\definecolor [darkgray] [s=.1] + +\usetypescript[palatino][\defaultencoding] +\setupbodyfont[palatino,9pt] + +\setupcolors + [\c!state=\v!start] + +\defineoverlay + [cover] + [\hbox to \paperwidth{\hss\reuseMPgraphic{cover+back}}] + +\defineoverlay + [back] + [\hbox to \paperwidth{\reuseMPgraphic{cover+back}\hss}] + +\startreusableMPgraphic{cover+back} + numeric h, w ; path p, q, r ; color f, d ; pair s ; + h := OverlayHeight ; w := 2*OverlayWidth ; + r := unitsquare xyscaled (w,h) ; + fill r withcolor \MPcolor{lightgray} ; + set_grid(w,h,w/8,w/16) ; + forever : + s := center r randomized (w,h) ; + if new_on_grid(xpart s, ypart s) : + s := (dx,dy) ; + p := fullsquare xyscaled(w/4,w/8) ; + q := (-4w,ypart ulcorner p) -- + .5[ulcorner p, urcorner p] -- + (4w,ypart urcorner p) ; + q := q shifted (0,-w/24) ; + p := p randomized (w/40,w/40) ; + q := q randomized (0,w/100) ; + q := q cutafter (p cutafter point 3 of p) ; + q := q cutbefore (p cutbefore point 3 of p) ; + d := .5[\MPcolor{LocalColor},\MPcolor{lightgray}] randomized (.5,.9) ; + f := \MPcolor{lightgray} randomized (.5,.9) ; + pickup pencircle scaled (w/100) ; + fill p shifted s withcolor f ; + draw p shifted s withcolor d ; + draw q shifted s withcolor d ; + fi ; + exitif grid_full ; + endfor ; + setbounds currentpicture to r ; +\stopreusableMPgraphic + +\definelayout + [titlepage] + [\c!backspace=1cm, + \c!topspace=1cm, + \c!width=\v!middle, + \c!height=\v!middle, + \c!header=0pt, + \c!footer=0pt] + +\setuplayout + [\c!backspace=2cm, + \c!topspace=1.5cm, + \c!header=0cm, + \c!footer=0cm, + \c!width=\v!middle, + \c!height=\v!middle] + +\setuppagenumbering + [\c!alternative=\v!doublesided] + +\setupsetup + [\c!criterium=\v!all, + \c!reference=0] + +\setupframedtexts + [setuptext] + [\c!frame=\v!on, + \c!rulethickness=1pt, + \c!framecolor=TitleColor] + +\setupunderbar + [\c!rulethickness=1pt, + \c!rulecolor=TitleColor] + +\starttext + +\setupbackgrounds + [\v!rightpage] + [\c!background=cover] + +\setuplayout + [titlepage] + +\startmakeup[\v!standard] + \dontcomplain + \startcolor[TitleColor] + \definedfont[RegularBold at 100pt]\setstrut + \setupalign[\v!left] + \strut Con\TeX t \par + \definedfont[RegularBold at 50pt]\setstrut + \startinterface dutch \strut commando's \par \stopinterface + \startinterface english \strut commands \par \stopinterface + \startinterface german \strut befehle \par \stopinterface + \startinterface czech \strut prikaz\'y \par \stopinterface + \startinterface italian \strut comandi \par \stopinterface + \startinterface romanian \strut comenzile \par \stopinterface + \vfill + \definedfont[RegularBold at 150pt]\setstrut + \startinterface dutch NL\stopinterface + \startinterface english EN\stopinterface + \startinterface german DE\stopinterface + \startinterface czech CZ\stopinterface + \startinterface italian IT\stopinterface + \startinterface romanian RO\stopinterface + \stopcolor +\stopmakeup + +\setuplayout % needed ? + +\setupbackgrounds + [\v!rightpage] + [\c!background=] + +\startmakeup[\v!standard] + \dontcomplain + \startcolor[TitleColor] + \definedfont[RegularBold at 100pt]\setstrut + \setupalign[\v!left] + \strut Con\TeX t \par + \definedfont[RegularBold at 50pt]\setstrut + \startinterface dutch \strut commando's \par \stopinterface + \startinterface english \strut commands \par \stopinterface + \startinterface german \strut befehle \par \stopinterface + \startinterface czech \strut prikaz\'y \par \stopinterface + \startinterface italian \strut comandi \par \stopinterface + \startinterface romanian \strut comenzile \par \stopinterface + \vfill + \definedfont[RegularBold at 24pt]\setupinterlinespace + \startinterface dutch \strut nl / nederlands \par \stopinterface + \startinterface english \strut en / english \par \stopinterface + \startinterface german \strut de / deutsch \par \stopinterface + \startinterface czech \strut cz / \^cesk\'y \par \stopinterface + \startinterface italian \strut it / italiano \par \stopinterface + \startinterface romanian \strut ro / rom\^{a}n\u{a} \par \stopinterface + \par \strut \currentdate \par + \stopcolor +\stopmakeup + +\protect + +\placeeverysetup + +\unprotect + +\page[\v!yes,\v!blank,\v!right,\v!left] + +\setuplayout + [titlepage] + +\setupbackgrounds + [\v!leftpage] + [\c!background=back] + +\startmakeup[\v!standard][\c!page=] + \dontcomplain + \startcolor[TitleColor] + \definedfont[RegularBold at 24pt]\setupinterlinespace + \setupalign[\v!left] + \vfill + PRAGMA ADE \par + Ridderstraat 27 \par + 8061GH Hasselt NL \par + www.pragma-ade.com \par + \stopcolor +\stopmakeup + +\protect + +\stoptext diff --git a/tex/context/base/xtag-ini.tex b/tex/context/base/xtag-ini.tex index 0e08bc083..c064deca8 100644 --- a/tex/context/base/xtag-ini.tex +++ b/tex/context/base/xtag-ini.tex @@ -179,7 +179,6 @@ \edef\@@XMLdepth {\@@XML dep} % used to track nesting \edef\@@XMLdopth {\@@XML dop} % used to track nesting \edef\@@XMLsave {\@@XML sav} % namespace for saved elements -\edef\@@XMLglobal {\@@XML glb} % global assignment \iffalse % slightly faster @@ -200,7 +199,6 @@ \edef\@@XMLdepth {\@@XML n} % used to track nesting \edef\@@XMLdopth {\@@XML o} % used to track nesting \edef\@@XMLsave {\@@XML p} % namespace for saved elements -\edef\@@XMLglobal {\@@XML x} % global assignment \fi @@ -906,50 +904,29 @@ % use begin/end, the backtracking stops when a non-empty value is % encountered; maybe we will add some keyword (inherit) some day -% \def\XMLinh#1% will recurse so no trickery can be used -% {\ifcsname\@@XMLvariable:\XMLpureancestor\plusone:#1\endcsname -% \@EA\@EA\csname\@@XMLvariable:\XMLpureancestor\plusone:#1\endcsname -% \fi} - -\def\XMLinh#1% - {\@EA\ifx\csname\@@XMLvariable:\currentXMLelement:#1\endcsname\empty +\def\XMLinhpar#1#2% + {\@EA\ifx\csname\@@XMLvariable:#1:#2\endcsname\empty \@EA\pXMLinh \else - \csname\@@XMLvariable:\currentXMLelement:#1\endcsname + \csname\@@XMLvariable:#1:#2\endcsname \@EA\gobbletwoarguments - \fi\XMLdepth{#1}} + \fi\XMLdepth{#2}} + +\def\XMLinh + {\XMLinhpar\currentXMLelement} \def\pXMLinh#1% {\@EA\ppXMLinh\@EA{\the\numexpr(#1-\plusone)}} -% \def\ppXMLinh#1#2% -% {\ifcsname\@@XMLvariable:\csname\@@XMLdepth:#1\endcsname:#2\endcsname -% \@EA\ifx\csname\@@XMLvariable:\csname\@@XMLdepth:#1\endcsname:#2\endcsname\empty -% \@EAEAEA\pppXMLinh -% \else -% \csname\@@XMLvariable:\csname\@@XMLdepth:#1\endcsname:#2\endcsname -% \@EAEAEA\gobbletwoarguments -% \fi -% \else -% \@EA\pppXMLinh -% \fi{#1}{#2}} - -% \def\pppXMLinh#1% -% {\ifnum#1>\zerocount -% \@EA\pXMLinh -% \else -% \@EA\gobbletwoarguments -% \fi{#1}} - \def\ppXMLinh#1#2% - {\@EA\ifx\csname\@@XMLvariable:\csname\@@XMLdepth:#1\endcsname:#2\endcsname\empty + {\@EA\ifx\csname\@@XMLvariable:#1:#2\endcsname\empty \ifnum#1>\plusone \@EAEAEA\pXMLinh \else \@EAEAEA\gobbletwoarguments \fi \else - \csname\@@XMLvariable:\csname\@@XMLdepth:#1\endcsname:#2\endcsname + \csname\@@XMLvariable:#1:#2\endcsname \@EA\gobbletwoarguments \fi{#1}{#2}} @@ -971,6 +948,9 @@ \def\edefXMLinh#1#2% \macro{att} {\edef#1{\XMLinh{#2}}} +\def\edefXMLinhpar#1#2#3% \macro{tag}{att} + {\edef#1{\XMLinhpar{#2}{#3}}} + % \def\doifXMLopdef#1#2% \macro{att} % {\ifcsname\@@XMLvariable:\ownXMLelement:#1\endcsname % \@EA\let\@EA#1\csname\@@XMLvariable:\ownXMLelement:#1\endcsname @@ -980,6 +960,7 @@ % \fi} \fetchruntimecommand \tracebackXMLattribute {\f!xtagprefix\s!run} +\fetchruntimecommand \showXMLinh {\f!xtagprefix\s!run} % \defineXMLenvironment[one] % {\beginXMLelement} @@ -1595,23 +1576,29 @@ \let\dodocopyXMLargument\relax \def\dododocopyXMLargument - {\@EA\@EA\@EA\let\@EA\@EA - \csname\@@XMLvariable:\csname\@@XMLglobal:\currentXMLelement\endcsname:\@@XMLname\endcsname - \csname\@@XMLvariable:\@@XMLclass :\@@XMLname\endcsname} + {\@EA\let\csname\@@XMLvariable:\the\numexpr(\XMLdepth+1):\@@XMLname\@EA\endcsname + \csname\@@XMLvariable:\@@XMLclass:\@@XMLname\endcsname} \def\copyXMLargumentindeed - {\def\dodocopyXMLargument{\ifcsname\@@XMLglobal:\currentXMLelement\endcsname\dododocopyXMLargument\fi}% + {\let\dodocopyXMLargument\dododocopyXMLargument \let\copyXMLargumentindeed\relax} \def\dodosetXMLargumentA {\@EA\def\csname\@@XMLvariable:\@@XMLclass:\@@XMLname\endcsname} +% \def\dodosetXMLargumentB#1% +% {\@EA\edef\csname\@@XMLmap:\@@XMLmapmap\endcsname +% {\@EA\ifx\csname\@@XMLmap:\@@XMLmapmap\endcsname\empty\else +% \csname\@@XMLmap:\@@XMLmapmap\endcsname,% +% \fi +% \@@XMLname=#1}} + \def\dodosetXMLargumentB#1% {\@EA\edef\csname\@@XMLmap:\@@XMLmapmap\endcsname {\@EA\ifx\csname\@@XMLmap:\@@XMLmapmap\endcsname\empty\else \csname\@@XMLmap:\@@XMLmapmap\endcsname,% \fi - \@@XMLname=#1}} + \@@XMLname={#1}}} % {} is needed for aa='bb,cc' \appendtoks \resetXMLarguments{\rawXMLnamespace\rawXMLidentifier}% @@ -1757,7 +1744,7 @@ \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing \long\@EA\def\csname\@@XMLelement:#1/\endcsname{\@EA\let\csname\@@XMLdata:#1\endcsname\longempty}} -\gdef\redoXMLsave#1% +\long\gdef\redoXMLsave#1% {\long\@EA\def\@EA\next\@EA##\@EA1\@EA<\@EA/\currentXMLelement>% {\long\@EA\def\csname\@@XMLdata:#1\endcsname{##1}}% \next} @@ -1774,7 +1761,7 @@ \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing \long\@EA\def\csname\@@XMLelement:#1/\endcsname{\global\@EA\let\csname\@@XMLdata:#1\endcsname\longempty}} -\gdef\redoXMLgsave#1% +\long\gdef\redoXMLgsave#1% {\long\@EA\def\@EA\next\@EA##\@EA1\@EA<\@EA/\currentXMLelement>% {\long\@EA\gdef\csname\@@XMLdata:#1\endcsname{##1}}% \next} @@ -1787,7 +1774,7 @@ % maybe \globalnext -\gdef\redoXMLenvironmentsave#1#2#3% +\long\gdef\redoXMLenvironmentsave#1#2#3% {\long\@EA\def\@EA\next\@EA##\@EA1\@EA<\@EA/\currentXMLelement>% {#2\long\@EA\def\csname\@@XMLdata:#1\endcsname{##1}#3}% \next} @@ -1798,7 +1785,7 @@ \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing \long\@EA\def\csname\@@XMLelement:#1/\endcsname{#2\global\@EA\let\csname\@@XMLdata:#1\endcsname\longempty#3}} -\gdef\redoXMLenvironmentgsave#1#2#3% +\long\gdef\redoXMLenvironmentgsave#1#2#3% {\long\@EA\def\@EA\next\@EA##\@EA1\@EA<\@EA/\currentXMLelement>% {#2\long\@EA\gdef\csname\@@XMLdata:#1\endcsname{##1}#3}% \next} @@ -1989,16 +1976,19 @@ % \long\def\prepareXMLargument#1#2#3% % {\scratchtoks\@EA\@EA\@EA{\@EA\the\@EA\scratchtoks\@EA\def\csname\@@XMLvariable:#1:#2\endcsname{#3}}} -\let\@@globalprefix\empty +% \let\@@globalprefix\empty \long\def\prepareXMLargument#1#2#3% {\expanded{\scratchtoks {\the\scratchtoks \def\@EA\noexpand\csname\@@XMLvariable:#1:#2\endcsname{#3}% - \ifx\@@globalprefix\empty\else - \let\@EA\noexpand\csname\@@XMLvariable:\@@globalprefix:#2\endcsname - \@EA\noexpand\csname\@@XMLvariable:#1:#2\endcsname - \fi}}} +\noexpand\@EA\let\noexpand\csname\@@XMLvariable:\noexpand\the\numexpr(\XMLdepth+1):#2\endcsname +\@EA\noexpand\csname\@@XMLvariable:#1:#2\endcsname +% \ifx\@@globalprefix\empty\else +% \let\@EA\noexpand\csname\@@XMLvariable:\@@globalprefix:#2\endcsname +% \@EA\noexpand\csname\@@XMLvariable:#1:#2\endcsname +% \fi}}} +}}} \long\def\setXMLargumentsN#1#2#3% element [tag] settings {\doifassignmentelse{#2} @@ -2009,11 +1999,8 @@ \long\def\setXMLargumentsP#1#2#3% element settings empty (we cannot test for assignment) {\letbeundefined{\@@XMLmap:#1}% - \ifx\@@globalprefix\empty\else - \@EA\let\csname\@@XMLglobal:#1\endcsname\@@globalprefix - \fi \bgroup -% \def\XMLinheritance{\noexpand\XMLinheritance} + %def\XMLinheritance{\noexpand\XMLinheritance} \def\XMLop##1{\noexpand\XMLpar{#1}{##1}{}}% \def\XMLpar{\noexpand\XMLpar}% \def\XMLanc{\noexpand\XMLanc}% @@ -2045,24 +2032,24 @@ \expandafter\setXMLargumentsP \fi} -\def\docopyXMLargument - {\@EA\@EA\@EA\let\@EA\@EA - \csname\@@XMLvariable:\csname\@@XMLglobal:\currentXMLelement\endcsname:\@@XMLname\endcsname - \csname\@@XMLvariable:\@@XMLclass :\@@XMLname\endcsname} - \def\startXMLcompiling {\dosingleargument\dostartXMLcompiling} +% \def\dostartXMLcompiling[#1]% +% {\iffirstargument +% \copyXMLargumentindeed % when needed, from now on -) +% \def\@@globalprefix{#1}% +% \fi +% \chardef\@@precompile\plusone} + \def\dostartXMLcompiling[#1]% - {\iffirstargument - \copyXMLargumentindeed % when needed, from now on -) - \def\@@globalprefix{#1}% - \fi + {\doif{#1}\v!inherit + \copyXMLargumentindeed \chardef\@@precompile\plusone} \def\stopXMLcompiling {\chardef\@@precompile\zerocount - \let\@@globalprefix\empty} + }%\let\@@globalprefix\empty} %D Interesting what kind of things are needed \unknown @@ -2365,50 +2352,6 @@ \@EA\thirdofthreearguments \fi{#1}} -%D Experimental: local and global attributes, don't ask -) -%D -%D \starttyping -%D \gXMLpar{element}{global}{attribute}{default} -%D \gXMLatt{element}{attribute} -%D \lXMLatt{element}{attribute} -%D \lcXMLatt{atribute} -%D \gcXMLatt{atribute} -%D \stoptyping - -\def\gXMLpar#1#2#3#4% #2 can be auto: \csname\@@XMLglobal:#1\endcsname - {\ifcsname\@@XMLvariable:#1:#3\endcsname - \csname\@@XMLvariable:#1:#3\endcsname - \else\ifcsname\@@XMLvariable:#2:#3\endcsname - \csname\@@XMLvariable:#2:#3\endcsname - \else - #4% - \fi\fi} - -\def\gXMLatt#1#2% element tag - {\csname - \ifcsname\@@XMLvariable:#1:#2\endcsname - \@@XMLvariable:#1:#2% - \else\ifcsname\@@XMLglobal:#1\endcsname - \ifcsname\@@XMLvariable:\csname\@@XMLglobal:#1\endcsname:#2\endcsname - \@@XMLvariable:\csname\@@XMLglobal:#1\endcsname:#2% - \else - \s!empty - \fi - \else - \s!empty - \fi\fi - \endcsname} - -\def\lXMLatt#1#2% element tag - {\ifcsname\@@XMLvariable:#1:#2\endcsname - \csname\@@XMLvariable:#1:#2\endcsname - \else - \s!empty - \fi} - -\def\gcXMLatt{\gXMLatt\currentXMLelement} % tag -\def\lcXMLatt{\lXMLatt\currentXMLelement} % tag - %D Experimental (not sure if this will stay): %D %D \starttyping @@ -2505,9 +2448,6 @@ \def\doifXMLvarelse#1#2% geen etex, \relax too {\ifcsname\@@XMLvariable:#1:#2\endcsname -%\expandafter\ifx\csname\@@XMLvariable:#1:#2\endcsname\relax -% \message{#1 #2 -> relax}\wait -%\fi \expandafter\ifx\csname\@@XMLvariable:#1:#2\endcsname\empty \@EAEAEA\secondoftwoarguments \else diff --git a/tex/context/base/xtag-mmp.tex b/tex/context/base/xtag-mmp.tex index 84b421053..659b267bf 100644 --- a/tex/context/base/xtag-mmp.tex +++ b/tex/context/base/xtag-mmp.tex @@ -11,6 +11,48 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. +% under reconstruction +% +% \starttext +% \usemodule[mathml] \useXMLfilter[utf] +% \unprotect +% +% \remapXMLsequence [mover] [CPA] \MMLpOVER +% \remapXMLsequence [munder] [CPA] \MMLpUNDER +% +% \def\MMLpUNDER#1#2% +% {\getXMLarguments{munder}{accent="false" #1}% +% \withnexttwoXMLRelements\doMMLpUNDER#2} +% +% \def\MMLpOVER#1#2% +% {\getXMLarguments{mover}{accent="false" #1}% +% \withnexttwoXMLRelements\doMMLpOVER #2} +% +% \def\doMMLpUNDER +% {\doifelse{\XMLpar{munder}{accent}{}}{true} +% {\secondXMLRelement\firstXMLRelement} +% {\mathop{\vtop{\m@th\ialign{\hss##\hss\crcr +% \disabledelimiter\doMMLfiller\firstXMLRelement +% \crcr\noalign{\kern3\p@\nointerlineskip}% +% \disabledelimiter\doMMLfiller\secondXMLRelement +% \crcr\noalign{\kern3\p@}}}}\limits}} +% +% \def\doMMLpOVER +% {\doifelse{\XMLpar{mover}{accent}{}}{true} +% {\secondXMLRelement\firstXMLRelement} +% {\mathop{\vbox{\m@th\ialign{\hss##\hss\crcr\noalign{\kern3\p@}% +% \disabledelimiter\doMMLfiller\secondXMLRelement +% \crcr\noalign{\kern3\p@\nointerlineskip}% +% \disabledelimiter\doMMLfiller\firstXMLRelement +% \crcr}}}\limits}} +% +% \protect +% +% Normal: \startXMLdataa¯\stopXMLdata \par +% Accent: \startXMLdatax¯\stopXMLdata \par +% +% \stoptext + \writestatus{loading}{Context XML Macros (presentational math ml)} \unprotect @@ -262,14 +304,14 @@ \popmacro\doMMLfiller \dodoMMLfiller} -\def\doMMLpUNDER% +\def\doMMLpUNDER {\mathop{\vtop{\m@th\ialign{\hss##\hss\crcr \disabledelimiter\doMMLfiller\firstXMLRelement \crcr\noalign{\kern3\p@\nointerlineskip}% \disabledelimiter\doMMLfiller\secondXMLRelement \crcr\noalign{\kern3\p@}}}}\limits} -\def\doMMLpOVER%% +\def\doMMLpOVER {\mathop{\vbox{\m@th\ialign{\hss##\hss\crcr\noalign{\kern3\p@}% \disabledelimiter\doMMLfiller\secondXMLRelement \crcr\noalign{\kern3\p@\nointerlineskip}% diff --git a/tex/context/base/xtag-run.tex b/tex/context/base/xtag-run.tex index 639b6df53..6d1d3078d 100644 --- a/tex/context/base/xtag-run.tex +++ b/tex/context/base/xtag-run.tex @@ -100,11 +100,12 @@ \ifcase\@XMLnofelements\else\@@xfinbetween\fi \fi \fi - % no, too fragile: \hangindent2em + % no, too fragile: +% \ifnum\XMLlevel>1\hangindent2em\fi \ifcase\kindofXMLelement\or\or \getvalue{\@@XMLshow::\currentXMLelement}\relax \fi - \indent + \dontleavehmode % \indent \bgroup % \localcolortrue \advance\XMLlevel \minusone @@ -154,7 +155,9 @@ \gdef\someXMLword{\@XMLlevel+\@XMLelement1\@XMLlevel-} \gdef\@XMLindent#1% - {\ifnum\XMLlevel>0\advance\leftskip#11em\relax\fi} + {\ifnum\XMLlevel>\zerocount + \advance\leftskip#11em\relax + \fi} \gdef\nextXMLtext{\blank\@XMLlevel+\@XMLelement1\par\@XMLindent+} \gdef\prevXMLtext{\par\@XMLindent-\@XMLelement0\par\@XMLlevel-\blank} @@ -169,7 +172,7 @@ {\def\docommando##1{#1[##1]#2#3\letvalue{\@@XMLshow:##1}\empty}% \processcommalist[#4]\docommando} -\gdef\showXMLign[#1]% +\gdef\showXMLinh[#1]% {\setXMLshow\defineXMLignore \relax\relax[#1]% \setXMLshow\defineXMLsingular \relax\relax[#1]} @@ -302,4 +305,13 @@ \fi}% \egroup} +\gdef\showXMLinh#1% + {\doifsomething{#1} + {\bgroup\infofont[% + \dorecurse\XMLdepth +% {\csname\@@XMLvariable:\csname\@@XMLdepth:\recurselevel\endcsname:#1\endcsname + {\csname\@@XMLvariable:\recurselevel:#1\endcsname + \ifnum\recurselevel<\XMLdepth->\fi}% + ]\egroup}} + \protect \endinput diff --git a/tex/context/interface/cont-cz.xml b/tex/context/interface/cont-cz.xml new file mode 100644 index 000000000..0c81fd8ad --- /dev/null +++ b/tex/context/interface/cont-cz.xml @@ -0,0 +1,10222 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tex/context/interface/cont-de.xml b/tex/context/interface/cont-de.xml new file mode 100644 index 000000000..cf4b8fc9c --- /dev/null +++ b/tex/context/interface/cont-de.xml @@ -0,0 +1,10222 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tex/context/interface/cont-en.xml b/tex/context/interface/cont-en.xml new file mode 100644 index 000000000..60b13dd7e --- /dev/null +++ b/tex/context/interface/cont-en.xml @@ -0,0 +1,10222 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tex/context/interface/cont-it.xml b/tex/context/interface/cont-it.xml new file mode 100644 index 000000000..0984e65c4 --- /dev/null +++ b/tex/context/interface/cont-it.xml @@ -0,0 +1,10222 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tex/context/interface/cont-nl.xml b/tex/context/interface/cont-nl.xml new file mode 100644 index 000000000..de51ef7d3 --- /dev/null +++ b/tex/context/interface/cont-nl.xml @@ -0,0 +1,10222 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tex/context/interface/cont-ro.xml b/tex/context/interface/cont-ro.xml new file mode 100644 index 000000000..416b6b962 --- /dev/null +++ b/tex/context/interface/cont-ro.xml @@ -0,0 +1,10222 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tex/context/interface/keys-cz.xml b/tex/context/interface/keys-cz.xml new file mode 100644 index 000000000..45e6fbaeb --- /dev/null +++ b/tex/context/interface/keys-cz.xml @@ -0,0 +1,1576 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tex/context/interface/keys-de.xml b/tex/context/interface/keys-de.xml new file mode 100644 index 000000000..75a9707b8 --- /dev/null +++ b/tex/context/interface/keys-de.xml @@ -0,0 +1,1576 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tex/context/interface/keys-en.xml b/tex/context/interface/keys-en.xml new file mode 100644 index 000000000..9c96ec88d --- /dev/null +++ b/tex/context/interface/keys-en.xml @@ -0,0 +1,1576 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tex/context/interface/keys-it.xml b/tex/context/interface/keys-it.xml new file mode 100644 index 000000000..17c7efb39 --- /dev/null +++ b/tex/context/interface/keys-it.xml @@ -0,0 +1,1576 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tex/context/interface/keys-nl.xml b/tex/context/interface/keys-nl.xml new file mode 100644 index 000000000..a7ffdf695 --- /dev/null +++ b/tex/context/interface/keys-nl.xml @@ -0,0 +1,1576 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tex/context/interface/keys-ro.xml b/tex/context/interface/keys-ro.xml new file mode 100644 index 000000000..4f16a5ac0 --- /dev/null +++ b/tex/context/interface/keys-ro.xml @@ -0,0 +1,1576 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3