答案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}