Ligature Classification in GDEF


I hope you can help. I have two Glyphs files, one upright and one Italic. They both have f_f, fi, fl, f_f_i and f_f_l ligatures. When I generate OTFs from them, I find the upright font GDEF only lists the fi and fl as class 2 for ligatures, while the Italic font GDEF doesn’t list any of them at all. All the ligatures have the correct naming and unicodes and have caret anchors. They also have the correct Script, Category and Subcategory information in the ‘Info for Selection’ dlialog. The caret anchors get listed in the upright and Italic GDEF tables for all five ligatures.

So I’m puzzled as to why the GDEF would be different between the upright and Italic fonts and why neither GDEF list all the ligatures as class 2.

Can you help?



Font Info > Features updated?
You may also try emptying out the Temp folder before regenerating the fonts.

As l0ng as you don’t use the ignoreLigatures lookup flag, the ligature setting in the gdef table has no influence. I have a look about it. If you could send me your font for testing?

I cleared out the Temp folder, but that had no effect. The feature file is correct as far as I can see. I’ll send the fonts to Georg.



The ligatures need top_1, top_2, bottom_1 and bottom_2 anchors. The Italic has only top and bottom.

Ah, I see. That works now. Thank you!

Anchor names make a difference in how the GDEF is compiled? Isn’t that a bit odd?

For most ligatures it is only necessary to mark a glyph as ligature to make the liga2mark feature to work. Has someone an example that shows the use of ignoreLigatures? Because that is the only other use case for the GDEF ligature class (as fare as I know).

I’ve used ignoreLigatures:

lookupflag IgnoreBaseGlyphs IgnoreLigatures UseMarkFilteringSet @burmeseAboveMarks1;