我需要检查我的宏是否\csname creator1\endcsname
为空。但我总是得到1
(不为空)
\documentclass[]{article}
\makeatletter
\newcommand{\creator}[1]{%
\expandafter\def\csname creator1\endcsname{#1}
}
\makeatother
\creator{}
\begin{document}
\makeatletter
\csname creator1\endcsname
\ifx\csname creator1\endcsname\@empty 0\else 1\fi
\makeatother
\end{document}
更新:
感谢评论,我意识到,我\expandafter
之前忘记了\ifx
。但如果我改用\expandafter\ifx\csname creator2\endcsname\@empty
,我会not empty
再次得到。有趣的是,\csname creator2\endcsname
之前没有定义过。