At its most basic level hinting (or, more accurately, instructing)
a font is a method of defining exactly which pixels are turned on in order to
create the best possible character bitmap shape at small sizes and low
resolutions. Since it is a glyph's outline that determines which pixels will
constitute a character bitmap at a given size, it is often necessary to modify
the outline to create a good bitmap image; in effect modifying the outline until
the desired combination of pixels is turned on. A hint is a mathematical
instruction added to the font to distort a character's outline at particular
sizes. Technically, hints result in operations which modify a contours' scaled
control point co-ordinates before the outline is scan converted. In TrueType a
combination of these hints, and the resulting distortions, affords a very fine
degree of control over the bitmap shape produced.
Modifying an outline in this manner results in what is known as a
grid-fit. On the basis of the instructions contained in the individual
font file, the TrueType rasterizer adjusts the glyph outlines to fit the bitmap
grid appropriate for whichever size the text is to be displayed at. This outline
adjustment is carried out on a case-by-case basis and is illustrated in
figure 1 below.
Figure 1a. An outline that hasn't been grid-fitted. Note how poorly the outline corresponds to the pixel pattern, and above all how awkward the bitmap of the M is.
Figure 1b. The same outline grid-fitted. Now the outline has been adjusted to fit snugly around each pixel, ensuring that the correct pixels are turned on.
Grid-fitting explicitly ensures that certain features of the glyphs are
regularized, and allows us to overcome many of the problems traditionally
associated with displaying text at low resolutions. Because the outlines are
only distorted at a specified number of small sizes, the contours of the
letterforms at higher resolutions remain unchanged, and undistorted.
Although many font formats and applications offer some hinting facilities, these
hints typically consist of a few global parameters that are only capable of
specifying distances that should be kept the same. TrueType enables the designer
to stipulate exactly how the glyphs and their spacing will appear at low
resolutions in isolation as well as within a text setting.