diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/fonts/mkiv/schola-math.lfg')
-rw-r--r-- | Master/texmf-dist/tex/context/fonts/mkiv/schola-math.lfg | 150 |
1 files changed, 137 insertions, 13 deletions
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/schola-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/schola-math.lfg index b60bc6d99f9..e4a3ad39796 100644 --- a/Master/texmf-dist/tex/context/fonts/mkiv/schola-math.lfg +++ b/Master/texmf-dist/tex/context/fonts/mkiv/schola-math.lfg @@ -1,24 +1,148 @@ -local kern_V = { bottomright = { { kern = -200 } }, topright = { { kern = 50 } } } -local kern_W = { bottomright = { { kern = -100 } }, topright = { { kern = 50 } } } +local common = fonts.goodies.load("common-math.lfg") +local presets = common.mathematics.tweaks.presets --- Beware of updates in ssty slots! +local integral_variants = { bottomright = -0.20 } +local integral_bottom = { bottomright = -0.20 } return { name = "schola-math", version = "1.00", comment = "Goodies that complement schola.", - author = "Hans Hagen", + author = "Hans Hagen & Mikael Sundqvist", copyright = "ConTeXt development team", mathematics = { - kerns = { - -- [0x1D449] = kern_V, -- 𝑉 - -- ["1:0x1D449"] = kern_V, -- needed for compact - -- ["2:0x1D449"] = kern_V, -- needed for compact - -- [0x1D44A] = kern_W, -- 𝑊 - -- ["1:0x1D44A"] = kern_W, -- needed for compact - -- ["2:0x1D44A"] = kern_W, -- needed for compact - ["*:0x1D449"] = kern_V, -- 𝑉 - ["*:0x1D44A"] = kern_W, -- 𝑊 + parameters = { + AccentTopShiftUp = -15, + FlattenedAccentTopShiftUp = -15, + AccentBaseDepth = 30, + DelimiterPercent = 90, + DelimiterShortfall = 400, + DisplayOperatorMinHeight = 1800, -- 1333 in font + PrimeShiftUp = "1.35*SuperscriptShiftUp", + PrimeShiftUpCramped = "1.35*SuperscriptShiftUp", + -- Can be improved: Smaller script and scriptscript, modified SuperShiftUp and SubShiftDown, ... + }, + tweaks = { + aftercopying = { + { + tweak = "version", + expected = "Version 1.533", + }, + { + tweak = "fixprimes", + factor = 0.74, + }, + { + tweak = "addmirrors", + }, + presets.scripttocalligraphic { }, + presets.rsfstoscript { }, + presets.rsfsuprighttoscript { }, + presets.moderntocalligraphic { }, + presets.eulertocalligraphic { }, + presets.xitsarabic { rscale = 0.93 }, + presets.fallbacks { }, + presets.moveitalics { correct = true }, + presets.moveitalics { correct = true, letters = true }, + presets.moveintegrals { }, + presets.wipeitalics { }, + { + tweak = "kerns", + list = { + [0x002F] = { topleft = -0.2, bottomright = -0.2 }, + ["0x7D.parts.top"] = { topright = -0.15, }, -- right brace top + ["0x7D.parts.bottom"] = { bottomright = -0.15 }, -- right brace bottom + ["0x7D.variants.*"] = { topright = -0.15, bottomright = -0.15 }, -- right brace variants + ["0x29.parts.top"] = { topright = -0.25, }, -- right parenthesis top + ["0x29.parts.bottom"] = { bottomright = -0.25 }, -- right parenthesis bottom + ["0x29.variants.*"] = { topright = -0.2, bottomright = -0.2 }, -- right parenthesis variants + ["0x221A.parts.top"] = { topright = 0.2, }, -- right radical top + ["0x221A.parts.bottom"] = { bottomright = 0.2 }, -- right radical bottom + ["0x221A.variants.*"] = { topright = 0.2, bottomright = 0.2 }, -- right radical variants + [0x27E9] = { topright = -0.1, bottomright = -0.1 }, -- angle + ["0x27E9.variants.*"] = { topright = -0.2, bottomright = -0.2 }, + [0x27EB] = { topright = -0.1, bottomright = -0.1 }, + ["0x27EB.variants.*"] = { topright = -0.2, bottomright = -0.2 }, + -- + ["0x222B.parts.bottom"] = { bottomright = -0.20 }, -- int + ["0x222C.parts.bottom"] = { bottomright = -0.15 }, -- iint + ["0x222D.parts.bottom"] = { bottomright = -0.10 }, -- iiint + ["0x2A0C.parts.bottom"] = { bottomright = -0.05 }, -- iiiint + }, + }, + + -- Accents are a mess. We migrate the extensibles from the combiners to the base accent + -- and then need to tweak the width (which is auto set because it was zero with a large + -- accent anchor offset). First we copy and fix. + { + tweak = "extendaccents", + }, + { + tweak = "radicaldegreeanchors", + list = { + ["0x221A.parts.bottom"] = { location = "left", hfactor = 0.05, vfactor = 1.1 }, + } + }, + { + tweak = "fixaccents", + }, + -- First we set the dimensions of the initial accent which started out as zero but we want + -- a proper width. + { + tweak = "dimensions", + list = { + [0x00302] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widehat + [0x00303] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widetilde + [0x00306] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widebreve + [0x0030C] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widecheck + }, + }, + -- Then we deal with all offsets and heights in one go. So we treat the initial accent + -- as well as the variants here. Not in schola + -- We now copy these to the not wide slots so that we can set these to stretch as well, + -- if only because it is less confusing and more consistent. + { + tweak = "copyaccents", + }, + { + tweak = "checkspacing", + }, + { + tweak = "addscripts", + }, + { + tweak = "accentdimensions", + }, + { + tweak = "addrules", + }, + { + tweak = "addbars", + advance = 0.27, + }, + { + tweak = "addactuarian", + }, + { + tweak = "addequals", + }, + { + tweak = "addfourier", + variant = 1, + }, + { + tweak = "addprimed", + }, + -- this is the mkiv section + { + tweak = "emulatelmtx", + feature = "emulatelmtx", + comment = "this is for mkiv", + }, + }, + }, + bigslots = { + 1, 3, 5, 7 }, alternates = { dotless = { feature = 'dtls', value = 1, comment = "Mathematical Dotless Forms" }, |