在下面的代码中
\begin{align*}
[x \mapsto s]x &= s \\
[x \mapsto s]y &= y \qquad \text{als } y\neq x \\
[x \mapsto s](\la{y}t_1) &= \la{y}[x \mapsto s]t_1 \qquad \text{als } y \neq x \text{ en } y \not \in FV(s) \\
[x \mapsto s](t_1 \; t_2)&= ([x \mapsto s]t_1)\;([x \mapsto s]t_2)
\end{align*}
我目前只对齐 = 符号。但是,是否也可以在环境中的多个位置对齐?我还希望对齐 \text,以及每个新行的开头。
答案1
alignat
使用来自的环境获得表达式之间没有间隙的多个对齐点amsmath
。以下 MWE 说明:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{alignat*}{3}
&[x \mapsto s]x &&= s && \\
&[x \mapsto s]y &&= y \qquad &&\text{als } y\neq x \\
&[x \mapsto s](\lambda(y)t_1) &&= \lambda(y)[x \mapsto s]t_1 \qquad &&\text{als } y \neq x \text{ en } y \not \in FV(s) \\
&[x \mapsto s](t_1 \; t_2)&&= ([x \mapsto s]t_1)\;([x \mapsto s]t_2) &&
\end{alignat*}
\end{document}
我已擅自将未知的\la{<arg>}
宏转换为\lambda(<arg>)
。
考虑读一下赫伯特的mathmode
文档。它清楚地说明了各种“对齐环境” amsmath
。具体来说,请参阅25align
种环境,第 43 页起。
答案2
使用 justalign
可以像这样完成:
\documentclass{article}
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\begin{document}
\begin{align*}
[x \mapsto s]x &= s \\
[x \mapsto s]y &= y &&\text{als } y\neq x \\
[x \mapsto s](\lambda(y)t_1) &= \lambda(y)[x \mapsto s]t_1 &&\text{als } y \neq x \text{ en } y \not \in FV(s) \\
[x \mapsto s](t_1 \; t_2) &= (x \mapsto s]t_1)\;([x \mapsto s]t_2)
\end{align*}
\end{document}
得出以下结果:
答案3
上述建议(例如 )alignat
都会为每一行生成一个参考编号。如果您需要通过一个编号引用整个块,请使用alignedat
在equation
环境中:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
% see other answer
\begin{alignat}{3}
&[x \mapsto s]x &&= s && \\
&[x \mapsto s]y &&= y \qquad &&\text{als } y\neq x \\
&[x \mapsto s](\lambda(y)t_1) &&= \lambda(y)[x \mapsto s]t_1 \qquad &&\text{als } y \neq x \text{ en } y \not \in FV(s) \\
&[x \mapsto s](t_1 \; t_2)&&= ([x \mapsto s]t_1)\;([x \mapsto s]t_2) &&
\end{alignat}
\begin{equation}
\begin{alignedat}{3}
&[x \mapsto s]x &&= s && \\
&[x \mapsto s]y &&= y \qquad &&\text{als } y\neq x \\
&[x \mapsto s](\lambda(y)t_1) &&= \lambda(y)[x \mapsto s]t_1 \qquad &&\text{als } y \neq x \text{ en } y \not \in FV(s) \\
&[x \mapsto s](t_1 \; t_2)&&= ([x \mapsto s]t_1)\;([x \mapsto s]t_2) &&
\end{alignedat}
\end{equation}
\end{document}