Seeking newby advice for setting up kerning classes

Kelly Hobkirk
Posts: 8
I am all kinds of confused about kerning classes. I have read what little I can find referencing this in the Glyphs and Fontlab manuals, as well as in the "Learn Fontlab Fast" book. I understand how to set up master characters in the classes panel (in Fontlab 5), but from there I am lost.
I seem to recall a Glyphs article by Rainer Scheichelbauer wherein (I think) he said that if one carefully sets accurate sidebearings, little manual kerning will be necessary.
Yet, a gentleman in France who kerns fonts as his trade told me he throws out all sidebearings and kerning settings upon receiving a kerning job and starts from scratch.
I have also read I should not be checking the boxes for both left and right master character classes; rather, I should be using only one side. Thus, I wonder why am I carefully setting up both sides? This seems to contradict the notion of sidebearings being important.
A very established type designer friend once told me Classes were the hardest part of font production to wrap their mind around. As I reread the classes sections of manuals for the umpteenth time, it is like reading a foreign language.
Can anyone shed some light on this topic? Is there a definitive comprehensible step-by-step tutorial somewhere on setting up kerning classes?
Thank you in advance for any help.
Kelly
I seem to recall a Glyphs article by Rainer Scheichelbauer wherein (I think) he said that if one carefully sets accurate sidebearings, little manual kerning will be necessary.
Yet, a gentleman in France who kerns fonts as his trade told me he throws out all sidebearings and kerning settings upon receiving a kerning job and starts from scratch.
I have also read I should not be checking the boxes for both left and right master character classes; rather, I should be using only one side. Thus, I wonder why am I carefully setting up both sides? This seems to contradict the notion of sidebearings being important.
A very established type designer friend once told me Classes were the hardest part of font production to wrap their mind around. As I reread the classes sections of manuals for the umpteenth time, it is like reading a foreign language.
Can anyone shed some light on this topic? Is there a definitive comprehensible step-by-step tutorial somewhere on setting up kerning classes?
Thank you in advance for any help.
Kelly
Tagged:
1
Best Answers
-
Firstly, note that that the concept of key glyphs in classes—what I think you mean by ‘master characters’—is specific to FontLab Studio 5, and does not occur in other tools, including newer versions of FontLab. The key glyph concept was actually pretty useful if one knew how to work with it, and I occasionally wish it had been maintained in FontLab, because converting kerning from a single glyph to a class—e.g. when one adds a new diacritic letter to a font—is frustrating as currently implemented. But key glyphs are not part of the OpenType GPOS pairpos class format, so the way FontLab 8 and other tools work is closer to how the output fonts work.
My approach is to define 1st and 2nd kern classes* based on general shape of the left and right sides of glyphs within a primary height zone. This latter concept isn’t really discussed much, but I think it is critical to keep in mind throughout the class assignments and then the kerning. So, for example, I consider the primary height zone for uppercase letters to be between the baseline and the cap height. So in many designs, D O Q and related diacritics go together in a 1st class, and C G O Q go together in a 2nd class, because these tend to share similar shape and sidebearings, respectively right and left, within the primary height zone.
Obviously, in that example, the tail of the Q is outside the primary height zone, and that is what you keep in mind when you are kerning, because it will produce a number of exceptions to the class kerning.
Narrow letters with diacritics above require a decision about whether to include in classes. I tend not to, because the number of exceptions when they follow T V W Y f etc. and relative to quotation marks, parentheses, or other punctuation tends to exceed the number of useful class kerns. So typically I do not put ì í î ï ǐ ĩ etc in classes, but kern them individually. [Recently, I have started putting /i.dotless into a class with î on the basis that this dotless variant is only going to be output from GSUB when it is followed by an above combining mark, so I want a method to kern it away from T V W Y f etc..]
In terms of making the classes, once you have done it for one font, those classes can easily be copied to other projects with similar character sets, and then trimmed or extended as needed. I do encourage you to try to establish your classes as fully as possible before you start kerning, because converting kerning data to or from class kerning can be tricky. An important thing to bear in mind is that if you discover during the kerning that you need to split a class, e.g. the shape of the right side of D is not similar enough to O to be in the same class and is requiring too many exceptions, you need to first flatten the class kerning to pairs, then create any new class and move glyphs from one class to another, and then compress to class kerning to get existing kerning properly assigned to the revised classes. [I am describing a process to use in FontLab. What Glyphs does when compressing to class kerning appears to erase all exception kerns, which is terrifying and not useful.]
There are a lot of well-made open source fonts now available, so you could download the source for one of those, open it in your font tool, and examine the class assignments. This can be more useful in understanding that trying to read a manual.
_____
*Note that I have spoken here about 1st and 2nd classes, rather than left or right classes. That’s my preferred way of thinking, because I am sometimes making fonts for bidirectional writing systems, and left is not always 1st and right is not always 2nd. Tools like FontLab and Glyphs use left and right designations, and if you’re only making Latin fonts it is fine to think in those terms.3 -
@Kelly Hobkirk I have experienced your frustration in not understanding the kerning classes concept although mine was a lack of not being able to grasp how a certain feature in FontLab works.There are several other designers in your area who produce fonts. Offer to buy their lunch, then spend an hour or so with one of them and ask them to explain it. One-on-one help is usually much better than other ways.
1
Answers
-
Thank you @John Hudson. I've learned some newer terminology, and now realize it is probably time I learn Fontlab 8. You've given me some good starting reference points and things to try. I appreciate your help.Great idea @George Thomas. Thank you for the suggestion.
0 -
Hi Kelly,
I would encourage you to follow the John Hudson method. It's more or less the way I kern my fonts. And, as you mention, it's time to learn Fontlab 8! And you'll spare a lunch!
I wish you success.0 -
I tend to push my luck with kerning classes. My rule of thumb is: if a glyph has a similar shape on one side, I’ll add it to the matching class. Then, if the kerning looks wrong later, I just take it out of the class and kern it separately. One thing that can trip people up when learning kerning classes is the naming. Kerning that affects the right side of a glyph actually comes from a left class, and kerning that affects the left side of a glyph comes from a right class. Then there are the “both sides” classes. I use these for glyphs with shapes that don’t really match anything else, like the letter S, or for punctuation like periods, hyphens, and guillemets. You could make separate left and right classes for those, but often the both-sides class is just more convenient.
Here’s an example of how I make decisons on using a class. Let's look at V and v.In my font, the V has a different angle than the W. Since there are no accented V characters in this font, the V doesn’t need its own class.
The lowercase v and w share the same angle, so I can group v, w, and all the w accents into a single v-class…but wait…What about the lowercase y? I can’t group its left side with v and w in this font because of its curly tail; it requires custom kerning to avoid collisions with things like ogoneks. But the right side of the y matches the v perfectly.So I make separate left and right v-classes. The right v-class (which affects the left side of glyphs) contains v, w, and w accents. The left v-class (which affects the right side of glyphs) contains v, w, y, and all the w and y accents.
That's the kind of strategy I use to get as many glyphs as I can into classes. And if I was wrong, I can simply remove it from a class.3 -
Regarding the names of the classes, I'm like many users, confused with the names "Left kerning class" and "Right kerning class". Even their icons are not evident to understand.
So I give names as "a_is2nd", "b_is1st" and "c_both" to avoid confusion.
It should work with bidirectional fonts like John mentioned.
1 -
My kerning approach is a LOT like Ray’s (and John’s).
Kelly, as you are in Seattle, you should go to one of the monthly type pub meetups run by Aaron Bell. I have just pinged him about this.1 -
It sounds like you are well plugged in with some folks, but still, an in-person discussion with a laptop in front of you is a good way to go over it, that’s why I was thinking of the type pub thing.
The next Seattle Type Pub is Wednesday Aug 13, at the Hopvine Pub on Capitol Hill. To get notifications about future meetups, add yourself to the mailing list:
https://mailchi.mp/33f0a29488ad/typeseattle
TypeCon was in Portland this weekend, lots of folks here. You could have gotten Rainer Sheichelbauer (or me, for that matter) to go over this stuff in person at one of the coffee breaks.
0 -
@Yves Michel My reluctance to learning Fontlab 8 has been rooted in the fact that there is no downloadable manual, and I prefer working offline. (The latest Fontlab book was published in 2004. Just found Dave Bergslund published a Fontlab 5 book in 2016.) With the manual being online only, it means having two computers side by side, with one always online.Also, I've well over a hundred fonts largely made in Fontlab 5. I would like to complete and release them now, rather than having to re-do them first. That said, I will have to learn 8.And I enjoy lunch
0 -
FontLab 8 has mostly not-huge differences from 7, which does have an online manual. But I sympathize, for sure. And the difference from 5 to 6 is/was huge; it is a different program that uses some of the same keyboard shortcuts.
That said, there would be no reason to “re-do” existing fonts to release them, regardless of what version of FontLab you are using. I mean, exporting a font is exporting a font. Despite the large differences in the user interface between 5 and 6+, there isn’t suddenly some further work you need to do just because you went to a new version of FontLab. At least, not that I can think of!0 -
@Ray Larabie Thank you for your example. I'm a visual learner, and this definitely prompted an 'a-ha!'.@Yves Michel "So I give names as "a_is2nd", "b_is1st" and "c_both" to avoid confusion." A great idea.Long ago, I learned to create a class for each base letter for which there are diacritics, which seemed to make sense until I read I was supposed to use only one side, which is where confusion took hold. I very much appreciate the shared methods and wisdom here.
0 -
Thomas Phinney said:FontLab 8 has mostly not-huge differences from 7, which does have an online manual. But I sympathize, for sure. And the difference from 5 to 6 is/was huge; it is a different program that uses some of the same keyboard shortcuts.
That said, there would be no reason to “re-do” existing fonts to release them, regardless of what version of FontLab you are using. I mean, exporting a font is exporting a font. Despite the large differences in the user interface between 5 and 6+, there isn’t suddenly some further work you need to do just because you went to a new version of FontLab. At least, not that I can think of!@Thomas Phinney Good to know. I remember when Fontlab 6 came out, learning it was a whole new program and being a bit apprehensive since I was still learning 5. But I was in university and did not have time to even think about learning a new program then. So I just kept doing the things I knew how to do, building a large library of fonts-in-progress.I used to attend the Seattle type design gatherings hosted by John D. Barry until grad school took over life. Guess I should get myself to the new events.0 -
In my opinion, to understand the concept of "kerning by classes" it would be a good idea to try it in free FontForge. The built-in wizard is logical (though I might think so, as I use it myself :-).1
-
@Grzegorz Luk (gluk) I will give this a try. Thank you for the suggestion.
0
Categories
- All Categories
- 46 Introductions
- 3.8K Typeface Design
- 479 Type Design Critiques
- 558 Type Design Software
- 1.1K Type Design Technique & Theory
- 646 Type Business
- 836 Font Technology
- 29 Punchcutting
- 512 Typography
- 119 Type Education
- 318 Type History
- 75 Type Resources
- 110 Lettering and Calligraphy
- 31 Lettering Critiques
- 79 Lettering Technique & Theory
- 540 Announcements
- 88 Events
- 112 Job Postings
- 168 Type Releases
- 171 Miscellaneous News
- 274 About TypeDrawers
- 53 TypeDrawers Announcements
- 119 Suggestions and Bug Reports