![将命令参数转发到另一个命令](https://linux22.com/image/311037/%E5%B0%86%E5%91%BD%E4%BB%A4%E5%8F%82%E6%95%B0%E8%BD%AC%E5%8F%91%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%E5%91%BD%E4%BB%A4.png)
如何定义将参数转发给另一个命令的命令?
具体来说,我想创建一个命令,将参数转发给\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>]
,也应该没问题。