我需要一个带有参数的求和符号,该参数应该是一个运算符,因此它允许例如使用\limits
。
到目前为止,我已经为每个参数编写了一个:
\DeclareMathOperator*{\sumP}{\scalerel*{\Sigma}{\sum}^{\mathit P}}
\DeclareMathOperator*{\sumT}{\scalerel*{\Sigma}{\sum}^{\mathit T}}
\DeclareMathOperator*{\sumPT}{\scalerel*{\Sigma}{\sum}^{\mathit{PT}}}
但我需要更多参数。是否可以编写类似的代码,
\newcommand\sumparameter[1]{\sum^{#1}}
使其成为数学运算符?
以下是完整最小示例:
\documentclass{article}
\usepackage{scalerel}
\usepackage{amsmath}
\DeclareMathOperator*{\sumP}{\scalerel*{\Sigma}{\sum}^{\mathit P}}
\DeclareMathOperator*{\sumT}{\scalerel*{\Sigma}{\sum}^{\mathit T}}
\DeclareMathOperator*{\sumPT}{\scalerel*{\Sigma}{\sum}^{\mathit{PT}}}
\DeclareMathOperator*{\sumPTT}{\scalerel*{\Sigma}{\sum}^{\mathit{PTT}}}
\begin{document}
\[
\sumP_{i=1}^n X_i
\]
\[
\sumT_{i=1}^n X_i
\]
\(\sumPTT\limits_{i=1}^n X_i\)
\end{document}
答案1
为了正确设置限制,我将使用\sideset
来自amsmath
\documentclass{article}
\usepackage{amsmath}
\newcommand{\sumparameterA}[1]{\sideset{}{^{#1}}\sum}
\newcommand{\sumparameterB}[1]{\sideset{}{^{\smash{#1}}}\sum}
\begin{document}
\begin{gather*}
\sumparameterA{P}_{i=1}^n X_i \quad\sumparameterA{T}_{i=1}^n X_i \quad\sumparameterA{PTT}_{i=1}^n X_i
\\
\sumparameterB{P}_{i=1}^n X_i \quad\sumparameterB{T}_{i=1}^n X_i \quad\sumparameterB{PTT}_{i=1}^n X_i
\end{gather*}
\end{document}
顶部版本避免了与长上限发生冲突,但在我看来,底部版本与短上限看起来更好。