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
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
participants (1)
-
Henri Menke