Выровнять все столбцы в уравнении по левому краю

Выровнять все столбцы в уравнении по левому краю

Я пытаюсь выровнять 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}

В результате 2-й столбец будет выровнен по левому краю, а 1-й и 3-й — по правому краю.

Я бы хотел, чтобы все они были выровнены по левому краю, вот так: результат с желаемыми стрелками

решение1

Просто немного расширяю тему@vonbrand's ответ...

Окружение alignatявляется расширением окружения align. Оно использует &символ выравнивания для выравнивания блоков попеременно слева и справа.

  • Если два выровненных по левому краю блока должны следовать друг за другом, используйте &&вместо &.

  • Вы можете создать дополнительное пространство между двумя выровненными по левому краю блоками, вставив \quadили \qquadмежду последовательными &символами.

  • Окружение alignatтребует аргумент, целое число. Чтобы вычислить это целое число, возьмите максимальное количество &символов в любой строке, добавьте 1 и разделите на 2. В примере ниже максимальное количество &символов равно 5; добавление 1 и деление на 2 дает 3. (Если максимальное количество — четное число, добавьте 1 перед продолжением.)

Некоторые дополнительные комментарии: я бы заменил все вхождения на ..., \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, и внимательно прочитайте документацию. Там есть довольно забавные идеи о том, как выравнивать содержимое столбцов, вам нужно выбрать те, которые нужно заполнить, с некоторой осторожностью. Немного экспериментов (и несколько фиктивных столбцов, возможно, только для интервалов) дадут вам желаемые результаты.

Связанный контент