出于美学原因,我更喜欢下面例子中第一个方程的形式而不是第二个方程的形式。
\begin{align}
\Big\|\sum_{n=1}^\infty f_n\Big\|_p^p&=\int_X\Big|\sum_{n=1}^\infty f_n\Big|^p\mathrm{d}\mu=\int_X\big(\lim_{n\to\infty}s_n\,\big)\mathrm{d}\mu,\\
\left\|\sum_{n=1}^\infty f_n\right\|_p^p&=\int_X\left|\sum_{n=1}^\infty f_n\right|^p\mathrm{d}\mu=\int_X\left(\lim_{n\to\infty}s_n\,\right)\mathrm{d}\mu.
\end{align}
我想这是不言而喻的,但我想要的是括号适合运算符的高度,但省略下标和上标。
问题。我想修改以前用样式 (2) 编写的文档并将其转换为样式 (1)。恐怕我必须手动完成,因为其中会有很多\left(
方程式\right)
不需要修改。
问题。有没有办法重新定义\left(
、、\right)
等\left[
,以使其适应这种行为?
答案1
只要付出一些努力,就可以做到。秘诀不是试图改变\left
,\right
而是去改变\sum
。
xparse
(现在已内置于 LaTeX)允许您使用修饰来定义命令。以下是我们重新定义的\sum
命令:
\let\oldsum=\sum % ➊
\RenewDocumentCommand{\sum}{e{_^}}{ % ➋
\vphantom{\oldsum} % ➌
\mathop{\smash{\oldsum % ➍
\IfValueT{#1}{_{#1}} % ➎
\IfValueT{#2}{^{#2}}
}}
}
我们复制到一个新名称 ➊ 以便我们可以使用旧值。然后我们定义一个使用修饰支持 ➋\sum
的新版本来获取下标(如果存在)并将其放在参数中,将上标(如果存在)放在参数中。然后我们确保保留原始运算符在没有上标和下标的情况下使用的垂直空间量 ➌,然后我们将使用它来移除我们正在构建的总和的高度和深度并将其包装进去,这样我们仍然得到运算符间距 ➍。最后,我们检查是否有上标和下标 ➎,如果它们存在,我们将它们排版在'd上。\sum
#1
#2
\smash
\mathop
\smash
\sum