Resizing fonts and Changing Units per Em Values

Valid range is from 16 to 16384. This value should be a power of 2 for fonts that have TrueType outlines.

This value is used to convert values in the pixel coordinate system by multiplying them by a scale. This scale is:

pointSize * resolution / ( 72 points per inch * units_per_em )

Guidelines from Microsoft:
http://www.microsoft.com/typography/developers/delivery/hinting.htm?fname=%20&fsize=

unitsPerEm should be a power of 2, (2048 ideally).

2048 units were chosen for a few reasons.


It is a power of 2 value. (2^11)
2048 is a high enough value for good precision in rendering.
2048 is a low enough value to be processed efficiently by microcomputers.
In the Asian fonts for Windows, MS Mincho and MS Gothic it was necessary (at the time of their release) to choose a lower value (256 units) because of the file size of these font files.

The actual units per em value is a balance between the amount of processing power, the complexity and size of the font file, and the amount of precision that can be obtained with this value. A low units per em value would result in less quality in the output but be faster to process. A high units per em value would produce a higher quality output but be slower in processing.

Today computers are more powerful than ever and the use of large fonts with thousands of glyphs is becoming more common especially with Unicode and OpenType fonts. With today’s computers we suggest the 2048 units per em value as still the best value for all fonts of any size including large Latin or non-Latin script fonts.