これ素晴らしい解決策は、2 つの環境を一緒にするのに役立ちましたが、このコードを使用すると、エラーがどんどん発生しました。同じ環境を使用して線形オーバーレイを作成したいです。次の例を参照してください。
\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}