You are here: Home / Przedsięwzięcia/Projects / TeX Pearls / 2008 Pearls / javier-mugica / src / saveentry.txt


This shows how to make a template where the entry is saved and procesed.
First, a self-explanatory definition:


Now, the problem is that we want #1 to be what the user (or ourselves) will write between the &'s,
i.e., the #-part. The template may be defined as


where \dosomething is macro with one parameter that . . . does something!


Then, inside the table, we may write

A & .... \cr


A \cr

and we will get $A^{A-1}$.

The template definition works because, when TeX gets to the & or the \cr, it does not take it as part of the argument,
but as the ending of the #-part, and its reading mechanism goes to the v-part, where it founds the // that ends the argument.

\halign{\saveentry#//\dosomething& \saveentry#//\dosomething{\entry}\cr
A & e\cr

I owe the folloing remark to someone, I don't know who (I got a forwarded message via Barbara Beeton).

> You have to be careful with the use of & and \span and \cr, because these tokens
> are intercepted by TeX's scanner even when it is not expanding macros.
> but the final clause is confusing: what Don really means is "even when it
> is scanning tokens without processing them (perhaps skipping them)".
> What he is getting at is that an & will delimit the alignment entry
> even when "tokens are being absorbed at high speed", as when collecting
> a macro argument or skipping text until \else or \fi.

I have not noticed till now that, if we need the macro \dosomething for no more than the table's entries,
one may get along without \saveentry.


\halign{\processentry#//& \processentry#//\cr
A & e\cr

Document Actions