I found a solution. \startluacode fonts.handlers.otf.addfeature { name = "ktest", type = "kern", data = { ["t"] = { ["e"] = 500 }, } } \stopluacode \definefontfeature[ktest][ktest=yes] \definefont[1][Serif*ktest] \starttext \1 test \ctxlua{ local fnt = font.current() local tfmdata = fonts.hashes.identifiers[fnt] local t = string.byte("t") local e = string.byte("e") local kern = 0 for kind in pairs(tfmdata.shared.rawdata.lookupcache) do kern = kern + fonts.handlers.otf.getkern(tfmdata,t,e,kind) end context(kern / tfmdata.parameters.factor) % 500 } \stoptext On 6/02/19 9:27 AM, Henri Menke wrote:
Dear list,
I am trying to access extra kerning that I have defined using fonts.handlers.otf.addfeature. Even though I query the kerning from within a paragraph where the kerning is evidently applied I can't seem to get the value stored earlier, see the comment in the MWE. What am I doing wrong?
Cheers, Henri
---
\startluacode fonts.handlers.otf.addfeature { name = "ktest", type = "kern", data = { ["t"] = { ["e"] = 500 }, } } \stopluacode
\definefontfeature[ktest][ktest=yes]
\definefont[1][Serif*ktest]
\starttext
\1 test \ctxlua{ local fnt = font.current() local tfmdata = fonts.hashes.identifiers[fnt] local t = string.byte("t") local e = string.byte("e") local kern = fonts.handlers.otf.getkern(tfmdata,t,e) context(kern) % 0 instead of 500. Why? }
\stoptext
---
P.S.: I have posted the same question on the LuaTeX list, but with a different MWE.
-------- Forwarded Message -------- Subject: How to query fonts.handlers Date: Mon, 4 Feb 2019 15:00:12 +1300 From: Henri Menke
To: LuaTeX discussion. Dear list,
I am trying to access extra kerning that I have defined using fonts.handlers.otf.addfeature. Even though I query the kerning from within a paragraph where the kerning is evidently applied I can't seem to get the value stored earlier, see the comment in the MWE. What am I doing wrong?
Cheers, Henri
---
\input luaotfload.sty
\directlua{ fonts.handlers.otf.addfeature { name = "ktest", type = "kern", data = { ["t"] = { ["e"] = 500 }, } } }
\font\1="lmroman10-regular.otf:+ktest" at 10pt \1
test% \directlua{ local fnt = font.current() local tfmdata = fonts.hashes.identifiers[fnt] local t = string.byte("t") local e = string.byte("e") local kern = fonts.handlers.otf.getkern(tfmdata,t,e) tex.sprint(kern) % 0 instead of 500. Why? }
\bye