Seite 1 von 1

Beamer Klasse zwei Arten von frames

Verfasst: Mi 8. Okt 2014, 16:36
von radio100
Hallo,

ich habe eine Frage im Zusammenhang mit dem Beamer Paket:
Ich habe mir ein Template ausgesucht (Göttingen) und ein bisschen angepasst.
Funktioniert soweit ganz gut, allerdings hakt es an einer Kleinigkeit: ich möchte gerne zwei verschiedene Layouts für die Frames haben, sodass man beim erstellen eines Frames einen Parameter übergeben kann und somit auswählen kann welches Layout man möchte (Ich habe eines erstellt für die Titelseite, mit mehr Logos und mehr Grafik; für die nachfolgende Frames soll ein schlichteres Layout benutzt werden).

Wie kann man dieses Parameter übergeben?
\begin[Layout = complex]{frame}
...
\end{frame}
...
\begin[Layout = simple]{frame}
...
\end{frame}
So stelle ich mir das vor. Aber wie kann ich jetzt in meinem Theme den Parameter auslesen?

Gruß

Verfasst: Mi 8. Okt 2014, 17:00
von Noch so einer
Ich würde stattdessen für den Titel einfach ein frame mit Option plain verwenden und den Titel mit den ganzen Logos darin dann frei gestalten. Wenn man mehr Automatismus haben will, dann über \titlepage und \setbeamertemplate{title page}{…}. Siehe dazu Seite 61 der Englischen beamer-Anleitung.

Wenn das Deine Frage beantwortet, dann setze bitte den Status entsprechend. Wenn nicht, dann mach bitte ein vollständiges Minimalbeispiel und erkläre daran Dein Problem.

Verfasst: Mi 8. Okt 2014, 17:14
von radio100
Hallo,

danke für die rasche Antwort.
Also es ist so:
\setbeamertemplate{background}
{
	\begin{tikzpicture}
		% blounding
		\useasboundingbox (0, 0) rectangle (\paperwidth, \paperheight);
		
		% insert logos on top
		\node[anchor = north west] (unilogoTOP) at (0.05\paperwidth, 0.995\paperheight) {\includegraphics[width = 0.25\paperwidth]{gfx/unilogoDE}};
		\node[anchor = north west] (ILHlogoTOP) at (0.33\paperwidth, 0.99\paperheight) {\includegraphics[width = 0.24\paperwidth]{gfx/ILHlogoDE}};
		
		% blue top bar
		\fill[color = ILHcolor] (0, 0.77\paperheight) rectangle (\paperwidth, 0.89\paperheight);
		
		% footline (but not on title page)
		\ifnum\thepage>1\relax%
		{
			% clear everything
			\fill[white, opacity = 1] (0, 0) rectangle (\paperwidth, \paperheight);
			
			% blue bottom bar
			\fill[color = ILHcolor] (0, 0) rectangle (\paperwidth, 0.12\paperheight);

			% draw the arc
			\fill[white, opacity = 1] (0, 0.097\paperheight) -- (0.429\paperwidth, 0.097\paperheight) .. controls (0.633\paperwidth, 0.092\paperheight) and (0.771\paperwidth, 0.055\paperheight) .. (0.772\paperwidth, 0) -- (0, 0) -- cycle;

			% diamonds
			% blue diamonds (5 pcs)
			\foreach \i in {0, 7.5, 15, 22.5, 30}
			{
				\fill[ILHcolor, opacity = 1]
				(0.674\paperwidth - 2 + \i, 0.0155\paperheight) -- (0.674\paperwidth + \i, 0.0155\paperheight + 2) -- (0.674\paperwidth + \i + 2, 0.0155\paperheight) -- (0.674\paperwidth + \i, 0.0155\paperheight - 2) -- cycle;
			}
			% white diamonds (2 pcs)
			\foreach \i in {37.5, 45}
			{
				\fill[white, opacity = 1]
				(0.674\paperwidth - 2 + \i, 0.0155\paperheight) -- (0.674\paperwidth + \i, 0.0155\paperheight + 2) -- (0.674\paperwidth + \i + 2, 0.0155\paperheight) -- (0.674\paperwidth + \i, 0.0155\paperheight - 2) -- cycle;
			}
			
			% insert logos at bottom
			\node[anchor = south west] (unilogoBOTTOM) at (0.05\paperwidth, 0) {\includegraphics[width = 0.25\paperwidth]{gfx/unilogoDE}};
			\node[anchor = south west] (ILHlogoBOTTOM) at (0.33\paperwidth, 0) {\includegraphics[width = 0.24\paperwidth]{gfx/ILHlogoDE}};
		}
		\fi
	\end{tikzpicture}
}

