跳至主要内容
☀️ Summer Founder's Deal:FontCreator 永久许可证 $49(原价 $199)。限时优惠 — 7 月 14 日截止。 立即获取 →

FontCreator Tutorials

Enrich Your Fonts with OpenType Features

written by Erwin Denissen, published June 26, 2026

You'll need: FontCreator (Windows and macOS), a font with its base characters drawn, and the extra glyphs (ligatures, alternates, swashes) you want to wire up.

A font can be so much more than just a bunch of characters. To enrich your fonts with OpenType features you add gems like swashes, ligatures, and stylistic sets — and in this font editor most of them are generated for you, automatically, from the names you give your glyphs. This tutorial is not about using fonts; it's about how font designers add these layout features, which can add a real boost to your font's appeal.

Nowadays all professional fonts come with OpenType layout features. We'll cover the most common and popular substitution features:

  • Standard Ligatures
  • Stylistic Sets
  • Slashed Zero
  • Alternate Figures
  • Swashes
  • Contextual Alternates

These features all substitute one or more characters with a replacement. We won't discuss positioning features (kerning and mark attachment) here — those are covered in the spacing, kerning, and anchors tutorials.

With FontCreator, every feature on the list except contextual alternates can be added automatically. The one thing you have to get right is glyph naming: add the extra glyphs and name them according to FontCreator's glyph name convention. The feature generator reads those names and their suffixes to decide which lookups to build.

Generate features from glyph names

The whole workflow hinges on one idea: a variant glyph carries the name of the original character plus a feature suffix. A stylistic-set-4 variant of g is named g.ss04; a swash A is A.swsh; an old-style zero is zero.onum. FontCreator scans for these suffixes and wires up the right lookups in the right features.

