[texhax] if condition: is macro body empty?
Lars Madsen
daleif at imf.au.dk
Wed Feb 11 19:13:02 CET 2009
Susan Dittmar wrote:
> Hi folk,
>
> for (pdf)latex I am looking for a way to check whether the body of a macro
> is empty or not. At the moment, I use a construct using \equal{}{<macro>},
> but I have the impression that during evaluation of this construct some
> ugly side effects occur. I am sure there must be a better way.
>
> Here's a short example (the final thing is much more complex, the \buffer
> being filled with parts of an \item list or with parts of a tabular):
>
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
> \documentclass{article}
> \usepackage{ifthen}
> \newcommand{\buffer}{}
> \makeatletter
> % close to what I need:
> \newcommand{\fillbuffer}[1]{%
> \ifthenelse{\equal{\buffer}{}}%
> {\g at addto@macro{\buffer}{#1}}
> {\g at addto@macro{\buffer}{\newline #1}}
> }
> \makeatother
> \begin{document}
>
> Filling the buffer may be called or not, and done here.
> \fillbuffer{First part.}
> \fillbuffer{Second part.}
>
> Now use the contents of this buffer:
>
> \buffer
>
> \end{document}
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>
>
> Any ideas please?
>
> Susan
>
I've use ifmtarg in my last project, had to use some \expandafter
sometimes, but for my purpose it worked fine
--
/daleif
More information about the texhax
mailing list