ブロックを使用して方程式の 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 の回答...
環境は環境alignat
の拡張ですalign
。&
配置シンボルを使用して、ブロックを左右交互に配置します。
2 つの左揃えのブロックが連続する場合は、
&&
ではなく を使用します&
。連続する記号の間に
\quad
または を挿入することで、左揃えの 2 つのブロック間に余分なスペースを作成できます。\qquad
&
環境
alignat
には引数として整数が必要です。この整数を計算するには、&
任意の行のシンボルの最大数に 1 を加えて 2 で割ります。以下の例では、&
シンボルの最大数は 5 です。1 を加えて 2 で割ると 3 になります (最大数が偶数の場合は、続行する前に 1 を加算します)。
追加のコメント:印刷上の省略記号を作成するために、...
のすべてのインスタンスを に置き換えます。また、挿入される余分なスペースを回避するために、3 つの記号を中括弧で囲みます。\dots
:
\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
、ドキュメントを注意深く読んでください。列の内容を揃える方法については、かなり面白いアイデアがあります。列を埋める内容を慎重に選択する必要があります。少し実験すると (スペースのみのため、ダミーの列もいくつか)、希望する結果が得られます。