1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
-- Well, here we have yet another math font that does things differently: a huge prime in the ssty1
-- slot (not an alternate but a single) and a small one in the normal location. Actually, only primes
-- have an ssty feature. Now, because we have some magic with primes in ConTeXt we cannot use some
-- fix-feature or just disable ssty, but we have to revert to a runtime fix. Lucky me that I didn't
-- remove that hardly needed 'tweaks' mechanism yet.
return {
name = "libertinus-math",
version = "1.00",
comment = "Goodies that complement libertinus.",
author = "Hans Hagen",
copyright = "ConTeXt development team",
mathematics = {
tweaks = {
aftercopying = {
function(target,original)
local okay = 983068
local crap = {
["minute"] = "minute.ssty1",
["second"] = "second.ssty1",
-- [8242] = 983068,
-- [8243] = 983069,
[8244] = 983070,
[8245] = 983071,
[8246] = 983072,
[8247] = 983073,
}
local characters = target.characters
local unicodes = original.resources.unicodes
if unicodes["minute.ssty1"] == okay then
for old, new in next, crap do
if type(old) == "string" then
old = unicodes[old]
end
if type(new) == "string" then
new = unicodes[new]
end
if old and new and characters[old] then
local c = characters[new]
if c then
characters[old] = c
c.commands = { { "up", .06 * c.height }, { "slot", 0, new, .7 } }
end
end
end
local four = characters[0x2057]
if four then
local one = characters[okay]
local owd = .75*one.width
local off = .6*one.height
four.width = 4*owd
four.commands = {
{ "offset", 0, off, okay },
{ "offset", owd, off, okay },
{ "offset", 2*owd, off, okay },
{ "offset", 3*owd, off, okay },
}
else
-- we don't add (but we could), just patch, and there's no
-- reverse quad either
end
else
logs.report("fonts","the libertinus tweaks need to be checked")
end
end,
},
},
},
}
|