[NTG-context] lmtx: new text & math font stuff

Hans Hagen j.hagen at xs4all.nl
Wed Dec 30 16:53:05 CET 2020


Hi,

As you know, lmtx is also a place for experiments. Currently I'm playing 
a bit with fonts. Recently (as mentioned a whil eback) I added glyph 
scaling which permits interesting trickery, although one needs to be 
aware of how it combines with other features. Here's an example:

     \def\UnKernedTeX
        {T%
        {\glyph xoffset -.2ex yoffset -.4ex `E}%
        {\glyph xoffset -.4ex options "C0 `X}}

     \dorecurse{100}{ x \UnKernedTeX}

There are alse \glyphxscale cum suis but again, beware that it might 
influence things when not used grouped.

At some point this will be an option in scaled fonts (think of \tfc and 
such). It saves instances. You can get an idea with:

    \enableexperiments[text.fonts.compact]

The 'text' in this command suggests that we can also do that with math 
and indeed we have

    \enableexperiments[math.fonts.compact]

These directives have to come *before* loading fonts in order to be 
effective. Especially the math can bring down the number of font 
instances: text, script and scriptscript all use the same instance, 
which is good news. The bad news is that it's up to users to check how 
this plays out. There are some differences due to the fact that scaling 
happens elsewhere and otherwise which results in tiny differences (4/5th 
decimal).

As said, these are experiments so ity might progress. I post 
intermediate versions because that way I can control it better. There is 
another variant in the planning.

Yet another expriment (undecided if that will stay, i played with if 
before and then rejected it):

    \enabledirectives[fonts.injections.method=advance]

If it stays I probbably have to patch some other code to better suit it.

Overall, although in math it add to the overhead, due to the fact that 
math is hardly demanding (makes only a fraction of the rendering) the 
memory footprint can be quite a bit lower and performance a bit better 
(not that much). The measures used in rendering are kind of floating 
(recalculated often) when these mechanisms are enabled but my impression 
is that todays compilers make that hardly noticeable.

As usual, it opens up possibilities, but of course at the price of 
testing.

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