To run the generator:

  1. Open the OpenType Designer (from the font's toolbar or menu).
  2. Click the first icon in the upper-left corner (Generate features) to open the Generate and Update OpenType Features window.
  3. Tick the features you want to generate and/or update, and click OK.
FontCreator OpenType Designer feature-generation dialog listing OpenType layout features to generate or update.

The Generate and Update OpenType Features window with feature checkboxes

Note: Generated lookups and classes are named with a script prefix — for example latn_liga for standard Latin ligatures. Greek and Cyrillic characters are grouped with Latin (latn). Unless noted otherwise, automatic generation is limited to Latin, Greek, and Cyrillic scripts.

Watch out: When you update features, the existing generated lookups and classes are deleted and rebuilt. If you write custom features by hand, keep them separate from the generated ones so an update doesn't wipe your work.

Below are the glyph names required per feature.

Standard Ligatures (liga)

Use this feature for letter combinations that look better as a single custom-designed glyph, such as fi, fl, and ffl. They improve the appearance of letters that would otherwise overlap. Applications process liga by default, but the user can switch it off.

A custom fi ligature compared with the separate letters f and i in FontCreator.

A standard fi ligature shown next to the separate f and i

FontCreator instructions: the common ligatures (ff, fi, fl, ffi, ffl) are detected automatically, so you don't have to do anything for those. To add an extra ligature, use the ligature name convention with a .liga suffix. For a three-character ligature of "f f b", name the glyph f_f_b.liga.

Note: If a ligature should be formed all the time and not be switchable by the user, define it in the Required Ligatures (rlig) feature instead of liga.

Stylistic Sets (ss01–ss20)

There are 20 stylistic-set features. Each holds a set of stylistic variant glyphs for part of the character set — for example closed alternatives for open letters.

Default letterforms next to stylistic-set variants in a FontCreator font.

A row of letters shown in their default and stylistic-set variants

FontCreator instructions: give the variant the name of the original character plus the matching set suffix. A variant of g for stylistic set 4 is named g.ss04. FontCreator also supports feature parameters for stylistic sets, so you can give each set a friendly name that shows up in applications.

Tip: Stylistic Alternates (salt) links to the same lookup as stylistic set 01, so a .ss01 set automatically feeds salt too. Add .salt glyphs only if you want an additional, separate alternates lookup.

Slashed Zero (zero)

This one is easy — it needs a single extra glyph. It lets the user replace the default zero with an alternative form, typically with a diagonal slash through the counter so 0 (zero) is easy to tell apart from O (capital O).

A slashed-zero variant next to the default zero in FontCreator.

A slashed zero beside the default zero

FontCreator instructions: name the slashed zero zero.zero.

Alternate Figures (onum, tnum, lnum, pnum)

We highly recommend adding several variants of the digits, because some users will only choose fonts that come with alternate figures. Tabular figures matter most for financial and research documents; old-style figures suit brochures and advertisements because they're designed to read more like lowercase letters.

Lining versus old-style and tabular versus proportional digits in FontCreator.

Lining, old-style, tabular and proportional digits compared

FontCreator instructions: add the matching suffix to each digit variant — .onum for old-style figures (e.g. zero.onum), .tnum for tabular figures (e.g. zero.tnum), .lnum for lining figures, and .pnum for proportional figures. You only need a feature when its style isn't the default; if your default digits are already lining and tabular, there's nothing to add for lnum/tnum. Suffixes can be combined when styles overlap — for example zero.onum.tnum for old-style tabular figures.

Tip: Need fractions too? FontCreator can generate the frac feature from your digits plus slash/fraction (and optional .numr/.dnom variants). See the Fractions tutorial.

Swashes (swsh)

This feature lets the user replace default characters with decorative swash glyphs. You can provide more than one swash alternate for a given character.

A swash capital letter alternate compared with the plain capital in FontCreator.

A capital letter shown with one or more swash alternates

FontCreator instructions: add the .swsh suffix to each decorative glyph. If you have more than one swash for the same character, add a further descriptive suffix after .swsh (the same approach used for character variants).

Contextual Alternates (calt)

The last feature is more complex because it adds smart substitutions — replacements that depend on which characters come before and/or after the character being considered. For example, you might use an alternative l when it is preceded by another l. Unlike the features above, calt needs two manual steps; it isn't generated from a suffix.

  1. Add a substitution lookup (name it mirror) with one item: l -> l.mirrored.

> [Screenshot: A single substitution lookup named "mirror" mapping l to l.mirrored] > Alt: A single glyph-substitution lookup in the FontCreator OpenType Designer mapping l to l.mirrored.

  1. Add a chained context substitution lookup to the Contextual Alternates feature with this item: Backtrack l, Input l, and attach the substitution table mirror to it.

> [Screenshot: A chained context substitution with backtrack l, input l, referencing the mirror lookup] > Alt: A chained context substitution lookup in FontCreator referencing the mirror substitution table.

Tip: Use the interactive proofing tool to confirm calt fired exactly where you expected and nowhere else.

Test your features

With FontCreator it's easy to add advanced OpenType layout features. But not every application fully supports every feature, so test your fonts and tell your customers where each feature works.

Illustrator, InDesign, CorelDRAW, and Affinity Designer support all the substitution features shown here. Word 2010 and higher support almost all of them (no support for slashed zero and swashes yet), reachable via Format → Font → Advanced.

OpenType feature options in an application's advanced font dialog.

An application's advanced typography panel with OpenType feature toggles

Inside FontCreator, test as you go with the OpenType Designer's preview area (type text, or a slash followed by a glyph name) and confirm each feature in the proofing window.

Troubleshooting

SymptomLikely causeFix
A feature isn't generatedVariant glyph misnamed or missing its suffixFollow the glyph name convention exactly (e.g. g.ss04, zero.onum) and re-run Generate features
Custom lookups disappeared after generatingUpdate deletes and rebuilds generated lookupsKeep hand-written features separate from the generated set
Ligatures don't applyWrong suffix, or liga switched off in the appName extra ligatures x_y.liga; enable ligatures in the application
Swash/slashed zero not working in WordWord doesn't support swsh/zeroTest in Illustrator, InDesign, CorelDRAW or Affinity instead
Contextual alternate never firescalt not wired, or backtrack/input wrongAdd the mirror lookup and a chained context substitution; verify in proofing
Stylistic set has no name in appsFeature parameters not setAdd a feature-parameter name to the set in the OpenType Designer

Frequently asked questions

How do I add OpenType features in FontCreator automatically? Add and correctly name your variant glyphs (original character name plus a feature suffix such as .ss04, .swsh, .onum), open the OpenType Designer, click the first toolbar icon to open Generate and Update OpenType Features, tick the features you want, and click OK. FontCreator reads the suffixes and builds the lookups and classes for you.

Which features can't be generated automatically? Contextual alternates (calt) require two manual steps — a substitution lookup plus a chained context substitution — because the replacement depends on surrounding characters rather than on a glyph suffix.

Why did my custom feature code vanish after I regenerated features? Updating generated features deletes and rebuilds the generated lookups and classes. Always keep features you write by hand separate from the generated set so an update can't overwrite them.

Do these features work in every application? No. Illustrator, InDesign, CorelDRAW and Affinity Designer support all the substitutions shown here; Word 2010+ supports most but not slashed zero or swashes. Always test and document where your features work.

What to read next