Hi,
I've been using KO for a few years now, always great and it is always getting better.
Currently, it is the first time I am trying to use it on a connected Latin script style font. Most of it is working well, however I am getting some pairs where the kerning is not active at all. Each letter has at least one alternate, and the alts are not auto kerning against the default letters, and vice versa. For example, many of my v.alt_e are not kerned, a combination possible with my OT features. I can go through and make them all user set, but this is very time consuming.
There are some complex OT features like 'IgnoreSub' in the font and I read in the new User Manual these are not just supported by the kerning engine.
My questions is, is there a way to tell/trick KO into assuming all letters variants can appear next to eachother? I have tried putting all the alts into Styleistic Sets to do this, but this has not worked.
Any help is appreciated!
Thanks
Complex subsitutions leaving some pairs without AutoKerning
- brianbrubaker
- Posts: 28
- Joined: 21 Jun 2021
Re: Complex subsitutions leaving some pairs without AutoKerning
> My questions is, is there a way to tell/trick KO into assuming all letters
> variants can appear next to each other?
This wouldn't be an exact solution to the auto-kerning / kerning on the fly while using KO live. But, if they are pretty close to their standard counterparts, you can at least apply the kerning to them this way and then re-open your file and continue from there:
1. Get kerning groups set the way you like them—usually after setting most of your models so that the groups KO creates likely wouldn't change much moving forward anyway.
2. Add all your alts to the same kerning groups as their standard counterparts (e.g. /o and /o.ss01 both have the kerning group "KO_o" or something similar.
3. From then on, when you click Kern On, make sure to uncheck the option for KO to re-create kerning groups. Now, all your alts will be kerned everywhere and in the same way as their standard counterparts.
BONUS TIP: You can make this faster by copy and paste with kerning groups. Do the following:
1. Select and ⌘C the glyph whose kerning groups you want to paste to other glyph(s)
2. Then select the glyph(s) you want to paste those kerning groups to and use ⌥⌘V
You'll get a popup window that looks like the attached and you can choose what you want to transfer to the selected glyph(s).
> variants can appear next to each other?
This wouldn't be an exact solution to the auto-kerning / kerning on the fly while using KO live. But, if they are pretty close to their standard counterparts, you can at least apply the kerning to them this way and then re-open your file and continue from there:
1. Get kerning groups set the way you like them—usually after setting most of your models so that the groups KO creates likely wouldn't change much moving forward anyway.
2. Add all your alts to the same kerning groups as their standard counterparts (e.g. /o and /o.ss01 both have the kerning group "KO_o" or something similar.
3. From then on, when you click Kern On, make sure to uncheck the option for KO to re-create kerning groups. Now, all your alts will be kerned everywhere and in the same way as their standard counterparts.
BONUS TIP: You can make this faster by copy and paste with kerning groups. Do the following:
1. Select and ⌘C the glyph whose kerning groups you want to paste to other glyph(s)
2. Then select the glyph(s) you want to paste those kerning groups to and use ⌥⌘V
You'll get a popup window that looks like the attached and you can choose what you want to transfer to the selected glyph(s).
- Attachments
-
- Screenshot 2024-04-25 at 16.08.21.png (75.86 KiB) Viewed 6934 times
- Tim Ahrens
- Site Admin
- Posts: 447
- Joined: 11 Jul 2019
Re: Complex subsitutions leaving some pairs without AutoKerning
Thanks for your help, Brian. Yes, using custom kerning groups could be a good work-around.
Ryan: Would you mind sending me the file? Then I can have a look and either improve Kern On or possibly find a way of getting this to work with the current version.
Ryan: Would you mind sending me the file? Then I can have a look and either improve Kern On or possibly find a way of getting this to work with the current version.
Re: Complex subsitutions leaving some pairs without AutoKerning
Thank you Brian, this is useful to know. Since some version are joining and other arent, this didnt work for all glyphs. But definitly helped for a few!
Tim, I have sent it to this email. askme@kern-on.com
Tim, I have sent it to this email. askme@kern-on.com
- Tim Ahrens
- Site Admin
- Posts: 447
- Joined: 11 Jul 2019
Re: Complex subsitutions leaving some pairs without AutoKerning
Thanks for the file, Ryan.
Looking at your list of user-set autopairs, there are different reasons for pairs not being autokerned by default:
• /s.ss01/ecircumflex is not autokerned because /s/ecircumflex is not autokerned. If this pair is important to you you’d probably want to set /s/ecircumflex as a user-set autopair as well. However, why do you think this is relevant? I thought my research on the occurrence of character combinations was extremely thorough so I’d not expect this combination to be used in the real world. I’m happy to learn more and ad the pair to the list if it turns out to be used in the real world, though.
• Some pairs such as /O/d.ss01 are autokerned in the current version of Kern On. Not sure why they ended up as a user-set autopair. Interestingly, you can de-activate them as user-set autopairs, in which case they are not autokerned. This needs a re-start of Kern On. Maybe I can improve the way the stored user-set autopairs are loaded, and de-activate those that are autokerned anyway (which is probably because the OT feature was set up in the meantime).
• Kern On does not autokern combinations between stylistic sets, or between the standard form and a stylistic alternate in case the alternate exists for both characters. In other words, you only get kerning for glyph pairs that can occur if a stylistic set is activated for the whole text: /b.ss01/ccedilla.ss01 is autokerned by default but b/ccedilla.ss01 is not because this combination is not possible if ss01 is applied.
If you assume that the user of your font may apply ss01 to individual characters then it is, strictly speaking, not the appropriate feature. As the term “set” implies, they are supposed to be used together. See the OpenType spec for details: https://learn.microsoft.com/en-us/typog ... es_pt#ssxx
In your use case, what you probably want is Character Variants: https://learn.microsoft.com/en-us/typog ... cv01--cv99
I have not implemented support for Character Variants yet but maybe this is a good incentive to do it now. Stay tuned.
Looking at your list of user-set autopairs, there are different reasons for pairs not being autokerned by default:
• /s.ss01/ecircumflex is not autokerned because /s/ecircumflex is not autokerned. If this pair is important to you you’d probably want to set /s/ecircumflex as a user-set autopair as well. However, why do you think this is relevant? I thought my research on the occurrence of character combinations was extremely thorough so I’d not expect this combination to be used in the real world. I’m happy to learn more and ad the pair to the list if it turns out to be used in the real world, though.
• Some pairs such as /O/d.ss01 are autokerned in the current version of Kern On. Not sure why they ended up as a user-set autopair. Interestingly, you can de-activate them as user-set autopairs, in which case they are not autokerned. This needs a re-start of Kern On. Maybe I can improve the way the stored user-set autopairs are loaded, and de-activate those that are autokerned anyway (which is probably because the OT feature was set up in the meantime).
• Kern On does not autokern combinations between stylistic sets, or between the standard form and a stylistic alternate in case the alternate exists for both characters. In other words, you only get kerning for glyph pairs that can occur if a stylistic set is activated for the whole text: /b.ss01/ccedilla.ss01 is autokerned by default but b/ccedilla.ss01 is not because this combination is not possible if ss01 is applied.
If you assume that the user of your font may apply ss01 to individual characters then it is, strictly speaking, not the appropriate feature. As the term “set” implies, they are supposed to be used together. See the OpenType spec for details: https://learn.microsoft.com/en-us/typog ... es_pt#ssxx
In your use case, what you probably want is Character Variants: https://learn.microsoft.com/en-us/typog ... cv01--cv99
I have not implemented support for Character Variants yet but maybe this is a good incentive to do it now. Stay tuned.
- Tim Ahrens
- Site Admin
- Posts: 447
- Joined: 11 Jul 2019
Re: Complex subsitutions leaving some pairs without AutoKerning
This was surprisingly easy to implement. Thanks for the nudge!
The next Kern On update will support cvXX, which means it will autokern any possible combination of alternates accessed via cvXX.
The next Kern On update will support cvXX, which means it will autokern any possible combination of alternates accessed via cvXX.
Re: Complex subsitutions leaving some pairs without AutoKerning
Hi Tim,
Thank you for all the information.
Originally I had the alternates suffixes as .001. I changed them to ss0 becuase I though that may trick KO into kerning all variants against eachother, as having them as .001 didnt work even with a calt feature that could access them.
Great to know in the future I can tell KO that all varianet need to be autokerned against eachother by using the cv0 features!
I appreciate all the good work and help :)
Thank you for all the information.
Originally I had the alternates suffixes as .001. I changed them to ss0 becuase I though that may trick KO into kerning all variants against eachother, as having them as .001 didnt work even with a calt feature that could access them.
Great to know in the future I can tell KO that all varianet need to be autokerned against eachother by using the cv0 features!
I appreciate all the good work and help :)
- Tim Ahrens
- Site Admin
- Posts: 447
- Joined: 11 Jul 2019
Re: Complex subsitutions leaving some pairs without AutoKerning
Keep in mind that using cvXX instead of ssXX is not just a work-around for the “Kern On world”. It’s simply the correct OpenType feature for the task, not just internally in your font editor but also when you export and distribute the fonts.