summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/third/filter/t-module-catcodes.tex
blob: 539ca19f4e3add2d95bb57f77de88821b1a40eb2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
%D \module
%D   [     file=t-module-catcodes,
%D      version=2011.04.02,
%D        title=\CONTEXT\ User Module,
%D     subtitle=Module Catcodes,
%D       author=Aditya Mahajan,
%D         date=\currentdate,
%D    copyright=Aditya Mahajan,
%D        email=adityam <at> umich <dot> edu,
%D      license=Simplified BSD License]

\writestatus{loading}{ConTeXt User Module / Module Catcodes}

\startmodule    [module-catcodes]
% EXPERIMENTAL: Catcode table for internal commands

\newcatcodetable \modulecatcodes

\startcatcodetable \modulecatcodes
    \catcode\tabasciicode       \spacecatcode
    \catcode\endoflineasciicode \endoflinecatcode
    \catcode\formfeedasciicode  \endoflinecatcode
    \catcode\spaceasciicode     \spacecatcode
    \catcode\endoffileasciicode \ignorecatcode
    \catcode\circumflexasciicode\superscriptcatcode
%   \catcode\underscoreasciicode\subscriptcatcode
    \catcode\underscoreasciicode\lettercatcode
    \catcode\ampersandasciicode \alignmentcatcode
    \catcode\backslashasciicode \escapecatcode
    \catcode\leftbraceasciicode \begingroupcatcode
    \catcode\rightbraceasciicode\endgroupcatcode
    \catcode\dollarasciicode    \mathshiftcatcode
    \catcode\hashasciicode      \parametercatcode
    \catcode\commentasciicode   \commentcatcode
    \catcode`\@                 \lettercatcode
    \catcode`\!                 \lettercatcode
    \catcode`\?                 \lettercatcode
    \catcode\tildeasciicode     \activecatcode
    \catcode\barasciicode       \activecatcode
    \catcode`\:                 \lettercatcode
\stopcatcodetable

% IDEA:
% Instead of using \externalfilter::command we can also define:
%
% \startmoduledefinition command #1
% ...
% \stopmoduledefinition
%
% which will be equivalent to
%
% \starttexdefinition externalfilter::command
% ...
% \stoptexdefinition
%
% and \modulevalue{command} => \getvalue{externalfilter::command}


\def\unprotectmodulecatcodes
    {\pushcatcodetable 
     \setcatcodetable\modulecatcodes}

\def\protectmodulecatcodes
    {\popcatcodetable}


\stopmodule