How to Set Proportional Figures in FontForge

This guide explains how to configure proportional spacing rules for numeral figures in FontForge. You will learn the difference between tabular and proportional metrics, how to adjust individual side bearings in the Metrics Window, how to configure kerning pairs for numerals, and how to assign proper OpenType features so software can correctly render your proportional figures.

1. Understand Proportional Figures vs. Tabular Figures

Tabular figures share the exact same advance width across all numbers (0–9) so columns of numbers align vertically. Proportional figures have customized widths and side bearings tailored to the shape of each numeral—for example, a narrow "1" occupies significantly less horizontal space than an "8" or a "0".

2. Set Side Bearings in the Metrics Window

To establish the base spacing for each proportional numeral:

  1. In the Font View, select the figures (0 through 9). If you already have tabular figures as your default, name your proportional glyphs with a suffix such as zero.pnum, one.pnum, etc.
  2. Go to Metrics > Open Metrics Window (or press Ctrl+K on Windows/Linux, Cmd+K on macOS).
  3. Type the numbers sequentially in the text line to evaluate how they interact (e.g., 0123456789 or sandwiching them between reference letters like n0n1n2n).
  4. Select a glyph by clicking between its boundaries in the Metrics Window.
  5. Manually edit the LBearing (Left Side Bearing) and RBearing (Right Side Bearing) values in the metrics fields, or drag the vertical dashed lines in the glyph display area.
  6. Adjust the spacing optically rather than mathematically, ensuring the whitespace surrounding each numeral visually balances with the counter spaces inside the figures.

3. Apply Automated Spacing Rules

If you prefer consistent calculated spacing before manually fine-tuning:

  1. Select your target numerals in the Font View.
  2. Navigate to Metrics > Auto Width.
  3. Specify a target spacing rule or average advance width based on your font’s design criteria.
  4. Review the results in the Metrics Window and make manual optical adjustments where necessary.

4. Create Figure Kerning Pairs

While side bearings handle general spacing, certain numeral combinations (such as 17, 74, or 41) require kerning adjustments:

  1. Go to Element > Font Info.
  2. Select Lookups from the left-hand menu, then select the GPOS tab.
  3. Click Add Lookup, set the lookup type to Pair Adjustment (Kerning), and choose the feature tag kern (Horizontal Kerning).
  4. Click Add Subtable to configure a kerning subtable. You can create a glyph-by-glyph kerning pair list or set up kerning classes (e.g., grouping numerals with flat vs. round edges).
  5. Open the Metrics Window again, enter the problematic number combinations, and drag the kerning handle between the glyphs to establish proportional kerning values.

5. Map the pnum OpenType Feature

If your default figures are tabular, register the proportional figures under the OpenType Proportional Numbers (pnum) feature:

  1. In Element > Font Info > Lookups, select the GSUB (Glyph Substitution) tab.
  2. Click Add Lookup, choose Single Substitution, and assign the feature tag pnum.
  3. Click Add Subtable.
  4. In the subtable dialog, map the default numerals (zero, one, etc.) to your proportional alternates (zero.pnum, one.pnum, etc.).
  5. Click OK to save the font settings, then generate your updated font files via File > Generate Fonts.