允许定理在投影仪中分成多个框架

允许定理在投影仪中分成多个框架

如果一个框架中所需的垂直空间不够,那么如何将类似定理的环境(自动)分成多个框架?

在我的文件序言中

\theoremstyle{definition}
\newtheorem{exercise}{Exercício}

文档中给定的框架有一个exercise不适合单个框架的环境。所以我想将它分成多个框架。

有什么线索吗?

答案1

通常你可以使用beamerallowframebreaks如果一个框架的内容不适合一个框架,则可以自动拆分该框架:

\begin{frame}[allowframebreaks]
  ...
\end{frame}

遗憾的是,这不适用于定理类环境,原因是beamercolorbox默认情况下这些是使用 a 排版的。 a 的内容beamercolorbox集中在一个无法跨框架拆分的单个框中。

目前我只看到两种克服这一问题的可能性:

  1. 使定理环境不使用beamercolorbox内容。这可以通过重新定义 beamer 模板theorem begin和来实现theorem end

    \documentclass{beamer}
    \theoremstyle{definition}
    \newtheorem{exercise}{Exercício}
    \setbeamertemplate{theorem begin}
    {%
      \par\vskip\medskipamount%
      \begin{beamercolorbox}[colsep*=.75ex]{block title}
        \usebeamerfont*{block title}%
          \inserttheoremname
          \ifx\inserttheoremaddition\empty\else\ (\inserttheoremaddition)\fi%
      \end{beamercolorbox}%
      {\parskip0pt\par}%
      \ifbeamercolorempty[bg]{block title}
      {}
      {\ifbeamercolorempty[bg]{block body}{}{\nointerlineskip\vskip-0.5pt}}%
      \usebeamerfont{block body}%
      \vskip-.25ex\vbox{}%
    }
    \setbeamertemplate{theorem end}{}
    \usepackage{lipsum}
    \begin{document}
    \begin{frame}[allowframebreaks]
    \begin{exercise}
    \lipsum[1]
    \lipsum[2]
    \end{exercise}
    \end{frame}
    \end{document}
    

    (这lipsum用于创建虚拟文本,您可以删除它并将其替换为自己的内容。

    但请注意,如果您使用的主题具有彩色背景,这可能会大大改变定理的外观。对于像默认主题这样的朴素主题,Montpellier它应该完全没问题。

  2. 您可以手动发出帧中断。为此,定义一个新宏\theorembreak来结束当前beamercolorbox,开始一个新帧和一个新的beamercolorbox

    \documentclass{beamer}
    \theoremstyle{definition}
    \newtheorem{exercise}{Exercício}
    \newcommand*{\theorembreak}{\usebeamertemplate{theorem end}\framebreak\usebeamertemplate{theorem begin}}
    \usepackage{lipsum}
    \begin{document}
    \begin{frame}[allowframebreaks]
    \begin{exercise}
    \lipsum[1]
    \theorembreak
    \lipsum[2]
    \end{exercise}
    \end{frame}
    \end{document}
    

    为定理手动断框(使用 beamer 主题 Ilmenau)

    这样做的好处是你可以保留定理的精确风格,但却迫使你手动进行打破。

答案2

由于定理类结构使用beamercolorboxallowframebreaks因此在这种情况下直接使用选项不起作用。一种解决方法是使用 来“模拟”定理类标题,beamercolorbox然后使用选项在框外写文本allowframebreaks

\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage{lipsum}

\begin{document}

\begin{frame}[allowframebreaks=0.8]

\begin{beamercolorbox}{section in head/foot}
Exercício
\end{beamercolorbox}{}
\lipsum[1-2]
\end{frame}

\end{document}

在此处输入图片描述

相关内容