Decompressing kerning group

Is it possible to decompress a kerning group without loss of the kerning values ?

As example:
If @o is /o and /e. When I decompress @T/@o (-10) I would like to get To (-10) and Te (-10).

Can be done with a script. But… why?

I need to take out a few glyphs out of a group without having to type the values anew. I would then form two or more new groups and correct the values.

I put the left and right quotes in one group. Their form have changed and now they are less “symmetrical”, therefore I need to alter the kerning.

One possible scenario would be to put all of o glyphs in one group, and split the group later for accented ones (which sometimes makes more sense than having too many exceptions). What you essentially want to do is to copy all pairs associated with one group to another group (or glyph). And I already have a script for that.

Toshe, that is exactly want I would like to do.

Okay, then please use the “Copy Kerning Pairs” script available on my [GitHub repository][1].
When you want to copy pairs of one group to another, you type like this in the screenshot. This is copying all pairs against @LAT_lc_a group to oacute. If oacute belongs to a group, the script automatically picks it up and treat it as the group, so you only have to remember one group member, not necessarily its group name.

If you also fill left fields, then you’re only copying one pair (e.g. T @LAT_lc_a over to T oacute).


Thanks Toshe ! I will give it a spin !

Hi @Tosche, I had a look at your nice script and tried it out. I am sure it will come in handy someday, but what I am looking for is a tool that helps splitting a group.

For example, group @1 contains /a and /b. I was looking after something that would give me (in this case) two groups @a and @b. With the right kerning values, left and right.

Thank you for your effort.

I think there are too many assumptions in the process you describe. Exactly how are you going to split the group, when you have many glyphs in resulting groups? Do you always want to split groups in two, not three or four? If there is only one glyph in a resulting group, do you want it grouped or not? And what if not all glyphs in the group belong to the same group on the other side (e.g. when you have c d o q in the same left group but totally different on the right)? Which group should it prioritise in that case? And given that there is a script that allows you to choose all these options, I imagine the UI will be a spectacular mess and it will still be almost the same as doing it manually.

For me it doesn’t make sense to write a script for reorganising groups like that (it’s just good enough to do it in Glyphs UI). My script assumes you have done that already, and only does the second part, which is duplicating kerning pairs.

I was just curious if someone would have had a script.
Unfortunately, I cannot script it myself.

In a sense you are right, saying that there are a lot of variables in play. But I think being able to choose one group and ‘split’ it would do the job less complicated.

Building on my example (group @1 contains /a and /b):
Existing kerning @2/@1, @1/@3 would end in @2/a, @2/b, a/@3 and b/@3.

If I would write a script, I would decompose the kerning, assign new groups and then compress it again. You only need to make sure not to use the build in compress feature if you don’t have group kerning for all intended exceptions.

Compressing it again sounds logic, indeed !


But “split” by what? Can you explain what that button does (e.g. what do you expect when you have a left kerning group that contains cçdeëéoöóqð)? If you are talking about small groups (with only two glyphs in it, like a and b), then it should be very easy to just manually do it and maybe use my script, don’t you think?

Also, it doesn’t make sense to talk about both sides of kerning group members, as they are very often asymmetric and the other side doesn’t need to be separated.

I’d like to help, but it’s hard to understand the problem.

Hi Toshe, Thank you for offering me your help. I was originally curious if there would be a quick fix. So don’t put too much time into this.

Your example:
@L = cçdeëéoöóqð
@1, @2 other groups

Splitting @L:
@1/c, @1/ç, @1/d, @1/e, @1/ë, @1/é, @1/o, @1/ö, @1/ó, @1/q, @1
and @2/c, @2/ç, @2/d, @2/e, @2/ë, @2/é, @2/o, @2/ö, @2/ó, @2/q, @2

After re-compressing:
@1/c, @1/d, @1/e, @1/o, @1/q, @1/ð and @2/c, @2/d, @2/e, @2/o, @2/q, @2

Yeah, I’m sorry, I give up.

No problem. Don’t get me wrong, I would love to go on ! :slight_smile: