我是一个懒惰的学生,用 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}
(我现在没有工具可以裁剪图片)。