diff options
Diffstat (limited to 'tex/context/base/char-ini.mkiv')
-rw-r--r-- | tex/context/base/char-ini.mkiv | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/tex/context/base/char-ini.mkiv b/tex/context/base/char-ini.mkiv new file mode 100644 index 000000000..0d5e16bb0 --- /dev/null +++ b/tex/context/base/char-ini.mkiv @@ -0,0 +1,76 @@ +%D \module +%D [ file=char-ini, +%D version=2006.08.20, +%D title=\CONTEXT\ Character Support, +%D subtitle=Initialization, +%D author=Hans Hagen, +%D date=\currentdate, +%D copyright=PRAGMA] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. + +\writestatus{loading}{ConTeXt Character Support / Initialization} + +\registerctxluafile{char-def}{1.001} % let's load this one first +\registerctxluafile{char-ini}{1.001} +\registerctxluafile{char-cmp}{1.001} % maybe we will load this someplace else +\registerctxluafile{char-map}{1.001} % maybe we will load this someplace else +\registerctxluafile{char-tex}{1.001} + +\unprotect + +% \def\checkedchar#1% #2% +% {\relax\iffontchar\font#1 \expandafter\firstoftwoarguments\else\expandafter\secondoftwoarguments\fi{\char#1}} +% +% impossible in math mode so there always fallback (till we have gyre): + +\def\utfchar #1{\ctxlua{tex.uprint(\number#1)}} +\def\checkedchar {\relax\ifmmode\expandafter\checkedmathchar\else\expandafter\checkedtextchar\fi} % #1#2 +\def\checkedmathchar#1#2{#2} +\def\checkedtextchar #1{\iffontchar\font#1 \expandafter\firstoftwoarguments\else\expandafter\secondoftwoarguments\fi{\char#1}} + +%D The codes are stored in the format, so we don't need to reinitialize +%D them (unless of course we have adapted the table). It is on the agenda +%D to do this with \type {tex.lccode} cum suis once they're available. + +\def\setcclcuc#1#2#3{\global\catcode#1=\@@letter\global\lccode#1=#2\global\uccode#1=#3\relax} +\def\setcclcucself#1{\global\catcode#1=\@@letter\global\lccode#1=#1\global\uccode#1=#1\relax } + +\ctxlua{characters.setcodes()} + +%D There may be a problem with the turkisch patterns. By now it's taken care of in +%D ctxtools (thanks to Mojca). There seems to be a bug in the patterns (^^11 refers +%D to a double quote but it should be ^^19 since the original is in ec encoding). + +% \setcclcuc "201C "201C "201C +% \setcclcuc "201D "201D "201D + +\ctxlua { + characters.define( + { % letter catcodes + \number\texcatcodes, + \number\ctxcatcodes, + \number\notcatcodes, + \number\mthcatcodes, + \number\vrbcatcodes, + \number\prtcatcodes, + \number\xmlcatcodesn, + \number\xmlcatcodese, + \number\xmlcatcodesr, + \number\typcatcodesa, + \number\typcatcodesb, + }, + { % activate catcodes + \number\ctxcatcodes, + \number\notcatcodes, + \number\xmlcatcodesn, + \number\xmlcatcodese, + \number\xmlcatcodesr, + } + ) + catcodes.register("xmlcatcodes",\number\xmlcatcodes) +} + +\protect \endinput |