Ligatures in Stylistic Set

Hi all,

Currently I have an S.ss02; I want that glyph to have an SS ligature, so I made an S_S.ss02.liga.

It shows up in the Font Features box as sub S.ss02 S.ss02 by S_S.ss02.liga;, but when I test it out in InDesign, it doesn’t seem to work.

I’m wondering if it’s possible to have ligatures in stylistic sets? If it is, what am I doing wrong?


To generate feature code for alternate ligatures is a bit difficult as it is not clear when you might. Change the code to sub S_S by S_S.ss02.liga;.

1 Like


I didn’t have an S_S before, so it wasn’t working.

If you don’t have an S_S, you need to change the code to ‘sub S S by S_S.ss01;’ but you need to put it in an extra lookup. And you don’t need the ‘.liga’ suffix if you write the feature code yourself.

1 Like

I’m trying to do something similar:

I’d like to have, for example, a ligature containing e and r.ss02 in my script font. When I add a new glyph by typing e_r.ss02.liga, I do get the component generated ligature glyph with these two. But when I try to add that new ligature glyph to the Features (by just clicking the automatic update), then it is not added to the code.

So basically I’m trying to make a ligature happen from the normal set and a stylistic set. Am I missing something or is this possible? Thanks!

Code automation of e_r.ss02.liga requires:

  • e.ss02 in your font
  • r.ss02 in your font
  • liga after ss02 in File > Font Info > Features

If any of these are not met (you want e instead of e.ss02 IIUC), you have to code your feature manually.

Thanks for the pointers. I currently do not have e.ss02 in the font, but do have r.ss02. So perhaps that’s it. Yes, you’re correct, I’m attempting to have a ligature with e (not e.ss02) with r.ss02.

In a similar context;
I have the following Stylistic Alternates of ligatures:







Automatic Generation of SALT & SS01 results stylistic alternatives for glyphs that contain “yeh” only !
What would be the reason that all “alefMaksura” sets are exempt by Automatic coding ?

The beh and teh etc. have a ss01?

There is NO ss01 for be & teh;
Glyphs generates alternatives for ligatures as a substitution for dlig;
here is an example:

so beh_alefMaksura-ar.ss01 displaces beh_alefMaksura-ar NOT (beh-ar.init’ alefMaksura.fina’)

Anyhow I suppose I found the mistake …
Some of the missing salt ligatures have no corresponding dligas.
thanks anyway !!

The stylistic set feature looks for all glyphs that end with ‘.ss01’. Then it takes the name and cuts if the suffix and checks if the font contains a glyph with that name. So, in oder to get the substitutions for ‘noon_alefMaksura-ar.ss01’, you also need a glyph named ‘noon_alefMaksura-ar’. It will not try to build ligatures.

1 Like

Here is a weird riddle @GeorgSeifert… which does not fit in this logic !
For a ligature that I planned to assign as an alternative ligature (salt); while it should not necessarily exist as dlig nor liga
I changed the name totally: including the production name: uniFC32.ss01
the following SALT code works with no problem:
sub feh-ar.init alefMaksura-ar.fina by fehAlefmaksura-ar.ss01;
it works without having both glyphs:
feh_alefMaksura-ar or feh_alefMaksura-ar.liga in the font !!

The same case works with feh_yeh-ar which does not exist in Glyphs file;
Where a custom name was given for the the “alternative” of a non-existing ligature;
sub feh-ar.init yeh-ar.fina by fehYeh-ar.ss01;
and it works !
What do you think ?! @mekkablue

You can write whatever feature code you like. I was speaking about the automatic feature code generator.

1 Like

On a similar note, I have two stylistic sets, (ss01 for f,h,m,u,w,y, and ss02 for e.) I would like my ligatures to contain the correct style characters when the sets are used in combination, but I am getting conflicts with my ligatures when ss01 and ss02 are both selected.

Thanks in advance for any advice you may have.

You need to be logical and keep the features in the correct order. Either first the ligatures and the the stylistic sets or the other way around. In your case i suggest the ligatures first.

I have tried rearranging the order of features, with no luck. Basically I have the auto generated code for the two stylistic sets, but what I’d really like to do is have a third set of ligatures for when both sets are selected. Is this possible?

You need to write some feature code yourself.

You need to understand how lookups are applied to know what is in the string when your code is applied.

I have a slightly different circumstance. I’m working on a display font. I have a regular f (no stylistic set) and regular b (same) and a f_b.liga and a f_b.dlig (the latter two are different from one another). I would also like to have a third possible f_b option available to end-users.

Could I make it f_b.cv01 or would that not work? Or f_b.liga.001?

Basically, is there a way to have a third option for the f_b ligature, and what’s the best way to handle it?

I think f_b.cv01 is a good idea, but make sure cv01 comes after liga in File > Font info > Features. It will be selectable in InDesign and Illustrator.

Thank you! :slight_smile: