Testing consecutive kerning pairs for consistency, Vs kerning single pairs alone
PabloImpallari
Posts: 806
Hi all,
I recently spotted a kerning problem in one of my fonts, in a word having consecutive kerning pairs.
At first glance I thought it was my fault only, but after looking at some fonts from the big guys we all admire, I discovered that this problem was much more frequent, and that many people suffer from the same issue.
The problem was inconsistent fitting in words made of consecutive kerning pairs.
For example, consider the word "Waves" having 3 consecutive pairs: Wa + av + ve
I think the reason for this, is that when we kern single pairs, they may look good on their own.
But when we find such words, where a pair follows another pair and then another pair and then another, the small inconsistencies add-up and the problem becomes more evident.
So, I want to generate a list of words that include a pattern of consecutive kerning pairs.
Having a set of test words will allow us to better double-check for kerning consistency "across pairs", to be used as a second-pass after the kerning of single pairs is done. For extra refinement.
Basically, I need help from some magic programmer who can make a script to detect that kind of words inside a dictionary. Once I have the list of words, I will upload it to the testing page for everyone else to use.
I can provide the pairs list to be used as "seed" for the script to detect the words.
Anyone up to the challenge?
I recently spotted a kerning problem in one of my fonts, in a word having consecutive kerning pairs.
At first glance I thought it was my fault only, but after looking at some fonts from the big guys we all admire, I discovered that this problem was much more frequent, and that many people suffer from the same issue.
The problem was inconsistent fitting in words made of consecutive kerning pairs.
For example, consider the word "Waves" having 3 consecutive pairs: Wa + av + ve
I think the reason for this, is that when we kern single pairs, they may look good on their own.
But when we find such words, where a pair follows another pair and then another pair and then another, the small inconsistencies add-up and the problem becomes more evident.
So, I want to generate a list of words that include a pattern of consecutive kerning pairs.
Having a set of test words will allow us to better double-check for kerning consistency "across pairs", to be used as a second-pass after the kerning of single pairs is done. For extra refinement.
Basically, I need help from some magic programmer who can make a script to detect that kind of words inside a dictionary. Once I have the list of words, I will upload it to the testing page for everyone else to use.
I can provide the pairs list to be used as "seed" for the script to detect the words.
Anyone up to the challenge?
3
Comments
-
One very important consecutive pair is L quoteright A. Both pairs L+quoteright and quoteright+A might have quite bit negative kerning. But in this combination, the L and A might overlap. This can happen with f.W, too.
1 -
I find a similar issue with kerning symmetrical letters to curves, as in "ovovo" when next to straight letters like n or u the curve to a diagonal glyph can look too tight "uovn".
I don't know if such pairs should be part of your list or if this is a totally different phenomenon?0 -
Pablo, as part of your process are you simply missing these particular words that have multiple consecutive kerning pairs?
I check against an extensive word list with almost every pair combination that would occur in a given font style. I'll use made-up words/strings such as dovok dovak dovsk davok dsvok dovok dovak dovsk davok dsvokv. I also check for a sensible balance amongst pairs with somewhat related glyph negative space. A general spacing balance with pairs such as TANE YANE FANE PANE ÞANE etc.
It would be more ideal if they were real words, but it works that it generally reads as a real word when set in a paragraph and easily allows multiple related shape glyphs paired against a key glyph.
I also try and look at known pair problems like the L quoteright A and other anomalies.0 -
Georg Seifert said:This can happen with f.W, too.2
-
PabloImpallari said:Basically, I need help from some magic programmer who can make a script to detect that kind of words inside a dictionary. Once I have the list of words, I will upload it to the testing page for everyone else to use.0
-
Actually I have been thinking of doing this sort of thing to test kern pairs more efficiently: have a small number of words that test a large number of pairs. I'll work on it next week.0
-
Simon, we already have that: http://logofontandlettering.com/kernking.html
0 -
One thing I learned about this is that you quite often have to kern less then the pair could take. For example in this string: 'HHHAVHHH'. There are two problematic combinations. Between strait and diagonal and between two diagonal. You could thne the visual space between the AV to macht the HH. But then the HA will stand out quite a bit. And as the A and V most likely will have 'normal' letter next to it, you need to balance the AV to fit with the HA instead of HH. If you keep that in mind I don't thing one needs to get excessive with the word lists. And that lead to not having kerning for the AV at all in some fonts.8
-
Exactly Georg, it's all relative. That's why focusing too closely on individual pairs is problematic.1
-
I always kern in the context of words, and my word lists typically ensure that pair combinations will reappear several times before I reach 'zz piazza'. It is important to see the same pair in multiple contexts.7
-
Reporting some Initial experiment results, let me know what you think...
Lowercase English words having 5 or more kerning pairs:[overcrowd] => 6 [overcrowded] => 6 [overcrowds] => 6 [rotogravure] => 6 [overcrowding] => 6
[photofluorography] => 5 [photogravure] => 5 [photorefractive] => 5 [professorate] => 5 [photofluorograph] => 5 [photofluorogram] => 5 [overprotective] => 5 [overthrowal] => 5 [overwrote] => 5 [protectorate] => 5 [protectorates] => 5 [ureterotomy] => 5 [stereophotography] => 5 [stratofreighter] => 5 [retroverted] => 5 [watchtower] => 5 [webfooted] => 5 [overprotection] => 5 [waterproofed] => 5 [trovatore] => 5 [overpowered] => 5 [microwave] => 5 [microwaved] => 5 [microwaves] => 5 [overawe] => 5 [microwavable] => 5 [lithophotogravure] => 5 [counteroffensives] => 5 [frostcovered] => 5 [gravelroot] => 5 [overdraw] => 5 [overdrawing] => 5 [overexcites] => 5 [overexercise] => 5 [counteroffensive] => 5 [overprotect] => 5 [overexcited] => 5 [overexcite] => 5 [overdrawn] => 5 [overelaborate] => 5 [overelaborateness] => 5 [overprotected] => 5
Uppercase English words having 5 or more kerning pairs:[SELFCONGRATULATORY] => 6 [OTOLARYNGOLOGY] => 6 [OVERVALUATION] => 6 [SPHENOPALATINEGANGLIONEURALGIA] => 6 [STRATOVOLCANO] => 6 [LEVOROTATORY] => 6 [CLAIRVOYANTLY] => 6 [AUTOTETRAPLOIDY] => 6 [PSYCHOTECHNOLOGY] => 6 [PHOTOVOLTAICS] => 6 [DECLARATORY] => 6 [PHYTOTERATOLOGY] => 6 [PHOTOVOLTAIC] => 6 [PSYCHOPATHOLOGY] => 6 [LAVATORY] => 6 [DISADVANTAGEOUSLY] => 6 [PARAPSYCHOLOGY] => 6 [SELFGRATULATORY] => 6 [VACILLATORY] => 6 [ULTRACONSERVATIVE] => 6 [ULTRACONSERVATISM] => 6 [UNADVANTAGEOUSLY] => 6 [GALACTOTHERAPY] => 6 [LACTOVEGETARIAN] => 6 [LAUDATORY] => 6 [AGGRAVATINGLY] => 6 [ADVANTAGEOUSLY] => 6
[PERAMBULATORY] => 5 [LABORATORY] => 5 [PARARHOTACISM] => 5 [PARALLELINERVATE] => 5 [KERATOMALACIA] => 5 [PARAVAUXITE] => 5 [PARTICIPATORY] => 5 [KATAGELOPHOBIA] => 5 [PHYTOTERATOLOGIST] => 5 [KAMAVACHARA] => 5 [PLACATORY] => 5 [PHYTOPATHOLOGY] => 5 [PHYTOPALEONTOLOGY] => 5 [PHOTODISINTEGRATION] => 5 [PARALAMBDACISM] => 5 [PHYSICOTHEOLOGY] => 5 [KATAGELOPHOBIC] => 5 [PALAEOTOLITH] => 5 [OBSERVATORY] => 5 [OTOLARYNGOLOGIST] => 5 [PLAYACTOR] => 5 [MULTILATERALLY] => 5 [MICROPALEONTOLOGY] => 5 [LAVOLTA] => 5 [LAUDATOR] => 5 [METAPSYCHOLOGY] => 5 [LACRIMATORY] => 5 [OVERACCENTUATE] => 5 [LAVATORIES] => 5 [PALAEOTYPOGRAPHY] => 5 [LACKADAISICALLY] => 5 [PALAEOSPONDYLUS] => 5 [PACIFICATORY] => 5 [OVERACCUMULATION] => 5 [OVERLAUDATION] => 5 [OVERTALKATIVE] => 5 [PALEONTOLOGY] => 5 [PSYCHOPATHOLOGICAL] => 5 [SYMPTOMATOLOGY] => 5 [STAGECOACHES] => 5 [TALLOWFACED] => 5 [TATOUAY] => 5 [TAUTOLOGICALLY] => 5 [STAGECOACH] => 5 [SPECTACULARLY] => 5 [SATISFACTORILY] => 5 [SATISFACTORY] => 5 [SELFABNEGATORY] => 5 [SNOWCRYSTAL] => 5 [TAUTOLOGOUSLY] => 5 [TAUTOLOGY] => 5 [UNSATISFACTORY] => 5 [UNSATISFACTORILY] => 5 [VACCINOTHERAPY] => 5 [VALUATOR] => 5 [WATCHCRYSTAL] => 5 [UNFAVORABLY] => 5 [UNDERVALUATION] => 5 [TERATOLOGY] => 5 [TRANSEQUATORIAL] => 5 [TRAVELDAYS] => 5 [UNADVANTAGEOUS] => 5 [SALUTATORY] => 5 [SALTATORY] => 5 [JACULATORY] => 5 [PSYCHOANALYSTS] => 5 [PSYCHOPATHOLOGIST] => 5 [PSYCHOPHYSIOLOGY] => 5 [PSYCHOTECHNOLOGIST] => 5 [PSYCHOANALYST] => 5 [PSYCHOANALYSIS] => 5 [PREPARATORY] => 5 [PRESERVATORY] => 5 [PROTECTORATE] => 5 [PROTECTORATES] => 5 [PSYCHOTHERAPY] => 5 [RADIOACTIVATED] => 5 [REGULATORY] => 5 [REPARATORY] => 5 [ROTATORY] => 5 [SALTATORILY] => 5 [RECUPERATORY] => 5 [RECRYSTALLIZATION] => 5 [RADIOPATHOLOGY] => 5 [RADIOTECHNOLOGY] => 5 [RECLAMATORY] => 5 [RECOMMENDATORY] => 5 [GRAVECLOTHES] => 5 [CHRYSOTHERAPY] => 5 [CHLORTETRACYCLINE] => 5 [CIRCUMGYRATORY] => 5 [CLAIRVOYANCE] => 5 [CLAIRVOYANT] => 5 [CATACLYSMICALLY] => 5 [CATACLYSMIC] => 5 [BOYCOTTAGE] => 5 [BLACKGUARDLY] => 5 [CAPACITATOR] => 5 [CATACLYSM] => 5 [CATACLYSMAL] => 5 [CLIMATOTHERAPY] => 5 [CONFABULATORY] => 5 [CRYOPROTECTANTS] => 5 [CRYOPROTECTANT] => 5 [CRYOTHERAPY] => 5 [CRYPTOANALYSIS] => 5 [CRYPTOCRYSTALLIZATION] => 5 [CRYOPRESERVATIONS] => 5 [CRYOPRESERVATION] => 5 [CONSERVATORY] => 5 [CONGRATULATORY] => 5 [CONSULTATORY] => 5 [CONTRAFAGOTTO] => 5 [CONTRAVALLATION] => 5 [AYATOLLAHS] => 5 [AYATOLLAH] => 5 [AGGRAVATIONS] => 5 [AGGRAVATION] => 5 [AGGRAVATIVE] => 5 [AMYGDALOTOMY] => 5 [ARTICULATORY] => 5 [AGGRAVATING] => 5 [AGGRAVATES] => 5 [ADVANTAGEOUSNESS] => 5 [ADVANTAGEOUS] => 5 [ADVOCATORY] => 5 [AGGRAVATE] => 5 [AGGRAVATED] => 5 [AUTOCRATICALLY] => 5 [AUTOROTATE] => 5 [AUTOTETRAPLOIDS] => 5 [AUTOTETRAPLOIDIES] => 5 [AUTOTRANSFORMER] => 5 [AUTOTRANSFORMERS] => 5 [AUXOTOX] => 5 [AUTOTETRAPLOID] => 5 [AUTOROTATIONS] => 5 [AUTOROTATED] => 5 [AUTOROTATES] => 5 [AUTOROTATING] => 5 [AUTOROTATION] => 5 [CRYSTALLOGRAPHER] => 5 [CRYSTALLOGRAPHIC] => 5 [EXTRAVAGANTLY] => 5 [EXTRACELLULARLY] => 5 [EXTRAVAGATION] => 5 [EXTRAVASCULARLY] => 5 [FACECLOTH] => 5 [EXPLORATORY] => 5 [EXHORTATORY] => 5 [EXCITATORY] => 5 [EXCAVATORS] => 5 [EXCLAMATORY] => 5 [EXCULPATORY] => 5 [EXECRATORY] => 5 [FACILITATOR] => 5 [FACILITATORS] => 5 [ACCLAMATORY] => 5 [GRATULATORY] => 5 [GYRATORY] => 5 [HEPATOFLAVIN] => 5 [HORTATORY] => 5 [GLYCOSYLATED] => 5 [GLOATOVER] => 5 [FACULTATIVE] => 5 [FAVEOLATE] => 5 [FAVORABLY] => 5 [FOXGLOVE] => 5 [EXCAVATOR] => 5 [EVALUATORS] => 5 [DECOAGULATE] => 5 [DECLARATOR] => 5 [DECOAGULATED] => 5 [DECOAGULATION] => 5 [DEREGULATORY] => 5 [DECLARATIVELY] => 5 [DECLAMATORY] => 5 [CRYSTALLOLUMINESCENCE] => 5 [CRYSTALLOGRAPHY] => 5 [CYTOMEGALOVIRUS] => 5 [DATAGRAM] => 5 [DATAGRAMS] => 5 [DERMATOTHERAPY] => 5 [DEXTROGYRATORY] => 5 [EJACULATORY] => 5 [ECHAFAUDAGE] => 5 [EQUIVOCATORY] => 5 [EVALUATOR] => 5 [DYSTELEOLOGY] => 5 [DYSTELEOLOGICALLY] => 5 [DISADVANTAGEOUS] => 5 [DISSATISFACTORILY] => 5 [DISSATISFACTORY] => 5 [DIVAGATORY] => 5 [INTRACARTILAGINOUS] => 57 -
The problem of combinations such as T.T and L’A is one that can be addressed by never kerning more than half the advance width of the punctuation character.
This assumes that the TT and LA combinations themselves neither require negative kerning in your font, nor do they have any space left to spare. Depending on how you do sidebearings on such characters, you might have to adjust this advice slightly one way or the other.
The other option would be contextual kerning, a.k.a. kerning triplets.3 -
The danger with trying to have a concise list with only many compounded kerning pairs is that is it equally contrived and can lead to distorted results in the opposite direction.
Don’t misunderstand me, adding some of these (maybe not all ;-) to a well-balanced word list is a fine idea. Just beware of relying only on extremes like single pairs and maximum pairs.
Like John, I have cultivated word lists over the years that provide combinations in multiple contexts. Any given pair may be evaluated differently in different contexts, and one needs to find the right balance overall. That’s the nature of fitting a font. (In our current paradigm, anyway.)
7 -
Kent Lew said:The danger with trying to have a concise list with only many compounded kerning pairs is that is it equally contrived and can lead to distorted results in the opposite direction.
Maybe I can also make a list of words without any kerning pairs (words that should relay only on spacing) and then both list can be mixed, alternating on each row: one having lots of pairs, one having none, one having lots of pairs, one having none...
2 -
Pablo, why not reduce the sidebearings of /r, /v and /w, and have zero kern pairs in [overcrowd]?
1 -
Nick, those pairs are not my own invention. They where present on more than 75% of the 400 analyzed kerning tables. They may not be needed for a particular typeface, but in general they seem to be pretty popular pairs.
0 -
Yes, but should we encourage this behaviour?0
-
Yes, /r /v and /w to rounds needs kern in most cases, they are valid pairs.
Anyway... you may want to kern it or not... but I do want to have it in my word list, so I can test it.
0 -
Yes, /r /v and /w to rounds needs kern in most cases, they are valid pairs.
I disagree with this new orthodoxy, which strikes me as a step sideways entailing a lot of unnecessary work. Sorry if this is off-topic, but kerning is an end-of-pipe corrective measure, and a lot of kerning suggests fundamental side-bearing or glyph-shape issues, IMHO.
So yes, the word lists may be useful, but at an earlier stage in the design process!
Here is how an old Bitstream font did it:
7 -
I'm now a little confused about what we're testing here. @PabloImpallari, it looks like you have a script that finds max consecutive kerning pairs from an English dictionary given a generic list of kern pairs. But why is a generic list useful? The idea that "overcrowd" contains 6 kerning pairs depends entirely on what your font does.
Wouldn't it be more useful to do what James suggested and just list the words which have the kern pairs defined in a given font?1 -
just list the words which have the kern pairs defined in a given font?That might be useful at some stage of proofing, but it doesn’t give one the opportunity to discover pairs that are not currently kerned but may need to be (or may require sidebearings to be reevaluated, at least).
The point is that letter combinations — in all manner of possible combinations — need to look [acceptably] even in words. Whether that requires a lot of kerning or not may be a matter of some taste and technique.
1 -
Nick’s example of the old Bitstream font, illustrates an important, more general point.
NOTE - This point is only relevant for those who believe that automatically creating the metrics of a font, is an acceptable way of doing that—i.e., the creation of the metrics of a font, does not have to be considered as the result of the “creativity of an artist”, but can be considered as the result of a “parameterized technical optimization process”. After automatically creating the sidebearings and kerning of a font, a “creative artist” always can, if needed, manually change the results of this. (Automatically creating sidebearings, and automatically creating kerning, are here both considered to be end-of-pipe activities.)
If one tries to automate the creation of the kerning, and forgets about the sidebearings—one is putting the cart before the horse. The best way to automate the creation of the kerning, is by first automatically creating the sidebearings in such a way, that the needed number of kern pairs will be minimal. After creating such optimized sidebearings—automatically creating kern pairs, will result in a minimal (optimal) number of kern pairs.So, first and foremost, the Holy Grail of automatically creating the metrics of a font, is automatically creating the optimized sidebearings of a font.0 -
Not Latin here, but in Arabic there few kerning pairs needed since most letters join each other, and for the few letters that don’t most old Arabic fonts give them -ve side bearing and be done with it without kerning at all.. I have found this trick useful, and though I do have few kerning corrections in my fonts, they are reserved to pathological cases.
0 -
The idea that "overcrowd" contains 6 kerning pairs depends entirely on what your font does.
I interpret what Pablo is doing in terms of potential kerning pairs, based on the presence of shape combinations that are other than straight-to-straight, round-to-round, or straight-to-round. The point isn't that these combinations must be kerned, or that there isn't some other way of ensuring that the result is a nicely spaced word. They are words that expose particular kinds of shape combinations in complex contexts, so are a good test for any spacing approach.4 -
Thanks John, you've expressed it better than me.
1 -
Ok, so.. basically there is disagreement on the ideal "seed" pairs to create the word list.
We all can agree basic that pairs like "LT" should be kerned, an pairs like "HH" should not. But other pairs fails in a grey area that depends on the spacing strategy, personal preference, typeface style, etc... Some people kern "oo" (Hi Adobe Garamond Premier!)... others think it's a deadly sin... looks like there is no consensus.
Keeping that in mind:
Option 1) Try to reach some kind of consensus creating the seed pairs list. A dead end.
Option 2) Instead of compiling a predefined list of pairs and a predefined list of words, it should be a customizable tool: It should let the users define the list of "seed" pairs instead of using a predefined set. This way each one of you will be able to define the kerning pairs of your preference, and generate custom words lists. Will that be ok?
1 -
A quick update on the new Contextual Kerning Tool:
After you feed your font's kerning table into the tool, it will give you a nice customized "birds-eye visualization" on what you have kerned and what you have not.
It will also split the dictionary into heavily kerned words (those having 5 or more pairs each) and words than are resolved using spacing only. This words are also customized according to each font kerning pairs.
So, the tool is not doing any assumption about your kerning strategy.
It's only role is to assist you, so you gain more control over your own process.
It's still a very early prototype, so thing may change in the future. Also: It's a web based tool, so you need to export your font's kerning using a macro and upload it to the server and configure a few Php files (this is the most tedious part) but hopefully someone can steal mi idea and turn it into a plugin for Glyphs, Fontlab, Robofont, etc.. or maybe it can be possible to just drag the font into the app and have some magic javascript reading the kerning table on the fly (this is technically possible but out of my programming abilities)
Attached some screenshots:
0 -
You can also compare kerning in two versions of the same font, or in two different fonts:
1
Categories
- All Categories
- 43 Introductions
- 3.7K Typeface Design
- 803 Font Technology
- 1K Technique and Theory
- 620 Type Business
- 444 Type Design Critiques
- 542 Type Design Software
- 30 Punchcutting
- 136 Lettering and Calligraphy
- 83 Technique and Theory
- 53 Lettering Critiques
- 484 Typography
- 302 History of Typography
- 114 Education
- 68 Resources
- 499 Announcements
- 80 Events
- 105 Job Postings
- 148 Type Releases
- 165 Miscellaneous News
- 270 About TypeDrawers
- 53 TypeDrawers Announcements
- 116 Suggestions and Bug Reports