iwona-math.lfg /size: 5645 b    last modification: 2023-12-21 09:44
1local common  = fonts.goodies.load("common-math-jmn.lfg")
2local helpers = common.mathematics.helpers
3
4local badones = {
5    summationtext       = .25,
6    producttext         = .25,
7    integraltext        = .25,
8    uniontext           = .25,
9    intersectiontext    = .25,
10    unionmultitext      = .25,
11    logicalandtext      = .25,
12    logicalortext       = .25,
13    summationdisplay    = .25,
14    productdisplay      = .25,
15    integraldisplay     = .25,
16    uniondisplay        = .25,
17    intersectiondisplay = .25,
18    unionmultidisplay   = .25,
19    logicalanddisplay   = .25,
20    logicalordisplay    = .25,
21    coproducttext       = .25,
22    coproductdisplay    = .25,
23}
24
25local uglyones = {
26 -- braceleft     = true,
27 -- braceright    = true,
28    vextendsingle = true,
29    vextenddouble = true,
30}
31
32local recipes = {
33    ["iwona-math"] = {
34        { name = "file:LatinModern-Math", features = "virtualmath-iwona", main = true, parameters = false },
35        --
36        { name = "rm-iwonar.tfm",  vector = "tex-mr", skewchar=0x7F },
37        { name = "mi-iwonari.tfm", vector = "tex-mi", skewchar=0x7F },
38        { name = "mi-iwonari.tfm", vector = "tex-it", skewchar=0x7F },
39        { name = "mi-iwonami.tfm", vector = "tex-bi", skewchar=0x7F },
40        { name = "rm-iwonam.tfm",  vector = "tex-bf", skewchar=0x7F },
41        { name = "sy-iwonarz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true },
42        { name = "ex-iwonar.tfm",  vector = "tex-ex", extension = true, badones = badones, ignore = uglyones },
43    },
44    ["iwona-light-math"] = {
45        { name = "file:LatinModern-Math", features = "virtualmath-iwona-light", main = true, parameters = false },
46        --
47        { name = "rm-iwonal.tfm",  vector = "tex-mr", skewchar=0x7F },
48        { name = "mi-iwonali.tfm", vector = "tex-mi", skewchar=0x7F },
49        { name = "mi-iwonali.tfm", vector = "tex-it", skewchar=0x7F },
50        { name = "mi-iwonari.tfm", vector = "tex-bi", skewchar=0x7F },
51        { name = "rm-iwonar.tfm",  vector = "tex-bf", skewchar=0x7F },
52        { name = "sy-iwonalz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true },
53        { name = "ex-iwonal.tfm",  vector = "tex-ex", extension = true, badones = badones, ignore = uglyones },
54    },
55    ["iwona-medium-math"] = {
56        { name = "file:LatinModern-Math", features = "virtualmath-iwona-medium", main = true, parameters = false },
57        --
58        { name = "rm-iwonam.tfm",  vector = "tex-mr", skewchar=0x7F },
59        { name = "mi-iwonami.tfm", vector = "tex-mi", skewchar=0x7F },
60        { name = "mi-iwonami.tfm", vector = "tex-it", skewchar=0x7F },
61        { name = "mi-iwonabi.tfm", vector = "tex-bi", skewchar=0x7F },
62        { name = "rm-iwonab.tfm",  vector = "tex-bf", skewchar=0x7F },
63        { name = "sy-iwonamz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true },
64        { name = "ex-iwonam.tfm",  vector = "tex-ex", extension = true, badones = badones, ignore = uglyones },
65    },
66    ["iwona-heavy-math"] = {
67        { name = "file:LatinModern-Math", features = "virtualmath-iwona-heavy", main = true, parameters = false },
68        --
69        { name = "rm-iwonah.tfm",  vector = "tex-mr", skewchar=0x7F },
70        { name = "mi-iwonahi.tfm", vector = "tex-mi", skewchar=0x7F },
71        { name = "mi-iwonahi.tfm", vector = "tex-it", skewchar=0x7F },
72        { name = "mi-iwonahi.tfm", vector = "tex-bi", skewchar=0x7F },
73        { name = "rm-iwonah.tfm",  vector = "tex-bf", skewchar=0x7F },
74        { name = "sy-iwonahz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true },
75        { name = "ex-iwonah.tfm",  vector = "tex-ex", extension = true, badones = badones, ignore = uglyones },
76    },
77}
78
79local tweaks = nil
80local common = fonts.goodies.load("common-math-jmn.lfg")
81
82if common then
83
84    tweaks = {
85        {
86            tweak  = "addmissing",
87            action = common.mathematics.helpers.addmissing,
88        },
89        {
90            tweak = "setoptions",
91            set   = { "ignorekerndimensions" }
92        }, -- we have dp > ht fences
93        {
94            tweak  = "fixprimes",
95            factor = 1.0, -- accent base height
96            fake   = 0.9, -- replace multiples with this width proportion
97        },
98        {
99            tweak = "addfourier",
100        },
101        {
102            tweak = "addequals",
103            force = true,
104        },
105    }
106
107    common.mathematics.helpers.copyrecipes(recipes)
108
109end
110
111return {
112    name = "iwona-math",
113    version = "1.00",
114    comment = "Goodies that complement iwona math.",
115    author = "Hans Hagen",
116    copyright = "ConTeXt development team",
117    mathematics = {
118        mapfiles = {
119            "iwona-rm.map",
120            "iwona-mi.map",
121            "iwona-sy.map",
122            "iwona-ex.map",
123         -- "mkiv-base.map",
124        },
125        virtuals = {
126            ["iwona-math"]           = { recipe = recipes["iwona-math"],        tweaks = tweaks },
127            ["iwona-light-math"]     = { recipe = recipes["iwona-light-math"],  tweaks = tweaks },
128            ["iwona-medium-math"]    = { recipe = recipes["iwona-medium-math"], tweaks = tweaks },
129            ["iwona-heavy-math"]     = { recipe = recipes["iwona-heavy-math"],  tweaks = tweaks },
130
131            ["iwona-math-nt"]        = { recipe = common and recipes["iwona-math-nt"]        or nil },
132            ["iwona-light-math-nt"]  = { recipe = common and recipes["iwona-light-math-nt"]  or nil },
133            ["iwona-medium-math-nt"] = { recipe = common and recipes["iwona-medium-math-nt"] or nil },
134            ["iwona-heavy-math-nt"]  = { recipe = common and recipes["iwona-heavy-math-nt"]  or nil },
135        },
136    }
137}
138