Skip to main content
☀️ Summer Founder's Deal: FontCreator lifetime license $49 (normally $199). Limited time — ends July 14. Get the deal →

FontCreator Tutorials

Font Metrics – Vertical Line Spacing

written by Erwin Denissen, published June 26, 2026

You'll need: FontCreator (Windows or macOS), a font with most of its glyphs drawn, and a few apps to test in (a word processor, a browser, and ideally one Mac and one Windows machine).

Vertical metrics decide how much space sits above and below your characters and how far apart lines of text fall. Set them well and your font behaves the same everywhere; set them carelessly and the same font clips tall accents on one platform and spaces lines too widely on another. This is worth thinking about early in a design — especially for scripts with stacked diacritics, such as Vietnamese, where capitals can carry two marks above.

The catch is that word processors, page-layout software, e-readers, game engines, web browsers, PDF producers, and printer drivers do not all read line spacing from the same place. This tutorial explains which metrics matter, how to keep them consistent across Windows, macOS, and the web, and how FontCreator can calculate them for you. The advice applies to any font editor, but the steps are written for FontCreator.

Vietnamese capital letters with two stacked accent marks above, illustrating tight vertical space.

A line of Vietnamese capitals carrying two stacked diacritics each, showing how little room remains above the letters.

Outdated and incorrect information

Both the OpenType specification and the recommendations around vertical metrics have changed over the years, so a lot of conflicting and outdated advice circulates online. Treat this page as the current, recommended approach.

The three groups of spacing metrics

Before OpenType, there were TrueType fonts for Windows and PostScript fonts for the Macintosh. OpenType unified the format across platforms, but it inherited platform-specific legacy metrics. As a result, an OpenType font carries three groups of vertical spacing metrics:

  • Typographic — the cross-platform values (OS/2 Typo Ascender, Typo Descender, Typo Line Gap).
  • Windows — used by Windows for clipping and, in some cases, line spacing (OS/2 Win Ascent, Win Descent).
  • Macintosh — design-intent values some Mac applications use (hhea Ascender, Descender, Line Gap).
FontCreator Font Properties dialog showing the three groups of vertical metrics.

FontCreator Font Properties dialog open on the Metrics page, showing the Typographic, Windows, and Macintosh metric groups.

Use typo metrics for line spacing

To overcome the cross-platform inconsistency, the OpenType specification added a flag in the OS/2 table's fsSelection field: USE_TYPO_METRICS — surfaced in FontCreator as "Use typo metrics for line spacing". We highly recommend enabling it.

When this flag is set, conforming applications use the Typographic values to determine default line spacing, regardless of platform. For example, with the flag on, Microsoft Word uses the Typographic values. With the flag off, Word falls back to Win Ascent and Win Descent plus Line Gap for default line spacing.

One thing the flag does not change: on Windows, text is still clipped above and below the Win Ascent / Win Descent values. So make sure every glyph outline — including the tallest accented capitals and lowest descenders — sits within that non-clipping zone.

> Note: More and more applications honor the Typographic metrics, but some legacy software still reads the Windows or Macintosh values. Setting all three groups consistently, as described below, keeps line spacing stable everywhere.

Recommended recipe (Google Fonts / SIL style)

If you want a single, modern recipe that behaves predictably everywhere — the same approach the Google Fonts project and the SIL guidelines recommend — follow this checklist. It produces consistent line spacing across apps and platforms while protecting tall accents from clipping on Windows. Treat it as the best-practice default; the detailed per-group explanation below shows the reasoning.

  • Use the same vertical metrics across every style in the family — regular, italic, bold, bold italic, and every weight or width. Identical metrics keep a document's layout from reflowing when the reader switches style.
  • Turn on "Use typo metrics for line spacing" (OS/2 fsSelection bit 7, USE_TYPO_METRICS). This tells conforming apps to take their line spacing from the typographic metrics on every platform, so the result is consistent.
  • Set hhea Ascender / Descender equal to the OS/2 Typo Ascender / Typo Descender. With the values aligned, apps that read the Macintosh (hhea) metrics produce the same line spacing as apps that read the typographic metrics.
  • **Set OS/2 Win Ascent / Win Descent large enough to cover your tallest glyphs, including diacritics.** On Windows these values are the clipping boundary — they must enclose the tallest accented capitals and the lowest descenders (and any stacked-diacritic combinations) so nothing is cut off.
  • Set Typo Line Gap = 0 and bake any breathing room into the ascender / descender. Rather than adding line gap, fold the extra space you want into the Typo Ascender / Descender values (the Google Fonts convention). Line spacing then equals Typo Ascender − Typo Descender, which is easy to reason about and reproduce.

This recipe keeps line spacing identical across Windows, macOS, and the web, and it never clips on Windows because the Win values are sized to the real outlines. The sections that follow explain each group in more detail if you'd rather set the values by hand or understand exactly what each one controls.

