我想用花括号和一些文本在左侧注释一个 ebproof 证明树,如下图所示:
我通常会用 来做这件事\text{Premises} \left\{ ... \right.
,但我不知道如何对证明树的两个部分(必须在同一prooftree
环境中)做到这一点。我不希望将注释作为前提或结论的一部分,因为这样证明树分隔符就会位于注释之间(如这问题)。
使用 ebproof 包可以实现这一点吗,或者您将如何排版这样的内容?
我现在有的是:
\documentclass{article}
\usepackage{ebproof}
\begin{document}
\begin{prooftree}
\hypo{\text{Premises} \left\{ G; L \vdash e : \code{bool} \right.}
\hypo{G; L; \texttt{rt} \vdash s_1}
\hypo{G; L; \texttt{rt} \vdash s_2}
\infer{3}[\textsc{If\_Else}]{\text{Conclusion} \left\{ G; L; \texttt{rt} \vdash \texttt{if $(e)$ $s_1$ else $s_2$} \right.}
\end{prooftree}
\end{document}
产生
我希望“前提”和“结论”位于证明树线的左边。
答案1
您可以使用\tikzmark
s,但在这种情况下它可能有点太复杂了:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{tikzmark, decorations.pathreplacing}
\usepackage{ebproof}
\begin{document}
\begin{prooftree}
\hypo{ \tikzmark{top} \Gamma, A &\vdash B }
\infer1[abs]{ \Gamma &\vdash A\to B }
\hypo{ \Gamma \vdash A }
\infer[left label=\tikzmark{mid}]2[app]{ \tikzmark{bot} \Gamma \vdash B }
\end{prooftree}
\begin{tikzpicture}[remember picture, overlay]
\coordinate (brace anchor) at ([xshift=-5pt, yshift=.75em]pic cs:top);
\draw[decorate, decoration={brace, mirror}]
(brace anchor) -- ([yshift={.5ex+2pt}]brace anchor |- {pic cs:mid})
node[left, midway, xshift=-5pt] {Premises};
\draw[decorate, decoration={brace, mirror}]
([yshift={.5ex-2pt}]brace anchor |- {pic cs:mid}) -- (brace anchor |- {pic cs:bot})
node[left, midway, xshift=-5pt] {Conclusion};
\end{tikzpicture}
\end{document}