Unicode superscripts one, two and three […] are […] the same "height". Unicode superscripts four and five […] are […] the same "height" but said height seems to be different from the heights of Unicode superscript one, two and three.
Unicode is about encoding characters not about their detailed shape. For example, the Unicode character U+0067 (Latin Small Letter G) can look quite differently depending on the typeface, e.g., its descender can be open or closed – Unicode does not care.
Analogously, Unicode does not prescribe anything regarding the height of the superscript numerals. However, the intention is that those characters are realised to match each other, i.e., with the same height. But taking care of this is the job of the type designer.
Unicode superscripts one, two and three seem to have been done at the same time […]. Unicode superscripts four and five seem to have been done at the same time but at a different time from one, two and three […]
This is really only a historical thing and probably due to some backwards compatibility with older encodings or similar. One could dig into Unicode’s history to find out what exactly happened, but it does not really matter today.
The main impact of this is that the first three superscripts are in the Unicode Block Latin-1 Supplement. As the glyph coverage of a font is often specified and advertised in supported Unicode blocks, and Latin-1 Supplement is an important block (containing, e.g., the special characters needed for most European languages using the Latin alphabet), many type designers will implement all characters in this block for the sole reason that their font covers this block, even characters like ¬, ¦, and ¤ (U+00A4, U+00A6, and U+00AC) that are hardly used anymore nowadays.
These type designers may also not support the Superscripts and Subcripts block, which contains the other superscript numbers. Also, as the creation of proper superscript numerals costs time (see below), some type designers may decide only to support the first, most important ones.
When you use such a font that only supports the first three superscript numerals, whatever renders your text will use a fallback font for the other numerals, and thus they won’t match. This is very likely the observation that caused your question.
I'm hoping to not have to use <super></super>
for every one.
As already hinted at above, typographically good superscript numbers aren’t just rescaled normal numbers – which you would usually get when using <sup>
or similar¹. Rescaled normal numbers would typically be too thin or would dissonate with the normal text in other aspects. This problem is similar to that of optical sizes. Moreover, the default numerals may be are lowercase numerals, which you do not want to use for superscript numbers.
Here are some examples of fonts supporting superscript numbers (which then match each other). For comparison, on the right side, you have superscript numbers generated by resizing the regular numbers.
In all examples, the designated superscript numerals are bolder, broader and smaller than the scaled regular numerals. (Of course, you could scale the regular numerals even smaller, but this would intensify the other differences.)
Note that in the first example, the serifs of the superscript numbers are the same size as those of the letter. In the fourth example, the superscript numerals are of a totally different style than the regular numerals (which also happen to be lowercase numbers).
¹ Unless your font supports the OpenType feature Superscript Forms (sups
) and your browser uses this feature for the <sup>
tag, when possible. However, as far as I can tell, no browser does this as of now.