laser-lovers@uw-beaver (04/28/85)
From: adobe!taft@Glacier (Ed Taft) Since a lot of information, misinformation, and speculation has been flying around concerning character spacing, it's time to set the record straight about how spacing is actually done in the Apple LaserWriter and other PostScript printers. Most of the issues about spacing derive from the methods used to scale characters to different sizes. Considerable misunderstanding can arise from confusing "geometric" (or "optical") scaling with "typographic" scaling. Since PostScript actually supports both, an explanation is in order. First, the PostScript imaging model allows for arbitrary linear transformations to be performed on any part of a page, including any text that happens to be there. This geometric scaling capability is absolutely essential in the graphic arts world, CAD/CAM applications, and many other environments in which components of a page are composed independently and later incorporated into an overall layout. Traditionally this has been done by optical means (photographic reduction and enlargement), which preserves the relative sizes, shapes, and positions of marks on the page. Geometric scaling has an important ramification: all font metrics (widths and spacings) are mapped via the linear transformation. This is essential, since otherwise the relative positions of elements of a page would change. In a digital implementation, this implies that font metrics have fractional components. Because of this, each character is originally placed on a fractional pixel position, which must then be rounded to the nearest pixel (e.g., 1/300 inch on the LaserWriter). As characters become small relative to the pixel size, this rounding begins to have visible effects on inter-character spacing. Increasing the resolution (e.g., to 1270 or 2540 pixels per inch on the Linotronic 300/P typesetter) reduces the effects of rounding, resulting in much more accurate spacing. Another kind of scaling is "typographic". Various aspects of typographic scaling have been discussed in laser-lovers on a number of occasions. Having different "design sizes" for a font is an aspect of typographic scaling. As characters become small, type designers would like them to change in several ways to improve appearance and legibility. Typical changes are to increase the x-height, open up the counters, and increase the inter-character spacing relative to the size of the character. In the old days of hot type, these kinds of design changes from point size to point size were the rule. But since the advent of phototypesetting, such changes are the exception. For instance, ITC offers only one design for a given face (except that some faces have a very large "display" size). It is intended that the letter shapes be geometrically scaled and that the relative spacing between characters be increased as the letters are made smaller. Both geometric scaling and typographic scaling are useful in their appropriate contexts. In PostScript, geometric scaling is the default, because it minimizes the burden on composition programs (only one set of metrics per face are required for determining placement and justification of any size of text). However, given designs for fonts to be used at small sizes, it is quite easy to make inter-character spacing be a function of both the target point size and the device resolution. Sumner Stone (Adobe's directory of typography) has done some of this to illustrate how PostScript users can control typographic spacing. The point of all this discussion is that there is no single "correct" approach to character scaling and spacing. There are several approaches which are incompatible to some degree and each of which is appropriate in different contexts. PostScript uses one approach by default, but provides users the flexibility to employ other approaches. Ed Taft Adobe Systems, Inc. Notices: PostScript is a trademark of Adobe Systems, Inc. LaserWriter is a trademark of Apple Computer, Inc. Linotronic 300/P is a trademark of Allied Corp.
laser-lovers@uw-beaver (04/29/85)
From: naiman.pa@Xerox.ARPA Unfortunately, I am still a little mystified as to the spacing/scaling issues. Below are some excerpts from Ed Taft's recent article (denoted with the '>' at the beginning of the lines) followed by my comments/impressions/questions. My major concern here is to disambiguate scaling and spacing issues and how PostScript handles them. > Most of the issues about spacing derive from the methods used to scale > characters to different sizes. Considerable misunderstanding can arise > from confusing "geometric" (or "optical") scaling with "typographic" > scaling. Since PostScript actually supports both, an explanation is in > order. This implies that PostScript supports both forms of *scaling*. > Having different "design sizes" for a font is an aspect of typographic > scaling. As characters become small, type designers would like them to > change in several ways to improve appearance and legibility. Typical > changes are to increase the x-height, open up the counters, and increase > the inter-character spacing relative to the size of the character. Note that *spacing* is just one of the issues in typographic *scaling*. > In the old days of hot type, these kinds of design changes from point > size to point size were the rule. But since the advent of > phototypesetting, such changes are the exception. The following is my understanding of the evolution of spacing/scaling as paraphrased from "Computer-Aided Letter Design", by Kindersley and Wiseman, in Printing World, October 1979, pp. 12-17. In early phototypesetters, the size of the letter image was controlled by interchanging several lenses or by employing a zoom lens of variable focal length. The adjustment of interletter spacing for special letter combinations was much simpler than for metal type. On the other hand, a significant advantage of hot-metal typography was given up: the type design could not be varied with the size of the type without preparing a new master image. The cost of additional master-image carriers and the inconvenience of interchanging them discouraged their use. One would have thought that some of the restrictions of technique imposed by the old methods would be lifted at the first opportunity. In other words, while the new technology allowed for improved spacing, it set the quality of the fonts back a ways. Moral: just because economic issues constrained the use of true-cut masters in phototypesetters, does not mean that we should be satisfied today with geometrically scaled fonts. > For instance, ITC offers only one design for a given face. It is > intended that the letter shapes be geometrically scaled and that the > relative spacing between characters be increased as the letters are made > smaller. Note that this only addresses one aspect of scale modification (i.e., spacing). Moreover, just because ITC (and most everyone else) relies on a single master, does not mean that Adobe (or some other company that wants to be at the leading edge) should not strive for higher quality fonts through 'true-cut' masters. > In PostScript, geometric scaling is the default, because it minimizes > the burden on composition programs (only one set of metrics per face are > required for determining placement and justification of any size of > text). However, given designs for fonts to be used at small sizes, it is > quite easy to make inter-character spacing be a function of both the > target point size and the device resolution. Sumner Stone (Adobe's > directory of typography) has done some of this to illustrate how > PostScript users can control typographic spacing. Given designs by whom? I take it Adobe isn't providing them. Note that this is the first time Ed uses the term 'typographic spacing' and that this is in fact all that PostScript can handle (i.e., typographic spacing, not typographic scaling). > The point of all this discussion is that there is no single "correct" > approach to character scaling and spacing. There are several approaches > which are incompatible to some degree and each of which is appropriate > in different contexts. PostScript uses one approach by default, but > provides users the flexibility to employ other approaches. This implies that PostScript supports both forms of spacing in addition to both forms of scaling. My conclusions from Ed's article are that PostScript supplies a single master for each font which can be geometrically scaled to various sizes. Furthermore, as a default, the spacing data are also geometrically scaled, but could (through user programming) be 'typographically' scaled. However, short of designing your own font (or, I suppose purchasing one from someone else), PostScript does NOT provide any way to typographically SCALE the master font. Have I got that right Ed? Avi Naiman University of Toronto avi@toronto.csnet Summer address: Naiman.pa@Xerox.Arpa