Type Talk I: Families and Faces

I've been using the word font rather loosely until now. The more rigorous definition of font that is preferred by typographers is this: A font is a complete collection of characters of a particular typeface and a particular size.

To a typographer, the term typeface denotes not only the style of type (such as Courier or Helvetica) but also whether the characters are italic or boldface, for example. When working with Windows, we'll use the word typeface to denote simply the style of the type. Common typefaces, in addition to Courier and Helvetica, are Times Roman, Gothic, and Palatino.

Windows groups typefaces into five ”families,“ based on the general appearance of the type. These families are called Modern, Swiss, Roman, Script, and Decorative. The most common typefaces are categorized as Modern, Swiss, or Roman, depending on two characteristics. The first characteristic involves ”stroke width“—the width of the lines that make up the characters—which can be constant or variable. Typefaces in the Modern family have constant stroke widths. Typefaces in the Swiss and Roman families have variable stroke widths. (Typefaces with variable stroke widths are generally of ”variable pitch,“ which means that the characters have variable widths. However, it is the stroke width rather than the use of fixed or variable pitch that determines the family of a particular typeface.) The second characteristic involves ”serifs,“ which are small lines that finish off the character strokes. The Swiss family comprises ”sans serif“ typefaces (typefaces with no serifs); the Roman family comprises serif typefaces.

The Script family comprises typefaces that resemble script handwriting. The Decorative family includes typefaces that comprise ”symbols“ (sometimes also called ”ornaments“ or ”dingbats“) and can also contain typefaces of elaborate design such as Old English.

The table below summarizes the grouping of typefaces into families and shows the identifiers (defined in WINDOWS.H) that programs can use to specify the font family:

Font Family Stroke Usual Pitch Serifs Typical Typefaces

FF_MODERN Fixed Fixed Courier, Elite, Pica
FF_SWISS Variable Variable No Helvetica, Avant Garde
FF_ROMAN Variable Variable Yes Times Roman, Palatino, New Century Schoolbook
FF_SCRIPT Cursive, Zapf Chancery
FF_DECORATIVE Old Symbol, English, Zapf Dingbats

WINDOWS.H also includes a sixth font-family identifier, FF_DONTCARE, which a program can use when it wants to create a font but doesn't care what family it comes from.

The typeface names shown in this table are the common names by which these typefaces are known, but when a Windows program specifies a typeface, in most cases it uses an abbreviation (such as ”Helv“ for Helvetica and ”Tms Rmn“ for Times Roman) rather than the full name. (The reason for this is that the names Times Roman and Helvetica are copyrighted and cannot be used to identify fonts not licensed from the copyright holder.) As you'll see, Windows provides functions for programs to determine the names of the typefaces available on a particular device. These functions become particularly important when the device is a printer, because printers can include many device fonts with names that can be determined only when the program interrogates the device. Typefaces available for the video display are shown in Figure 14-3.

Courier, Helv, and Tms Rmn are the raster fonts; the stroke fonts (Modern, Roman, and Script) have typeface names that are the same as the names of three font families. The reason that the stroke fonts are not assigned true typeface names is that they are not really fonts in any traditional typographical sense.