Missing Autopairs / Unkerned Pairs
-
- Posts: 1
- Joined: 12 Aug 2021
Missing Autopairs / Unkerned Pairs
Hi Tim,
I've been testing the trial for a little while now – seems like a great tool! I'm having a bit of a problem though, with lots of pairs being left unkerned after telling the engine to 'kern-on'.
Many of my pairs, involving certain accented glyphs, or certain symbols, aren't being set to 'Auto' by default; in fact, none of the 3 pair type options of 'Model', 'Auto', or 'Ind' are selected by default.
I can manually set pairs to 'Auto', and, when I do, the engine kerns them. But it would be laborious to manually set every one of these pairs to 'Auto' – so I'm wondering if there is a way to set every possible kerning pair to 'Auto'?
I can get around this for the accented glyphs by limiting the kerning to something low like the default 36kB, forcing the accented glyphs to take the kerning group of their base glyph. But the engine still won't kern pairs which include certain symbols (e.g. 'A→') unless they have been set to 'Auto'.
FYI, neither of the glyphs in the pairs is set to 'No Kerning' (I've tried 'Standard Kerning' and 'Special Spacing'), and I currently have 54 models.
Many thanks in advance, have a great day!
I've been testing the trial for a little while now – seems like a great tool! I'm having a bit of a problem though, with lots of pairs being left unkerned after telling the engine to 'kern-on'.
Many of my pairs, involving certain accented glyphs, or certain symbols, aren't being set to 'Auto' by default; in fact, none of the 3 pair type options of 'Model', 'Auto', or 'Ind' are selected by default.
I can manually set pairs to 'Auto', and, when I do, the engine kerns them. But it would be laborious to manually set every one of these pairs to 'Auto' – so I'm wondering if there is a way to set every possible kerning pair to 'Auto'?
I can get around this for the accented glyphs by limiting the kerning to something low like the default 36kB, forcing the accented glyphs to take the kerning group of their base glyph. But the engine still won't kern pairs which include certain symbols (e.g. 'A→') unless they have been set to 'Auto'.
FYI, neither of the glyphs in the pairs is set to 'No Kerning' (I've tried 'Standard Kerning' and 'Special Spacing'), and I currently have 54 models.
Many thanks in advance, have a great day!
- Tim Ahrens
- Site Admin
- Posts: 480
- Joined: 11 Jul 2019
Re: Missing Autopairs / Unkerned Pairs
Thanks for your feedback!
If a pair doesn’t have any of the ‘Model’, ‘Auto’, or ‘Ind’ selected that means it is ‘not in the system’, or ‘ignored’. Kern On has a built-in list of Unicode character pairs, which is then expanded by applying the OT features in the font, all other pairs are ignored. There are some details in the Under the Hood video from 1:40 to 3:40.
So, the question is, why aren’t your pairs in the system as they should? If the pairs (i.e. both glyphs) have Unicode values but they are ignored then that means you may have a different view of which combinations/pairs are worth kerning, or you are using rare characters which I didn’t include in the list. In either case, just let me know, I’m open to discussion.
If the missing/ignored pairs include glyphs that do not have Unicode values, maybe you simply haven’t implemented them in the features yet? Just add the code and they should become auto pairs as you start Kern On again. (Note that changes to the feature code, like other major changes to the font, should be made while KO is sleeping.) In case they are definitely implemented via OT features, there is a certain possibility that my current implementation is not 100% complete with respect to the application of complex contextual substitutions. Glyphs 3 handles them in a different way than Glyphs 2, and it’s still subject to changes, so Kern On has to adapt. Just let me know if you think you have hit a case of incomplete application of contextual OT features, and I can have a closer look.
If a pair doesn’t have any of the ‘Model’, ‘Auto’, or ‘Ind’ selected that means it is ‘not in the system’, or ‘ignored’. Kern On has a built-in list of Unicode character pairs, which is then expanded by applying the OT features in the font, all other pairs are ignored. There are some details in the Under the Hood video from 1:40 to 3:40.
So, the question is, why aren’t your pairs in the system as they should? If the pairs (i.e. both glyphs) have Unicode values but they are ignored then that means you may have a different view of which combinations/pairs are worth kerning, or you are using rare characters which I didn’t include in the list. In either case, just let me know, I’m open to discussion.
If the missing/ignored pairs include glyphs that do not have Unicode values, maybe you simply haven’t implemented them in the features yet? Just add the code and they should become auto pairs as you start Kern On again. (Note that changes to the feature code, like other major changes to the font, should be made while KO is sleeping.) In case they are definitely implemented via OT features, there is a certain possibility that my current implementation is not 100% complete with respect to the application of complex contextual substitutions. Glyphs 3 handles them in a different way than Glyphs 2, and it’s still subject to changes, so Kern On has to adapt. Just let me know if you think you have hit a case of incomplete application of contextual OT features, and I can have a closer look.
-
- Posts: 1
- Joined: 07 Sep 2021
Re: Missing Autopairs / Unkerned Pairs
Hi everyone! I've been using Kern On for two weeks now, and it seems to be a great tool that I will continue to use.
I do have a small question about the kerning pairs that are generated at the export.
After a first round of kerning with Kern On, I generated the kerning and printed some proofs. I noticed that some pairs were not kerned, as example among others: /V/C.sc while /V/O.sc was kerned.
However, when I restart Kern On and type this pair /V/C.sc, it kerns itself correctly.
So there is something I don't understand. Is it because the kerning size generation limitation is too low? Is it because I hadn’t typed the pair while Kern On was running? Has anyone else had this issue as well? All my OpenType is done.
Thanks in advance for your help
I do have a small question about the kerning pairs that are generated at the export.
After a first round of kerning with Kern On, I generated the kerning and printed some proofs. I noticed that some pairs were not kerned, as example among others: /V/C.sc while /V/O.sc was kerned.
However, when I restart Kern On and type this pair /V/C.sc, it kerns itself correctly.
So there is something I don't understand. Is it because the kerning size generation limitation is too low? Is it because I hadn’t typed the pair while Kern On was running? Has anyone else had this issue as well? All my OpenType is done.
Thanks in advance for your help
- Tim Ahrens
- Site Admin
- Posts: 480
- Joined: 11 Jul 2019
Re: Missing Autopairs / Unkerned Pairs
If the pair does not show up after generating the full kerning although it is kerned while Kern On is running then that means it had to be removed in the last phase of finalization because it was considered less important than other pairs.
/V/c is not very frequent (currently ranks 33021 in the list), and /V/C.sc, which is derived from it via the OT feature(s) gets an even lower priority, so that’s a likely scenario. IMHO not having kerning for /V/C.sc in the font is not a disaster, though.
If you increase the kerning size limit then /V/C.sc should be included in the final kerning.
/V/c is not very frequent (currently ranks 33021 in the list), and /V/C.sc, which is derived from it via the OT feature(s) gets an even lower priority, so that’s a likely scenario. IMHO not having kerning for /V/C.sc in the font is not a disaster, though.
If you increase the kerning size limit then /V/C.sc should be included in the final kerning.
-
- Posts: 1
- Joined: 16 Oct 2024
Re: Missing Autopairs / Unkerned Pairs
Hi there Tim
I'm really enjoying using Kern On so far – the only issue I wanted to check with you is regarding arrows and other unicode supported characters.
Similar to Lewis, the kerning of these symbols isn't automatically happening, I need to manually set these to auto on a per pair basis (↑a↑b↑c↑ etc. ↩a↩b↩c↩ etc.). While I feel this could maybe be handled automatically by Kern On, it isn't really a problem at that level.
However what is an issue is if batch set these pairs as auto (or then as models) – Kern On doesn't seem to apply this automatic work to the other linked shapes (a > äâáå for example). So to properly kern these it seems we would have to do it manually outside of Kern On using the usual Glyphs workflow?
I just wonder if there's a way to implement a fix here, as Kern On seems very capable of kerning those combinations somewhat automatically – it just doesn't link the work across the rest of the font.
Hope I'm making sense, let me know if I can explain anything better here.
Thanks again for building this wonderful tool – it's really helpful.
Seb
I'm really enjoying using Kern On so far – the only issue I wanted to check with you is regarding arrows and other unicode supported characters.
Similar to Lewis, the kerning of these symbols isn't automatically happening, I need to manually set these to auto on a per pair basis (↑a↑b↑c↑ etc. ↩a↩b↩c↩ etc.). While I feel this could maybe be handled automatically by Kern On, it isn't really a problem at that level.
However what is an issue is if batch set these pairs as auto (or then as models) – Kern On doesn't seem to apply this automatic work to the other linked shapes (a > äâáå for example). So to properly kern these it seems we would have to do it manually outside of Kern On using the usual Glyphs workflow?
I just wonder if there's a way to implement a fix here, as Kern On seems very capable of kerning those combinations somewhat automatically – it just doesn't link the work across the rest of the font.
Hope I'm making sense, let me know if I can explain anything better here.
Thanks again for building this wonderful tool – it's really helpful.
Seb
- Tim Ahrens
- Site Admin
- Posts: 480
- Joined: 11 Jul 2019
Re: Missing Autopairs / Unkerned Pairs
Which glyphs do you kern the arrows against?
-
- Posts: 3
- Joined: 23 Jun 2025
Re: Missing Autopairs / Unkerned Pairs
Hi Tim
I’ve been testing to implement the tool for a while now, for Latin scripts the results are promising! But I’ve encountered an issue related to this topic, where, I’m developing indigenous scripts for Taiwanese.
https://en.wikipedia.org/wiki/Pe%CC%8Dh-%C5%8De-j%C4%AB
https://en.wikipedia.org/wiki/T%C3%A2i- ... ng-%C3%A0n
These scripts use the Latin character, but with heavily customized accented letters, many of which not included in Unicode. Currently I’ve been able to workaround by manually setting “user‑set auto pairs”. But the combinations are to many and quickly became impractical to add them one-by-one.
I’m wondering if there’s a way of setting these “user‑set auto pairs” in batch?
I’ve been testing to implement the tool for a while now, for Latin scripts the results are promising! But I’ve encountered an issue related to this topic, where, I’m developing indigenous scripts for Taiwanese.
https://en.wikipedia.org/wiki/Pe%CC%8Dh-%C5%8De-j%C4%AB
https://en.wikipedia.org/wiki/T%C3%A2i- ... ng-%C3%A0n
These scripts use the Latin character, but with heavily customized accented letters, many of which not included in Unicode. Currently I’ve been able to workaround by manually setting “user‑set auto pairs”. But the combinations are to many and quickly became impractical to add them one-by-one.
I’m wondering if there’s a way of setting these “user‑set auto pairs” in batch?
- Tim Ahrens
- Site Admin
- Posts: 480
- Joined: 11 Jul 2019
Re: Missing Autopairs / Unkerned Pairs
You can write a small Python script that generates the pairs as text (one pair per line or with space character in between), then paste the text in an edit tab, select all, and activate “Auto”. Would that work?
Alternatively, you can write them directly into GSFontMaster.userData (https://docu.glyphsapp.com/#GSFontMaster.userData). You could do something like to get an idea of how Kern On stores its data in the master. If you write directly into the userData you should do this while Kern On is not running.
Alternatively, you can write them directly into GSFontMaster.userData (https://docu.glyphsapp.com/#GSFontMaster.userData). You could do something like
Code: Select all
print(Font.masters[0].userData)
-
- Posts: 3
- Joined: 23 Jun 2025
Re: Missing Autopairs / Unkerned Pairs
Thanks for your swift response!
The first option doesn’t work for now, as by clicking “Auto” while selecting multiple pairs, it only restores them to the ignored state :(
But if it does work, I think it’d be a pretty convenient way for users to quickly setup their custom pairs!
For now I’ll look into the second option, thanks!
The first option doesn’t work for now, as by clicking “Auto” while selecting multiple pairs, it only restores them to the ignored state :(
But if it does work, I think it’d be a pretty convenient way for users to quickly setup their custom pairs!
For now I’ll look into the second option, thanks!
- Tim Ahrens
- Site Admin
- Posts: 480
- Joined: 11 Jul 2019
Re: Missing Autopairs / Unkerned Pairs
If the slected pairs are already user-set autopairs (or the selection is mixed) then clicking “Auto” un-sets them. Just click again and they should all be switched to user-set autopairs.
-
- Posts: 3
- Joined: 23 Jun 2025
Re: Missing Autopairs / Unkerned Pairs
I just found out that there was an auto pair hidden somewhere in my list of supposed list of all user‑set auto pairs. After removing them the method works!
If there could be a method for easier distinction between pairs that would be kerned by default, and those who don’t, it might be easier to implement larger numbers of custom pairs with less hassle...(wishing for a “add missing user‑set auto pairs” button?)
But for now it all works! Thanks again
If there could be a method for easier distinction between pairs that would be kerned by default, and those who don’t, it might be easier to implement larger numbers of custom pairs with less hassle...(wishing for a “add missing user‑set auto pairs” button?)
But for now it all works! Thanks again
- Tim Ahrens
- Site Admin
- Posts: 480
- Joined: 11 Jul 2019
Re: Missing Autopairs / Unkerned Pairs
You are right, something like “add missing user‑set auto pairs” would be useful.
Or, when text is in a tab, a function to “extract” (i.e. open in a new tab) only the missing pairs, like “Show ignored pairs”. I’ll see what works best.
Or, when text is in a tab, a function to “extract” (i.e. open in a new tab) only the missing pairs, like “Show ignored pairs”. I’ll see what works best.