Superscript and subscript positions

RachelR's picture

How does the information in the "Superscript and subscript positions" table from the font info window relate to the position of the Super/Subscript ?

Is the Y pos taken from the bottom of the glyph ?

Are the X size and Y size average sizes ?

j.hadley's picture

X/Y size values are scale factors relative to the em. e.g. a value of 700 on a font that is on a 1000-unit em would result in characters scaled to 7/10 size.

Y pos values are relative to the baseline; for subscript, positive values move *downward* from the baseline.

Normally leave X pos values at zero except for italics, where you generally want to calculate along the italic angle.

More detailed info on these settings at

RachelR's picture

Thanks for that.

I'm still slightly confused as to the factor I should use. I am using a UPM of 1000. The ascender height of the subscript is 541 and the x height is 394

What should this work out to????

.00's picture

Since these values only control the "fake" super/subscripts, the easiest thing to do is include real super and subscript glyphs and control their behavior with some OpenType programming. Then ignore these values (leave them as is as a default).

RachelR's picture

I have drawn the superscipt and subscript - can you tell me which OpenType programming you mean please?


j.hadley's picture

While it's true that these control the "fake" super/subs, many apps and operating systems *still* don't support super/subs via OpenType. So the best thing to do is at least take a decent whack at setting these values. At minimum, try to test in apps that use them (e.g. MS Word) and verify that the defaults are giving reasonable results.

As to the specifics:
The X/Y size values represent a scale factor. Since X and Y are separated, this allows you to scale the width differently than the height, which you might want to do to give more weight to the stems, rather than just a straight scale. To figure out the values to use, look at your real, designed sups/subs, and calculate what percentage they are of the original (i.e. "zero superior is 65% of the size of the normal zero", use 650 for the size).

Per the spec: the Y pos ("offset") values "specif[y] a font designer's recommended vertical offset from the character baseline to the character baseline for subscript characters". So, work out where you want the baseline of the superscripts to be, relative to the normal baseline of the font, in em units, and enter that value. For example, if the superscript baseline is at 400 units above the normal baseline, enter 400. The only slightly odd thing as I mentioned above is that + values mean "down" for Y subscript if the subscript baseline is at -300, you'd just use 300 for that value.

The X pos values are used for italics, to control positioning along the italic angle. You can use some simple trigonometry to calculate that (using the Y pos value + italic angle).

Jackson's picture

I have drawn the superscipt and subscript - can you tell me which OpenType programming you mean please?

Syndicate content Syndicate content