Beamer: Aufzählung und Einschub von Seiten Thema ist als GELÖST markiert

Fragen und Probleme, die nicht den obigen Kategorien zugeordnet werden können


E. G.

Beamer: Aufzählung und Einschub von Seiten

Beitrag von E. G. »

Hallo Forum,

ich hab ein kleines Beamerproblem und bräuchte dazu mal einen Ratschlag.

Stark vereinfacht, soll der Eindruck entstehen, dass es eine Aufzählung auf einer Seite ist, bei der die einzelnen Zeilen eingeblendet werden. Nach ca. der Hälfte der Einblendungen soll temporär eine neue Folie eingeblendet werden auf der eine Abbildung zu sehen ist. Dann soll zu der vorherigen Seite zurückgekehrt werden und mit der Aufzählung weitergemacht werden.

Mit viel überflüssigem Code bekomme ich es hin, allerdings muss ich sehr viel umstellen wenn ich noch was ändern möchte, gibts eine Art das eleganter zu lösen als im Beispiel?

"Minimal"-Beispiel
\documentclass{beamer}
\usepackage[latin1]{inputenc}
\usetheme{Warsaw}
\begin{document}

\begin{frame}
\titlepage
\end{frame}

%% Idealfall nur ein sauber strukturierter Codeteil, so etwa in der Art von: 
%\begin{frame}{Introduction}
%\begin{itemize}
%  \item 1
%  \pause
%  \item 2
%  \pause 
%  \item 3
%  \pause
%  \item {Folie mit bild} % hier der Befehl, der es auf einer eigenen Seite anzeigt
%  \pause
%  \item 4
%  \pause
%  \item 5
%  \pause
%  \item 6
%\end{itemize}
%\end{frame}


% leider hab ichs nur so hinbekommen: 
% erste paar Einblendungen
\begin{frame}{Introduction}
\begin{itemize}
  \item 1
  \pause
  \item 2
  \pause 
  \item 3
\end{itemize}
\end{frame}

% neue Seite
\begin{frame}{Introduction}
\begin{itemize}
  \item {Folie mit bild}
\end{itemize}
\end{frame}

% die alten Punkte wieder hervorholen
% und mit der Aufzaehlung weitermachen
\begin{frame}{Introduction}
\begin{itemize}
  \item 1
  \item 2
  \item 3
  \item 4
  \pause
  \item 5
  \pause
  \item 6
\end{itemize}
\end{frame}

\end{document}
Grüße
E

Benutzeravatar
bloodworks
Moderator
Moderator
Beiträge: 1425
Registriert: Mo 19. Jan 2009, 10:52
Wohnort: /dev/null

Beitrag von bloodworks »

Nichts leitcher als das:
\documentclass{beamer} 
\usepackage[latin1]{inputenc} 
\usetheme{Warsaw} 
\begin{document} 

\begin{frame} 
\titlepage 
\end{frame} 


\begin{frame}\frametitle{Introduction} 

\only<1,2,4->{\begin{itemize}[<+->]
   \item 1 
   \item 2 
   \item<+(1)-> 3 
   \item<+(1)-> 4 
   \item<+(1)-> 5
\end{itemize} }
\only<3>{BILD}
\end{frame} 



