-- This is largely untested as we didn't really look at the font in detail -- because it is in development. -- -- todo : check first variant size after update local common = fonts.goodies.load("common-math.lfg") local presets = common.mathematics.tweaks.presets -- local integral_variants = { bottomright = -0.20 } -- local integral_bottom = { bottomright = -0.25 } return { name = "plex-math", version = "1.00", comment = "Goodies that complement IBM Plex (beta).", author = "Hans Hagen & Mikael Sundqvist", copyright = "ConTeXt development team", mathematics = { parameters = { -- FractionRuleThickness = 60, -- AccentTopShiftUp = -25, -- FlattenedAccentTopShiftUp = -25, -- AccentBaseDepth = 30, -- DelimiterPercent = 85, -- DelimiterShortfall = 400, -- DelimiterDisplayPercent = 90, -- DelimiterDisplayShortfall = 400, -- DisplayOperatorMinHeight = 1800, -- 1333 in font -- SubscriptShiftDown = 177, -- 277 in font -- SuperscriptShiftUp = 0, -- 381 in font -- SubscriptShiftDownWithSuperscript = "1.3*SubscriptShiftDown", -- trial and error PrimeShiftUp = "1.1*SuperscriptShiftUp", PrimeShiftUpCramped = "1.1*SuperscriptShiftUp", -- PrimeBaselineDropMax = "0.5*SuperscriptBaselineDropMax", }, tweaks = { aftercopying = { { tweak = "version", expected = "Version 240212 beta", }, presets.braille { }, -- { -- tweak = "fixprimes", -- factor = 0.63, -- }, { tweak = "addmirrors", }, -- presets.scripttocalligraphic { }, -- presets.rsfstoscript { rscale = 1.02 }, -- presets.rsfsuprighttoscript { rscale = 1.02 }, -- presets.moderntocalligraphic { rscale = 1.02 }, -- presets.eulertocalligraphic { rscale = 1.02 }, presets.xitsarabic { rscale = 1.05 }, presets.fallbacks { }, presets.moveitalics { correct = true }, presets.moveitalics { correct = true, letters = true }, presets.moveintegrals { factor = 1.5 }, -- we need to check this presets.wipeitalics { }, -- We don't have italic correction in for instance math italic f which means that -- we also didn't fix it. Therefore we need at least some reasonable kerns. Using -- a dimension tweak before the above (e.g. 0.2 italic and 0.8 width) doesn't work -- because once the advance is set the move is blocked and the ic stil wiped. So, -- we kern. Actually the upright (ascii) f has italic correction. { tweak = "checkaccents", }, -- { -- 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.05, bottomright = -0.05 }, -- right brace variants -- ["0x29.parts.top"] = { topright = -0.15, }, -- right parenthesis top -- ["0x29.parts.bottom"] = { bottomright = -0.15 }, -- right parenthesis bottom -- ["0x29.variants.*"] = { topright = -0.1, bottomright = -0.1 }, -- 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 }, -- -- -- [0x00393] = { bottomright = -0.30, }, -- upright Gamma -- -- -- ["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", }, -- Needs to be done (radical broken in fonts) -- { -- tweak = "radicaldegreeanchors", -- list = { -- [0x221A] = { location = "left", hfactor = .1, vfactor = .65 }, -- ["0x221A.variants.*"] = { location = "left", hfactor = .1, vfactor = .6 }, -- ["0x221A.variants.1"] = { location = "left", hfactor = .1, vfactor = .65 }, -- ["0x221A.variants.2"] = { location = "left", hfactor = .1, vfactor = .65 }, -- ["0x221A.parts.bottom"] = { location = "left", hfactor = .1, vfactor = 1.1 }, -- } -- }, { tweak = "flattenaccents", }, { tweak = "fixaccents", }, { tweak = "copyaccents", }, presets.addmathkerns { }, { tweak = "checkspacing", }, { tweak = "addscripts", }, { tweak = "accentdimensions", }, -- Assume the font will be complete -- { -- tweak = "addrules", -- }, -- Maybe not, since font is squarish -- { -- tweak = "replacerules", -- fraction = { height = .254, yoffset = .746, leftoffset = .1, rightoffset = .1, }, -- radical = { height = .17, leftoffset = .1, rightoffset = .1, yoffset = .485, yscale = .65 }, -- stacker = { height = .254, yoffset = .746 }, -- }, { tweak = "wipecues", }, -- { -- tweak = "addbars", -- advance = 0.175, -- }, { tweak = "addactuarian", }, { tweak = "addequals", }, { tweak = "addfourier", variant = 1, }, { tweak = "addprimed", }, -- this is the mkiv section { tweak = "emulatelmtx", feature = "emulatelmtx", comment = "this is for mkiv", }, }, }, alternates = { dotless = { feature = 'dtls', value = 1, comment = "Mathematical Dotless Forms" }, }, bigslots = { 2, 4, 6, 9 }, }, }