如何使用 latex3 扩展星号功能?

如何使用 latex3 扩展星号功能?
\documentclass{article}
\usepackage{amsmath}
\ExplSyntaxOn
\clist_map_inline:nn { aaa, bbb, ccc }
  { \exp_args:Nco \DeclareMathOperator { #1 } { #1 } }
\ExplSyntaxOff
\begin{document}
$\aaa$
$\bbb$
$\ccc$
\end{document}

我可以扩展 的参数,\DeclareMathOperator但不能\DeclareMathOperator*。如何扩展 的参数\DeclareMathOperator*

答案1

尽管人们通常说 是\DeclareMathOperator*的变体\DeclareMathOperator(所有此类命令都一样),但该命令只是\DeclareMathOperator,它会提前查看是否*跟在后面。无论您写成

\DeclareMathOperator*{\aaa}{aaa}

或者

\DeclareMathOperator *{\aaa}{aaa}

完全不重要:在 之前有两个标记{

因此,就您而言,您必须跳过两个令牌,而不只是一个。

\documentclass{article}
\usepackage{amsmath}

\ExplSyntaxOn

\clist_map_inline:nn { aaa, bbb, ccc }
 {
  \exp_args:NNc \DeclareMathOperator * { #1 } { #1 }
 }

\ExplSyntaxOff

\begin{document}

\[
\aaa_{1\le i\le n} \bbb_{1\le j\le n} \ccc_{1\le k\le n}
\]

\end{document}

在此处输入图片描述

你只需要\exp_args:Nc“没有星星”的部分。而且o没用,除非您想使用宏扩展名称,但这很奇怪。

相关内容