在对齐环境中右对齐文本,同时保持数学居中

在对齐环境中右对齐文本,同时保持数学居中

我在对齐环境的某些行中使用文本来证明我们如何从一行转到另一行。我想让数学保持居中,让文本右对齐,但我没有成功:

  \begin{align}
    a &= bbbbbb &\nonumber \\
    cccc  & =  dd & \text{(using Eq. 1)} & \nonumber \\
    e &= f & \text{(using Thm. 2)} 
  \end{align}

给出 在此处输入图片描述 这对于数学来说没问题,但对于文本来说不行,因为它不是完全在线条的末端。

使用flalign环境会将数学方程式左对齐,而我想让它们保持居中。

实现这一目标的最干净的方法是什么?

答案1

我建议采用以下两种解决方案之一,均基于环境flalign

\documentclass{article}
\usepackage{mathtools}
\usepackage{eqparbox}
\usepackage[showframe]{geometry}

\begin{document}

  \begin{flalign}
  & & a &= bbbbbb &\nonumber \\
 & & cccc & = dd & \text{(using Eq. 1)} & \nonumber \\
 & & e &= f & \text{(using Thm. 2)}
  \end{flalign}

  \begin{flalign}
  & & a &= bbbbbb \nonumber \\
 & & cccc & = dd & \eqparbox{C}{(using Eq. 1)} & \nonumber \\
 & & e &= f & \eqparbox{C}{(using Thm. 2)}
 \end{flalign}

\end{document} 

在此处输入图片描述

答案2

为了使方程式居中,你需要使文本不占用任何空间。这会导致你无法将文本右对齐(但这是好的,正如我们从左到右阅读的那样)。

\zerotext命令接受可选参数以避免重叠(如最后一个例子所示)。

\documentclass{article}
\usepackage{amsmath}

\usepackage{showframe} % just for the example

\newcommand{\zerotext}[2][0pt]{\makebox[#1][l]{\qquad#2}}

\begin{document}

% for checking alignment
\begin{align}
a     &= bbbbbb \nonumber \\
cccc  &= dd     \nonumber \\
e     &= f       
\end{align}

\begin{equation}
\begin{alignedat}[b]{2}
a     &= bbbbbb & \\
cccc  &= dd     & \zerotext{(using Eq. 1)} \\
e     &= f      & \zerotext{(using Thm. 2)} 
\end{alignedat}
\end{equation}

\begin{equation}
\begin{alignedat}[b]{2}
a     &= bbbbbb+cccccccccc & \\
cccc  &= dd                & \zerotext[4em]{(using Eq. 1)} \\
e     &= f                 & \zerotext[4em]{(using Thm. 2)} 
\end{alignedat}
\end{equation}

\end{document}

在此处输入图片描述

相关内容