Inhalte über Beamer-Folien weiterentwickeln: Elemente mit „Scope“ gruppieren

Inhalte über Beamer-Folien weiterentwickeln: Elemente mit „Scope“ gruppieren

ich bewerbe michhttps://tex.stackexchange.com/a/518585/114719wo ich scopeElemente gruppiere, während ich Inhalte über mehrere Beamer-Folien entwickle:

\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\begin{frame}
  \begin{overlayarea}{\linewidth}{0.7\paperheight}
    \centering
    \begin{tikzpicture}
    \useasboundingbox(-5.5,-.5)rectangle(6,5.5);%                                                                                                                                                           
      \coordinate (O) at (0, 0);
      \coordinate (A) at (5, 5);
      \coordinate (B) at (-5, 5);
      \begin{scope}<1->
        \draw (O) -- (B);
      \end{scope}
      \begin{scope}<2->
        \draw (O) -- (A);
      \end{scope}
      \draw<3> (A) -- (B);
      % \begin{scope}<3>                                                                                                                                                                                   
      %   \draw (A) -- (B);                                                                                                                                                                                
      % \end{scope}                                                                                                                                                                                        
    \end{tikzpicture}
  \end{overlayarea}
\end{frame}
\end{document}

Falls ich auch Elemente auf der letzten Folie gruppiere, ersetze ich

      \draw<3> (A) -- (B);

mit

      \begin{scope}<3>                                                                                                                                                                                   
         \draw (A) -- (B);                                                                                                                                                                                
      \end{scope}  

die Folienanordnung wird auf die letzte Folie reduziert. Warum ist das so und wie kann ich mit auch auf der letzten Folie Elemente gruppieren scope?

Antwort1

Wenn Sie eine Version eines Bereichs haben möchten, die in verpackt wird \onslide, können Sie das wie folgt tun:

\newenvironment<>{Scope}[1][]{\onslide#2\begingroup\begin{scope}[#1]}{%
\end{scope}\endgroup}

Dann können Sie \begin{Scope}<3> ... \end{Scope}anstelle von verwenden \begin{scope}<3> ... \end{scope}, was, wie Sie sagen, etwas falsch ist und nicht funktioniert.

Beispiel:

\documentclass{beamer}
\usepackage{tikz}
\newenvironment<>{Scope}[1][]{\onslide#2\begingroup\begin{scope}[#1]}{%
\end{scope}\endgroup}
\begin{document}
\begin{frame}
  \begin{overlayarea}{\linewidth}{0.7\paperheight}
    \centering
    \begin{tikzpicture}
    \useasboundingbox(-5.5,-.5)rectangle(6,5.5);%  unnecessary                                                                                                                                                         
      \coordinate (O) at (0, 0);
      \coordinate (A) at (5, 5);
      \coordinate (B) at (-5, 5);
      \begin{Scope}<1->[blue]
        \draw (O) -- (B);
      \end{Scope}
      \begin{Scope}<2->
        \draw (O) -- (A);
      \end{Scope}
      \begin{Scope}<3>
         \draw (A) -- (B);
      \end{Scope}
    \end{tikzpicture}
  \end{overlayarea}
\end{frame}
\end{document}

Bildbeschreibung hier eingeben

Die blaue Linie dient lediglich dazu, anzuzeigen, wie Sie die Optionen des Bereichs hinzufügen können.

Ich persönlich bin nach wie vor der Meinung overlay-beamer-styles, dassdiese Antwortund von Skillmon vorgeschlagen wird auf lange Sicht ziemlich hilfreich sein, zumindest verwende ich es häufig für genau solche Anwendungen.

Antwort2

Hier ist eine Methode mit \uncover, die (zum Beispiel) als verwendet wird \uncover<1->{..}, und alles innerhalb der Klammern wird auf Folie 2, Folie 1 und weiter {..}angezeigt . Hier ist der Code:

\documentclass{beamer}
\usepackage{tikz}
\begin{document} \begin{frame} \begin{overlayarea}{\linewidth}{0.7\paperheight}
\centering

\begin{tikzpicture}
\useasboundingbox(-5.5,-.5)rectangle(6,5.5);
\coordinate (O) at (0, 0);
\coordinate (A) at (5, 5);
\coordinate (B) at (-5, 5);
\uncover<1->{\begin{scope}\draw (O) -- (B);\end{scope}}
\uncover<2->{\begin{scope}\draw (O) -- (A);\end{scope}}
\uncover<3>{\draw (A) -- (B);}
\end{tikzpicture}

\end{overlayarea} \end{frame} \end{document}

Der \uncoverBefehl kann verschachtelt werden, wenn Sie beispielsweise einen Bereich nach Folie 2, aber einige Teile des Bereichs später anzeigen möchten. In Ihrem Beispiel liefert der obige Code dasselbe Ergebnis, wenn Sie die drei Zeilen, die mit beginnen, durch \uncoverdie folgenden Zeilen ersetzen. Ich habe Einrückungen hinzugefügt, um die Verschachtelung anzuzeigen.

\uncover<1->{
  \begin{scope}
  \draw (O) -- (B);
  \uncover<2->{
    \begin{scope}
    \draw (O) -- (A);
    \uncover<3>{
      \draw (A) -- (B);
    }
  \end{scope}}
\end{scope}}

verwandte Informationen