Ligatures and diacritics

A user brought to my attention that when using diacritics on a font with ligatures (in InDesign) the default ligatures aren’t activated (or are deactivated once diacritics are added), and the individual glyphs appear instead with the marks. He can then manually add the ligatures back in.

Is there a way to have the default ligatures stick around when typing with diacritical marks, something I can do on my end? Or is this an InDesign issue?

Can you post a sample string that shows this. And what ligatures should occur?

(pictured: right - two ל glyphs with diacritics, left - double ל ligature with manually placed diacritics)
This is the image he sent me, actually not 100% sure how this was done, as when I try to add diacritics to a ligature it reverts back to the individual letters.

The ligature code needs to be prefixes with a statement that ignores the marks:

lookupflag IgnoreMarks;

It should do that automatically. In which app are you testing and which version of Glyphs are you running?

Here’s another consideration that may be relevant. If there’s a Unicode precomposed character + diacritic combo for one component of a ligature, most apps will substitute the precomposed character for the base + diacritic sequence before your OT code is ever executed, with the result that the ligature will never be made. For example, in Latin script a sequence f + i + U+0304 (combining macron) will give you this:
where the second character is actually precomposed U+012B instead of i + U+0304, and so the fi ligature is not formed.

To get around the problem, a user can place U+034F COMBINING GRAPHEME JOINER (a zero-width invisible mark) between the base character and the mark, but that’s asking a lot of users.

Alternatively, you can make ligatures for all possible combinations, but depending on the script, that may mean a whole lot of ligatures. Or, you can use Contextual Alternates instead of ligatures–the programming is more complex, but it may be preferable to making the enormous font that will result if you need a whole lot of ligatures.

The order of features is also relevant. If the mark and mkmk features are applied after the liga feature, the liga can combine the base glyphs by ignoring the marks and then the marks are positioned on the ligature glyph using ligature anchors.