summaryrefslogtreecommitdiff
path: root/tex/context/fonts/mkiv/asana-math.lfg
blob: fc83887a0a45cdbb2a015416b3e726cf8b66fcae (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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
-- This patch code is moved from font-pat.lua to this goodies
-- files as it does not belong in the core code.

local patches = fonts.handlers.otf.enhancers.patches

local function patch(data,filename,threshold)
    local m = data.metadata.math
    if m then
        local d = m.DisplayOperatorMinHeight or 0
        if d < threshold then
            patches.report("DisplayOperatorMinHeight(%s -> %s)",d,threshold)
            m.DisplayOperatorMinHeight = threshold
        end
    end
end

patches.register("after","analyze math","asana",function(data,filename) patch(data,filename,1350) end)

local function less(value,target,original)
    -- officially we should check the original
    return 0.25 * value
end

local function more(value,target,original)
    local o = original.mathparameters.DisplayOperatorMinHeight
    if o < 2800 then
        return 2800 * target.parameters.factor
    else
        return value -- already scaled
    end
end

return {
    name = "asana-math",
    version = "1.00",
    comment = "Goodies that complement asana.",
    author = "Hans Hagen",
    copyright = "ConTeXt development team",
    mathematics = {
        tweaks = {
            aftercopying = {
                {
                    tweak = "dimensions",
                    list  = {
                        -- nothing yet
                    }
                },
                {
                    tweak  = "fixprimes",
                    factor = 1.05,
                    scale  = 0.65,
                },
                {
                    tweak = "checkspacing",
                },
                {
                    tweak = "addscripts",
                },
            },
        },
        parameters = {
         -- DisplayOperatorMinHeight         = 0, -- more
         -- StackBottomDisplayStyleShiftDown = 0,
         -- StackBottomShiftDown             = 0,
         -- StackDisplayStyleGapMin          = 0,
         -- StackGapMin                      = 0,
         -- StackTopDisplayStyleShiftUp      = 0,
         -- StackTopShiftUp                  = 0,
         -- StretchStackBottomShiftDown      = 0,
         -- StretchStackGapAboveMin          = 0,
         -- StretchStackGapBelowMin          = 0,
         -- StretchStackTopShiftUp           = 0,
            StackBottomDisplayStyleShiftDown = less,
            StackBottomShiftDown             = less,
            StackDisplayStyleGapMin          = less,
            StackGapMin                      = less,
            StackTopDisplayStyleShiftUp      = less,
            StackTopShiftUp                  = less,
            StretchStackBottomShiftDown      = less,
            StretchStackGapAboveMin          = less,
            StretchStackGapBelowMin          = less,
            StretchStackTopShiftUp           = less,
        }
    }
}