I'm working on a typeface that features a few different digraphs, and I'm not sure how I should name them.
So here is the problem. I have a ligature for IJ, but I also have an alternate J. I_J.alt would be more of a contextual alternate than a ligature I reckon. So what's the best way to implement this? I want I J to change into the IJ digraph if both ss02 and discretionary ligatures are turned on. If ss02 is not turned on, IJ should be a ligature.
But then things get more complicated because I have iacute_jacute contextual alternates and ligatures, as well as an ordinary iacute jacute situation.
Now, the iacute jacute situation is defined in the locl feature:
language NLD;
sub iacute j' by jacute;
sub Iacute J' by Jacute;
But how do I set up calt, dlig and ss02? Also note that initially I was working with .loclNLD, but I ran into problems, hence I tried to find out if there was a more elegant solution using dlig and calt. I basically followed the Glyphs tutorial: https://www.glyphsapp.com/tutorials/localize-your-font-accented-dutch-ij
Comments
My favorite solution is to replace /i by /i.loclNLD and /iacute by /iacute.loclNLD in Dutch and then having standard ligatures for /iacute_j etc. This also automatically breaks the /f_i ligature.
Do you have advice on what to do with the capital digraphs though?
Localised forms don't work in PagePlus, which is what I use for publishing, so localised forms are not a solution that would work for me, quite apart from making a lot more work for me.
This is simplified, of course. You’ll have to expand for both cases (and for your own glyph names).
The order is absolutely critical. If {dlig} is on, you get the ligature. If {ss02} is then also turned on, that ligature turns into the digraph. If {dlig} is turned off, the whole thing goes away because the ligature is no longer present for a target. So, {ss02} only has effect if {dlig} is also on. That’s how I interpret what you said you wanted.
If you’ve already taken care of the NLD-dependent contextual Jacute transformation in {locl}, then you just need to target that in your {dlig}, and then target the ligature for substitution to digraph in {ss02}, as shown.
If you have multiple discretionary ligatures, and you want the I_J.dlig to transform only in a Dutch language context, you can register that rule to language NLD only. You probably only need to do this in the {dlig}, since the {ss02} is dependent upon the {dlig}.
Christian’s solution comes out of a previous conversation: http://typedrawers.com/discussion/1217/stressed-ij-digraph-best-practice
Since you want your ligatures to be discretionary, I’m not sure that i.NLD approach gains you much advantage. Except the default ligature intervention.
But the need for preventing fi ligatures in a Dutch “fij” context seems to be debatable among Dutch typographers. Since any interception via {locl} is not turn-offable, I prefer to let the individual user sort that out by either turning off {liga} or inserting a ZWNJ (for now, anyway).
In lowercase the use of a connected form for /ij is rarely preferable unless one tries to mimmick handwriting. In uppercase the use of a connected form for /IJ is a nice typographical touch, but nothing more than that.
Both connected forms of ij/IJ are better off in the <dlig> feature than in standard ligatures.
I have no idea why the dot accent is placed above the l for the Catalan ldot. Good that you saw this.
You kept referring to “ligatures,” so I used example names accordingly.