Этотхорошее решение помогло мне объединить две среды, но по мере использования этого кода возникало все больше и больше ошибок. Я хочу линейное наложение с использованием той же среды. Пожалуйста, посмотрите этот пример -
\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}
Я не понимаю, что это за ошибки и почему они возникают. Я хочу, чтобы этот оверлей работал в той же среде. Что можно сделать, чтобы его получить?
решение1
Ваше текущее myframe
определение ожидает необязательный аргумент
\newenvironment*{myframe}[1][]
Необязательный аргумент, если он отсутствует, по умолчанию не имеет значения. Однако, поскольку вы указываете обязательный аргумент при использованииmyframe
\begin{myframe}{TEXT TEXT TEXT}
аргумент помещается в начало обычного frame
, который попадает внутрь \itemize
. И, поскольку вы не использовали \item
- списки могут начинаться только с \item
- вы получаете ошибку, указывающую на "возможно, отсутствует \item
".
Исправление здесь — потребовать обязательный аргумент для 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}
решение2
\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}