1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21\unprotect
22
23\newdimension \unitsmapwidth
24
25\permanent\tolerant\protected\def\showunitsmap[#1]
26 {\vpack\bgroup \forgetall
27 \ttx \setupinterlinespace
28 \global\unitsmapwidth40\emwidth
29 \hpack to \unitsmapwidth\bgroup
30 \kern\emwidth
31 \localcontrolledloop\alowercaseasciicode\zlowercaseasciicode \plusone
32 {\hss\char\currentloopiterator\hss}
33 \egroup
34 \ifcstok{#1}\v!tight\globaldonefalse\else\globaldonetrue\fi
35 \localcontrolledloop\alowercaseasciicode\zlowercaseasciicode\plusone
36 {\ifglobaldone\globalfoundtrue\else\globalfoundfalse\fi
37 \setbox\scratchbox\hpack to \unitsmapwidth\bgroup
38 \char\currentloopiterator
39 \bf
40 \hss
41 \localcontrolledloop\alowercaseasciicode\zlowercaseasciicode\plusone
42 {\scratchcounter\associateunit\numexpr
43 (\previousloopiterator\plusone\alowercaseasciicode)*26
44 (\currentloopiterator \alowercaseasciicode)
45 \relax
46 \hss
47 \ifzeronum\scratchcounter
48 \kern\emwidth
49 \else
50 \begingroup
51 \ifcase\scratchcounter\or\darkred\or\darkblue\or\darkgreen\else\darkgray\fi
52 \char\previousloopiterator\plusone
53 \char\currentloopiterator
54 \endgroup
55 \globalfoundtrue
56 \fi
57 \hss}
58 \egroup
59 \ifglobalfound
60 \box\scratchbox
61 \fi}
62 \egroup}
63
64\permanent\protected\def\showunitsmaplegend
65 {\hpack\bgroup
66 \ttx\setstrut\white
67 \unitsmapwidth.25\unitsmapwidth
68 \backgroundline[darkred] {\strut\hbox to \unitsmapwidth{\hss tex\hss}}
69 \backgroundline[darkblue] {\strut\hbox to \unitsmapwidth{\hss pdftex\hss}}
70 \backgroundline[darkgreen]{\strut\hbox to \unitsmapwidth{\hss luametatex\hss}}
71 \backgroundline[darkgray] {\strut\hbox to \unitsmapwidth{\hss context\hss}}
72 \egroup}
73
74\protect
75
76\continueifinputfile{ssystemunits.mkxl}
77
78\starttext
79
80\startTEXpage[offset=1ts]
81 \showunitsmap
82 \showunitsmaplegend
83\stopTEXpage
84
85\startTEXpage[offset=1ts]
86 \showunitsmap[tight]
87 \showunitsmaplegend
88\stopTEXpage
89
90\stoptext
91 |