我正在使用包bussproofs
来绘制连续的微积分风格证明。证明通常很长,我想缩放它们,但我做不到。出现了一个无意义的错误:
!LaTeX 错误:出现错误 — — 可能缺少 \item。
如您所见,扩展和prooftree
环境是分开工作的,但不能协同工作。
bussproofs
你对如何扩展 prootrees 有什么建议吗?指南中没有相关信息。
\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}
答案1
在下面的例子中,我定义了一个scprooftree
环境,它具有要使用的比例因子作为强制参数;这个环境是对的简单修改,prooftree
如在中实现的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}
最初的问题是由于prooftree
环境使用center
环境而产生的;尝试执行类似以下操作会触发相同的错误
\scalebox{0.6}{\begin{center}A\end{center}}
解决方案是缩放对象并然后用来center
将其居中。另一个选择是使用 来\vbox
框住整个prooftree
环境,然后对其进行缩放。
答案2
将 prooftree 环境放入 \parbox 中也能解决问题,但是默认居中会丢失,用户应使用 \parbox 的宽度值和居中环境将其居中。
\scalebox{.6}{
\parbox{1cm}{
\begin{prooftree}
\AxiomC{A}
\AxiomC{B}
\BinaryInfC{C}
\end{prooftree}}
}