Reason for separating Latin and Cyrillic kerning groups?

I remember reading somewhere that it is best not to combine kerning groups between Latin and other scripts like Cyrillic. Could anyone elaborate on this?

For example, in Latin, you might have a kerning pair for "C" to "o", and in Cyrillic, the Es looks like a Latin "C", and the Cyrillic "o" looks like a Latin "o", meaning it seems much easier to just place them in the group containing the formal Latin equivalent. 

Without combining them, I then have to reference a bunch of Latin kerning pairs to build a similarly kerned Cyrillic alphabet. 

Does that make sense?


  • Thomas PhinneyThomas Phinney Posts: 1,417
    edited May 2018
    As long as your kerning “fits” without overflow, that is fine. Separating your classes by writing system just allows for the possibility of breaking the kerning into subtables by writing system.

    If there are quite a few classes that are only needed in one writing system or the other, then it can save space. In some cases, quite a bit. But it really varies by typeface and designer.

    In cases where the kerning exceeds 64K in a single subtable, this is important to try as otherwise either kerning must be cut off or the font won't compile (the exact nature of failure depending on your font editor).

    FontLab VI will check for and do such compile-time optimizations automatically behind the scenes; with other apps, there are scripts and tools for it.
  • Kent LewKent Lew Posts: 861
    From a development standpoint, there is obviously an advantage to having the Latin, Cyrillic, and Greek “cognates" in combined classes.

    As Thomas explains, there are production advantages to having them separate, in terms of subtabling if necessary when compiling.

    Therefore, I generally start with them combined, and toward the end of my development process I split them out, if necessary. If your font editor or workflow can handle this on-the-fly at compilation time, so much the better.

    I think the main thing to be aware of in such an approach is managing exception pairs.

  • Great, thanks for the clarification. I totally see how both approaches are viable.
  • Thomas PhinneyThomas Phinney Posts: 1,417
    FWIW, I also tend to do what Kent said: I keep my classes “unified” going across scripts, until/unless there is a problem.
Sign In or Register to comment.