summaryrefslogtreecommitdiff
path: root/tex/context/base/font-ctx.lua
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2011-10-12 10:14:00 +0200
committerHans Hagen <pragma@wxs.nl>2011-10-12 10:14:00 +0200
commit4680e3b1c502484cdba78372162dd4f51e398894 (patch)
treec90941ed8418d2ddadf7bbf01342857f705b3122 /tex/context/base/font-ctx.lua
parentbd9c410acd522b2308bd5c4a60f7f7670ecfa6c9 (diff)
downloadcontext-4680e3b1c502484cdba78372162dd4f51e398894.tar.gz
beta 2011.10.12 10:14
Diffstat (limited to 'tex/context/base/font-ctx.lua')
-rw-r--r--tex/context/base/font-ctx.lua18
1 files changed, 16 insertions, 2 deletions
diff --git a/tex/context/base/font-ctx.lua b/tex/context/base/font-ctx.lua
index 7b5b5fd10..9a92cadec 100644
--- a/tex/context/base/font-ctx.lua
+++ b/tex/context/base/font-ctx.lua
@@ -108,10 +108,11 @@ setmetatableindex(fontdata, function(t,k) return nulldata end)
local chardata = allocate() -- chardata
local parameters = allocate()
-local csnames = allocate() -- namedata
local quaddata = allocate()
local markdata = allocate()
-local xheightdata = allocate() -- xheightdata
+local xheightdata = allocate()
+local csnames = allocate() -- namedata
+local italicsdata = allocate()
hashes.characters = chardata
hashes.parameters = parameters
@@ -119,6 +120,7 @@ hashes.quads = quaddata
hashes.marks = markdata
hashes.xheights = xheightdata
hashes.csnames = csnames
+hashes.italics = italicsdata
setmetatableindex(chardata, function(t,k)
local characters = fontdata[k].characters
@@ -153,6 +155,18 @@ setmetatableindex(xheightdata, function(t,k)
return quad
end)
+setmetatableindex(italicsdata, function(t,k)
+ local properties = fontdata[k].properties
+ local italics = properties and properties.italic_correction
+ if italics then
+ italics = chardata[k]
+ else
+ italics = false
+ end
+ t[k] = italics
+ return italics
+end)
+
-- this cannot be a feature initializer as there is no auto namespace
-- so we never enter the loop then; we can store the defaults in the tma
-- file (features.gpos.mkmk = 1 etc)