我正在尝试重现一些非常古老的文章,以用于选集。其中一些文章将某些推理规则作为序列演算中的证明,但将它们与方程一起编号,使用与方程相同的编号样式。通常,我在这种证明环境中使用 bussproofs,但 bussproofs 仅允许在证明树中的推理线旁边进行编号。如果 bussproofs 可在方程环境中使用,我正在寻找的内容将是这样的:
\begin{equation*}\tag{I1}
\begin{prooftree}
\AxiomC{$A \land B$}
\UnaryInfC{$A$}
\end{prooftree}
\end{equation*}
但是,当我生成 PDF 时,这当然会出错,因为 bussproofs 证明树不能以这种方式嵌入到其他环境中(或者可以,但我不知道有什么技巧?)。关于如何才能得到我想要的结果,有什么建议吗?
答案1
这是一个新的环境,您应该能够在数学对齐环境中相当安全地使用它:
\documentclass{article}
\usepackage{amsmath,varwidth,bussproofs}
\usepackage{lipsum} % mock text, just for testing
\newenvironment{mathprooftree}
{\varwidth{.9\textwidth}\centering\leavevmode}
{\DisplayProof\endvarwidth}
\begin{document}
\lipsum*[2]
\begin{equation}\tag{I1}
\begin{mathprooftree}
\AxiomC{$A \land B$}
\UnaryInfC{$A$}
\end{mathprooftree}
\end{equation}
\lipsum[2]
\end{document}
我们只需做bussproofs
除了垂直空间(已由equation
或类似环境处理)之外的事情,将结果封闭在一个varwidth
仅使用最小水平尺寸来保存证明树的环境中(作为最大值,我设置了文本宽度的 90%,以始终有数字或标签的空间)。
equation
请注意,如果您指定了\tag
(这是一个方便的功能),则可以不用 *。