Mac OS 9 Missing Font Substitution Rules

When classic Mac OS 9 encountered a missing font, it relied on a strict, hierarchical fallback mechanism governed by the Font Manager, QuickDraw, and output drivers. This article details the specific rules Mac OS 9 applied to resolve missing font families, scale absent bitmap point sizes, synthesize missing style variants, and handle missing printer fonts.

Font Family Fallback

When a document requested a font family that was not installed in the System Folder's Fonts folder, the Font Manager stepped in to prevent application crashes:

  • Application Font Fallback: By default, the Font Manager redirected the missing font family ID to the designated Application Font, which was Geneva in Mac OS 9.
  • System Font Fallback: If the Application Font was somehow inaccessible or the request targeted system-level UI elements, the system defaulted to the primary System Font, which was Charcoal in Mac OS 9 (having replaced the classic Chicago font used in System 7 and earlier).
  • Font ID Mapping: The classic Mac OS font system tracked fonts via 16-bit resource IDs (stored in FOND resources). If an ID was unrecognized, it defaulted to Font ID 1 (Geneva) or Font ID 0 (Charcoal).

Point Size Substitution and Scaling

In classic Mac OS, fonts were frequently distributed as fixed-size bitmap fonts alongside or without TrueType/PostScript outlines:

  • Bitmap Scaling: If a bitmap font family was installed but lacked the specifically requested point size (e.g., 11 pt was requested, but only 10 pt and 12 pt existed), QuickDraw selected the closest available smaller size and scaled it algorithmically. This often resulted in distorted, jagged text.
  • TrueType Precedence: If a TrueType version of the font was installed, Mac OS 9 bypassed bitmap scaling entirely. The TrueType rasterizer generated the exact requested point size smoothly on the fly.
  • Adobe Type Manager (ATM): If Type 1 PostScript fonts were used and ATM was running, ATM rasterized the missing size from the outline rather than allowing QuickDraw to scale a bitmap.

Algorithmic Style Synthesis

If a document called for a specific typographical variant (such as Bold, Italic, or Underline) and the distinct font file for that variant was absent:

  • Synthetic Bold: QuickDraw duplicated the glyph pixels horizontally by one or more pixels to artificially thicken the character.
  • Synthetic Italic (Oblique): QuickDraw mathematically slanted the standard Roman glyphs to an angle.
  • Synthetic Outline and Shadow: QuickDraw generated outlines by tracing bitmap borders and rendered shadows by offsetting duplicate pixels.
  • If a dedicated font variant was installed (such as "Helvetica Bold"), the system used the dedicated metrics instead of synthesizing the style.

PostScript and Printer Driver Substitution

When printing via the LaserWriter driver:

  • Courier Default: If a document contained a screen font that lacked a corresponding PostScript printer font file or printer-resident equivalent, the LaserWriter driver substituted the text with Courier.
  • Bitmap Spooling: If the printer could not interpret the font and PostScript substitution was disabled, QuickDraw rasterized the screen font as a low-resolution bitmap and sent it to the printer as a graphic.