将命令参数转发到另一个命令

将命令参数转发到另一个命令

如何定义将参数转发给另一个命令的命令?

具体来说,我想创建一个命令,将参数转发给\pdfcomment并添加author具有固定值的可选参数。我该如何填写空白?

\newcommand{\prax}[?][?]{\pdfcomment[author=Praxeolitic, ?]{?}}

期望的行为是这样的:

\prax[abc]{xyz}

将扩展为:

\pdfcomment[author=Praxeolitic, abc]{xyz}

答案1

您有多种选择。以下是两种(本质上相似):

\newcommand{\prax}[1][]{\pdfcomment[author=Praxeolitic, #1]}

或者

\newcommand{\prax}[2][]{\pdfcomment[author=Praxeolitic, #1]{#2}}

前者忽略强制参数,只处理可选参数(如果有)。 第二个获取强制参数并将其直接传递给\pdfcomment

键值评估对于空白项来说没问题,因此即使\prax[<opt>]{<man>}产生空白/不存在的结果[<opt>],也应该没问题。

相关内容