Incompatible Model Relationships

Post Reply
Posts: 3
Joined: 25 Apr 2021

Incompatible Model Relationships

Post by skyrailhighline »

I'm not sure how to best word this question but sometimes I find that a kerning model takes relationships that I don't think work so well and I would like to decouple them without having the manually set all the rest of the related kerning.

For example: When I set the model for /period/endash then /period/quoteright, they come into conflict – I want them set at fairly different spacing (see attached image). Then Kern On wants to remove the following (these are the models that cycle through when I click Try Again):


Until it gets to /period/quoteright

I'm using the default settings for models and kerning types. What is the best approach here?
Screen Shot 2023-05-18 at 3.22.08 pm.png
Screen Shot 2023-05-18 at 3.22.08 pm.png (48.75 KiB) Viewed 3465 times
User avatar
Tim Ahrens
Site Admin
Posts: 424
Joined: 11 Jul 2019

Re: Incompatible Model Relationships

Post by Tim Ahrens »

When you set models for pairs that include special spacing, Kern On determines the value for each special spacing group internally, by comparing all models. Typically, comparing the models for a special spacing group to the letter-letter models reveals that the special spacing value must be at least a certain value so as not to contradict the letter-letter models. Sometimes, comparisons between special-spaced models indicate that one special spacing group must have a greater value than another group (so as to avoid contradictions). This is where things can get a bit complicated, and Kern On can get confused as to which group has more special spacing than another, and there may be contradictions between special-spaced models that prevent finding a solution. Detecting which models effectively prevent the engine from finding a solution is fairly tricky, and sometimes Kern On just gets too confused, and removes several models at once. I know this can be a bit frustrating, and I hope I can find a clearer solution, and a clearer UI for special spacing.

Looking at your example, it seems /period/endash is significantly tighter than /period/quoteright. Not sure why you’d want this but Kern On doesn’t question design decisions. From this comparison, Kern On will conclude that the quotes must have more special spacing than the dashes, otherwise there would be a contradiction between these two pairs. (The special spacing of the period is cancelled out, so to speak). Is this correct? Do you want the quotes to be looser than the dashes? Probably, there are other pair-vs-pair comparisons among your models that indicate the opposite, that the dashes must have more special spacing than the quotes. /H/endash vs /H/quotedblright may be such a comparison. Or, there could even be a circular dependency between three or more groups. In such a case, Kern On will have to remove models, and it may happen that it doesn’t find the most elegant (smallest) set of models to remove.

For now, I’d suggest to keep the number of special-spaced pairs small, and define for yourself which groups of glyphs should be looser or tighter than others.

Hope this helps.
Post Reply