DasEine nette Lösung hat mir geholfen, zwei Umgebungen zusammenzubringen, aber je mehr ich diesen Code verwendete, desto mehr Fehler traten auf. Ich möchte ein lineares Overlay mit derselben Umgebung. Bitte sehen Sie sich dieses Beispiel an -
\documentclass[8pt]{beamer}
\newenvironment*{myframe}[1][]%
{\begin{frame}{#1}%
\begingroup\itemize}
{\enditemize\endgroup
\end{frame}}
\begin{document}
\begin{myframe}{TEXT TEXT TEXT}
\item<1-> TEXT TEXT TEXT
\begin{enumerate}
\item<2-> TEXT TEXT TEXT
\item<3-> TEXT TEXT TEXT
\item<4-> TEXT TEXT TEXT
\end{enumerate}
\item<5-> TEXT TEXT TEXT
\end{myframe}
\end{document}
Ich verstehe nicht, was diese Fehler sind und warum sie auftreten. Ich möchte, dass dieses Overlay in derselben Umgebung funktioniert. Was kann getan werden, um dies zu erreichen?
Antwort1
Ihre aktuelle myframe
Definition erwartet ein optionales Argument
\newenvironment*{myframe}[1][]
Das optionale Argument ist, wenn es nicht vorhanden ist, standardmäßig nichts. Da Sie jedoch ein obligatorisches Argument in Ihrer Verwendung von angebenmyframe
\begin{myframe}{TEXT TEXT TEXT}
das Argument wird am Anfang des regulären platziert frame
, das innerhalb eines liegt . Und da Sie - Listen können nur mit einem beginnen - \itemize
nicht verwendet haben , erhalten Sie einen Fehler, der auf „möglicherweise ein fehlendes “ hinweist.\item
\item
\item
myframe
Die Lösung besteht hier darin, ein obligatorisches Argument für „via“ anzufordern.
\newenvironment*{myframe}[1]
\documentclass{beamer}
\newenvironment*{myframe}[1]
{\begin{frame}{#1}%
\begingroup\itemize}
{\enditemize\endgroup
\end{frame}}
\begin{document}
\begin{myframe}{TEXT TEXT TEXT}
\item<1-> TEXT TEXT TEXT
\begin{enumerate}
\item<2-> TEXT TEXT TEXT
\item<3-> TEXT TEXT TEXT
\item<4-> TEXT TEXT TEXT
\end{enumerate}
\item<5-> TEXT TEXT TEXT
\end{myframe}
\end{document}
Antwort2
\documentclass[8pt]{beamer}
\usepackage{environ}
\NewEnviron{myframe}[1]%
{\begin{frame}{#1}%
\begin{itemize}
\BODY
\end{itemize}
\end{frame}}
\begin{document}
\begin{myframe}{TEXT TEXT TEXT}
\item<1-> TEXT TEXT TEXT
\begin{enumerate}
\item<2-> TEXT TEXT TEXT
\item<3-> TEXT TEXT TEXT
\item<4-> TEXT TEXT TEXT
\end{enumerate}
\item<5-> TEXT TEXT TEXT
\end{myframe}
\end{document}