How to Fix Broken Handles in FontForge

Importing vector artwork from software like Adobe Illustrator or Inkscape into FontForge frequently causes control handle anomalies, including retracted Bézier handles, misclassified curve points, and extreme handle misalignment. This guide covers direct, practical steps to diagnose, restore, and optimize broken curve handles in FontForge to ensure smooth glyph contours and proper font rendering.

1. Inspect the Imported Splines

Begin by opening the affected glyph in the Glyph View (double-click the glyph in the font matrix). Zoom in close to inspect the outlines. Broken handles usually manifest in two ways:

  • Zero-length handles: An off-curve handle is collapsed directly onto the on-curve node.
  • Mismatched point types: Points meant to be smooth curves have been converted to sharp corner points, causing handles to act independently rather than collinear.

Enable control point visibility via View > Show > Control Points to ensure all handles are visible on the canvas.

2. Restore Collapsed Handles

When an imported vector collapses a handle into its base point, standard dragging will move the entire node rather than the handle.

  1. Select the Pointer Tool (V or from the tool palette).
  2. Hold down the Alt key (or Option on macOS) and click-and-drag away from the on-curve point. This manually extracts the zero-length handle from the node.
  3. Reposition the handle along your desired Bézier curve trajectory.

3. Convert Corner Points to Smooth or Tangent Points

FontForge marks points with different shapes: squares for corner points, circles for smooth curve points, and triangles for tangent points. If your handles are bending curves unnaturally:

  1. Select the problematic on-curve point.
  2. Go to Point > Make Smooth (or right-click the point and select Smooth Point). Alternatively, press Ctrl + Alt + M (or Cmd + Option + M on macOS).
  3. FontForge will automatically align the two off-curve handles 180 degrees opposite each other, restoring continuous curvature across the node.

4. Run the Simplify Command

Imported vectors often carry far more points than necessary, which causes tiny, conflicting handle segments.

  1. Select the entire contour by double-clicking it, or press Ctrl + A to select all points.
  2. Navigate to Element > Simplify > Simplify (Shortcut: Ctrl + Shift + M).
  3. For more control, use Element > Simplify > Simplify Further to adjust error tolerances. This tool removes redundant nodes and recalculates handles to match the original curve shape using fewer, cleaner points.

5. Add Missing Extrema

In digital typography, curves must have nodes at their highest, lowest, leftmost, and rightmost points (the extrema). Missing extrema often force handles to span diagonally across long distances, increasing the likelihood of handle clipping.

  1. Select your contours.
  2. Choose Element > Add Extrema (Shortcut: Ctrl + Shift + X).
  3. FontForge will place new points at the mathematical extrema and split the existing handles into horizontal and vertical constraints, eliminating wild handle angles.

6. Correct Contour Direction and Round to Integer Coordinates

Misaligned handles frequently stem from inverted winding directions or non-integer coordinates introduced during import.

  1. Go to Element > Correct Direction (Shortcut: Ctrl + Shift + D) to normalize internal and external path orientations.
  2. Select all points and run Element > Round > To Int to snap floating-point coordinate errors from the vector import to exact integer grid units. This prevents micro-handle offsets that disrupt smooth curves.