I have two ligatures, let’s call them a_b_c.liga and y_e_s_a_b_c.liga
They were both working fine. However, I think perhaps since I made a_b_c.liga a nonspacing mark, y_e_s_a_b_c.liga no longer works. Instead, typing yesabc I get y + e + s + a_b_c.liga (only a_b_c.liga working).
How can I fix this? I am guessing maybe I need to do something in the liga feature or the ccmp feature?
Edit: I should mention, they both still work fine in Glyphs but this issue arises when I export the font and use in Pages.
Just to make sure: the longer ligature needs to be above in the feature code.
And for debugging you need to exclude the possible causes. So remove the non-spacing from the a_b_c glyph.
And it could be a cache problem again.
It is. That’s probably why it works fine in Glyphs.
It’s not. Each time I make a change, I export a new font with a new name. That eliminates that possibility does it not?
Did that - unchecked the ‘mark’ and nonspacing’ options on that glyph. And that makes the exported font work fine for those ligatures. That confirms my hypothesis. How do I now fix it?
I have no idea. So stepping in the dark as you are.
Can you try to put the substitution into ccmp?
Ah I see. I’m happy to run some tests! My free trial just expired so I’ve just bought the app
Which one? So far, the mark (a_b_c.liga) was put automatically in the ccmp feature, and that and also the non-mark (y + e + s + a_b_c.liga) were automatically put in the liga feature.
Maybe put both substitutions into liga?
Yes. The font cache is hooked to the file name of the otf or ttf, at least in more recent versions of macOS.
As I said above, they are all in the liga feature. Glyphs puts them there automatically.
Should I try putting both in the ccmp feature maybe?