在对齐环境中使用“=”对齐进行左对齐

在对齐环境中使用“=”对齐进行左对齐

我在 tex.stackexchange 档案中搜索了这个问题的答案,但没有找到。不过,我认为这是一个常见问题。

我经常想将文本对齐为环境开源TeX。 例如:

e(x)      = x
e(M N)    = e(M) e(N)
e(λx:τ.M) = λx:τ.e(M)
e(λ_:τ.M) = λx:τ.e(M)  (x ∉ FV(M))

我看到的解决方案是使用 tabular 环境、eqnarray 或 align。但是,align 和 eqnarray 创建的列间距太远,而 tabular 有类似但不太严重的间距问题。

这个问题有简单的解决办法吗?布局很常见,所以我假设有。

答案1

alignat来自数学可以做到这一点。

\documentclass{article}
\usepackage{amsmath}

\begin{document}
  \begin{alignat}{2}
    & e(x)                &&= x\\
    & e(M N)              &&= e(M) e(N)\\
    & e(\lambda x:\tau.M) &&= \lambda x:\tau.e(M)\\
    & e(\lambda\_:\tau.M) &&= \lambda x:\tau .e(M)  (x \notin FV(M))
  \end{alignat}
\end{document}

答案2

根据手册,lhsTeXpoly环境使用polytable包裹内部。所以我可能该包提供了您正在寻找的表格格式。

答案3

您可以使用数组:

\documentclass{article}
\begin{document}
\[\begin{array}{ll}
e(x)      &= x\\
e(M N)    &= e(M) e(N)\\
e(\lambda x:\tau.M) &= \lambda x:\tau.e(M)\\
e(\lambda\_:\tau.M) &= \lambda x:\tau .e(M)  (x \notin FV(M))\\
\end{array}\]
\end{document}

如果间距太大,请使用@分隔符来指定列规范,例如,\begin{array}{l@{\,}l}

相关内容