How do I set up various IJ digraphs in my typeface?

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

  • To avoid the need for a Dutch locl, I just added ijacute and fij as Standard Ligatures (liga). I forgot about capitals, but I guess I should add those too. 
  • To avoid the need for a Dutch locl, I just added ijacute and fij as Standard Ligatures (liga). I forgot about capitals, but I guess I should add those too. 
    So you're forcing an accented j even in non-Dutch languages? That's going to look really weird. One of countless examples would be the Hungarian word íj «bow» (as in archery).

    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.
  • What do you mean by breaking the f_i ligature? Is this something you want?

    Do you have advice on what to do with the capital digraphs though?
  • In Dutch, a word like fijn (nice) should not use an fi ligature. It is the ij that are the ligature. My fij Standard ligature fixes that problem. 

    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. 
  • Kent Lew
    Kent Lew Posts: 934
    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.
    I believe what you want is something like this:
    feature dlig {<br>    sub I J by I_J.dlig;<br>    sub Iacute Jacute by Iacute_J.dlig<br>} dlig;<br><br>feature ss02 {<br>    sub I_J.dlig by IJ.digraph;<br>    sub Iacute_J.dlig by Iacute_J.digraph;<br>} ss02;<br>
    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).

  • Paul van der Laan
    Paul van der Laan Posts: 242
    edited February 2017
    In Dutch, a word like fijn (nice) should not use an fi ligature. It is the ij that are the ligature. My fij Standard ligature fixes that problem. 
    The Dutch /ij is not a ligature, it is a digraph which means that it is just a combination of two seperate letters.

    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.
  • Kent Lew
    Kent Lew Posts: 934
    [off-topic] P.S. Martin, why does your Catalan ldot have a dot accent *above*?
  • Kent, thanks a lot for the explanation. That will work wonderfully for me. Also, should I rename IJ to I_J or does that not matter?

    I have no idea why the dot accent is placed above the l for the Catalan ldot. Good that you saw this.
  • Kent Lew
    Kent Lew Posts: 934
    If the glyphs are meant to represent the Dutch digraph and will be encoded as U+0132 and U+0133, then you should probably name them as IJ and ij. Any variants of these, then, would be named IJ.suffix and ij.suffix.

    You kept referring to “ligatures,” so I used example names accordingly.
  • Paul van der Laan said:
    The Dutch /ij is not a ligature, it is a digraph which means that it is just a
    combination of two separate letters.
    You're right of course, but that's what the Unicode code charts call them, hence my habit of calling them ligatures. I never join them, but I do often kern the ij where the font design permits it. I often kern ligatures like fi, ff, too.