EsteUna buena solución me ayudó a unir dos entornos, pero a medida que usaba este código, ocurrían más y más errores. Quiero una superposición lineal usando el mismo entorno. Por favor vea este ejemplo -
\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}
No entiendo cuáles son estos errores y por qué ocurren. Quiero que esta superposición funcione en el mismo entorno. ¿Qué se puede hacer para obtenerlo?
Respuesta1
Su myframe
definición actual espera un argumento opcional
\newenvironment*{myframe}[1][]
El argumento opcional, si no está presente, por defecto no es nada. Sin embargo, dado que especifica un argumento obligatorio en el uso demyframe
\begin{myframe}{TEXT TEXT TEXT}
el argumento se coloca al principio del regular frame
, que cae dentro de un \itemize
. Y, como no lo ha usado \item
(las listas solo pueden comenzar con un \item
), recibirá un error que indica "quizás falta \item
".
La solución aquí es requerir un argumento obligatorio para myframe
via
\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}
Respuesta2
\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}