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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
if not modules then modules = { } end modules ['s-characters-properties'] = {
version = 1.001,
comment = "companion to s-characters-properties.mkiv",
author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
copyright = "PRAGMA ADE / ConTeXt Development Team",
license = "see context related readme files"
}
moduledata.characters = moduledata.characters or { }
moduledata.characters.properties = moduledata.characters.properties or { }
local catcodenames = { [0] =
"escape", "begingroup", "endgroup", "mathshift",
"alignment", "endofline", "parameter", "superscript",
"subscript", "ignore", "space", "letter",
"other", "active", "comment", "invalid",
}
table.swapped(catcodes,catcodes)
local catcodes = context.catcodes
local getcatcode = tex.getcatcode
local c_context = catcodes.context
local c_tex = catcodes.tex
local c_protect = catcodes.protect
local c_text = catcodes.text
local c_verbatim = catcodes.verbatim
local context = context
local ctx_NC = context.NC
local ctx_NR = context.NR
local ctx_MR = context.MR
local ctx_ML = context.ML
local ctx_bold = context.bold
local ctx_verbatim = context.verbatim
function moduledata.characters.properties.showcatcodes(specification)
local function range(f,l,quit)
if quit then
ctx_MR()
end
for i=f,l do
ctx_NC()
if quit then
ctx_verbatim("%c .. %c",f,l)
else
ctx_verbatim("%c",i)
end
ctx_NC() context(catcodenames[getcatcode(c_tex,i)])
ctx_NC() context(catcodenames[getcatcode(c_context,i)])
ctx_NC() context(catcodenames[getcatcode(c_protect,i)])
ctx_NC() context(catcodenames[getcatcode(c_text,i)])
ctx_NC() context(catcodenames[getcatcode(c_verbatim,i)])
ctx_NC() ctx_NR()
if quit then
ctx_MR()
break
end
end
end
context.starttabulate { "|c|c|c|c|c|c|" }
ctx_ML()
ctx_NC() ctx_bold("ascii")
ctx_NC() ctx_bold("context")
ctx_NC() ctx_bold("tex")
ctx_NC() ctx_bold("protect")
ctx_NC() ctx_bold("text")
ctx_NC() ctx_bold("verbatim")
ctx_NC() ctx_NR()
ctx_ML()
range(32,47)
range(48,57,true)
range(58,64)
range(65,90,true)
range(91,96)
range(97,122,true)
range(123,126)
ctx_ML()
context.stoptabulate()
end
|