使用 \DeclarePairedDelimiter 定義的巨集後上標太高

使用 \DeclarePairedDelimiter 定義的巨集後上標太高

我有一個絕對值宏(使用\DeclarePairedDelimiterfrom mathtools):

\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}

這在調整柵欄大小等方面效果很好\abs{x}^2。請參閱以下內容:

PDF輸出

知道這是否是一個錯誤,或者我該如何修復它? 編輯:看來上述行為是由於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}

生產:

在此輸入影像描述

您可以清楚地看到第二個範例(即您的文字)和子公式產生相同的對齊方式。

指數似乎應用於整個子公式,而不是作為變數的指數。

相關內容