How to add less common ligatures

I am new to FontCreator and am working on a handwritten font. I have a few different ligatures that aren’t as common that I plan to use like ‘Ti’ with the ‘i’ tucked under the ‘T’, ‘LL’ with the two stacked, ‘Qu’ with the tail of the ‘Q’ tucked perfectly under the ‘u’.

Looking through different posts I discovered the OpenType Designer and the Generate and Update OpenType Features section. With that I selected all the ligature options since I wasn’t sure which would be needed. I added the glyphs into my glyph library, set the OT Class as ‘Ligature’ and that is as far as I’m able to go. So I have the glyphs listed in my library, however I can’t get them to function as ligatures.

Is there a special way to get these less common or completely new ligatures to function like a regular ligature that I’m missing? Can new ligatures be created or is it just a set list? If this can’t be done as a ligature, is there a different route that I can use to get a similar outcome?

Yes, you can create ligatures from any sequence of glyphs; they are not limited to a predefined list.

Setting the OT Class to Ligature does not create the substitution by itself. FontCreator also needs to know which glyphs should be replaced.

For your examples, name the ligature glyphs like this:

  • T_i.liga
  • L_L.liga
  • Q_u.liga

Then open the OpenType Designer, choose Generate and Update OpenType Features, select Standard Ligatures, and generate the feature.

This creates liga substitutions for:

  • T + i
  • L + L
  • Q + u

The ligature glyphs do not need Unicode code points.

The liga feature is appropriate here if you want these ligatures to be used automatically. Use dlig instead only when they should be optional and enabled manually by the user.

You can test the result in the OpenType Designer preview with the Standard Ligatures feature enabled.

2 Likes

I knew I had to be missing something and I think that I didn’t think the .liga was needed since fi and fl simply were listed as that.

Thanks

That is understandable. The familiar ff, fi, fl, ffi, and ffl ligatures are special cases that FontCreator detects automatically, so they do not need a .liga suffix — FontCreator includes them when it generates the Standard Ligatures feature.

There is a historical reason for this. Unicode assigned code points to these ligatures:

  • ff — U+FB00
  • fi — U+FB01
  • fl — U+FB02
  • ffi — U+FB03
  • ffl — U+FB04

These are compatibility characters, encoded only so that text from older, non-Unicode character sets can round-trip; Unicode explicitly discourages their use in ordinary text. Modern text should contain the individual characters — f followed by i — and the font’s OpenType liga feature substitutes the ligature glyph during display. Ligation is font behaviour, not a matter of which character you type.

The code points remain because Unicode’s stability policy means an assigned character is never removed.

Your Ti, LL, and Qu ligatures therefore need no Unicode code points at all — leave them unmapped. Naming them T_i.liga, L_L.liga, and Q_u.liga is enough: the underscore-separated part tells FontCreator which glyph sequence each one replaces, and the .liga suffix tells it to add them to the Standard Ligatures feature.

1 Like