summaryrefslogtreecommitdiff
path: root/info/digests/texline/no13/spivak
blob: caf7f48f30709b7296c8c62b2b2df02a125582c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185

\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}