What Does Add Extrema Do in FontForge?

The Add Extrema function in FontForge is an automated outline-editing tool that inserts on-curve points at the local mathematical maximums and minimums (horizontal and vertical peaks) of a glyph's Bézier curves. Using this function ensures that curves reach their furthest horizontal and vertical boundaries at defined points rather than across empty spans, which improves font rasterization, simplifies hinting, and aligns your font with industry-standard digital typography specifications.

What Extrema Are in Digital Typography

In vector font design, an "extremum" (plural: "extrema") is any point along a curve where the direction changes along an axis—meaning the tangent to the curve is strictly horizontal or strictly vertical. These correspond to the highest, lowest, leftmost, and rightmost coordinates of any curved stroke.

When drawing outlines freely, designers often place anchor points arbitrarily, leaving the peaks of curves defined solely by off-curve control handles. The Add Extrema tool evaluates the curve's Bézier equations, detects where the derivative equals zero along the X or Y axis, and splits the curve to add an anchor point at that precise location without altering the visual shape of the glyph.

Why You Should Add Extrema

  1. Optimized Rasterization and Screen Rendering
    Font rasterizers convert vector outlines into pixels on a screen. When extrema have dedicated points, rasterization engines can accurately align curve edges to the pixel grid. Without extrema points, curves are more likely to exhibit uneven flattening, pixel dropout, or blurry edges at small display sizes.

  2. Accurate Font Hinting
    Both PostScript (Type 1/CFF) and TrueType hinting systems rely on extrema points to apply stem hints, alignment zones, and grid-fitting instructions. Without on-curve points at these critical peaks, hinting engines cannot anchor control points correctly, leading to distorted shapes when rendered at low resolutions.

  3. Reliable Bounding Box Calculations
    Font rendering engines calculate the bounding box (the rectangular limit of a glyph) based on its anchor points. While modern engines can calculate the bounding box of curves dynamically, having explicit points at the extrema ensures faster and error-free bounding-box computation across legacy and modern platforms alike.

  4. Compliance with Font Formats
    Specifications for both OpenType-CFF (PostScript) and TrueType strongly recommend—and in some validation suites, require—that every curve contains points at its extrema. Tools like FontBakery flag missing extrema as quality issues during pre-release audits.

How to Use Add Extrema in FontForge

You can run the function across individual glyphs, selections, or entire fonts:

  1. Open a glyph in the Glyph Window or select multiple glyphs in the Font Window.
  2. Navigate to the top menu and select Element.
  3. Click Add Extrema (or press the keyboard shortcut Control + Shift + X on Windows/Linux, or Command + Shift + X on macOS).

FontForge will analyze the geometry and add the necessary points while preserving the original contour of your design.