Seite 1 von 1

Nummerierung von Block in Beamer?

Verfasst: Mo 26. Apr 2010, 18:53
von p.nietnagel
Hallo zusammen,

ich würde gern bei LaTeX Beamer einen "Block" nummerieren. Also eigentlich quasi diesen hübschen blauen Ball, der zu meinem Theme gehört, einzeln vor die Beschriftung meiner Blockumgebung setzen.
Ich hab es schon versucht, in dem ich vor die Blockumgebung eine enumerate Umgebung gesetzt hab, aber das funktioniert nicht, weil wohl die Breite des Blockes starr ist.
\documentclass[squeeze,t]{beamer}
\mode<presentation>
\usepackage[latin1]{inputenc}
\usetheme{CambridgeUS}
\usefonttheme{professionalfonts}
\title[title]{Title}
\author[Ich]{Ich}
\institute[]{whatever}
\begin{document}
\begin{frame}[c]
\begin{enumerate}
\begin{block}{\item Blabla}
\ldots
\end{block}
\begin{block}{\item Blabla}
\ldots
\end{block}
\end{enumerate}
\end{frame}
\end{document}
Wie kann ich entweder den Block eines bisschen nach rechts verschieben oder den "Ball" einzeln aufrufen und auf die enumerate Umgebung verzichten?

Vielen Dank im Voraus für Tipps!
p.nietnagel

Verfasst: Di 27. Apr 2010, 21:34
von meep.meep
Hallo,
ich hab mal ein bisschen mit deinem Problem rumgespielt und habe mir folgende Lösung erarbeitet:
\documentclass[squeeze,t]{beamer} 
\mode<presentation> 
\usepackage[latin1]{inputenc} 
\usetheme{CambridgeUS} 
\usefonttheme{professionalfonts} 
\title[title]{Title} 
\author[Ich]{Ich} 
\institute[]{whatever} 
\begin{document} 
\begin{frame}[c] 

\begin{block}{\begin{enumerate} \item Blabla\\
\ldots 
\end{enumerate} } 
\end{block} 
\begin{block}{\begin{enumerate} \addtocounter{enumi}{1} \item Blabla\\
\ldots 
\end{enumerate} } 
\end{block} 
\end{frame} 
\end{document} 
Diese Lösung ist sicher auch nicht optimal, da die enumerate-Umgebung in den Block gezwungen wird und der Zähler manuell verstellt werden muss, aber sieht schonmal besser aus als die Ausgangssituation.

Grüße, Anja

Verfasst: Mi 28. Apr 2010, 10:17
von bloodworks
Like this?

\documentclass{beamer} 
\usetheme{CambridgeUS} 
\usefonttheme{professionalfonts}

\usepackage{tikz}

\usepackage[latin1]{inputenc} 
\usepackage[ngerman]{babel} 

\begin{document}

\begin{frame}

\newcounter{mybla}
\setcounter{mybla}{1}
\newcommand{\blocknum}{\begin{tikzpicture}\node[circle, ball color= blue, shading=ball, color=white ] {\themybla \refstepcounter{mybla}};\end{tikzpicture} }



\begin{block}{\blocknum}
HALLO
 \end{block}

 
\end{frame}
\end{document}
Willst du den Ball daneben? So was liese sich zB über colums oder eine Minipage regeln. (Den Befehl \blocknum kannst du überall hin schieben. )

Alternativ kannst du dir auch eine komplett neue Umgebung mit tikz basteln.
Zum aufbohren der block Implementation habe ich ZZ keine Lust;)

Verfasst: Mi 28. Apr 2010, 14:19
von p.nietnagel
Hi,

vielen Danke fuer Eure Muehe!!!
@meep.meep: Der Vorschlag funktioniert sehr gut!
Allerdings hab ich mich entschieden, die einzelnen Punkte (items) nacheinander zu ueberschreiben um Platz zu sparen. Und das geht mit der enumerate Umgebung nicht.

@bloodworks: das tikz package kannte ich gar nicht! 8) Ich probiere Deine Loesung nachher aus und versuche sie anzupassen!

Vielen Dank!

