我需要使用 的大型证明树bussproofs
,但布局似乎不是最佳的。特别是,包不会将树的节点放置在其他节点下方,这将节省大量水平空间。例如,在下图中,我希望将带圆圈的节点进一步移到左侧,使其大约位于标有 的节点下方Z(d)
。但是在bussproofs
文档中,我找不到允许这样做的任何选项。有什么方法可以做到这一点吗?
梅威瑟:
\documentclass{article}
\usepackage{bussproofs}
\newcommand{\AxiomCm}[1]{\AxiomC{$#1$}}
\newcommand{\BinaryInfCm}[1]{\BinaryInfC{$#1$}}
\newcommand{\UnaryInfCm}[1]{\UnaryInfC{$#1$}}
\begin{document}
\begin{prooftree}
\AxiomCm{ G(x, y) \lor L(x, y) \lor x = y }
\AxiomCm{ \lnot Z(z) \lor \lnot L(z, u) }
\BinaryInfCm{ G(x, y) \lor x=y \lor \lnot Z(x) }
\AxiomCm{ \lnot Z(w) \lor \lnot Z(f(w)) }
\AxiomCm{ Z(d)}
\BinaryInfCm{ \lnot Z(f(d)) }
\BinaryInfCm{ G(x, f(d)) \lor \lnot Z(x) \lor \lnot Z(x) }
\UnaryInfCm{ G(x, f(d)) \lor \lnot Z(x) }
\AxiomCm{ \lnot G(v, f(v)) }
\BinaryInfCm{ \lnot Z(d) }
\AxiomCm{ Z(d) }
\BinaryInfCm{ \bot }
\end{prooftree}
\end{document}
答案1
您可以使用\insertBetweenHyps
在特定推论的假设之间插入负空间。例如:
\documentclass{article}
\usepackage{bussproofs}
\newcommand{\AxiomCm}[1]{\AxiomC{$#1$}}
\newcommand{\BinaryInfCm}[1]{\BinaryInfC{$#1$}}
\newcommand{\UnaryInfCm}[1]{\UnaryInfC{$#1$}}
\begin{document}
\begin{prooftree}
\AxiomCm{ G(x, y) \lor L(x, y) \lor x = y }
\AxiomCm{ \lnot Z(z) \lor \lnot L(z, u) }
\BinaryInfCm{ G(x, y) \lor x=y \lor \lnot Z(x) }
\AxiomCm{ \lnot Z(w) \lor \lnot Z(f(w)) }
\AxiomCm{ Z(d)}
\BinaryInfCm{ \lnot Z(f(d)) }
\BinaryInfCm{ G(x, f(d)) \lor \lnot Z(x) \lor \lnot Z(x) }
\UnaryInfCm{ G(x, f(d)) \lor \lnot Z(x) }
\AxiomCm{ \lnot G(v, f(v)) }
\insertBetweenHyps{\hskip -50pt}
\BinaryInfCm{ \lnot Z(d) }
\AxiomCm{ Z(d) }
\BinaryInfCm{ \bot }
\end{prooftree}
\end{document}
将产生:
请参阅第 12 页本指南。