左對齊方程式中的所有列

左對齊方程式中的所有列

我正在嘗試使用塊對齊方程式的 3 列aligned

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation*}
    \begin{aligned}
        a[i:j] &= \langle\rangle                &\text{if } i > j \\
        a[i:j] &= \langle a_i, ..., a_j \rangle &\text{if } a = \langle a_0, ..., a_i, ... a_j, ... \rangle \\
        a[i:]  &= \langle a_i, ... \rangle      &\text{if } a = \langle a_o, ..., a_i, ... \rangle
    \end{aligned}
\end{equation*}
\end{document}

這導致第二列左對齊,但第一列和第三列右對齊。

我希望它們全部左對齊,如下所示: 帶有所需箭頭的結果

答案1

只是稍微擴充一下@vonbrand 的回答

環境alignat是環境的延伸align。它使用&對齊符號以左右交替的方式對齊區塊。

  • 如果兩個左對齊區塊應該相互跟隨,請使用&&而不是&

  • 您可以透過在連續符號之間插入\quad或來在兩個左對齊區塊之間建立額外空間。\qquad&

  • 環境alignat需要一個參數,一個整數。要計算該整數,請取任意行中的最大符號數&,加 1,然後除以 2 &。加 1 再除以 2 得到 3。

一些附加評論:我將替換所有實例...\dots建立印刷省略號;我將這 3 個:符號放在花括號中,以避免插入額外的間距。

在此輸入影像描述

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{alignat}{3} % max. # of '&' symbols in any row: 5. (5+1)/2 = 3 
& a[i{:}j] &&= \langle\,\rangle            
      &\qquad&\text{if $i > j$} \\ % or '\quad', if you prefer
& a[i{:}j] &&= \langle a_i, \dots, a_j \rangle 
      &&\text{if $a = \langle a_0, \dots, a_i, \dots a_j, \dots \rangle$} \\
& a[i{:}]  &&= \langle a_i, \dots \rangle  
      &&\text{if $a = \langle a_o, \dots, a_i, \dots \rangle$}
\end{alignat}
\end{document}

答案2

使用alignat,並仔細閱讀文件。它對於如何對齊列內容有非常有趣的想法,您必須小心地選擇要填入的內容。一些實驗(和一些虛擬列,也許僅用於間距)將為您帶來您想要的結果。

相關內容