diff options
author | Context Git Mirror Bot <phg42.2a@gmail.com> | 2016-03-12 17:15:10 +0100 |
---|---|---|
committer | Context Git Mirror Bot <phg42.2a@gmail.com> | 2016-03-12 17:15:10 +0100 |
commit | 4b6314243d4bc44fa3c94f569264fdffd5405e90 (patch) | |
tree | a50e4f3309d40b2709618a00311934c55258cfbc /tex/context/base/mkiv/typo-krn.lua | |
parent | 4a28e5cee346738f2f9be479090c3657a87b7206 (diff) | |
download | context-4b6314243d4bc44fa3c94f569264fdffd5405e90.tar.gz |
2016-03-12 16:45:00
Diffstat (limited to 'tex/context/base/mkiv/typo-krn.lua')
-rw-r--r-- | tex/context/base/mkiv/typo-krn.lua | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/tex/context/base/mkiv/typo-krn.lua b/tex/context/base/mkiv/typo-krn.lua index 9bf4a5a3b..ddb7abd86 100644 --- a/tex/context/base/mkiv/typo-krn.lua +++ b/tex/context/base/mkiv/typo-krn.lua @@ -103,6 +103,10 @@ local kerns = typesetters.kerns local report = logs.reporter("kerns") local trace_ligatures = false trackers.register("typesetters.kerns.ligatures",function(v) trace_ligatures = v end) +-- use_advance is just an experiment: it makes copying glyphs (instead of new_glyph) dangerous + +local use_advance = false directives.register("typesetters.kerns.advance", function(v) use_advance = v end) + kerns.mapping = kerns.mapping or { } kerns.factors = kerns.factors or { } local a_kerns = attributes.private("kern") @@ -452,7 +456,11 @@ function kerns.handler(head) local data = chardata[font][prevchar] local kerns = data and data.kerns local kern = (kerns and kerns[char] or 0) + quaddata[font]*krn - insert_node_before(head,start,kern_injector(fillup,kern)) + if not fillup and use_advance then + setfield(prev,"xadvance",getfield(prev,"xadvance") + kern) + else + insert_node_before(head,start,kern_injector(fillup,kern)) + end done = true end else |