我尝试在 beamer 文件中使用 prooftrees。是否有一个选项可以淡入 prooftree 的每一层,而无需使用多个框架?在下面的代码框中,我使用了 \visible<>{},但它只显示整个证明树。Best Nils
\documentclass{beamer}
\usepackage{bussproofs}
\begin{document}
\begin{frame}
\begin{prooftree}
\visible<3-> {
\AxiomC{an axiom}
\LeftLabel{some label}}
\visible<2-> {
\UnaryInfC{some text}
\LeftLabel{another label}}
\UnaryInfC{more text }
\end{prooftree}
\end{frame}
\end{document}
答案1
\noLine 命令可用于隐藏线条,以下是一个工作示例:
\documentclass{beamer}
\usepackage{bussproofs}
\begin{document}
\begin{frame}
\begin{prooftree}
\AxiomC{\uncover<3->{an axiom}}
\only<-2>{\noLine}
\LeftLabel{\uncover<3->{some label}}
\UnaryInfC{\uncover<2->{some text}}
\only<1>{\noLine}
\LeftLabel{\uncover<2->{another label}}
\UnaryInfC{more text }
\end{prooftree}
\end{frame}
\end{document}
答案2
如果您不介意这些行从一开始就可见,您可以将覆盖指令移动到prooftree
宏的参数内:
\documentclass{beamer}
\usepackage{bussproofs}
\setbeamercovered{transparent}
\begin{document}
\begin{frame}
\begin{prooftree}
\AxiomC{\uncover<3->{an axiom}}
\LeftLabel{\uncover<3->{some label}}
\UnaryInfC{\uncover<2->{some text}}
\LeftLabel{\uncover<2->{another label}}
\UnaryInfC{more text }
\end{prooftree}
\end{frame}
\end{document}
答案3
基于这个巧妙的答案,我使用 beamer\renewcommand<>
来自动化并使代码更漂亮。
这\ignorespaces
是为了防止在隐藏线条的覆盖层上出现虚假的水平空间;的定义也\noLine
以 结尾。\ignorespaces
重新定义\buildNoScore
,用于制作“无线条”,是为了模仿\buildSingleScore
和 的定义,以避免各个覆盖层之间的垂直空间变化。
\documentclass{beamer}
\usepackage{bussproofs}
\renewcommand<>\LeftLabel[1]{\beameroriginal{\LeftLabel}{\uncover#2{#1}}}
\renewcommand<>\UnaryInfC[1]{\alt#2{\ignorespaces}{\noLine}\beameroriginal{\UnaryInfC}{\uncover#2{#1}}}
\renewcommand<>\BinaryInfC[1]{\alt#2{\ignorespaces}{\noLine}\beameroriginal{\BinaryInfC}{\uncover#2{#1}}}
\renewcommand<>\AxiomC[1]{\alt#2{\ignorespaces}{\noLine}\beameroriginal{\AxiomC}{\uncover#2{#1}}}
\def\buildNoScore{%
\displace=\curScoreEnd%
\advance \displace by -\curScoreStart%
\global\setbox \myBoxD =%
\hbox to \displace{\vbox{\vskip.4pt}}%
}
\begin{document}
\begin{frame}
\begin{prooftree}
\AxiomC<6->{}
\LeftLabel<6->{Ax}\UnaryInfC<5->{$\phi\land\psi\vdash\phi\land\psi$}
\LeftLabel<5->{E$\land_2$}\UnaryInfC<4->{$\phi\land\psi\vdash\psi$}
\AxiomC<7->{}
\LeftLabel<7->{Ax}\UnaryInfC<7->{$\phi\land\psi\vdash\phi\land\psi$}
\LeftLabel<7->{E$\land_1$}\UnaryInfC<4->{$\phi\land\psi\vdash\phi$}
\LeftLabel<3->{(I$\land$)}\BinaryInfC<2->{$\phi\land\psi\vdash\psi\land\phi$}
\end{prooftree}
\end{frame}
\end{document}