数组填充不正确

数组填充不正确

我有以下阵列环境:

\begin{array}{ccc}
0 & = & \text{some equation} \\
0 & = & \text{some other equation} \\
  & \vdots \\
0 & = & \text{last equation}
\end{array}

但是,这里等号周围有很多空格,与使用 eqnarray 环境时不同。

我想使用数组环境,因为 \vdots 的宽度比 = 小,并且在 = 下方居中。

如能提供任何关于使填充/间距符合其他方程式的帮助,我们将不胜感激。

答案1

针对这种情况提供mathtools了一个命令:\vdotswithin

示例输出

\documentclass{article}

\usepackage{mathtools}

\begin{document}

\begin{align}
  0 &=  \text{some equation} \\
  0 &=  \text{some other equation} \\
    &\vdotswithin{=} \notag \\
  0 &=  \text{last equation}
\end{align}

\end{document}

答案2

环境中的适当间距array要求您删除默认的array列分隔符(\arraycolsep)并在需要的地方插入空组,以便二元关系/运算符可以自行分隔。这可以通过以下方式轻松实现array\newcolumntype

在新列类型下方C插入其内容的{}左侧(使用>)和右侧(使用):<

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath,array}% http://ctan.org/pkg/{amsmath,array}
\newcolumntype{C}{>{{}}c<{{}}}
\begin{document}
\[
\begin{array}{c@{}C@{}c}
  a & = & \text{some equation} \\
  b & = & \text{some other equation} \\
    & \vdots \\
  c & = & \text{last equation}
\end{array}
\]

\begin{align*}
  a &= \text{some equation} \\
  b &= \text{some other equation} \\
    & \vdots \\
  c &= \text{last equation}
\end{align*}
\end{document}

尽管您仍然在末端留有填充array,但与使用相比,它在对齐方面并不会产生影响align

array使用上述有优势align,但也有缺点。与 的固定rl对齐相比,一个优势是可以轻松更改对齐方式以满足您的需求align。但是,align当您有多个对齐点时,可以提供灵活性,并具有散布文本功能、分页功能、垂直扩展功能(\renewcommand{\arraystretch}{1.2}在使用 时可以通过 实现array)……因此,总而言之,align效果更好。

答案3

在此解决方案中,我使用包的功能stackengine来创建垂直堆栈。包定义的“长堆栈”创建的堆栈的项间基线是恒定的且可设置(默认\baselineskip)。可以指示它在文本模式(默认)或数学模式下堆叠其参数。

因此,该解决方案由三个堆栈组成:一个右对齐的零堆栈(在 处有一个空行vdots;一个中心对齐的等号堆栈,其中 稍微偏移\vdots,并用 括起来\mathrel以获得适当的水平间距;一个左对齐的文本句子堆栈。

\documentclass{article}
\usepackage[usestackEOL]{stackengine}[2013-10-15]
\begin{document}
\[
\stackMath
\Longstack[r]{0\\0\\ \\0}
\mathrel{\Longstack{=\\=\\ \raisebox{-1.5pt}{\vdots}\\=}}
\stackText
\Longstack[l]{some equation\\some other equation\\ \\last equation}
\]
\end{document}

在此处输入图片描述

相关内容