FontForge Preferred Family and Subfamily Explained

The Preferred Family and Preferred Subfamily fields in FontForge allow font designers to group large, multi-weight font families under a single family name in modern software while maintaining backward compatibility with legacy applications. This guide explains the technical purpose of these OpenType name records, the historical software limitations they resolve, and how to use them effectively in FontForge.

The Historical RIBBI Limitation

Traditional operating systems and legacy applications—most notably Windows applications using the GDI graphics engine—only support font families structured around four basic styles: Regular, Italic, Bold, and Bold Italic (often abbreviated as RIBBI). Under this standard:

  • Family Name (Name ID 1): Specifies the font family name.
  • Subfamily Name (Name ID 2): Can only be one of the four standard values: Regular, Italic, Bold, or Bold Italic.

If a typeface includes additional weights or widths—such as Thin, Light, Medium, SemiBold, Black, or Condensed—it cannot fit into the four-style model. Historically, font creators had to split a single typeface into multiple artificial families (for example, creating separate family entries like "BrandFont Light" and "BrandFont Black") so legacy programs would not display duplicate styles or malfunction.

The Purpose of Preferred Names

To solve the RIBBI constraint without breaking legacy compatibility, the OpenType specification introduced Typographic Name records, designated in FontForge as Preferred Family (Name ID 16) and Preferred Subfamily (Name ID 17).

These fields decouple the way modern applications organize fonts from the constraints of older systems:

  • Preferred Family (Name ID 16): Defines the overarching typographic family name that encompasses all weights, widths, and variants (for example, "BrandFont").
  • Preferred Subfamily (Name ID 17): Defines the true, complete style variant (for example, "Light Italic", "SemiBold", or "Black Condensed").

Modern, OpenType-aware applications—including Adobe Creative Cloud, Figma, and modern web browsers—look for Name IDs 16 and 17 first. If present, these applications consolidate all styles under a single family entry in their font menus. Legacy software ignores IDs 16 and 17 and falls back to Name IDs 1 and 2, ensuring the font remains usable across all environments.

Setting the Fields in FontForge

In FontForge, these fields are accessed by navigating to Element > Font Info > TTF Names.

  • For Standard 4-Style Families: If a font family only contains standard Regular, Italic, Bold, and Bold Italic variants, the Preferred Family and Preferred Subfamily fields should be left empty. Generating them for simple families is redundant and can cause issues in certain rendering environments.
  • For Extended Families: If the font family includes more than the standard four styles, populate both fields:
    • Set Preferred Family to the universal family name for every font in the collection (e.g., Acme).
    • Set Preferred Subfamily to the precise style descriptor for that specific font file (e.g., Extra Bold Italic).
    • Ensure the standard Family (ID 1) and Subfamily (ID 2) fields are simultaneously set up to group the fonts into synthetic four-style clusters (e.g., Family: Acme Extra Bold, Subfamily: Italic) for legacy fallbacks.