由于我使用 beamer 的方式,我理想情况下不想使用 \begin{frame} 和 \end{frame} ,而是在每次开始新帧时仅使用命令 \fr。
使用这个答案,我现在拥有的是 \fr 和 \nofr 的组合,如下所示:
\newcommand{\fr}[1][]{%
\if\relax\detokenize{#1}\relax
\def\startfrm{\begin{frame}}%
\else
\def\startfrm{\begin{frame}[#1]}%
\fi
\innerbfrm
}
\long\def\innerbfrm#1\nofr{\startfrm#1\end{frame}}
我理想情况下希望在 \fr 定义的开头添加以下内容:
\ifthenelse{\boolean{no_frame}}{}{\nofr}
\setboolean{no_frame}{false}
其中 no_frame 是一个布尔值,在文档开头设置为 true。这样我应该能够只使用 \fr 而不是 \nofr\fr。(仍然需要在文档末尾使用一个 \nofr 或将其添加到合适的钩子中。)
但无论我做什么,beamer/latex 都会抱怨。例如,我以这种方式设置快速项目,使用 \qitem 而不是 \begin{enumerate}\item\end{enumerate},因此这很可能是 beamer 的问题。