# [texhax] On \centerline, etc.

Michael Barr barr at math.mcgill.ca
Thu Sep 27 16:02:53 CEST 2012

I know I will end up regretting getting back into this discussion and I
apologize in advance to those who are bored with the whole thing and
feel it has gone on long enough.  I looked at the reference cited by Uwe
Lueck and found the following sentence:

"But in the case of \matrix,
\pmatrix, \cases this was a mistake—the plain.tex syntax for them is de-
cidedly non-LATEX in style, for example the fact that they use \cr instead
of
\\ to mark line breaks, and they don’t use \begin and \end."

So the reason is that is decidedly non-latex in style and (my own take):
we cannot allow mixing of latex and non-latex.  No better reason is
given that supporting the authoritarian nature on latex.  I think I have
mentioned elsewhere that Leslie Lamport decidedly didn't have that
attitude.  The passage that really interested me was the following:

"Using the six generalized fraction commands \over, \overwithdelims,
\atop,
\atopwithdelims, \above, \abovewithdelims is not really a good idea in
LATEX, for reasons explained below. I construe LATEX’s provision of \frac,
and
the lack of any mention in the LATEX book of the primitive fraction
commands,
as an implicit injunction against their use, although I don’t think
Lamport actu-
ally spent a lot of time pondering the issue, and the basic LATEX version
of \frac
provides access only to \over, not to \atop, \above, or the withdelims
vari-
ants. The amsmath package, however, provides a \genfrac command that gives
user-level access to all six of the generalized fraction primitives in a
way that
conforms to the syntactic conventions followed by all other LATEX
commands.
Not only is the unusual syntax of the TEX primitives rather out of place
in
LATEX, but furthermore that syntax seems to be responsible for one of the
most
significant flaws in TEX’s mathematical typesetting capabilities: the fact
that
the current mathstyle at any given point in a math formula cannot be
deter-
mined until the end of the formula, because of the possibility that a
following
generalized fraction command will change the mathstyle of the preceding
mate-
rial."

Now the claim made is not objectively wrong.  Probably it would have
choice and if you dig deep enough, as I did, you discover that \frac is
based entirely on \over (actually on \@@over, which is \let equal to
\over).  So how does this escape the problems with \over?  I don't see
how it could.  Michael Downes once told me that \over would be omitted
in some future implementation of tex (an implementation that wouldn't
pass the trip test, I imagine, and therefore couldn't be called tex).
But I fail to see how allowing \over and \matrix actually causes
problems.

Downes goes on to discuss the problems this causes font selection and
made NFSS much harder to implement.  I agree that the NFSS is one of the
best features of the current latex and one of the main reasons I use it.
But I repeat, latex is a tool, not a religion.

I have been thinking during this discussion of what used to be my
favorite programming language, Forth.  Using it I programmed a primitive
tex interpreter.  It didn't do proportional spacing, hyphenation or
justification, but connected to an Epson FX-80 it produced recognizable
output (I also made a font builder).  But Forth development was in the
hands of a cult and, under their influence it has died.  They defined a
"standard Forth implementation" and anything that went beyond that was
"non-standard".  But Forth was missing several features: floating or
even fixed point arithmetic (only integer arithmetic was provided,
although you were free to program your own routines) and no string
handling although again you could make them if you liked.  Another
"feature" was that programs were supposed to be written as a sequence of
Forth "screens" using their editor rather than a good text editor.  And
a standard Forth program could not use input generated by anything but a
standard Forth program (e.g. the Forth screen editor).  And so Forth has
died.  (There is still a web site not updated in five years and I could
not find anything to suggest an implementation for modern PCs is
available.)

The comments by barbara beeton were especially disturbing since they
seemed to say clearly that the release of latex 3 would definitely cause
a fork.

My bottom line is that I can see no way whatever that restraining users
causes problems.

Michael

--
The modern conservative is engaged in one of man's oldest exercises in
moral philosophy--the search for a superior moral justification
for selfishness.  --J.K. Galbraith