Using Boolean Operations in FontForge

FontForge provides full support for Boolean operations such as union, intersection, and difference to manipulate vector contours. This guide explains how to locate and use these path-combining tools within the FontForge interface, detailing the core commands and best practices needed to maintain clean, production-ready vector geometry for your font projects.

Available Boolean Tools in FontForge

In FontForge, Boolean operations are primarily grouped under the Element menu in the Overlap submenu. The most common operations include:

  • Union (Remove Overlap): Combines multiple intersecting paths into a single unified outline. Accessed via Element > Overlap > Remove Overlap or with the shortcut Ctrl + Shift + O.
  • Intersection: Retains only the overlapping area shared by two or more paths, discarding the non-overlapping segments. Accessed via Element > Overlap > Intersect.
  • Difference (Exclude): Subtracts the top overlapping shape from the shape beneath it, or removes mutual overlaps. Accessed via Element > Overlap > Exclude.
  • Find Intersections: Creates on-curve points at every location where two paths cross without joining or deleting any existing outlines. Accessed via Element > Overlap > Find Intersections.

How to Perform a Boolean Operation

  1. Open the target glyph in the FontForge Glyph Edit window.
  2. Select the Pointer tool from the editing tools palette.
  3. Click and drag to select the intersecting paths you want to combine or modify, or hold Shift while clicking each individual path.
  4. Navigate to the top menu bar, click Element, and hover over Overlap.
  5. Select the desired operation (Remove Overlap, Intersect, or Exclude).

Essential Best Practices

To ensure accurate results when executing Boolean commands in FontForge, keep these technical requirements in mind:

  • Ensure Paths are Closed: Boolean operations require closed contours. Open paths can lead to unexpected clipping, missing segments, or silent failures.
  • Verify Path Direction: FontForge relies on path direction (clockwise vs. counter-clockwise) to determine filled areas versus cutouts. If an operation produces an inverted shape, select the contours and run Element > Correct Direction (Ctrl + Shift + D) before applying the Boolean operation.
  • Clean Up Extraneous Points: Merging complex paths can generate redundant points or micro-segments along the outline. Run Element > Simplify > Simplify (Ctrl + Shift + M) after performing a Boolean operation to clean up the node structure while preserving the shape.