General Font Metrics
Posted: Thu Dec 28, 2006 12:27 am
Superscripts and Subscripts
Relevant Page in the Manual • Specifications at Microsoft Typography
The font metrics for superscripts and subscripts are found from the Format menu, Settings, on the General tab. These values can be used by applications to calculate the size and position of superscripts and subscripts. Adding these metrics to your fonts will ensure that superscripts and subscripts are the right size and position in applications that use these metrics.
To calculate the metrics for your fonts, you need to take some measurements using the transform tool or the status line. I have measured the superscript 2, which is found in most fonts. The superscript Y position, which is the desired height of superscripts above the baseline in funits, I call the SupS Position.
To calculate the Superscript y-offset from this value we need to know the size of superscripts relative to the figures in the font. To get this scale factor I measure the zero and the superscript zero. If your fonts don’t have the superscript zero, you could use the figure 2 and superscript 2.
Select the glyph and note the width and height on the Size tab of the Transform toolbar. I call these values SupS Width and SupS Height respectively.
Do the same for the figure 2 to get the values for Figure Width and Figure Height. Note the funits/em value for your font on the Header tab of the Format, Settings dialogue. This value is often 2048, but may be different for your font.
The value for Superscript Vertical is calculated using the formula:
SupS Vertical = (funits/em) x (SupS Height) / (Figure Height)
For example: SupS Vertical = 2048 x 852/1520 = 1148
And the value for Superscript Horizontal is calculated using the formula:
SupS Horizontal = (funits/em) x (SupS Width) / (Figure Width)
For example: SupS Vertical = 2048 x 602/963 = 1280
The values Superscript Vertical and Superscript Horizontal can be used by applications to scale superscripts from the figures. Applications may scale in both directions by the same proportion using only the value for Superscript Vertical, but it is better to use a slightly larger scale factor for width to help to compensate for the fact that scaled figures are too light compared to other glyphs in the font. Ideally, a font should contain properly designed superscripts.
The metrics Subscript Vertical and Subscript Horizontal are calculated in exactly the same way, but since the sizes of subscripts and superscripts are usually the same, there is no need to do the calculations again — just use the values for Superscript Vertical and Horizontal. If you want subscripts to be smaller than superscripts, then you will need to use different values for these metrics.
The position recommended by Microsoft Typography for superscripts is aligned to the tops of figures, but you can define the position that you recommend for your fonts by using these metrics. Too high, and they will clash with descenders in the line above; too low and they may be hard to spot in a line of text. The position of superscripts and subscripts in your fonts is calculated from these formulae:
Superscript y offset = (SupS Position) x (Figure Height) / (SupS Height)
For example: Superscript y offset = 668 x 1520 / 852 = 1192
Subscript y offset = (SubS Position) x (Figure Height) / (SubS Height)
For example: Subscript y offset = 420 x 1520 / 852 = 749
The recommended position for subscripts is bisecting the baseline. The calculation for Subscript y-offset is similar to that for Superscript y-offset, but the value is expressed as a positive offset below the baseline. Negative values will position the subscript above the baseline.
The Superscript and Subscript x offsets are calculated from the corresponding y offsets using the caret run. For italic fonts, they are used to offset superscripts to the right and subscripts to the left. Negative values will offset subscripts to the left. The caret run / caret rise = tangent of the italic angle. For an italic angle of 11° the caret run will be 194/1000 which is the tangent of 11°. For upright fonts these values are zero.
Relevant Page in the Manual • Specifications at Microsoft Typography
The font metrics for superscripts and subscripts are found from the Format menu, Settings, on the General tab. These values can be used by applications to calculate the size and position of superscripts and subscripts. Adding these metrics to your fonts will ensure that superscripts and subscripts are the right size and position in applications that use these metrics.
To calculate the metrics for your fonts, you need to take some measurements using the transform tool or the status line. I have measured the superscript 2, which is found in most fonts. The superscript Y position, which is the desired height of superscripts above the baseline in funits, I call the SupS Position.
To calculate the Superscript y-offset from this value we need to know the size of superscripts relative to the figures in the font. To get this scale factor I measure the zero and the superscript zero. If your fonts don’t have the superscript zero, you could use the figure 2 and superscript 2.
Select the glyph and note the width and height on the Size tab of the Transform toolbar. I call these values SupS Width and SupS Height respectively.
Do the same for the figure 2 to get the values for Figure Width and Figure Height. Note the funits/em value for your font on the Header tab of the Format, Settings dialogue. This value is often 2048, but may be different for your font.
The value for Superscript Vertical is calculated using the formula:
SupS Vertical = (funits/em) x (SupS Height) / (Figure Height)
For example: SupS Vertical = 2048 x 852/1520 = 1148
And the value for Superscript Horizontal is calculated using the formula:
SupS Horizontal = (funits/em) x (SupS Width) / (Figure Width)
For example: SupS Vertical = 2048 x 602/963 = 1280
The values Superscript Vertical and Superscript Horizontal can be used by applications to scale superscripts from the figures. Applications may scale in both directions by the same proportion using only the value for Superscript Vertical, but it is better to use a slightly larger scale factor for width to help to compensate for the fact that scaled figures are too light compared to other glyphs in the font. Ideally, a font should contain properly designed superscripts.
The metrics Subscript Vertical and Subscript Horizontal are calculated in exactly the same way, but since the sizes of subscripts and superscripts are usually the same, there is no need to do the calculations again — just use the values for Superscript Vertical and Horizontal. If you want subscripts to be smaller than superscripts, then you will need to use different values for these metrics.
The position recommended by Microsoft Typography for superscripts is aligned to the tops of figures, but you can define the position that you recommend for your fonts by using these metrics. Too high, and they will clash with descenders in the line above; too low and they may be hard to spot in a line of text. The position of superscripts and subscripts in your fonts is calculated from these formulae:
Superscript y offset = (SupS Position) x (Figure Height) / (SupS Height)
For example: Superscript y offset = 668 x 1520 / 852 = 1192
Subscript y offset = (SubS Position) x (Figure Height) / (SubS Height)
For example: Subscript y offset = 420 x 1520 / 852 = 749
The recommended position for subscripts is bisecting the baseline. The calculation for Subscript y-offset is similar to that for Superscript y-offset, but the value is expressed as a positive offset below the baseline. Negative values will position the subscript above the baseline.
The Superscript and Subscript x offsets are calculated from the corresponding y offsets using the caret run. For italic fonts, they are used to offset superscripts to the right and subscripts to the left. Negative values will offset subscripts to the left. The caret run / caret rise = tangent of the italic angle. For an italic angle of 11° the caret run will be 194/1000 which is the tangent of 11°. For upright fonts these values are zero.