替代 eqnarray?

替代 eqnarray?

首先,抱歉我的英语水平,我是法国人。其次,我读过eqnarray环境已经过时了,我们必须用 来代替它align。好的,但这对我来说并不令人满意。我解释一下:

\documentclass[12pt]{article}
\usepackage{amsmath,amsfonts,amssymb} % Tableaux, maths
\usepackage[frenchb]{babel}
\usepackage[top=1.5cm,bottom=1.5cm,right=1.5cm,left=1.5cm]{geometry} % Marges
\begin{document}
\begin{eqnarray*}
  Test~eqnarray*   & = & \text{Good alignment} \\
  & Because & \text{the text is aligned near to the equal sign}
\end{eqnarray*}
\end{document}

给出这个:

随着环境align

\documentclass[12pt]{article}
\usepackage{amsmath,amsfonts,amssymb} % Tableaux, maths
\usepackage[frenchb]{babel}
\usepackage[top=1.5cm,bottom=1.5cm,right=1.5cm,left=1.5cm]{geometry} % Marges
\begin{document}
\begin{align*}
  Test~align*   & = & \text{Bad alignment} \\
  & Because & \text{the text is right-aligned, far to the equal sign}
\end{align*}
\end{document}

得到:

在此处输入图片描述

eqnarray我怎样才能获得与完全相同的结果align

注意:我不关心间距问题eqnarray

答案1

你必须明白,在align类似的 amsmath 环境中,如果你想n对齐组,除第一个组外,每个组都需要 2 个 & 符号:第一个 & 符号&引入一个新的对齐组,第二个 & 符号&指定此组内的对齐点。当然,第一个组不需要第一个 & 符号,因此n对齐组总共需要 2n– 1&秒。

您使用了eqnarray带有 two 的语法&,因此 amsmath 理解有两个组。由于第二组中没有&对齐点,因此它会在每行的最后一个字符上对齐。

添加

使用 包可以轻松解决您的问题eqparbox。顺便说一句,我简化了您的几何代码(因为所有边距都相等,所以您只需设置margin =)。此外,frenchb选项已过时,应将其替换为french,最好使用 加载\documentclass,以便所有语言相关包都得到通知。Lastn 无需加载amsfonts,因为amssymb会为您完成。

\documentclass[12pt, french]{article}
\usepackage{amsmath,amssymb} % Tableaux, maths
\usepackage{babel}
\usepackage[margin=1.5cm]{geometry} % Marges
\usepackage{eqparbox}
\newcommand{\eqrel}[2][B]{\mathrel{\eqmakebox[#1]{#2}}} %% eqparbox uses a system of tags, which is the optional argument here – defaults to B.

\begin{document}

\begin{align*}
  \emph{Test~align*} &\eqrel{$=$} \text{Bad alignment} \\
  &\eqrel{\em Because} \text{the text is left-aligned, near the equal sign}
\end{align*}

\end{document} 

在此处输入图片描述

答案2

align有一个太多的&符号:

\documentclass[12pt]{article}
\usepackage{amsmath,amsfonts,amssymb} % Tableaux, maths
\usepackage[frenchb]{babel}
\usepackage[top=1.5cm,bottom=1.5cm,right=1.5cm,left=1.5cm]{geometry} % Marges
\begin{document}
\begin{align*}
  Test~align*   & = \text{Bad alignment} \\
  Because       & = \text{the text is right-aligned, far to the equal sign}
\end{align*}
or 
\begin{align*}
  Test~align*   & = \text{Bad alignment} \\
                & \text{Because the text is right-aligned, far to the equal sign}
\end{align*}
or 
\begin{align*}
  Test~align*   & = \parbox[t]{0.4\linewidth}{
                    Bad alignment \\
                    Because the text is right-aligned, far to the equal sign}
\end{align*}
\end{document}

在此处输入图片描述

补充: 显然您正在寻找以下内容:

在此处输入图片描述

\documentclass[12pt]{article}
\usepackage{amsmath} 

\begin{document}
\[\setlength\arraycolsep{2pt}
\begin{array}{rcl}
  Test~array    & =         & \text{Fine alignment}\\
                & Because   & \text{the text is left-aligned \dots}
\end{array}
\]
\end{document}

附录(2): 在非常古老的(几乎被遗忘的)包的帮助mathenvmfwtools

\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{mathenv}
\usepackage[frenchb]{babel}
\usepackage[top=1.5cm,bottom=1.5cm,right=1.5cm,left=1.5cm]{geometry} % Marges

\begin{document}
\begin{eqnarray}[rc@{\;}l]
  Test~eqnarray &   =     & \text{Good alignment} \\
                & Because & \text{the text is aligned near to the equal sign}
\end{eqnarray}
\end{document}

在此处输入图片描述

相关内容