hhea — Horizontal Header Table

This table contains information for horizontal layout. The values in the minRightSidebearing, minLeftSideBearing and xMaxExtent should be computed using only glyphs that have contours. Glyphs with no contours should be ignored for the purposes of these calculations. All reserved areas must be set to 0.

Type Name Description
uint16 majorVersion Major version number of the horizontal header table — set to 1.
uint16 minorVersion Minor version number of the horizontal header table — set to 0.
FWORD ascender Typographic ascent (Distance from baseline of highest ascender).
FWORD descender Typographic descent (Distance from baseline of lowest descender).
FWORD lineGap Typographic line gap.
Negative LineGap values are treated as zero in some legacy platform implementations.
UFWORD advanceWidthMax Maximum advance width value in 'hmtx' table.
FWORD minLeftSideBearing Minimum left sidebearing value in 'hmtx' table.
FWORD minRightSideBearing Minimum right sidebearing value; calculated as Min(aw - lsb - (xMax - xMin)).
FWORD xMaxExtent Max(lsb + (xMax - xMin)).
int16 caretSlopeRise Used to calculate the slope of the cursor (rise/run); 1 for vertical.
int16 caretSlopeRun 0 for vertical.
int16 caretOffset The amount by which a slanted highlight on a glyph needs to be shifted to produce the best appearance. Set to 0 for non-slanted fonts
int16 (reserved) set to 0
int16 (reserved) set to 0
int16 (reserved) set to 0
int16 (reserved) set to 0
int16 metricDataFormat 0 for current format.
uint16 numberOfHMetrics Number of hMetric entries in 'hmtx' table

NOTE: The ascender, descender and linegap values in this table are Apple specific. Also see information in the OS/2 table.

'hhea' Table and OpenType Font Variations

In a variable font, various font-metric values within the horizontal header table may need to be adjusted for different variation instances. Variation data for 'hhea' entries can be provided in the metrics variations (MVAR) table. Different 'hhea' entries are associated with particular variation data in the MVAR table using value tags, as follows:

'hhea' entry Tag
caretOffset 'hcof'
caretSlopeRise 'hcrs'
caretSlopeRun 'hcrn'

For general information on OpenType Font Variations, see the chapter, OpenType Font Variations Overview.