summaryrefslogtreecommitdiff
path: root/info/digests/texline/no7/amy.tex
blob: dd90dcf58ba145569b45d35c8c586a0749cdba3a (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
%\def\LaTeX{{\rm L\kern-.36em\raise.3ex\hbox{\sc a}\kern-.15em
%    T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
\def\MT{Macro\TeX}
\centerline{\bf\MT}
\medskip\noindent
\MT\ is a new set of general purpose macros, designed for the person who 
simply wants to create a normal looking book or report using \TeX\ without 
going to the trouble of creating dozens (if not hundreds) of macros. Knuth, 
quite correctly, gave us very low level and generalised tools when he wrote 
\TeX, which has made it useable in such a wide variety of applications, from 
Japanese to music. The two most famous general purpose macro packages are 
\AmSTeX\ and \LaTeX, with the former concentrating specifically on the 
facilities needed for AMS publications; both are freely distributed, and in 
very wide use. What is the market, then, for a package that actually costs 
money, and does the same sort of job? In this review, I will briefly outline 
what it does, and how it compares against \LaTeX.

Amy Hendrickson's 4000 or so lines of
\MT\ came on an IBM PC floppy disc, in about 8 files, 
easily transferred to the Sun 3/50 I used it on; I presume it could be 
supplied on a Mac disc as well. The only `installation' needed was to edit the 
main {\tt mt.tex} file to reflect the fonts I use. Here I had to do some work, as 
\MT\ assumes you want either the AM or CM fonts, and has a number of 
subsidiary font declaration files which optionally set up \PS\ fonts, 
but only for headings and the like. To set it up to use our normal standard of 
\PS\ Palatino, I had to rename all the fonts in the font declaration 
file, and use a version of \TeX\ with a {\tt plain.tex} similarly doctored (as
of  course Macro\TeX\ assumes the base set of 16 fonts in Plain \TeX); this 
procedure would cause problems for a beginner who wanted to use a \PS\ 
printer, but of course the package as it stands will be fine for the great 
unwashed who  use the CM fonts.

All facilities are provided with 
macros compatible with plain \TeX, so you can include your own macros 
anywhere, and all plain \TeX\ commands. A clever feature is that all the 
commands are known about in the main `|mt.tex|' file; all you need do is add 
|\input mt|
at the start of your document, and subsidiary files will be pulled in only if 
needed (saving memory).
\MT\ has the sort of facilities you would expect: style options (it defaults 
to `documentation' but also has book, report, note (memorandum) and letter 
styles); automatic sorting out of 4 or 5 levels of headings; nested lists; 
cross-referencing; tables of contents etc. 
More interesting are:
\item{$\bullet$}Modular page numbering (I--1, I--2 etc), coupled with facilities to insert new 
pages (I--2a, I--2b, I--2c etc) at any point, obviously useful for software 
documentors.

\item{$\bullet$}Floating figures, which can be wrapped around with text (so one can specify a 
3$\times$1 inch box on the 
right side of the page, and paragraph shapes change 
accordingly).

\item{$\bullet$}Indexing and glossaries look quite sophisticated (I didn't try them).

\item{$\bullet$}Various verbatim environments for quoting code, including a feature to enclose 
a code quote in a screen-shaped box.

\item{$\bullet$}Tables can be split over pages, and maintain their headings (Hendrickson has 
had to modify the plain \TeX\ output routine slightly.

\item{$\bullet$}A number of macros for boxing text  in more or less felicitous ways.

\medskip
These features are all documented in a manual created with \MT; it has to be 
said that the manual is not very well organised --- it does not have an index 
(madness!), and I have to say I find Hendrickson's layout style fairly 
unpleasant; Americans seem very fond of large fonts, huge spacing and thick 
lines around tables. Eventually one finds what one wants, and there are plenty
of examples (sometimes at the expense of an {\it explanation} of what is 
happening); parameters that one can easily change are described, but if you 
want to go further into customisation you will have to attack the sparsely 
commented source. 

The amount of customisation I had to do immediately to get 
what I wanted (resetting values that the manual mentions) makes me think that 
it won't be long before I am driven to the source, which is sad. 
Hendrickson does, however, make a point of saying that she wrote \MT\ in a 
modular way, so that hackers can use whole chunks (like the verbatim 
environments) in their own macros. I have not yet succeeded in prising 
anything loose from its setting to use in \LaTeX\ (I suspect multi-page tables 
could be a major act of surgery all round), but I am sure it could be done. 
You could even use the code just as a source of ideas---whatever the faults of 
this package, Amy Hendrickson is no mean \TeX nician, and there is a {\it lot} 
of work here.

Hendrickson is also a confirmed boxer; there are a number of different
macros for boxing text, either in-line or marginally; you can even
have a column of boxed text in-line, but it doesn't seem to work
quite as described in the documentation (another bug?). On a grander
scale you can create a `screen' box to emulate the appearance
of a terminal screen, suitable for software documentation (see the
example).

\midinsert 
\vskip300pt
\endinsert

\MT\ is good for {\it ad hoc} layout of text; 
lines may be  typed one word per line and an
|\autoright|
takes care of the layout --- each input line is then
right justified. On the other hand |\autorighttab|  does not work
as promised, it generates a \TeX\ error; and using |\fn| for 
automatically numbered and incremented footnotes requires the
addition of an |\hfill| to sort it out: the footnote comes
out as
\hfil\break
\llap{$^1$}`The cape, Larry, go for the cape'\break
rather than\hfil\break
\llap{$^1$}`The cape, Larry, go for the cape'\hfil\break
(extraordinary!).  
 
Of great interest are the tables; \MT\ is an interesting addition to the 
repertoire of table description languages. Like {\sc unix} |tbl| it can maintain 
tables over pages, with duplicated headings, but in 
this case you have to decide the column widths (it wraps within the width). If 
your table is single page, it will work out column widths (like |tbl| and 
\LaTeX\ |tabular|), and if you have just numbers, you need not even bother 
with column separators, just white space. Combinations of rules, spanning 
columns and the like are caterered for, but the facility
to provide a template for a row (as in {\sc unix} |tbl| and \LaTeX\ |tabular|) to indicate that 
(say) columns 3 to 6 are right justified is not as powerful as it might be.
In fact, when I used it, it ran my \TeX\ out of memory.
There is a facility to have text span several columns, but it just
generates complicated \TeX\ errors, so I gave up.

The table I tested these commands on was generated by the 
Ingres database report writer, which inserted 
the \MT\ commands; I would have got very bored with all the typing necessary.
The beginning of the table is shown in the screen box example.


Does it work as promised? More or less; the problems range from the irritating 
(some commands seem to have to be on a line by themselves or they
do not work; I am sure there is rational \TeX planation, but I would prefer 
things to be intuitive), through the buggy (the macro 
|\dropcap|
to set a huge first letter of a paragraph simply does not work; the examples 
have only one parameter, but the macro definition calls for two, and I cannot 
work out what it wants), to the bizarre---the |\endverb| complement to the
|\beginverb| (not |\verb|
as in the manual examples!) verbatim environment construct simply does not get 
defined in the macros, yet is called! It is, admittedly, only version 0.9, 
but this sort of bug seems extraordinary. If you are a poor typist, the 
extraordinarily long macro names may annoy (try typing
|\endautorighttab| several times). 

I have not  yet used all the facilities, and those I have tried did not 
produce a very beautiful result at first, but I think with patience I could 
get the package producing reasonable documents. Do I want to persevere? If I 
did not have \LaTeX, I might be tempted, but after several books and many 
smaller documents I have grown to admire Lamport's work. He did a much more 
thorough and flexible job than Hendrickson, and if you want to produce a 
substantial book, his system is probably better. \MT\ may tempt us, however, 
with its better verbatim work, its indexing, its more flexible figures and 
some features of its tables. In addition, it is compatible with plain \TeX, 
which will endear it to those who dislike Lamport's arbitrary usurpation of 
favourite macros, and his authoritarian `LL knows best' attitude
(a \LaTeX-compatible version is promised --- {\sc mwc}). All in all, 
I think \MT\ probably {\it will\/}  be worth the money as a source of ideas and facilities, 
but is not complete nor yet reliable enough  to be considered
as a daily production 
system, and I certainly cannot recommend the current
version (unless all the bugs are my fault).

\MT\ will set you back something in the region of \$200  for a 
single-user license, and more for a site license.
Amy Hendrickson is 
{\obeylines
\TeX nology Inc
57 Longwood Avenue
Brookline
MA 02146 
USA
}

\rightline{\sl Sebastian Rahtz}