diff options
author | Context Git Mirror Bot <phg42.2a@gmail.com> | 2016-05-11 00:41:24 +0200 |
---|---|---|
committer | Context Git Mirror Bot <phg42.2a@gmail.com> | 2016-05-11 00:41:24 +0200 |
commit | cb364747722b9ce55d3301af24d5740fd511cf79 (patch) | |
tree | 7b6691a7dcd10e8b0021eb34494b14a315431096 /tex/context/base/mkiv/font-ext.lua | |
parent | e5703477ae326ba910515aeab93000828516954a (diff) | |
download | context-cb364747722b9ce55d3301af24d5740fd511cf79.tar.gz |
2016-05-10 23:48:00
Diffstat (limited to 'tex/context/base/mkiv/font-ext.lua')
-rw-r--r-- | tex/context/base/mkiv/font-ext.lua | 59 |
1 files changed, 49 insertions, 10 deletions
diff --git a/tex/context/base/mkiv/font-ext.lua b/tex/context/base/mkiv/font-ext.lua index 189a588f1..98ad9e09e 100644 --- a/tex/context/base/mkiv/font-ext.lua +++ b/tex/context/base/mkiv/font-ext.lua @@ -554,17 +554,17 @@ local function initializemathitalics(tfmdata,value) -- yes no delay tfmdata.properties.mathitalics = toboolean(value) end -local mathitalics_specification = { - name = "mathitalics", - description = "use alternative math italic correction", - initializers = { - base = initializemathitalics, - node = initializemathitalics, - } -} +-- local mathitalics_specification = { +-- name = "mathitalics", +-- description = "use alternative math italic correction", +-- initializers = { +-- base = initializemathitalics, +-- node = initializemathitalics, +-- } +-- } -registerotffeature(mathitalics_specification) -registerafmfeature(mathitalics_specification) +-- registerotffeature(mathitalics_specification) +-- registerafmfeature(mathitalics_specification) -- slanting @@ -925,6 +925,45 @@ registerotffeature { -- } -- } +-- not to be used! experimental code, only needed when testing + +local is_letter = characters.is_letter +local always = true + +local function collapseitalics(tfmdata,key,value) + local threshold = value == true and 100 or tonumber(value) + if threshold and threshold > 0 then + if threshold > 100 then + threshold = 100 + end + for unicode, data in next, tfmdata.characters do + if always or is_letter[unicode] or is_letter[data.unicode] then + local italic = data.italic + if italic and italic ~= 0 then + local width = data.width + if width and width ~= 0 then + local delta = threshold * italic / 100 + data.width = width + delta + data.italic = italic - delta + end + end + end + end + end +end + +local dimensions_specification = { + name = "collapseitalics", + description = "collapse italics", + manipulators = { + base = collapseitalics, + node = collapseitalics, + } +} + +registerotffeature(dimensions_specification) +registerafmfeature(dimensions_specification) + -- a handy helper (might change or be moved to another namespace) local nodepool = nodes.pool |