将多个选项传递给 \newcommand

将多个选项传递给 \newcommand

我为项目组中的每个团队成员定义了一个新命令,以添加具有不同颜色和名称的单独待办事项。

现在我想添加另一个选项,但语法有问题。

这是该命令的当前定义:

% TODO thilemann
\newcommand{\thilemann}[2][ ]
{
  \ifthenelse{\equal{#1}{inline}}
    {\todo[inline, size=\small, color=NavyBlue!35]{\textbf{\color{NavyBlue}{Thilemann:} } #2}}
    {\todo[size=\small, color=NavyBlue!35]{\textbf{\color{NavyBlue}{Thilemann:} } #2}}
}

如何在上述代码中添加另一个选项?我基本上想要将待办事项定义为“我的”,并在名称下划线 (Thilemann:)。

我希望语法类似于\thilemann[mine]{Notes here}或者如果它是内联待办事项\thilemann[mine][inline]{Notes here}(或\thilemann[mine, inline]{Notes here}

答案1

如果有一个完整的文档显示您正在使用的软件包(我认为这是),那会更容易todonotes。由于您已经在使用 keyval 语法,我认为我会在这里使用相同的语法,因此定义

\define@key{mykeys}{mine}[true]{%
...
}

\define@key{mykeys}{inline}[true]{%
...
}

然后在你的代码中激活它们

\setkeys{mykeys}{#1}

所以用法是

\thilemann[mine, inline]{Notes here}.

如果是的话,todonotes我认为使用扩展xkeyval包语法,在这种情况下您应该使用它。

相关内容