[NTG-context] Adjust kerning with superscript

Hans Hagen j.hagen at xs4all.nl
Mon Apr 15 11:48:14 CEST 2019


On 4/15/2019 11:23 AM, Henri Menke wrote:
> 
> 
> On 15/04/19 9:06 PM, Hans Hagen wrote:
>> On 4/15/2019 9:50 AM, Henri Menke wrote:
>>> Dear list,
>>>
>>> I am unhappy with how some fonts kern particular subscripts.  For example in
>>> the default Latin Modern, subscripts to the Greek capital gamma could use some
>>> negative kerning.  Because I can't (and don't want to) fix the font, I thought
>>> that I could patch the font on-the-fly in ConTeXt.
>>>
>>> The usual approach with fonts.handlers.otf.addfeature works well in math mode,
>>> but does not extend into subscripts (MWE below).  Is there a method to adjust
>>> subscript kernings?  Could this be done using mathkerns?  Latin Modern doesn't
>>> have any but maybe they can be added on the fly.
>>>
>>> Cheers, Henri
>>>
>>> ---
>>>
>>> \startluacode
>>> fonts.handlers.otf.addfeature {
>>>       type = "kern",
>>>       name = "kern",
>>>       data = { [0x0393] = { [0x0030] = -200 } }
>>> }
>>> \stopluacode
>>>
>>> \setupbodyfont[modern]
>>>
>>> \starttext
>>> $\Gamma0$ % works fine :)
>>>
>>> $\Gamma_0$ % doesn't work :(
>>> \stoptext
>> see pagella-math.lfg
> 
> Thanks for the hint.  Is there a possibility to do this without goodies?  They
> are not available in generic.

i suppose that you can use one of the hooks that adapt fonts beforehand: 
just add features after the font gets loaded but before it gets passed 
to tex (it's character.mathkerns)

(at some point i'll probably add such stacked kern definitions in 
context but it depends on how the gyre fonts evolve)

Hans

-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
        tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------


More information about the ntg-context mailing list