Xparse 中的下划线用法

Xparse 中的下划线用法

这是一个用于生成向量长度符号的宏。强制参数m接收向量符号,可选参数o接收应添加为下标的任何内容(如果需要)。但是,下标符号似乎不起作用,因为下面的 MWE 将下标打印为等式中的普通字符。下划线字符是否被识别为其自己的字符而不是xparse命令中的运算符?

\documentclass[10pt]{article}
\usepackage{amsmath,xparse}
\newcommand{\abs}[1]{\ensuremath{\lvert #1 \rvert}}
\ExplSyntaxOn
\NewDocumentCommand \len { m o } {
    \IfNoValueTF{#2} {
        \ensuremath{\abs{\vec{#1}}}
    } {
        \ensuremath{\abs{\vec{#1}_{#2}}}
    }
}
\ExplSyntaxOff

\begin{document}
\[ \len{f}[\text{s.max}]=\mu_s\len{F}[N] \]
\end{document}

我宁愿不使用该t_参数。无论如何,除了下标之外,我不会将可选参数用于任何其他用途,而且_每次编写下标时添加都是不必要的_

答案1

正如上面的注释所述,expl3语法对下划线符号具有特殊含义,因此需要_使用宏。\sb{...}

相关内容