§ 1. History of Fonts
ypography is the art and technique of printing. In the beginnings of typography printers used handmade wooden or metal type pieces, a collection of pieces for each letter of the alphabet. Block printing had been done before then by hand-engraving stone slabs, wooden blocks, or metal plates with the full text, but this form of printing we cannot consider as typography. With the invention of "movable" type around A.D. 1450, sets of individual type pieces were alphabetically arranged according to their size and style in wooden cases. Usually the printer kept an upper case for capital letters and a lower case for small letters. Each set of pieces of a particular size and particular style (or "face") came to be called a "font." The word font comes from the French verb fondre, meaning to melt; the word is also used as a noun, by derivation, meaning casting or foundry. The word harkens back to the days of creating type pieces by casting molten metal.
Metal type pieces had a significant advantage over the wooden ones because they could be reproduced from a mold. An engraver would design a letter and carve its shape in steel to form a punch. The punch was then hammered into a softer metal, which was then hardened by tempering. The hardened mold (or "die") could later be used as a form in which to cast many pieces of type for that letter. The skill and labor required to make the punches was high and made them costly. Consequently, the business of font design was secure for the engraver. There was little risk of cheap reproductions of a craftsman's work as there is with today's electronic fonts.
During the Industrial Revolution improvements were made to manufacture of type, but the theory behind the process remained substantially the same. Typesetting machines were invented in the early 20th century that would cast "hot" type on demand, simply by typing the desired text on a keyboard. A machine would automatically set a line of text in metal. This process significantly reduced the cost of printing, since individual pieces of type no longer had to be arranged by hand. The metal strips of text were melted down after the printing job was finished, and the metal could be reused by the machine. Ironically, this process is in some sense similar to the original idea of engraving the whole text on a piece of metal, except that the letters stood out from the surface rather than being cut into the surface. Nevertheless, it does involve the use of standardized type faces and so it is considered typography.
§ 2. Computer-Generated Fonts
The most significant breakthrough in typography since movable type, was the invention of computer-generated typefaces. With the font descriptions stored in software, the computer has almost unlimited capacity for the variety of type faces that can be used. Scalable fonts (first made popular by Adobe Systems, Inc.) bring to the desktop truly impressive typographic capabilities. For the professional font designer this has been somewhat of a mixed blessing, since software fonts are easily copied from one computer to another. When this is done illegally it is called "pirating"; it reduces the font manufacturer's legitimate revenue for having created the font. Furthermore, typefaces that were painstakingly designed can be easily mimicked by other font manufacturers, if not copied outright. A computer user can design special fonts or redesign individual characters within a font by using a program like Fontographer; this reduces the need for professional font designers.
Software fonts are organized into font families, where typefaces in a particular style are grouped together for identification. A font family may include various weights (e.g., bold, semi-bold, normal, etc.), related styles (e.g., Roman, italic, condensed, etc.), and combinations of these. Within a family, the two most common styles are Roman and italic. Roman fonts print straight up, while italic fonts are tilted somewhat to the right. Roman and italic are distinctly different fonts, which is obvious if one compares letters from both fonts, such as the lowercase "a" or "g." While serif fonts have a related italic font, sans serif fonts usually have a related oblique font, which serves the purpose of an italic font. Oblique fonts are slanted versions of their Roman equivalents.
The Apple Macintosh computer pioneered quality desktop typography by its support of Adobe PostScript printing and WYSIWYG screen displays. WYSIWYG ("What You See Is What You Get") allows you to see on the computer screen a close approximation of what will print. The other major player in the desktop market, the IBM PC and its myriad clones, has trailed the Macintosh for several years in typographic capability but recently has closed the gap. In particular, Microsoft Windows has a graphical screen interface that facilitates WYSIWYG. TrueType fonts (another Macintosh innovation) are supported by Microsoft Windows both for screen display and for printing.
§ 3. PostScript Fonts
Many people argue that the PostScript fonts make a better printout than do TrueType fonts. Certainly PostScript is an older technology, and there is a greater installed base among commercial printer shops. If one wishes to take one's desktop publishing files to a commercial printer, one is well advised to make the output files in PostScript format. One may need to bring to the printer a copy of the software fonts that are used in one's document. Most print shops have a wide selection of fonts on hand but they may lack some specialized fonts.
PostScript is really a primitive programming language that provides instructions and data to be used by a small computer inside the laser printer. PostScript fonts are scalable, because the shape of each letter is described mathematically. These are called outline fonts. The mathematics can be adjusted to create any size font on demand. The mathematics consist of a number of judiciously chosen points in the outline of a character, plus bezier curve information to describe the curvature of the line connecting each set of points. The area inside the character's outline is normally filled in with black, but it may be any color (including white), have a striped or other pattern, or just print the outline with no fill. PostScript fonts are device-independent and resolution independent. That is to say, the scaling mathematics will work regardless of the resolution or brand of the PostScript output device.
PostScript fonts are printer fonts only, and a separate set of fonts is needed for display on the computer screen. The WYSIWYG principle dictates that the screen font match as closely as possible the appearance of the corresponding printer font. The screen fonts are bitmapped. That is to say, each letter is described as a collection of dots, called pixels (or picture elements), that build up the letter's shape. The dots can be thought of like filled-in squares on a piece of graph paper. This corresponds to the idea of a raster image, since the electron beam in a computer monitor sweeps across the screen in a straight line from left to right, progressing from top to bottom, as a TV tube. Flat-panel computer displays (such as LCD displays) also use pixels. Raster imaging makes it impossible for the electron beam to trace out a curved line on the screen, even in graphics mode. Therefore, all characters on the screen are raster images and are bitmapped. Paradoxically, the printer's computer translates PostScript programs into bitmaps before for actually printing.
PostScript fonts include one bitmapped screen font and one scalable printer font. Each font also has a font metric file associated with it. Originally, Adobe had two kinds of fonts: Type 1 fonts were those from Adobe; and Type 3 fonts were compatible fonts from other vendors. (There were no Type 2 fonts.) Eventually Adobe released the specifications for Type 1 fonts, and now other vendors have been able to release Type 1 fonts also. Adobe Type Manager will only work with Type 1 fonts.
§ 4. TrueType Fonts
With the recent advent of Adobe Type Manager (ATM), it is no longer necessary to have a bitmap for each size font that will be used on the screen. ATM automatically creates bitmaps for larger or smaller fonts from a single template font by doing an estimate, or extrapolation from the original pattern. ATM is now available on both the Macintosh (ATM version 3.0 or higher) and for Windows (ATM version 2.5 or higher).
TrueType fonts are scalable, but they differ from PostScript in that a separate screen font is not needed. The same font is used for both screen display and printing. ATM is also unnecessary, as the rasterizing of fonts is done automatically by the computer's operating system. TrueType printing is generally slower than equivalent PostScript printing, yet this difference is beginning to be resolved on the newer computer hardware. Current Macintosh computers are delivered with TrueType fonts as part of the operating system. Windows for the PC also comes with numerous TrueType fonts.
TrueType is, however, not a good format in which to design fonts. TrueType characters are based on what are called quadratic splines; these are difficult to control in the design process. Changing one spline has repercussions on other splines in often unexpected ways, making modifications to the shape of a character somewhat intractible. The best approach to font design by computer is to work with the character shapes in PostScript format. One can then convert the PostScript images into a TrueType font; this can be done automatically using a font creation program like Fontographer.
§ 5. Fonts in Java
The Neume Notation Project is targeted for the Java programming language. Java was chosen (among other advantages) because it is "platform neutral." That is to say, programs written in Java can be run on virtually any computer system, including PC, Macintosh, and UNIX systems. Java accomplishes this by using a "virtual machine" that sits between a Java program and the underlying computer system. Although the Java Virtual Machine (JVM) must be customized for the computer system on which it runs, any Java program will run on any JVM. In practice, there are some exceptions to the ideal of platform neutrality, but the impetus in the computer industry is toward making all JVMs compatible regarding the programs they can run.
The platform neutrality of Java has some drawbacks, however. For one thing, the Java programmer does not have direct access to the underlying computer system. One implication of this is that it is not easy to take advantage of fonts that may be available in the underlying computer system. This point will pose problems for the Neume Notation Project, since we depend heavily on the use of non-standard fonts, i.e., fonts of medieval neumes. For another thing, the JVM provides only five fonts for use in Java programs. The five are serif, sans-serif, monospaced, dialog, and dialoginput. The JVM uses a font on the underlying computer system that most nearly matches each of these. Each font can be displayed in many sizes and in four forms: plain, bold, italic, and bold-italic. The computer industry generally is aware of the limitations imposed by not giving programmers more access to fonts on the underlying computer system. Future versions of Java may have a richer functionality for specifying fonts in a Java program.
For the time being, though, the Neume Notation Project faces a difficult problem in gaining access to non-standard fonts. This problem is not insurmountable. Java programs for non-Western countries, such as China, use fonts where the set of characters is quite different from the Latin alphabet that we use in English. In the Neume Notation Project our situation is only slightly more difficult, in that we need to display Latin fonts and neume fonts simultaneously; we also must allow a user to switch back to all Latin fonts when s/he is not using our program. The solution that has been used up till recently has been to modify or replace a file called font.properties on the underlying computer system, so that alternate font files can be used by Java than what is normal. With the release of Java version 1.1, there is a new feature called the resource bundle, which may allow the Java programmer to control which font files the JVM uses for a particular Java program. Documentation for how to do this, however, is currently hard to find. Controlling Java fonts in the Neume Notation Project is currently an unsolved problem.
§ 6. Summary
Font technology has made tremendous advances during the past ten or fifteen years, that is, since the advent of desktop computers. The availability of computer technology to nearly every business and home office has brought to average users the capability of hands-on, sophisticated typography. Before this time, typography was the domain of a few highly-trained specialists. Even with this revolutionary change, however, some elements of font technology have remained tradition-bound. Despite the wide variety of software fonts available today, a few font families still get the lion's share of work in book and document printing. Furthermore, the task of designing an attractive and functional type face remains an art, an art that requires an aesthetic eye as well as a solid understanding of traditional font design.
One of the challenges to the Neume Notation Project is to bring the power of custom typography to the Java programming environment so as to allow us to do platform-neutral typography of medieval neume notation.