diff options
author | Khaled Hosny <khaledhosny@eglug.org> | 2010-04-05 12:25:17 +0200 |
---|---|---|
committer | Khaled Hosny <khaledhosny@eglug.org> | 2010-04-05 12:25:17 +0200 |
commit | b091e21a00b4636d3c6f4d147304c56a2a51afd8 (patch) | |
tree | b3bb0994fd46701ff3943a4d70c7e8dfeae70e9c /otfl-math-vfu.lua | |
parent | ffd5d4830688ca36153885c0336d3e2090abe0ce (diff) | |
download | luaotfload-b091e21a00b4636d3c6f4d147304c56a2a51afd8.tar.gz |
Revert "Import ConTeXt math modules"
This code proved to cause harm than good; unicode-math is doing better
without it. So, revert it back, until we are ready for it.
Diffstat (limited to 'otfl-math-vfu.lua')
-rw-r--r-- | otfl-math-vfu.lua | 2132 |
1 files changed, 0 insertions, 2132 deletions
diff --git a/otfl-math-vfu.lua b/otfl-math-vfu.lua deleted file mode 100644 index c209d52..0000000 --- a/otfl-math-vfu.lua +++ /dev/null @@ -1,2132 +0,0 @@ -if not modules then modules = { } end modules ['math-vfu'] = { - version = 1.001, - comment = "companion to math-ini.mkiv", - author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", - copyright = "PRAGMA ADE / ConTeXt Development Team", - license = "see context related readme files" -} - --- All these math vectors .. thanks to Aditya and Mojca they become --- better and better. If you have problems with math fonts or miss --- characters report it to the ConTeXt mailing list. - -local type, next = type, next - -local trace_virtual = false trackers.register("math.virtual", function(v) trace_virtual = v end) -local trace_timings = false trackers.register("math.timings", function(v) trace_timings = v end) - -fonts.enc.math = fonts.enc.math or { } - -local shared = { } - -fonts.vf.math = fonts.vf.math or { } -fonts.vf.math.optional = false - -local push, pop, back = { "push" }, { "pop" }, { "slot", 1, 0x2215 } - -local function negate(main,unicode,basecode) - local characters = main.characters - if not characters[unicode] then - local basechar = characters[basecode] - if basechar then - local ht, wd = basechar.height, basechar.width - characters[unicode] = { - width = wd, - height = ht, - depth = basechar.depth, - italic = basechar.italic, - kerns = basechar.kerns, - commands = { - { "slot", 1, basecode }, - push, - { "down", ht/5}, - { "right", - wd/2}, - back, - push, - } - } - end - end -end - ---~ \Umathchardef\braceld="0 "1 "FF07A ---~ \Umathchardef\bracerd="0 "1 "FF07B ---~ \Umathchardef\bracelu="0 "1 "FF07C ---~ \Umathchardef\braceru="0 "1 "FF07D - -local function brace(main,unicode,first,rule,left,right,rule,last) - local characters = main.characters - if not characters[unicode] then - characters[unicode] = { - horiz_variants = { - { extender = 0, glyph = first }, - { extender = 1, glyph = rule }, - { extender = 0, glyph = left }, - { extender = 0, glyph = right }, - { extender = 1, glyph = rule }, - { extender = 0, glyph = last }, - } - } - end -end - -local function arrow(main,unicode,arrow,minus,isleft) - if isleft then - t = { - { extender = 0, glyph = arrow }, - { extender = 1, glyph = minus }, - } - else - t = { - { extender = 0, glyph = minus }, - { extender = 1, glyph = arrow }, - } - end ---~ main.characters[unicode] = { horiz_variants = t } - main.characters[unicode].horiz_variants = t -end - -local function parent(main,unicode,first,rule,last) - local characters = main.characters - if not characters[unicode] then - characters[unicode] = { - horiz_variants = { - { extender = 0, glyph = first }, - { extender = 1, glyph = rule }, - { extender = 0, glyph = last }, - } - } - end -end - -local push, pop, step = { "push" }, { "pop" }, 0.2 -- 0.1 is nicer but gives larger files - -local function make(main,id,size,n,m) - local characters = main.characters - local xu = main.parameters.x_height + 0.3*size - local xd = 0.3*size - local old, upslot, dnslot, uprule, dnrule = 0xFF000+n, 0xFF100+n, 0xFF200+n, 0xFF300+m, 0xFF400+m - local c = characters[old] - if c then - local w, h, d = c.width, c.height, c.depth - local thickness = h - d - local rulewidth = step*size -- we could use an overlap - local slot = { "slot", id, old } - local rule = { "rule", thickness, rulewidth } - local up = { "down", -xu } - local dn = { "down", xd } - local ht, dp = xu + 3*thickness, 0 - if not characters[uprule] then - characters[uprule] = { width = rulewidth, height = ht, depth = dp, commands = { push, up, rule, pop } } - end - characters[upslot] = { width = w, height = ht, depth = dp, commands = { push, up, slot, pop } } - local ht, dp = 0, xd + 3*thickness - if not characters[dnrule] then - characters[dnrule] = { width = rulewidth, height = ht, depth = dp, commands = { push, dn, rule, pop } } - end - characters[dnslot] = { width = w, height = ht, depth = dp, commands = { push, dn, slot, pop } } - end -end - -local function minus(main,id,size,unicode) - local characters = main.characters - local mu = size/18 - local minus = characters[0x002D] - local width = minus.width - 5*mu - characters[unicode] = { - width = width, height = minus.height, depth = minus.depth, - commands = { push, { "right", -3*mu }, { "slot", id, 0x002D }, pop } - } -end - -local function dots(main,id,size,unicode) - local characters = main.characters - local c = characters[0x002E] - local w, h, d = c.width, c.height, c.depth - local mu = size/18 - local right3mu = { "right", 3*mu } - local right1mu = { "right", 1*mu } - local up1size = { "down", -.1*size } - local up4size = { "down", -.4*size } - local up7size = { "down", -.7*size } - local right2muw = { "right", 2*mu + w } - local slot = { "slot", id, 0x002E } - if unicode == 0x22EF then - local c = characters[0x022C5] - if c then - local w, h, d = c.width, c.height, c.depth - local slot = { "slot", id, 0x022C5 } - characters[unicode] = { - width = 3*w + 2*3*mu, height = h, depth = d, - commands = { push, slot, right3mu, slot, right3mu, slot, pop } - } - end - elseif unicode == 0x22EE then - -- weird height ! - characters[unicode] = { - width = w, height = h+(1.4)*size, depth = 0, - commands = { push, push, slot, pop, up4size, push, slot, pop, up4size, slot, pop } - } - elseif unicode == 0x22F1 then - characters[unicode] = { - width = 3*w + 6*size/18, height = 1.5*size, depth = 0, - commands = { - push, - right1mu, - push, up7size, slot, pop, - right2muw, - push, up4size, slot, pop, - right2muw, - push, up1size, slot, pop, - right1mu, - pop - } - } - elseif unicode == 0x22F0 then - characters[unicode] = { - width = 3*w + 6*size/18, height = 1.5*size, depth = 0, - commands = { - push, - right1mu, - push, up1size, slot, pop, - right2muw, - push, up4size, slot, pop, - right2muw, - push, up7size, slot, pop, - right1mu, - pop - } - } - else - characters[unicode] = { - width = 3*w + 2*3*mu, height = h, depth = d, - commands = { push, slot, right3mu, slot, right3mu, slot, pop } - } - end -end - -function fonts.vf.math.alas(main,id,size) - for i=0x7A,0x7D do - make(main,id,size,i,1) - end - brace (main,0x23DE,0xFF17A,0xFF301,0xFF17D,0xFF17C,0xFF301,0xFF17B) - brace (main,0x23DF,0xFF27C,0xFF401,0xFF27B,0xFF27A,0xFF401,0xFF27D) - parent(main,0x23DC,0xFF17A,0xFF301,0xFF17B) - parent(main,0x23DD,0xFF27C,0xFF401,0xFF27D) - negate(main,0x2260,0x003D) - dots(main,id,size,0x2026) -- ldots - dots(main,id,size,0x22EE) -- vdots - dots(main,id,size,0x22EF) -- cdots - dots(main,id,size,0x22F1) -- ddots - dots(main,id,size,0x22F0) -- udots - minus(main,id,size,0xFF501) - arrow(main,0x2190,0xFE190,0xFF501,true) -- left - arrow(main,0x2192,0xFE192,0xFF501,false) -- right -end - -local unique = 0 -- testcase: \startTEXpage \math{!\text{-}\text{-}\text{-}} \stopTEXpage - -function fonts.basecopy(tfmtable,name) - local characters, parameters, fullname = tfmtable.characters, tfmtable.parameters, tfmtable.fullname - local t, c, p = { }, { }, { } - for k, v in next, tfmtable do - t[k] = v - end - if characters then - for k, v in next, characters do - c[k] = v - end - t.characters = c - else - logs.report("math virtual","font %s has no characters",name) - end - if parameters then - for k, v in next, parameters do - p[k] = v - end - t.parameters = p - else - logs.report("math virtual","font %s has no parameters",name) - end - -- tricky ... what if fullname does not exist - if fullname then - unique = unique + 1 - t.fullname = fullname .. "-" .. unique - end - return t -end - -local reported = { } -local reverse -- index -> unicode - -function fonts.vf.math.define(specification,set) - if not reverse then - reverse = { } - for k, v in next, fonts.enc.math do - local r = { } - for u, i in next, v do - r[i] = u - end - reverse[k] = r - end - end - local name = specification.name -- symbolic name - local size = specification.size -- given size - local fnt, lst, main = { }, { }, nil - local start = (trace_virtual or trace_timings) and os.clock() - local okset, n = { }, 0 - for s=1,#set do - local ss = set[s] - local ssname = ss.name - if ss.optional and fonts.vf.math.optional then - if trace_virtual then - logs.report("math virtual","loading font %s subfont %s with name %s at %s is skipped",name,s,ssname,size) - end - else - if ss.features then ssname = ssname .. "*" .. ss.features end - if ss.main then main = s end - local f, id = fonts.tfm.read_and_define(ssname,size) - if not f then - logs.report("math virtual","loading font %s subfont %s with name %s at %s is skipped, not found",name,s,ssname,size) - else - n = n + 1 - okset[n] = ss - fnt[n] = f - lst[n] = { id = id, size = size } - if not shared[s] then shared[n] = { } end - if trace_virtual then - logs.report("math virtual","loading font %s subfont %s with name %s at %s as id %s using encoding %s",name,s,ssname,size,id,ss.vector or "none") - end - end - end - end - -- beware, fnt[1] is already passed to tex (we need to make a simple copy then .. todo) - main = fonts.basecopy(fnt[1],name) - main.name, main.fonts, main.virtualized, main.math_parameters = name, lst, true, { } - local characters, descriptions = main.characters, main.descriptions - local mp = main.parameters - if mp then - mp.x_height = mp.x_height or 0 - end - local already_reported = false - for s=1,n do - local ss, fs = okset[s], fnt[s] - if not fs then - -- skip, error - elseif ss.optional and fonts.vf.math.optional then - -- skip, redundant - else - local mm, fp = main.math_parameters, fs.parameters - if mm and fp and mp then - if ss.extension then - mm.math_x_height = fp.x_height or 0 -- math_x_height height of x - mm.default_rule_thickness = fp[ 8] or 0 -- default_rule_thickness thickness of \over bars - mm.big_op_spacing1 = fp[ 9] or 0 -- big_op_spacing1 minimum clearance above a displayed op - mm.big_op_spacing2 = fp[10] or 0 -- big_op_spacing2 minimum clearance below a displayed op - mm.big_op_spacing3 = fp[11] or 0 -- big_op_spacing3 minimum baselineskip above displayed op - mm.big_op_spacing4 = fp[12] or 0 -- big_op_spacing4 minimum baselineskip below displayed op - mm.big_op_spacing5 = fp[13] or 0 -- big_op_spacing5 padding above and below displayed limits - -- logs.report("math virtual","loading and virtualizing font %s at size %s, setting ex parameters",name,size) - elseif ss.parameters then - mp.x_height = fp.x_height or mp.x_height - mm.x_height = mm.x_height or fp.x_height or 0 -- x_height height of x - mm.num1 = fp[ 8] or 0 -- num1 numerator shift-up in display styles - mm.num2 = fp[ 9] or 0 -- num2 numerator shift-up in non-display, non-\atop - mm.num3 = fp[10] or 0 -- num3 numerator shift-up in non-display \atop - mm.denom1 = fp[11] or 0 -- denom1 denominator shift-down in display styles - mm.denom2 = fp[12] or 0 -- denom2 denominator shift-down in non-display styles - mm.sup1 = fp[13] or 0 -- sup1 superscript shift-up in uncramped display style - mm.sup2 = fp[14] or 0 -- sup2 superscript shift-up in uncramped non-display - mm.sup3 = fp[15] or 0 -- sup3 superscript shift-up in cramped styles - mm.sub1 = fp[16] or 0 -- sub1 subscript shift-down if superscript is absent - mm.sub2 = fp[17] or 0 -- sub2 subscript shift-down if superscript is present - mm.sup_drop = fp[18] or 0 -- sup_drop superscript baseline below top of large box - mm.sub_drop = fp[19] or 0 -- sub_drop subscript baseline below bottom of large box - mm.delim1 = fp[20] or 0 -- delim1 size of \atopwithdelims delimiters in display styles - mm.delim2 = fp[21] or 0 -- delim2 size of \atopwithdelims delimiters in non-displays - mm.axis_height = fp[22] or 0 -- axis_height height of fraction lines above the baseline - -- logs.report("math virtual","loading and virtualizing font %s at size %s, setting sy parameters",name,size) - end - else - logs.report("math virtual","font %s, no parameters set",name) - end - local vectorname = ss.vector - if vectorname then - local offset = 0xFF000 - local vector = fonts.enc.math[vectorname] - local rotcev = reverse[vectorname] - if vector then - local fc, fd, si = fs.characters, fs.descriptions, shared[s] - local skewchar = ss.skewchar - for unicode, index in next, vector do - local fci = fc[index] - if not fci then - local fontname = fs.name or "unknown" - local rf = reported[fontname] - if not rf then rf = { } reported[fontname] = rf end - local rv = rf[vectorname] - if not rv then rv = { } rf[vectorname] = rv end - local ru = rv[unicode] - if not ru then - if trace_virtual then - logs.report("math virtual", "unicode point U+%05X has no index %04X in vector %s for font %s",unicode,index,vectorname,fontname) - elseif not already_reported then - logs.report("math virtual", "the mapping is incomplete for '%s' at %s",name,number.topoints(size)) - already_reported = true - end - rv[unicode] = true - end - else - local ref = si[index] - if not ref then - ref = { { 'slot', s, index } } - si[index] = ref - end - local kerns = fci.kerns - if kerns then - local width = fci.width - local krn = { } - for k=1,#kerns do - local rk = rotcev[k] - if rk then - krn[rk] = kerns[k] - end - end - if not next(krn) then - krn = nil - end - local t = { - width = width, - height = fci.height, - depth = fci.depth, - italic = fci.italic, - kerns = krn, - commands = ref, - } - if skewchar and kerns then - local k = kerns[skewchar] - if k then - t.top_accent = width/2 + k - end - end - characters[unicode] = t - else - characters[unicode] = { - width = fci.width, - height = fci.height, - depth = fci.depth, - italic = fci.italic, - commands = ref, - } - end - end - end - if ss.extension then - -- todo: if multiple ex, then 256 offsets per instance - local extension = fonts.enc.math["large-to-small"] - local variants_done = fs.variants_done - for index, fci in next, fc do -- the raw ex file - if type(index) == "number" then - local ref = si[index] - if not ref then - ref = { { 'slot', s, index } } - si[index] = ref - end - local t = { - width = fci.width, - height = fci.height, - depth = fci.depth, - italic = fci.italic, - commands = ref, - } - local n = fci.next - if n then - t.next = offset + n - elseif variants_done then - local vv = fci.vert_variants - if vv then - t.vert_variants = vv - end - local hv = fci.horiz_variants - if hv then - t.horiz_variants = hv - end - else - local vv = fci.vert_variants - if vv then - for i=1,#vv do - local vvi = vv[i] - vvi.glyph = vvi.glyph + offset - end - t.vert_variants = vv - end - local hv = fci.horiz_variants - if hv then - for i=1,#hv do - local hvi = hv[i] - hvi.glyph = hvi.glyph + offset - end - t.horiz_variants = hv - end - end - characters[offset + index] = t - end - end - fs.variants_done = true - for unicode, index in next, extension do - local cu = characters[unicode] - if cu then - cu.next = offset + index - --~ local n, c, d = unicode, cu, { } - --~ print("START", unicode) - --~ while n do - --~ n = c.next - --~ if n then - --~ print("NEXT", n) - --~ c = characters[n] - --~ if not c then - --~ print("EXIT") - --~ elseif d[n] then - --~ print("LOOP") - --~ break - --~ end - --~ d[n] = true - --~ end - --~ end - else - local fci = fc[index] - if not fci then ---~ characters[unicode] = { ---~ width = 0, ---~ height = 0, ---~ depth = 0, ---~ index = 0, ---~ } - else - local ref = si[index] - if not ref then - ref = { { 'slot', s, index } } - si[index] = ref - end - local kerns = fci.kerns - if kerns then - local krn = { } - for k=1,#kerns do - krn[offset + k] = kerns[k] - end - characters[unicode] = { - width = fci.width, - height = fci.height, - depth = fci.depth, - italic = fci.italic, - commands = ref, - kerns = krn, - next = offset + index, - } - else - characters[unicode] = { - width = fci.width, - height = fci.height, - depth = fci.depth, - italic = fci.italic, - commands = ref, - next = offset + index, - } - end - end - end - end - end - end - end - mathematics.extras.copy(main) --not needed here (yet) - end - end - lst[#lst+1] = { id = font.nextid(), size = size } - if mp then -- weak catch - fonts.vf.math.alas(main,#lst,size) - end - if trace_virtual or trace_timings then - logs.report("math virtual","loading and virtualizing font %s at size %s took %0.3f seconds",name,size,os.clock()-start) - end - main.has_italic = true - main.type = "virtual" -- not needed - mathematics.scaleparameters(main,main,1) - main.nomath = false ---~ print(table.serialize(characters[0x222B])) ---~ print(main.fontname,table.serialize(main.MathConstants)) - return main -end - -function mathematics.make_font(name, set) - fonts.define.methods[name] = function(specification) - return fonts.vf.math.define(specification,set) - end -end - --- varphi is part of the alphabet, contrary to the other var*s' - -fonts.enc.math["large-to-small"] = { - [0x00028] = 0x00, -- ( - [0x00029] = 0x01, -- ) - [0x0005B] = 0x02, -- [ - [0x0005D] = 0x03, -- ] - [0x0230A] = 0x04, -- lfloor - [0x0230B] = 0x05, -- rfloor - [0x02308] = 0x06, -- lceil - [0x02309] = 0x07, -- rceil - [0x0007B] = 0x08, -- { - [0x0007D] = 0x09, -- } - [0x027E8] = 0x0A, -- < - [0x027E9] = 0x0B, -- > - [0x0007C] = 0x0C, -- | ---~ [0x0] = 0x0D, -- lVert rVert Vert --- [0x0002F] = 0x0E, -- / - [0x0005C] = 0x0F, -- \ ---~ [0x0] = 0x3A, -- lgroup ---~ [0x0] = 0x3B, -- rgroup ---~ [0x0] = 0x3C, -- arrowvert ---~ [0x0] = 0x3D, -- Arrowvert - [0x02195] = 0x3F, -- updownarrow ---~ [0x0] = 0x40, -- lmoustache ---~ [0x0] = 0x41, -- rmoustache - [0x0221A] = 0x70, -- sqrt - [0x021D5] = 0x77, -- Updownarrow - [0x02191] = 0x78, -- uparrow - [0x02193] = 0x79, -- downarrow - [0x021D1] = 0x7E, -- Uparrow - [0x021D3] = 0x7F, -- Downarrow - [0x0220F] = 0x59, -- prod - [0x02210] = 0x61, -- coprod - [0x02211] = 0x58, -- sum - [0x0222B] = 0x5A, -- intop - [0x0222E] = 0x49, -- ointop - [0xFE302] = 0x62, -- widehat - [0xFE303] = 0x65, -- widetilde - [0x022C0] = 0x5E, -- bigwedge - [0x022C1] = 0x5F, -- bigvee - [0x022C2] = 0x5C, -- bigcap - [0x022C3] = 0x5B, -- bigcup - [0x02044] = 0x0E, -- / -} - -fonts.enc.math["tex-ex"] = { - [0x0220F] = 0x51, -- prod - [0x0222B] = 0x52, -- intop - [0x02210] = 0x60, -- coprod - [0x02211] = 0x50, -- sum - [0x022C0] = 0x56, -- bigwedge - [0x022C1] = 0x57, -- bigvee - [0x022C2] = 0x54, -- bigcap - [0x022C3] = 0x53, -- bigcup - [0x02A04] = 0x55, -- biguplus - [0x02A02] = 0x4E, -- bigotimes - [0x02A01] = 0x4C, -- bigoplus - [0x02A03] = 0x4A, -- bigodot - [0x0222E] = 0x48, -- ointop - [0x02A06] = 0x46, -- bigsqcup -} - --- only math stuff is needed, since we always use an lm or gyre --- font as main font - -fonts.enc.math["tex-mr"] = { - [0x00393] = 0x00, -- Gamma - [0x00394] = 0x01, -- Delta - [0x00398] = 0x02, -- Theta - [0x0039B] = 0x03, -- Lambda - [0x0039E] = 0x04, -- Xi - [0x003A0] = 0x05, -- Pi - [0x003A3] = 0x06, -- Sigma - [0x003A5] = 0x07, -- Upsilon - [0x003A6] = 0x08, -- Phi - [0x003A8] = 0x09, -- Psi - [0x003A9] = 0x0A, -- Omega --- [0x00060] = 0x12, -- [math]grave --- [0x000B4] = 0x13, -- [math]acute --- [0x002C7] = 0x14, -- [math]check --- [0x002D8] = 0x15, -- [math]breve --- [0x000AF] = 0x16, -- [math]bar --- [0x00021] = 0x21, -- ! --- [0x00028] = 0x28, -- ( --- [0x00029] = 0x29, -- ) --- [0x0002B] = 0x2B, -- + --- [0x0002F] = 0x2F, -- / --- [0x0003A] = 0x3A, -- : --- [0x02236] = 0x3A, -- colon --- [0x0003B] = 0x3B, -- ; --- [0x0003C] = 0x3C, -- < --- [0x0003D] = 0x3D, -- = --- [0x0003E] = 0x3E, -- > --- [0x0003F] = 0x3F, -- ? - [0x00391] = 0x41, -- Alpha - [0x00392] = 0x42, -- Beta - [0x02145] = 0x44, - [0x00395] = 0x45, -- Epsilon - [0x00397] = 0x48, -- Eta - [0x00399] = 0x49, -- Iota - [0x0039A] = 0x4B, -- Kappa - [0x0039C] = 0x4D, -- Mu - [0x0039D] = 0x4E, -- Nu - [0x0039F] = 0x4F, -- Omicron - [0x003A1] = 0x52, -- Rho - [0x003A4] = 0x54, -- Tau - [0x003A7] = 0x58, -- Chi - [0x00396] = 0x5A, -- Zeta --- [0x0005B] = 0x5B, -- [ --- [0x0005D] = 0x5D, -- ] --- [0x0005E] = 0x5E, -- [math]hat -- the text one - [0x00302] = 0x5E, -- [math]hat -- the real math one --- [0x002D9] = 0x5F, -- [math]dot - [0x02146] = 0x64, - [0x02147] = 0x65, --- [0x002DC] = 0x7E, -- [math]tilde -- the text one - [0x00303] = 0x7E, -- [math]tilde -- the real one --- [0x000A8] = 0x7F, -- [math]ddot -} - -fonts.enc.math["tex-mr-missing"] = { - [0x02236] = 0x3A, -- colon -} - -fonts.enc.math["tex-mi"] = { - [0x1D6E4] = 0x00, -- Gamma - [0x1D6E5] = 0x01, -- Delta - [0x1D6E9] = 0x02, -- Theta - [0x1D6F3] = 0x02, -- varTheta (not present in TeX) - [0x1D6EC] = 0x03, -- Lambda - [0x1D6EF] = 0x04, -- Xi - [0x1D6F1] = 0x05, -- Pi - [0x1D6F4] = 0x06, -- Sigma - [0x1D6F6] = 0x07, -- Upsilon - [0x1D6F7] = 0x08, -- Phi - [0x1D6F9] = 0x09, -- Psi - [0x1D6FA] = 0x0A, -- Omega - [0x1D6FC] = 0x0B, -- alpha - [0x1D6FD] = 0x0C, -- beta - [0x1D6FE] = 0x0D, -- gamma - [0x1D6FF] = 0x0E, -- delta - [0x1D716] = 0x0F, -- epsilon TODO: 1D716 - [0x1D701] = 0x10, -- zeta - [0x1D702] = 0x11, -- eta - [0x1D703] = 0x12, -- theta TODO: 1D703 - [0x1D704] = 0x13, -- iota - [0x1D705] = 0x14, -- kappa - [0x1D718] = 0x14, -- varkappa, not in tex fonts - [0x1D706] = 0x15, -- lambda - [0x1D707] = 0x16, -- mu - [0x1D708] = 0x17, -- nu - [0x1D709] = 0x18, -- xi - [0x1D70B] = 0x19, -- pi - [0x1D70C] = 0x1A, -- rho - [0x1D70E] = 0x1B, -- sigma - [0x1D70F] = 0x1C, -- tau - [0x1D710] = 0x1D, -- upsilon - [0x1D719] = 0x1E, -- phi - [0x1D712] = 0x1F, -- chi - [0x1D713] = 0x20, -- psi - [0x1D714] = 0x21, -- omega - [0x1D700] = 0x22, -- varepsilon (the other way around) - [0x1D717] = 0x23, -- vartheta - [0x1D71B] = 0x24, -- varpi - [0x1D71A] = 0x25, -- varrho - [0x1D70D] = 0x26, -- varsigma - [0x1D711] = 0x27, -- varphi (the other way around) - [0x021BC] = 0x28, -- leftharpoonup - [0x021BD] = 0x29, -- leftharpoondown - [0x021C0] = 0x2A, -- rightharpoonup - [0x021C1] = 0x2B, -- rightharpoondown - [0xFE322] = 0x2C, -- lhook (hook for combining arrows) - [0xFE323] = 0x2D, -- rhook (hook for combining arrows) - [0x022B3] = 0x2E, -- triangleright (TODO: which one is right?) - [0x022B2] = 0x2F, -- triangleleft (TODO: which one is right?) --- [0x00041] = 0x30, -- 0 --- [0x00041] = 0x31, -- 1 --- [0x00041] = 0x32, -- 2 --- [0x00041] = 0x33, -- 3 --- [0x00041] = 0x34, -- 4 --- [0x00041] = 0x35, -- 5 --- [0x00041] = 0x36, -- 6 --- [0x00041] = 0x37, -- 7 --- [0x00041] = 0x38, -- 8 --- [0x00041] = 0x39, -- 9 ---~ [0x0002E] = 0x3A, -- . - [0x0002C] = 0x3B, -- , - [0x0003C] = 0x3C, -- < --- [0x0002F] = 0x3D, -- /, slash, solidus - [0x02044] = 0x3D, -- / AM: Not sure - [0x0003E] = 0x3E, -- > - [0x022C6] = 0x3F, -- star - [0x02202] = 0x40, -- partial --- - [0x0266D] = 0x5B, -- flat - [0x0266E] = 0x5C, -- natural - [0x0266F] = 0x5D, -- sharp - [0x02323] = 0x5E, -- smile - [0x02322] = 0x5F, -- frown - [0x02113] = 0x60, -- ell --- - [0x1D6A4] = 0x7B, -- imath (TODO: also 0131) - [0x1D6A5] = 0x7C, -- jmath (TODO: also 0237) - [0x02118] = 0x7D, -- wp - [0x020D7] = 0x7E, -- vec (TODO: not sure) --- 0x7F, -- (no idea what that could be) -} - - -fonts.enc.math["tex-it"] = { --- [0x1D434] = 0x41, -- A - [0x1D6E2] = 0x41, -- Alpha --- [0x1D435] = 0x42, -- B - [0x1D6E3] = 0x42, -- Beta --- [0x1D436] = 0x43, -- C --- [0x1D437] = 0x44, -- D --- [0x1D438] = 0x45, -- E - [0x1D6E6] = 0x45, -- Epsilon --- [0x1D439] = 0x46, -- F --- [0x1D43A] = 0x47, -- G --- [0x1D43B] = 0x48, -- H - [0x1D6E8] = 0x48, -- Eta --- [0x1D43C] = 0x49, -- I - [0x1D6EA] = 0x49, -- Iota --- [0x1D43D] = 0x4A, -- J --- [0x1D43E] = 0x4B, -- K - [0x1D6EB] = 0x4B, -- Kappa --- [0x1D43F] = 0x4C, -- L --- [0x1D440] = 0x4D, -- M - [0x1D6ED] = 0x4D, -- Mu --- [0x1D441] = 0x4E, -- N - [0x1D6EE] = 0x4E, -- Nu --- [0x1D442] = 0x4F, -- O - [0x1D6F0] = 0x4F, -- Omicron --- [0x1D443] = 0x50, -- P - [0x1D6F2] = 0x50, -- Rho --- [0x1D444] = 0x51, -- Q --- [0x1D445] = 0x52, -- R --- [0x1D446] = 0x53, -- S --- [0x1D447] = 0x54, -- T - [0x1D6F5] = 0x54, -- Tau --- [0x1D448] = 0x55, -- U --- [0x1D449] = 0x56, -- V --- [0x1D44A] = 0x57, -- W --- [0x1D44B] = 0x58, -- X - [0x1D6F8] = 0x58, -- Chi --- [0x1D44C] = 0x59, -- Y --- [0x1D44D] = 0x5A, -- Z --- --- [0x1D44E] = 0x61, -- a --- [0x1D44F] = 0x62, -- b --- [0x1D450] = 0x63, -- c --- [0x1D451] = 0x64, -- d --- [0x1D452] = 0x65, -- e --- [0x1D453] = 0x66, -- f --- [0x1D454] = 0x67, -- g --- [0x1D455] = 0x68, -- h - [0x0210E] = 0x68, -- Planck constant (h) --- [0x1D456] = 0x69, -- i --- [0x1D457] = 0x6A, -- j --- [0x1D458] = 0x6B, -- k --- [0x1D459] = 0x6C, -- l --- [0x1D45A] = 0x6D, -- m --- [0x1D45B] = 0x6E, -- n --- [0x1D45C] = 0x6F, -- o - [0x1D70A] = 0x6F, -- omicron --- [0x1D45D] = 0x70, -- p --- [0x1D45E] = 0x71, -- q --- [0x1D45F] = 0x72, -- r --- [0x1D460] = 0x73, -- s --- [0x1D461] = 0x74, -- t --- [0x1D462] = 0x75, -- u --- [0x1D463] = 0x76, -- v --- [0x1D464] = 0x77, -- w --- [0x1D465] = 0x78, -- x --- [0x1D466] = 0x79, -- y --- [0x1D467] = 0x7A, -- z -} - -fonts.enc.math["tex-ss"] = { } -fonts.enc.math["tex-tt"] = { } -fonts.enc.math["tex-bf"] = { } -fonts.enc.math["tex-bi"] = { } -fonts.enc.math["tex-fraktur"] = { } -fonts.enc.math["tex-fraktur-bold"] = { } - -function fonts.vf.math.set_letters(font_encoding, name, uppercase, lowercase) - local enc = font_encoding[name] - for i = 0,25 do - enc[uppercase+i] = i + 0x41 - enc[lowercase+i] = i + 0x61 - end -end - -function fonts.vf.math.set_digits(font_encoding, name, digits) - local enc = font_encoding[name] - for i = 0,9 do - enc[digits+i] = i + 0x30 - end -end - -fonts.enc.math["tex-sy"] = { - [0x0002D] = 0x00, -- - - [0x02212] = 0x00, -- - --- [0x02201] = 0x00, -- complement --- [0x02206] = 0x00, -- increment --- [0x02204] = 0x00, -- not exists ---~ [0x000B7] = 0x01, -- cdot - [0x022C5] = 0x01, -- cdot - [0x000D7] = 0x02, -- times - [0x0002A] = 0x03, -- * - [0x02217] = 0x03, -- * - [0x000F7] = 0x04, -- div - [0x022C4] = 0x05, -- diamond - [0x000B1] = 0x06, -- pm - [0x02213] = 0x07, -- mp - [0x02295] = 0x08, -- oplus - [0x02296] = 0x09, -- ominus - [0x02297] = 0x0A, -- otimes - [0x02298] = 0x0B, -- oslash - [0x02299] = 0x0C, -- odot - [0x025EF] = 0x0D, -- bigcirc, Orb (either 25EF or 25CB) -- todo - [0x02218] = 0x0E, -- circ - [0x02219] = 0x0F, -- bullet - [0x02022] = 0x0F, -- bullet - [0x0224D] = 0x10, -- asymp - [0x02261] = 0x11, -- equiv - [0x02286] = 0x12, -- subseteq - [0x02287] = 0x13, -- supseteq - [0x02264] = 0x14, -- leq - [0x02265] = 0x15, -- geq - [0x02AAF] = 0x16, -- preceq --- [0x0227C] = 0x16, -- preceq, AM:No see 2AAF - [0x02AB0] = 0x17, -- succeq --- [0x0227D] = 0x17, -- succeq, AM:No see 2AB0 - [0x0223C] = 0x18, -- sim - [0x02248] = 0x19, -- approx - [0x02282] = 0x1A, -- subset - [0x02283] = 0x1B, -- supset - [0x0226A] = 0x1C, -- ll - [0x0226B] = 0x1D, -- gg - [0x0227A] = 0x1E, -- prec - [0x0227B] = 0x1F, -- succ - [0x02190] = 0x20, -- leftarrow - [0x02192] = 0x21, -- rightarrow ---~ [0xFE190] = 0x20, -- leftarrow ---~ [0xFE192] = 0x21, -- rightarrow - [0x02191] = 0x22, -- uparrow - [0x02193] = 0x23, -- downarrow - [0x02194] = 0x24, -- leftrightarrow - [0x02197] = 0x25, -- nearrow - [0x02198] = 0x26, -- searrow - [0x02243] = 0x27, -- simeq - [0x021D0] = 0x28, -- Leftarrow - [0x021D2] = 0x29, -- Rightarrow - [0x021D1] = 0x2A, -- Uparrow - [0x021D3] = 0x2B, -- Downarrow - [0x021D4] = 0x2C, -- Leftrightarrow - [0x02196] = 0x2D, -- nwarrow - [0x02199] = 0x2E, -- swarrow - [0x0221D] = 0x2F, -- propto - [0x02032] = 0x30, -- prime - [0x0221E] = 0x31, -- infty - [0x02208] = 0x32, -- in - [0x0220B] = 0x33, -- ni - [0x025B3] = 0x34, -- triangle, bigtriangleup - [0x025BD] = 0x35, -- bigtriangledown - [0x00338] = 0x36, -- not --- 0x37, -- (beginning of arrow) - [0x02200] = 0x38, -- forall - [0x02203] = 0x39, -- exists - [0x000AC] = 0x3A, -- neg, lnot - [0x02205] = 0x3B, -- empty set - [0x0211C] = 0x3C, -- Re - [0x02111] = 0x3D, -- Im - [0x022A4] = 0x3E, -- top - [0x022A5] = 0x3F, -- bot, perp - [0x02135] = 0x40, -- aleph - [0x1D49C] = 0x41, -- script A - [0x0212C] = 0x42, -- script B - [0x1D49E] = 0x43, -- script C - [0x1D49F] = 0x44, -- script D - [0x02130] = 0x45, -- script E - [0x02131] = 0x46, -- script F - [0x1D4A2] = 0x47, -- script G - [0x0210B] = 0x48, -- script H - [0x02110] = 0x49, -- script I - [0x1D4A5] = 0x4A, -- script J - [0x1D4A6] = 0x4B, -- script K - [0x02112] = 0x4C, -- script L - [0x02133] = 0x4D, -- script M - [0x1D4A9] = 0x4E, -- script N - [0x1D4AA] = 0x4F, -- script O - [0x1D4AB] = 0x50, -- script P - [0x1D4AC] = 0x51, -- script Q - [0x0211B] = 0x52, -- script R - [0x1D4AE] = 0x53, -- script S - [0x1D4AF] = 0x54, -- script T - [0x1D4B0] = 0x55, -- script U - [0x1D4B1] = 0x56, -- script V - [0x1D4B2] = 0x57, -- script W - [0x1D4B3] = 0x58, -- script X - [0x1D4B4] = 0x59, -- script Y - [0x1D4B5] = 0x5A, -- script Z - [0x0222A] = 0x5B, -- cup - [0x02229] = 0x5C, -- cap - [0x0228E] = 0x5D, -- uplus - [0x02227] = 0x5E, -- wedge, land - [0x02228] = 0x5F, -- vee, lor - [0x022A2] = 0x60, -- vdash - [0x022A3] = 0x61, -- dashv - [0x0230A] = 0x62, -- lfloor - [0x0230B] = 0x63, -- rfloor - [0x02308] = 0x64, -- lceil - [0x02309] = 0x65, -- rceil - [0x0007B] = 0x66, -- {, lbrace - [0x0007D] = 0x67, -- }, rbrace - [0x027E8] = 0x68, -- <, langle - [0x027E9] = 0x69, -- >, rangle - [0x0007C] = 0x6A, -- |, mid, lvert, rvert - [0x02225] = 0x6B, -- parallel, Vert, lVert, rVert, arrowvert - [0x02195] = 0x6C, -- updownarrow - [0x021D5] = 0x6D, -- Updownarrow - [0x0005C] = 0x6E, -- \, backslash, setminus - [0x02216] = 0x6E, -- setminus - [0x02240] = 0x6F, -- wr - [0x0221A] = 0x70, -- sqrt. AM: Check surd?? - [0x02A3F] = 0x71, -- amalg - [0x1D6FB] = 0x72, -- nabla --- [0x0222B] = 0x73, -- smallint (TODO: what about intop?) - [0x02294] = 0x74, -- sqcup - [0x02293] = 0x75, -- sqcap - [0x02291] = 0x76, -- sqsubseteq - [0x02292] = 0x77, -- sqsupseteq - [0x000A7] = 0x78, -- S - [0x02020] = 0x79, -- dagger, dag - [0x02021] = 0x7A, -- ddagger, ddag - [0x000B6] = 0x7B, -- P - [0x02663] = 0x7C, -- clubsuit - [0x02662] = 0x7D, -- diamondsuit - [0x02661] = 0x7E, -- heartsuit - [0x02660] = 0x7F, -- spadesuit - [0xFE321] = 0x37, -- mapstochar -} - --- The names in masm10.enc can be trusted best and are shown in the first --- column, while in the second column we show the tex/ams names. As usual --- it costs hours to figure out such a table. - -fonts.enc.math["tex-ma"] = { - [0x022A1] = 0x00, -- squaredot \boxdot - [0x0229E] = 0x01, -- squareplus \boxplus - [0x022A0] = 0x02, -- squaremultiply \boxtimes - [0x025A1] = 0x03, -- square \square \Box - [0x025A0] = 0x04, -- squaresolid \blacksquare - [0x000B7] = 0x05, -- squaresmallsolid \centerdot - [0x022C4] = 0x06, -- diamond \Diamond \lozenge - [0x029EB] = 0x07, -- diamondsolid \blacklozenge - [0x021BA] = 0x08, -- clockwise \circlearrowright - [0x021BB] = 0x09, -- anticlockwise \circlearrowleft - [0x021CC] = 0x0A, -- harpoonleftright \rightleftharpoons - [0x021CB] = 0x0B, -- harpoonrightleft \leftrightharpoons - [0x0229F] = 0x0C, -- squareminus \boxminus - [0x022A9] = 0x0D, -- forces \Vdash - [0x022AA] = 0x0E, -- forcesbar \Vvdash - [0x022A8] = 0x0F, -- satisfies \vDash - [0x021A0] = 0x10, -- dblarrowheadright \twoheadrightarrow - [0x0219E] = 0x11, -- dblarrowheadleft \twoheadleftarrow - [0x021C7] = 0x12, -- dblarrowleft \leftleftarrows - [0x021C9] = 0x13, -- dblarrowright \rightrightarrows - [0x021C8] = 0x14, -- dblarrowup \upuparrows - [0x021CA] = 0x15, -- dblarrowdwn \downdownarrows - [0x021BE] = 0x16, -- harpoonupright \upharpoonright \restriction - [0x021C2] = 0x17, -- harpoondownright \downharpoonright - [0x021BF] = 0x18, -- harpoonupleft \upharpoonleft - [0x021C3] = 0x19, -- harpoondownleft \downharpoonleft - [0x021A3] = 0x1A, -- arrowtailright \rightarrowtail - [0x021A2] = 0x1B, -- arrowtailleft \leftarrowtail - [0x021C6] = 0x1C, -- arrowparrleftright \leftrightarrows --- [0x021C5] = 0x00, -- \updownarrows (missing in lm) - [0x021C4] = 0x1D, -- arrowparrrightleft \rightleftarrows - [0x021B0] = 0x1E, -- shiftleft \Lsh - [0x021B1] = 0x1F, -- shiftright \Rsh - [0x021DD] = 0x20, -- squiggleright \leadsto \rightsquigarrow - [0x021AD] = 0x21, -- squiggleleftright \leftrightsquigarrow - [0x021AB] = 0x22, -- curlyleft \looparrowleft - [0x021AC] = 0x23, -- curlyright \looparrowright - [0x02257] = 0x24, -- circleequal \circeq - [0x0227F] = 0x25, -- followsorequal \succsim - [0x02273] = 0x26, -- greaterorsimilar \gtrsim - [0x02A86] = 0x27, -- greaterorapproxeql \gtrapprox - [0x022B8] = 0x28, -- multimap \multimap - [0x02234] = 0x29, -- therefore \therefore - [0x02235] = 0x2A, -- because \because - [0x02251] = 0x2B, -- equalsdots \Doteq \doteqdot - [0x0225C] = 0x2C, -- defines \triangleq - [0x0227E] = 0x2D, -- precedesorequal \precsim - [0x02272] = 0x2E, -- lessorsimilar \lesssim - [0x02A85] = 0x2F, -- lessorapproxeql \lessapprox - [0x02A95] = 0x30, -- equalorless \eqslantless - [0x02A96] = 0x31, -- equalorgreater \eqslantgtr - [0x022DE] = 0x32, -- equalorprecedes \curlyeqprec - [0x022DF] = 0x33, -- equalorfollows \curlyeqsucc - [0x0227C] = 0x34, -- precedesorcurly \preccurlyeq - [0x02266] = 0x35, -- lessdblequal \leqq - [0x02A7D] = 0x36, -- lessorequalslant \leqslant - [0x02276] = 0x37, -- lessorgreater \lessgtr - [0x02035] = 0x38, -- primereverse \backprime - -- [0x0] = 0x39, -- axisshort \dabar - [0x02253] = 0x3A, -- equaldotrightleft \risingdotseq - [0x02252] = 0x3B, -- equaldotleftright \fallingdotseq - [0x0227D] = 0x3C, -- followsorcurly \succcurlyeq - [0x02267] = 0x3D, -- greaterdblequal \geqq - [0x02A7E] = 0x3E, -- greaterorequalslant \geqslant - [0x02277] = 0x3F, -- greaterorless \gtrless - [0x0228F] = 0x40, -- squareimage \sqsubset - [0x02290] = 0x41, -- squareoriginal \sqsupset - -- wrong: - [0x022B3] = 0x42, -- triangleright \rhd \vartriangleright - [0x022B2] = 0x43, -- triangleleft \lhd \vartriangleleft - [0x022B5] = 0x44, -- trianglerightequal \unrhd \trianglerighteq - [0x022B4] = 0x45, -- triangleleftequal \unlhd \trianglelefteq - -- - [0x02605] = 0x46, -- star \bigstar - [0x0226C] = 0x47, -- between \between - [0x025BC] = 0x48, -- triangledownsld \blacktriangledown - [0x025B6] = 0x49, -- trianglerightsld \blacktriangleright - [0x025C0] = 0x4A, -- triangleleftsld \blacktriangleleft - -- [0x0] = 0x4B, -- arrowaxisright - -- [0x0] = 0x4C, -- arrowaxisleft - [0x025B2] = 0x4D, -- triangle \triangleup \vartriangle - [0x025B2] = 0x4E, -- trianglesolid \blacktriangle - [0x025BC] = 0x4F, -- triangleinv \triangledown - [0x02256] = 0x50, -- ringinequal \eqcirc - [0x022DA] = 0x51, -- lessequalgreater \lesseqgtr - [0x022DB] = 0x52, -- greaterlessequal \gtreqless - [0x02A8B] = 0x53, -- lessdbleqlgreater \lesseqqgtr - [0x02A8C] = 0x54, -- greaterdbleqlless \gtreqqless - [0x000A5] = 0x55, -- Yen \yen - [0x021DB] = 0x56, -- arrowtripleright \Rrightarrow - [0x021DA] = 0x57, -- arrowtripleleft \Lleftarrow - [0x02713] = 0x58, -- check \checkmark - [0x022BB] = 0x59, -- orunderscore \veebar - [0x022BC] = 0x5A, -- nand \barwedge - [0x02306] = 0x5B, -- perpcorrespond \doublebarwedge - [0x02220] = 0x5C, -- angle \angle - [0x02221] = 0x5D, -- measuredangle \measuredangle - [0x02222] = 0x5E, -- sphericalangle \sphericalangle - -- [0x0] = 0x5F, -- proportional \varpropto - -- [0x0] = 0x60, -- smile \smallsmile - -- [0x0] = 0x61, -- frown \smallfrown - [0x022D0] = 0x62, -- subsetdbl \Subset - [0x022D1] = 0x63, -- supersetdbl \Supset - [0x022D3] = 0x64, -- uniondbl \doublecup \Cup - [0x00100] = 0x65, -- intersectiondbl \doublecap \Cap - [0x022CF] = 0x66, -- uprise \curlywedge - [0x022CE] = 0x67, -- downfall \curlyvee - [0x022CB] = 0x68, -- multiopenleft \leftthreetimes - [0x022CC] = 0x69, -- multiopenright \rightthreetimes - [0x02AC5] = 0x6A, -- subsetdblequal \subseteqq - [0x02AC6] = 0x6B, -- supersetdblequal \supseteqq - [0x0224F] = 0x6C, -- difference \bumpeq - [0x0224E] = 0x6D, -- geomequivalent \Bumpeq - [0x022D8] = 0x6E, -- muchless \lll \llless - [0x022D9] = 0x6F, -- muchgreater \ggg \gggtr - [0x0231C] = 0x70, -- rightanglenw \ulcorner - [0x0231D] = 0x71, -- rightanglene \urcorner - [0x024C7] = 0x72, -- circleR \circledR - [0x024C8] = 0x73, -- circleS \circledS - [0x022D4] = 0x74, -- fork \pitchfork - [0x02245] = 0x75, -- dotplus \dotplus - [0x0223D] = 0x76, -- revsimilar \backsim - [0x022CD] = 0x77, -- revasymptequal \backsimeq -- AM: Check this! I mapped it to simeq. - [0x0231E] = 0x78, -- rightanglesw \llcorner - [0x0231F] = 0x79, -- rightanglese \lrcorner - [0x02720] = 0x7A, -- maltesecross \maltese - [0x02201] = 0x7B, -- complement \complement - [0x022BA] = 0x7C, -- intercal \intercal - [0x0229A] = 0x7D, -- circlering \circledcirc - [0x0229B] = 0x7E, -- circleasterisk \circledast - [0x0229D] = 0x7F, -- circleminus \circleddash -} - -fonts.enc.math["tex-mb"] = { - -- [0x0] = 0x00, -- lessornotequal \lvertneqq - -- [0x0] = 0x01, -- greaterornotequal \gvertneqq - [0x02270] = 0x02, -- notlessequal \nleq - [0x02271] = 0x03, -- notgreaterequal \ngeq - [0x0226E] = 0x04, -- notless \nless - [0x0226F] = 0x05, -- notgreater \ngtr - [0x02280] = 0x06, -- notprecedes \nprec - [0x02281] = 0x07, -- notfollows \nsucc - [0x02268] = 0x08, -- lessornotdbleql \lneqq - [0x02269] = 0x09, -- greaterornotdbleql \gneqq - -- [0x0] = 0x0A, -- notlessorslnteql \nleqslant - -- [0x0] = 0x0B, -- notgreaterorslnteql \ngeqslant - [0x02A87] = 0x0C, -- lessnotequal \lneq - [0x02A88] = 0x0D, -- greaternotequal \gneq - -- [0x0] = 0x0E, -- notprecedesoreql \npreceq - -- [0x0] = 0x0F, -- notfollowsoreql \nsucceq - [0x022E8] = 0x10, -- precedeornoteqvlnt \precnsim - [0x022E9] = 0x11, -- followornoteqvlnt \succnsim - [0x022E6] = 0x12, -- lessornotsimilar \lnsim - [0x022E7] = 0x13, -- greaterornotsimilar \gnsim - -- [0x0] = 0x14, -- notlessdblequal \nleqq - -- [0x0] = 0x15, -- notgreaterdblequal \ngeqq - [0x02AB5] = 0x16, -- precedenotslnteql \precneqq - [0x02AB6] = 0x17, -- follownotslnteql \succneqq - [0x02AB9] = 0x18, -- precedenotdbleqv \precnapprox - [0x02ABA] = 0x19, -- follownotdbleqv \succnapprox - [0x02A89] = 0x1A, -- lessnotdblequal \lnapprox - [0x02A8A] = 0x1B, -- greaternotdblequal \gnapprox - [0x02241] = 0x1C, -- notsimilar \nsim - [0x02247] = 0x1D, -- notapproxequal \ncong - -- [0x0] = 0x1E, -- upslope \diagup - -- [0x0] = 0x1F, -- downslope \diagdown - -- [0x0] = 0x20, -- notsubsetoreql \varsubsetneq - -- [0x0] = 0x21, -- notsupersetoreql \varsupsetneq - -- [0x0] = 0x22, -- notsubsetordbleql \nsubseteqq - -- [0x0] = 0x23, -- notsupersetordbleql \nsupseteqq - [0x02ACB] = 0x24, -- subsetornotdbleql \subsetneqq - [0x02ACC] = 0x25, -- supersetornotdbleql \supsetneqq - -- [0x0] = 0x26, -- subsetornoteql \varsubsetneqq - -- [0x0] = 0x27, -- supersetornoteql \varsupsetneqq - [0x0228A] = 0x28, -- subsetnoteql \subsetneq - [0x0228B] = 0x29, -- supersetnoteql \supsetneq - [0x02288] = 0x2A, -- notsubseteql \nsubseteq - [0x02289] = 0x2B, -- notsuperseteql \nsupseteq - [0x02226] = 0x2C, -- notparallel \nparallel - [0x02224] = 0x2D, -- notbar \nmid \ndivides - -- [0x0] = 0x2E, -- notshortbar \nshortmid - -- [0x0] = 0x2F, -- notshortparallel \nshortparallel - [0x022AC] = 0x30, -- notturnstile \nvdash - [0x022AE] = 0x31, -- notforces \nVdash - [0x022AD] = 0x32, -- notsatisfies \nvDash - [0x022AF] = 0x33, -- notforcesextra \nVDash - [0x022ED] = 0x34, -- nottriangeqlright \ntrianglerighteq - [0x022EC] = 0x35, -- nottriangeqlleft \ntrianglelefteq - [0x022EA] = 0x36, -- nottriangleleft \ntriangleleft - [0x022EB] = 0x37, -- nottriangleright \ntriangleright - [0x0219A] = 0x38, -- notarrowleft \nleftarrow - [0x0219B] = 0x39, -- notarrowright \nrightarrow - [0x021CD] = 0x3A, -- notdblarrowleft \nLeftarrow - [0x021CF] = 0x3B, -- notdblarrowright \nRightarrow - [0x021CE] = 0x3C, -- notdblarrowboth \nLeftrightarrow - [0x021AE] = 0x3D, -- notarrowboth \nleftrightarrow - [0x022C7] = 0x3E, -- dividemultiply \divideontimes - [0x02300] = 0x3F, -- diametersign \varnothing - [0x02204] = 0x40, -- notexistential \nexists - [0x1D538] = 0x41, -- A (blackboard A) - [0x1D539] = 0x42, -- B - [0x02102] = 0x43, -- C - [0x1D53B] = 0x44, -- D - [0x1D53C] = 0x45, -- E - [0x1D53D] = 0x46, -- F - [0x1D53E] = 0x47, -- G - [0x0210D] = 0x48, -- H - [0x1D540] = 0x49, -- I - [0x1D541] = 0x4A, -- J - [0x1D542] = 0x4B, -- K - [0x1D543] = 0x4C, -- L - [0x1D544] = 0x4D, -- M - [0x02115] = 0x4E, -- N - [0x1D546] = 0x4F, -- O - [0x02119] = 0x50, -- P - [0x0211A] = 0x51, -- Q - [0x0211D] = 0x52, -- R - [0x1D54A] = 0x53, -- S - [0x1D54B] = 0x54, -- T - [0x1D54C] = 0x55, -- U - [0x1D54D] = 0x56, -- V - [0x1D54E] = 0x57, -- W - [0x1D54F] = 0x58, -- X - [0x1D550] = 0x59, -- Y - [0x02124] = 0x5A, -- Z (blackboard Z) - [0x02132] = 0x60, -- hatwide \Finv - [0x02141] = 0x61, -- hatwider \Game - -- [0x0] = 0x62, tildewide - -- [0x0] = 0x63, tildewider - -- [0x0] = 0x64, Finv - -- [0x0] = 0x65, Gmir - [0x02127] = 0x66, -- Omegainv \mho - [0x000F0] = 0x67, -- eth \eth - [0x02242] = 0x68, -- equalorsimilar \eqsim - [0x02136] = 0x69, -- beth \beth - [0x02137] = 0x6A, -- gimel \gimel - [0x02138] = 0x6B, -- daleth \daleth - [0x022D6] = 0x6C, -- lessdot \lessdot - [0x022D7] = 0x6D, -- greaterdot \gtrdot - [0x022C9] = 0x6E, -- multicloseleft \ltimes - [0x022CA] = 0x6F, -- multicloseright \rtimes - -- [0x0] = 0x70, -- barshort \shortmid - -- [0x0] = 0x71, -- parallelshort \shortparallel - -- [0x02216] = 0x72, -- integerdivide \smallsetminus (2216 already part of tex-sy - -- [0x0] = 0x73, -- similar \thicksim - -- [0x0] = 0x74, -- approxequal \thickapprox - [0x0224A] = 0x75, -- approxorequal \approxeq - [0x02AB8] = 0x76, -- followsorequal \succapprox - [0x02AB7] = 0x77, -- precedesorequal \precapprox - [0x021B6] = 0x78, -- archleftdown \curvearrowleft - [0x021B7] = 0x79, -- archrightdown \curvearrowright - [0x003DC] = 0x7A, -- Digamma \digamma - [0x003F0] = 0x7B, -- kappa \varkappa - [0x1D55C] = 0x7C, -- k \Bbbk (blackboard k) - [0x0210F] = 0x7D, -- planckover2pi \hslash - [0x00127] = 0x7E, -- planckover2pi1 \hbar - [0x003F6] = 0x7F, -- epsiloninv \backepsilon -} - -fonts.enc.math["tex-fraktur"] = { --- [0x1D504] = 0x41, -- A (fraktur A) --- [0x1D505] = 0x42, -- B - [0x0212D] = 0x43, -- C --- [0x1D507] = 0x44, -- D --- [0x1D508] = 0x45, -- E --- [0x1D509] = 0x46, -- F --- [0x1D50A] = 0x47, -- G - [0x0210C] = 0x48, -- H - [0x02111] = 0x49, -- I --- [0x1D50D] = 0x4A, -- J --- [0x1D50E] = 0x4B, -- K --- [0x1D50F] = 0x4C, -- L --- [0x1D510] = 0x4D, -- M --- [0x1D511] = 0x4E, -- N --- [0x1D512] = 0x4F, -- O --- [0x1D513] = 0x50, -- P --- [0x1D514] = 0x51, -- Q - [0x0211C] = 0x52, -- R --- [0x1D516] = 0x53, -- S --- [0x1D517] = 0x54, -- T --- [0x1D518] = 0x55, -- U --- [0x1D519] = 0x56, -- V --- [0x1D51A] = 0x57, -- W --- [0x1D51B] = 0x58, -- X --- [0x1D51C] = 0x59, -- Y - [0x02128] = 0x5A, -- Z (fraktur Z) --- [0x1D51E] = 0x61, -- a (fraktur a) --- [0x1D51F] = 0x62, -- b --- [0x1D520] = 0x63, -- c --- [0x1D521] = 0x64, -- d --- [0x1D522] = 0x65, -- e --- [0x1D523] = 0x66, -- f --- [0x1D524] = 0x67, -- g --- [0x1D525] = 0x68, -- h --- [0x1D526] = 0x69, -- i --- [0x1D527] = 0x6A, -- j --- [0x1D528] = 0x6B, -- k --- [0x1D529] = 0x6C, -- l --- [0x1D52A] = 0x6D, -- m --- [0x1D52B] = 0x6E, -- n --- [0x1D52C] = 0x6F, -- o --- [0x1D52D] = 0x70, -- p --- [0x1D52E] = 0x71, -- q --- [0x1D52F] = 0x72, -- r --- [0x1D530] = 0x73, -- s --- [0x1D531] = 0x74, -- t --- [0x1D532] = 0x75, -- u --- [0x1D533] = 0x76, -- v --- [0x1D534] = 0x77, -- w --- [0x1D535] = 0x78, -- x --- [0x1D536] = 0x79, -- y --- [0x1D537] = 0x7A, -- z -} - --- now that all other vectors are defined ... - -fonts.vf.math.set_letters(fonts.enc.math, "tex-it", 0x1D434, 0x1D44E) -fonts.vf.math.set_letters(fonts.enc.math, "tex-ss", 0x1D5A0, 0x1D5BA) -fonts.vf.math.set_letters(fonts.enc.math, "tex-tt", 0x1D670, 0x1D68A) -fonts.vf.math.set_letters(fonts.enc.math, "tex-bf", 0x1D400, 0x1D41A) -fonts.vf.math.set_letters(fonts.enc.math, "tex-bi", 0x1D468, 0x1D482) -fonts.vf.math.set_letters(fonts.enc.math, "tex-fraktur", 0x1D504, 0x1D51E) -fonts.vf.math.set_letters(fonts.enc.math, "tex-fraktur-bold", 0x1D56C, 0x1D586) - -fonts.vf.math.set_digits (fonts.enc.math, "tex-ss", 0x1D7E2) -fonts.vf.math.set_digits (fonts.enc.math, "tex-tt", 0x1D7F6) -fonts.vf.math.set_digits (fonts.enc.math, "tex-bf", 0x1D7CE) - --- fonts.vf.math.set_digits (fonts.enc.math, "tex-bi", 0x1D7CE) - --- todo: add ss, tt, bf etc vectors --- we can make ss tt etc an option - --- rm-lmr5 : LMMathRoman5-Regular --- rm-lmbx5 : LMMathRoman5-Bold ] --- lmbsy5 : LMMathSymbols5-BoldItalic --- lmsy5 : LMMathSymbols5-Italic --- lmmi5 : LMMathItalic5-Italic --- lmmib5 : LMMathItalic5-BoldItalic - -mathematics.make_font ( "lmroman5-math", { - { name = "lmroman5-regular.otf", features = "virtualmath", main = true }, - { name = "rm-lmr5.tfm", vector = "tex-mr-missing" } , - { name = "lmmi5.tfm", vector = "tex-mi", skewchar=0x7F }, - { name = "lmmi5.tfm", vector = "tex-it", skewchar=0x7F }, - { name = "lmsy5.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } , - { name = "lmex10.tfm", vector = "tex-ex", extension = true } , - { name = "msam5.tfm", vector = "tex-ma" }, - { name = "msbm5.tfm", vector = "tex-mb" }, - -- { name = "rm-lmbx5.tfm", vector = "tex-bf" } , - { name = "lmroman5-bold", vector = "tex-bf" } , - { name = "lmmib5.tfm", vector = "tex-bi", skewchar=0x7F } , - { name = "lmsans8-regular.otf", vector = "tex-ss", optional=true }, - { name = "lmmono8-regular.otf", vector = "tex-tt", optional=true }, - { name = "eufm5.tfm", vector = "tex-fraktur", optional=true }, -} ) - --- rm-lmr6 : LMMathRoman6-Regular --- rm-lmbx6 : LMMathRoman6-Bold --- lmsy6 : LMMathSymbols6-Italic --- lmmi6 : LMMathItalic6-Italic - -mathematics.make_font ( "lmroman6-math", { - { name = "lmroman6-regular.otf", features = "virtualmath", main = true }, - { name = "rm-lmr6.tfm", vector = "tex-mr-missing" } , - { name = "lmmi6.tfm", vector = "tex-mi", skewchar=0x7F }, - { name = "lmmi6.tfm", vector = "tex-it", skewchar=0x7F }, - { name = "lmsy6.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } , - { name = "lmex10.tfm", vector = "tex-ex", extension = true } , - { name = "msam5.tfm", vector = "tex-ma" }, - { name = "msbm5.tfm", vector = "tex-mb" }, - -- { name = "rm-lmbx6.tfm", vector = "tex-bf" } , - { name = "lmroman6-bold.otf", vector = "tex-bf" } , - { name = "lmmib5.tfm", vector = "tex-bi", skewchar=0x7F } , - { name = "lmsans8-regular.otf", vector = "tex-ss", optional=true }, - { name = "lmmono8-regular.otf", vector = "tex-tt", optional=true }, - { name = "eufm5.tfm", vector = "tex-fraktur", optional=true }, - { name = "eufb5.tfm", vector = "tex-fraktur-bold", optional=true }, -} ) - --- rm-lmr7 : LMMathRoman7-Regular --- rm-lmbx7 : LMMathRoman7-Bold --- lmbsy7 : LMMathSymbols7-BoldItalic --- lmsy7 : LMMathSymbols7-Italic --- lmmi7 : LMMathItalic7-Italic --- lmmib7 : LMMathItalic7-BoldItalic - -mathematics.make_font ( "lmroman7-math", { - { name = "lmroman7-regular.otf", features = "virtualmath", main = true }, - { name = "rm-lmr7.tfm", vector = "tex-mr-missing" } , - { name = "lmmi7.tfm", vector = "tex-mi", skewchar=0x7F }, - { name = "lmmi7.tfm", vector = "tex-it", skewchar=0x7F }, - { name = "lmsy7.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } , - { name = "lmex10.tfm", vector = "tex-ex", extension = true } , - { name = "msam7.tfm", vector = "tex-ma" }, - { name = "msbm7.tfm", vector = "tex-mb" }, - -- { name = "rm-lmbx7.tfm", vector = "tex-bf" } , - { name = "lmroman7-bold.otf", vector = "tex-bf" } , - { name = "lmmib7.tfm", vector = "tex-bi", skewchar=0x7F } , - { name = "lmsans8-regular.otf", vector = "tex-ss", optional=true }, - { name = "lmmono8-regular.otf", vector = "tex-tt", optional=true }, - { name = "eufm7.tfm", vector = "tex-fraktur", optional=true }, - { name = "eufb7.tfm", vector = "tex-fraktur-bold", optional=true }, -} ) - --- rm-lmr8 : LMMathRoman8-Regular --- rm-lmbx8 : LMMathRoman8-Bold --- lmsy8 : LMMathSymbols8-Italic --- lmmi8 : LMMathItalic8-Italic - -mathematics.make_font ( "lmroman8-math", { - { name = "lmroman8-regular.otf", features = "virtualmath", main = true }, - { name = "rm-lmr8.tfm", vector = "tex-mr-missing" } , - { name = "lmmi8.tfm", vector = "tex-mi", skewchar=0x7F }, - { name = "lmmi8.tfm", vector = "tex-it", skewchar=0x7F }, - { name = "lmsy8.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } , - { name = "lmex10.tfm", vector = "tex-ex", extension = true } , - { name = "msam7.tfm", vector = "tex-ma" }, - { name = "msbm7.tfm", vector = "tex-mb" }, - -- { name = "rm-lmbx8.tfm", vector = "tex-bf" } , - { name = "lmroman8-bold.otf", vector = "tex-bf" } , - { name = "lmmib7.tfm", vector = "tex-bi", skewchar=0x7F } , - { name = "lmsans8-regular.otf", vector = "tex-ss", optional=true }, - { name = "lmmono8-regular.otf", vector = "tex-tt", optional=true }, - { name = "eufm7.tfm", vector = "tex-fraktur", optional=true }, - { name = "eufb7.tfm", vector = "tex-fraktur-bold", optional=true }, -} ) - --- rm-lmr9 : LMMathRoman9-Regular --- rm-lmbx9 : LMMathRoman9-Bold --- lmsy9 : LMMathSymbols9-Italic --- lmmi9 : LMMathItalic9-Italic - -mathematics.make_font ( "lmroman9-math", { - { name = "lmroman9-regular.otf", features = "virtualmath", main = true }, - { name = "rm-lmr9.tfm", vector = "tex-mr-missing" } , - { name = "lmmi9.tfm", vector = "tex-mi", skewchar=0x7F }, - { name = "lmmi9.tfm", vector = "tex-it", skewchar=0x7F }, - { name = "lmsy9.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } , - { name = "lmex10.tfm", vector = "tex-ex", extension = true } , - { name = "msam10.tfm", vector = "tex-ma" }, - { name = "msbm10.tfm", vector = "tex-mb" }, - -- { name = "rm-lmbx9.tfm", vector = "tex-bf" } , - { name = "lmroman9-bold.otf", vector = "tex-bf" } , - { name = "lmmib10.tfm", vector = "tex-bi", skewchar=0x7F } , - { name = "lmsans9-regular.otf", vector = "tex-ss", optional=true }, - { name = "lmmono9-regular.otf", vector = "tex-tt", optional=true }, - { name = "eufm10.tfm", vector = "tex-fraktur", optional=true }, - { name = "eufb10.tfm", vector = "tex-fraktur-bold", optional=true }, -} ) - --- rm-lmr10 : LMMathRoman10-Regular --- rm-lmbx10 : LMMathRoman10-Bold --- lmbsy10 : LMMathSymbols10-BoldItalic --- lmsy10 : LMMathSymbols10-Italic --- lmex10 : LMMathExtension10-Regular --- lmmi10 : LMMathItalic10-Italic --- lmmib10 : LMMathItalic10-BoldItalic - -mathematics.make_font ( "lmroman10-math", { - { name = "lmroman10-regular.otf", features = "virtualmath", main = true }, - { name = "rm-lmr10.tfm", vector = "tex-mr-missing" } , - { name = "lmmi10.tfm", vector = "tex-mi", skewchar=0x7F }, - { name = "lmmi10.tfm", vector = "tex-it", skewchar=0x7F }, - { name = "lmsy10.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } , - { name = "lmex10.tfm", vector = "tex-ex", extension = true } , - { name = "msam10.tfm", vector = "tex-ma" }, - { name = "msbm10.tfm", vector = "tex-mb" }, - -- { name = "rm-lmbx10.tfm", vector = "tex-bf" } , - { name = "lmroman10-bold.otf", vector = "tex-bf" } , - { name = "lmmib10.tfm", vector = "tex-bi", skewchar=0x7F } , - { name = "lmsans10-regular.otf", vector = "tex-ss", optional=true }, - { name = "lmmono10-regular.otf", vector = "tex-tt", optional=true }, - { name = "eufm10.tfm", vector = "tex-fraktur", optional=true }, - { name = "eufb10.tfm", vector = "tex-fraktur-bold", optional=true }, -} ) - -mathematics.make_font ( "lmroman10-boldmath", { - { name = "lmroman10-bold.otf", features = "virtualmath", main = true }, - { name = "rm-lmr10.tfm", vector = "tex-mr-missing" } , - { name = "lmmib10.tfm", vector = "tex-mi", skewchar=0x7F }, - { name = "lmmib10.tfm", vector = "tex-it", skewchar=0x7F }, - { name = "lmbsy10.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } , - { name = "lmex10.tfm", vector = "tex-ex", extension = true } , --- copied from roman: - { name = "msam10.tfm", vector = "tex-ma" }, - { name = "msbm10.tfm", vector = "tex-mb" }, - -- { name = "rm-lmbx10.tfm", vector = "tex-bf" } , - { name = "lmroman10-bold.otf", vector = "tex-bf" } , - { name = "lmmib10.tfm", vector = "tex-bi", skewchar=0x7F } , - { name = "lmsans10-regular.otf", vector = "tex-ss", optional=true }, - { name = "lmmono10-regular.otf", vector = "tex-tt", optional=true }, - { name = "eufm10.tfm", vector = "tex-fraktur", optional=true }, - { name = "eufb10.tfm", vector = "tex-fraktur-bold", optional=true }, -} ) - --- rm-lmr12 : LMMathRoman12-Regular --- rm-lmbx12 : LMMathRoman12-Bold --- lmmi12 : LMMathItalic12-Italic - -mathematics.make_font ( "lmroman12-math", { - { name = "lmroman12-regular.otf", features = "virtualmath", main = true }, - { name = "rm-lmr12.tfm", vector = "tex-mr-missing" } , - { name = "lmmi12.tfm", vector = "tex-mi", skewchar=0x7F }, - { name = "lmmi12.tfm", vector = "tex-it", skewchar=0x7F }, - { name = "lmsy10.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } , - { name = "lmex10.tfm", vector = "tex-ex", extension = true } , - { name = "msam10.tfm", vector = "tex-ma" }, - { name = "msbm10.tfm", vector = "tex-mb" }, - -- { name = "rm-lmbx12.tfm", vector = "tex-bf" } , - { name = "lmroman12-bold.otf", vector = "tex-bf" } , - { name = "lmmib10.tfm", vector = "tex-bi", skewchar=0x7F } , - { name = "lmsans12-regular.otf", vector = "tex-ss", optional=true }, - { name = "lmmono12-regular.otf", vector = "tex-tt", optional=true }, - { name = "eufm10.tfm", vector = "tex-fraktur", optional=true }, - { name = "eufb10.tfm", vector = "tex-fraktur-bold", optional=true }, -} ) - --- rm-lmr17 : LMMathRoman17-Regular - -mathematics.make_font ( "lmroman17-math", { - { name = "lmroman17-regular.otf", features = "virtualmath", main = true }, - { name = "rm-lmr12.tfm", vector = "tex-mr-missing" } , - { name = "lmmi12.tfm", vector = "tex-mi", skewchar=0x7F }, - { name = "lmmi12.tfm", vector = "tex-it", skewchar=0x7F }, - { name = "lmsy10.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } , - { name = "lmex10.tfm", vector = "tex-ex", extension = true } , - { name = "msam10.tfm", vector = "tex-ma" }, - { name = "msbm10.tfm", vector = "tex-mb" }, - -- { name = "rm-lmbx12.tfm", vector = "tex-bf" } , - { name = "lmroman12-bold.otf", vector = "tex-bf" } , - { name = "lmmib10.tfm", vector = "tex-bi", skewchar=0x7F } , - { name = "lmsans17-regular.otf", vector = "tex-ss", optional=true }, - { name = "lmmono17-regular.otf", vector = "tex-tt", optional=true }, - { name = "eufm10.tfm", vector = "tex-fraktur", optional=true }, - { name = "eufb10.tfm", vector = "tex-fraktur-bold", optional=true }, -} ) - --- pxr/txr messes up the accents - -mathematics.make_font ( "px-math", { - { name = "texgyrepagella-regular.otf", features = "virtualmath", main = true }, - { name = "rpxr.tfm", vector = "tex-mr" } , - { name = "rpxmi.tfm", vector = "tex-mi", skewchar=0x7F }, - { name = "rpxpplri.tfm", vector = "tex-it", skewchar=0x7F }, - { name = "pxsy.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } , - { name = "pxex.tfm", vector = "tex-ex", extension = true } , - { name = "pxsya.tfm", vector = "tex-ma" }, - { name = "pxsyb.tfm", vector = "tex-mb" }, -} ) - -mathematics.make_font ( "tx-math", { - { name = "texgyretermes-regular.otf", features = "virtualmath", main = true }, - { name = "rtxr.tfm", vector = "tex-mr" } , - { name = "rtxptmri.tfm", vector = "tex-it", skewchar=0x7F }, - { name = "rtxmi.tfm", vector = "tex-mi", skewchar=0x7F }, - { name = "txsy.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } , - { name = "txex.tfm", vector = "tex-ex", extension = true } , - { name = "txsya.tfm", vector = "tex-ma" }, - { name = "txsyb.tfm", vector = "tex-mb" }, -} ) - -mathematics.make_font ( "antykwa-math", { - { name = "file:AntykwaTorunska-Regular", features = "virtualmath", main = true }, - { name = "mi-anttri.tfm", vector = "tex-mi", skewchar=0x7F }, - { name = "mi-anttri.tfm", vector = "tex-it", skewchar=0x7F }, - { name = "sy-anttrz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } , - { name = "ex-anttr.tfm", vector = "tex-ex", extension = true } , - { name = "msam10.tfm", vector = "tex-ma" }, - { name = "msbm10.tfm", vector = "tex-mb" }, -} ) - -mathematics.make_font ( "antykwa-light-math", { - { name = "file:AntykwaTorunskaLight-Regular", features = "virtualmath", main = true }, - { name = "mi-anttli.tfm", vector = "tex-mi", skewchar=0x7F }, - { name = "mi-anttli.tfm", vector = "tex-it", skewchar=0x7F }, - { name = "sy-anttlz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } , - { name = "ex-anttl.tfm", vector = "tex-ex", extension = true } , - { name = "msam10.tfm", vector = "tex-ma" }, - { name = "msbm10.tfm", vector = "tex-mb" }, -} ) - -mathematics.make_font ( "antykwa-cond-math", { - { name = "file:AntykwaTorunskaCond-Regular", features = "virtualmath", main = true }, - { name = "mi-anttcri.tfm", vector = "tex-mi", skewchar=0x7F }, - { name = "mi-anttcri.tfm", vector = "tex-it", skewchar=0x7F }, - { name = "sy-anttcrz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } , - { name = "ex-anttcr.tfm", vector = "tex-ex", extension = true } , - { name = "msam10.tfm", vector = "tex-ma" }, - { name = "msbm10.tfm", vector = "tex-mb" }, -} ) - -mathematics.make_font ( "antykwa-lightcond-math", { - { name = "file:AntykwaTorunskaCondLight-Regular", features = "virtualmath", main = true }, - { name = "mi-anttcli.tfm", vector = "tex-mi", skewchar=0x7F }, - { name = "mi-anttcli.tfm", vector = "tex-it", skewchar=0x7F }, - { name = "sy-anttclz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } , - { name = "ex-anttcl.tfm", vector = "tex-ex", extension = true } , - { name = "msam10.tfm", vector = "tex-ma" }, - { name = "msbm10.tfm", vector = "tex-mb" }, -} ) - -mathematics.make_font ( "iwona-math", { - { name = "file:Iwona-Regular", features = "virtualmath", main = true }, - { name = "mi-iwonari.tfm", vector = "tex-mi", skewchar=0x7F }, - { name = "mi-iwonari.tfm", vector = "tex-it", skewchar=0x7F }, - { name = "sy-iwonarz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } , - { name = "ex-iwonar.tfm", vector = "tex-ex", extension = true } , - { name = "msam10.tfm", vector = "tex-ma" }, - { name = "msbm10.tfm", vector = "tex-mb" }, -} ) - -mathematics.make_font ( "iwona-light-math", { - { name = "file:IwonaLight-Regular", features = "virtualmath", main = true }, - { name = "mi-iwonali.tfm", vector = "tex-mi", skewchar=0x7F }, - { name = "mi-iwonali.tfm", vector = "tex-it", skewchar=0x7F }, - { name = "sy-iwonalz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } , - { name = "ex-iwonal.tfm", vector = "tex-ex", extension = true } , - { name = "msam10.tfm", vector = "tex-ma" }, - { name = "msbm10.tfm", vector = "tex-mb" }, -} ) - -mathematics.make_font ( "iwona-medium-math", { - { name = "file:IwonaMedium-Regular", features = "virtualmath", main = true }, - { name = "mi-iwonami.tfm", vector = "tex-mi", skewchar=0x7F }, - { name = "mi-iwonami.tfm", vector = "tex-it", skewchar=0x7F }, - { name = "sy-iwonamz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } , - { name = "ex-iwonam.tfm", vector = "tex-ex", extension = true } , - { name = "msam10.tfm", vector = "tex-ma" }, - { name = "msbm10.tfm", vector = "tex-mb" }, -} ) - -mathematics.make_font ( "iwona-heavy-math", { - { name = "file:IwonaHeavy-Regular", features = "virtualmath", main = true }, - { name = "mi-iwonahi.tfm", vector = "tex-mi", skewchar=0x7F }, - { name = "mi-iwonahi.tfm", vector = "tex-it", skewchar=0x7F }, - { name = "sy-iwonahz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } , - { name = "ex-iwonah.tfm", vector = "tex-ex", extension = true } , - { name = "msam10.tfm", vector = "tex-ma" }, - { name = "msbm10.tfm", vector = "tex-mb" }, -} ) - --- not ok, we need adapted vectors ! - -mathematics.make_font ( "mathtimes-math", { - { name = "file:texgyretermes-regular.otf", features = "virtualmath", main = true }, - { name = "mtmiz.tfm", vector = "tex-mi", skewchar=0x7F }, - { name = "mtmiz.tfm", vector = "tex-it", skewchar=0x7F }, - { name = "mtsyn.tfm", vector = "tex-sy", skewchar=0x30, parameters = true }, - { name = "mtex.tfm", vector = "tex-ex", extension = true }, - { name = "msam10.tfm", vector = "tex-ma" }, - { name = "msbm10.tfm", vector = "tex-mb" }, -} ) - -mathematics.make_font ( "charter-math", { - { name = "file:bchr8a", features = "virtualmath", main = true }, - -- { name = "md-chr7m.tfm", vector = "tex-mr" }, - { name = "md-chri7m.tfm", vector = "tex-mi", skewchar=0x7F }, - { name = "md-chri7m.tfm", vector = "tex-it", skewchar=0x7F }, - { name = "md-chr7y.tfm", vector = "tex-sy", skewchar=0x30, parameters = true }, - { name = "md-chr7v.tfm", vector = "tex-ex", extension = true }, - { name = "msam10.tfm", vector = "tex-ma" }, - { name = "msbm10.tfm", vector = "tex-mb" }, -} ) - -mathematics.make_font ( "garamond-math", { - { name = "file:ugmr8y", features = "virtualmath", main = true }, - -- { name = "md-gmr7m.tfm", vector = "tex-mr" }, - { name = "md-gmri7m.tfm", vector = "tex-mi", skewchar=0x7F }, - { name = "md-gmri7m.tfm", vector = "tex-it", skewchar=0x7F }, - { name = "md-gmr7y.tfm", vector = "tex-sy", skewchar=0x30, parameters = true }, - { name = "md-gmr7v.tfm", vector = "tex-ex", extension = true }, - { name = "msam10.tfm", vector = "tex-ma" }, - { name = "msbm10.tfm", vector = "tex-mb" }, -} ) - -mathematics.make_font ( "utopia-math", { - { name = "file:putr8y", features = "virtualmath", main = true }, - -- { name = "md-utr7m.tfm", vector = "tex-mr" }, - { name = "md-utri7m.tfm", vector = "tex-mi", skewchar=0x7F }, - { name = "md-utri7m.tfm", vector = "tex-it", skewchar=0x7F }, - { name = "md-utr7y.tfm", vector = "tex-sy", skewchar=0x30, parameters = true }, - { name = "md-utr7v.tfm", vector = "tex-ex", extension = true }, - { name = "msam10.tfm", vector = "tex-ma" }, - { name = "msbm10.tfm", vector = "tex-mb" }, -} ) - -mathematics.make_font ( "hvmath-math", { - { name = "file:texgyreheros-regular.otf", features = "virtualmath", main = true }, - { name = "hvrm108r.tfm", vector="tex-mr" }, - { name = "hvmi10.tfm", vector = "tex-mi", skewchar=0x7F }, - { name = "hvmi10.tfm", vector = "tex-it", skewchar=0x7F }, - { name = "hvsy10.tfm", vector = "tex-sy", skewchar=0x30, parameters = true }, - { name = "hvex10.tfm", vector = "tex-ex", extension = true }, - { name = "hvam10.tfm", vector = "tex-ma" }, - { name = "hvbm10.tfm", vector = "tex-mb" }, -} ) - --- the lucida mess - ---~ fonts.enc.math["lbr-ma"] = { ---~ [0x000A5] = 0x03, -- yen ---~ [0x000B7] = 0xE1, -- centerdot ---~ [0x000F0] = 0x03, -- eth ---~ [0x00127] = 0x1B, -- hbar ---~ [0x003DC] = 0x03, -- digamma ---~ [0x003F6] = 0x03, -- backepsilon ---~ [0x0219A] = 0x32, -- nleftarrow ---~ [0x0219B] = 0x33, -- nrightarrow ---~ [0x0219E] = 0x23, -- twoheadleftarrow ---~ [0x021A0] = 0x25, -- twoheadrightarrow ---~ [0x021A2] = 0x28, -- leftarrowtail ---~ [0x021A3] = 0x29, -- rightarrowtail ---~ [0x021A6] = 0x2C, -- mapsto ---~ [0x021A9] = 0x3C, -- hookleftarrow ---~ [0x021AA] = 0x3E, -- hookrightarrow ---~ [0x021AB] = 0x3F, -- looparrowleft ---~ [0x021AC] = 0x40, -- looparrowright ---~ [0x021AD] = 0x91, -- leftrightsquigarrow ---~ [0x021AE] = 0x34, -- nleftrightarrow ---~ [0x021B0] = 0x7B, -- Lsh ---~ [0x021B1] = 0x7D, -- Rsh ---~ [0x021B6] = 0x87, -- curvearrowleft ---~ [0x021B7] = 0x88, -- curvearrowright ---~ [0x021BA] = 0x8C, -- circlearrowright ---~ [0x021BB] = 0x8B, -- circlearrowleft ---~ [0x021BF] = 0x76, -- upharpoonleft ---~ [0x021C2] = 0x77, -- downharpoonright ---~ [0x021C3] = 0x78, -- downharpoonleft ---~ [0x021C4] = 0x6D, -- rightleftarrows ---~ [0x021C6] = 0x6E, -- leftrightarrows ---~ [0x021C7] = 0x71, -- leftleftarrows ---~ [0x021C8] = 0x72, -- upuparrows ---~ [0x021C9] = 0x73, -- rightrightarrows ---~ [0x021CA] = 0x74, -- downdownarrows ---~ [0x021CB] = 0x79, -- leftrightharpoons ---~ [0x021CC] = 0x7A, -- rightleftharpoons ---~ [0x021CD] = 0x66, -- nLeftarrow ---~ [0x021CE] = 0x67, -- nLeftrightarrow ---~ [0x021CF] = 0x68, -- nRightarrow ---~ [0x021DA] = 0x6A, -- Lleftarrow ---~ [0x021DB] = 0x6C, -- Rrightarrow ---~ [0x021E0] = 0x38, -- dashleftarrow ---~ [0x02204] = 0x20, -- nexists ---~ [0x02226] = 0xF7, -- nparallel ---~ [0x02241] = 0x96, -- nsim ---~ [0x02268] = 0xDC, -- lneqq ---~ [0x02269] = 0xDE, -- gneqq ---~ [0x0226E] = 0x9A, -- nless ---~ [0x0226F] = 0x9B, -- ngtr ---~ [0x02270] = 0x9C, -- nleq ---~ [0x02271] = 0x9D, -- ngeq ---~ [0x02280] = 0xE5, -- nprec ---~ [0x02281] = 0xE6, -- nsucc ---~ [0x02288] = 0xC8, -- nsubseteq ---~ [0x02289] = 0xC9, -- nsupseteq ---~ [0x0228A] = 0xCC, -- subsetneq ---~ [0x0228B] = 0xCD, -- supsetneq ---~ [0x022AC] = 0xF8, -- nvdash ---~ [0x022AD] = 0xFA, -- nvDash ---~ [0x022AE] = 0xF9, -- nVdash ---~ [0x022AF] = 0xFB, -- nVDash ---~ [0x022BA] = 0x03, -- intercal ---~ [0x022D4] = 0xF3, -- pitchfork ---~ [0x022E6] = 0xE0, -- lnsim ---~ [0x022E7] = 0xE2, -- gnsim ---~ [0x022E8] = 0xEB, -- precnsim ---~ [0x022E9] = 0xEC, -- succnsim ---~ [0x022EA] = 0xF0, -- ntriangleright ---~ [0x022EB] = 0xEF, -- ntriangleleft ---~ [0x022EC] = 0xF1, -- ntrianglelefteq ---~ [0x022ED] = 0xF2, -- ntrianglerighteq ---~ [0x0231C] = 0x5B, -- ulcorner ---~ [0x0231D] = 0x5C, -- urcorner ---~ [0x0231E] = 0x5D, -- llcorner ---~ [0x0231F] = 0x5E, -- lrcorner ---~ [0x025A2] = 0x03, -- blacksquare ---~ [0x02605] = 0xAB, -- bigstar ---~ [0x02713] = 0xAC, -- checkmark ---~ [0x029EB] = 0x09, -- blacklozenge ---~ [0x02A87] = 0xDA, -- lneq ---~ [0x02A89] = 0xE4, -- lnapprox ---~ [0x02A8A] = 0xE3, -- gnapprox ---~ [0x02AB5] = 0xE9, -- precneqq ---~ [0x02AB6] = 0xEA, -- succneqq ---~ [0x02AB9] = 0xED, -- precnapprox ---~ [0x02ABA] = 0xEE, -- succnapprox ---~ [0x02ACB] = 0xCE, -- subsetneqq ---~ [0x02ACC] = 0xCF, -- supsetneqq ---~ } - -fonts.enc.math["lbr-ma"] = { - [0x025CB] = 0x00, -- circle - [0x025CF] = 0x01, -- blackcircle - [0x025A1] = 0x02, -- square - [0x025A0] = 0x03, -- blacksquare - [0x025B3] = 0x04, -- triangleup - [0x025B2] = 0x05, -- blacktriangleup - [0x025BD] = 0x06, -- triangledown - [0x025BC] = 0x07, -- blacktriangledown - [0x02B28] = 0x08, -- lozenge - [0x02B27] = 0x09, -- blacklozenge - [0x02B29] = 0x0A, -- blackdiamond - [0x02571] = 0x0B, -- upright - [0x02572] = 0x0C, -- downright - [0x022E4] = 0x0D, -- squareimageofnoteq - [0x022E5] = 0x0E, -- squareoriginalofnoteq - [0x02A4F] = 0x0F, -- dblsquareunion - [0x02A4E] = 0x10, -- dblsquareintersection - [0x02A64] = 0x11, -- zdomainantirestriction - [0x02A65] = 0x12, -- zrangeantirestriction - [0x022EE] = 0x13, -- verticalellipsis - [0x022EF] = 0x14, -- ellipsis - [0x022F0] = 0x15, -- uprightellipsis - [0x022F1] = 0x16, -- downrightellipsis - [0x022D5] = 0x17, -- equalparallel - - [0x0225B] = 0x1A, -- stareq - [0x00127] = 0x1B, -- hbar - [0x022F6] = 0x1C, -- barelementof - [0x02209] = 0x1D, -- notelementof - [0x022FD] = 0x1E, -- barcontains - [0x0220C] = 0x1F, -- notcontain - [0x02204] = 0x20, -- nexists - [0x02194] = 0x21, -- leftrightarrow - [0x02195] = 0x22, -- updownarrow - [0x0219E] = 0x23, -- leftleftarrow - [0x0219F] = 0x24, -- upuparrow - [0x021A0] = 0x25, -- rightrightarrow --- [0x00026] = 0x26, -- amperand - [0x021A1] = 0x27, -- downdownarrow - [0x021A2] = 0x28, -- leftarrowtail - [0x021A3] = 0x29, -- rightarrowtail - [0x021A4] = 0x2A, -- leftarrowbar - [0x021A6] = 0x2B, -- rightarrowbar - [0x021A5] = 0x2C, -- uparrowbar --- [0x02212] = 0x2D, -- minus --- [0x0002D] = 0x2D, -- minus - [0x021A7] = 0x2E, -- downarrowbar - [0x021E4] = 0x2F, -- barleftarrow - [0x021E5] = 0x30, -- barrightarrow - - [0x021E0] = 0x38, -- dashleftarrow - [0x021E1] = 0x39, -- dashuparrow - [0x021E2] = 0x3A, -- dashrightarrow - [0x021E3] = 0x3B, -- dashdownarrow - [0x021A9] = 0x3C, -- hookleftarrow --- [0x0003D] = 0x3D, -- equalto - [0x021AA] = 0x3E, -- hookrightarrow - [0x021AB] = 0x3F, -- looparrowleft - [0x021AC] = 0x40, -- looparrowright - [0x1D538] = 0x41, -- A (blackboard A) - [0x1D539] = 0x42, -- B - [0x02102] = 0x43, -- C - [0x1D53B] = 0x44, -- D - [0x1D53C] = 0x45, -- E - [0x1D53D] = 0x46, -- F - [0x1D53E] = 0x47, -- G - [0x0210D] = 0x48, -- H - [0x1D540] = 0x49, -- I - [0x1D541] = 0x4A, -- J - [0x1D542] = 0x4B, -- K - [0x1D543] = 0x4C, -- L - [0x1D544] = 0x4D, -- M - [0x02115] = 0x4E, -- N - [0x1D546] = 0x4F, -- O - [0x02119] = 0x50, -- P - [0x0211A] = 0x51, -- Q - [0x0211D] = 0x52, -- R - [0x1D54A] = 0x53, -- S - [0x1D54B] = 0x54, -- T - [0x1D54C] = 0x55, -- U - [0x1D54D] = 0x56, -- V - [0x1D54E] = 0x57, -- W - [0x1D54F] = 0x58, -- X - [0x1D550] = 0x59, -- Y - [0x02124] = 0x5A, -- Z (blackboard Z) - [0x0231C] = 0x5B, -- ulcorner - [0x0231D] = 0x5C, -- urcorner - [0x0231E] = 0x5D, -- llcorner - [0x0231F] = 0x5E, -- lrcorner - [0x02225] = 0x5F, -- parallel, Vert, lVert, rVert, arrowvert - [0x021D5] = 0x60, -- Updownarrow - [0x021D4] = 0x61, -- Leftrightarrow - [0x021D6] = 0x62, -- Upleftarrow - [0x021D7] = 0x63, -- Uprightarrow - [0x021D9] = 0x64, -- Downleftarrow - [0x021D8] = 0x65, -- Downrightarrow - [0x021CD] = 0x66, -- nLeftarrow - [0x021CE] = 0x67, -- nLeftrightarrow - [0x021CF] = 0x68, -- nRightarrow --- [0x021CE] = 0x69, -- nLeftrightarrow -- what's the difference between this and 0x0067[0x021CE] - [0x021DA] = 0x6A, -- Lleftarrow - [0x1D55C] = 0x6B, -- k \Bbbk (blackboard k) - [0x021DB] = 0x6C, -- Rrightarrow - [0x021C4] = 0x6D, -- rlarrow - [0x021C6] = 0x6E, -- lrarrow - [0x021C5] = 0x6F, -- udarrow --- [0x021C5] = 0x70, -- duarrow - [0x021C7] = 0x71, -- llarrow - [0x021C8] = 0x72, -- uuarrow - [0x021C9] = 0x73, -- rrarrow - [0x021CA] = 0x74, -- ddarrow - [0x021BE] = 0x75, -- rupharpoon - [0x021BF] = 0x76, -- lupharpoon - [0x021C2] = 0x77, -- rdownharpoon - [0x021C3] = 0x78, -- ldownharpoon - [0x021CB] = 0x79, -- lrharpoon - [0x021CC] = 0x7A, -- rlharpoon - [0x021B0] = 0x7B, -- upthenleftarrow --- [0x00000] = 0x7C, -- part - [0x021B1] = 0x7D, -- upthenrightarrow --- [0x00000] = 0x7E, -- part - [0x02276] = 0x7F, -- ltgt - [0x021B2] = 0x81, -- downthenleftarrow - [0x021B3] = 0x82, -- downthenrightarrow - [0x02B0E] = 0x83, -- rightthendownarrow - [0x02B10] = 0x84, -- leftthendownarrow - [0x02B0F] = 0x85, -- rightthenuparrow - [0x02B11] = 0x86, -- leftthenuparrow - [0x021B6] = 0x87, -- leftarcarrow - [0x021B7] = 0x88, -- rightarcarrow - [0x0293D] = 0x89, -- leftarcarrowplus - [0x0293C] = 0x8A, -- rightarcarrowminus - [0x021BA] = 0x8B, -- anticlockwise - [0x021BB] = 0x8C, -- clockwise - - [0x02260] = 0x94, -- noteq - [0x02262] = 0x95, -- notidentical - [0x02241] = 0x96, -- nottilde - [0x02244] = 0x97, -- notasymptoticallyequal - [0x02249] = 0x98, -- notalmostequal - [0x02247] = 0x99, -- notapproximatelyeq - [0x0226E] = 0x9A, -- nless - [0x0226F] = 0x9B, -- ngtr - [0x02270] = 0x9C, -- nleq - [0x02271] = 0x9D, -- ngeq - [0x022E6] = 0x9E, -- lnsim - [0x022E7] = 0x9F, -- gnsim - [0x02605] = 0xAB, -- black star - [0x02713] = 0xAC, -- check - [0x02277] = 0xC5, -- gtlt - [0x02284] = 0xC6, -- nsubsetof - [0x02285] = 0xC7, -- nsupsetof - [0x02288] = 0xC8, -- nsubseteq - [0x02289] = 0xC9, -- nsupseteq - - [0x0228A] = 0xCC, -- subsetneq - [0x0228B] = 0xCD, -- supsetneq - --- [0x0228A] = 0xD0, -- subsetneq --- [0x0228B] = 0xD1, -- supsetneq - - [0x02270] = 0xD6, -- nleq - [0x02271] = 0xD7, -- ngeq - - [0x02268] = 0xDC, -- lneqq - [0x02269] = 0xDD, -- gneqq - - [0x022E6] = 0xE0, -- lnsim - [0x02219] = 0xE1, -- bullet - [0x022E7] = 0xE2, -- gnsim - - [0x02280] = 0xE5, -- nprec - [0x02281] = 0xE6, -- nsucc - - [0x022E8] = 0xEB, -- precnsim - [0x022E9] = 0xEC, -- succnsim - - [0x022EA] = 0xEF, -- nnormalsub - [0x022EB] = 0xF0, -- ncontainnormalsub - [0x022EC] = 0xF1, -- nnormalsubeq - [0x022ED] = 0xF2, -- ncontainnormalsubeq - - [0x02226] = 0xF7, -- nparallel - [0x022AC] = 0xF8, -- nvdash - [0x022AE] = 0xF9, -- nVdash - [0x022AD] = 0xFA, -- nvDash - [0x022AF] = 0xFB, -- nVDash -} - -fonts.enc.math["lbr-mb"] = { - [0x00393] = 0x00, -- Gamma - [0x00394] = 0x01, -- Delta - [0x00398] = 0x02, -- Theta - [0x0039B] = 0x03, -- Lambda - [0x0039E] = 0x04, -- Xi - [0x003A0] = 0x05, -- Pi - [0x003A3] = 0x06, -- Sigma - [0x003A5] = 0x07, -- Upsilon - [0x003A6] = 0x08, -- Phi - [0x003A8] = 0x09, -- Psi - [0x003A9] = 0x0A, -- Omega - [0x0210F] = 0x9D, -- hslash - [0x02127] = 0x92, -- mho - [0x02132] = 0x90, -- Finv - [0x02136] = 0x95, -- beth - [0x02137] = 0x96, -- gimel - [0x02138] = 0x97, -- daleth - [0x02141] = 0x91, -- Game - [0x02201] = 0x94, -- complement - [0x0226C] = 0xF2, -- between - [0x0227C] = 0xE4, -- preccurlyeq - [0x0227D] = 0xE5, -- succcurlyeq - [0x0229D] = 0xCC, -- circleddash - [0x022A8] = 0xD6, -- vDash - [0x022AA] = 0xD3, -- Vvdash - [0x022B8] = 0xC7, -- multimap - [0x022BB] = 0xD2, -- veebar - [0x022C7] = 0xF7, -- divideontimes - [0x022C9] = 0xCF, -- ltimes - [0x022CA] = 0xCE, -- rtimes - [0x022CB] = 0xD0, -- leftthreetimes - [0x022CC] = 0xD1, -- rightthreetimes - [0x022D6] = 0xDC, -- lessdot - [0x022D7] = 0xDD, -- gtrdot - [0x022DA] = 0xE8, -- lesseqgtr - [0x022DB] = 0xE9, -- gtreqless - [0x022DE] = 0xE6, -- curlyeqprec - [0x022DF] = 0xE7, -- curlyeqsucc - [0x024C7] = 0xC9, -- circledR - [0x024C8] = 0xCA, -- circledS - [0x025B6] = 0xF1, -- blacktriangleright - [0x025B8] = 0xF0, -- blacktriangleleft - [0x02720] = 0xCB, -- maltese - [0x02A7D] = 0xE0, -- leqslant - [0x02A7E] = 0xE1, -- geqslant - [0x02A85] = 0xDA, -- lessapprox - [0x02A86] = 0xDB, -- gtrapprox - [0x02A8B] = 0xEA, -- lesseqqgtr - [0x02A8C] = 0xEB, -- gtreqqless - [0x02A95] = 0xE2, -- eqslantless - [0x02A96] = 0xE3, -- eqslantgtr - [0x02AB7] = 0xEC, -- precapprox - [0x02AB8] = 0xED, -- succapprox - [0x02AC5] = 0xEE, -- subseteqq - [0x02AC6] = 0xEF, -- supseteqq - [0x12035] = 0xC8, -- backprime - [0x1D718] = 0x9B, -- varkappa -} - ---~ fonts.enc.math["lbr-mi"] = { ---~ ["0x00127"] = 0x9D, -- hbar ---~ ["0x003D1"] = 0x02, -- varTheta ---~ ["0x020D7"] = 0x7E, -- vec ---~ } - -fonts.enc.math["lbr-sy"] = { - [0x021CB] = 0x8D, -- leftrightharpoons - [0x021CC] = 0x8E, -- rightleftharpoons - [0x02214] = 0x89, -- dotplus - [0x02220] = 0x8B, -- angle - [0x02221] = 0x8C, -- measuredangle - [0x02222] = 0x8D, -- sphericalangle - [0x02234] = 0x90, -- therefore - [0x02235] = 0x91, -- because - [0x0223D] = 0x24, -- backsim - [0x02242] = 0x99, -- eqsim - [0x0224A] = 0x9D, -- approxeq - [0x0224E] = 0xC7, -- Bumpeq - [0x02252] = 0xCB, -- fallingdotseq - [0x02253] = 0xCC, -- risingdotseq - [0x02256] = 0xCF, -- eqcirc - [0x02257] = 0xD0, -- circeq - [0x0225C] = 0xD5, -- triangleq - [0x02266] = 0xDA, -- leqq - [0x02267] = 0xDB, -- geqq - [0x02272] = 0xDC, -- lesssim - [0x02273] = 0xDD, -- gtrsim - [0x02276] = 0xDE, -- lessgtr - [0x02277] = 0xDF, -- gtrless - [0x0227E] = 0xE0, -- precsim - [0x0227F] = 0xE1, -- succsim - [0x0228F] = 0xE4, -- sqsubset - [0x02290] = 0xE5, -- sqsupset - [0x0229A] = 0xE6, -- circledcirc - [0x0229B] = 0xE7, -- circledast - [0x0229E] = 0xEA, -- boxplus - [0x0229F] = 0xEB, -- boxminus - [0x022A0] = 0xEC, -- boxtimes - [0x022A1] = 0xED, -- boxdot - [0x022A7] = 0xEE, -- models - [0x022A9] = 0xF0, -- Vdash - [0x022BC] = 0xF6, -- barwedge - [0x022CE] = 0x85, -- curlyvee - [0x022CF] = 0x84, -- curlywedge - [0x022D0] = 0xF8, -- Subset - [0x022D1] = 0xF9, -- Supset - [0x02300] = 0x53, -- varnothing - [0x025CA] = 0x05, -- lozenge -} - -fonts.enc.math["lbr-sy"] = table.merged(fonts.enc.math["tex-sy"],fonts.enc.math["lbr-sy"]) - ---~ fonts.enc.math["lbr-rm"] = { ---~ [0x00060] = 0x12, -- grave ---~ [0x000A8] = 0x7F, -- ddot ---~ [0x000AF] = 0x16, -- bar ---~ [0x000B4] = 0x13, -- acute ---~ [0x002C6] = 0x5E, -- hat ---~ [0x002C7] = 0x14, -- check ---~ [0x002D8] = 0x15, -- breve ---~ [0x002D9] = 0x05, -- dot ---~ [0x002DC] = 0x7E, -- tilde ---~ } - -mathematics.make_font ( "lucida-math", { - { name = "file:lbr.afm", features = "virtualmath", main = true }, - { name = "hlcrim.tfm", vector = "tex-mi", skewchar=0x7F }, - { name = "hlcrim.tfm", vector = "tex-it", skewchar=0x7F }, - { name = "hlcry.tfm", vector = "lbr-sy", skewchar=0x30, parameters = true }, - { name = "hlcrv.tfm", vector = "tex-ex", extension = true }, - { name = "hlcra.tfm", vector = "lbr-ma" }, - { name = "hlcrm.tfm", vector = "lbr-mb" }, -} ) |