Beamer:模式*和自己的框架定义

Beamer:模式*和自己的框架定义

假设我使用我自己对问题框架的定义,类似于

\documentclass{beamer}
\usetheme{Malmoe}

\newcommand{\questionframe}[2]{
    \frame[c,plain]{
        \centering\huge
        \textbf{\structure{#1}}
        \par\bigskip
        #2
    }
}
\begin{document}
\questionframe{Here is the question?}{And corresponding explanation}
\end{document}

但是,在\mode*对我的环境非常有用的 中,这些框架将被忽略。摘自文档:

文本被逐个吞噬209个标记,直到找到以下标记之一:,,,,,,,,,, \mode和(最后 两个是真正的标记,但它们无论如何都会被识别\frame\againframe\part\section\subsection\appendix\note\begin{frame}\end{document}

调和两者的最简单的方法是什么 - 即强迫投影仪在相遇时停止吞噬\questionframe

答案1

你可以尝试一下

\documentclass{beamer}
\usetheme{Malmoe}

\newcommand{\questionframe}[2]{
    \frame[c,plain]{
        \centering\huge
        \textbf{\structure{#1}}
        \par\bigskip
        #2
    }
}
%
\usepackage{etoolbox}

\makeatletter
\preto\beamer@treat{\ifx\beamer@nexttoken\questionframe\let\next=\beamer@stopoutsidemode\fi}{}{}
\makeatother
\begin{document}
\mode*

\questionframe{Here is the question?}{And corresponding explanation}

\begin{frame}
abc
\end{frame}
\end{document}

相关内容