\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}

制作:

ここに画像の説明を入力してください

2 番目の例 (テキスト) とサブ数式が同じ配置を生成することがはっきりとわかります。

指数はサブ式全体に適用され、変数の指数としては実行されないようです。

関連情報