How to Create Historical Ligatures in FontForge
Creating historical ligatures in FontForge allows modern OpenType
fonts to include archaic typographic connections, such as the long s
combinations (ſi, ſt) or ct ligatures, accessed via the
hlig feature tag. This guide explains how to design the
ligature glyph, configure an OpenType Ligature Substitution lookup, map
the source components to your target glyph, and export the font for use
in modern design applications.
1. Design and Name the Ligature Glyph
First, add the glyph slot for your historical ligature:
- Open your project in FontForge.
- Go to Encoding > Add Encoding Slots if you do not have an empty slot available, or locate an unused glyph slot.
- Double-click the slot to open the glyph drawing window and draw or paste your combined ligature shape (e.g., the historical "ct" or "ſt").
- Open the glyph properties by going to Element > Glyph Info.
- Assign a standard semantic name to the glyph, such as
c_torlongs_t. Click OK.
2. Create the Historical Ligatures Lookup
FontForge uses OpenType tables to tell text engines when to replace standard letter combinations with your custom glyph:
- Navigate to Element > Font Info from the main menu.
- Select the Lookups tab on the left sidebar.
- Ensure the GSUB (Glyph Substitution) sub-tab is active.
- Click Add Lookup.
- In the Type dropdown, select Ligature Substitution.
- In the Feature column, select or type
hlig(Historical Ligatures). - Keep the default lookup flags or adjust them as needed for right-to-left or mark-filtering needs, then click OK.
3. Add and Populate the Subtable
After establishing the lookup, you must define the specific character mapping:
- Select the newly created
hliglookup line in the list. - Click Add Subtable. Accept the default name and click OK.
- In the subtable editor, click the Add or
Populate button to map your glyphs:
- Ligature Glyph Name: Enter the name of your target
glyph (e.g.,
longs_t). - Source Glyph Names: Enter the sequence of glyphs
that will trigger the ligature, separated by spaces (e.g.,
longs tors t).
- Ligature Glyph Name: Enter the name of your target
glyph (e.g.,
- Repeat this step for each historical ligature you wish to include within the feature.
- Click OK on the subtable window, and then click OK in the Font Info window to save your changes.
4. Test the Ligature in the Metrics Window
Before exporting, confirm that the OpenType feature executes properly:
- Open the metrics view by going to Metrics > New Metrics Window.
- Type the source character sequence (e.g.,
st). - Click on the Features menu inside the Metrics window and enable Historical Ligatures (hlig).
- The individual glyphs should automatically snap into your custom ligature glyph.
5. Generate the Font
To apply the changes permanently, go to File >
Generate Fonts. Choose an OpenType format such as
OpenType (CFF) (.otf) or
TrueType (.ttf) to ensure full support for
the hlig OpenType layout table.