How to Fix Overlapping Path Holes in FontForge

When designing glyphs in FontForge, intersecting contours or paths with conflicting directions often cause the rendering engine to create unintended transparent holes. This issue is typically caused by the font’s fill rule interpreting overlapping vector paths as counter-shapes or cutouts. You can quickly resolve this by correcting the contour directions, merging overlapping paths using built-in boolean operations, and cleaning up redundant points.

1. Correct Path Direction

Font formats rely on path direction (winding order) to distinguish between solid shapes and hollow cutouts. In TrueType fonts, outer contours must run clockwise and inner cutouts must run counter-clockwise (the reverse applies to PostScript/OpenType). Conflicting directions on overlapping shapes often cause the overlap area to become transparent.

  1. Open the glyph in the FontForge Outline View.
  2. Select all paths by pressing Ctrl + A (or Cmd + A on macOS).
  3. Navigate to Element in the top menu and select Correct Direction (shortcut: Ctrl + Shift + D / Cmd + Shift + D).

FontForge will automatically analyze your nested contours and reorient their directions properly.

2. Remove Overlapping Paths

If correcting the direction does not fix the hole, the overlapping segments need to be merged into a single continuous outline.

  1. Select the overlapping shapes or press Ctrl + A to select the entire glyph.
  2. Go to Element > Overlap > Remove Overlap (shortcut: Ctrl + Shift + O / Cmd + Shift + O).

This executes a boolean union operation. It cuts away the intersecting vector geometry and fuses the intersecting shapes into a unified boundary, permanently eliminating the area where the unwanted hole appeared.

3. Clean Up Extra Nodes

Merging paths often generates tiny, unwanted control points and overlapping nodes along the newly created seams, which can cause rendering glitches at smaller font sizes.

  1. Keep the glyph outline selected.
  2. Go to Element > Simplify > Simplify (shortcut: Ctrl + M / Cmd + M).
  3. Go to Element > Add Extrema (shortcut: Ctrl + Shift + X / Cmd + Shift + X) to ensure that points sit properly at the furthest vertical and horizontal curves, as required by font specifications.
  4. Go to Element > Round > To Int to snap coordinate values to whole integers.

4. Check for Self-Intersecting Contours

If holes persist, a single path may have self-intersecting segments or zero-length handles hidden along the outline.

  1. Go to Element > Validation > Find Problems.
  2. Under the Paths tab, check Self Intersecting and Check Open Paths.
  3. Click OK. FontForge will highlight any areas where an outline crosses over itself, allowing you to manually move or delete the problematic nodes.