How to Fix Missing Required Tables in FontForge
This guide explains how to identify and resolve validation errors
related to missing required OpenType and TrueType tables in FontForge.
These errors occur when a font lacks mandatory structural data—such as
the OS/2, cmap, head,
hhea, maxp, or post
tables—required by font rendering engines. Following the steps below
will ensure your font metadata, encodings, and export settings are
correctly configured so FontForge can automatically generate all
required tables.
1. Identify the Specific Missing Table
Run FontForge's built-in validator to determine which table is failing:
- Open your font in FontForge.
- Navigate to Element > Validation > Validate.
- Review the validation window for messages explicitly citing missing
tables (e.g.,
Missing required table: 'OS/2'orMissing table: 'cmap').
2. Configure Font Information and Metadata
Most missing tables result from incomplete metadata, which prevents FontForge from generating proper table headers.
- Go to Element > Font Info.
- Select the PS Names tab and ensure Fontname, Family Name, and Name for Humans are populated without unsupported symbols.
- Select the TTF Names tab and verify that default
entries for English (US) exist for:
- Copyright
- Font Family Name
- Font Subfamily Name
- Unique Font Identifier
- Full Font Name
- Version
- Click OK to apply changes.
3. Populate OS/2 and Metric Tables
If the OS/2 or hhea tables are reported
missing:
- Navigate back to Element > Font Info > OS/2.
- In the Misc. sub-tab, assign a valid Weight class (e.g., 400 for Regular) and Width class (e.g., Medium/Normal).
- Ensure a 4-character Vendor ID is present (use
PfEdor any four alphanumeric characters). - Go to the Metrics sub-tab under OS/2 and click Set Offset or compute values automatically for Win Ascent, Win Descent, Typo Ascent, and Typo Descent.
- Check the Panose sub-tab and set basic classification metrics instead of leaving all values at zero.
4. Fix Encoding for the cmap Table
A missing cmap table indicates that the glyphs are not
mapped to standard character codes:
- Go to Encoding > Reencode.
- Select ISO 10646-1 (Unicode, BMP) or Unicode (Full).
- Ensure that basic glyphs (such as the space character
uni0020and standard Latin characters) have assigned Unicode codepoints and are not placed in unassigned slots. - Ensure the
.notdefglyph exists at glyph index 0, as TrueType and OpenType specifications require it.
5. Adjust Font Generation Settings
FontForge compiles most low-level tables (head,
maxp, post, loca) at the time of
export. If custom generation options are stripping these tables:
- Go to File > Generate Fonts.
- Choose TrueType or OpenType (CFF) from the format dropdown.
- Click the Options button next to the format selection.
- Verify that:
- OpenType is checked if outputting OTF fonts.
- Any options specifying "Don't create OS/2 table" or stripping TrueType tables are unchecked.
- Apple or OpenType table format is selected according to your target platform.
- Click OK, then click Generate.
After completing these steps, reopen the newly generated font file in FontForge and run Element > Validation > Validate again to confirm that all required tables are present and valid.