在数学环境中左对齐,每个元素彼此重叠

在数学环境中左对齐,每个元素彼此重叠

我希望我的数学环境中的元素左对齐,以便每个元素相互重叠,如下面给出的示例所示。我已经使用和实现了这一点\hspace\qquad但我认为还有一种更优雅的方法来实现这一点。有人能提出更好的解决方案吗?

enter image description here

\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}

enter image description here

答案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}

output

如果确实需要中心方程编号,请使用equation--alignedat组合,例如Thorsten 的回答

答案3

公认的答案肯定是可行的,但如果你被困在荒岛上,而你又没有包裹amsmath,那么array环境可以做到一些的工作——存在不足之处(例如的调整\vdots和需要额外的{}),但确实完成了部分工作。

screenshot

% 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}

enter image description here

如果想要\vdots等号下方的,则可以将标签堆栈的第三行制作为

&\,\raisebox{-2.5pt}{\vdots}&&&&& \\

实现如下结果

enter image description here

相关内容