From ac4c2a64fc7883ad9c32f12d532fc8f0fc6f14a8 Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Mon, 20 May 2013 13:40:27 +0200 Subject: fix adapted letterspacing --- luaotfload-extralibs.lua | 6 +++++- luaotfload-letterspace.lua | 5 +++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/luaotfload-extralibs.lua b/luaotfload-extralibs.lua index ddf3694..84819f4 100644 --- a/luaotfload-extralibs.lua +++ b/luaotfload-extralibs.lua @@ -51,12 +51,16 @@ local kernfont = typesetters.kernfont nodes = nodes or { } --- should be present with luaotfload local bothways = function (t) return table.swapped (t, t) end -nodes.kerncodes = bothways({ +local kerncodes = bothways({ [0] = "fontkern", [1] = "userkern", [2] = "accentkern", }) +kerncodes.kerning = kerncodes.fontkern --- idiosyncrasy + +nodes.kerncodes = kerncodes + nodes.skipcodes = bothways({ [ 0] = "userskip", [ 1] = "lineskip", diff --git a/luaotfload-letterspace.lua b/luaotfload-letterspace.lua index 8566c06..8711646 100644 --- a/luaotfload-letterspace.lua +++ b/luaotfload-letterspace.lua @@ -90,7 +90,6 @@ kerncharacters = function (head) local kernfactors = kernfactors while start do - local attr = start[attribute] local id = start.id if id == glyph_code then @@ -163,7 +162,9 @@ kerncharacters = function (head) -- nothing elseif pid == kern_code then - if prev.subtype == kerning_code or prev[a_fontkern] then + if prev.subtype == kerning_code --- context does this by means of an + or prev.subtype == userkern_code --- attribute; we may need a test + then if keeptogether and prev.prev.id == glyph_code and keeptogether(prev.prev,start) then -- keep else -- cgit v1.2.3