我有几个对齐的系数列表。一组系数有三列,另一组有四列。目前,我用两种align
环境显示它们:
\begin{align}
\gamma_1 &= 8/15 & \gamma_2 &= 5/12 & \gamma_3 &= 3/4 \\
\zeta_1 &= 0 & \zeta_2 &= -17/60 & \zeta_3 &= -5/12 \\
\beta_1 &= 4/15 & \beta_2 &= 1/15 & \beta_3 &= 1/6
\end{align}
\begin{align}
a_0 &= 0 & a_1 &= 8/15 & a_2 &= 2/3 & a_3 &= 1
\end{align}
每行元素之间的对齐和间距完全符合我的要求,但三列系数和四列系数之间的间距太大。本质上,我希望对齐在某个点重置,以便环境的下一行align
有四列并居中。
我了解了aligned
环境在我寻找答案时。那里提出的问题基本上就是我要问的,但那里提供的代码不能满足我的要求。我还没有成功地编写出能完全满足我要求的代码。
这是我能得到的最接近的答案:
\begin{align}
\begin{aligned}
\gamma_1 &= 8/15 & \gamma_2 &= 5/12 & \gamma_3 &= 3/4 \\
\zeta_1 &= 0 & \zeta_2 &= -17/60 & \zeta_3 &= -5/12 \\
\beta_1 &= 4/15 & \beta_2 &= 1/15 & \beta_3 &= 1/6 \\
\end{aligned} \\
\begin{aligned}
a_0 &= 0 & a_1 &= 8/15 & a_2 &= 2/3 & a_3 &= 1
\end{aligned}
\end{align}
这有两个问题:
- 由于有两个
align
s,因此系数被压缩而不是扩展。 - 每个
aligned
环境都有一个方程编号。我更喜欢直接引用每组系数(gamma、zeta、beta 和 a)。
我可能可以操纵对齐环境底部和/或顶部的间距并使用我原来的代码,但这很草率,而且我相信存在一种简单的方法可以做我想做的事情,但我不知道。
此外,根据定义,a0 和 a3 系数分别需要为 0 和 1,因此我可以省略一个,但为了清楚起见,我想将它们都包括在内。
答案1
你可以尝试使用列来欺骗对齐机制,如下所示:
\begin{align}
\gamma_1 &= 8/15 &&& \gamma_2&= 5/12 &&& \gamma_3 &= 3/4 &\\
\zeta_1 &= 0 &&& \zeta_2&= -17/60 &&& \zeta_3 &= -5/12& \\
\beta_1 &= 4/15 &&& \beta_2&= 1/15 &&& \beta_3 &= 1/6&\\
a_0 ={}&0 &&& a_1 = 8/15 && a_2 = 2/3 &&&\qquad a_3 = 1
\end{align}
但恕我直言,你想做的事情读起来不太好。我会做类似下面的事情
\begin{align}
\gamma_1 &= 8/15 & \gamma_2&= 5/12 & \gamma_3 &= 3/4 \\
\zeta_1 &= 0 & \zeta_2&= -17/60 & \zeta_3 &= -5/12 \\
\beta_1 &= 4/15 & \beta_2&= 1/15 & \beta_3 &= 1/6\\
a_0 &= 0 & a_1 &= 8/15 & a_2 &= 2/3 \\ \notag
& & a_3 &= 1 & &
\end{align}
您可以刻意在前三个和最后一个之间留出一些垂直空间,以突出分组效果,在我看来,这对于传达信息比能够命令 LaTeX 数组更为重要。
答案2
为了完全控制对齐,您可以使用环境alignat
。
\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage{mathtools} % loads »amsmath«
\begin{document}
\begin{alignat}{4}
& & \gamma_1 &= 8/15\qquad & \gamma_2 &= 5/12 & \gamma_3 &= 3/4 \\
& & \zeta_1 &= 0 & \zeta_2 &= -17/60\qquad & \zeta_3 &= -5/12 \\
& & \beta_1 &= 4/15 & \beta_2 &= 1/15 & \beta_3 &= 1/6 \\
a_0 &= 0\qquad & a_1 &= 8/15 & a_2 &= 2/3 & a_3 &= 1
\end{alignat}
\end{document}
答案3
这是解决对齐问题的一个可行替代方案:
\documentclass{article}
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\begin{document}
\begin{align}
\smash{\begin{array}[t]{*{2}{r@{\;}l@{\qquad}}r@{\;}l}
\gamma_1 &= 8/15 & \gamma_2 &= 5/12 & \gamma_3 &= 3/4 \\[\jot]
\zeta_1 &= 0 & \zeta_2 &= -17/60 & \zeta_3 &= -5/12 \\[\jot]
\beta_1 &= 4/15 & \beta_2 &= 1/15 & \beta_3 &= 1/6
\end{array}} \label{gammas} \\ \label{zetas} \\ \label{betas} \\
\begin{array}[t]{*{3}{r@{\;}l@{\qquad}}r@{\;}l}
a_0 &= 0 & a_1 &= 8/15 & a_2 &= 2/3 & a_3 &= 1
\end{array} \label{as}
\end{align}
$\gamma$ is~\eqref{gammas}, $\zeta$ is~\eqref{zetas}, $\beta$ is~\eqref{betas} and $a$ is~\eqref{as}.
\end{document}
方程元素放在 内array
。使用 可以确保正确的垂直对齐\\[\jot]
,而通过 可以调整\qquad
列间距的水平方向。修改它以满足您的需要(例如\quad
,或\hspace{<len>}
其中<len>
是任何已知的 TeX 长度单位)。
答案4
一个非常粗鲁的解决方案就是简单地减去一些垂直空间。
\begin{align}
\gamma_1 &= 8/15 & \gamma_2 &= 5/12 & \gamma_3 &= 3/4 \\
\zeta_1 &= 0 & \zeta_2 &= -17/60 & \zeta_3 &= -5/12 \\
\beta_1 &= 4/15 & \beta_2 &= 1/15 & \beta_3 &= 1/6
\end{align}
\vspace{-\belowdisplayskip}
\vspace{-\abovedisplayskip}
\vspace{-3\jot}
\begin{align}
a_0 &= 0 & a_1 &= 8/15 & a_2 &= 2/3 & a_3 &= 1
\end{align}
但它并不完美。有人知道行与行之间的分隔align
是什么吗?