[luatex] How to insert mathkerns?

Henri Menke henrimenke at gmail.com
Sat Sep 15 11:44:08 CEST 2018


On 09/15/2018 08:53 PM, Hans Hagen wrote:
> On 9/15/2018 7:50 AM, Henri Menke wrote:
>> Dear list,
>>
>> I'm trying to add mathkerns to a font on the fly.  I adapted the code
>> from ConTeXt in good-mth.lua but nothing happens.  How can I make this
>> work?  MWE below.
>> N.B. I'm using 1.09.0 svn6938 with Ulrike's fontloader 2018-09-01
>>
>> Cheers, Henri
>>
>> ---
>>
>> \input luaotfload.sty
>> \directlua{
>> function kern_right_fence(tfmdata)
>>      if tfmdata.mathparameters then
>>          local characters = tfmdata.characters
>>          if characters[0x1D44E] then % we have at least an italic a
>>              print("PATCHING FONT " .. tfmdata.psname)
>>              characters[0x1D453].mathkerns = {
>>                  force = true,
>>                  bottomright = { { kern = 1000 } },
>>              }
>>          end
>>      end
>> end
>> %
>> luatexbase.add_to_callback("luaotfload.patch_font",
>>                             kern_right_fence,
>>                             "kern right fence")
>> }
>>
>> \font\lmmath="Latin Modern Math:script=math;" at 10pt
>> \textfont0=\lmmath
>>
>> \Umathcodenum`e="1D452
>> \Umathcodenum`f="1D453
>> \Umathcodenum`g="1D454
>>
>> $efg$
> 
> I don't know how the plugs in otfload work but it's more something like
> 
> characters[0x1D453].math =
>   { kerns = { bottomright = { { kern = 1000 } } }

That doesn't do anything either :( but thanks for replying

> 
> where of course you need to make sure that when there is already a math
> table you add instead of replace; eventually that becomes something scaled
> 
> characters[0x1D453].mathkern.bottom_right = ...
> 
> don't confuse a higher level context interface with low level font
> properties

I won't because in ConTeXt I can just use goodies, but they are not
available in Plain TeX and LaTeX.

> 
> 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 luatex mailing list