From 6359695c65028baeb2296bd4b2e0c41a34dd8f0e Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Thu, 5 Oct 2017 17:04:18 +0200 Subject: 2017-10-05 16:30:00 --- tex/context/fonts/mkiv/stix-two-math.lfg | 36 ++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'tex/context/fonts/mkiv') diff --git a/tex/context/fonts/mkiv/stix-two-math.lfg b/tex/context/fonts/mkiv/stix-two-math.lfg index ded97f92e..7652796a9 100644 --- a/tex/context/fonts/mkiv/stix-two-math.lfg +++ b/tex/context/fonts/mkiv/stix-two-math.lfg @@ -1,3 +1,32 @@ +-- Bah, I really hate these patches especially because one needs to make +-- sure that they are still valid when the font gets updated. So, let's +-- do it runtime (not in the cached copy) and issue a warning every run. +-- As we cannot rely on version numbers (if we have more patches) we +-- check for values instead. +-- +-- This font also has inconsistent italics in smalelr sizes which we can +-- fix in a more general way but I'm not sure if we want that. + +local function fix_italic(target,original,name,value,factor) + local m = target.parameters.mathsize + local u = original.resources.unicodes[name] + if m and u then + local c = target.characters[u] + if c then + local i = c.italic + if i then + local d = original.descriptions[u] + if d and d.math.italic == value then + if m then + logs.report("patching font","fixing italic correction of %U at math size %i by %0.3f",u,m,factor) + c.italic = factor * i + end + end + end + end + end +end + return { name = "stix-two-math", version = "1.00", @@ -21,6 +50,13 @@ return { -- todo = { feature = 'ss14', value = 1, comment = "" }, circled = { feature = 'ss16', value = 1, comment = "Mathematical Alternative Circled Operators" }, }, + tweaks = { + aftercopying = { + function(target,original) + fix_italic(target,original,"uni222B.updsp",80,3) + end, + }, + }, }, } -- cgit v1.2.3