自定义函数无缘无故停止工作

自定义函数无缘无故停止工作

我定义了一个运算符

\DeclareMathOperator{\s2}{s_{2}}

而第二次使用它时,它告诉我“!\s 的使用与其定义不匹配。\s 2...”在文档的另一个实例中,它运行良好。

答案1

由于命令名称中通常不能有数字,因此一种选择是声明一个接受一个附加数字参数的命令,该参数在内部用作命令名称的一部分:

\documentclass{article}

\usepackage{amsmath}

\newcommand{\s}[1]{\csname s#1\endcsname}
\newcommand{\declareS}[2]{%
    \expandafter\DeclareMathOperator
    \expandafter{\csname s#1\endcsname}{#2}%
}

\declareS1{s_{1}}
\declareS2{s_{2}}
\declareS{30}{s_{30}}

\begin{document}

$\s1(t) + \s2(t) > \s{30}(t)$

\end{document}

这定义了一个新命令\s,该命令需要一个参数,然后调用命令\sXX,其中XX是参数。要定义被调用的命令,您可以使用\declareSXX以 为第一个参数,以 的主体为第二个参数\DeclareMathOperator

如果数字参数的长度超过一位数字,请确保使用括号括起来。该\declareS命令也非常有限,它总是声明一个\s...命令并将其映射到数学运算符。当然,可以添加额外的参数使其更通用。

相关内容