# How to check if a fragile macro value is empty or will not create text with plain TeX conditionals?

A similar question has been already asked here, but has not been answered yet for fragile commands such as eg. \@author?

What would be the right way to get detect if \author has been called with a value:

\usepackage{ifthen}
\usepackage{xifthen}
\usepackage{etoolbox}

\makeatletter

\ifXXXXXX{\@author}%
{%
author set \par
}{%
author not set at all \par
or set to \{\} () \par
or to {\textbackslash}empty
}%

\makeatother
-
What's your issue? Fragile commands are relevant for writing to files. – Marco Daniel Mar 29 '13 at 15:14

\@author isn't typically a fragile command (It depends on the Author's name I suppose) However testing its value is not related to fragile/robust distinctions.

Initialise the macro, say

\let\@author\@empty

then later test if it still has that value

\ifx\@author\@empty
still empty
\else
author has been set
\fi
-
I am trying to write a .sty file. Means the output is set outside my file. So if anyone comes up with the idea to use a set up like \autho{Name1 \and Name2} the conditional blows up. I would like to make it failsafe (as it can be)... – kromo Mar 29 '13 at 16:37
@kromo why would it "blow up"? did you try it? I assume not. – David Carlisle Mar 29 '13 at 16:48
Works now. Don't know where the error came from. Only backdraw, my nice \@latex@warning don't work anymore (mine and the ones from \@author). ;-) Thanks! – kromo Mar 29 '13 at 17:34