summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/math-vfu.lua
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/base/math-vfu.lua')
-rw-r--r--Master/texmf-dist/tex/context/base/math-vfu.lua880
1 files changed, 329 insertions, 551 deletions
diff --git a/Master/texmf-dist/tex/context/base/math-vfu.lua b/Master/texmf-dist/tex/context/base/math-vfu.lua
index fb5113be45b..5023e6b4d65 100644
--- a/Master/texmf-dist/tex/context/base/math-vfu.lua
+++ b/Master/texmf-dist/tex/context/base/math-vfu.lua
@@ -1,13 +1,14 @@
if not modules then modules = { } end modules ['math-vfu'] = {
version = 1.001,
- comment = "companion to math-ini.tex",
+ 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.
+-- 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
@@ -23,8 +24,7 @@ fonts.vf.math.optional = false
local push, pop, back = { "push" }, { "pop" }, { "slot", 1, 0x2215 }
-local function negate(main,unicode,basecode)
- local characters = main.characters
+local function negate(main,characters,id,size,unicode,basecode)
if not characters[unicode] then
local basechar = characters[basecode]
if basechar then
@@ -53,8 +53,7 @@ end
--~ \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
+local function brace(main,characters,id,size,unicode,first,rule,left,right,rule,last)
if not characters[unicode] then
characters[unicode] = {
horiz_variants = {
@@ -69,24 +68,25 @@ local function brace(main,unicode,first,rule,left,right,rule,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 },
- }
+local function arrow(main,characters,id,size,unicode,arrow,minus,isleft)
+ if characters[unicode] then
+ 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 }
+ characters[unicode].horiz_variants = t
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
+local function parent(main,characters,id,size,unicode,first,rule,last)
if not characters[unicode] then
characters[unicode] = {
horiz_variants = {
@@ -100,13 +100,13 @@ 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 function make(main,characters,id,size,n,m)
+ local old = 0xFF000+n
local c = characters[old]
if c then
+ local upslot, dnslot, uprule, dnrule = 0xFF100+n, 0xFF200+n, 0xFF300+m, 0xFF400+m
+ local xu = main.parameters.x_height + 0.3*size
+ local xd = 0.3*size
local w, h, d = c.width, c.height, c.depth
local thickness = h - d
local rulewidth = step*size -- we could use an overlap
@@ -127,120 +127,167 @@ local function make(main,id,size,n,m)
end
end
-local function minus(main,id,size,unicode)
- local characters = main.characters
- local mu = size/18
+local function minus(main,characters,id,size,unicode)
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 }
- }
+ if minus then
+ local mu = size/18
+ 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
end
-local function dots(main,id,size,unicode)
- local characters = main.characters
+local function dots(main,characters,id,size,unicode)
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 }
+ if c then
+ 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
- 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
+ end
+end
+
+local function vertbar(main,characters,id,size,parent,scale,unicode)
+ local cp = characters[parent]
+ if cp then
+ local sc = scale * size
+ local pc = { "slot", id, parent }
characters[unicode] = {
- width = 3*w + 6*size/18, height = 1.5*size, depth = 0,
+ width = cp.width,
+ height = cp.height + sc,
+ depth = cp.depth + sc,
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 }
+ push, { "down", -sc }, pc, pop,
+ push, { "down", sc }, pc, pop,
+ pc,
+ },
+ next = cp.next -- can be extensible
}
+ cp.next = unicode
end
end
function fonts.vf.math.alas(main,id,size)
+ local characters = main.characters
for i=0x7A,0x7D do
- make(main,id,size,i,1)
+ make(main,characters,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
+ brace (main,characters,id,size,0x23DE,0xFF17A,0xFF301,0xFF17D,0xFF17C,0xFF301,0xFF17B)
+ brace (main,characters,id,size,0x23DF,0xFF27C,0xFF401,0xFF27B,0xFF27A,0xFF401,0xFF27D)
+ parent (main,characters,id,size,0x23DC,0xFF17A,0xFF301,0xFF17B)
+ parent (main,characters,id,size,0x23DD,0xFF27C,0xFF401,0xFF27D)
+ negate (main,characters,id,size,0x2260,0x003D)
+ dots (main,characters,id,size,0x2026) -- ldots
+ dots (main,characters,id,size,0x22EE) -- vdots
+ dots (main,characters,id,size,0x22EF) -- cdots
+ dots (main,characters,id,size,0x22F1) -- ddots
+ dots (main,characters,id,size,0x22F0) -- udots
+ minus (main,characters,id,size,0xFF501)
+ arrow (main,characters,id,size,0x2190,0xFE190,0xFF501,true) -- left
+ arrow (main,characters,id,size,0x2192,0xFE192,0xFF501,false) -- right
+ vertbar(main,characters,id,size,0x0007C,0.10,0xFF601) -- big : 0.85 bodyfontsize
+ vertbar(main,characters,id,size,0xFF601,0.30,0xFF602) -- Big : 1.15 bodyfontsize
+ vertbar(main,characters,id,size,0xFF602,0.30,0xFF603) -- bigg : 1.45 bodyfontsize
+ vertbar(main,characters,id,size,0xFF603,0.30,0xFF604) -- Bigg : 1.75 bodyfontsize
+ vertbar(main,characters,id,size,0x02225,0.10,0xFF605)
+ vertbar(main,characters,id,size,0xFF605,0.30,0xFF606)
+ vertbar(main,characters,id,size,0xFF606,0.30,0xFF607)
+ vertbar(main,characters,id,size,0xFF607,0.30,0xFF608)
end
-local reverse -- index -> unicode
+local unique = 0 -- testcase: \startTEXpage \math{!\text{-}\text{-}\text{-}} \stopTEXpage
-function fonts.basecopy(tfmtable)
+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
- for k, v in next, tfmtable.characters do
- c[k] = v
+ 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
- for k, v in next, tfmtable.parameters do
- p[k] = v
+ -- tricky ... what if fullname does not exist
+ if fullname then
+ unique = unique + 1
+ t.fullname = fullname .. "-" .. unique
end
- t.characters, t.parameters = c, p
return t
end
local reported = { }
+local reverse -- index -> unicode
function fonts.vf.math.define(specification,set)
if not reverse then
@@ -257,7 +304,6 @@ function fonts.vf.math.define(specification,set)
local size = specification.size -- given size
local fnt, lst, main = { }, { }, nil
local start = (trace_virtual or trace_timings) and os.clock()
---~ texio.write_nl("defining font " .. name .. " " .. size)
local okset, n = { }, 0
for s=1,#set do
local ss = set[s]
@@ -285,10 +331,14 @@ function fonts.vf.math.define(specification,set)
end
end
-- beware, fnt[1] is already passed to tex (we need to make a simple copy then .. todo)
- main = fonts.basecopy(fnt[1])
+ 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
- main.parameters.x_height = main.parameters.x_height or 0
+ 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
@@ -297,34 +347,38 @@ function fonts.vf.math.define(specification,set)
-- skip, redundant
else
local mm, fp = main.math_parameters, fs.parameters
- 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
- main.parameters.x_height = fp.x_height or main.parameters.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)
+ 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
@@ -337,14 +391,19 @@ function fonts.vf.math.define(specification,set)
for unicode, index in next, vector do
local fci = fc[index]
if not fci then
- local fontname = fs.name
+ 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
- logs.report("math virtual", "unicode point U+%05X has no index %04X in vector %s for font %s",unicode,index,vectorname,fontname)
+ 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
@@ -466,35 +525,44 @@ function fonts.vf.math.define(specification,set)
--~ end
else
local fci = fc[index]
- 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,
- }
+ if not fci then
+--~ characters[unicode] = {
+--~ width = 0,
+--~ height = 0,
+--~ depth = 0,
+--~ index = 0,
+--~ }
else
- characters[unicode] = {
- width = fci.width,
- height = fci.height,
- depth = fci.depth,
- italic = fci.italic,
- commands = ref,
- next = offset + index,
- }
+ 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
@@ -505,14 +573,18 @@ function fonts.vf.math.define(specification,set)
end
end
lst[#lst+1] = { id = font.nextid(), size = size }
- fonts.vf.math.alas(main,#lst,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
+ main.nomath = false
+--~ print(table.serialize(characters[0x222B]))
+--~ print(main.fontname,table.serialize(main.MathConstants))
return main
end
@@ -643,6 +715,10 @@ fonts.enc.math["tex-mr"] = {
-- [0x000A8] = 0x7F, -- [math]ddot
}
+fonts.enc.math["tex-mr-missing"] = {
+ [0x02236] = 0x3A, -- colon
+}
+
fonts.enc.math["tex-mi"] = {
[0x1D6E4] = 0x00, -- Gamma
[0x1D6E5] = 0x01, -- Delta
@@ -688,10 +764,10 @@ fonts.enc.math["tex-mi"] = {
[0x1D711] = 0x27, -- varphi (the other way around)
[0x021BC] = 0x28, -- leftharpoonup
[0x021BD] = 0x29, -- leftharpoondown
- [0x021C0] = 0x2A, -- righttharpoonup
+ [0x021C0] = 0x2A, -- rightharpoonup
[0x021C1] = 0x2B, -- rightharpoondown
- -- 0x2C, -- lhook (hook for combining arrows)
- -- 0x2D, -- rhook (hook for combining arrows)
+ [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
@@ -712,84 +788,90 @@ fonts.enc.math["tex-mi"] = {
[0x0003E] = 0x3E, -- >
[0x022C6] = 0x3F, -- star
[0x02202] = 0x40, -- partial
--- [0x00041] = 0x41, -- A
+--
+ [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
--- [0x00042] = 0x42, -- B
+-- [0x1D435] = 0x42, -- B
[0x1D6E3] = 0x42, -- Beta
--- [0x00043] = 0x43, -- C
--- [0x00044] = 0x44, -- D
--- [0x00045] = 0x45, -- E
+-- [0x1D436] = 0x43, -- C
+-- [0x1D437] = 0x44, -- D
+-- [0x1D438] = 0x45, -- E
[0x1D6E6] = 0x45, -- Epsilon
--- [0x00046] = 0x46, -- F
--- [0x00047] = 0x47, -- G
--- [0x00048] = 0x48, -- H
+-- [0x1D439] = 0x46, -- F
+-- [0x1D43A] = 0x47, -- G
+-- [0x1D43B] = 0x48, -- H
[0x1D6E8] = 0x48, -- Eta
--- [0x00049] = 0x49, -- I
+-- [0x1D43C] = 0x49, -- I
[0x1D6EA] = 0x49, -- Iota
--- [0x0004A] = 0x4A, -- J
--- [0x0004B] = 0x4B, -- K
+-- [0x1D43D] = 0x4A, -- J
+-- [0x1D43E] = 0x4B, -- K
[0x1D6EB] = 0x4B, -- Kappa
--- [0x0004C] = 0x4C, -- L
--- [0x0004D] = 0x4D, -- M
+-- [0x1D43F] = 0x4C, -- L
+-- [0x1D440] = 0x4D, -- M
[0x1D6ED] = 0x4D, -- Mu
--- [0x0004E] = 0x4E, -- N
+-- [0x1D441] = 0x4E, -- N
[0x1D6EE] = 0x4E, -- Nu
--- [0x0004F] = 0x4F, -- O
+-- [0x1D442] = 0x4F, -- O
[0x1D6F0] = 0x4F, -- Omicron
--- [0x00050] = 0x50, -- P
+-- [0x1D443] = 0x50, -- P
[0x1D6F2] = 0x50, -- Rho
--- [0x00051] = 0x51, -- Q
--- [0x00052] = 0x52, -- R
--- [0x00053] = 0x53, -- S
--- [0x00054] = 0x54, -- T
+-- [0x1D444] = 0x51, -- Q
+-- [0x1D445] = 0x52, -- R
+-- [0x1D446] = 0x53, -- S
+-- [0x1D447] = 0x54, -- T
[0x1D6F5] = 0x54, -- Tau
--- [0x00055] = 0x55, -- U
--- [0x00056] = 0x56, -- V
--- [0x00057] = 0x57, -- W
--- [0x00058] = 0x58, -- X
+-- [0x1D448] = 0x55, -- U
+-- [0x1D449] = 0x56, -- V
+-- [0x1D44A] = 0x57, -- W
+-- [0x1D44B] = 0x58, -- X
[0x1D6F8] = 0x58, -- Chi
--- [0x00059] = 0x59, -- Y
--- [0x0005A] = 0x5A, -- Z
- [0x1D6E7] = 0x5A, -- Zeta
- [0x0266D] = 0x5B, -- flat
- [0x0266E] = 0x5C, -- natural
- [0x0266F] = 0x5D, -- sharp
- [0x02323] = 0x5E, -- smile
- [0x02322] = 0x5F, -- frown
- [0x02113] = 0x60, -- ell
--- [0x00061] = 0x61, -- a
--- [0x00062] = 0x62, -- b
--- [0x00063] = 0x63, -- c
--- [0x00064] = 0x64, -- d
--- [0x00065] = 0x65, -- e
--- [0x00066] = 0x66, -- f
--- [0x00067] = 0x67, -- g
--- [0x00068] = 0x68, -- h
- [0x0210E] = 0x68, -- plant constant
--- [0x00069] = 0x69, -- i
--- [0x0006A] = 0x6A, -- j
--- [0x0006B] = 0x6B, -- k
--- [0x0006C] = 0x6C, -- l
--- [0x0006D] = 0x6D, -- m
--- [0x0006E] = 0x6E, -- n
--- [0x0006F] = 0x6F, -- o
+-- [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
--- [0x00070] = 0x70, -- p
--- [0x00071] = 0x71, -- q
--- [0x00072] = 0x72, -- r
--- [0x00073] = 0x73, -- s
--- [0x00074] = 0x74, -- t
--- [0x00075] = 0x75, -- u
--- [0x00076] = 0x76, -- v
--- [0x00077] = 0x77, -- w
--- [0x00078] = 0x78, -- x
--- [0x00079] = 0x79, -- y
--- [0x0007A] = 0x7A, -- z
- [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)
+-- [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"] = { }
@@ -1279,12 +1361,12 @@ fonts.enc.math["tex-fraktur"] = {
-- now that all other vectors are defined ...
-fonts.vf.math.set_letters(fonts.enc.math, "tex-mi", 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-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)
@@ -1294,308 +1376,4 @@ 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" } ,
- { name = "lmmi5.tfm", vector = "tex-mi", 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" } ,
- { name = "lmmi6.tfm", vector = "tex-mi", 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" } ,
- { name = "lmmi7.tfm", vector = "tex-mi", 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" } ,
- { name = "lmmi8.tfm", vector = "tex-mi", 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" } ,
- { name = "lmmi9.tfm", vector = "tex-mi", 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" } ,
- { name = "lmmi10.tfm", vector = "tex-mi", 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" } ,
- { name = "lmmib10.tfm", vector = "tex-mi", 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" } ,
- { name = "lmmi12.tfm", vector = "tex-mi", 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" } ,
- { name = "lmmi12.tfm", vector = "tex-mi", 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 = "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 = "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 ( "iwona-math", {
- { name = "file:Iwona-Regular", features = "virtualmath", main = true },
- { name = "mi-iwonari.tfm", vector = "tex-mi", 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 = "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 = "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 = "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 = "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 ( "lucida-math", {
- { name = "lbr.afm", features = "virtualmath", main = true },
- { name = "hlcrim.tfm", vector = "tex-mi", skewchar=0x7F },
- { name = "hlcry.tfm", vector = "tex-sy", skewchar=0x30, parameters = true },
- { name = "hlcrv.tfm", vector = "tex-ex", extension = true },
- { name = "hlcra.tfm", vector = "tex-ma" },
- { name = "hlcrm.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-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-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-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" },
-} )
+-- todo: we can make ss tt etc an option