In Neo Euler font there are often two are three variants of the same glyph, with different names. For instance uni0061 and uni0061.ssty2

enter image description here

Why have different variants and what are they used for?

enter image description here

  • 2
    That is a decision of the font designer. The above a is variant of the default "a". There are often more variants for other glyphs in a font.
    – user2478
    Mar 14, 2019 at 7:32
  • 1
    I understand that it is a decision of the font designer. But I wonder what people have used these variants for? Is it to simulate a human writing style where there is a variation of the glyph, or is it for some other purpose. Is there an actual case where people have used different glyph variants?
    – Bob Ueland
    Mar 14, 2019 at 8:00
  • 4
    The ssty2 variant is to be used in subscripts/superscripts. In Computer Modern there are separate fonts for that, but in OTF they can be packed into one font. Mar 14, 2019 at 8:10

1 Answer 1


To find out what the glyph is supposed to do, the name is often a good indicator:


This part uni0061 is clear, we have Unicode char U+0061, "LATIN SMALL LETTER A". But why ssty2? Often, these name suffices are based on the OpenType feature they are used in. (At least fontforge also allows to look up the related features directly without relying on the name) You find a list of all standard feature names with descriptions in the Opentype specification. For ssty it says

Friendly name: Math script style alternates

This feature provides glyph variants adjusted to be more suitable for use in subscripts and superscripts. The script style forms should not be scaled or moved in the font; scaling and moving them is done by the math handling client. Instead, the 'ssty' feature should provide glyph forms that result in shapes that look good as superscripts and subscripts when scaled and positioned by the Math engine. [...]

This feature can have a parameter indicating the script level: 1 for simple subscripts and superscripts, 2 for second level subscripts and superscripts (that is, scripts on scripts), and so on. (Currently, only the first two alternates are used). [...]

So uni0061.ssty2 is a variant of uni0061("a") for "second level subscripts and superscripts", for example in $a^{a^a}$ you would have uni0061 first, then uni0061.ssty1 and finally uni0061.ssty2.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .