我有这个测试用例,\ifthenelse
当我将其直接放入我的文档中时,它按预期工作。
\ifthenelse{\equal{x}{y}}{XXX}{YYY}
如果我将其放入新命令的定义中,它仍然有效。
\newcommand{\tmpcmd}[1]
{
\textsf{#1}
\ifthenelse{\equal{x}{y}}{XXX}{YYY}
}
\tmpcmd{C}
但是,如果我将该命令的名称更改为pn
,则会出现错误。
! Undefined control sequence.
<argument> \equal
{x}{y}
该命令\pn
已在我的文档中建立。其先前的定义是
\newcommand{\pn}[1]
{
\textsf{#1}
}
但通过将其改为
\newcommand{\pn}[1]
{
\textsf{#1}
\ifthenelse{\equal{x}{y}}{XXX}{YYY}
}
现在我收到了错误信息。
这对我来说毫无意义。为什么\ifthenelse
和\pn
函数各自独立工作,而一个不能在另一个内部工作?
答案1
问题在于在诸如和之\pn
类的命令内部调用了它。\chapter
\section