# [texhax] Obsolete \centerline command used in amsbook class (Uwe L?ck)

Joel C. Salomon joelcsalomon at gmail.com
Mon Sep 24 23:00:28 CEST 2012

On Mon, Sep 24, 2012 at 1:25 PM, Michael Barr <barr at math.mcgill.ca> wrote:
> If Latex3 really disallows things it doesn't like, I am afraid the tex
> community will fork and one branch (perhaps a very small branch) will not
> adopt it.  Is that what the implementers want.  I get intimations that they
> are seriously thinking of disallowing \def and \let.

It's worse than you thought --- and better.

On one hand, in the Expl3 programming modes you would use
\cs_set_nopar:Npn instead of \def. (Read: namespace 'cs'; function
'set_nopar'; signature 'takes arguments token, parameter code,
token-list'.) And when LaTeX3 is built as a format, the name \def
will be un-defined.

On the other hand, \cs_set_nopar:Npn *is* the primitive \def, just as
\cs_set_eq:NN is a very thin wrapper around \let; the new names are
for consistency with the rest of the environment.

On the gripping hand, all TeX primitives will remain available and
identifiable as primitives: \tex_def:D and \tex_let:D, for example.
(Read: namespace 'tex' for Knuth TeX primitives; function 'def' or
'let' or whatever; signature 'Don't use unless you know what you're
doing'.)

So yes, it will be difficult to write code that will work under Plain
TeX and LaTeX3, but you'll have complete and unambiguous access to the
primitives, so it shouldn't be too had to write a minitex environment
that restores the old names.

> As I just explained to Uwe Lueck, I cannot imagine doing my diagram macros
> (a front end to xypic) using \newcommand.  It has one macro, \cube, that has
> 20 required and 32 optional parameters that are delimited in various ways
> (look at it if you are interested).

Oh, wow. I suspect that the argument processor feature of LaTeX3's
xparse *might* be able to handle that [but I don't know enough to
suggest how]. But the primitives are all still there when you need
them, just with different names.

--Joel