如何使用 \begin{frame}\begin{itemize} 创建新环境

如何使用 \begin{frame}\begin{itemize} 创建新环境

为了节省一些输入,我尝试创建一个包含一些我经常使用的命令的新环境。但是 LaTeX 不喜欢它们,并且每次使用它们时都会出现错误。

以下是失败代码的简单示例:

\documentclass{beamer}

\usepackage[utf8]{inputenc}
\usetheme{default}

\newenvironment{iframe}[1]{
  \begin{frame}{#1}
    \begin{itemize}
}{
    \end{itemize}
  \end{frame}
}

\begin{document}

\begin{iframe}{grml}
    \item<1-> Foo
    \item<2-> Bar
\end{iframe}

\end{document}

我只是想拥有一个可以创建新框架并将我带入环境的itemize环境,但却向我抛出以下错误消息:

Runaway argument?
\let \AtEndDocument \@firstofone \@enddocumenthook \@checkend {docume\ETC.
! File ended while scanning use of \beamer@collect@@body.
<inserted text> 
                \par 
<*> qt

!  ==> Fatal error occurred, no output PDF file produced!
Transcript written on qt.log.

答案1

我不明白为什么使用内部命令(\itemize\enditemize)有效,但使用普通环境命令无效。无论如何,这可能是你想要的

\documentclass{beamer}

\usepackage[utf8]{inputenc}
\usetheme{default}

\newenvironment{iframe}[1]{
  \begin{frame}{#1}
    \itemize
}{
    \enditemize
  \end{frame}
}

\begin{document}

\begin{iframe}{grml}
    \item Foo
    \item Bar
    \item Baz
\end{iframe}

\end{document}

在此处输入图片描述

相关内容