Как выполнить выравнивание относительно символа внутри аргумента команды?

Как выполнить выравнивание относительно символа внутри аргумента команды?

Мне бы хотелось выровнять несколько строк относительно символа, скажем, знака равенства, над которым написано что-то еще (используя \overset), при этом принимая во внимание то, что написано над символом, для интервала, например так: введите описание изображения здесь

Однако я не могу поместить "&" в аргумент \overset, так как это, по-видимому, синтаксически запрещено. При размещении его рядом с \overset, строки, конечно, не выравниваются относительно знака равенства: введите описание изображения здесь

Я попробовал использовать \mathclap, что обеспечивает нужное мне выравнивание, но тогда интервалы становятся слишком узкими: введите описание изображения здесь Вот мой минимальный рабочий пример:

\documentclass[a4paper,12pt,fleqn]{article}

\usepackage[fleqn]{amsmath}
\usepackage{amsmath, amssymb, graphics, setspace}
\usepackage{latexsym}
\usepackage{mathtools}

\begin{document}

Placing "\&" next to overset:
\begin{alignat*}{1}
\textrm{some expression} & \overset{(23.1)}{=}\textrm{other expression}\\
 & \overset{(1.3)}{=}\textrm{other expression}\\
 & \overset{(2.4,3.5)}{=}\textrm{other expression}
\end{alignat*}

Using mathclap:
\begin{alignat*}{1}
\textrm{some expression} & \overset{\mathclap{(23.1)}}{=}\textrm{other expression}\\
 & \overset{\mathclap{(1.3)}}{=}\textrm{other expression}\\
 & \overset{\mathclap{(2.4,3.5)}}{=}\textrm{other expression}
\end{alignat*}

How I want it to look like:
\begin{alignat*}{1}
\textrm{some expression} & \quad\overset{\mathclap{(23.1)}}{=}\quad\textrm{other expression}\\
 & \quad\overset{\mathclap{(1.3)}}{=}\quad\textrm{other expression}\\
 & \quad\overset{\mathclap{(2.4,3.5)}}{=}\quad\textrm{other expression}
\end{alignat*}
Of course, adding spaces manually as done here is not a satisfactory solution to the problem.

\end{document}

решение1

\[
    \begin{array}{r@{}c@{}l}
    \textrm{some expression} & \overset{(23.1)}{=}  &\textrm{other expression}\\
                             & \overset{(1.3)}{=} & \textrm{other expression}\\
                             & \overset{(2.4,3.5)}{=} &\textrm{other expression}
    \end{array}
\]

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

или для меньшего пространства:

\begin{array}{r@{\kern-2pt}c@{\kern-2pt}l}

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

решение2

Здесь используется \tabularCenterstackиз tabstackengineпакета. Ширина между столбцами контролируется с помощью \setstacktabulargap{0pt}. Пропуск базовой линии между строками контролируется с помощью \setstackgap{L}{1.4\baselineskip}.

\documentclass[a4paper,12pt,fleqn]{article}

\usepackage[fleqn]{amsmath}
\usepackage{amsmath, amssymb, graphics, setspace}
\usepackage{latexsym}
\usepackage{mathtools}
\usepackage{tabstackengine}
\stackMath
\def\poverset{\protect\overset}
\setstackgap{L}{1.4\baselineskip}
\setstacktabulargap{0pt}
\begin{document}

Using \verb|\tabularCenterstack|:
\[
\tabularCenterstack{rcl}{
\textrm{some expression} & \poverset{(23.1)}{=}&\textrm{other expression}\\
 & \poverset{(1.3)}{=}&\textrm{other expression}\\
 & \poverset{(2.4,3.5)}{=}&\textrm{other expression}
}
\]
\end{document}

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

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