diff options
author | Hans Hagen <pragma@wxs.nl> | 2011-04-11 16:45:00 +0200 |
---|---|---|
committer | Hans Hagen <pragma@wxs.nl> | 2011-04-11 16:45:00 +0200 |
commit | 612f23ed1b01240fdc9ca5132dbd3164e96ed570 (patch) | |
tree | 8eafde3944b1b46eae32e68b240a5eb9cf5f71fc /tex/context/base/font-ctx.lua | |
parent | 0bd8dee4e7e38cfb027bf788505de24aca28261c (diff) | |
download | context-612f23ed1b01240fdc9ca5132dbd3164e96ed570.tar.gz |
beta 2011.04.11 16:45
Diffstat (limited to 'tex/context/base/font-ctx.lua')
-rw-r--r-- | tex/context/base/font-ctx.lua | 40 |
1 files changed, 19 insertions, 21 deletions
diff --git a/tex/context/base/font-ctx.lua b/tex/context/base/font-ctx.lua index fe32a2420..486300bc1 100644 --- a/tex/context/base/font-ctx.lua +++ b/tex/context/base/font-ctx.lua @@ -29,6 +29,8 @@ local report_defining = logs.reporter("fonts","defining") local report_status = logs.reporter("fonts","status") local report_mapfiles = logs.reporter("fonts","mapfiles") +local setmetatableindex = table.setmetatableindex + local fonts = fonts local handlers = fonts.handlers local otf = handlers.otf -- brrr @@ -94,9 +96,7 @@ function definers.resetnullfont() definers.resetnullfont = function() end end -setmetatablekey(fontdata, "__index", function(t,k) - return nulldata -end) +setmetatableindex(fontdata, function(t,k) return nulldata end) local chardata = allocate() -- chardata local parameters = allocate() @@ -109,26 +109,26 @@ hashes.parameters = parameters hashes.quads = quaddata hashes.xheights = xheightdata -setmetatablekey(chardata, "__index", function(t,k) +setmetatableindex(chardata, function(t,k) local characters = fontdata[k].characters t[k] = characters return characters end) -setmetatablekey(parameters, "__index", function(t,k) +setmetatableindex(parameters, function(t,k) local parameters = fontdata[k].parameters t[k] = parameters return parameters end) -setmetatablekey(quaddata, "__index", function(t,k) +setmetatableindex(quaddata, function(t,k) local parameters = parameters[k] local quad = parameters and parameters.quad or 0 t[k] = quad return quad end) -setmetatablekey(xheightdata, "__index", function(t,k) +setmetatableindex(xheightdata, function(t,k) local parameters = parameters[k] local xheight = parameters and parameters.xheight or 0 t[k] = xheight @@ -865,7 +865,7 @@ mappings.reset() -- resets the default file -- => commands -function nametoslot(name) +local function nametoslot(name) local t = type(name) if t == "string" then local tfmdata = fonts.hashes.identifiers[currentfont()] @@ -1202,20 +1202,18 @@ local xheights = hashes.xheights local currentfont = font.current local texdimen = tex.dimen -setmetatable(number.dimenfactors, { - __index = function(t,k) - if k == "ex" then - return xheigths[currentfont()] - elseif k == "em" then - return quads[currentfont()] - elseif k == "%" then - return dimen.hsize/100 - else - -- error("wrong dimension: " .. (s or "?")) -- better a message - return false - end +setmetatableindex(number.dimenfactors, function(t,k) + if k == "ex" then + return xheigths[currentfont()] + elseif k == "em" then + return quads[currentfont()] + elseif k == "%" then + return dimen.hsize/100 + else + -- error("wrong dimension: " .. (s or "?")) -- better a message + return false end -} ) +end) --[[ldx-- <p>Before a font is passed to <l n='tex'/> we scale it. Here we also need |