Heading:
AltoFontGuide
Page Numbers: Yes X: 527 Y: 10.5"
Inter-Office Memorandum
ToWhom it May ConcernDateJuly 19, 1980
FromLyle RamshawLocationPalo Alto
SubjectGuide to [Ivy]<AltoFonts>OrganizationCSL
XEROX
Filed on:[Maxc1]<Fonts>AltoFontGuide.bravo
[Maxc1]<Fonts>AltoFontGuide.press
[Ivy]<Fonts>Memos>AltoFontGuide.bravo
[Ivy]<Fonts>Memos>AltoFontGuide.press
In the early part of 1980, I poked around the InterNet and gathered up all of the Alto fonts that I could find. With the assistance of Lindsey Halloran, I edited these font to update them to the latest character code conventions: that is, I put in the third generation of special characters. I then shipped all of the resulting Alto fonts onto the directory [Ivy]<AltoFonts>. Different versions of a particular font are distinguished through the use of subdirectories. The purpose of this memo is to explain what those subdirectories are. If you need an Alto font for, say, TimesRoman10, I recommend that you List all of the files that match the pattern
[Ivy]<AltoFonts>*TimesRoman10.al,
and then choose from among them on the basis of the following information.
Criteria for choosing an Alto font:
One important reason to prefer one Alto font over another is aesthetics: you like it because you like it. I don’t presume to make any judgments on that one. But the other two important criteria are unfortunately inversely correlated: fidelity and legibility. If the screen is to be a faithful model of the printed page, then characters on the Alto screen should be the same size as the ones coming off the printer. But, since the Alto display is a low resolution bitmap, it is hard to draw characters that are both small and good-looking; in particular, it is hard to get them both thin and good-looking. Thus, the designers of most Alto fonts establish some compromise between the thin characters that fidelity demands, and the wide characters that are easier to read. Different Alto font artists have assumed different compromise positions over the years; now, you can look over all their results and choose the one that best fits your needs.
Here is a brief guide to the subdirectories:
[Ivy]<AltoFonts>Original>
updated versions of [Maxc1]<Altofonts>
wide, very legible
[Ivy]<AltoFonts>Thin>
Pellar’s second generation fonts
rather thin, not very legible
[Ivy]<AltoFonts>RoundedWidths>
updates of some fonts that Pellar did for ASD
thinnest of all: each character has as width the result
of rounding the printing width to the nearest Alto dot.
. . . (continued on next page)
[Ivy]<AltoFonts> (that is, the null subdirectory)
Pellar’s third generation fonts, except for codes above #177
roughly the same width as Original, but a different feel
[Ivy]<AltoFonts>EightBit>
Pellar’s third generation fonts, complete
roughly the same width as Original, but a different feel
First generation Alto fonts: <AltoFonts>Original>
The first generation Alto fonts are very legible, partially because they are fairly wide. When these Alto fonts were first drawn, there was only one special character: #30=↑X was an underline. Thus, Lindsey and I have added all of the third generation special characters ourselves, before sticking them out on the subdirectory <Original>. The only character already in these fonts that we changed is the single quote, #47. In first generation fonts, this was a symmetric single quote, but it is now a closing quote character; we redrew it so that it would look good opposite the opening quote character, which now appears at both code #7 and code #140.
Be warned that several other characters have changed substantially since first generation days: in particular, the code #55 (which you get by pushing the key to the right of zero) was a minus sign in first generation fonts, but is now a hyphen, so it has shrunk substantially. Meanwhile, the characters ‘+’ at #53 and ‘=’ at #75 have grown to a full em in width. Thus, the updated first generation Alto fonts don’t correspond too closely to the printing fonts in some cases.
Why, you ask, didn’t I go through and fix these characters as well, to make them correspond more closely to the current printing fonts? My excuse is rather involved, and has its origins in the differences between programs and English text. Since TimesRoman and Helvetica are intended as text fonts, it was a reasonable decision to change #55 from minus to hyphen, and to relegate minus to a control code: hyphens are more common in text. But when programming, minus signs are much more common; and in addition, most programming languages still think that #55 is a minus sign. This discrepancy is normally handled by using the font Gacha for programming purposes. Gacha hasn’t changed since first generation days, and a #55 in Gacha is still a minus sign.
It transpires, however, that there are people in the world (in CSL, in fact) who don’t like the way that Gacha looks, and prefer to stare at their programs in TimesRoman. For these people, it is better if the Alto character associated with #55 remain a minus sign, so that it will look balanced with plus and equal signs. Of course, if you print a program in TimesRoman, you will just have to live with hyphens instead of minus signs: nothing I can do about that. But I didn’t want to give anyone the chance to say that my updates had made anything worse. Therefore, I left all of the old characters in the first generation Alto fonts alone, except for the closing quote. If you want the screen to look more like what comes off the printer, you should use the third generation Alto fonts discussed below. If you want to program in TimesRoman, then pull your fonts from <Original>.
Second generation Alto fonts: <AltoFonts>Thin>
When Ron Pellar produced Alto fonts for the second generation release, he chose to make his characters much thinner than those in the first generation fonts, and, as a result, these fonts are less legible. Although thinner, they are still not thin enough to be totally faithful to the printed page. Considering how thin they are, I am quite impressed by their legibility, and by how TimesRoman on the Alto screen really looks TimesRomanish.
Ron had already gone through these fonts and updated them to the third generation. He stores them fonts on [XEOS]<FontCenter>. The only changes that I meant to make to these fonts before putting them out on the subdirectory <Thin> was to fix obvious bugs that I happened to notice, such as accents out of place, and missing characters. I may have succumbed to temptation in a few cases, however, and changed something which just looked a little wrong. If so, I have probably assumed the role of the apprentice ‘‘fixing’’ the work of the master (Pellar), and I apologize for any damage that I have wrought.
The thinnest of all: <AltoFonts>RoundedWidths>
How far can you go if you are willing to sacrifice style and legibility completely to achieve fidelity? Since a character in an Alto font is always an integral number of Alto pixels in width, the best that you could do is to make the width of each Alto character be the result of rounding its printing width to the nearest integral number of Alto dots. That was the principle behind a set of Alto fonts that Ron Pellar produced a while back, and stored on [XEOS]<ASD>Alto>. If you are using these fonts on your Alto screen, positions on your display and positions on the page will correspond to within the accumulated roundoff error. Since Ron had not bothered to update these fonts from the second to the third generation of special characters, Lindsey and I had a little more work to do on these, before we stuck them out on the subdirectory <RoundedWidths>.
One warning: to be true to the concept of rounded widths, the accent charcters in these Alto fonts are really zero dots wide. This causes problems for some systems, Bravo in particular. Hence, if you try and use these fonts with Bravo, the accents will come out as black rectangles even though the characters really are in the font. In all the other Alto fonts, the accents are one dot wide, to keep Bravo happy. Note that you can select a one dot wide character, although you have to look closely to do so. The truly zero width accent characters in the rounded widths Alto fonts don’t bother SIL, by the way; I haven’t checked out other systems.
Third generation Alto fonts: <AltoFonts> and <AltoFonts>EightBit>
As part of the third generation release, Pellar produced an entirely new set of Alto fonts. These are roughly as wide as the <Original> Alto fonts, but have a somewhat different feel. Not only did they have the third generation special characters when I retrieved them, they also have all of the other characters like hyphen, plus, and minus looking the way that they look in the printing fonts. I personally like the appearance of these fonts. Putting these factors together, I chose to put these fonts on the directory [Ivy]<AltoFonts> without any qualifying subdirectory; thus, after the cataclysm, these should be considered the ‘‘standard’’ Alto fonts.
Now for the details: third generation fonts have special characters not only in the ASCII control slots, but also associated with eight bit character codes, codes in the range #200 through #377. These eight bit characters are used by BravoX, and possibly by other systems, I don’t know. But I do know that none of the standard CSL software for dealing with text or graphics can handle eight bit characters: it was all written with only seven bit characters in mind. Hence, it seemed pointless to put the eight bit characters into the new ‘‘standard’’ Alto fonts: for a few years, almost no programs will let you get at them anyway. Beyond that, the eight bit characters take up valuable space, and might very well tickle bugs in existing systems. Therefore, before putting these fonts out on [Ivy]<AltoFonts>, I removed all of the characters with eight bit codes. If you want a font that contains the eight bit characters, for BravoX or for some other reason, you can find them on the subdirectory <EightBit>.
There is also an issue about naming conventions for these fonts. I retrieved these fonts from [XEOS]<FontCenter>, the same directory from which I pulled the <Thin> fonts. Rather than use subdirectories as I have, Ron Pellar chose to distinguish these new Alto fonts by sticking an ‘‘E’’ in their name: for example, TimesRomanE10.al. I think that this was a lousy decision for several reasons. The characters in these fonts are wider than fidelity would demand, and the terms ‘‘expanded’’ and ‘‘extended’’ are used in typography for fonts with a wider face. One might assume that the ‘‘E’’ stands for either ‘‘Expanded’’ or ‘‘Extended’’. But if this is what the ‘‘E’’ is supposed to imply, then it should come after the point size number, not before it. After all, Condensed, Regular, and Expanded are all legal face designators in the PARC font software, just like Bold and Italic. As supporting evidence for this point of view, let me note that whoever pulled TimesRomanE12.al from [XEOS] to put it on the directory [Maxc1]<Printing> chose to rename it to TimesRoman12E.al (and that person wasn’t me!). On the other hand, it is perfectly conceivable that the ‘‘E’’ really designates ‘‘Extended’’ in the sense that the character set is extended to include the eight bit characters. If this was the intent, it is easier to see why the ‘‘E’’ would go before the number. But, in this case, an analogy with TimesRomanD would lead one to assume that TimesRomanE designated a different family than TimesRoman, which is false: the font on the printers is TimesRoman without the ‘‘E’’. In summary, it seems to me that the ‘‘E’’ in the font names is a poor idea; I chose to delete the ‘‘E’’ from the names of all of the third generation Alto fonts, and to distinguish them with the use of subdirectories as descibed above.
Circumflexes:
One types a circumflex accent in TimesRoman and Helvetica by typing both a grave accent and an acute accent. Since the accents in most Alto fonts have a spacing width of one rather than zero pixels, it makes a difference which of the grave and acute accents you type first. All of the updated Alto fonts on [Ivy] have been designed with the intent that the circumflex be typed in the order ‘‘↑K ↑E’’ rather than the reverse; this order allows the group of three accents to look better. Just remember that ‘‘K before E is the KEy’’, while ‘‘E before K is wrong: EeK!’’.
Alto Font Baselines:
Many of the oldest Alto fonts had their baselines off by one, according to the current conventions for Alto fonts. This off by one bug has been fixed in all of the updated fonts.
Different Faces:
The fonts produced by Pellar were mostly drawn with Bravo in mind, and Bravo synthesizes its own bold and italic from the vanilla Alto font. Other systems however, such as Draw, demand that you supply an Alto font in the face that you desire. There aren’t very many Alto fonts in either bold or italic, and none in bold-italic. But you can find what there is, updated to the third generation of special characters, on [Ivy]<Altofonts>. The subdirectory <Original> has the most fonts in non-vanilla faces.
Different Families:
The text above was mostly written with the families TimesRoman and Helvetica in mind. Several versions of Alto fonts also exist for Gacha, Hippo, and Math in some sizes: they have also been updated and moved to [Ivy]<AltoFonts>. I put them on the subdirectory that seemed most appropriate. For other families, it is generally the case that at most one Alto font exists for each size; in these cases, I put that font on [Ivy]<AltoFonts> with the null subdirectory.