我希望我的数学环境中的元素左对齐,以便每个元素相互重叠,如下面给出的示例所示。我已经使用和实现了这一点\hspace
,\qquad
但我认为还有一种更优雅的方法来实现这一点。有人能提出更好的解决方案吗?
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation}
\begin{aligned}
&\gamma(0)=\quad\alpha_1\gamma(1)\hspace{27pt}+\quad\alpha_2\gamma(2)\hspace{27pt}+\quad\dots\quad+\quad\alpha_p\gamma(p)\quad+\quad\sigma^2 \\
&\gamma(1)=\quad\alpha_1\gamma(0)\hspace{27pt}+\quad\alpha_2\gamma(1)\hspace{27pt}+\quad\dots\quad+\quad\alpha_p\gamma(p-1) \\
&\vdots \\
&\gamma(p)=\quad\alpha_1\gamma(p-1)\quad+\quad\alpha_2\gamma(p-2)\quad+\quad\dots\quad+\quad\alpha_p\gamma(0)
\end{aligned}
\end{equation}
\end{document}
答案1
如果要保留单个方程编号,则可以使用alignedat
里面的环境equation
。
\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage{mathtools} % loads »amsmath«
\pagestyle{empty}
\begin{document}
\begin{equation}
\begin{alignedat}{5}
\gamma(0) &= \alpha_1\gamma(1) &&+ \alpha_2\gamma(2) &&+ \cdots &&+ \alpha_p\gamma(p)&&+ \sigma^2 \\
\gamma(1) &= \alpha_1\gamma(0) &&+ \alpha_2\gamma(1) &&+ \cdots &&+ \alpha_p\gamma(p-1) \\
&\vdotswithin{=} \\
\gamma(p) &= \alpha_1\gamma(p-1)&&+ \alpha_2\gamma(p-2) &&+ \cdots &&+\alpha_p\gamma(0)
\end{alignedat}
\end{equation}
\end{document}
答案2
如果不需要方程编号,那么可能的解决方案如下:
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\begin{alignat*}{4}
\gamma(0) &= \alpha_1\gamma(1) &&+ \alpha_2\gamma(2) &&+ \dots + \alpha_p\gamma(p) &&+ \sigma^2 \\
\gamma(1) &= \alpha_1\gamma(0) &&+ \alpha_2\gamma(1) &&+ \dots + \alpha_p\gamma(p-1)&& \\
&\vdotswithin{=} \\
\gamma(p) &= \alpha_1\gamma(p-1) &&+ \alpha_2\gamma(p-2) &&+ \dots + \alpha_p\gamma(0) &&
\end{alignat*}
\end{document}
如果确实需要中心方程编号,请使用equation
--alignedat
组合,例如Thorsten 的回答。
答案3
公认的答案肯定是可行的,但如果你被困在荒岛上,而你又没有包裹amsmath
,那么array
环境可以做到一些的工作——存在不足之处(例如的调整\vdots
和需要额外的{}
),但确实完成了部分工作。
% arara: pdflatex
% !arara: indent: {overwrite: on}
\documentclass{article}
\begin{document}
\[
\begin{array}{r@{}l@{}l@{}l@{}l@{}l@{}l@{}}
\gamma(0) & {}=\alpha_1\gamma(1) & {}+\alpha_2\gamma(2) & {}+{}\cdots {} & & {}+\alpha_p\gamma(p) & {}+\sigma^2 \\
\gamma(1) & {} =\alpha_1\gamma(0) & {}+\alpha_2\gamma(1) & {}+{}\cdots {} & & {}+\alpha_p\gamma(p-1) & \\
& \vdots & & & & & \\
\gamma(p) & {} =\alpha_1\gamma(p-1) & {}+\alpha_2\gamma(p-2) & {}+{}\cdots {} & & {}+\alpha_p\gamma(0) &
\end{array}
\]
\end{document}
答案4
这是使用该tabstackengine
包,stackengine
通过添加制表功能来扩展该包。
列间距为\setstacktabbedgap{1em}
。行间距为\setstackgap{L}{1.4\baselineskip}
。
\documentclass{article}
\usepackage{tabstackengine}
\stackMath
\begin{document}
\begin{equation}
\setstackgap{L}{1.4\baselineskip}
\setstacktabbedgap{1em}
\tabbedCenterstack[l]{%
\gamma(0)&=\alpha_1\gamma(1)&+\alpha_2\gamma(2)&+&\dots&+\alpha_p\gamma(p)&+\sigma^2 \\
\gamma(1)&=\alpha_1\gamma(0)&+\alpha_2\gamma(1)&+&\dots&+\alpha_p\gamma(p-1)& \\
\protect\raisebox{-2.5pt}{\vdots}&&&&&& \\
\gamma(p)&=\alpha_1\gamma(p-1)&+\alpha_2\gamma(p-2)&+&\dots&+\alpha_p\gamma(0)&
}
\end{equation}
\end{document}
如果想要\vdots
等号下方的,则可以将标签堆栈的第三行制作为
&\,\raisebox{-2.5pt}{\vdots}&&&&& \\
实现如下结果