Слишком высокие верхние индексы после макросов, определенных с помощью \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}

Производство:

введите описание изображения здесь

Вы можете ясно видеть, что второй пример (то есть ваш текст) и подформула дают одинаковое выравнивание.

Похоже, что показатель степени применяется ко всей подформуле, а не переносится как показатель степени вашей переменной.

Связанный контент