如何定义将参数转发给另一个命令的命令?
具体来说,我想创建一个命令,将参数转发给\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>]
,也应该没问题。