[texhax] On \centerline, etc. (AMS LaTeX)

Uwe Lück uwe.lueck at web.de
Sat Oct 6 23:05:28 CEST 2012


Am Donnerstag, den 27.09.2012, 10:02 -0400 schrieb Michael Barr:
> 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 decidedly 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."

This is from technote.pdf that in fact Ulrike Fischer pointed to,

    http://tug.org/pipermail/texhax/2012-September/019740.html

rather belonging to the enemy alliance.

> So the reason is that is decidedly non-latex in style and (my own take):
> we cannot allow mixing of latex and non-latex.

Indeed (from technote.pdf):

    The problem is that when LATEX was originally created, 
    it adopted most of its mathematics features straight 
    from plain.tex. But in the case of \matrix, \pmatrix, 
    \cases this was a mistake—the plain.tex syntax for them 
    is decidedly non-LATEX in style.

– "a mistake", boldly. It is a "mistake" in my view to confuse 
/support/ of the typical LaTeX syntax with /restriction/ to the
latter. The argument seems to be that /support/ without 
/restriction/ is a kind of "intentional inconsistency". 
I cannot find the English words for German "inkonsequent" 
and "wer A sagt, muss auch B sagen", deceptive tricks to 
convince stupid people in political affairs. However, I 
consider it OK, as others have done in the discussion, 
if a publisher or journal in fact /restricts/ markup syntax 
in submissions.

For that purpose, it may be a good idea to redefine Plain TeX 
macros or even some primitives so they produce error messages 
saying "Please replace #1 by ... according to the guidelines 
for submissions". However, it may be difficult to defeat the 
Plain TeX guerilla for good, who will reintroduce Plain TeX 
constructs by \newcommand under new names, such as \xirtam. 
I have just started to think how you can attack the journal's 
LaTeX guard in your submission, and how the guard in turn can 
protect the journal from certain types of Plain TeX attacks 
in advance, and what new types of attacks could be invented
... finally you might submit something not for the reputation 
of getting something published, rather just for enjoying a 
successful Plain TeX attack.

As to \over, \frac /might/ solve a certain problem by "controlled" 
use of the primitive, restricting appearance of the primitive 
to contexts where it cannot corrupt the result of typesetting, 
maybe only /after/ the math style has been determined (by the 
outermost \frac). The technote.pdf passage is not clear about 
whether the primitive actually sometimes results in bad 
typesetting, or whether it is just a matter of efficiency and
performance (with nested \mathchoice's). Maybe \frac has indeed 
saved minutes (fractions of hours) per TeX run in papers about 
fractions in the 1990s, does anybody know?

Citing from technote.pdf what Michael Barr cites:

    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 actually 
    spent a lot of time pondering the issue,

... some strange guessing, "implicit injunction" – 
perhaps Lamport was not aware of all the implications 
of his work? Idle. Nonsense.

In fact, the \kernel at ifnextchar macro in latex.ltx restores 
LaTeX's original \@ifnextchar. It has been a response to 
AMS LaTeX's attack on LaTeX by redefining \@ifstar.
Citing from source2e.pdf:

    \kernel at ifnextchar

    This macro is the kernel version of \@ifnextchar which 
    is used in a couple of places to prevent the AMS variant 
    from being used since in some places this produced chaos 
    (for example if an fd file is loaded in a random place 
    then the optional argument to \ProvidesFile could get 
    printed there instead of being written only in the log file. 
    This happened when there was a space or a newline between 
    the mandatory and optional arguments! It should really be 
    fixed in the amsmath package one day, but...

Ulrike Fischer as above:
> Exactly. I don't care when people make a lot of fuss about a very
> small nuisance. The amslatex team certainly did not change \over out
> of a whim. The reasons are explain in the technotes:
> ftp://ftp.ams.org/ams/amslatex/math/technote.pdf 

Sure? (About "whim"?) – Michael Barr again:

> I have been thinking during this discussion of what 
> used to be my favorite programming language, Forth.  
> But Forth development was in the hands of a cult and, 
> under their influence it has died. ... And so Forth has
> died.

Citing from technote.pdf on \over:

    And so on and so forth.

Venceremos!

    Uwe.

>   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
> been better if Knuth had made \frac instead of \over.  But he made the
> 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
> _______________________________________________ TeX FAQ: http://www.tex.ac.uk/faq Mailing list archives: http://tug.org/pipermail/texhax/ More links: http://tug.org/begin.html Automated subscription management: http://tug.org/mailman/listinfo/texhax Human mailing list managers: postmaster at tug.org





More information about the texhax mailing list