Verfasst: Mi 28. Apr 2010, 14:21
von bloodworks
Naja tikz ist eigendlich nur ein Forntend (interface) für pgf und das kennst du. Du arbeitest auch damit... das ganze nennt sich beamer.

Verfasst: Mi 28. Apr 2010, 15:58
von p.nietnagel
Ah, ok. Sorry, ich schlage mich inzwischen ganz gut im Anwenden von beamer, aber die feinen Hintergruende hab ich leider noch nicht ganz begriffen :oops:

Hm, noch eine bloede Frage: wenn ich mit \only<1-3> z.B. einen Stichpunkt mehrere Slides lang zeigen und dabei woanders auf der Folie ein Bild aendern will, sollte der Ball nicht weiternummeriert werden.
Ich hab vorhin auf die Schnelle probiert, den \refstepcounter zu entfernen und stattdessen einen Befehl zu kreiieren, der mir erlaubt, die gewuenschte Nummer anzugeben, also:
\blocknum{1}
zum Beispiel.

Ich hab's versucht mit:
\newcommand{\blocknum}{\begin{tikzpicture}\node[circle, ball color= blue, shading=ball, color=white ] {#};\end{tikzpicture} } 
Das funktioniert aber nicht :(
Wo ist mein Denkfehler?

Danke im Voraus!!!

Verfasst: Mi 28. Apr 2010, 16:10
von bloodworks
Keine zeit zum testen aber:
\newcommand{\blocknum}[1]{\begin{tikzpicture}\node[circle, ball color= blue, shading=ball, color=white ] {#1};\end{tikzpicture} }
solltes tun...

Verfasst: Mi 28. Apr 2010, 16:13
von p.nietnagel
Oh man bin ich dumm!!! Klar, ich hab vergessen, die Anzahl und Nummer der benoetigten Argumente anzugeben! :oops:
Peinlich, peinlich fuer mich!
DANKE!

Verfasst: Mi 28. Apr 2010, 20:57
von p.nietnagel
Ok, meine Präsentation ist jetzt fertig... und zum Schluss auch perfekt :D
Und hier nun der Vollständigkeit halber, falls es jemand brauchen sollte, die verschiedenen Lösungen auf einem Blick:
\documentclass{beamer} 
\usetheme{CambridgeUS} 
\usefonttheme{professionalfonts} 
\usepackage{tikz} 
\usepackage[latin1]{inputenc} 
\usepackage[ngerman]{babel} 

\newcounter{mybla} 
\setcounter{mybla}{1} 
\newcommand{\ballnum}{\begin{tikzpicture}\node[circle, ball color= blue, shading=ball, color=white ] {\themybla \refstepcounter{mybla}};\end{tikzpicture}} 

\newcommand{\ballins}[1]{\begin{tikzpicture}\node[circle, ball color= blue, shading=ball, color=white ]{#1};\end{tikzpicture}}  

\begin{document} 
\begin{frame} 

\begin{block}{\ballnum Block} 
Das ist der 1. Block
 \end{block} 
 
 \begin{block}{\ballnum Block} 
Das ist der 2. Block 
 \end{block} 

\begin{block}{
\begin{enumerate} \item Blabla\\ 
\end{enumerate} 
} 
und hier in der enumerate Umgebung 
\end{block} 

\begin{block}{
\begin{enumerate} \addtocounter{enumi}{1} \item Blabla\\ 
\end{enumerate} 
} 
und gleich noch mal 
\end{block} 
\end{frame} 
 
\begin{frame}
\frametitle{Test}
Beachte die Nummerierung der Bälle
\pause
\begin{columns}
\column{.48\textwidth}
\begin{block}{\only<2>{\ballins{1} Bla} \only<3-4>{\ballins{2} Blub} \only<5-6>{\ballins{3} Blablabla}} 
\end{block}
\column{.48\textwidth}
\begin{block}{guckst Du hier}
\only<2>{Das ist die 2. Folie}
\only<3>{Das ist die 3. Folie}
\only<4>{Das ist die 4. Folie}
\only<5>{Das ist die 5. Folie}
\only<6>{Das ist die 6. Folie}
\end{block}
\end{columns}
\end{frame}
\end{document}
Danke nochmals für die schnelle Hilfe!