Hi Bruce and Hans !

Thank you very much for your answers, that helped me a lot.

In fact, though I would love to switch to ConTeXt one day, I am still using 
LuaLaTeX — I am a slow 
learner and I know it will take me months to be able to achieve what I need for 
my job with 
ConTeXt and can do with LuaLaTeX and the Memoir class for the time being 
(despite sometimes 
being irritated by LaTeX limitations or oddities).

I need the EB Garamond variable font for future jobs, but this font, provided 
by Google Fonts, is 
such a mess : kerning problems, unusable OpenType features that have to be 
rewritten from 
scratch, shifts in glyphs table… For sure, the original font by Georg Duffner 
was much better, but I 
need the variable version. Lots of fixing necessary, but thanks to 
fonts.handlers.otf.addfeature I 
have almost succeeded to make it a usable Garamond.

Of course, it would be best to help Google improving this font, but I don’t 
have time yet.

The actual problem was with the italic ligatures "a_s", "e_s", "é_s", "i_s" and 
"u_s", that should occur 
only at the end of words and not everywhere. Instead of removing the unwanted 
ligatures, I chose 
another way as soon as I understood how to fully use “current” to describe not 
only a single glyph, 
but a string if necessary — for instance, current={ { "a", "e", "eacute", "i", 
"u"}, {"s"} }

Thanks for this wonderful tool !

Thomas Savary
1 le Grand-Plessis
F-85340 L’Île-d’Olonne
Tél. 06 22 82 61 34
https://compo85.fr/
Le samedi 25 décembre 2021, 00:04:51 CET Bruce Horrocks a écrit :
> > On 24 Dec 2021, at 18:34, Thomas Savary via ntg-context
> > <ntg-context@ntg.nl> wrote:
> > 
> > Hello, dear list !
> > 
> > In order to fix a few bugs in some OpenType features included in EB
> > Garamond font provided by Google Fonts, I am trying to remove some
> > ligatures (erroneous in some contexts) with
> > fonts.handlers.otf.addfeature.
> > 
> > I must be missing something, because I can't get it to work.
> > 
> > Here is a minimal —non working—example :-)
> > (The attempted removal (“f_i” → “fi” only before “o”) is of course
> > irrelevant. I chose it just for the sole purpose of this test, to
> > provide a simple example. What I am trying to achieve is more
> > complex, with other ligatures.)
> > 
> > fonts.handlers.otf.addfeature{
> > 
> >         name = "unfio",
> >         type = "chainsubstitution",
> >         lookups = {
> >         
> >             { type = "multiple",
> >             data = { [ "f_i" ] = { "f", "i" } }
> >             }
> >         
> >         }
> >         rules = {
> >         
> >             { after = { { "o" } },
> >             current = { { "f_i" } },
> >             lookups = { 1 } }
> >         
> >         }
> >     
> >     }
> > 
> > }
> > 
> > Could someone please explain to me what I did wrong ?
> 
> Firstly, you have an extra } in the example above.
> 
> Secondly, rules need to come inside a data section. Thus (untested):
> 
> fonts.handlers.otf.addfeature{
>     name = "unfio",
>     type = "chainsubstitution",
>     lookups = {
>         {
>             type = "substitution",
>             data = {
>                 [ "f_i" ] = { "f", "i" }
>             }
>         }
>     },
>     data = {
>         rules = {
>             {
>                 after = { { "o" } },
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to