dfont: The Format Mac OS X Invented to Solve Its Own Filesystem Problem
When Mac OS X moved to a Unix-based filesystem, it broke the resource-fork trick every classic Mac font relied on. dfont is the fix — and Apple has already mostly moved past it.
Deep dives into typography, fonts, font file formats — their history, what they got right, and where each one still earns its place today.
When Mac OS X moved to a Unix-based filesystem, it broke the resource-fork trick every classic Mac font relied on. dfont is the fix — and Apple has already mostly moved past it.
A single CJK typeface can need tens of thousands of glyphs per weight. TTC's whole reason for existing is refusing to store that glyph set more than once.
On classic Mac OS, a Type 1 font didn't come as one file — it came as two: a bitmap you'd see on screen, and a separate outline font that only mattered the moment you hit print.
T1A is functionally the same ASCII-encoded Type 1 font as PFA. What sets it apart is the converter that produces it — ttf2pt1 — and the extra care it puts into hinting.
Type 42 fonts wrap a TrueType font inside a PostScript dictionary, letting PostScript printers with a built-in TrueType rasterizer print it losslessly. The name is a Hitchhiker's Guide reference.
Type 1 fonts describe glyphs with fixed outlines. Type 3 throws that constraint out and lets a glyph be any PostScript procedure at all — gradients, shading, even bitmaps. The cost is that it can't be hinted.
Type 1, Type 3, and Type 42 aren't three unrelated formats — they're three different disciplines applied to the same underlying language: PostScript itself.
PFB is the same Adobe Type 1 technology as PFA, just packed as compact binary instead of text — the form that became the default everywhere PFA's ASCII-safety wasn't the priority.
Before TrueType existed, Type 1 was the format that proved outline fonts could look sharp on a printed page. PFA is its plain-text, transport-safe form.
PFM does the exact same job as AFM — describe a Type 1 font's widths and kerning without any outline data — but in Windows' own binary format instead of plain text.
UFM exists to answer one narrow question — how wide is this Unicode character in this TrueType font — for PHP PDF libraries that needed a fast answer without decoding the whole font.
An AFM file can't render a single glyph on its own. It exists purely to tell software how wide each character is and how pairs of letters should be kerned — the numbers behind the shapes.