OpenType vs Traditional Kerning in FontForge

Kerning in FontForge can be implemented using either modern OpenType tables or legacy traditional kerning tables. While both methods adjust the horizontal spacing between specific character pairs to achieve optical balance, they differ fundamentally in technical architecture, workflow efficiency, and software compatibility. OpenType kerning utilizes the advanced GPOS table to support class-based and contextual adjustments required by modern typography, whereas traditional kerning relies on the older 'kern' table, which is limited to simple, pair-by-pair adjustments primarily retained for backwards compatibility.

Technical Architecture: GPOS vs. 'kern' Table

The primary technical distinction lies in where the kerning data is stored inside the font file:

  • Traditional Kerning: Stored in the legacy 'kern' table. Originally developed for TrueType and PostScript Type 1 fonts, this table is a rigid list of explicit horizontal offsets between specific glyph pairs.
  • OpenType Kerning: Stored within the 'GPOS' (Glyph Positioning) table. This format is far more robust, allowing multi-axis positioning, vertical kerning, mark-to-base attachment, and integration with the broader OpenType layout engine.

Pair Kerning vs. Class-Based Kerning

Traditional kerning in FontForge relies primarily on flat, glyph-to-glyph kerning pairs. If you adjust the space between T and o, you must manually define the same adjustment for T and ó, ò, ô, or ö. This leads to massive tables, redundant labor, and higher file sizes.

OpenType kerning introduces class-based kerning. FontForge allows you to group glyphs with similar optical shapes into classes (for example, grouping o, c, e, d, and accented variants into a single right-side class). You then kern the letter T against the entire class once. FontForge applies this single offset to every glyph in that group, dramatically reducing the file size and font generation time.

Contextual and Complex Script Capabilities

Traditional kerning only supports basic horizontal left-to-right adjustments across two adjacent characters. It cannot handle:

  • Right-to-left (RTL) scripts like Arabic or Hebrew.
  • Vertical writing modes used in East Asian scripts.
  • Contextual kerning (adjusting a space only if a specific third character precedes or follows the pair).

OpenType kerning via GPOS overcomes all of these limitations, supporting contextual lookups, bidirectional text, and variable fonts natively.

Software Support and Workflow in FontForge

In FontForge, traditional kerning is typically managed through the Metrics Window by dragging glyphs or typing raw values into simple pair lists. OpenType kerning is managed via Element > Font Info > Lookups > GPOS, where you create a Pair Positioning lookup and define Kerning Classes.

Modern web browsers, operating systems, and professional design applications (such as Adobe Creative Cloud, Affinity, and modern text shaping engines like HarfBuzz) prioritize or exclusively read OpenType GPOS kerning. Traditional 'kern' tables are generally ignored by modern layout engines unless explicitly required by legacy operating systems or specific embedded devices.