Heading:
EnsuingCataclysm
Page Numbers: Yes X: 527 Y: 10.5"
Inter-Office Memorandum
ToWhom it May ConcernDateApril 1, 1980
FromLyle RamshawLocationPalo Alto
SubjectEnsuing font cataclysmOrganizationCSL
XEROX
Filed on:[Maxc1]<Fonts>EnsuingCataclysm.bravo
[Maxc1]<Fonts>EnsuingCataclysm.press
[Ivy]<Fonts>Memos>EnsuingCataclysm.bravo
[Ivy]<Fonts>Memos>EnsuingCataclysm.press
The time has come for an update in CSL’s font world. Sometime soon, I plan to replace many of the printing fonts in Clover’s current font dictionary with new and better versions. The TimesRoman and Helvetica families will be replaced by Ron Pellar’s latest release; and an entirely new set of TEX fonts produced by Don Knuth with Metafont will also make their debut. As the first step towards effecting this cataclysm, I am pleased to announce the release of a hoard of updated Alto fonts: every Alto font for TimesRoman and Helvetica that I could find over the InterNet has been updated to reflect the state of the world after the cataclysm. The details of this Alto font release are discussed below.
Like most pieces of progress, this cataclysm will cause some joy and some pain. I recommend that everyone read this message, to get a vague sense of what is going to happen. Experts may also wish to read one or more of a group of subsidiary memos that discuss various issues related to the cataclysm in greater detail. Here is a list of all of the documentation relating to the cataclysm:
EnsuingCataclysm (The text of this message.)
SpecialCharacters
TexFonts
AltoFontGuide
UniversityFonts
Each of these is available on [Maxc1]<Fonts> and on [Ivy]<Fonts>Memos> in both a ‘‘.Press’’ and a ‘‘.Bravo’’ version.
In addition, there are two other items of font documentation that you might want to look at right after the cataclysm. First, recall that the file [Maxc1]<Fonts>CloverFonts.Press always contains a tabular listing by family name, face, and size of all of the fonts currently installed on Clover, and on those printers who share Clover’s font set (Lilac, Menlo, Kanji, Quake, and Rockhopper among others). But since the family name of a font doesn’t help you much if you are looking for a particular character, I will be producing another file called [Maxc1]<Fonts>CloverCharacters.Press. For each family of fonts on Clover, this document will have a one page table that shows what printing character is associated with each character code. I hope that this file will be an adequate substitute for a true Clover font catalogue.
By the way, if you think that I have made some wrong decisions in planning this upcoming cataclysm, let me know; after all, I am still something of a novice as a font wizard.
Terminology:
For the purposes of this memo, a font is a means by which certain graphical shapes are associated with certain seven or eight bit numbers, called character codes (always expressed in octal, not decimal). Part of the design of any font is the specification of the correspondence between characters and their codes. Our Roman fonts, for the most part, are extensions of a particular coding scheme called ASCII (the American Standard Code for Information Interchange). Designed with teletypes in mind, ASCII sets aside about thirty character codes called the control codes for actions that a terminal might perform, such as tabbing to the next column, advancing to the next line, etc. Our Roman fonts have begun to use control codes for printing purposes. I will use the term special characters to refer to printing characters that have been associated with the ASCII control codes.
History:
It is helpful to think of the evolution of our fonts over the years in terms of generations. I refer to any font that was produced before October 1978 as a first generation font; their origin is shrouded in antiquity. The first generation fonts have only one special character: the ASCII control code #30=↑X is an underline (used by EARS). Ron Pellar’s first big release of fonts in November of 1978 constituted the second generation. These fonts have about twenty special characters, mostly various ligatures, accents, spaces, and dashes. Ron finished the third generation of fonts in January of 1980. In these fonts, every seven bit code has either a printing role, or an active control function. In addition, printing roles have been given to about forty codes above #177, which I will call eight bit codes. The subsidiary memo SpecialCharacters lists the character code assignments of the various generations of fonts, and discusses some associated issues.
What will happen to Clover?
Almost all of the TimesRoman’s and Helvetica’s currently in Clover’s data base are second generation. After the cataclysm, they will be third generation. This means that there will be a few more special characters associated with seven bit codes for you to use and enjoy. In addition, many little glitches will (finally!) go away: the rivers after lower-case ‘x’, the too large lower-case ‘o’, etc. In addition, there will be other new special characters associated with eight bit codes that probably won’t do you any good, but won’t do you any harm either.
Now for the bad news: there is one incompatible feature of this conversion from second to third generation. In second generation TimesRoman and Helvetica, the symbol minus sign is associated with two different control codes: both ↑N=#16 and ↑X=#30. (The character to the right of zero on the keyboard has code #55; in Timesroman and Helvetica, this code designates a hyphen, not a minus sign.) Third generation TimesRoman and Helvetica have stolen the code ↑N for a macron, the horizontal bar accent frequently used in dictionaries to indicate a long vowel. Hence, after the cataclysm, you must use the code ↑X if you want a minus sign.
In addition, Press files prepared before the cataclysm using ↑N’s for minuses will not print properly after the cataclysm. This will have to be dealt with on a file by file basis. One way, of course, is to reproduce the Press file from more primitive sources, after editing those sources to use the ↑X code rather than ↑N to specify a minus sign. There is an alternative, however: a program could be written to scan a Press file, and replace all of the ↑N’s in text strings with ↑X’s. Such a program would automatically massage pre-cataclysm Press files so that they would print correctly after the cataclysm. I will write this program if I perceive substantial demand: let me know.
The Math font is rather a different story. When Ron Pellar produced the second generation fonts, he choose to change many of the character code assignments of the Math font. This blatant incompatibility with the past generated so much protest that CSL decided to keep Clover running with first generation Math. In fact, Clover is still running with first generation Math. In addition, Ron was prevailed upon to rescind these character code changes when the third generation Math came out. Third generation Math is exactly like first generation Math, except for the addition of some valuable new characters in control slots. Second generation Math (described, unfortunately, in the Novermber 1978 edition of the Alto User’s Handbook) should be forgotten as soon as possible. The cataclysm will convert Clover from first to third generation Math; this conversion is believed to be 100% backward compatible. For details of the new characters and the character mapping, see the SpecialCharacters memo.
The only other fonts substantially affected by the cataclysm will be the TEX fonts. Don Knuth is just now using Metafont to complete the design of the final fonts for new editions and volumes of The Art of Computer Programming. These new fonts are different enough from the old ones that they will be treated by the cataclysm as entirely new fonts, rather than simply as new versions. The old TEX fonts will stay around for a reasonable period in the interests of backward compatibility, after which they will go away. We are also taking advantage of the cataclysm to change the way that we handle the sizes of TEX fonts; for details, read the TexFonts memo.
Fonts for Altos:
The biggest issue throughout the history of Alto font construction has been that of character width. Since the Alto display is a low-resolution bitmap, it is difficult to draw small characters that look good; furthermore, it is especially difficult to draw characters that are as thin as they are supposed to be and look good. In most Alto fonts, therefore, the characters are actually much thicker than their nominal size; that is why they all crowd together in Hardcopy mode. But some Alto fonts are thinner than others.
First generation Alto fonts are those found on the directory [Maxc1]<AltoFonts>; being first generation, they have only one special character, an underline in the ↑X slot. They are also fairly wide. When Ron Pellar produced the second generation of printing fonts, he also produced a set of Alto fonts that are substantially narrower. This makes them more faithful to the printed page, but harder to read. Public opinion in CSL found these second generation Alto fonts unacceptable. Therefore, CSL has continued to use the first generation Alto fonts, even though these fonts were not updated to include the second generation special characters.
For the third generation release, Ron recently produced an entirely new set of Alto fonts that are roughly as wide as the first generation Alto fonts. In my personal opinion, these third generation Alto fonts are fairly good looking; furthermore, they come in lots of sizes and they have all the right special characters. On the other hand, it is well known that there is no accounting for taste, and that change is intrinsically evil. Hence, I anticipated substantial pressure from CSL’ers not to be torn away from the first generation Alto fonts that they have used for so long.
I decided that the only way to keep everyone happy was to allow everyone to roll their own. In particular, I took all three generations of Alto fonts as well as special set of very thin Alto fonts that Ron produced for ASD a while back, and brought all of them up to date by adding the third generation special characters. These new Alto fonts are all available now on the directory [Ivy]<AltoFonts>. The different versions of each font are distinguished by the use of subdirectories. For the names of these subdirectories and what they mean, read the AltoFontGuide memo. To date, I haven’t done anything about the Alto fonts on Maxc1. I propose that, as part of the cataclysm, the updated first generation Alto fonts be placed on [Maxc1]<AltoFonts> while Pellar’s third generation Alto fonts be made available on [Maxc1]<Printing>.
By the way, there is one minor detail about these fonts that deserves comment here, concerning the circumflex accent. To save a character code, the recent TimesRoman and Helvetica fonts have been designed so that overprinting a character with both the acute accent (found at #13=↑K) and the grave accent (found at #5=↑E) will result in a reasonable circumflex accent. If the spacing width of the accent characters were exactly zero, then it wouldn’t matter in which order you put the ↑E and ↑K. But, to keep Bravo happy, the spacing widths of the accents must strictly positive. In the printing fonts, the accent widths, although positive, are small enough that the order of the ↑E and ↑K is almost immaterial. In the Alto fonts, however, the accents are one whole Alto pixel wide; as a result, the order of the ↑E and ↑K accents does matter to the Alto font designer. Furthermore, it is not just an arbitrary convention! Since the circumflex goes up first and then down, an Alto font will look better if it was designed to have ‘‘↑K ↑E’’ come out as circumflex than if it was designed for a ‘‘↑E ↑K’’ circumflex. Therefore, all of the updated Alto fonts on [Ivy] have been built with the assumption that the acute accent will be typed before the grave accent for a circumflex: just remember that ‘‘K before E is the KEy’’, while ‘‘E before K is wrong: EeK!’’.
University Impact:
This cataclysm will have less of an impact on the universities in the grant program, since they have been operating with third generation fonts from the very beginning. I will take advantage of the cataclysm, however, to build a new printing font dictionary for the universities that contains the new sizes and faces that Pellar has produced. In addition, this new dictionary will contain several random fonts like Sail and Apl that were omitted in the first release. Once the updated Alto fonts have been moved to Maxc1, the universities will be encouraged to switch over to them. For more details, see the last of the auxiliary memos: UniversityFonts.