Can FontForge Edit Apple Advanced Typography Fonts?

FontForge provides robust native support for opening, modifying, and generating fonts that utilize Apple Advanced Typography (AAT), originally known as TrueType GX. While modern font development heavily favors OpenType Layout (OTL), FontForge remains one of the few open-source font editors equipped with the tools to parse, display, edit, and write Apple-specific typography tables directly. This guide details FontForge's capabilities regarding AAT, how it handles layout features, and key considerations when working with these formats.

FontForge's Native AAT Support

When you open a font containing AAT data in FontForge, the editor reads both the standard glyph outlines and the Apple-specific layout tables. FontForge was developed with comprehensive support for the Apple typographic architecture, allowing designers to view and manipulate advanced features that standard OpenType editors often ignore or strip away.

FontForge natively supports core AAT tables, including:

  • morx / mort: Extended Glyph Metamorphosis tables that define contextual substitutions, ligatures, and reordering using finite state machines.
  • feat: Feature Name tables, which map user-visible features to internal font settings.
  • prop: Glyph Properties tables, defining character directionality and attachment properties.
  • trak: Tracking tables, enabling automatic letter-spacing adjustments based on font size.
  • lcar: Ligature Caret tables, specifying cursor placement within composite glyphs.
  • opbd: Optical Bounds tables, handling optical margin alignment.

Accessing and Editing AAT Tables in FontForge

To edit AAT rules in FontForge:

  1. Open the font file in FontForge.
  2. Navigate to Element > Font Info.
  3. Select the Mac Features or Lookups section in the left sidebar.

Under Mac Features, you can view and configure the feature-setting pairs defined by Apple, such as Ligatures, Letter Case, or Contextual Alternates. Under the Lookups tab, you can inspect the underlying state machines that power contextual glyph substitutions and positioning. FontForge provides a dedicated interface to edit these transition tables and state classes, giving you low-level control over how macOS text engines process the glyphs.

Converting Between AAT and OpenType

Beyond raw editing, FontForge includes functionality to translate features between Apple Advanced Typography and OpenType Layout:

  • OpenType to AAT: FontForge can attempt to compile OpenType lookups (GSUB/GPOS) into equivalent AAT state machines (morx/kerx) upon export. This is useful for creating fonts intended for legacy macOS environments or specific Apple software workflows.
  • AAT to OpenType: When opening an AAT font lacking OpenType tables, FontForge can translate simple substitutions and ligatures into OpenType format, though complex state-machine interactions may require manual adjustment.

To generate a font retaining AAT tables, select File > Generate Fonts, click Options, and ensure the Apple or Mac table generation options are checked before exporting.

Limitations and Practical Considerations

While FontForge can edit AAT fonts, working with Apple's architecture involves distinct challenges:

  • State Machine Complexity: AAT relies on finite state machines rather than simple glyph substitution lists. Editing these tables manually in FontForge requires a clear understanding of Apple's state transition logic.
  • Platform Exclusivity: AAT tables are primarily supported by macOS and iOS text engines (Core Text). Windows and Linux systems rely almost universally on OpenType tables, meaning pure AAT fonts will not render advanced typographic features on non-Apple platforms.
  • Modern Preference: Modern versions of macOS support standard OpenType features alongside AAT. Unless you are maintaining legacy font files or developing specifically for specialized macOS features like size-dependent tracking (trak), developing standard OpenType tables is generally recommended for cross-platform compatibility.