为了节省一些输入,我尝试创建一个包含一些我经常使用的命令的新环境。但是 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}