Weird "compress" kerning behavior

Whenever I compress kerning, all the glyphs that had no kerning take the values of the exceptions. For example I did a test with “lo” and “lě” in which “lo” had no kerning and “lě” was an exception with +40. But when I compress “lo” gets the +40 and the lock is closed. Why is this happening?

It’s an expected behaviour. Imagine other cases where you had TA pair but not in TÁ, it would be logical to use the TA value (that was the more common than the other way). I have a habit of always entering 0 to the nominal cases where you expect to make exceptions in order for this problem to happen.

1 Like

Thanks for your answer, Toshi. Although I understand what you are saying, I don’t see the purpose of this action and find it quite dangerous. Compress sounded to me as a more technical feature (to reduce filesize), I didn’t expect it to change the existing kerning, so I’m not really sure in which scenario I would use it.

It’s exactly meant for reducing redundant data, by converting non-group values to group ones as much as possible while retaining exceptions. If there are only exceptions for given pairs, Glyphs recognises them as nominal values. The important distinction is that the 0 is recognised as kern value, which is not the same as no value.

Having said that, the most useful scenario for Compress is when you have to convert non-group kerning to group ones, which are generally two cases: you need to update an old font, or you started the font from scratch, but didn’t kern it using kerning groups initially. If your font doesn’t fall into either cases, Compress provides no benefit.

1 Like

I understand much better now but I still think many users are tempted to press compress without expecting changes, and I think that rarely people set 0 as a kern value. It can be useful for the purposes you are mentioning but probably more as a script or filter… Thanks for the explanation anyway!