来自“cases”环境中 bussproofs 包的 prooftree

来自“cases”环境中 bussproofs 包的 prooftree

我正在使用bussproofs包来提供一些类型证明。根据bussproofs手册,无法prooftree在数学模式中使用。但是,我想插入prooftreecases环境中。有什么技巧可以克服这个问题吗?

最小工作示例:

\documentclass{article}
\usepackage{amssymb,amsmath}
\usepackage{bussproofs}
\begin{document}
    \[\epsilon=
    \begin{cases}
        \AxiomC{$\alpha$}
        \UnaryInfC{$\beta$}
        \DisplayProof
        %\begin{prooftree}
            %\AxiomC{$\alpha$}
            %\AxiomC{$\beta$}
            %\BinaryInfC{$\gamma$}
        %\end{prooftree}
    \end{cases}\]
\end{document}

我希望注释部分也能编译。

答案1

使用时bussproofs虽然可以将逻辑证明简化为独立环境,但当事情变得更加复杂时,您必须小心处理它。一般来说,如果您能够装箱并存储内容,那么您可以随时在更复杂的结构中使用这个盒子。

但是,另一种选择是完全避免使用该bussproofs包,并坚持使用传统array结构来匹配您的逻辑表达式:

在此处输入图片描述

\documentclass{article}
\usepackage{amssymb,amsmath}% http://ctan.org/pkg/{amssymb,amsmath}
\usepackage{bussproofs,varwidth}% http://ctan.org/pkg/{bussproofs,varwidth}
\newsavebox{\mypt}
\begin{document}
\begin{lrbox}{\mypt}% Store prooftree in \mypt
\begin{varwidth}{\linewidth}
\begin{prooftree}
  \AxiomC{$\alpha$}
  \AxiomC{$\beta$}
  \BinaryInfC{$\gamma$}
\end{prooftree}
\end{varwidth}
\end{lrbox}

\[
  \epsilon =
    \begin{cases}
      \AxiomC{$\alpha$}
      \UnaryInfC{$\beta$}
      \DisplayProof & \text{ if $x$} \\
      \usebox{\mypt} & \text{ if $y$}
    \end{cases}
\]

\hrulefill

\[
  \epsilon = \left\{\begin{array}{@{}l@{}l@{}}
    \dfrac{~\alpha~}{\beta} & \text{ if $x$} \\
    \dfrac{~\alpha \qquad \beta~}{\gamma} & \text{ if $y$}
  \end{array}\right.
\]
\end{document}

此时,这是一个关于间距的问题,尽管输出的结构与 非常相似bussproofs

相关内容