对齐多个 eqnarray*

对齐多个 eqnarray*

我在一个文档中使用多个 eqnarray*,但对齐看起来不太好:

\begin{eqnarray*}
\bar{x}& = & \frac{1}{n} \sum_{i=1}^n x_i\\
    & = & \frac{45+60+...+53+65}{10}\\
    & = &\frac{284}{5}\\
\end{eqnarray*}
\subsection{Another one}
Some text and other tings...
\begin{eqnarray*}
    s^2 & = & \frac{1}{n-1} \sum_{i=1}^n (x_i - \bar{x})^2\\
    & = & \frac{1}{9} ((45-57,2)^2+(60-57,2)^2+\dots+(65-57,2)^2)\\
\end{eqnarray*}

如果您查看结果,您会发现并非所有等号都对齐。使用 eqnarray* 进行分组是可行的,但由于我们必须插入一些其他内容(如小节),我们无法继续 eqnarray* 以强制两个 eqnarray* 中的所有等号以相同的方式对齐。我们该怎么做呢?

答案1

我想不出任何令人信服的理由来将不相关的方程结构与文档的章节单元对齐。但是,如果你绝对、肯定必须执行这样的对齐,那么可以实现,但只能通过人工干预。在下面提供的解决方案中,上式方程的各部分被包裹在语句中,其中框的宽度由下式方程中符号\parbox左侧和右侧的最长项决定。=

正如其他人已经指出的那样:不要使用eqnarray——它已被严重弃用,而且有更优越的替代品可供选择。另外,不要输入...;\dots而要使用。

在此处输入图片描述

\documentclass{article} 
\usepackage{amsmath} % for 'align*' environment

\newlength\mylena
% save longest string of second equation block
\newcommand\longstring{\frac{1}{9}((45-57,2)^2+(60-57,2)^2+\dots+(65-57,2)^2)}
\settowidth\mylena{$\displaystyle\longstring$} % measure width of this string

\newlength\mylenb
\settowidth\mylenb{$\displaystyle s^2$} % measure width of this string too

\begin{document}

\begin{align*}
\parbox{\mylenb}{\hfill$\displaystyle\bar{x}$} % right-align the material
        &= \frac{1}{n} \sum_{i=1}^n x_i\\
        &= \frac{45+60+\dots +53+65}{10}\\
\parbox{\mylenb}{}
        &= \parbox{\mylena}{$\displaystyle\frac{284}{5}$}\\
\end{align*}


\subsection{Another one}
Some text and other things \dots 
\begin{align*}
   s^2 &= \frac{1}{n-1} \sum_{i=1}^n (x_i-\bar{x})^2\\
       &= \longstring\\
\end{align*}
\end{document}

相关内容