\end{document}
Man muss nur mit den Inkrementangeben richtig umgehen. (Mit \pause arbeiten ist doch etwas umständlich) Möchtest du jetzt auch noch die framenummer anders haben?
Solltest du mit deiner Aufzählung noch genügend Platz haben, würde ich allerdings vorschlagen du machst das Bild neben die Aufzählung.
[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.


E. G.

Beitrag von E. G. »

Wow Super! Vielen Dank soweit schonmal!

So siehts auf jedenfall schon viel aufgeräumter aus.
Aber eine Anschlußfrage hätt ich dann doch noch: kann man diesen Teil
 
 \only<1,2,4->
dynamisch halten? Ich hab diese Aufzählung-mit-Einschub-Stücke nämlich mehrfach, und wenn ich nun die Reihenfolge ändere oder davor noch etwas einfügen will müssten ich alles per Hand durchzählen.

Grüße
E.

Benutzeravatar
bloodworks
Moderator
Moderator
Beiträge: 1425
Registriert: Mo 19. Jan 2009, 10:52
Wohnort: /dev/null

Beitrag von bloodworks »

E. G. hat geschrieben:
 
 \only<1,2,4->
.
Das schon, aber mit dem Verzögern der items wirds denke ich schwierig mit den beamer Bordmitteln. Vor allem wenn du mehrere Einschübe hast:
\documentclass{beamer} 
\usepackage[latin1]{inputenc} 

\begin{document} 

 
\begin{frame}
\def\picnumber{3,5}% das ist eher kein Problem% auch nicht mit 3 Einschüben
\only<\picnumber>{BILD}

\invisible<\picnumber>{\begin{itemize}[<+->]
   \item 1 
   \item 2 
   \item 3 
   \item<+(1)-> 4 
   \item<+(2)->  5 % das sollte man automatisieren
\end{itemize} }

\end{frame} 

\end{document}
Prinzipiell wäre es möglich \picnumber auszuwerten und dann an den entsprechenden Stellen eben die Verzögerung ein zu setzten. Das ist allerdings zumindest für mich doch mit recht großen Aufwand verbunden und mit LaTeX2e auch echt eine ziemliche Sauerrei. Dafür würde ich mich persönlich eher an l3 halten. Das praktisch auf beamer auf zu setzten ohne den beamer Kern entsprechend aufzubohren würde mich sicher 3 Tage kosten. ;)
[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.


E. G.

Beitrag von E. G. »

Ok, na gut, dann eben doch noch mit etwas Handzählen.
Aber so ist es schon sehr viel besser als das, was ich anfangs hatte.
Hab vielen vielen Dank.

Benutzeravatar
bloodworks
Moderator
Moderator
Beiträge: 1425
Registriert: Mo 19. Jan 2009, 10:52
Wohnort: /dev/null

Beitrag von bloodworks »

Hi wie ist das:
\documentclass{beamer} 
\usepackage[latin1]{inputenc} 


\newcommand\middlepicture[2]{\gdef\picnumber{#1}
\only<\picnumber>{#2}}

\newenvironment{middleitemize}{%
\begin{invisibleenv}<\picnumber>\begin{itemize}[<+->]\let\olditem\item%
\renewcommand{\item}[1]{%
%
\ifnum\value{beamerpauses}>\picnumber \olditem<+(1)-> ##1 \else \olditem ##1 \fi }
}%
{\end{itemize}\end{invisibleenv} }

\begin{document} 

 
\begin{frame}

\middlepicture{3}{BILD}
\begin{middleitemize}
   \item 1 
   \item 2 
   \item 3 
   \item 4 
   \item 5 
\end{middleitemize}


\end{frame} 

\end{document}
Das geht jetzt aber nur für ein Bild. Und du musst das Bild mit Position VOR der Umgebung definieren. Und es müssen min 2 Positionen vom Ende sein. Das Extremwerthandling ist nicht sonderlich gut. Insgesamt ist das nicht sonderlich elegant. Also ausbaufähig.
[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.


E. G.

Beitrag von E. G. »

Klasse, auf sowas hatte ich gehofft :)

Inzwischen hat sich aber ein neues Problem aufgetan: Die Bilder sind nicht nummerierbar. Bzw /ref funktioniert nicht mehr. Wenn ich die Bilder "normal" (ausserhalb des Ausblendungen) einfüge geht es.

Hast Du ne Idee woran das liegen könnte, bzw wie man das umgehen kann?
\documentclass{beamer}
\usepackage[latin1]{inputenc}


\newcommand\middlepicture[2]{\gdef\picnumber{#1}
\only<\picnumber>{#2}}

\newenvironment{middleitemize}{%
\begin{invisibleenv}<\picnumber>\begin{itemize}[<+->]\let\olditem\item%
\renewcommand{\item}[1]{%
%
\ifnum\value{beamerpauses}>\picnumber \olditem<+(1)-> ##1 \else \olditem ##1 \fi }
}%
{\end{itemize}\end{invisibleenv} }

\begin{document}

 
\begin{frame}

\middlepicture{3}{BILD}
\begin{middleitemize}
   \item 1
   \item 2
   \item 3
   \item 4
   \item 5
\end{middleitemize}
\end{frame}


\begin{frame}

\middlepicture{3}{
\begin{figure}[h]
 \centering
 \includegraphics[width=0.4\textwidth]{./images/s1.png}
 % s1.png: 2048x768 pixel, 72dpi, 72.25x27.09 cm, bb=0 0 2048 768
 \caption{Statue}
 \label{fig:jomonb} 
 \end{figure}}

\begin{middleitemize}
   \item 6
   \item 7
   \item 8
   \item 9
   \item 10
\end{middleitemize}
\end{frame}



\begin{frame}
\ref{fig:jomonb}
\end{frame}

\end{document}


Antworten