summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/font-ext.lua
diff options
context:
space:
mode:
authorContext Git Mirror Bot <phg42.2a@gmail.com>2016-05-11 00:41:24 +0200
committerContext Git Mirror Bot <phg42.2a@gmail.com>2016-05-11 00:41:24 +0200
commitcb364747722b9ce55d3301af24d5740fd511cf79 (patch)
tree7b6691a7dcd10e8b0021eb34494b14a315431096 /tex/context/base/mkiv/font-ext.lua
parente5703477ae326ba910515aeab93000828516954a (diff)
downloadcontext-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.lua59
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