\if 条件中的问号 -> “\if?\SAP@examdate?”

\if 条件中的问号 -> “\if?\SAP@examdate?”

\if我无法理解命令中的问号\if?\SAP@examdate?,我在 sapthesis 的 .cls 中遇到了以下语句(CTAN 链接)

\ifSAP@noexaminfo\relax
\else
    \if?\SAP@examdate?
      \ifcase\SAP@examinercount
        \SAP@ThesisNotDefensedLabel%
      \else
        \ClassError{sapthesis}{You have specified one or more examiners but not
        the date of the final exam}{E.g. \protect\examdate{17 July 2015}}
      \fi
    \else
      \ifcase\SAP@examinercount
        %\ClassError{sapthesis}{You have specified the final exam date but no examiner}{E.g. \protect\examiner{Prof. Giulio Cesare}}
        \SAP@ThesisDefensedLabelA\ \SAP@examdate
      \else
        \SAP@ThesisDefensedLabelA\ \SAP@examdate\\
        \SAP@ThesisDefensedLabelB:\\[2mm]
        \the\SAP@examinertoks%
      \fi
    \fi
\fi

主要\SAP@examdate是用来设置论文讨论日期的,比如\examdate{xx/xx/2023}。它的定义如下:

\def\SAP@examdate{}
\newcommand{\examdate}[1]{\def\SAP@examdate{#1}}

周围的问号是什么意思\SAP@examdate?这看起来像是一个否定,但我在网上没有找到有关该主题的任何内容。谢谢你的帮助。

答案1

它正在测试宏是否为空。

\if?\SAP@examdate?

如果你知道\SAP@examdate永远不能以此开头,?只有当为空时才为真\SAP@examdate,所以测试是并且比较\if?? 两个标记?

相关内容