对齐环境中的间隔水平线

对齐环境中的间隔水平线

我正在尝试排版类型派生树。

% \usepackage{amsmath}
% \usepackage{amssymb}
\newcommand*{\stext}[1]{\text{ #1 }}
\newcommand*{\sd}[1]{\rule[-#1]{\textwidth}{0.4pt}}


\begin{align*}
    T \vartriangleright{} (\lambda x: num.\, \lambda y: num.\, x+y): num \rightarrow num \rightarrow num \qquad & T \vartriangleright{} 1 : num \sd{2ex} \\
    T \vartriangleright{} (\lambda x: num.\, \lambda y: num.\, x+y)\, 1: num \rightarrow num \rightarrow num \qquad & T \vartriangleright{} 5 : num \sd{2ex} \\
    T \vartriangleright{} (\lambda x: num.\, \lambda y: num.\, x+y)\, 1\enskip 5: num \rightarrow num \rightarrow num
\end{align*}      

结果看起来不太好:

行对齐错误

我真正想要的是这样的:

在此处输入图片描述

注意:

  1. 底线相对于环境中的其他线居中

  2. 水平分界线间距合适(垂直),从左侧开始,宽度正确

我也尝试过使用的方法\hline,但间距是不可接受的:

在此处输入图片描述

\newcommand*{\sd}{\hline}
\begin{align*}
    T \vartriangleright{} (\lambda x: num.\, \lambda y: num.\, x+y): num \rightarrow num \rightarrow num \qquad & T \vartriangleright{} 1 : num \\ \sd
    T \vartriangleright{} (\lambda x: num.\, \lambda y: num.\, x+y)\, 1: num \rightarrow num \rightarrow num \qquad & T \vartriangleright{} 5 : num \\ \sd
    T \vartriangleright{} (\lambda x: num.\, \lambda y: num.\, x+y)\, 1\enskip 5: num \rightarrow num \rightarrow num
\end{align*}

有没有更好的方法?align这里是否可以使用正确的环境?

答案1

您将\sd命令改为怎么样\newcommand*{\sd}{\\[-10pt]\hline\\[-10pt]}

输出

\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\begin{document}
\newcommand*{\sd}{\\[-10pt]\hline\\[-10pt]}
\begin{align*}
    T \vartriangleright{} (\lambda x: num.\, \lambda y: num.\, x+y): num \rightarrow num \rightarrow num \qquad & T \vartriangleright{} 1 : num \\ \sd
    T \vartriangleright{} (\lambda x: num.\, \lambda y: num.\, x+y)\, 1: num \rightarrow num \rightarrow num \qquad & T \vartriangleright{} 5 : num \\ \sd
    T \vartriangleright{} (\lambda x: num.\, \lambda y: num.\, x+y)\, 1\enskip 5: num \rightarrow num \rightarrow num
\end{align*}

\end{document}

答案2

基于的这个解决方案怎么样booktabs

\documentclass{report}
\usepackage{mathtools}
\usepackage{amssymb}
\usepackage{booktabs}

\begin{document}

\begin{align*}
    T & \vartriangleright{} (\lambda x: num.\, \lambda y: num.\, x+y): num \rightarrow num \rightarrow num & \quad & T \vartriangleright{} 1 : \\[-1.5ex]
    \cmidrule{1-4}
    T & \vartriangleright{} (\lambda x: num.\, \lambda y: num.\, x+y)\, 1: num \rightarrow num \rightarrow num & \quad & T \vartriangleright{} 5 : \\[-1.5ex]
    \cmidrule{1-4}
    T & \vartriangleright{} (\lambda x: num.\, \lambda y: num.\, x+y)\, 1\enskip 5: num \rightarrow num \rightarrow num
\end{align*}

\end{document} 

在此处输入图片描述

相关内容