Alternative Ligatures

Hi All,

First post on here and designing my first typeface so apologies if this is something obvious that I’ve missed.

But basically I’ve jumped in at the deep end with a script typeface, which obviously requires a ‘joining’ section on each letter to connect all of the letters to each other.

I have two classes of joins, high (only includes 3 glyphs) and low (standard

Does the substitution occur before or after the ligature features? Or is there another substitution interfering? The order of the features is important. Perhaps t_i is already caught by something else.

You can send the .glyphs file to support at this domain if you would like us to have a look.

Hi Mekkablue, thanks for the reply.

After checking with a Th ligature I have (without the alternative), the ligature occurs, then is overwritten by the punctuation following it (on this occasion, the ligature reverts to a Capital T followed by a lower case alternative h without the join).

So if that’s the case then surely “sub t.alt’ i.alt’ @Punctuation by t_i.alt3” should work, as it would revert to these two glyphs?

Apologies for the double post but you gave me a brainwave!

Putting “sub t.alt i.alt by t_i.alt3” in the ligatures feature section works!

It seems it applies the initial ligature, which is then overwritten by the contextual alternative, which then changes the glyphs and causes the ligature function to run itself again and changes them!

Thanks, your comments made me work out the order that it works better, rather than trying to carpet bomb as many options as possible!

As I said this is my first foray into type design so I’m learning it all as I go along!

I would tread the ligatures as regular glyphs. Just put them at the beginning of the substitutions.
something like:
sub @HIGH t’ i’ by t_i.alt;

and your word ending code not good. it will not work at the end of a line. What you would need to do is this:
ignore sub a’ @AllLetters;
sub a by a.alt

Hi Georg,

Thanks for the suggestions, unfortunately neither of them work.

The top suggestion just removes the ligature at the end of the word, making it into a joining ligature.

And the bottom suggestion just makes every letter into an ‘end’ (non joining) letter even when it is followed by another letter (despite me making a new class with all of the lowercase letters) meaning that the ignore function isn’t working for whatever reason. I’ve tried this in both orders, but neither worked.

Is there a term to indicate a line break which I could then add to the @Punctuation class? Like you said, as I had it before it worked for everything except for when you pressed enter without any punctuation or a space…

Thanks again.

No, and it wouldn’t make much sense, because all text engines I know of only replace inside a line.

Can you send the .glyphs file to support at this domain? We can have a closer look at your OT features then.

Hi mekkablue, is that [removed be admin (it was correct)]?

If you could help that would be great, as this is the first typeface I’ve ever made and have been following the tutorials on this site but may well have done some things wrong!

Could it help to put some of those replacements in separate lookups so as to make sure they get executed one after the other, rather than in competition with each other?

In LIGA (to be generated automatically):

sub t i by t_i.liga;


lookup link {
sub @HIGH t_i.liga by t_i.liga.alt;

} link;

lookup stopper {
sub t_i.liga.alt’ @PUNCTUATION by t_i.liga.alt3;

} stopper;

Okay, so I tried the

‘ignore sub a’ @Lowercase;
sub a’ by a.alt;’

and this seems to work now. No idea what I did differently but it is working now!

Thanks for your help everyone.

Also, are contextual alternates turned on by default in the adobe programs, or is this something that you can set in the font when you export it?

There is no way to influence the feature settings in Indesign from within the font.

Contextual alternates are on be default in my Indesign.