自訂環境中的線性疊加

自訂環境中的線性疊加

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

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

相關內容