s-math-characters.mkiv /size: 6582 b    last modification: 2020-07-01 14:35
1%D \module
2%D   [      file=s-math-characters.mkiv, % was: s-fnt-25 and later s-mat-10
3%D        version=2009.01.25,
4%D          title=\CONTEXT\ Style File,
5%D       subtitle=Math Glyph Checking,
6%D         author=Hans Hagen,
7%D           date=\currentdate,
8%D      copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
9%C
10%C This module is part of the \CONTEXT\ macro||package and is
11%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
12%C details.
13
14\startmodule[math-characters]
15
16\registerctxluafile{s-math-characters}{}
17
18% context --jit --global --bodyfont=cambria --result=math-characters-cambria s-math-characters.mkiv
19% context --jit --global --bodyfont=modern  --result=math-characters-modern  s-math-characters.mkiv
20
21\startsetups s-math-characters:reset
22
23    \let\showmathcharactersstart                 \relax
24    \let\showmathcharactersstop                  \relax
25    \let\showmathcharactersreference             \gobbleoneargument
26    \let\showmathcharactersstartentry            \relax
27    \let\showmathcharactersstopentry             \relax
28    \let\showmathcharactersentryhexdectit        \gobblethreearguments
29    \let\showmathcharactersentrywdhtdpic         \gobblefourarguments
30    \let\showmathcharactersentryresource         \gobbleoneargument
31    \let\showmathcharactersstartnext             \relax
32    \let\showmathcharactersnextentry             \gobblethreearguments
33    \let\showmathcharactersnextcycle             \gobbleonearguments
34    \let\showmathcharactersstopnext              \relax
35    \let\showmathcharactersstarthvariants        \relax
36    \let\showmathcharactershvariantsentry        \gobblethreearguments
37    \let\showmathcharactersstophvariants         \relax
38    \let\showmathcharactersstartvvariants        \showmathcharactersstarthvariants
39    \let\showmathcharactersvvariantsentry        \showmathcharactershvariantsentry
40    \let\showmathcharactersstopvvariants         \showmathcharactersstophvariants
41    \let\showmathcharactersbetweennextandvariants\relax
42    \let\showmathcharactersstartentryclassspec   \relax
43    \let\showmathcharactersstopentryclassspec    \relax
44    \let\showmathcharactersentryclassname        \gobbletwoarguments
45    \let\showmathcharactersentrysymbol           \gobbletwoarguments
46    \let\showmathcharactersstartlookupvariants   \relax
47    \let\showmathcharacterslookupvariant         \gobblefourarguments
48    \let\showmathcharactersstoplookupvariants    \relax
49    \let\showmathcharacterssetrange              \gobblethreearguments
50
51\stopsetups
52
53\directsetup{s-math-characters:reset}
54
55\startsetups s-math-characters:default
56
57    \directsetup{s-math-characters:reset}
58
59    \unexpanded\def\showmathcharactersstartentry {\blank\startpacked\raggedright}
60    \unexpanded\def\showmathcharactersstopentry  {\stoppacked\blank}
61
62    \def\showmathcharactersentryhexdectit##1##2##3%
63      {##1:\space{\char##2}\space\ruledhbox{\char##2}\space##3\par
64       \advance\leftskip\emwidth\relax}
65
66    \def\showmathcharactersentrywdhtdpic##1##2##3##4%
67      {width:\space##1,\space height:\space##2,\space depth:\space##3,\space italic:\space##4\par}
68
69    \def\showmathcharactersentryresource##1%
70      {virtual:\space##1\par}
71
72    \def\showmathcharactersstartnext
73      {\par\begingroup\hangindent\emwidth\hangafter-\plushundred\hskip-\emwidth
74       next:\space}
75
76    \def\showmathcharactersnextentry##1##2##3%
77      {\ifnum##1>\plusone \space=>\space\fi##2~\ruledhbox{\char##3}}
78
79    \def\showmathcharactersnextcycle##1%
80      {\ifnum##1>\plusone \space=>\space\fi cycle}
81
82    \def\showmathcharactersstopnext
83      {\par\endgroup}
84
85    \def\showmathcharactersstarthvariants
86      {\par\begingroup\hangindent\emwidth\hangafter-\plushundred\hskip-\emwidth
87       variants:\space}
88
89    \def\showmathcharactershvariantsentry##1##2##3%
90      {\ifnum##1>\plusone \space=>\space\fi##2~\ruledhbox{\char##3}}
91
92    \def\showmathcharactersstophvariants
93      {\par\endgroup}
94
95    \let\showmathcharactersstartvvariants\showmathcharactersstarthvariants
96    \let\showmathcharactersvvariantsentry\showmathcharactershvariantsentry
97    \let\showmathcharactersstopvvariants \showmathcharactersstophvariants
98
99    \def\showmathcharactersbetweennextandvariants
100      {}% \space=>\space}
101
102    \def\showmathcharactersentryclassname##1##2%
103      {mathclass:\space##1,\space mathname:\space##2\par}
104
105    \def\showmathcharactersentrysymbol##1##2%
106      {mathsymbol:\space##1~\ruledhbox{\char##2}\par}
107
108    \def\showmathcharactersstartlookupvariants
109      {\par\begingroup\hangindent\emwidth\hangafter-\plushundred\hskip-\emwidth
110       lookupvariants:\space}
111
112    \def\showmathcharacterslookupvariant##1##2##3##4%
113      {\ifnum##1>\plusone,\space\fi##2:~{\char##3}\space(##4)}
114
115    \def\showmathcharactersstoplookupvariants
116      {\par\endgroup}
117
118\stopsetups
119
120\unprotect
121
122\unexpanded\def\enableshowmathfontvirtual
123  {\ctxlua{fonts.constructors.autocleanup=false}}
124
125\unexpanded\def\showmathfontcharacters
126  {\dosingleempty\module_math_characters_show}
127
128\def\module_math_characters_show[#1]%
129  {\begingroup
130   \getdummyparameters
131     [\c!bodyfont=,
132      \c!list=,
133      \c!check=,
134      \c!alternative=default,
135      \c!option=\v!all,
136      #1]%
137   \directsetup{s-math-characters:\dummyparameter\c!alternative}%
138   \doifelsenothing{\dummyparameter\c!bodyfont}
139     {\definedfont[MathRoman*math-text]}
140     {\definedfont[\dummyparameter\c!bodyfont]}%
141   \dontcomplain
142   \ctxlua{moduledata.math.characters.showlist {
143      number   = false,
144      check    = "\dummyparameter\c!check",
145      list     = "\dummyparameter\c!list",
146      option   = "\dummyparameter\c!option",
147   }}%
148   \endgroup}
149
150\protect
151
152\stopmodule
153
154\continueifinputfile{s-math-characters.mkiv}
155
156\setuplayout
157  [width=middle,
158   height=middle,
159   topspace=15mm,
160   backspace=15mm,
161   bottomspace=15mm,
162   header=1cm,
163   headerdistance=0.5cm,
164   footer=0pt]
165
166\starttext
167
168    \doifelse {\getdocumentargument{bodyfont}} {} {
169
170        \setupbodyfont[cambria,   12pt]
171      % \setupbodyfont[modern,    12pt]
172      % \setupbodyfont[lmvirtual, 12pt]
173      % \setupbodyfont[pxvirtual, 12pt]
174      % \setupbodyfont[txvirtual, 12pt]
175      % \setupbodyfont[palatino,  10pt]
176      % \setupbodyfont[mathtimes, 12pt]
177      % \setupbodyfont[stix,      12pt]
178      % \setupbodyfont[xits,      12pt]
179      % \setupbodyfont[lucida,    12pt]
180      % \setupbodyfont[lucidaot,  12pt]
181      % \setupbodyfont[pagella,   12pt]
182      % \setupbodyfont[bonum,     12pt]
183
184    } {
185
186        \normalexpanded{\setupbodyfont[\getdocumentargument{bodyfont},12pt]}
187
188    }
189
190    \showmathfontcharacters
191
192\stoptext
193
194