Liveblogging a presentation at TypeTech, ATypI Brighton 2007 (q.v.)
(Юрий Ярмола is a developer of FontLab.) What I’m going to discuss is how to improve rendering of your fonts on the screen. This task can have different approach. On the one side, screen resolution increases, and we have new technologies for font smoothing, like ClearType and something from Apple. So everyone almost entirely moved to LCD screens, and we now have the subpixel rendering there. So the technical result is like 300 dpi, which is exactly what we had on laser printers ten years ago.
On the other side, resolution of printers is improving. 600 dpi is standard for low-cost printers and 1,200 dpi on the more professional models, so things are getting better and better.
In modern operating system like Microsoft Vista, the importance of screen hinting is really decreased. Some technologies are not used anymore, like delta hints; they don’t work. We still have some low-resolutions screens, like GPS screens, TV screens, multimedia kiosks, so screen rendering is still important. We still need to care about good screen rendering.
We still have two technologies for font hinting, which is adding special instructions for the font that will help it to render in a low-resolution environment, important where the resolution is below 150 dpi. It could be OK to just ignore hints above that, especially if you have greyscales.
If you look at OpenType fonts from a hinting perspective, there are still two formats – Type 1 and TrueType, with different hints. I’m going to show how to do different layouts of hinting. You need to decide how far you want to go. You might just do nothing and leave it completely to FontLab to do hints automatically, and the results would be acceptable. But if you do a very few steps, you can increase the quality on low-resolution screens. You can apply more detailed hinting and, if you go the TrueType way, you can add delta hints. Technically, you can spend a lot of time getting your quality to the level of Verdana or Arial. I would not recommend that, but if you need to do that, you can.
(Opens Adobe Garamond Pro, exports to an outline font.) This is where you usually start. You have outlines and nothing else. What I want to check is now the font will appear right now with and without hinting. (Ticks outer hinting, activates Type 1 hinting.) For basic hinting, black/white is better than greyscale. (The results are too small to see on the screen.) Font-level hints are most important; they’re defined for all glyphs in your font. They’re alignment zones and standard stems. Alignment zones handle overshoots (like C, O). Needs to say that the overshoot should not appear when the pixel height is too small. Go to Font Information panel, then Hinting Settings. (Shows shadowed area of how overshoot area will be suppressed.)
Widths of stems should be the same in a letter like H. But the rasterizer does not know that without help. Stem hints solve the problem. Even recalculates the width of the stem if you move only one corner of a stem. (Shows output.) You are not required to define all stem hints manually. Select all glyphs and auto-hint them; stem hints will be generated automatically. This will really improve rendering of the font.
Now define standard stems – some commonly-used stem widths. Width of left stem of B should be equal to the stems of H and T, for example. There are some widths like that that must be consistent in your font. You can do it manually, but just let FontLab do it, though it may generate too many of them – you shouldn’t have more than two or three in the x and y directions. (Twardoch ramblingly interrupted: The rasterizer will try to round some similar stems. A stem width of 152 and another of 146. You could specify one at 149 and let the program’s threshold handle it.)
Why is Type 1 hinting important? Even if you want to make TrueType hints, it’s important. FontLab can convert to TrueType hinting. You can get much better results with TrueType hints if Type 1 hints are done correctly. And font-level and stem hints are most important.
Another thing you can do is generate actual bitmaps, which, in TrueType fonts, are stored with them and could be used in some cases instead of the hinted outline. Really you usually only do that for Chinese. But you could give this generated bitmap to a hinter who will use it as a template. (You can switch back and forth between outline and bitmap hinting in the display and show the differences in red.) This is the perfect way to organize workflow.
What’s the difference between different rasterizers? (Shows black/white rendering.) This is not what a user will typically see on a screen, though it might be on a small screen like a PDA or a GPS. What you usually see is a greyscale or ClearType rendering. With ClearType, many delta-hinting instructions don’t work, especially in one direction. Rendering quality depends not only on the quality of hinting but the rasterizer. It’s always a good idea to check how your font is rendering in different rasterizers. In the Windows version, FontLab actually installs a tiny version of the font and uses that to display it. (Twardoch: In ClearType, the y direction is very important, so alignment zones, baselines, x-heights are much more important than the horizontal direction. The eye can deal with problems with the width much better than sudden jumps in the baseline.)