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
|
\font\eightsy=cmsy8
\skewchar\eightsy='60\def\LamSTeX{L\kern-.4em\raise.3ex\hbox{$\scriptstyle\cal
A$}\kern-.25em
\lower.4ex\hbox{\eightsy M}\kern-.1em{$\cal S$}-\TeX}
\let\LAmSTeX\LamSTeX
\def\proggy#1{{\sc#1}}
\def\|#1|{{\tt#1}}
\def\cmd#1{{\tt\char`\\#1}}
\centerline{\bf What's New with \TeX?}
\smallskip
\noindent At the 10th Anniversary meeting at Stanford last summer,
when Knuth hoped to `wrap up' his involvement with \TeX, the
non-native English-speaking contingent, mostly from Europe, persuaded
him to embark on one final set of enhancements, to support eight-bit
character sets and multi-lingual typesetting. This gave rise to \TeX\
2.993, which mutated into \TeX~3.0 in late March~1990.
The main changes are:
\noindent\hbox {\bf 1.~Character Set}: Up to 256 distinct characters are
now allowed in input files.
\noindent\hbox {\bf 2.~Hyphenation Tables}: \TeX\ now supports up to 256
hyphenation tables. There is a new integer parameter called
\cmd{language}, whose value specifies the hyphenation to use.
\noindent\hbox {\bf 3.~Hyphenated Fragment Control}: The new version has
parameters called \cmd{lefthyphenmin} and \cmd{righthyphenmin} which
specify the smallest number of letters which may be at the beginning
or end of a word to be hyphenated.
\noindent\hbox {\bf 4.~Better Ligatures}: The major changes concern
ligatures, although one must modify the \MF\ sources of fonts to take
advantage of all of them. The new version supports more complex
ligature constructions then the old, allows two ligatures to share
common code, and introduces `invisible' boundary characters at the
beginnings and ends of words which allow the first or last character
to be changed.
\noindent\hbox {\bf~5. Better-Looking Sloppiness}: In the past, a common
way to avoid overfull boxes was to set \cmd{tolerance=10000}, which
resulted in \TeX\ concentrating all the badness in one truly awful
line. A new parameter, \cmd{emergencystretch} has been introduced to
combat this. If it is set to a positive value and \TeX\ is unable to
typeset a paragraph without exceeding the given tolerances, another
pass is made through the paragraph in which an amount of stretch equal
to \cmd{emergencystretch} is present in every line.
\noindent\hbox {\bf~6. Miscellany}: There are new parameters called
\cmd{badness}, which records the badness of the box most recently
constructed, and \cmd{inputlineno}, defined as `the number of
the line that \TeX\ would show on an error message if an error
occurred now.' It is also possible to set the maximum number of lines
of context information output in an error message -- a useful feature
for large macro packages like \LaTeX. Finally, there is a new
parameter called \cmd{holdinginserts} which inhibits \TeX\ from
inserting insertions when building pages; this feature is primarily of
interest to designers of output routines who wish to break up and
re-build the current page.
\smallskip
These changes also affect \MF\ (the ligature changes) and
\proggy{tangle} (\proggy{pool} files). However, Knuth has also made
a few improvements and bug-fixes to some of the other parts of the
\TeX\ family. The latest versions of all the important programs are:
\centerline{\vbox{%
\halign {#\quad\hfil & #\hfil &\qquad #\quad\hfil & #\hfil\cr
\TeX & 3.0 &
\MF & 2.0 \cr
\proggy{tangle} & 4.0 &
\proggy{weave} & 4.1 \cr
\proggy{VFtoVP} & 1.0 &
\proggy{VPtoVF} & 1.0 \cr
\proggy{GFtoDVI} & 3.0 &
\proggy{GFtoPK} & 2.2 \cr
\proggy{GFtype} & 3.0 &
\proggy{PKtype} & 2.2 \cr
\proggy{DVItype} & 3.2 &
\proggy{PLtoTF} & 3.2 \cr
\proggy{TFtoPL} & 3.1 \cr
}}}
\smallskip
At the same time as he implemented the above changes to \TeX, Knuth
also devised {\it virtual fonts.\/} These are composite fonts, built
up of characters extracted from existing fonts. This makes it
possible to merge, say, a printer-resident \PS\ font
for most characters while pulling characters missing from it (e.g.,
upper-case Greek) from a down-loaded Computer Modern font. (This
example is for illustration only -- this composite would actually be
very ugly!) \TeX\ itself sees only one font, but the device driver
(and perhaps also the printer) would take characters from the two
fonts as required. One driver, derived from one of the
\dvi--\PS\ converters, has also been modified by Knuth
to support virtual fonts. There are new programs, \proggy{VFtoVP} and
\proggy{VPtoVF}, which are analogous to \proggy{TFtoPL} and
\proggy{PLtoTF} respectively.
Another significant event at the 10th Anniversary meeting was the
cessation of Leslie Lamport's development of \LaTeX. Future
development will be undertaken by a committee led by Frank Mittlebach,
who has already done significant work on \LaTeX's font-loading
mechanism and on a more flexible multicolumn style.
Two separate attempts are being made to combine the facilities of
\LaTeX\ and \AmSTeX. One of these is taking place under the auspices
of the American Mathematical Society, the AMS. The other, \LAmSTeX, available
now, is a commercial product by
Mike Spivak, author of \AmSTeX.
On the font front, the AMS have produced new \MF\ descriptions of
their extended symbol fonts, which include blackboard bold and many
useful (and some weird!) mathematical symbols. The \MF\ sources are
not in the public domain, but I believe the AMS plans to release {\tfm} and
{\pk} files at some point.
\rightline{\sl Adrian Clark}
|