diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/fonts/mkiv/stixtwo-math.lfg')
-rw-r--r-- | Master/texmf-dist/tex/context/fonts/mkiv/stixtwo-math.lfg | 207 |
1 files changed, 207 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/stixtwo-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/stixtwo-math.lfg new file mode 100644 index 00000000000..b6b1757b6c1 --- /dev/null +++ b/Master/texmf-dist/tex/context/fonts/mkiv/stixtwo-math.lfg @@ -0,0 +1,207 @@ +local common = fonts.goodies.load("common-math.lfg") +local presets = common.mathematics.tweaks.presets + +local integral_variants = { bottomright = -0.4 } +----- integral_top = { topright = 0.05 } +local integral_bottom = { bottomright = -0.35 } + +return { + name = "stix-two-math", + version = "1.00", + comment = "Goodies that complement stix two opentype.", + author = "Hans Hagen & Mikael Sundqvist", + copyright = "ConTeXt development team", + mathematics = { + alternates = { + calligraphic = { feature = 'ss01', value = 1, comment = "Mathematical Alternative Calligraphic Characters" }, + italic = { feature = 'ss02', value = 1, comment = "Mathematical Alternative Lowercase Italic" }, + barred = { feature = 'ss03', value = 1, comment = "Mathematical Alternative Barred Characters" }, -- hbar, lambdabar etc + primes = { feature = 'ss04', value = 1, comment = "Mathematical Alternative Primes" }, -- larger/lower primes, minute etc + arrow = { feature = 'ss05', value = 1, comment = "Mathematical Alternative Smaller Arrows" }, + narrower = { feature = 'ss06', value = 1, comment = "Mathematical Alternative Narrower Elements" }, -- narrower/shorter element etc + small = { feature = 'ss07', value = 1, comment = "Mathematical Alternative Smaller Operators" }, + upright = { feature = 'ss08', value = 1, comment = "Mathematical Alternative Upright Symbols" }, -- upright integrals etc. + negated = { feature = 'ss09', value = 1, comment = "Mathematical Alternative Negated Symbols" }, + relation = { feature = 'ss10', value = 1, comment = "Mathematical Alternative Relations" }, + negatedset = { feature = 'ss09', value = 1, comment = "Mathematical Alternative Negated Set Symbols" }, + -- todo = { feature = 'ss14', value = 1, comment = "" }, + circled = { feature = 'ss16', value = 1, comment = "Mathematical Alternative Circled Operators" }, + }, + parameters = { + AccentBaseDepth = 30, + FlattenedAccentTopShiftUp = 0, + RadicalKernAfterDegree = -500, + DelimiterPercent = 90, + DelimiterShortfall = 400, + DisplayOperatorMinHeight = 1800, -- 1800 in font + PrimeShiftUp = "1.3*SuperscriptShiftUp", + PrimeShiftUpCramped = "1.3*SuperscriptShiftUp", + }, + tweaks = { + aftercopying = { + { + tweak = "version", + expected = "Version 2.12 b168", + }, + { + tweak = "fixprimes", + factor = 0.84, + }, + { + tweak = "addmirrors", + }, + -- MS: we need to check this, I moved it up + { + tweak = "replacealphabets", + list = { + { + source = "uppercasescript", + target = "uppercasecalligraphic", + }, + { + source = "uppercasescript", + target = "uppercasescript", + feature = "ss01", + }, + }, + }, + -- + presets.scripttocalligraphic { }, + presets.rsfstoscript { }, + presets.rsfsuprighttoscript { }, + presets.moderntocalligraphic { }, + presets.eulertocalligraphic { }, + presets.xitsarabic { rscale = 0.95 }, + presets.fallbacks { }, + presets.moveitalics { correct = true }, + presets.moveitalics { correct = true, letters = true }, + presets.moveintegrals { }, + presets.wipeitalics { }, + { + tweak = "simplifykerns", + }, + { + 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 + ["0x29.parts.top"] = { topright = -0.1, }, -- right parenthesis top + ["0x29.parts.bottom"] = { bottomright = -0.1 }, -- 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.30 }, -- int + }, + }, + -- 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] = { location = "left", hfactor = 0.00, vfactor = 0.7 }, + ["0x221A.variants.*"] = { location = "left", hfactor = 0.00, vfactor = 0.55 }, + ["0x221A.variants.3"] = { location = "left", hfactor = 0.00, vfactor = .525 }, + ["0x221A.parts.bottom"] = { location = "left", hfactor = 0.05, vfactor = 1.00 }, + } + }, + + { + 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.2, anchor = 1.10, xoffset = .05 }, -- 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. + { + tweak = "dimensions", + list = { + -- here we want to apply to all + [0x020DB] = { yoffset = 0.025, height = .95, all = true }, -- widedddot : 0x20DB (self) + }, + }, + -- 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", + }, + -- So far for the accents. + { + tweak = "checkspacing", + }, + { + tweak = "addscripts", + }, + { + tweak = "accentdimensions", + }, + { + tweak = "addrules", + }, + { + tweak = "addarrows", + }, + { + tweak = "fixslashes", + }, + { -- already exists, but not good spacing + tweak = "addbars", + advance = 0.4, + }, + { + tweak = "addactuarian", + }, + { + tweak = "addfourier", + variant = 1, + }, + { + tweak = "addprimed", + }, + { + tweak = "addparts", + list = { + [0x21F4] = { + horizontal = true, + template = 0x2192, + sequence = { + { glyph = "first", factor = 2 }, + { glyph = 0x2218 }, + { glyph = "first", factor = 2 }, + { glyph = "last" }, + } + } + } + }, + -- this is the mkiv section + { + tweak = "emulatelmtx", + feature = "emulatelmtx", + comment = "this is for mkiv", + }, + }, + }, + bigslots = { + 1, 3, 5, 7 + }, + }, +} |