Experiments with Kerning Pairs
Posted: Wed May 28, 2014 7:20 am
This is a follow up to the recent kerning pairs thread, but I have some new evidence, and new bafflement.
I have developed a font over quite a long period. It has 100 kerning pairs as reported in the caption of Font Creator's kerning pairs window, and the list looks about that long. [I've experimented over the history of the font and forget how most of them got there, but I'll concentrate here on 3 pairs which I added last week.] In the preview toolbar:
Some results:
1. Of these only the AV one is rendered in the Font Creator test window.
2. If I switch on font-kerning in Word 2007, then, of these, it too only renders AV.
3. So I experimented with my own program using Windows GDI functions. (Non-programmers please see technical note appended.) Drawn large enough on the screen the AV kerning is rendered, but the others aren't.
Further experiment:
I've just discovered a new (to me) Windows function 'GetKerningPairs()' with which, having loaded a font, you can ask which symbols constitute kerning pairs, and by how much their spacing is altered.
With my font, loaded (for the screen) at a size where capitals are 24 pixels high, there aren't any. But loaded (for printing) such that capitals are 296 pixels high, it reports 909 kerning pairs! Many of them, it appears, involve symbols which are not even in the font! However, they do include AV, and *don't* include the other two shown above!
Conclusion:
So despite the weirdness of the GetKerningPairs() function, it appears that two of the three cases illustrated above, the kerning is not being exported. But it is shown in the Font-Creator preview toolbar.
Questions:
Is there some special coding behind the preview toolbar window?
Is it possible that Font Creator does not export some kerning pairs?
Dave
---------------------------
Appendix on programming Windows:
"GDI" (the Graphics Drawing Interface) is the traditional Windows library for drawing things, including text, where it is nowadays updated to use strings of Unicode characters, encoded in UTF-16. To use it, you first create a 'device context' (DC) for the screen or printer, then load a font into the DC (at the desired size), and then use library functions with names like TextOut(), ExtTextOut(), and DrawText() to output the text. After loading the font, you can also use the GetKerningPairs() function on the DC to find out which pairs should kern.
Although "GDI" is the most traditional and fundamental library of Windows functions which include text output, there are at least three others ('GDI plus', 'DirectWirite', and 'Uniscribe') which Microsoft have come up at various stages with since. I haven't experimented with them; it would probably only muddy the waters further!
-------------------------
I have developed a font over quite a long period. It has 100 kerning pairs as reported in the caption of Font Creator's kerning pairs window, and the list looks about that long. [I've experimented over the history of the font and forget how most of them got there, but I'll concentrate here on 3 pairs which I added last week.] In the preview toolbar:
Some results:
1. Of these only the AV one is rendered in the Font Creator test window.
2. If I switch on font-kerning in Word 2007, then, of these, it too only renders AV.
3. So I experimented with my own program using Windows GDI functions. (Non-programmers please see technical note appended.) Drawn large enough on the screen the AV kerning is rendered, but the others aren't.
Further experiment:
I've just discovered a new (to me) Windows function 'GetKerningPairs()' with which, having loaded a font, you can ask which symbols constitute kerning pairs, and by how much their spacing is altered.
With my font, loaded (for the screen) at a size where capitals are 24 pixels high, there aren't any. But loaded (for printing) such that capitals are 296 pixels high, it reports 909 kerning pairs! Many of them, it appears, involve symbols which are not even in the font! However, they do include AV, and *don't* include the other two shown above!
Conclusion:
So despite the weirdness of the GetKerningPairs() function, it appears that two of the three cases illustrated above, the kerning is not being exported. But it is shown in the Font-Creator preview toolbar.
Questions:
Is there some special coding behind the preview toolbar window?
Is it possible that Font Creator does not export some kerning pairs?
Dave
---------------------------
Appendix on programming Windows:
"GDI" (the Graphics Drawing Interface) is the traditional Windows library for drawing things, including text, where it is nowadays updated to use strings of Unicode characters, encoded in UTF-16. To use it, you first create a 'device context' (DC) for the screen or printer, then load a font into the DC (at the desired size), and then use library functions with names like TextOut(), ExtTextOut(), and DrawText() to output the text. After loading the font, you can also use the GetKerningPairs() function on the DC to find out which pairs should kern.
Although "GDI" is the most traditional and fundamental library of Windows functions which include text output, there are at least three others ('GDI plus', 'DirectWirite', and 'Uniscribe') which Microsoft have come up at various stages with since. I haven't experimented with them; it would probably only muddy the waters further!
-------------------------