FontForge Settings Before Generating Production Fonts

Before exporting a final production font in FontForge, you must configure critical technical parameters to ensure visual integrity, correct rendering, and cross-platform compatibility. This guide covers the essential pre-flight checklist, including font metadata, OS/2 metrics, glyph outline sanitization, encoding verification, and generation export flags to prevent rendering bugs in operating systems, browsers, and desktop publishing software.

1. Font Information and Metadata (Element > Font Info)

  • PS Names: Verify the Fontname (no spaces allowed), Family Name, and Fullname. Ensure Weight accurately reflects the design (e.g., Regular, Bold, SemiBold).
  • TTF Names: Windows and macOS rely heavily on TTF Name IDs. Ensure Name ID 1 (Family), Name ID 2 (Subfamily/Style), Name ID 4 (Full Name), and Name ID 6 (PostScript Name) are configured correctly. For font families with more than four styles (Regular, Italic, Bold, Bold Italic), configure Name ID 16 (Preferred Family) and Name ID 17 (Preferred Subfamily) to avoid style-linking errors in Microsoft Office.
  • Em Size (General tab): Set standard Units Per Em (UPM). The industry standard is 1000 for PostScript/CFF (.otf) fonts and 1024 or 2048 for TrueType (.ttf) fonts. Changing this late will scale your outlines, so verify it matches your target format.

2. Vertical Metrics (Element > Font Info > OS/2 > Metrics)

Inconsistent vertical metrics cause text clipping and inconsistent line heights across different applications:

  • Win Ascent and Win Descent: Used by Windows GDI. Ensure these values equal or exceed the highest and lowest points of your glyph outlines (including diacritics) to avoid clipping. Note that Win Descent must be a positive number in FontForge.
  • Typo Ascent, Typo Descent, and Typo LineGap: Used by modern typography engines and browsers. Set Typo Descent as a negative value. Ensure Typo Ascent + abs(Typo Descent) + Typo LineGap equals your Em size or an intended proportional height.
  • HHead Ascent, HHead Descent, and HHead LineGap: Used by macOS. Typically match HHead Ascent to Typo Ascent and HHead Descent to Typo Descent, with HHead LineGap set to Typo LineGap.
  • USE_TYPO_METRICS: Under the OS/2 > Panose / Misc tab, check the USE_TYPO_METRICS flag (fsSelection bit 7) to enforce consistent line spacing across modern systems.

3. Glyph Outlines and Geometry Cleanliness

Select all glyphs (Ctrl+A) and execute the following automated cleanups:

  • Add Extrema (Element > Add Extrema): Every curve should have on-curve control points at its vertical and horizontal extremes (local minima and maxima) to ensure clean rasterization.
  • Correct Direction (Element > Correct Direction): Clockwise vs. counter-clockwise path direction determines which areas are filled and which are hollow. TrueType outer paths must be clockwise; PostScript outer paths must be counter-clockwise. FontForge handles this automatically via this command.
  • Remove Overlap (Element > Overlap > Remove Overlap): Merges intersecting contours into a single outline. While modern TrueType supports overlapping paths, PostScript/CFF outlines must be merged to prevent rasterization artifacts.
  • Round to Integer Coordinates (Element > Round > To Int): Production fonts do not support fractional coordinate points on nodes. Ensure all points snap to whole integers.

4. Essential Glyphs and Encodings

  • Check Required Glyphs: Ensure your font contains .notdef (glyph 0, displayed when a character is missing), space (Unicode U+0020), and non-breaking space (U+00A0).
  • Encoding Table: Confirm the encoding is set via Encoding > Reencode > ISO 10646-1 (Unicode, Full) or Unicode, BMP to ensure correct Unicode codepoints are assigned to glyph slots.

5. Font Validation (Element > Validation > Find Problems)

Run the automated validator to catch unseen errors:

  • Check for self-intersecting paths.
  • Identify missing extrema.
  • Search for points that are too close to each other.
  • Ensure references/components are not flipped or scaled unevenly without being unlinked.

6. Generation Options (File > Generate Fonts)

Click the Options button in the file export dialog to finalize compiler flags:

  • For OpenType (CFF / .otf):
    • Check OpenType.
    • Check Round to strip any remaining fractional points.
    • Check PS Glyph Names to include standard PostScript glyph naming tables.
  • For TrueType (.ttf):
    • Select TrueType from the format dropdown.
    • Check Hints if you have created TrueType instructions, or uncheck to avoid exporting broken manual hints.
  • Validation warnings: Address any warnings that appear in the compilation pop-up before distributing the generated .otf or .ttf binary.