如何使 \begin{align} 看起来像 \begin{eqnarray}

如何使 \begin{align} 看起来像 \begin{eqnarray}

我尝试使用 eqnarray 来对齐编程模型,但是命令 \tag 不适用于它,我可以使用 align 来代替,但是对齐方式对于第一列是右对齐,对于第二列是左对齐。

所以我想要做的是使用 eqnarray 对齐(对于第一列来说是正确的,对于第二列来说居中)和 align。

这两个命令如下所示:

在此处输入图片描述

答案1

以下是使用\mathmakeboxmathtools包的解决方案:

\documentclass{article}
\usepackage{mathtools}% loads `amsmath'
\DeclareMathOperator*{\Max}{Max}
\begin{document}
A solution with \verb|\mathmakebox|:
\begin{alignat}{2}
           \Max_t & \quad & F(t) = at, \\
\text{subject to} &       & \mathmakebox[\widthof{$F(t) = at,$}][c]{t \le b,} \\
                  &       & \mathmakebox[\widthof{$F(t) = at,$}][c]{t \ge 0.}
\end{alignat}
\end{document}

制作盒子

答案2

以下是 和alignat的 两种可能性eqparbox

\documentclass{article}
\usepackage{mathtools}
\usepackage{eqparbox}
\newcommand{\eqmathbox}[2][M]{\eqmakebox[#1]{$\displaystyle#2$}}

\begin{document}

\begin{alignat}{2}
  \max_t & &\quad & \eqmathbox{F(t) = at}\\
 \text{subject to}& &
 & \eqmathbox{\begin{gathered}[t]
 t\le b, \\t\ge 0.
 \end{gathered}}
\end{alignat}
\begin{alignat}{2}
  \max_t & &\quad & \eqmathbox{F(t) = at}\\
 \text{subject to}& &
 & \eqmathbox{t \le b,} \\
  & & & \eqmathbox{t \ge 0.}
\end{alignat}

\end{document} 

在此处输入图片描述

相关内容