使用参数更改或修补命令

使用参数更改或修补命令

假设我想使用某个包中的命令,该命令\foo需要一些参数,比如说#1。我想 以可能涉及这些参数的方式#5更改 的行为。\foo

例如,假设\foo以某种方式格式化 5 个参数。我可能想要:

  1. 删除第一个出现的逗号\foo
  2. 在所有内容前面输出参数 #5
  3. 交换参数#1#2
  4. #3用以下语句括住参数的用法\emph{}

到目前为止,我已经能够使用 xpatch 完成 1. 如下:

\xpatchcmd\cventry{,}{}{}{}

但显然我不能在这里使用这样的论点

\xpatchcmd\cventry{#3}{\emph{#3}}{}{}

我怎样才能以一种美观、可读、通用且可重用的方式实现第 2 点至第 4 点?

笔记对于其他问题的解决方案应该允许类似以下的方法:

\xpatchcmd\cventry{,}{\cventrycomma}{}{}
\newcommand{\cventrycomma}{, }

where\cventrycomma用于允许范围控制,因此在某个 \begingroup\endgroup 环境中\cventrycomma可以重新定义为不同的行为(如果这不清楚,另请参阅临时修补命令(xpatchcmd))。

相关内容