OT Sub Prioritisation (Need Help)

I'm working on a monospaced, and playing around with ligatures for i_i, i_l, l_i, and l_l.

I'm trying to set it up so that the sequence i l l becomes i l_l, not i_l l.

The ordering of my substitution rules for i_l and l_l doesn't make a difference and nothing else I can think of or find online helps either.

Thanks in advance.
Tagged:

Welcome!

It looks like you're new here. Sign in or register to get started.

Comments

  • set the first line of your feature to:
    sub i l' l' by l_l;
    The order of the substution rules does matter, and you need to define the longest substitutions first.
  • Posts: 3,355
    Try putting the l_l substitution in a separate lookup before the i_l lookup.
  • Thanks @Paul van der Laan, that did it.

    Thanks, too, @John Hudson.
  • Posts: 979
    and you need to define the longest substitutions first.
    Actually, this is not strictly true for features in Adobe syntax which are being compiled by AFDKO. From http://www.adobe.com/devnet/opentype/afdko/topic_feature_file_syntax.html#5.d :

    “A contiguous set of ligature rules does not need to be ordered in any particular way by the font editor; the implementation software must do the appropriate sorting.”

    The compiler is supposed to be responsible for ordering the longest substitutions first.
  • Posts: 3,355
    In this case, though, the substitutions are of equal length:

     i l -> i_l
     l l -> l_l

    Paul has suggested a way to handle this by making the substitution for the sequence <i l l> to /i l_l/ contextual. That's certainly one solution.

Welcome!

It looks like you're new here. Sign in or register to get started.

Welcome!

It looks like you're new here. Sign in or register to get started.