Sometimes letters collide and it doesn’t really look that good. This often happens with the lowercase f, which usually reaches into the following letter. And if that letter happens to have an ascender, like an l, a b or an h, the letters collide. This is when type designers decide to build a ligature glyph.
Creating the ligature
Say, our lowercase f collides with the lowercase h:
Not nice. So let’s create a ligature glyph: Choose Glyph > Add Glyphs… and type
f_h, i.e. the glyph names of the individual parts of the ligature, connected by underscores. Glyphs pre-builds the ligature from
Now, we should turn these components into individual paths, thus killing the link to the original
h. We do this by choosing Decompose Components (Cmd-Shift-D) from the Layers menu. Now we have the outlines:
And we can edit them to our liking:
Okay, please don’t laugh. I’m not the best ligature builder on the planet, big deal. In any event, this concludes the creation of the glyph. But how do we get it to work?
Creating the ligature feature
Ligatures work through OpenType features. Glyphs can create them automatically for you if it finds properly named ligatures among your glyphs. Just open your Font Info (Cmd-I), go to the Features tab and hit the circled arrow button in the bottom left:
And, probably among a few other things, Glyphs will create a feature called
dlig. If you click on it, you can take a look at the feature code:
sub f h by f_h;
Which means: substitute the sequence
h by the ligature glyph
f_h. Exactly what we wanted. YAY!
liga vs. dlig
But wait a minute, why
dlig? That’s short for discretionary ligatures and means that the feature is ‘off by default’, i.e. the user is required to activate it first.
If we want it to be on by default, we ought to put it into a feature called
liga (standard ligatures). The best practice is to add a
.liga suffix to the glyph name. In our case, we can rename our ligature to
Now hit that circled arrow button again, and lo and behold, we have a
liga feature which contains this:
sub f h by f_h.liga;
For the record, some ligature glyphs are placed into
liga right away, so they do not need a suffix. Here’s the complete list:
fi fl f_f f_f_i f_f_l
You may have noticed that
fl do not adhere to the naming convention we mentioned above. That’s because they are historical exceptions. These two glyph names were there long before OpenType.
Well, actually, you can still call them
f_l if you want, but again, they’ll go into
dlig unless you add the
Wanna see if it actually works? Open an edit tab (Cmd-T), type a word that contains the ligature sequence, e.g. ‘hifhum’ in our case. (I don’t think it means anything, and if it does, I hope it’s nothing nasty.) Now click on the Features button in the bottom left corner of the window and choose
liga from the popup menu that appears:
And the ligature is applied:
If it doesn’t work for you, make sure the glyph name is correct and perhaps re-generate the feature code by clicking on that circled arrow button in Font Info > Features. Then try again.
Alright, that’s about it. Have fun building ligatures!
Update 2016-02-19: Updated screenshots for Glyphs 2.