\title{A Contrarian View On \TeX{} Extensions} \vskip-3pt \centerline{\sl An open letter to the \TeX{} community}\smallskip\noindent Recently in \TUGboat\ the question of \TeX{} extensions has generated considerable discussion (`pronouncements' might be a more accurate term, since this discussion has devolved almost entirely to a few interested adherents). Donald Knuth's brief statement in Volume~11, No.~4 (also printed in \TeXline\ 12) makes quite clear what he happens to think of the whole idea, but this seems to be regarded as a minor inconvenience to be circumvented, as in the article by Nelson Beebe that immediately follows. I should probably begin by admitting that, granted three wishes, I could probably expend them on \TeX{} extensions. Nevertheless, I feel that some one should speak out against \TeX{} extensions, or at the very least, against many of the proposed extensions; though \TUGboat\ articles seldom generate any response, I expect there are many who feel strongly about them, but don't bother writing. Many of the suggested \TeX{} extensions fall into three categories: $\bullet$Allowing \TeX{} to do ugly typesetting. $\bullet$Making \TeX{} do things 100\% automatically that should really be done 95\% automatically. $\bullet$A third category that I'll come to later. The first category is amply illustrated by Frank Mittelbach's article in Volume~11, No.~3. In connection with the ever pernicious problem of typesetting in narrow columns, a proposed extension to \TeX{} would change spacing rules according to a scheme attributed to Manfred Siemoneit. My first reaction to the accompanying illustrations was: Boy, is that ugly! My next reaction: Just who is Manfred Siemoneit, and why should his particular scheme be incorporated into \TeX{}? My final reaction: Why stop there?! Since this extension is meant to address a problem common to magazine publishers, why not use the methods employed by, and presumably desired by, these publishers? Those who have remained blissfully ignorant of these matters are invited to examine {\sl Time} or {\sl Newsweek\/} and other journals of their ilk -- just for their typography, of course! In these narrow columns, entire lines are condensed optically, so that the letters themselves are condensed in width. Sure, I happen to think it's ugly, but I also think ragged-right, letter spacing, and just about every other narrow-column device is ugly. In any case, what I think or you think doesn't matter, if the whole point is to allow \TeX{} to accommodate the multifarious desires of the typesetting industry. And on this particular point, the accommodation is quite possible, though that brings us to the third category, which will be discussed later. (Since the whole question of taste has inevitably already intruded itself, I might also caution that many of Mittlebach's pronouncements, like his blithe statement that hanging punctuation `is a sign of good quality typesetting', shouldn't be taken too seriously.) The second category is well illustrated by two \TUGboat\ articles of quite contrasting natures. The first is an article by David F. Rogers in Volume~9, No.~3, recounting problems encountered using \TeX{} to produce a book, {\sl Procedural Elements for Computer Graphics}, replete with tables and illustrations, in the absence of a macro package adequately implementing requirements specified by the book designer. This article was widely regarded as a challenge for \TeX{}, and I admit to using it as the starting point for requirements for automatic figure placement in \LamSTeX{}. In fact, I obtained the book in question to use as a test for the \LamSTeX{} macros. Now this book is admittedly typographically complex -- indeed, tables, figures, etc., intrude so profusely that in places one might long to resort to page-layout `by hand'. However, Mr.~Rogers seems to think that this procedure is well-nigh impossible. An inkling of his difficulties may be gleaned from the following lament (italics in the original): `To prevent \TeX{} from reformatting the pages to this point a |\vfill\eject| is placed at the bottom of the previous page. This, of course, does not always work. \TeX{} occasionally decides that the previous material is best presented with an incomplete last line! When this happens material must be moved word-by-word from the current page\dots' Now it is a shame, indeed shameful, that this article not only appeared unedited in \TUGboat, but that neither editors nor readers ever subsequently explained that the |\vfill|, an inherently vertical mode command, causes the paragraph to end, with those dire results, and that the proper way to force a page break after a line is with |\vadjust{\break}|. As a result, who knows how many \TeX{} users (and would-be users) now think that there is no reasonable way to force page breaks in \TeX{}? (By the way, \AmSTeX{} and \LamSTeX{} both have |\pagebreak|, which produces exactly the results the author wanted.) In a book of this nature, forcing page breaks and inserting tables and illustrations in specific places is probably preferable to having \TeX{} make all decisions automatically, even if that is possible. There will invariably be situations where an `out-of-order' placement will result in a more convenient or pleasing arrangement. (A minor example: on page~18 of {\sl Procedural Elements} I would have avoided the footnote that comes right under a Figure caption.) And, in general, many of the complaints about \TeX{}, and requests for extensions, ignore the fact that \TeX{} isn't meant to be a totally automatic system; it is specifically designed for interaction with the author, or typesetter, a point explicitly made several times in the \TB. The second article, a query by Frederick H.~Bartlett in Volume~9, No.~1, involves high quality typesetting, where a standard typesetting trick is to shorten or lengthen a pair of facing pages to improve appearances. This was supposed to be done automatically, because `While, admittedly, it may be perfectly legitimate to expect an author to struggle with his file over half a dozen or so runs to make it perfect, a typesetter's time is much too valuable to indulge in such foolishness.' Mr.~Bartlett's idea was to have the |\output| routine first store the facing pages in boxes (much like a two-column routine). Normally each of the pages, after being combined with the |\headline| and |\footline| material, would be shipped out; but if the total badness of the boxes was too big, then they would first be reset in height (by |\unvbox|ing them within a |\vbox| of the new height). The problem was that it was impossible to find out \TeX{}'s |\badness| for the boxes. Now this problem has actually gone away in version 3 of \TeX{}, but I claim that it was never that serious a problem anyway. One could easily make a macro, |\changeheight|, to be used in a form like \begintt \changeheight{22+ 68- ... } \endtt to indicate that pages 22 and 23 should be made one line longer, pages 68 and 69 one line less, etc., with the |\output| routine taking information from this macro to perform the indicated changes on these pages. Of course, this isn't automatic, since the list has to be generated somehow. But remember that we are now talking about high quality typesetting. Even granting the value of a typesetter's time, it wouldn't take that much effort to look through that very last version of the output, note the pages 22, 68,\dots, needing changes, and insert a |\changeheight| line in the file. The file would have to be \TeX{}'ed once again, but that's not even `typesetter's time', only machine time (I presume that this highly regarded typesetter has a fast computer that can re\TeX{} a complete book in only a few minutes). But still one more argument for automatic resetting might then be advanced: What if you miss a page? The answer to that is very simple: If you miss the bad page, it wasn't there! After all, the idea is to modify pages that look bad (to this highly paid typesetters eye), not pages to which \TeX{} happens to assign some particular |\badness|; indeed, \TeX{}'s |\badness| estimate may have little to do with the badness to the human eye. Finally, we come to the third category: special effects that are not possible directly with \TeX{}, but that are quite possible with post-processors, such as Bechtolsheim's |dvi2dvi| (Volume~10, No.~3). These effects include change bars; underlined or stuck-out text; and inclusion of \TeX{}'ed material from other documents. From quite a few years ago, in fact, I recall an advertisement for a \dvi\ post-processor that achieved another desideratum of the typesetting industry, namely, letter-spacing [adding extra space between letters in a line instead of concentrating the extra spacing between words], though the proffered sample output may have only served to disenchant people with the practice. A similar program could be incorporated within a \dvi\ to \PS\ translator to optically scale entire lines, as discussed previously. And, of course, once we allow \TeX{} to interact with \PS, all sorts of special effects become available. Purists might prefer document preparation to be a one-shot affair, but once you've accepted something like a \LaTeX{} double-pass system, not to mention all sorts of auxiliary processes, like index sorting, it becomes absurd to eschew \dvi\ post-processors, which are always much faster than \TeX{} itself. One could suggest dozens of minor tools that would make the \TeX{} user's life more pleasant. For example, at the lowest level, a standardized sensible directory structure for magnified fonts that doesn't require a calculator, and a program for finding and removing magnified fonts that doesn't require manually changing to directories with long-winded names. Or standardized, widely disseminated macros for inclusion of \PS\ files and literals (sure, it's easy if you know what you're talking about, but the people who don't are totally baffled). Programs for examining the details of a font, and for changing kerning, ligatures, and |\fontdimen| parameters by seeing their effects on the screen; |tftopl| and |pltotf| should only be used behind the scenes -- the everyday user, including typesetters creating their own kerning tables, don't want to know about these things. Similar programs for creating virtual fonts without knowing the details of |vpl| files. Bigger \TeX{}'s, obviously coming soon, will also help, but the most important tool, possibly revolutionizing \TeX{} usage, would be an interactive \TeX{} (the \TB, page 387, makes clear that this is not an `extension'.) I'm not saying that any one should be prevented from making a \TeX{} `extension' with all the features that have been suggested. I just think (a)~that they shouldn't call it `\TeX{}' -- why not something completely different, like `Frame', for example; and (b)~that TUG should not be supporting this effort when there are so many other important areas that it has so badly neglected. \author{Mike Spivak}