diff options
Diffstat (limited to 'tex/context/base/mkxl/font-imp-digits.lmt')
-rw-r--r-- | tex/context/base/mkxl/font-imp-digits.lmt | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/tex/context/base/mkxl/font-imp-digits.lmt b/tex/context/base/mkxl/font-imp-digits.lmt new file mode 100644 index 000000000..b350b7745 --- /dev/null +++ b/tex/context/base/mkxl/font-imp-digits.lmt @@ -0,0 +1,62 @@ +if not modules then modules = { } end modules ['font-imp-digits'] = { + version = 1.001, + comment = "companion to font-ini.mkiv", + author = "Hans Hagen, PRAGMA ADE", + copyright = "ConTeXt Development Team", + license = "see context related readme files" +} + +if not context then return end + +local equaldigits = { } + +-- for i=48,57 do +-- equaldigits[i] = fonts.helpers.newprivateslot(tonumber(i)..".equaldigits") +-- end + +local function initialize(tfmdata,value) + if value then + local characters = tfmdata.characters + local wd, ht, dp = 0, 0, 0 + for i=48,57 do + if not equaldigits[i] then + equaldigits[i] = fonts.helpers.newprivateslot(tonumber(i)..".equaldigits") + end + local c = characters[i] + local w = c.width or 0 + local h = c.height or 0 + local d = c.depth or 0 + if w > wd then wd = w end + if h > ht then ht = h end + if d > dp then dp = d end + end + for i=48,57 do + -- fonts.helpers.addprivate(tfmdata,tonumber(i)..".equaldigits") + local u = equaldigits[i] + local c = characters[i] + characters[u] = table.setmetatableindex( { + height = ht, + depth = dp, + width = wd, + xoffset = (wd - (c.width or 0)) / 2, + }, c) + end + end +end + +fonts.handlers.otf.features.register { + name = "equaldigits", + description = "equaldigits", + manipulators = { + base = initialize, + node = initialize, + } +} + +fonts.handlers.otf.addfeature { + -- name = "tnum", -- let's not waste that one + name = "tabledigits", + type = "substitution", + nocheck = true, + data = equaldigits, +} |