\setbeamertemplate{footline}
{
	% date and frame number
	\begin{tikzpicture}
		\useasboundingbox (0, 0) rectangle (\paperwidth, 0.09\paperheight);
		\usebeamerfont{footline}
		{
			% date
			\node[anchor = south west, color = white] (date) at (0.89\paperwidth, 0.06\paperheight) {\leadingzero{\day}{}.\leadingzero{\month}{}.\leadingzero{\year}};
			%frame number
			\node[anchor = south west, color = white] (frame number) at (0.95\paperwidth, 0.03\paperheight) {\yohzz{\insertframenumber}};
		}
	\end{tikzpicture}
}
Dieser Code macht das Layout.
Die "Erkennung" (ob Title page oder nicht) läuft zur Zeit über \ifnum\thepage>1.
Das Unschöne daran ist halt, dass es nur funktioniert, wenn die Title page gleich die erste Seite ist.
Wie kann man das automatisch unterscheiden?

Verfasst: Mi 8. Okt 2014, 17:26
von Besserwisser
Und warum verwendest du nicht das beamer template title page, wie von Noch so einer vorgeschlagen? Und wo ist das vollständige Minimalbeispiel? Ist dir das Problem dafür nicht wichtig genug?

Verfasst: Mi 8. Okt 2014, 17:43
von radio100
Ok, sorry, ich bin neu hier und habe keine Ahnung.

Also hier ein Beispiel:
\documentclass[compress]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\title{There Is No Largest Prime Number}
\date[ISPN ’80]{27th International Symposium of Prime Numbers}
\author[Euclid]{Euclid of Alexandria \texttt{euclid@alexandria.edu}}

\usetheme{ILH}

\begin{document}

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

\begin{frame}
	\section{test}
	\frametitle{There Is No Largest Prime Number}
	\framesubtitle{The proof uses \textit{reductio ad absurdum}.}
	\begin{theorem}
		There is no largest prime number.
	\end{theorem}
	\begin{enumerate}
		\item<1-| alert@1> Suppose $p$ were the largest prime number.
		\item<2-> Let $q$ be the product of the first $p$ numbers.
		\item<3-> Then $q+1$ is not divisible by any of them.
		\item<1-> But $q+1$ is greater than $1$, thus divisible by some prime number not in the first $p$ numbers.
	\end{enumerate}
\end{frame}

\begin{frame}{A longer title}
	\section{test2}
	\begin{itemize}
		\item one
		\item two
	\end{itemize}
\end{frame}
\begin{frame}
	\begin{itemize}
		\item one
		\item two
	\end{itemize}
\end{frame}

\end{document}
und jetzt kommt das Problem wenn ich
\setbeamertemplate{title page}
verwende: der gesamt Inhalt wird nach rechts verschoben (um ein paar cm) (siehe Anhang).
Wie bekomme ich das weg?

Generell aber schon mal ein sehr guter Tipp, das ganze in
\setbeamertemplate{title page}
zu verlegen.
\setbeamertemplate{title page}
{
	\begin{tikzpicture}
		% blounding
		\useasboundingbox (0, 0) rectangle (\paperwidth, \paperheight);
		
		% insert logos on top
		\node[anchor = north west] (unilogoTOP) at (0.05\paperwidth, 0.995\paperheight) {\includegraphics[width = 0.25\paperwidth]{gfx/unilogoDE}};
		\node[anchor = north west] (ILHlogoTOP) at (0.33\paperwidth, 0.99\paperheight) {\includegraphics[width = 0.24\paperwidth]{gfx/ILHlogoDE}};
		
		% blue top bar
		\fill[color = ILHcolor] (0, 0.77\paperheight) rectangle (\paperwidth, 0.89\paperheight);
	\end{tikzpicture}
}
Weil der Upload nicht funktioniert: http://img5.fotos-hochladen.net/uploads ... us851t.png

