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 Overlapor with the shortcutCtrl + 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
- Open the target glyph in the FontForge Glyph Edit window.
- Select the Pointer tool from the editing tools palette.
- Click and drag to select the intersecting paths you want to combine
or modify, or hold
Shiftwhile clicking each individual path. - Navigate to the top menu bar, click Element, and hover over Overlap.
- 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.