如何判断变量是否存在

如何判断变量是否存在

我想在@pubreaderonename定义时运行它。

.cls文件中:

\def\pubreaderone#1#2#3{\gdef\@pubreaderonename{#1}\gdef\@pubreaderonetitle{#2}\gdef\@pubreaderoneaffiliation{#3}}


\if@pubreaderonename
\par
\signature{Thesis Reader}{\@pubreaderonename \\ \@pubreaderonetitle \\ \@pubreaderoneaffiliation}
\fi

在乳胶文件中:

$if(
    pubreaders-1-name)$
    \pubreaderone{$pubreaders-1-name$}{$pubreaders-1-title$}{$pubreaders-1-affiliation$}
    $endif$

我收到此错误:

! Undefined control sequence.
\readerpage ...affiliation } \if@pubreaderonename
                                                  \par \signature {Thesis Re...

l.106 \begin{readerpage}

pandoc: Error producing PDF

@pubreaderonename所以我需要仅在设置时执行的代码。

答案1

错误消息表明\if@pubreaderonename未定义。如果您想测试是否\@pubreaderisonename已定义,可以这样做:

\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname @pubreaderisonename\endcsname\relax
  % \@pubreaderisonename is undefined or \relax
\else
  % \@pubreaderisonename is set
\fi

此外,这应该评估这个地方,或许\pubreaderone可以被称为。

相关内容