ebproof 和 Gentzen 风格的证明:如何局部改变分支的水平分离?

ebproof 和 Gentzen 风格的证明:如何局部改变分支的水平分离?

包裹ebproof是一种写作方式Gentzen 风格的形式化证明在 LaTeX 中。例如,使用 可以完成以下操作ebproof

Genzen 树示例

当然,蓝色轮廓是后来添加的。

问:如何将图中蓝色圆圈内的分支向左移动/移动?两个主分支之间的水平间距太长。我想更改仅此一家水平间距。使用选项“separation=1em”会全局更改间距,但在本例中这不是一个选项(会导致右侧分支上半部分重叠)。

  • 它应该是一个“刚性变换”,即应该保留其他尺寸、长度和角度。
  • 当右侧分支向左移动时,下方的推理线应该相应“缩放”(缩短)。
  • 理想情况下,当代码包装在里面时,解决方案仍然有效,sidewaysfigure如下面的 MWE 所示(取消注释适当的行和包)。

\documentclass{book}

\usepackage{amsmath}
\usepackage{ebproof} %for Gentzen-style proofs
\ebproofset{right label template=\scriptsize\inserttext}
%\usepackage{rotating} %for sidewaysfigure
%\usepackage[a4paper]{geometry}

\begin{document}

    %\begin{sidewaysfigure}
    \footnotesize
            \[ \begin{prooftree}[separation=1em]
            \hypo {A} %left-hand branch leaf
            \infer1[\tiny \text{(rule)}]{A} %left-hand branch node
            \hypo {ABCDEFGHIJKLMNOPQRTUVWXYZ} %right-hand branch leaf
            \infer1[\tiny \text{(rule)}]{ABCDEFGHIJKL} %right-hand branch node
            \hypo {0123456789ABCDEFGHIJKLMNOPQRTUVWXYZ} %right-hand branch leaf
            \infer2[\tiny \text{(rule)}]{ABCDEFGHIJKL} %right-hand branch node
            \infer1[\tiny \text{(rule)}]{A} %right-hand branch node
            \infer1[\tiny \text{(rule)}]{A} %right-hand branch node
            \infer1[\tiny \text{(rule)}]{A} %right-hand branch node
            \infer2[\tiny \text{(rule)}]{ABC} %root
            \end{prooftree} \]
    %\end{sidewaysfigure}
    
\end{document}

答案1

您可以separation通过将选项作为选项插入到相关\infer宏中,将其插入表示参数数的数字之前(例如),来本地更改选项\infer[separation=1em]1{X}。无论旋转和放置如何,这都可以正常工作。在您的例子中,为了将右树移到左树上,您可以对使用负值separation

您可能希望right label template=\tiny\inserttext在任何地方都设置字体大小,而不是覆盖字体大小。此外,如果您想将图表居中,最好使用\centering而不是某些这里不需要的数学模式构造。

\documentclass{book}

\usepackage[a4paper]{geometry}
\usepackage{rotating} %for sidewaysfigure
\usepackage{amsmath}
\usepackage{ebproof} %for Gentzen-style proofs
\ebproofset{right label template=\tiny\inserttext}

\begin{document}

    \begin{sidewaysfigure}
    \footnotesize\centering
        \begin{prooftree}[separation=1em]
            \hypo {A} %left-hand branch leaf
            \infer1[\text{(rule)}]{A} %left-hand branch node
            \hypo {ABCDEFGHIJKLMNOPQRTUVWXYZ} %right-hand branch leaf
            \infer1[\text{(rule)}]{ABCDEFGHIJKL} %right-hand branch node
            \hypo {0123456789ABCDEFGHIJKLMNOPQRTUVWXYZ} %right-hand branch leaf
            \infer2[\text{(rule)}]{ABCDEFGHIJKL} %right-hand branch node
            \infer1[\text{(rule)}]{A} %right-hand branch node
            \infer1[\text{(rule)}]{A} %right-hand branch node
            \infer1[\text{(rule)}]{A} %right-hand branch node
            \infer[separation=-4em]2[\text{(rule)}]{ABC} %root
        \end{prooftree}
    \end{sidewaysfigure}
    
\end{document}

在此处输入图片描述

相关内容