Kerning exceptions shortcut

Is there any keyboard shortcut for opening/closing the class locks? I couldn’t find it on the manual, and reaching for the mouse for every exception has been proving somewhat tedious.

1 Like

On a similar topic, it would be great if one could copy a kerning class, say, @a (as the second character) to make @aaccent. That way, all pre-defined kerning pairs of lowercase characters with @a could be preserved in @aaccent, and you’d have to edit only the few pairs that collide with an accent (such as @T@aaccent). Even better would be if the kerning pairs that you don’t edit would stay hotlinked to @a.

1 Like

No. You might be able to write a script and assign a shortcut to it.

@CatharsisFonts
I suspect you misunderstand the idea of kerning classes. Did you read the section in the Handbook and the tutorial: https://www.glyphsapp.com/tutorials/kerning (look for Group Kerning)

Alright, I’m taking a look at the API right now and it seems doable.

I can’t find a method to detect which glyphs are on the left and on the right of the cursor while in text mode. Is there anything like it or should I make the user select both glyphs and then run the script?

Georg: I get kerning classes, I’ve been using them exclusively ever since I moved to Glyphs.

My point is that I almost never have individual kerning exceptions, but whole groups of exceptions that merit the creation of a new (but related) kerning group.

For instance, a cursive /a and /ä will both have to kern the same way when preceded by /f, /r, dashes, etc., but they will have to respond differently to /T, /V, high quotes, etc. So I will usually have two kerning classes @a and @aaccent distinguishing those cases. It would save me time if I could define the kerning class @aaccent as identical to @a to begin with and then change only the cases where it differs from @a. Even better, if the common kerning rules between –@a and –@aaccent were hotlinked, I could later tweak the kerning between, say, @r@a and it would automatically also adjust @r@aaccent, without me having to remember to propagate the change to related kerning classes.

I had an idea for implementing this, but it gets very complicated very quickly. What if you make a change to an @a kerning later on: how should the algorithm decide if it is @a only or also @aaccent? What if it is alright for aacute, but not for agrave? And if amacron and aacute need different treatment?

What I have come to do is to do /a only and look for crashes afterwards, and fix those individually.

I have made scripts that make exception (one for left side, another for the right). I may put them on Github if people want them. Anyone?

1 Like

I have a script in my Github called Copy Kerning Pairs, one function of which copies all pairs belonging to a group to another, for the purpose you described. In my process, I kern the normal letters first, run the script, and work on the accented ones. Admittedly it doesn’t keep common pairs in sync, so you have to make sure to modify all groups when you make change in such cases.

By the way I have a script for copying Latin kerning to Greek and Cyrillic letters too (supports cursive Cyrillic forms). I am also thinking of a script that splits mixed-script kerning groups, and copying necessary pairs in the process.

This is exactly what I’m trying to achieve. I’d be much appreciated if you decide to share them with the world :wink:

Sorry, I thought I made one with the help of Georg but I cannot find it. Hmm…

Not a problem, Tosche! I’ll end up writing a script for that some day. When I do, I’ll post it on GitHub and a link here.

Thanks anyway!

Well, actually, I have just found the script I was looking for. I’ll polish it and post it soon.

Here you go, the easier kerning exception maker everybody was waiting for! Each button is tied to the numeral keys 1 to 4.

2 Likes

Actually this image mistakenly places the cursor outside the pair. It has to be in between.

This is awesome! I’ve already downloaded it and it works like a charm.
If you’re coming to ATypI São Paulo, let me buy you a drink! :wink: