[texhax] (no subject)

Michael Barr barr at barrs.org
Mon Jun 9 20:00:12 CEST 2003

Hmm, I wonder if your problem with the \case including an & is related to
the problem I found that I could not write a macro to test if an argument
was empty or expanded to \empty.  I had something using an \edef until the
day arrived that the argument happened to be a matrix and then it turns
out you cannot have an & inside an \edef.  Is that a bug or a feature?

Michael

On Mon, 9 Jun 2003, Pierre MacKay wrote:

> I just answered Herbert Gintis privately on approximately this subject.
> My recollection is that the pressure for developing the rather extraordinary
> macro processor which distinguishes TeX from most, if not all, other formatting
> languages came from some of the AMS and Stanford users, not least Barbara.
>
> You have to read the woven program, and plain.tex to get an adequate sense
> of how little is hardwired into TeX.  Don very deliberately kept the
> primitives to a minimum, and I have had hundreds of occasions to be
> thankful for this.  That said, I have also lost handfuls of hair trying
> to control the order of evaluation.  There may be places where a genuine
> ERROR still lurks.  Why, for instance, can I \def\C{&<contents of cell>}
> in a simple definition, for plugging into a tabbed list, but not stack
> up similar definitions in an
> \ifcase structure.  (I'll bet _TeX by Topic_ could tell me.}
>
> Philip Taylor has made the most significant point.  The language in
> which the program was written was Pascal.  Maybe not Object Oriented
> as it might be today, but who cares?  The basic program, with its
> finely tuned set of primitives, and its quite extraordinary macro
> processor is not going to change---for very good reason.  But the
> macro language should not be confused with the compiler language that
> TeX, the Program is written in.  That enforces structure.  The macro
> language only permits it.
>
> Pierre
>
>