[texhax] if condition: is macro body empty? [\newcommand]
Uwe Lück
uwe.lueck at web.de
Tue Feb 17 10:55:18 CET 2009
How LaTeX's \newcommand and the TeX primitive \ifx interact:
At 11:02 12.02.09, Philip G. Ratcliffe wrote:
>Evidently, \newcommand does something strange
>(I left it in for the useual protection against
>inadvertently overwriting a previous definition),
>but \def is obviously cleaner.
[...]
>\newcommand\buffer{}
>\def\buffer{}
[... fill buffer or don't ...]
>\ifx\buffer\empty\else
> \begin{itemize}
> \buffer
> \end{itemize}
>\fi
\newcommand{\buffer}{} makes \buffer \long while \empty isn't, therefore
\ifx\buffer\empty is \iffalse.
\newcommand*{\buffer}{} would have rendered \ifx\buffer\empty \iftrue, just
like \def\buffer{}. See TeXbook p. 210: "same status with respect to long".
Cheers,
Uwe.
More information about the texhax
mailing list