如何根据命令参数内的符号对齐?

如何根据命令参数内的符号对齐?

我想将几行相对于一个符号对齐,比如等号,其上方写有其他内容(使用\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}

在此处输入图片描述

相关内容