summaryrefslogtreecommitdiff
path: root/tex/generic
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2017-02-19 17:46:26 +0100
committerContext Git Mirror Bot <phg42.2a@gmail.com>2017-02-19 17:46:26 +0100
commitb5ef32a9a6a99e134e669b702e89a55fbabf5306 (patch)
treee0b152cee73c98ea43d93e707dad31bfdebc1ef0 /tex/generic
parent601e63e757d4cf40d5923cee4b6b3debff57364c (diff)
downloadcontext-b5ef32a9a6a99e134e669b702e89a55fbabf5306.tar.gz
2017-02-19 17:20:00
Diffstat (limited to 'tex/generic')
-rw-r--r--tex/generic/context/luatex/luatex-fonts-ext.lua42
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua39
2 files changed, 80 insertions, 1 deletions
diff --git a/tex/generic/context/luatex/luatex-fonts-ext.lua b/tex/generic/context/luatex/luatex-fonts-ext.lua
index 0b61e27fd..7d9c58ccb 100644
--- a/tex/generic/context/luatex/luatex-fonts-ext.lua
+++ b/tex/generic/context/luatex/luatex-fonts-ext.lua
@@ -285,3 +285,45 @@ otffeatures.register {
node = ignore,
}
}
+
+local setmetatableindex = table.setmetatableindex
+
+local function additalictowidth(tfmdata,key,value)
+ local characters = tfmdata.characters
+ local resources = tfmdata.resources
+ local additions = { }
+ local private = resources.private
+ for unicode, old_c in next, characters do
+ -- maybe check for math
+ local oldwidth = old_c.width
+ local olditalic = old_c.italic
+ if olditalic and olditalic ~= 0 then
+ private = private + 1
+ local new_c = {
+ width = oldwidth + olditalic,
+ height = old_c.height,
+ depth = old_c.depth,
+ commands = {
+ { "slot", 1, private },
+ { "right", olditalic },
+ },
+ }
+ setmetatableindex(new_c,old_c)
+ characters[unicode] = new_c
+ additions[private] = old_c
+ end
+ end
+ for k, v in next, additions do
+ characters[k] = v
+ end
+ resources.private = private
+end
+
+otffeatures.register {
+ name = "italicwidths",
+ description = "add italic to width",
+ manipulators = {
+ base = additalictowidth,
+ -- node = additalictowidth, -- only makes sense for math
+ }
+}
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index 8df4c966b..dc16e2426 100644
--- a/tex/generic/context/luatex/luatex-fonts-merged.lua
+++ b/tex/generic/context/luatex/luatex-fonts-merged.lua
@@ -1,6 +1,6 @@
-- merged file : c:/data/develop/context/sources/luatex-fonts-merged.lua
-- parent file : c:/data/develop/context/sources/luatex-fonts.lua
--- merge date : 02/18/17 11:47:12
+-- merge date : 02/19/17 17:14:56
do -- begin closure to overcome local limits and interference
@@ -27187,6 +27187,43 @@ otffeatures.register {
node=ignore,
}
}
+local setmetatableindex=table.setmetatableindex
+local function additalictowidth(tfmdata,key,value)
+ local characters=tfmdata.characters
+ local resources=tfmdata.resources
+ local additions={}
+ local private=resources.private
+ for unicode,old_c in next,characters do
+ local oldwidth=old_c.width
+ local olditalic=old_c.italic
+ if olditalic and olditalic~=0 then
+ private=private+1
+ local new_c={
+ width=oldwidth+olditalic,
+ height=old_c.height,
+ depth=old_c.depth,
+ commands={
+ { "slot",1,private },
+ { "right",olditalic },
+ },
+ }
+ setmetatableindex(new_c,old_c)
+ characters[unicode]=new_c
+ additions[private]=old_c
+ end
+ end
+ for k,v in next,additions do
+ characters[k]=v
+ end
+ resources.private=private
+end
+otffeatures.register {
+ name="italicwidths",
+ description="add italic to width",
+ manipulators={
+ base=additalictowidth,
+ }
+}
end -- closure