How to Fix Overlapping Characters in FontForge

Overlapping characters in FontForge are typically caused by incorrect horizontal metrics, such as improperly configured side bearings, zero or negative advance widths, or missing kerning pairs. This guide provides a direct, step-by-step approach to diagnosing and repairing these metric defects using FontForge's built-in Metrics Window, automated spacing tools, and kerning tables to ensure clean, readable text rendering.

1. Identify the Problem in the Metrics Window

To pinpoint why glyphs are colliding, you must visually inspect their bounding boxes and spacing values.

  1. Open your font project in FontForge.
  2. Select Metrics > Open Metrics Window (or press Ctrl + K / Cmd + K).
  3. In the text field at the top, type the specific character combinations that are overlapping.
  4. Observe the vertical guidelines surrounding each character:
    • Left Side Bearing (LSB): The distance between the origin point and the leftmost edge of the glyph outline.
    • Right Side Bearing (RSB): The distance between the rightmost edge of the glyph outline and the advance width marker.
    • Advance Width (AW): The total horizontal space allocated to the glyph before the next character begins.

If the RSB of the preceding letter or the LSB of the following letter is negative, or if the Advance Width is smaller than the glyph's physical outline, the characters will overlap.

2. Manually Adjust Side Bearings and Widths

For individual glyphs that fail to display correctly, manual adjustment provides the highest degree of precision.

  1. In the Metrics Window, click and drag the vertical dotted lines representing the LSB or RSB to widen the spacing around the glyph.
  2. Alternatively, enter exact numerical values into the LBearing, RBearing, or Width input fields located at the bottom of the window.
  3. To edit directly from the font grid view:
    • Double-click a glyph to open the outline editor.
    • Go to Metrics > Set Width to define a larger advance width.
    • Go to Metrics > Set LBearing or Set RBearing to prevent the glyph contours from crossing the bearing boundaries.

3. Apply Automated Width Calculations

If the overlap issue is widespread across your entire font or a large character set, use FontForge’s automated spacing algorithms.

  1. In the main font view, select the glyphs you wish to fix (press Ctrl + A to select all).
  2. Navigate to Metrics > Auto Width.
  3. In the dialog box, set a target spacing value (typically between 10% and 20% of your font's Em size, or approximately 100–200 units for a standard 1000-unit Em square).
  4. Click OK. FontForge will calculate proportional LSB and RSB values based on the optical contours of each glyph.

4. Create Kerning Pairs for Specific Combinations

Some character pairs (such as "AV", "To", or "Wa") naturally require tighter spacing, but improper negative kerning values can cause them to collide.

  1. Go to Element > Font Info.
  2. Select Lookups from the left-hand panel, then click the GPOS tab.
  3. Click Add Lookup, choose Pair Adjustment (Kerning) as the lookup type, and click OK.
  4. Add a subtable, select your default script/languages, and select OK.
  5. Return to the Metrics Window, type the problematic pair, and drag the space between the two characters to apply an appropriate kerning offset.
  6. Alternatively, select Metrics > Auto Kern to allow FontForge to generate balanced kerning values automatically without causing physical overlap.

5. Validate and Re-export the Font

Before generating the final font binary, verify that no glyph contours inadvertently exceed their defined metric bounds.

  1. Select all glyphs in the font view.
  2. Go to Element > Validation > Find Problems.
  3. Under the Metrics tab, check Check for negative side bearings and Check for overlapping bounding boxes.
  4. Click OK to identify and resolve any remaining outliers.
  5. Navigate to File > Generate Fonts to build your updated .otf or .ttf file.