# How to scale prooftree environment (bussproofs package)

I am using package bussproofs in order to draw sequent calculus style proofs. The proofs are often lengthy and would like to scale them but I can not do it. There is an uninformative error raised:

! LaTeX Error: Something's wrong--perhaps a missing \item.

As you can see scaling and prooftree environments work separately, but not together.

Do you have any suggestions how to scale prootrees? There is no information about it in bussproofs guide.

\documentclass[]{beamer}
\usepackage{graphicx}
\usepackage{bussproofs}
\usepackage{amssymb}
\begin{document}

\begin{frame}

\begin{prooftree}
\AxiomC{A}
\AxiomC{B}
\BinaryInfC{C}
\end{prooftree}

\scalebox{.6}{The problem}

\scalebox{.6}{
\begin{prooftree}
\AxiomC{A}
\AxiomC{B}
\BinaryInfC{C}
\end{prooftree}
}

\end{frame}

\end{document}

-
Welcome to TeX.sx! Since it's first Q – texenthusiast Mar 27 '13 at 15:14
If you're not fully forced to use bussproofs, an ordinary array environment will also do. See prooftree from bussproofs package inside cases environment. It makes life simpler, if you're willing to manage some of the spacing yourself. – Werner Mar 28 '13 at 19:18

In the following example I defined a scprooftree environment having as mandatory argument the scale factor to be used; this environment is a simple modification of prooftree as implemented in bussproofs.sty:

\documentclass[]{beamer}
\usepackage{graphicx}
\usepackage{bussproofs}
\usepackage{amssymb}

\newenvironment{scprooftree}[1]%
{\gdef\scalefactor{#1}\begin{center}\proofSkipAmount \leavevmode}%
{\scalebox{\scalefactor}{\DisplayProof}\proofSkipAmount \end{center} }

\begin{document}

\begin{frame}
\begin{prooftree}
\AxiomC{A}
\AxiomC{B}
\BinaryInfC{C}
\end{prooftree}
\scalebox{.6}{No problem anymore}
\begin{scprooftree}{0.6}
\AxiomC{A}
\AxiomC{B}
\BinaryInfC{C}
\end{scprooftree}
\begin{scprooftree}{2}
\AxiomC{A}
\AxiomC{B}
\BinaryInfC{C}
\end{scprooftree}
\end{frame}

\end{document}


The original problem is originated because prooftree environment uses the center environment; the same error will be triggered by trying to do something like

\scalebox{0.6}{\begin{center}A\end{center}}


The solution scales the object and then uses center to center it. Another option would have been to use a \vbox to box the entire prooftree environment and then to scale it.

-

Putting the prooftree environment in \parbox also solves the problem but the default centering is lost and a user should center it using width value of \parbox and centering environment.

\scalebox{.6}{
\parbox{1cm}{
\begin{prooftree}
\AxiomC{A}
\AxiomC{B}
\BinaryInfC{C}
\end{prooftree}}
}

-