我在 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}