這很好的解決方案幫助我將兩個環境組合在一起,但是當我使用這段程式碼時,出現了越來越多的錯誤。我想要使用相同環境的線性疊加。請看這個例子 -
\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}