カスタム環境での線形オーバーレイ

カスタム環境での線形オーバーレイ

これ素晴らしい解決策は、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

ここでの修正は、myframeviaの必須引数を要求することです。

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

関連情報