# Proofs in Beamer

I'm writing a presentation in Beamer, where I present proofs which are longer than one frame. How to make Beamer to break it automatically to another frame? If it is not possible how am I supposed to remove the square (the end of proof) and put it in a right place in another frame?

-
Please check for the allowframebreaks option in the manual –  percusse Aug 9 '12 at 21:49
@percusse I don't think allowframebreaks will work when using the proof environment. –  Gonzalo Medina Aug 10 '12 at 0:00
@GonzaloMedina Indeed, you are right. That was a tongue-in-cheek comment as I wasn't sure if that would do it.. –  percusse Aug 10 '12 at 0:35

If you are using the proof environment, then I am afraid that there's no automatic way to break the text (allowframebreaks won't work here, since we're dealing with a block).

You can define an environment that behaves as proof, but without using the end-mark; you then can use this new environment for the first frames of the proof and then, use the standard proof environment for the last frame; here's an example of the definition of such environment (which I called proofs) and its ussage:

\documentclass{beamer}
\usetheme{Warsaw}
\usepackage{lipsum}

\makeatletter
\newenvironment<>{proofs}[1][\proofname]{%
\par
\usebeamertemplate{proof begin}#2}
{\usebeamertemplate{proof end}}
\makeatother

\begin{document}

\begin{frame}
\begin{proofs}
\lipsum[1]
\end{proofs}
\end{frame}

\begin{frame}
\begin{proofs}[\proofname\ (Cont.)]
\lipsum[1]
\end{proofs}
\end{frame}

\begin{frame}
\begin{proof}[\proofname\ (Cont.)]
\lipsum[1]
\end{proof}
\end{frame}

\end{document}


As requested in a comment, I have defined now three new environments: proofs, which uses a block with title given by \insertproofname (default "Proof") and suppresses the end-mark; proofc, which suppresses both the title and the end-mark, and proofe which suppresses the title but adds the end-mark; the first environment is to be used to start the proof, the second one, to continue the proof, and the third one, to end the proof:

\documentclass{beamer}
\usetheme{Warsaw}
\usepackage{lipsum}

\makeatletter
\newenvironment<>{proofs}[1][\proofname]{%
\par
\usebeamertemplate{proof begin}#2}
{\usebeamertemplate{proof end}}
\newenvironment<>{proofc}{%
\setbeamertemplate{proof begin}{\begin{block}{}}
\par
\usebeamertemplate{proof begin}}
{\usebeamertemplate{proof end}}
\newenvironment<>{proofe}{%
\par
\pushQED{\qed}
\setbeamertemplate{proof begin}{\begin{block}{}}
\usebeamertemplate{proof begin}}
{\popQED\usebeamertemplate{proof end}}
\makeatother

\begin{document}

\begin{frame}
\begin{proofs}
\lipsum[1]
\end{proofs}
\end{frame}

\begin{frame}
\begin{proofc}
\lipsum[1]
\end{proofc}
\end{frame}

\begin{frame}
\begin{proofe}
\lipsum[1]
\end{proofe}
\end{frame}

\end{document}

-
Thank you, probably the only possible solution. Would it be possible to modify it? I would prefer to have no name such as Proof (Cont.) on the second, third and so on slides..only Proof on the first slide and the square on the last slide. –  Laura Aug 10 '12 at 15:41
@Laura sure; I've updated my answer implementing the necessary environments. On a side note, don't forget to accept my answer if you consider it solved your problem; in case of doubt on how/why to accept answers, plese see How do you accept an answer?. –  Gonzalo Medina Aug 10 '12 at 16:41