Verfasst: Mi 8. Okt 2014, 18:32
von radio100
Ok, habe jetzt ein bisschen weiter versucht und es fast hinbekommen.
Ein Problem noch:
Mein \setbeamertemplate{title page} sieht jetzt so aus:
\setbeamertemplate{title page}
{
	\begin{tikzpicture}
		% blounding
		\useasboundingbox (0, 0) rectangle (\paperwidth, \paperheight);
		
		% insert logos on top
		\node[anchor = north west] (unilogoTOP) at (0.05\paperwidth, 0.995\paperheight) {\includegraphics[width = 0.25\paperwidth]{gfx/unilogoDE}};
		\node[anchor = north west] (ILHlogoTOP) at (0.33\paperwidth, 0.99\paperheight) {\includegraphics[width = 0.24\paperwidth]{gfx/ILHlogoDE}};
		
		% blue top bar
		\fill[color = ILHcolor] (0, 0.77\paperheight) rectangle (\paperwidth, 0.89\paperheight);
	\end{tikzpicture}
	
	\vskip 3cm
	\begin{center}
		\usebeamerfont{title}\inserttitle\par
	\end{center}
	\vskip 1cm
	\begin{center}
		\usebeamerfont{author}\insertauthor
	\end{center}
	\vskip 1cm
	\begin{center}
		\usebeamerfont{date}\insertdate
	\end{center}
}
Allerdings erschein kein Text :-(
Was mache ich falsch? liegt es am Tikz?
Außerdem ist alles nach rechts geschoben. Warum?

Verfasst: Mi 8. Okt 2014, 20:59
von esdd
Dein Beispiel ist bei anderen nicht lauffähig, da wir weder das Thema noch die Farbe noch die Logos haben.

Der Textbereich auf der Titelseite ist schmaler als \pagewidth, deshalb erscheint alles nach rechts verschoben. Du musst den Inhalt in der Mitte einfügen und dann die Breite verstecken.

Der Text erscheint nicht, weil durch \useasboundingbox (0, 0) rectangle (\paperwidth, \paperheight); die tikz Umgebung ja schon bereits eine Höhe von \paperheight hat und der Text erst darunter und damit außerhalb der Folie eingefügt wird.

Hier ist mal ein Vorschlag, den Du aber noch anpassen musst. Insbesondere muss die Option demo wieder auskommentiert werden.
\documentclass[compress,
demo % da die Bilder nicht vorhanden sind
]{beamer} 
\usepackage[utf8]{inputenc} 
\usepackage[T1]{fontenc} 
\title{There Is No Largest Prime Number} 
\date[ISPN ’80]{27th International Symposium of Prime Numbers} 
\author[Euclid]{Euclid of Alexandria \texttt{euclid@alexandria.edu}} 
\usepackage{tikz}
\usetikzlibrary{positioning}% für das Positionieren der Textnoden

\colorlet{ILHcolor}{blue}% die Farbe war nicht definiert
%\usetheme{ILH}% das Thema habe ich nicht

\setbeamertemplate{title page} 
{\hspace{0pt}\hfill\makebox[0pt]{%
   \begin{tikzpicture} 
       % blounding 
       \useasboundingbox (0, 0) rectangle (\paperwidth, \paperheight); 
       % insert logos on top 
       \node[anchor = north west] (unilogoTOP) at (0.05\paperwidth, 0.995\paperheight) {\includegraphics[width = 0.25\paperwidth]{gfx/unilogoDE}}; 
       \node[anchor = north west] (ILHlogoTOP) at (0.33\paperwidth, 0.99\paperheight) {\includegraphics[width = 0.24\paperwidth]{gfx/ILHlogoDE}}; 
       % blue top bar 
       \fill[color = ILHcolor] (0, 0.77\paperheight) rectangle (\paperwidth, 0.89\paperheight);
    \node(title) at (.5\paperwidth,.5\paperheight){\usebeamerfont{title}\inserttitle};
    \node(author)[below = .5cm of title]{\usebeamerfont{author}\insertauthor};
    \node[below = .5cm of author]{\usebeamerfont{date}\insertdate};
    \end{tikzpicture}%
  }\hfill\hspace{0pt}}

\begin{document} 
\begin{frame}
  \titlepage 
\end{frame} 
\end{document}
Gruß
Elke

Verfasst: Mi 8. Okt 2014, 21:41
von radio100
Hallo Elke,

vielen Dank für Deine Antwort!
Das hat es erklärt!!!! :lol: Klar wenn das tikzpicture so groß ist.....
Danke für den Hinweis!

Gruß