summaryrefslogtreecommitdiff
path: root/tex/context/fonts/mkiv/libertinus-math.lfg
blob: 24f58eb48013253e9b844ef581e95ae908dd52f9 (plain)
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
-- 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 descriptions = target.descriptions
                    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", .1 * c.height }, { "slot", 0, new, .7 } }
                                end
                            end
                        end
                    else
                        logs.report("fonts","the libertinus tweaks need to be checked")
                    end
                end,
            },
        },
    },
}