长求和符号

长求和符号

我需要在单行的求和符号下放置一个长表达式。例如像这样$(i_1,\ldots,i_n)\in\mathcal{P}(\overline{1,n})$。我怎样才能得到一个长求和符号?长但不高。最小工作示例是

    \documentclass{article}
    \begin{document}
    \[\sum_{(i_1,\ldots,i_n)\in\mathcal{P}(\overline{1,n})}\]
    \end{document}

我希望求和符号的长度与它下面的字符串长度相同。像这样

在此处输入图片描述

但是,也许,我问了一些不寻常和不适用的问题。

答案1

不要这样做。

不是故意让它变得智能。但它可以变得智能。

\documentclass{article}

\usepackage{adjustbox,expl3,etoolbox}

\letcs\replicate{prg_replicate:nn}

\newcommand*\longsum[1][1]{%
  \mathop{\textnormal{%
    \clipbox{0pt 0pt {.5\width} 0pt}{$\displaystyle\sum$}%
    \replicate{#1}{\clipbox{{.5\width} 0pt {.4\width} 0pt}{$\displaystyle\sum$}}%
    \clipbox{{.6\width} 0pt 0pt 0pt}{$\displaystyle\sum$}}}%
}

\begin{document}

\[
  \longsum[31]_{(i_1,\ldots,i_n)\in\mathcal{P}(\overline{1,n})}
\]

\end{document}

隆森

这里使用\longsum_{like always},但它有一个可选参数,重复总和的一部分以使其更长。在您的特定情况下\longsum[31]_{..}似乎可以做到。


哦,或者可能是你是减少\sum符号周围的空间吗?您可以使用自动执行此操作\smashoperator,请参阅如何在不留出额外空间的情况下扩展求和符号下的文本,或手动使用 调整中间位置\kern-1em \sum_{long expression} \kern-1em(调整-1em至您想要的大小)。

答案2

您可能希望在求和符号下方插入一个换行符,而不是一行很长的行。这可以借助包\substack的宏来完成amsmath

在此处输入图片描述

请注意,实际上没有必要用i_1,\dots,i_n圆括号括起来。

\documentclass{article}
\usepackage{amsmath} % for "\substack" macro
%% decicated macro "\Pset" -- note the extra spacing around "\overline{...}`
\newcommand\Pset{\mathcal{P}(\mkern1.5mu \overline{1,n} \mkern1.5mu)}

\begin{document}
\[
\sum_{\substack{i_1,\dots,i_n\\ \in\,\Pset}}
\]
\end{document}

答案3

您正在寻找这样的东西吗?

例子

\documentclass{article}
\begin{document}
\[\sum_{(i_1,\ldots,i_n)\in\mathcal{P}(\overline{1,n})}\]
\end{document}

或这个?

示例2

\documentclass{article}
\begin{document}
\(\sum_{(i_1,\ldots,i_n)\in\mathcal{P}(\overline{1,n})}\)
\end{document}

编辑

我想知道...您是否因为总和与下一个变量之间的空白而对下标的长度感到困扰?因为如果是这种情况,那么命令\mathclap允许mathtools将下标重叠到总和符号。下图显示了与原始的差异。

例子_mathclap

这是重现该问题的代码:

\documentclass[convert]{article}
\usepackage{mathtools}
\begin{document}
\[\sum_{i_1,\ldots,i_n\in\mathcal{P}(\overline{1,n})}x_i\]
\[\sum_{\mathclap{i_1,\ldots,i_n\in\mathcal{P}(\overline{1,n})}}x_i\]
\end{document}

答案4

如果您想要水平拉伸求和符号,可以使用包\hstretch中的命令scalerel。您可以使用测量求和符号和下标的宽度,\settowidth并使用pgf计算需要提供给的缩放因子。请注意,宽度与符号的实际宽度并不完全一致,因此您必须调整因子(在下面的示例中为 0.6)。求和本身使用包中的\hstretch显示。\undersetamsmath

梅威瑟:

\documentclass{article}
\usepackage{scalerel}
\usepackage{pgf}
\usepackage{amsmath}
\begin{document}

\def\mysubscript{(i_1,\ldots,i_n)\in\mathcal{P}(\overline{1,n})}

\newlength\mylen
\settowidth\mylen{${}_\mysubscript$}

\newlength\mysumlen
\settowidth\mysumlen{$\sum$}

\pgfmathsetmacro\scalefactor{\mylen / \mysumlen * 0.6}

\noindent width of subscript: \the\mylen\\
width of sum: \the\mysumlen\\
scale factor: \scalefactor\\


\[\underset{\mysubscript}{\hstretch{\scalefactor}{\sum}}\]

\end{document}

结果:

在此处输入图片描述

请注意,结果在美学上颇受质疑,我建议不要在任何情况下使用它。

相关内容