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
___________________________________________________________________________________