我有以下阵列环境:
\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
,但也有缺点。与 的固定r
右l
对齐相比,一个优势是可以轻松更改对齐方式以满足您的需求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}