diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/mkxl/char-act.mkxl')
-rw-r--r-- | Master/texmf-dist/tex/context/base/mkxl/char-act.mkxl | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/context/base/mkxl/char-act.mkxl b/Master/texmf-dist/tex/context/base/mkxl/char-act.mkxl new file mode 100644 index 00000000000..3fb4d2da65d --- /dev/null +++ b/Master/texmf-dist/tex/context/base/mkxl/char-act.mkxl @@ -0,0 +1,99 @@ +%D \module +%D [ file=char-act, +%D version=2006.12.05, +%D title=\CONTEXT\ Character Support, +%D subtitle=Active, +%D author=Hans Hagen, +%D date=\currentdate, +%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] +%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 / Active} + +\unprotect + +\ifdefined\page_otr_fill_and_eject_page \else \let\page_otr_fill_and_eject_page\relax \fi % forward reference + +%D \macros +%D {obeyedspace, obeyedtab, obeyedline, obeyedpage} +%D +%D We have followed Knuth in naming macros that make \SPACE, \NEWLINE\ and \NEWPAGE\ +%D active and assigning them \type {\obeysomething}, but first we set some default +%D values. +%D +%D These are expandable: + +\permanent\def\obeyedspace{\space} +\permanent\def\obeyedtab {\obeyedspace} +\permanent\def\obeyedline {\par} +\permanent\def\obeyedpage {\page_otr_fill_and_eject_page} + +%D \macros +%D {controlspace,setcontrolspaces} +%D +%D First we define \type {\obeyspaces}. When we want visible spaces (control spaces) +%D we only have to adapt the definition of \type {\obeyedspace} to: + +\immutable\chardef\asciispacechar\spaceasciicode % a real space character + +\permanent\protected\def\naturalspace{\asciispacechar} +\permanent\protected\def\controlspace{\hbox{\asciispacechar}} % rather tex, we need the unicode value +\permanent\protected\def\normalspaces{\catcode\spaceasciicode\spacecatcode} + +% \bgroup +% \catcode\spaceasciicode\activecatcode +% \protected\gdef\obeyspaces {\catcode\spaceasciicode\activecatcode\def {\obeyedspace }} +% \protected\gdef\setcontrolspaces{\catcode\spaceasciicode\activecatcode\def {\controlspace}} +% \egroup + +%permanent\protected\def\obeyspaces {\catcode\spaceasciicode\activecatcode\letcharcode\spaceasciicode\obeyedspace } +%permanent\protected\def\setcontrolspaces{\catcode\spaceasciicode\activecatcode\letcharcode\spaceasciicode\controlspace} + +%D \macros +%D {obeytabs, obeylines, obeypages,ignoretabs, ignorelines, ignorepages} +%D +%D Next we take care of \NEWLINE\ and \NEWPAGE\ and because we want to be able to +%D typeset listings that contain \TAB, we have to handle those too. Because we have +%D to redefine the \NEWPAGE\ character locally, we redefine the meaning of this +%D (often already) active character. + +% \expandafter\def\activeformfeedtoken{\par} + +\letcharcode\formfeedasciicode\par + +%D The following indirect definitions enable us to implement all kind of \type +%D {\obeyed} handlers. + +% \protected\def\obeytabs {\catcode\tabasciicode \activecatcode\expandafter\def\activetabtoken {\obeyedtab }} +% \protected\def\obeylines {\catcode\endoflineasciicode\activecatcode\expandafter\def\activeendoflinetoken{\obeyedline}} +% \protected\def\obeypages {\catcode\formfeedasciicode \activecatcode\expandafter\def\activeformfeedtoken {\obeyedpage}} + +% \protected\def\ignoretabs {\catcode\tabasciicode \activecatcode\expandafter\def\activetabtoken {\obeyedspace}} +% \protected\def\ignorelines{\catcode\endoflineasciicode\activecatcode\expandafter\def\activeendoflinetoken{\obeyedspace}} +% \protected\def\ignorepages{\catcode\formfeedasciicode \ignorecatcode} +% \protected\def\ignoreeofs {\catcode\endoffileasciicode\ignorecatcode} + +% but ... as we don't want to freeze to \obeyedspace etc which can be set after +% \obeyspaces, we use an idirectness + +\def\syst_obeyed_space{\obeyedspace} +\def\syst_obeyed_tab {\obeyedtab} +\def\syst_obeyed_line {\obeyedline} +\def\syst_obeyed_page {\obeyedpage} + +\permanent\protected\def\obeyspaces {\catcode\spaceasciicode \activecatcode\enforced\letcharcode\spaceasciicode \syst_obeyed_space} +\permanent\protected\def\obeytabs {\catcode\tabasciicode \activecatcode\enforced\letcharcode\tabasciicode \syst_obeyed_tab } +\permanent\protected\def\obeylines {\catcode\endoflineasciicode\activecatcode\enforced\letcharcode\endoflineasciicode\syst_obeyed_line } +\permanent\protected\def\obeypages {\catcode\formfeedasciicode \activecatcode\enforced\letcharcode\formfeedasciicode \syst_obeyed_page } + +\permanent\protected\def\ignoretabs {\catcode\tabasciicode \activecatcode\enforced\letcharcode\tabasciicode \syst_obeyed_space} +\permanent\protected\def\ignorelines{\catcode\endoflineasciicode\activecatcode\enforced\letcharcode\endoflineasciicode\syst_obeyed_space} +\permanent\protected\def\ignorepages{\catcode\formfeedasciicode \ignorecatcode} +\permanent\protected\def\ignoreeofs {\catcode\endoffileasciicode\ignorecatcode} + +\permanent\protected\def\setcontrolspaces{\catcode\spaceasciicode\activecatcode\enforced\letcharcode\spaceasciicode\controlspace} + +\endinput \protect |