Delete All Kerning Pairs in FontForge

This guide provides a direct walkthrough on how to completely remove all kerning pairs from a font using FontForge. Whether you need to reset spacing issues, eliminate unwanted OpenType tables, or rebuild your metric pairs from scratch, you will learn the fastest and most reliable method to wipe all kerning data using the Font Info interface.

Method: Remove Kerning via the Font Info Window

In modern fonts, kerning pairs are stored as OpenType GPOS (Glyph Positioning) lookups. Deleting these lookups removes all existing kerning pairs instantly.

  1. Open Your Font
    Launch FontForge and open the font file you wish to edit.

  2. Open Font Info
    Click on the Element menu at the top of the window and select Font Info (or press Ctrl + Shift + F on Windows/Linux, Cmd + Shift + F on macOS).

  3. Navigate to GPOS Lookups
    In the left-hand sidebar of the Font Info dialog, click on Lookups. Then, look at the top tabs and select GPOS.

  4. Locate Kerning Lookups
    Browse the list of lookups for entries designated for pair positioning. These typically have names starting with or containing 'kern' (for example, 'kern' Horizontal Kerning in Latin lookup 0 or feature tag kern).

  5. Delete the Lookup
    Click on the kerning lookup to highlight it, then click the Delete button on the right side of the window. A confirmation prompt may appear asking if you want to delete the lookup and all of its subtables; confirm by selecting Yes. Repeat this step if there are multiple kerning lookups (such as right-to-left kerning or separate script lookups).

  6. Apply and Save
    Click the OK button at the bottom of the Font Info window to commit the changes.

  7. Generate the Font
    Go to File > Generate Fonts... to export your updated font file without any kerning pair data.


Alternative: Remove Kerning Using Python Scripting

If you prefer using the FontForge command-line interface or Python automation, you can strip all GPOS kerning lookups using the following script:

import fontforge

font = fontforge.open("your-font.sfd")

# Iterate through GPOS lookups and remove those with the 'kern' feature
for lookup in font.getLookupSubtables("GPOS"):
    info = font.getLookupInfo(lookup)
    for feature in info[2]:
        if feature[0] == "kern":
            font.removeLookup(lookup)
            break

font.generate("your-font-cleaned.otf")

This script scans the font's GPOS table, identifies any lookup associated with the kern feature tag, removes it entirely, and generates a new font file.