总和过多:“超出 TeX 容量”

总和过多:“超出 TeX 容量”

我是一个懒惰的学生,用 LaTeX 写讲座文章。

由于我需要很多\sum\limits,并且\int\limits我试图覆盖命令,\sum\limits所以我只需要写\sum。所以我写了

\renewcommand{\sum}{\sum\limits}

现在我遇到很多问题,比如

! TeX capacity exceeded, sorry [input stack size=5000].
\sum ->\sum
\limits
l.579 $$\sum
_{i=1}^m K_i B(t,t_i) + N B(t,T)$$"

有没有可能\sum\limits像我尝试的那样,缩短命令并且不出现任何问题?

或者我应该定义一个全新的命令,例如

\newcommand{\summe}{\sum\limits}

这种方法可行吗?

答案1

这很简单

\documentclass{article}

\usepackage{amsmath}
\makeatletter
\renewcommand{\slimits@}{\limits}
\renewcommand{\ilimits@}{\limits}
\makeatother

\begin{document}

A summation $\sum_{i=1}^{n} a_{n}$ and an integral
\[
\int_{0}^{1} x^2\,dx
\]
also inline: $\int_{0}^{1} x^2\,dx$

\end{document}

然而,结果在排版上很糟糕。内联公式中的极限排版在符号的一侧,而积分的极限排版在符号的旁边,这是有充分理由的。

如果所有积分都需要限制(在显示模式下),则使用

\usepackage[intlimits]{amsmath}

但为了读者的利益,在内联公式中设置所有上下限制。

下面是一张显示出可怕外观的屏幕截图。

在此处输入图片描述

当然,像这样的定义

\renewcommand{\sum}{\sum\limits}

将会彻底失败,正如您所发现的,因为 TeX 将继续替换\sum\sum\limits直到耗尽其内存容量。

你会发现一个相关的技巧是否有任何全局设置可以将 \limits 添加到每个 \sum、\bigcup 等?

其中有一个例子说明了为什么在内联公式中使用限制是不好的,我也将其包含在这里。

例子

答案2

您可以\edef\sum按以下方式使用:

\edef\sum{\mathchar\the\sum\limits}
...
A summation $\sum_{i=1}^{n} a_{n}$ ...

答案3

当你 时\def\sum{\sum\limits},你告诉 TeX\sum扩展为两个标记\sum\limits\sum然后它扩展为\sum\limits,扩展为\sum\sum\limits,扩展为\sum\sum\sum\limits,如此反复。

使用不同的名称可以解决问题,但我建议您不要这样做。在很多情况下,这种快捷方式会以完全意想不到的方式中断(因为您在使用时\limits并不真正了解它的作用)。

答案4

根据\int定义\intop\nolimits,您至少有两种自然的方式可以获得您想要的限制:

\documentclass{article}

\begin{document}

\[
\int_{0}^{1}1\,dx
\]

\def\Int{\int\limits}

\[
\Int_{0}^{1}1\,dx
\]

\let\uglyamericanint\int
\def\int{\intop\limits}

\[
\int_{0}^{1}1\,dx
\]


\end{document}

在此处输入图片描述

(我现在没有工具可以裁剪图片)。

相关内容