![使用 \DeclarePairedDelimiter 定义的宏后上标太高](https://linux22.com/image/352964/%E4%BD%BF%E7%94%A8%20%5CDeclarePairedDelimiter%20%E5%AE%9A%E4%B9%89%E7%9A%84%E5%AE%8F%E5%90%8E%E4%B8%8A%E6%A0%87%E5%A4%AA%E9%AB%98.png)
我有一个绝对值的宏(使用\DeclarePairedDelimiter
from mathtools
):
\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}
这对于调整栅栏的大小等非常有用。但我使用时上标位置\abs{x}^2
太高了。请参阅以下内容:
知道这是不是个错误吗,或者我该如何修复它?
编辑:上述行为似乎是由于DeclarePairedDelimiter
调用\mathclose
/创建子公式而导致的。我不知道这是否是一种设计选择——但我当然想知道是否有一种简单的方法可以解决这个问题。
这是上述内容的代码。
\documentclass{minimal}
\usepackage[active,tightpage]{preview}
\usepackage{varwidth,mathtools}
\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}
\begin{document}
\begin{preview}\begin{varwidth}{360pt}
The superscript following \verb'\abs{x}' is higher than that following \verb'\lvert x\rvert'.
Here is an example:
\begin{center}
\verb'\abs{x}^2 \lvert x\rvert^2' produces $\abs{x}^2 \lvert x\rvert^2$.
\end{center}
The same happens in displayed math:
\begin{equation*}
\abs{x}^2 \lvert x\rvert^2
\end{equation*}
\end{varwidth}\end{preview}
\end{document}
提前致谢。
答案1
这是 mathtools 中的设计选择。并非所有用户都知道\rvert
比 更好|
,所以我们会帮助他们,如果有人想将其用作)(
分隔符对,它也会对我们有所帮助。除了在\vpahntom
围栏后重复围栏材料外,我不知道还有更好的方法。
但是,在这种情况下,由于您使用了正确的左栅栏和右栅栏,因此有一个出路:
\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}
\reDeclarePairedDelimiterInnerWrapper{\abs}{nostar}{#1#2#3}
答案2
DeclarePairedDelimiter
产生一个子公式。编辑正如@Daleif 建议的那样,这是由于DeclarePairedDelimiter
调用\mathclose
右括号造成的。
这相当于使用括号({
和),它们也会产生数学子公式,有时会导致对齐问题。(顺便说一句,这就是为什么在数学模式下}
通常没有相邻的括号)。{}
请参阅以下示例:
\documentclass{minimal}
\usepackage{amsmath,mathtools}
\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}
\begin{document}
\begin{gather}
\left|x\right|^2 \lvert x\rvert^2 \\
\abs{x}^{2} \lvert x\rvert^{2} \\
{|x|}^{2} \lvert x\rvert^{2}
\end{gather}
\end{document}
制作:
您可以清楚地看到第二个示例(即您的文本)和子公式产生相同的对齐。
看起来指数是应用于整个子公式的,而不是作为变量的指数。