Path: utzoo!utgpu!news-server.csri.toronto.edu!dgp.toronto.edu!avi Newsgroups: comp.fonts From: avi@dgp.toronto.edu (Avi Naiman) Subject: Re: Types of kerning Message-ID: <1990Sep7.204316.26956@jarvis.csri.toronto.edu> Summary: Sector Kerning and Optical Spacing. Philosophy on Character Spacing. Organization: CSRI, University of Toronto References: <38743@shemp.CS.UCLA.EDU> <4cac478e.20b6d@apollo.HP.COM> Date: 8 Sep 90 00:43:16 GMT Lines: 86 In article <4cac478e.20b6d@apollo.HP.COM> laporta@apollo.HP.COM (John X. Laporta) writes: >By the way, are you aware that there are three types of kerning: > overall kerning - an identical (positive/negative) amount is > added to the distance between each pair of characters. > track kerning - like overall kerning, but the values differ > for different ranges of point sizes within a given font. > pairwise/triplet kerning - a lookup table offers kerning > increments/decrements for specific pairs of characters > and for the pairs in specific triplets. Kerning triplets > are often used when the font has no ligatures (e.g. for > "ffl"). I'm familiar with at least two other types of kerning: Sector Kerning. Each character in a font is split into a number of horizontal sectors. In each sector, a penetration value is specified on each side of the character, indicating to what extent other characters are allowed to penetrate into its 'space'. To determine the kerning for a specific pair of characters, in each sector the right-hand penetration value of the left-hand character is added to the left-hand penetration value of the right-hand character. The minimum of these sums is the maximum penetration allowed. Kerning is a function of this penetration amount, as well as other factors such as overall kerning, track kerning, and letter spacing. Note that nothing requires each sector to be the same height. For example, more detail can be placed around the x-height for setting body text. Furthermore, sector kerning can be used across fonts (assuming the sector boundaries are the same for the two fonts -- which they need not be), and the penetration values of more than two characters can be considered at the same time (e.g., the spacing of a pair of characters can be sensitive to the other characters in the word). If the number of sectors is a multiple of 4 and the penetration values are unsigned bytes, kerning can be determined quite efficiently with unsigned long addition (this is the approach taken in a commercial version of troff which supports sector kerning). Optical Spacing. This isn't so much a 'kerning' technique as an overall character spacing technique developed by David Kindersley, a typographer, together with Neil Wiseman, a computer scientist. Their approach is to position a right-hand character such that the linear distance between its fourth moment and that of the left-hand character is constant. For example, the fourth moment of 'A' is fairly low, while the fourth moment of 'V' is quite high. Therefore, the *spacing* for "AVA" will achieve what others refer to as *kerning*. Note that characters which are not symmetric about a vertical axis may have a fourth moment displaced right or left from the horizontal center of the character. See the following references for more details: %L Kindersley 76 %A David Kindersley %T Optical Letter Spacing for New Printing Systems %I Sandstone Press %C New York %D 1976 %L Kindersley and Wiseman 79 %A David Kindersley %A Neil E. Wiseman %T Computer-Aided Letter Design %J Printing World %D October 1979 %P 12-17 Although their approach is far from universally accepted, there are two important aspects to note. First, it is EXTREMELY DANGEROUS for those not trained in the art of typography (and don't think it's a science) to hack together kerning tables. [This warning applies to MOST people found on the net!] After the basic letterform shapes of a typeface (or font -- i.e., a typeface's rendition at a specific size realized in a specific medium) have been designed, a considerable amount of time is spent tuning, re-tuning, and fine-tuning the spacing (and/or kerning). To my knowledge, noone has yet found a satisfactory technique to determine character spacing automatically (including Kindersley). The second aspect to note is that 'kerning' is basically an exception handler. If the character spacing could be computed directly from the shapes of a pair of characters (or all the characters in a word, line, or even page), there would be no need to 'kern'. The question of optimal (and automated) spacing remains an open research topic, and is best left to qualified investigators working with competent typographers. -- Avi Naiman avi@dgp.toronto.edu