相当于 \providecommand 允许 :c 说明符

相当于 \providecommand 允许 :c 说明符

是否有与 expl3 中的 \providecommand 等效但允许:c说明符的东西?给定一个字符串作为命令名称,我需要按以下方式定义新命令:

  1. 如果命令存在,则不定义它
  2. 如果该命令不存在,则定义它,但当用户再次尝试定义该命令时,该定义将被直接覆盖而不会引发错误。

这样做的原因是我希望在包中提供一些快捷宏,但我希望“悄悄地”执行此操作,即不覆盖现有的宏,也不阻止用户定义自己的版本。我知道有一个\ProvideDocumentCommand,但它似乎只接受:N参数作为命令名称。

答案1

下一个 latex 版本(已pdflatex-dev在 texlive 中提供)将允许您使用

\documentclass{article}

\ExpandArgs{c}\ProvideDocumentCommand{zzz}{m}{abc#1xyz}

\begin{document}

\zzz{123}

\end{document}

相关内容