Superposición lineal en un entorno personalizado

Superposición lineal en un entorno personalizado

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 myframedefinició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 myframevia

\newenvironment*{myframe}[1]

ingrese la descripción de la imagen aquí

\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}

información relacionada