How to Handle Counter-Spaces in FontForge

Managing counter-spaces and negative shapes—the open or enclosed white areas inside glyphs such as "e," "o," and "n"—is fundamental to creating balanced, readable typefaces. This guide explains how to properly construct, orient, and adjust negative spaces in FontForge using contour directions, Boolean operations, and optical balancing techniques to ensure your fonts render correctly across all platforms.

Set the Correct Contour Direction

FontForge determines whether a shape is a solid filled area or a negative counter-space using path winding rules. For the software and rasterizers to recognize a path as a hole, the inner contour must run in the opposite direction of the outer contour.

  1. Open the glyph in the Glyph Outline View by double-clicking it.
  2. In PostScript-flavored fonts (OTF), the outer path should run counter-clockwise, and inner paths (counters) should run clockwise. In TrueType-flavored fonts (TTF), the reverse is standard.
  3. Rather than flipping directions manually, select your entire glyph with Ctrl+A (or Cmd+A on macOS) and navigate to Element > Correct Direction. FontForge will automatically evaluate nested paths and set internal counters to cut out properly.

Create Counters Using Boolean Operations

When designing complex counters or cutting negative spaces out of solid forms, you can draw overlapping shapes and merge them using Boolean operations.

  1. Draw your primary solid shape (the positive form).
  2. Draw a secondary shape directly over the area you want to hollow out (the negative form).
  3. Select both paths.
  4. Go to Element > Overlap > Exclude to cut the top shape out of the bottom shape, or select Element > Overlap > Remove Overlap (Ctrl+Shift+O).
  5. FontForge will calculate the intersections and automatically turn the internal area into a properly oriented counter.

Maintain Optical Balance in Internal Spaces

Negative shapes govern the perceived weight of a glyph. A glyph's counter must be optically proportional to its surrounding strokes and adjacent letters.

  • Account for Tapering: Enclosed counters (like the eye of the "e" or the bowl of the "a") appear smaller on screen and paper than they do in vector view. Make them slightly larger than your technical measurements suggest.
  • Check Negative Symmetry: For symmetrical glyphs like "O" or "H", use FontForge's guide layers. Drag guidelines from the rulers to establish horizontal and vertical centerlines, ensuring the counter-space is evenly distributed and not visually leaning.
  • Contrast Internal vs. External Whitespace: Use the Metrics Window (Window > Open Metrics Window) to place glyphs next to one another. The white space inside a glyph's counter must harmonize with the white space (side bearings) between that glyph and its neighbors.

Clean and Validate Counter Paths

Extraneous control points or micro-overlaps inside counters can cause rendering artifacts, especially at smaller point sizes.

  1. Remove Extraneous Points: Counters should be constructed with the minimum number of on-curve points necessary. Navigate to Element > Simplify > Simplify to eliminate redundant points that distort curved counters.
  2. Detect Inverted Counters: If a counter appears solid black in preview, go to View > Fill to inspect the rendering. If filled, select the offending inner path and choose Contour > Reverse Direction.
  3. Run Validation: Navigate to Element > Find Problems, check "Check missing points at extrema" and "Check self-intersection," and click OK. Fixing these issues guarantees that counters retain their precise negative shapes across different operating systems.