NeedFontDocumentation
Font Metadata

Understanding Font Metadata

Font metadata controls how fonts appear in application menus, how they group into families, and how operating systems recognize them.

Why Metadata Matters

Ever wondered why some fonts appear as “one style per family” in your font menu instead of grouping properly? Or why “Bold” doesn't appear when you press ⌘B? The answer is almost always metadata.

Common Metadata Problems

  • Family splitting: Each style appears as its own family (e.g., “Gotham Light”, “Gotham Medium” instead of “Gotham” with styles)
  • Missing style linking: Bold/Italic keyboard shortcuts don't work because the font doesn't declare which style is Bold
  • Menu conflicts: Two different fonts have the same PostScript name, causing system confusion

The Name Table

The name table stores human-readable strings: family names, style names, copyright notices, designer credits, and more. Each piece of information has a Name ID.

Important Name IDs
0
Copyright
Copyright notice
1
Family
Legacy font family name
2
Subfamily
Legacy font style (Regular, Bold, Italic, Bold Italic)
3
Unique ID
Unique identifier string
4
Full Name
Complete font name (Family + Subfamily)
5
Version
Version string (e.g., 'Version 2.001')
6
PostScript Name
PostScript name (no spaces, max 63 chars)

The Legacy 4-Style Problem

Name IDs 1 and 2 (legacy family/subfamily) were designed when fonts only had four styles: Regular, Bold, Italic, Bold Italic. Modern fonts with many weights need Name IDs 16 and 17 (typographic family/subfamily) to group correctly.

Typographic Names (IDs 16 & 17)

For fonts with more than four styles, Name IDs 16 and 17 tell applications how to properly group the family.

✗ Without Typographic Names

Gotham Light
Gotham Book
Gotham Medium
Gotham Bold
Gotham Black

Each weight appears as a separate family

✓ With Typographic Names

Gotham
Light
Book
Medium
Bold
Black

All weights grouped under one family

Extended Name IDs
16
Typographic Family
Preferred family name (overcomes 4-style limit)
17
Typographic Subfamily
Preferred subfamily name (e.g., 'Light Italic')
21
WWS Family
Weight/Width/Slope family name
22
WWS Subfamily
Weight/Width/Slope subfamily name

The OS/2 Table

The OS/2 table contains metrics and classification data, including weight and width classes that applications use for font selection and style linking.

Weight Classes (usWeightClass)

100
Thin
200
Extra Light
300
Light
400
Regular
500
Medium
600
Semi Bold
700
Bold
800
Extra Bold
900
Black

Width Classes (usWidthClass)

1
Ultra Condensed
50%
2
Extra Condensed
62.5%
3
Condensed
75%
4
Semi Condensed
87.5%
5
Normal
100%
6
Semi Expanded
112.5%
7
Expanded
125%
8
Extra Expanded
150%
9
Ultra Expanded
200%

Style Linking (fsSelection)

The fsSelection field in OS/2 contains bit flags that tell applications which styles are linked—enabling keyboard shortcuts like ⌘B for Bold.

fsSelection Bits
Bit 0
ITALIC
Font is italic (triggers ⌘I behavior)
Bit 5
BOLD
Font is bold (triggers ⌘B behavior)
Bit 6
REGULAR
Font is the regular style (only one per family)
Bit 7
USE_TYPO_METRICS
Use typographic metrics from OS/2 table
Bit 8
WWS
Font follows Weight/Width/Slope model
Bit 9
OBLIQUE
Font is oblique (not true italic)

The Style Linking Quartet

Traditional style linking works in groups of four: Regular, Bold, Italic, Bold Italic. Only these four can be properly style-linked. Additional weights (Light, Medium, Black) cannot be accessed via ⌘B—they must be selected from the menu.

PostScript Name (ID 6)

The PostScript name is a crucial identifier used by applications and operating systems. It must be unique and follow strict rules.

Valid PostScript Names

  • Gotham-Bold
  • HelveticaNeue-LightItalic
  • SourceSansPro-Regular

Invalid PostScript Names

  • Gotham Bold (no spaces allowed)
  • Hélvetica-Bold (no accents)
  • Font[Version2] (no brackets)

Important: If two installed fonts share the same PostScript name, applications may load the wrong one. NeedFont detects these collisions and can create repair exports with unique names.

How NeedFont Handles Metadata

NeedFont extracts and normalizes metadata to help you understand and fix problematic fonts.

Extract

Reads all name table records, OS/2 values, and style information from your fonts.

Normalize

Standardizes weight/width values, infers missing typographic names, groups families correctly.

Repair

Generates corrected font files with proper naming for macOS/Windows compatibility.

Continue Learning