Setting the values

The goal is for all three groups to agree, so spacing stays consistent whether an app reads Typographic, Windows, or Macintosh metrics.

Typographic (OS/2 ▸ Typo Ascender, Typo Descender, Typo Line Gap)

Typo Ascender and Typo Descender should sum to at least the units per em (upem). Take the maximum and minimum vertical outline positions across all glyphs that cover the primary languages your font supports — usually an extended Latin set such as Basic Latin plus Latin-1 Supplement — then scale the two values proportionally so their total reaches upem.

Set Typo Line Gap between 7% and 25% of upem, so the three Typographic values together make a comfortable default line spacing.

Windows (OS/2 ▸ Win Ascent, Win Descent)

Win Ascent and Win Descent must accommodate the maximum and minimum vertical outline positions across all glyphs — this is the clipping boundary on Windows. Scale them so that Win Ascent − Win Descent is at least equal to (Typo Ascender − Typo Descender + Typo Line Gap).

Macintosh (hhea ▸ Ascender, Descender, Line Gap)

These represent the designer's intent rather than a computed bound, and individual glyphs may exceed them. Some (mainly Mac) applications use them. Simply set them to match the corresponding Typographic values.

Let FontCreator calculate the values

Working all of this out by hand is fiddly. FontCreator has a button that computes the metrics for you based on your actual outlines:

  1. Open the Font Properties dialog and go to the Metrics page.
  2. Use the calculate button to populate the Typographic, Windows, and Macintosh values from your glyphs.
  3. Adjust the line gap to your liking and confirm you agree with the calculated values.
  4. Make sure "Use typo metrics for line spacing" is enabled.

Then test the font on Windows, macOS, web browsers, and applications like Microsoft Word and Adobe InDesign before you ship.

FontCreator metrics calculation, with the auto-calculate button and resulting vertical metric values.

FontCreator Font Properties ▸ Metrics page with the calculate button highlighted and computed Typographic, Windows, and Macintosh values filled in.

> Tip: Use the same vertical metrics across every style in a family — regular, italic, bold, bold italic. If the values differ between styles, a document's layout will reflow whenever the reader switches style.

> Watch out: Some fonts combine base characters with stacking marks that, used together, exceed the calculated limits — common with Vietnamese and other heavily accented scripts. If that applies to yours, increase the spacing metrics so the tallest real combinations are not clipped on Windows.

Remaining issues and thoughts

CJK (Chinese, Japanese, Korean) fonts intended for vertical layout have additional metric requirements beyond what is covered here — see CJK & Large Fonts.

You may find it impossible to perfectly balance consistent cross-platform layout against ideal spacing. If the outlines are too small or too large relative to the em, consider resizing your glyphs: outlines are too small if Cap Height is less than ½ upem, and too large if it exceeds ¾ upem.

Troubleshooting

SymptomLikely causeFix
Tall accents or descenders are clipped on WindowsWin Ascent / Win Descent too tight for the actual outlinesRecalculate metrics, or raise Win Ascent / Win Descent to enclose all glyphs
Line spacing differs between Word, browsers, and macOSUSE_TYPO_METRICS not set, or the three groups disagreeEnable "Use typo metrics for line spacing" and set all three groups consistently
Document reflows when switching bold/italicFamily styles use different vertical metricsApply identical metrics across every style in the family
Stacked diacritics get clippedCombinations exceed calculated limitsIncrease the spacing metrics to fit the tallest real combinations
Spacing looks cramped or loose everywhereOutlines too large or too small for the em, or wrong Line GapCheck Cap Height (½–¾ upem) and set Typo Line Gap to 7–25% of upem

Frequently asked questions

What is USE_TYPO_METRICS and should I enable it? It is a flag in the OS/2 fsSelection field, shown in FontCreator as "Use typo metrics for line spacing." Enable it: it tells conforming applications to use the cross-platform Typographic values for line spacing, which is the most consistent behavior across Windows, macOS, and the web.

Why are there three sets of metrics at all? OpenType inherited platform-specific legacy metrics when it unified TrueType (Windows) and PostScript (Mac) origins. Setting all three groups consistently covers modern and legacy applications alike.

Why is my font clipping on Windows but not on macOS? Windows clips text at the Win Ascent / Win Descent values. If a glyph's outline extends beyond them, it is cut off. Recalculate the metrics so those values enclose every glyph.

Should every font in my family share metrics? Yes. Identical vertical metrics across regular, italic, bold, and bold italic prevent documents from reflowing when the style changes.

My font has stacked marks that get clipped — what now? The calculated limits may not cover the tallest base-plus-marks combinations. Increase the spacing metrics so those real combinations fit within the non-clipping zone.

What to read next

  • CJK & Large Fonts — vertical metric requirements for Chinese, Japanese, and Korean fonts, including vertical layout.
  • Font Family Settings — keeping naming and metrics consistent across styles so families behave as one.