当表达式中的下标\int\limits_{some stuff}
很大时,LaTeX 似乎低估了下标所占的空间,从而导致 的位置错误\left\lvert
(例如垂直线接触下标,中间没有间距)。当\sum
使用 代替时,问题就不存在了\int
,并且在这种情况下左侧的间距看起来不错。同样,使用underbrace
会使括号向右移动约一毫米,这看起来也很奇怪。和以前一样,使用代替 时\int\limits_{some stuff}
一切都很好。为什么会这样,如何修复 的行为?\sum
\int\limits
\int\limits
梅威瑟:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[\left\lvert\int\limits_{0000000}\right\rvert\]
\[\underbrace{\int\limits_{0000000}}\]
\[\left\lvert\sum_{0000000}\right\rvert\]
\[\left\lvert\sum\limits_{0000000}\right\rvert\] %\limits doesn't impact \sum behavior as expected
\[\underbrace{\sum_{0000000}}\]
\end{document}
答案1
两个符号之间的差异来自斜体校正。根据 TeXbook 附录 G 中的规则 13a,下限为左移斜体校正减半(上限右移)。积分符号有斜体更正,8u#
而求和符号没有。
\int
您可以通过用 Op 核替换符号来避免这个问题\mathop{\int}
,因为规则 13 规定,对于非符号,斜体校正将被忽略。
$$\left\vert\int\limits_{0000000}\right\vert$$
$$\left\vert\mathop{\int}\limits_{0000000}\right\vert$$
或者,您可以计算斜体校正的宽度并将其用于对策,例如在左侧条后插入一个字距,在右侧条前插入一个负字距。您需要知道大整数符号在 (plain TeX) 字体中是字符 0x5A \tenex
。
\newdimen\intcorr
{\setbox0=\hbox{\tenex\char"5A\/\global\dimen\intcorr=\lastkern}}
$$\left\vert\kern.5\dimen\intcorr\int\limits_{0000000}\kern-.5\dimen\intcorr\right\vert$$