Considerations on automated kerning

As we have seen the final kerning that goes into the font is the post-processed raw kerning produced by the engine. We have also seen that positive kerning is there to accomplish a specific task: prevent overlapping that could potentially limit legibility. Negative kerning, instead, produces compenetration and rhythm, giving its contribute mainly to the readibility side and defining the style, the mood and the aestethic of a letterfitting. I think it could be useful to look at the distribution of the negative kerning mass to understand specific iKern qualities.
The two following tables are derived from a 1000 UPM font of 574 glyphs of latin script recently processed. The difference among them is in the different kerning strength value adopted. There are reported the values of all the kerning values present inside the range from 0 to – 10 and, finally, <=-11 and their relative percentage inside the whole kerning mass. The last columns reports percentiles (the number of pairs falling inside a range starting from 0 to the specified value) referred to the whole kerning mass and equalized to the negative kerning mass.

Microkerning distribution

The distribution of the values is a gaussian bell strongly centered around the zero. This is a consequence of the fact that autospacing and autokerning are produced by the same algorithms. In a standard production scenario (kerning strength = 0.00) nearly the 50% of the negative kerning pairs have a resulting value of 0 (in iKern kerning values are single precision numbers, not integers) and so on. In my opinion these data are saying that the spacing is well optimized. A common statement rules: a good spacing requires a few kerning pairs. The effective pairs number could be a criterion when doing kerning manually that means hardly considering the range (from -10 to 0) where iKern produces the 80%-90% of the negative kerning pairs. But this number should also take into account the effective number of kerning pairs analyzed (is not unusual even for slightly more complex than average project to submit list of kerning pairs with more than 100.000 elements). The average kerning value could be a correct measure: it’s the displacement between a kerned and an unkerned configuration. Low values like those iKern produces, even if many, mean that this difference is averagely low too. This continous distribution is another proof of quality in my opinion: “Natura non facit saltus”. Literally means “The Nature doesn’t make leaps”. You can see on Wikipedia where it’s cited as a statement for “natural (macroscopical) processes are to vary continously”. In this case it means that iKern model shows a natural behaviour. I’ve tried, as test, to gradually cut away lower negatives kerning values. It happens that the grace tend to gradually disappear at the same time. That’s why I think this microkerning is one of the keys of iKern high quality output. An element really difficult and antieconomical to pursue in a not automated way.

The style of kerning produced by iKern can be a little different from the traditional way of fitting. By default iKern always put a little negative kerning in pairs like OH in a serifed typeface. It’s normal from the model’s point of view: if we consider the spacing optimized and we have a convex shape facing a concave one a compenetration is always the natural consequence. The entity depends on the kerning strength adopted (without affecting the spacing) and on the shapes of the serifs (that could potentially change from glyph to glyph). In a traditional manual setting a pair like OH doesn’t require instead kerning. How? It can happen just for 2 motives: because the negative kerning values now explicitly introduced by iKern are used to reduce the sidebearings of the curved outlines or because they are simply omitted. This second solution, that coincides with the solution of reducing the sidebearings of both the stems and the curved outlines, obviously guarantees less quality. The first should guarantee the same quality if the consequent positive kerning values on pairs of curved outlines were preserved (sometimes seen). Otherwise we’ll always have pair like OO too tight. In general this strategy could reduce the amount of pairs and improve the adherence of the fitting in a non-kerning scenario. iKern can adopt this strategy preserving or not the cited consequent positive kerning values. But preferably if really needed and when the other possible optimizations still leave lack of space in the GPOS table. The loss of quality is proportional to the informations discarded and is not always a good price for a reduction in pairs number anyway. So it has to be evaluated case by case. Using the default approach always guarantees the preservation of every nuance and it’s the solution of choice. It’s just like setting a high bit rate when making mp3 files.

Different Kerning Styles

Different Kerning Styles: (from above) a) iKern default (for a kerning strength of 50%). b) Sidebearing reduction on curved outlines (the result is perfectly coincident with the previous example). c) Same as previous but discarding positive kerning values. d) Omission of low negative kerning values.

All the chapters of The tool behind iKern v.1.2 :
  • The core engine
  • The post-processing module
  • Future developments
  • Considerations on automated kerning