FontForge Find Problems Tool Outline Checks Explained
The Find Problems tool in FontForge automatically audits glyph outlines to identify structural, geometric, and technical defects before exporting a font. By scanning paths, coordinates, and Bezier control points, this utility detects common drawing errors—such as unclosed paths, improper contour directions, missing extrema, and coordinate misalignments—that can break font rendering, rasterization, or validation in font engines.
Contour Integrity and Path Closure
- Open Contours: Detects paths that have not been explicitly closed. TrueType and PostScript formats generally require all glyph outlines to be complete, closed loops.
- Intersecting Paths: Identifies contours that cross over themselves (self-intersections) or intersect other paths within the same glyph, which can create rendering artifacts or winding order calculation errors.
- Stray Points and Micro-Contours: Flags isolated single points (unconnected nodes) and extremely small contours that contain negligible area, which often appear accidentally during drawing or conversion.
Point Placement and Curve Extrema
- Missing Extrema: Searches for curved paths that reach their local horizontal or vertical limits without having an on-curve point at that precise apex. Fonts render and hint more cleanly when on-curve points mark all extrema.
- Duplicate and Coincident Points: Finds points that occupy the exact same coordinate or sit closer than a specified threshold distance to an adjacent point.
- Collinear Points: Highlights redundant points that lie directly along a straight line between two other points, adding unnecessary file size without altering the shape.
- Adjacent Control Points: Flags off-curve Bezier control points that sit at the same coordinate as their parent on-curve points or other control handles.
Contour Direction (Winding Order)
- Incorrect Direction: Verifies whether outer contours and cut-out counters are drawn in the proper direction. PostScript (OpenType-CFF) outlines require outer contours to be oriented counter-clockwise and holes clockwise, whereas TrueType outlines require the reverse.
Coordinate Precision and Alignment
- Non-Integral Coordinates: Checks for fractional coordinates. Standard TrueType and Type 1/CFF outlines typically require point coordinates to snap to integer values on the Em unit grid.
- Near-Vertical or Near-Horizontal Stems: Identifies lines and control points that deviate slightly from true 90-degree or 180-degree angles, alerting designers to unintentional misalignments.
- Points Near Lines: Flags points that fall within a narrow distance of a line segment, which may signal an accidental overlap or snap error.
Hinting Compatibility
- Conflicting Hints: Scans for underlying outline geometry that prevents clean horizontal or vertical hint generation, such as sloped segments masquerading as flat terminal edges.