Scaled UPM does not scale metrics keys

When scaling to a new UPM I noticed that metrics keys are not scaled (while using 1192). While this is not an issue if the file is being scaled before an export, it is rather problematic if the designer intends to make more edits to the spacing after scaling.

I would expect keys with multiplication or division to be untouched and ones with subtraction, addition or a set value to be scaled accordingly.

This is tricky. Because a key line =n*0.5 should not be changed, while n+10 or =10 might need to be adjusted. Everything else should be fine. You still might get metrics key warnings because of rounding errors.


I’m facing a similar situation:

as lots of my spacing values are additions or substractions from “o” or “n” [e.g. ==o+11(63)],
they have not been (or rather just partly) affected by scaling to a new UPM .

Is setting new metric values for all the not-effected glyphs the only way to resolve this ?

I had the idea to convert all these calculations to integers (so the value is just “63”) before scaling the UPM to preserve the spacing ratio, but it came to my mind that if i would do so, i would loose the benefit of these calculations for further editing after scaling…

Therefore I ask myself two questions:
is the smartest way of calculating spacing values to just use multiplying factors instead of additions or substractions? Or maybe even smarter: setting up vertical metrics before starting with detailed spacing?

How are typedesign professionals handling this?

I personally don’t use metics key calculations very often. I don’t see many places where that might be really useful. Can you give some examples where you find it very useful?

I find metrics keys (using + or -) to be very useful for maintaining consistent spacing in glyphs that have similar shapes but may need a slight adjustment.

A prime example for me would be the letters /b/d/p/q. Though the bowls are similar to an /o they are often slightly flatter and thus take a couple units of extra space, so I like to set the metrics to something like ==o+4. For me this relationship is very important because if I decide that my rounds are too loose then I can tighten up the sides of the /o and the bowls of the other letter will follow suit whilst maintaining their optical adjustments. I feel that using + or - is better suited to this and I rarely use / or *

That’s the way I work, but I’m interested in seeing how others use it :slight_smile:

Also @birdland, I recall making a macro to scale the keys shortly after creating this thread. I’ll see if I can track it down later tonight and post it here.


I work similarly to @mjlagattuta and the rationale he shared. It is indeed helpful and a time-saver.

1 Like

And how much do you usually do scale your font? If it is less than 20% difference, those small values will not change or much more as you would expect because of rounding.

Can you give more examples? Maybe I can come up with something?

For the font I was working on I scaled it from 1000UPM to 2000UPM

Ah, I found my macro using regex to parse the keys and scale them accordingly. Worked for my use case, hopefully it is helpful to others:

As for other examples I have some projects on my other machine so I’ll see what I can come up with later

1 Like

For scaling factors like this it makes sense. I’ll have a look.

1 Like

Thanks @mjlagattuta for your script!