我正在尝试使用该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。在下面的例子中,&
符号的最大数量为 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
,并仔细阅读文档。它对如何对齐列内容的想法相当有趣,您必须小心选择要填充的内容。进行一些实验(以及一些虚拟列,可能仅用于间隔)将获得您想要的结果。