我在用着bussproofs
并且希望我的前提始终与推理线的开头左对齐。到目前为止,当我有一个前提推理时,我只能将前提置于推理线的中心,如下所示:
\documentclass{article}
\usepackage{bussproofs}
\begin{document}
\begin{prooftree} \AxiomC{$\neg A$} \UnaryInfC{$\neg A \lor \neg B$} \end{prooftree}
\end{document}
是否可以让前提与线保持对齐?
答案1
这里有两个选项:
将较小的框(您的前提
\AxiomC
)放置在与较大的框(您的结论)宽度相同的框中\UnaryInfC
,仅左对齐。这可以使用\makebox[<width>][l]{...}
; 或用于从显示中
\phantom{<stuff>}
移除<stuff>
但仍为其分配适当的空间。
\documentclass{article}
\usepackage{bussproofs}% http://ctan.org/pkg/bussproofs
\newlength{\mylen}
\begin{document}
\begin{prooftree}
\settowidth{\mylen}{$\neg A \lor \neg B$}%
\AxiomC{\makebox[\mylen][l]{$\neg A$}}
\UnaryInfC{$\neg A \lor \neg B$}
\end{prooftree}
\begin{prooftree}
\AxiomC{$\neg A \phantom{\:{\lor}\:\neg B}$}
\UnaryInfC{$\neg A \lor \neg B$}
\end{prooftree}
\end{document}
在第一个例子中,结论的宽度\mylen
通过存储在(新的长度)中\settowidth
。\mylen
然后用于提供前提的盒子宽度。
在第二个例子中,通过在现在原子化的周围添加,对二元运算符周围的间距\lor
进行了微小的修正。\:
{\lor}
答案2
在 bussproof 中,使用顺序对齐样式(rtfm:第 3 节)默认可实现此目的,命令相同,只是最后的“C”不同,它们的参数不用括号括起来,并且命令\fCenter
标记了对齐点。
\documentclass{article}
\usepackage{bussproofs}
\begin{document}
\begin{prooftree}
\Axiom$\fCenter\neg A$
\UnaryInf$\fCenter\neg A \lor \neg B$
\end{prooftree}
\end{document}
會做你想做的事。
答案3
您还可以\kernHyps{kern}
在推理命令之前使用,将该推理的假设推动克恩. 例如 .1in 或 -.1in。
\documentclass{article}
\usepackage{bussproofs}
\begin{document}
\begin{prooftree} \AxiomC{$\kernHyps{-.18in}\neg A$} \UnaryInfC{$\neg A \lor \neg B$} \end{prooftree}
\end{document}
这将给你