Handling Warnings When Generating Fonts in FontForge

When generating fonts in FontForge, users frequently encounter warning dialogs flagging validation errors such as overlapping paths, missing extrema, or incorrect contour directions. While some warnings can break font rendering across different operating systems, others are benign design choices that can be safely dismissed. This guide explains how to interpret FontForge validation reports, fix the most critical geometry and metadata warnings, and configure export settings to ensure error-free font files.

Review the Warnings Dialog

When the "Errors detected" dialog appears during font generation, do not immediately click "Generate." Instead, click Review to open the Validation Window.

The Validation Window provides a list of specific glyphs and the precise rules they violate. Double-clicking any listed error will automatically open that glyph in the Char View and highlight the problematic node or path, allowing you to address issues individually.

Fix Geometry and Outline Errors

The vast majority of FontForge warnings relate to outline geometry. Resolving these ensures your font displays correctly across all rendering engines.

Self-Intersecting Contours

Self-intersecting paths occur when a single vector path crosses over itself, which creates rendering artifacts in PostScript and TrueType formats.

  • Fix: Open the glyph, select all paths (Ctrl + A), and navigate to Element > Overlap > Remove Overlap (Ctrl + Shift + O).

Missing Extrema

Rendering engines require on-curve points at the horizontal and vertical extremes of every curve to calculate anti-aliasing and hinting accurately.

  • Fix: Select the affected paths and go to Element > Add Extrema (Ctrl + Alt + E). If FontForge places an extrema point too close to an existing control point, manually delete the redundant point.

Incorrect Path Direction

Font formats rely on path direction (clockwise vs. counter-clockwise) to determine what is filled and what is cut out (such as the counter inside an "O").

  • Fix: Select the outline and choose Element > Correct Direction (Ctrl + Shift + D). For TrueType fonts, outer contours should be clockwise; for PostScript/OTF fonts, they should be counter-clockwise.

Points Too Close Together

Points positioned less than one full font unit apart confuse the rasterizer and bloat the file size.

  • Fix: Select the paths and choose Element > Simplify > Simplify (Ctrl + Shift + M). Alternatively, manually zoom in and merge adjacent points using Point > Make First or deleting excess nodes.

Fix Font Information and Metadata Errors

Warnings related to font properties affect system-level installation and font menus.

Missing Essential Glyphs

FontForge checks for standard fallback glyphs, specifically .notdef (the glyph shown when an unassigned character is typed).

  • Fix: Ensure your font contains a .notdef character at unicode slot U+FFFD or index 0. If it is empty, draw a simple hollow rectangle.

Inconsistent Line Metrics

Errors regarding OS/2 metrics (WinAscent, WinDescent, TypoAscent) indicate your glyphs may be visually clipped in applications like Microsoft Word or web browsers.

  • Fix: Go to Element > Font Info > OS/2 > Metrics. Click Calculate Typo Metrics and Calculate Win Metrics to let FontForge determine appropriate bounding boxes automatically based on your highest and lowest glyph coordinates.

Adjusting Generator Preferences

If you have verified that your font functions as intended and you wish to bypass non-fatal warnings on subsequent builds:

  1. Navigate to File > Preferences.
  2. Select Generate.
  3. Locate the Validation preferences.
  4. Uncheck non-critical validations, such as warnings for unhinted glyphs or intentional path intersections (common in complex scripts).

When to Ignore Warnings

You can safely ignore warnings if:

  • Overlaps are intentional: Some modern OpenType-CFF workflows and variable fonts retain overlaps intentionally to ease master interpolation.
  • Decorative elements: Complex display fonts with high node counts may trigger false-positive warnings about complexity that modern computers can easily handle.