math-ttv.lmt /size: 18 Kb    last modification: 2024-01-16 10:22
1if not modules then modules = { } end modules ['math-ttv'] = {
2    version   = 1.001,
3    comment   = "traditional tex vectors, companion to math-vfu.lua",
4    author    = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
5    copyright = "PRAGMA ADE / ConTeXt Development Team",
6    license   = "see context related readme files",
7    dataonly  = true,
8}
9
10local vfmath        = fonts.handlers.vf.math
11local setletters    = vfmath.setletters
12local setdigits     = vfmath.setdigits
13
14local mathencodings = fonts.encodings.math
15
16local nps = fonts.helpers.newprivateslot
17
18-- mathencodings["large-to-small-private"] = {
19--     [0xFE07A] = 0x7A, -- bracehtipdownleft
20--     [0xFE07B] = 0x7B, -- bracehtipdownright
21--     [0xFE07C] = 0x7C, -- bracehtipupleft
22--     [0xFE07D] = 0x7D, -- bracehtipupright
23-- }
24
25mathencodings["large-to-small-private"] = {
26    [nps("ul brace piece")] = 0x7A, -- bracehtipdownleft
27    [nps("ur brace piece")] = 0x7B, -- bracehtipdownright
28    [nps("ll brace piece")] = 0x7C, -- bracehtipupleft
29    [nps("lr brace piece")] = 0x7D, -- bracehtipupright
30}
31
32-- mathencodings["extensible-jmn-private"] = {
33--     [0xFE080] = 200, -- minusjmn
34--     [0xFE081] = 201, -- minusrightjmn
35--     [0xFE082] = 202, -- minusleftjmn
36--     [0xFE083] = 203, -- equaljmn
37--     [0xFE084] = 204, -- equalrightjmn
38--     [0xFE085] = 205, -- equalleftjmn
39--     [0xFE086] = 206, -- arrowleftjmn
40--     [0xFE087] = 207, -- arrowrightjmn
41--     [0xFE088] = 208, -- arrowdblleftjmn
42--     [0xFE089] = 209, -- arrowdblrightjmn
43-- }
44
45-- mathencodings["extensible-jmn-private"] = {
46--     [nps("rule middle piece")]         = 200, -- minusjmn
47--     [nps("rule right piece")]          = 201, -- minusrightjmn
48--     [nps("rule left piece")]           = 202, -- minusleftjmn
49--     [nps("double rule middle piece")]  = 203, -- equaljmn
50--     [nps("double rule right piece")]   = 204, -- equalrightjmn
51--     [nps("double rule left piece")]    = 205, -- equalleftjmn
52--     [nps("arrow left piece")]          = 206, -- arrowleftjmn
53--     [nps("arrow right piece")]         = 207, -- arrowrightjmn
54--     [nps("double arrow left piece")]   = 208, -- arrowdblleftjmn
55--     [nps("double arrow right piece")]  = 209, -- arrowdblrightjmn
56-- }
57
58-- varphi is part of the alphabet, contrary to the other var*s'
59
60mathencodings["large-to-small"] = {
61    [0x00028] = 0x00, -- (
62    [0x00029] = 0x01, -- )
63    [0x0005B] = 0x02, -- [
64    [0x0005D] = 0x03, -- ]
65    [0x0230A] = 0x04, -- lfloor
66    [0x0230B] = 0x05, -- rfloor
67    [0x02308] = 0x06, -- lceil
68    [0x02309] = 0x07, -- rceil
69    [0x0007B] = 0x08, -- {
70    [0x0007D] = 0x09, -- }
71    [0x027E8] = 0x0A, -- <
72    [0x027E9] = 0x0B, -- >
73    [0x0007C] = 0x0C, -- |
74 -- [0x0]     = 0x0D, -- lVert rVert Vert
75 -- [0x0002F] = 0x0E, -- /
76    [0x0005C] = 0x0F, -- \
77 -- [0x0]     = 0x3A, -- lgroup
78 -- [0x0]     = 0x3B, -- rgroup
79 -- [0x0]     = 0x3C, -- arrowvert
80 -- [0x0]     = 0x3D, -- Arrowvert
81    [0x02195] = 0x3F, -- updownarrow
82 -- [0x0]     = 0x40, -- lmoustache
83 -- [0x0]     = 0x41, -- rmoustache
84    [0x0221A] = 0x70, -- sqrt
85    [0x021D5] = 0x77, -- Updownarrow
86    [0x02191] = 0x78, -- uparrow
87    [0x02193] = 0x79, -- downarrow
88    [0x021D1] = 0x7E, -- Uparrow
89    [0x021D3] = 0x7F, -- Downarrow
90    [0x0220F] = 0x59, -- prod
91    [0x02210] = 0x61, -- coprod
92    [0x02211] = 0x58, -- sum
93    [0x0222B] = 0x5A, -- intop
94    [0x0222E] = 0x49, -- ointop
95    [0x00302] = 0x62, -- widehat
96    [0x00303] = 0x65, -- widetilde
97    [0x022C0] = 0x5E, -- bigwedge
98    [0x022C1] = 0x5F, -- bigvee
99    [0x022C2] = 0x5C, -- bigcap
100    [0x022C3] = 0x5B, -- bigcup
101    [0x02044] = 0x0E, -- /
102}
103
104-- Beware: these are (in cm/lm) below the baseline due to limitations
105-- in the tfm format but the engine (combined with the mathclass) takes
106-- care of it. If we need them in textmode, we should make them virtual
107-- and move them up but we're in no hurry with that.
108
109mathencodings["tex-ex"] = {
110    [0x0220F] = 0x51, -- prod
111    [0x02210] = 0x60, -- coprod
112    [0x02211] = 0x50, -- sum
113    [0x0222B] = 0x52, -- intop
114    [0x0222E] = 0x48, -- ointop
115    [0x022C0] = 0x56, -- bigwedge
116    [0x022C1] = 0x57, -- bigvee
117    [0x022C2] = 0x54, -- bigcap
118    [0x022C3] = 0x53, -- bigcup
119    [0x02A00] = 0x4A, -- bigodot -- fixed BJ
120    [0x02A01] = 0x4C, -- bigoplus
121    [0x02A02] = 0x4E, -- bigotimes
122 -- [0x02A03] =     , -- bigudot --
123    [0x02A04] = 0x55, -- biguplus
124    [0x02A06] = 0x46, -- bigsqcup
125}
126
127-- only math stuff is needed, since we always use an lm or gyre
128-- font as main font
129
130mathencodings["tex-mr"] = {
131    [0x00393] = 0x00, -- Gamma
132    [0x00394] = 0x01, -- Delta
133    [0x02206] = 0x01, -- Laplace
134    [0x00398] = 0x02, -- Theta
135    [0x0039B] = 0x03, -- Lambda
136    [0x0039E] = 0x04, -- Xi
137    [0x003A0] = 0x05, -- Pi
138    [0x003A3] = 0x06, -- Sigma
139    [0x003A5] = 0x07, -- Upsilon
140    [0x003A6] = 0x08, -- Phi
141    [0x003A8] = 0x09, -- Psi
142    [0x003A9] = 0x0A, -- Omega
143--  [0x00060] = 0x12, -- [math]grave
144--  [0x000B4] = 0x13, -- [math]acute
145--  [0x002C7] = 0x14, -- [math]check
146--  [0x002D8] = 0x15, -- [math]breve
147--  [0x000AF] = 0x16, -- [math]bar
148[0x00021] = 0x21, -- ! -- MS
149[0x00026] = 0x26, -- & -- MS
150    [0x00028] = 0x28, -- (
151    [0x00029] = 0x29, -- )
152    [0x0002B] = 0x2B, -- +
153    [0x0002F] = 0x2F, -- /
154    [0x0003A] = 0x3A, -- :
155    [0x02236] = 0x3A, -- colon
156    [0x0003B] = 0x3B, -- ;
157    [0x0003C] = 0x3C, -- <
158    [0x0003D] = 0x3D, -- =
159    [0x0003E] = 0x3E, -- >
160    [0x0003F] = 0x3F, -- ?
161    [0x00391] = 0x41, -- Alpha
162    [0x00392] = 0x42, -- Beta
163    [0x02145] = 0x44,
164    [0x00395] = 0x45, -- Epsilon
165    [0x00397] = 0x48, -- Eta
166    [0x00399] = 0x49, -- Iota
167    [0x0039A] = 0x4B, -- Kappa
168    [0x0039C] = 0x4D, -- Mu
169    [0x0039D] = 0x4E, -- Nu
170    [0x0039F] = 0x4F, -- Omicron
171    [0x003A1] = 0x52, -- Rho
172    [0x003A4] = 0x54, -- Tau
173    [0x003A7] = 0x58, -- Chi
174    [0x00396] = 0x5A, -- Zeta
175    [0x0005B] = 0x5B, -- [
176    [0x0005D] = 0x5D, -- ]
177--  [0x0005E] = 0x5E, -- [math]hat -- the text one
178    [0x00302] = 0x5E, -- [math]hat -- the real math one
179--  [0x002D9] = 0x5F, -- [math]dot
180    [0x02146] = 0x64,
181    [0x02147] = 0x65,
182--  [0x002DC] = 0x7E, -- [math]tilde -- the text one
183    [0x00303] = 0x7E, -- [math]tilde -- the real one
184--  [0x000A8] = 0x7F, -- [math]ddot
185}
186
187mathencodings["tex-mr-missing"] = {
188    [0x02236] = 0x3A, -- colon
189}
190
191mathencodings["tex-ex-braces"] = {
192    [0x0007B] = 0x7B, -- {, braceleftbig
193    [0x0007D] = 0x7D, -- }, bracerightbig
194}
195
196mathencodings["tex-mi"] = {
197    [0x1D6E4] = 0x00, -- Gamma
198    [0x1D6E5] = 0x01, -- Delta
199    [0x1D6E9] = 0x02, -- Theta
200    [0x1D6F3] = 0x02, -- varTheta (not present in TeX)
201    [0x1D6EC] = 0x03, -- Lambda
202    [0x1D6EF] = 0x04, -- Xi
203    [0x1D6F1] = 0x05, -- Pi
204    [0x1D6F4] = 0x06, -- Sigma
205    [0x1D6F6] = 0x07, -- Upsilon
206    [0x1D6F7] = 0x08, -- Phi
207    [0x1D6F9] = 0x09, -- Psi
208    [0x1D6FA] = 0x0A, -- Omega
209    [0x1D6FC] = 0x0B, -- alpha
210    [0x1D6FD] = 0x0C, -- beta
211    [0x1D6FE] = 0x0D, -- gamma
212    [0x1D6FF] = 0x0E, -- delta
213    [0x1D716] = 0x0F, -- epsilon TODO: 1D716
214    [0x1D701] = 0x10, -- zeta
215    [0x1D702] = 0x11, -- eta
216    [0x1D703] = 0x12, -- theta TODO: 1D703
217    [0x1D704] = 0x13, -- iota
218    [0x1D705] = 0x14, -- kappa
219    [0x1D718] = 0x14, -- varkappa, not in tex fonts
220    [0x1D706] = 0x15, -- lambda
221    [0x1D707] = 0x16, -- mu
222    [0x1D708] = 0x17, -- nu
223    [0x1D709] = 0x18, -- xi
224    [0x1D70B] = 0x19, -- pi
225    [0x1D70C] = 0x1A, -- rho
226    [0x1D70E] = 0x1B, -- sigma
227    [0x1D70F] = 0x1C, -- tau
228    [0x1D710] = 0x1D, -- upsilon
229    [0x1D719] = 0x1E, -- phi
230    [0x1D712] = 0x1F, -- chi
231    [0x1D713] = 0x20, -- psi
232    [0x1D714] = 0x21, -- omega
233    [0x1D700] = 0x22, -- varepsilon (the other way around)
234    [0x1D717] = 0x23, -- vartheta
235    [0x1D71B] = 0x24, -- varpi
236    [0x1D71A] = 0x25, -- varrho
237    [0x1D70D] = 0x26, -- varsigma
238    [0x1D711] = 0x27, -- varphi (the other way around)
239    [0x021BC] = 0x28, -- leftharpoonup
240    [0x021BD] = 0x29, -- leftharpoondown
241    [0x021C0] = 0x2A, -- rightharpoonup
242    [0x021C1] = 0x2B, -- rightharpoondown
243--  [0xFE322] = 0x2C, -- lhook (hook for combining arrows)
244--  [0xFE323] = 0x2D, -- rhook (hook for combining arrows)
245    [nps("left hook piece")]  = 0x2C, -- bracehtipdownleft
246    [nps("right hook piece")] = 0x2D, -- bracehtipdownleft
247    [0x025B7] = 0x2E, -- triangleright : cf lmmath / BJ
248    [0x025C1] = 0x2F, -- triangleleft  : cf lmmath / BJ
249    [0x022B3] = 0x2E, -- triangleright : cf lmmath this a cramped triangles / BJ / see *
250    [0x022B2] = 0x2F, -- triangleleft  : cf lmmath this a cramped triangles / BJ / see *
251--  [0x00041] = 0x30, -- 0
252--  [0x00041] = 0x31, -- 1
253--  [0x00041] = 0x32, -- 2
254--  [0x00041] = 0x33, -- 3
255--  [0x00041] = 0x34, -- 4
256--  [0x00041] = 0x35, -- 5
257--  [0x00041] = 0x36, -- 6
258--  [0x00041] = 0x37, -- 7
259--  [0x00041] = 0x38, -- 8
260--  [0x00041] = 0x39, -- 9
261--~     [0x0002E] = 0x3A, -- .
262    [0x0002C] = 0x3B, -- ,
263    [0x0003C] = 0x3C, -- <
264--  [0x0002F] = 0x3D, -- /, slash, solidus
265    [0x02044] = 0x3D, -- / AM: Not sure
266    [0x0003E] = 0x3E, -- >
267    [0x022C6] = 0x3F, -- star
268    [0x02202] = 0x40, -- partial
269--
270    [0x0266D] = 0x5B, -- flat
271    [0x0266E] = 0x5C, -- natural
272    [0x0266F] = 0x5D, -- sharp
273    [0x02323] = 0x5E, -- smile
274    [0x02322] = 0x5F, -- frown
275    [0x02113] = 0x60, -- ell
276--
277    [0x1D6A4] = 0x7B, -- imath (TODO: also 0131)
278    [0x1D6A5] = 0x7C, -- jmath (TODO: also 0237)
279    [0x02118] = 0x7D, -- wp
280    [0x020D7] = 0x7E, -- vec (TODO: not sure)
281--              0x7F, -- (no idea what that could be)
282}
283
284mathencodings["tex-it"] = {
285--  [0x1D434] = 0x41, -- A
286    [0x1D6E2] = 0x41, -- Alpha
287--  [0x1D435] = 0x42, -- B
288    [0x1D6E3] = 0x42, -- Beta
289--  [0x1D436] = 0x43, -- C
290--  [0x1D437] = 0x44, -- D
291--  [0x1D438] = 0x45, -- E
292    [0x1D6E6] = 0x45, -- Epsilon
293--  [0x1D439] = 0x46, -- F
294--  [0x1D43A] = 0x47, -- G
295--  [0x1D43B] = 0x48, -- H
296    [0x1D6E8] = 0x48, -- Eta
297--  [0x1D43C] = 0x49, -- I
298    [0x1D6EA] = 0x49, -- Iota
299--  [0x1D43D] = 0x4A, -- J
300--  [0x1D43E] = 0x4B, -- K
301    [0x1D6EB] = 0x4B, -- Kappa
302--  [0x1D43F] = 0x4C, -- L
303--  [0x1D440] = 0x4D, -- M
304    [0x1D6ED] = 0x4D, -- Mu
305--  [0x1D441] = 0x4E, -- N
306    [0x1D6EE] = 0x4E, -- Nu
307--  [0x1D442] = 0x4F, -- O
308    [0x1D6F0] = 0x4F, -- Omicron
309--  [0x1D443] = 0x50, -- P
310    [0x1D6F2] = 0x50, -- Rho
311--  [0x1D444] = 0x51, -- Q
312--  [0x1D445] = 0x52, -- R
313--  [0x1D446] = 0x53, -- S
314--  [0x1D447] = 0x54, -- T
315    [0x1D6F5] = 0x54, -- Tau
316--  [0x1D448] = 0x55, -- U
317--  [0x1D449] = 0x56, -- V
318--  [0x1D44A] = 0x57, -- W
319--  [0x1D44B] = 0x58, -- X
320    [0x1D6F8] = 0x58, -- Chi
321--  [0x1D44C] = 0x59, -- Y
322--  [0x1D44D] = 0x5A, -- Z
323--
324--  [0x1D44E] = 0x61, -- a
325--  [0x1D44F] = 0x62, -- b
326--  [0x1D450] = 0x63, -- c
327--  [0x1D451] = 0x64, -- d
328--  [0x1D452] = 0x65, -- e
329--  [0x1D453] = 0x66, -- f
330--  [0x1D454] = 0x67, -- g
331--  [0x1D455] = 0x68, -- h
332    [0x0210E] = 0x68, -- Planck constant (h)
333--  [0x1D456] = 0x69, -- i
334--  [0x1D457] = 0x6A, -- j
335--  [0x1D458] = 0x6B, -- k
336--  [0x1D459] = 0x6C, -- l
337--  [0x1D45A] = 0x6D, -- m
338--  [0x1D45B] = 0x6E, -- n
339--  [0x1D45C] = 0x6F, -- o
340    [0x1D70A] = 0x6F, -- omicron
341--  [0x1D45D] = 0x70, -- p
342--  [0x1D45E] = 0x71, -- q
343--  [0x1D45F] = 0x72, -- r
344--  [0x1D460] = 0x73, -- s
345--  [0x1D461] = 0x74, -- t
346--  [0x1D462] = 0x75, -- u
347--  [0x1D463] = 0x76, -- v
348--  [0x1D464] = 0x77, -- w
349--  [0x1D465] = 0x78, -- x
350--  [0x1D466] = 0x79, -- y
351--  [0x1D467] = 0x7A, -- z
352}
353
354mathencodings["tex-tf"]           = { }
355mathencodings["tex-ss"]           = { }
356mathencodings["tex-tt"]           = { }
357mathencodings["tex-bf"]           = { }
358mathencodings["tex-bi"]           = { }
359mathencodings["tex-fraktur"]      = { }
360mathencodings["tex-fraktur-bold"] = { }
361
362mathencodings["tex-sy"] = {
363    [0x0002D] = 0x00, -- -
364    [0x02212] = 0x00, -- -
365--  [0x02201] = 0x00, -- complement
366--  [0x02206] = 0x00, -- increment
367--  [0x02204] = 0x00, -- not exists
368--  [0x000B7] = 0x01, -- cdot
369    [0x022C5] = 0x01, -- cdot
370    [0x000D7] = 0x02, -- times
371    [0x0002A] = 0x03, -- *
372    [0x02217] = 0x03, -- *
373    [0x000F7] = 0x04, -- div
374    [0x022C4] = 0x05, -- diamond
375    [0x000B1] = 0x06, -- pm
376    [0x02213] = 0x07, -- mp
377    [0x02295] = 0x08, -- oplus
378    [0x02296] = 0x09, -- ominus
379    [0x02297] = 0x0A, -- otimes
380    [0x02298] = 0x0B, -- oslash
381    [0x02299] = 0x0C, -- odot
382    [0x025EF] = 0x0D, -- bigcirc, Orb (either 25EF or 25CB) -- todo
383    [0x02218] = 0x0E, -- circ
384    [0x02219] = 0x0F, -- bullet
385    [0x02022] = 0x0F, -- bullet
386    [0x0224D] = 0x10, -- asymp
387    [0x02261] = 0x11, -- equiv
388    [0x02286] = 0x12, -- subseteq
389    [0x02287] = 0x13, -- supseteq
390    [0x02264] = 0x14, -- leq
391    [0x02265] = 0x15, -- geq
392    [0x02AAF] = 0x16, -- preceq
393--  [0x0227C] = 0x16, -- preceq, AM:No see 2AAF
394    [0x02AB0] = 0x17, -- succeq
395--  [0x0227D] = 0x17, -- succeq, AM:No see 2AB0
396    [0x0223C] = 0x18, -- sim
397    [0x02248] = 0x19, -- approx
398    [0x02282] = 0x1A, -- subset
399    [0x02283] = 0x1B, -- supset
400    [0x0226A] = 0x1C, -- ll
401    [0x0226B] = 0x1D, -- gg
402    [0x0227A] = 0x1E, -- prec
403    [0x0227B] = 0x1F, -- succ
404    [0x02190] = 0x20, -- leftarrow
405    [0x02192] = 0x21, -- rightarrow
406--~ [0xFE190] = 0x20, -- leftarrow
407--~ [0xFE192] = 0x21, -- rightarrow
408    [0x02191] = 0x22, -- uparrow
409    [0x02193] = 0x23, -- downarrow
410    [0x02194] = 0x24, -- leftrightarrow
411    [0x02197] = 0x25, -- nearrow
412    [0x02198] = 0x26, -- searrow
413    [0x02243] = 0x27, -- simeq
414    [0x021D0] = 0x28, -- Leftarrow
415    [0x021D2] = 0x29, -- Rightarrow
416    [0x021D1] = 0x2A, -- Uparrow
417    [0x021D3] = 0x2B, -- Downarrow
418    [0x021D4] = 0x2C, -- Leftrightarrow
419    [0x02196] = 0x2D, -- nwarrow
420    [0x02199] = 0x2E, -- swarrow
421    [0x0221D] = 0x2F, -- propto
422    [0x02032] = 0x30, -- prime
423    [0x0221E] = 0x31, -- infty
424    [0x02208] = 0x32, -- in
425    [0x0220B] = 0x33, -- ni
426    [0x025B3] = 0x34, -- triangle, bigtriangleup
427    [0x025BD] = 0x35, -- bigtriangledown
428    [0x00338] = 0x36, -- not
429--              0x37, -- (beginning of arrow)
430    [0x02200] = 0x38, -- forall
431    [0x02203] = 0x39, -- exists
432    [0x000AC] = 0x3A, -- neg, lnot
433    [0x02205] = 0x3B, -- empty set
434    [0x0211C] = 0x3C, -- Re
435    [0x02111] = 0x3D, -- Im
436    [0x022A4] = 0x3E, -- top
437    [0x022A5] = 0x3F, -- bot, perp
438    [0x02135] = 0x40, -- aleph
439    [0x1D49C] = 0x41, -- script A
440    [0x0212C] = 0x42, -- script B
441    [0x1D49E] = 0x43, -- script C
442    [0x1D49F] = 0x44, -- script D
443    [0x02130] = 0x45, -- script E
444    [0x02131] = 0x46, -- script F
445    [0x1D4A2] = 0x47, -- script G
446    [0x0210B] = 0x48, -- script H
447    [0x02110] = 0x49, -- script I
448    [0x1D4A5] = 0x4A, -- script J
449    [0x1D4A6] = 0x4B, -- script K
450    [0x02112] = 0x4C, -- script L
451    [0x02133] = 0x4D, -- script M
452    [0x1D4A9] = 0x4E, -- script N
453    [0x1D4AA] = 0x4F, -- script O
454    [0x1D4AB] = 0x50, -- script P
455    [0x1D4AC] = 0x51, -- script Q
456    [0x0211B] = 0x52, -- script R
457    [0x1D4AE] = 0x53, -- script S
458    [0x1D4AF] = 0x54, -- script T
459    [0x1D4B0] = 0x55, -- script U
460    [0x1D4B1] = 0x56, -- script V
461    [0x1D4B2] = 0x57, -- script W
462    [0x1D4B3] = 0x58, -- script X
463    [0x1D4B4] = 0x59, -- script Y
464    [0x1D4B5] = 0x5A, -- script Z
465    [0x0222A] = 0x5B, -- cup
466    [0x02229] = 0x5C, -- cap
467    [0x0228E] = 0x5D, -- uplus
468    [0x02227] = 0x5E, -- wedge, land
469    [0x02228] = 0x5F, -- vee, lor
470    [0x022A2] = 0x60, -- vdash
471    [0x022A3] = 0x61, -- dashv
472    [0x0230A] = 0x62, -- lfloor
473    [0x0230B] = 0x63, -- rfloor
474    [0x02308] = 0x64, -- lceil
475    [0x02309] = 0x65, -- rceil
476    [0x0007B] = 0x66, -- {, lbrace
477    [0x0007D] = 0x67, -- }, rbrace
478    [0x027E8] = 0x68, -- <, langle
479    [0x027E9] = 0x69, -- >, rangle
480    [0x0007C] = 0x6A, -- |, mid, lvert, rvert
481    [0x02225] = 0x6B, -- parallel
482 -- [0x0    ] = 0x00, -- Vert, lVert, rVert, arrowvert, Arrowvert
483    [0x02195] = 0x6C, -- updownarrow
484    [0x021D5] = 0x6D, -- Updownarrow
485    [0x0005C] = 0x6E, -- \, backslash, setminus
486    [0x02216] = 0x6E, -- setminus
487    [0x02240] = 0x6F, -- wr
488    [0x0221A] = 0x70, -- sqrt. AM: Check surd??
489    [0x02A3F] = 0x71, -- amalg
490    [0x02207] = 0x72, -- nabla (upright)
491    [0x1D6FB] = 0x72, -- nabla (italic)
492--  [0x0222B] = 0x73, -- smallint (TODO: what about intop?)
493    [0x02294] = 0x74, -- sqcup
494    [0x02293] = 0x75, -- sqcap
495    [0x02291] = 0x76, -- sqsubseteq
496    [0x02292] = 0x77, -- sqsupseteq
497    [0x000A7] = 0x78, -- S
498    [0x02020] = 0x79, -- dagger, dag
499    [0x02021] = 0x7A, -- ddagger, ddag
500    [0x000B6] = 0x7B, -- P
501    [0x02663] = 0x7C, -- clubsuit
502    [0x02662] = 0x7D, -- diamondsuit
503    [0x02661] = 0x7E, -- heartsuit
504    [0x02660] = 0x7F, -- spadesuit
505 -- [0xFE321] = 0x37, -- mapstochar
506 -- [0xFE325] = 0x30, -- prime 0x02032
507    [nps("maps to piece")] = 0x37, -- mapstochar
508}
509
510mathencodings["tex-fraktur"] = {
511--  [0x1D504] = 0x41, -- A                     (fraktur A)
512--  [0x1D505] = 0x42, -- B
513    [0x0212D] = 0x43, -- C
514--  [0x1D507] = 0x44, -- D
515--  [0x1D508] = 0x45, -- E
516--  [0x1D509] = 0x46, -- F
517--  [0x1D50A] = 0x47, -- G
518    [0x0210C] = 0x48, -- H
519    [0x02111] = 0x49, -- I
520--  [0x1D50D] = 0x4A, -- J
521--  [0x1D50E] = 0x4B, -- K
522--  [0x1D50F] = 0x4C, -- L
523--  [0x1D510] = 0x4D, -- M
524--  [0x1D511] = 0x4E, -- N
525--  [0x1D512] = 0x4F, -- O
526--  [0x1D513] = 0x50, -- P
527--  [0x1D514] = 0x51, -- Q
528    [0x0211C] = 0x52, -- R
529--  [0x1D516] = 0x53, -- S
530--  [0x1D517] = 0x54, -- T
531--  [0x1D518] = 0x55, -- U
532--  [0x1D519] = 0x56, -- V
533--  [0x1D51A] = 0x57, -- W
534--  [0x1D51B] = 0x58, -- X
535--  [0x1D51C] = 0x59, -- Y
536    [0x02128] = 0x5A, -- Z                     (fraktur Z)
537--  [0x1D51E] = 0x61, -- a                     (fraktur a)
538--  [0x1D51F] = 0x62, -- b
539--  [0x1D520] = 0x63, -- c
540--  [0x1D521] = 0x64, -- d
541--  [0x1D522] = 0x65, -- e
542--  [0x1D523] = 0x66, -- f
543--  [0x1D524] = 0x67, -- g
544--  [0x1D525] = 0x68, -- h
545--  [0x1D526] = 0x69, -- i
546--  [0x1D527] = 0x6A, -- j
547--  [0x1D528] = 0x6B, -- k
548--  [0x1D529] = 0x6C, -- l
549--  [0x1D52A] = 0x6D, -- m
550--  [0x1D52B] = 0x6E, -- n
551--  [0x1D52C] = 0x6F, -- o
552--  [0x1D52D] = 0x70, -- p
553--  [0x1D52E] = 0x71, -- q
554--  [0x1D52F] = 0x72, -- r
555--  [0x1D530] = 0x73, -- s
556--  [0x1D531] = 0x74, -- t
557--  [0x1D532] = 0x75, -- u
558--  [0x1D533] = 0x76, -- v
559--  [0x1D534] = 0x77, -- w
560--  [0x1D535] = 0x78, -- x
561--  [0x1D536] = 0x79, -- y
562--  [0x1D537] = 0x7A, -- z
563}
564
565-- now that all other vectors are defined ...
566
567setletters(mathencodings, "tex-tf",           0x00041, 0x00061)
568setletters(mathencodings, "tex-mr",           0x00041, 0x00061)
569
570setletters(mathencodings, "tex-it",           0x1D434, 0x1D44E)
571setletters(mathencodings, "tex-ss",           0x1D5A0, 0x1D5BA)
572setletters(mathencodings, "tex-tt",           0x1D670, 0x1D68A)
573setletters(mathencodings, "tex-bf",           0x1D400, 0x1D41A)
574setletters(mathencodings, "tex-bi",           0x1D468, 0x1D482)
575setletters(mathencodings, "tex-fraktur",      0x1D504, 0x1D51E)
576setletters(mathencodings, "tex-fraktur-bold", 0x1D56C, 0x1D586)
577
578setdigits (mathencodings, "tex-mr", 0x00030)
579setdigits (mathencodings, "tex-tf", 0x00030)
580setdigits (mathencodings, "tex-ss", 0x1D7E2)
581setdigits (mathencodings, "tex-tt", 0x1D7F6)
582setdigits (mathencodings, "tex-bf", 0x1D7CE)
583
584-- setdigits (mathencodings, "tex-bi", 0x1D7CE)
585
586-- todo: add ss, tt, bf etc vectors
587-- todo: we can make ss tt etc an option
588