\NewDocumentCommand 文档中的自定义命令

\NewDocumentCommand 文档中的自定义命令

我看到了一个相当意外的结果\NewDocumentCommand。假设我有一个自定义命令\mybold{},如下所示:

\NewDocumentCommand{\mybold}{m}{\mathbf{#1}}

或者\oybold[]

\NewDocumentCommand{\oybold}{O{a}}{\mathbf{#1}}

我会预计能够在另一个中引用这些\NewDocumentCommand,例如以下任何一项:

\NewDocumentCommand{\mmyvec}{m}{\hat\mybold{#1}}
\NewDocumentCommand{\moyvec}{m}{\hat\oybold[#1]}
\NewDocumentCommand{\omyvec}{O{a}}{\hat\mybold{#1}}
\NewDocumentCommand{\ooyvec}{O{a}}{\hat\oybold[#1]}

第一个和第三个只会产生一堆错误(missing $ insertedmissing } inserted等等extra });而\moyvec[k]\ooyvec[k]会产生以下输出:

在此处输入图片描述

(而不是期望的\hat\mathbf{k}

我认为这与进入数学模式有关两次。 我怎样才能解决这个问题?

答案1

您希望的参数\hat不是\mybold{#1}\mybold因此标记应该是\hat{\mybold{#1}}

\hat{\oybold}[k] 使用可选参数版本时,它与重音的基础类似,\oybold没有可选参数,因此您得到的只是\hat{a}排版[k]为文本,它不是命令的参数。

你要\hat{\oybold[#1]}

相关内容