Ligature exception


I’ve created a ligature L_o but I would like to create an exception when this ligature is followed by another o. In that situation I would like to use another ligature o_o to override previous one.

Something like this

sub L_o.liga o by L o_o;

I hope something like this is possible.

Just put the substitution for the o_o before the L_o.

sub o o by o_o;
sub L o by L_o;

Thank you for the fast answer but for some reason it doesn’t work for me.
Just to be clear. Instead of this

I would like to get this

Not sure if I am missing something

Never mind, I’ve created another liga L_o_o.
Thank you!

Didn’t the feature code I posted work? It should. How are you testing?

Changing the order of substitutions is not enough in this case because the chain of L_o extends further back. Two possible solutions I can think of:

  1. move the rules that take precedence into a separate lookup, and make sure the lookup comes first:
lookup precedence {
	sub o o by o_o;
} precedence;

sub L o by L_o;
  1. use an ignore statement:
ignore sub L' o' o;
sub L' o' by L_o;
sub o o by o_o;
1 Like

Nice! That’s it. Thank you so much!

I’ve been testing it in the Glyphs app. Maybe I made a mess with contextual alternatives. Any way
you helped me. Thank you.

1 Like

Where to put a statement like this? In calt, or liga feature? Also to we need anything before or after it? Like, I’m worried that it might ignore ‘L o’ in anything that appears underneath it in the list, in this example…?

I have two ligatures conflicting and want something like this but not sure where to put it - just at the bottom of the list of automatically generated code in the liga feature?

Also, when we do add code or rearrange the order in the liga feature to correct conflicts, we have to turn off the ‘generate feature automatically’. But then of course any ligatures we make from that point on will not be added. Is there any way to make additions of changes fixed but still allow new ones to be added automatically? Or we just have to write out all the customisation we made and then re-do it after making more ligatures on auto?


Consider adding a second (manual) liga feature in Font Info > Features, and drag it above the existing (automatic) liga in the left sidebar of the window.

They will be written out as one liga feature.