Fontlab 7 aalt-warning

I'm getting this warning, when compiling in Fontlab:
[WARNING] <Font> feature 'ss01', referenced in aalt feature, either is not defined or had no rules which could be included in the aalt feature.

----

feature aalt {
# Access All Alternates

#> feature
feature lnum;
feature ss01;
feature ss02;
feature locl;
feature salt;
feature hist;
feature case;
#< feature
} aalt;

---

feature ss01 { # Stylistic Set 01
sub D E by D_E;
} ss01;

---

What am I doing wrong? Or should this warning just be ignored?


Tagged:

Comments

  • My guess would be that you need to swap them around: put the ss01 first, then the aalt knows which lookups you mean.
  • Thanks Simon! Tried to swap around, still getting the same warning.
  • Adam Jagosz
    Adam Jagosz Posts: 689
    edited March 2020
    I think aalt must contain sub @x from @y rules, not sub by.
  • Kent Lew
    Kent Lew Posts: 944
    {aalt} cannot take ligature substitutions. So the warning is appropriate, but can just be ignored. Or remove ss01 from the definition of {aalt}.
  • Thank you Adam and Kent!

    Ligatures are then not accepted, as I do not get a warning from Stylistic Set 02:

    feature ss02 { # Stylistic Set 01

    sub J by J.alt;
    sub IJ by IJ.alt;
    sub IJacute by IJacute.alt;

    } ss02;



  • John Hudson
    John Hudson Posts: 3,229
    Is there any reason at all to include the aalt feature in fonts? Adobe originally defined it because they thought it would be necessary for InDesign's glyph palette to be able to find and display variants of a glyph, but of course it wasn't necessary: the glyph palette is sensibly programmed to find variants through any OTL feature.

    In 20+ years, I have never included an aalt feature in any fonts, and have not encountered anywhere it was needed.
  • Thomas Phinney
    Thomas Phinney Posts: 2,899
    Jani: That's right, 'aalt' can’t handle ligature-style substitutions. Its purpose is to collate all the possible one-to-one substitutions for a given glyph.
  • John Hudson
    John Hudson Posts: 3,229
    Remind me, Thomas, does aalt in AFKDO accept type 3 lookups?
  • Kent Lew
    Kent Lew Posts: 944
    edited March 2020
    Yes, {aalt} accepts type 3 one-from-many, since they resolve to one-to-one mapping. In fact, the results of parsing {aalt} really end up as a type 3 lookup (conceptually, anyway, if not as code) since it assembles all alternates for a given glyph.
  • Kent Lew
    Kent Lew Posts: 944
    edited March 2020
    John — When I was doing production on the updated Sophia CC a few years ago for Matthew, I encountered a reason to include {aalt} in order to get InDesign to present some alternates in the Glyph palette.

    Adobe was unable to trace contextual rules to their resulting one-to-one substitutions, and so wasn’t presenting a few alternates that we wanted to be shown as such in the Glyph palette (for those who still prefer to get at them that way).

    And just referencing the features in {aalt} didn’t pull them out either; I had to explicitly write out the substitutions. (Which I did as Type 3 subs, in fact).
  • John Hudson
    John Hudson Posts: 3,229
    That makes sense, Kent. In fact, one could argue that the aalt feature could be reserved for Access All Alternates Not Otherwise Accessed.