UPM value for OTF fonts


There is a bug in Yosemite that makes characters of the OTF fonts with the higher value of 1000 to print or show in the PDF made by Apple OS smaller. See this link for sample:

I know that default number of UPM is 1000. But I want to make sure that having higher values is completely permitted and legal. Adobe has fonts OTF with higher UPM like Adobe Naskh or Adobe Arabic. May you give some explanations about UPM value please.

Thank you

The official OT Specs state:
Valid range is from 16 to 16384. This value should be a power of 2 for fonts that have TrueType outlines.

While most TT-based OpenType fonts have a UPM of 2048, PS-based Opentype fonts usually have a UPM of 1000, a heritage of old PS Type 1 fonts. I would recommend to leave it at 1000 because software may expect it to be at that value. There are a number of incompatibilities you will run into, particularly PDF creation, and if you are way off, some software will refuse to display the font in the first place. Google “OpenType UPM” and you will find quite a few threads on Typophile or Typedrawers about problems people have encountered.

There is no technical necessity to have it at anything other than 1000. If 1000 yields too coarse a grid for you, you can set Font > File info > Other Settings > Subdivision to 10 or 100, giving you one or two extra decimals per unit. The finer grid exports into the final (PS-based) .otf file,

One more thing: A PS coordinate (x or y) must not be beyond ±8191. Very high UPMs may inadvertently lead to node coordinates beyond that value.

Thank you very much for the information. You are very helpful as always.

Just to be clear. OTF fonts with a UPM value bigger than 1000 (and lower than 8000) are perfectly legal. But some software has problems with it. Before the release of MacOS 10.10, the practical limit was around 4000 units, above that, Indesign couldn’t reliably convert text to paths.

I once had to experiment with MS Office software on Windows, and the limit it could take was 3000 and something. 4000 was too much already.