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