答案1
这很容易bussproofs
;最难的部分是获得对齐。
\documentclass{article}
\usepackage{amsmath}
\usepackage{array}
\usepackage{bussproofs}
\begin{document}
\[
\begin{tabular}{@{} l >{\centering\arraybackslash}m{.7\textwidth} @{}}
\textsc{Scope} &
\begin{prooftree}
\AxiomC{$A \xrightarrow{\alpha} A'$}
\AxiomC{$u$ does not occur in $\alpha$}
\BinaryInfC{$\nu u.A \xrightarrow{\alpha} \nu u.A'$}
\end{prooftree}
\\
\textsc{Par} &
\begin{prooftree}
\AxiomC{$A \xrightarrow{\alpha} A'$}
\AxiomC{$\mathit{bv}(\alpha)\cap\mathit{fv}(B)=\mathit{bn}(\alpha)\cap\mathit{fn}(B)=\emptyset$}
\BinaryInfC{$A\mid B \xrightarrow{\alpha} A'\mid B$}
\end{prooftree}
\end{tabular}
\]
\end{document}
另一种解决方案,它还提供了一个boxedprooftree
可以在任何地方使用的环境。它有一个用于垂直对齐的可选参数,就像或一样tabular
:\parbox
它可以是t
或b
用于顶部或底部对齐(默认c
为垂直居中)。
\documentclass{article}
\usepackage{amsmath}
\usepackage{bussproofs}
\newenvironment{boxedprooftree}[1][c]
{\begin{tabular}[#1]{@{}c@{}}}
{\DisplayProof\end{tabular}}
\begin{document}
\[
\begin{tabular}{@{} l c @{}}
\textsc{Scope} &
\begin{boxedprooftree}
\AxiomC{$A \xrightarrow{\alpha} A'$}
\AxiomC{$u$ does not occur in $\alpha$}
\BinaryInfC{$\nu u.A \xrightarrow{\alpha} \nu u.A'$}
\end{boxedprooftree}
\\[3ex]
\textsc{Par} &
\begin{boxedprooftree}
\AxiomC{$A \xrightarrow{\alpha} A'$}
\AxiomC{$\mathit{bv}(\alpha)\cap\mathit{fv}(B)=\mathit{bn}(\alpha)\cap\mathit{fn}(B)=\emptyset$}
\BinaryInfC{$A\mid B \xrightarrow{\alpha} A'\mid B$}
\end{boxedprooftree}
\end{tabular}
\]
\end{document}
答案2
答案3
这是改编自egreg 的回答使用ebproof
受到启发bussproofs
并且具有相当相似的语法。
\documentclass{article}
\usepackage{amsmath}
\usepackage{ebproof}
\begin{document}
\begin{prooftree*}
\Hypo{A \xrightarrow{\alpha} A'}
\Hypo{u \text{ does not occur in } \alpha}
\Infer[left label={\textsc{Scope}}]2{\nu u.A \xrightarrow{\alpha} \nu u.A'}
\end{prooftree*}
\begin{prooftree*}
\Hypo{A \xrightarrow{\alpha} A'}
\Hypo{\mathit{bv}(\alpha)\cap\mathit{fv}(B)=\mathit{bn}(\alpha)\cap\mathit{fn}(B)=\emptyset}
\Infer[left label={\textsc{Par}}]2{A\mid B \xrightarrow{\alpha} A'\mid B}
\end{prooftree*}
\end{document}
带星号的环境版本相当于将无星号的版本包装在center
环境中。该环境可用于文本或数学模式。