PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Beamer, begrenzter Farbverlauf im Hintergrund



beacher_pille88
19-09-2012, 13:13
Hallo,

ich wollte mir jetzt mal aus Interesse ein eigenes Theme für Latex zusammenbauen. Da stellt sich mir eine Fragee:

Ich würde gern auf der rechten Seite einen vertikalen Farbverlauf in einem begrenzten Bereich haben. Dieser müsste aber in den Hintergrund, da Text noch drüber geschrieben werden können soll.

Ist dies überhaupt möglich?


mfg

hakaze
19-09-2012, 14:11
Ist dies überhaupt möglich?Ja! ;)

Hier mal eine Anregung:
\documentclass[final]{beamer}

\usecolortheme{crane}
\useoutertheme[right]{sidebar}
\setbeamertemplate{sidebar canvas right}[vertical shading][top=palette primary.bg,middle=white,bottom=white]

\begin{document}
\begin{frame}{Show frame}
Test-Frame
\end{frame}
\end{document}Detailiertere Beschreibungen der Optionen findest du im Beamer user guide (http://texdoc.net/texmf-dist/doc/latex/beamer/doc/beameruserguide.pdf), u.a. im Abschnitt 8.2.2 The Sidebars und 16.2 Outer Themes.

beacher_pille88
19-09-2012, 14:41
Ich häng jetzt aber irgendwie dran, das in mein *.sty zu packen ...

Die meisten Beispiele (wie dieses) nutzen ja vorgefertigte Themes.

Ich schreibe mein eigenes Theme und wollte das drin haben ... seh ich da grad den Wald vor lauter Bäumen nicht?!?!?!?

hakaze
19-09-2012, 15:11
Schau doch einfach mal in den beamer-Quellcode (http://www.ctan.org/tex-archive/macros/latex/contrib/beamer/), wie es dort gelöst ist. Das sidebar-Thema befindet sich unter /base/themes/outer

Da beamer auf pgf/tikz basiert, kannst du damit auch (fast) alles machen, was im pgfmanual (http://texdoc.net/texmf-dist/doc/generic/pgf/pgfmanual.pdf) beschrieben ist.

Ansonsten: präzisiere dein Problem! Was genau möchtest du erreichen? Welche Schritte hast bisher unternommen bzw. welchen Code geschrieben?

beacher_pille88
20-09-2012, 11:13
Also gut ... dann werde ich mal hier mein Problem ganz kongret schildern.

Ich habe mir die Laughlin-Vorlage genommen und schonmal die Farben, Kopf- und Fußzeile angepasst.
Hier mal eine Beispielseite:

Titelseite (http://imgur.com/x9z5o)

Jetzt zu meinen Wünschen:

a) Der weiße Balken über der Sidebar soll weg
b) Die Fußzeile ragt ein kleines Stück über die Sidebar - soll bündig sein
c) Der Hintergrund meines Titels soll farbig sein, jedoch nur auf der Titelseite (die folgenden Frame-title sollen weiß hinterlegt sein)
d) Zwischen den dunkleren Balken der Kopf und Fußzeile soll ein Farbverlauf von oben nach unten passieren

So ... und nun mein outertheme und colortheme (müsste ja reichen, oder?)

Colortheme:


\mode<presentation>


\definecolor{basicFH}{RGB}{0,59,121}
\definecolor{basicAI}{RGB}{119,153,187}
\definecolor{basic3}{RGB}{244,244,244}
\definecolor{basic4}{RGB}{187,204,221}

\setbeamercolor*{normal text}{fg=basicFH,bg=white}
\setbeamercolor*{structure}{fg=basicFH,bg=basic3}
\setbeamercolor{head left}{fg=basicFH,bg=basic3}
\setbeamercolor{head middle}{fg=basicFH,bg=basicFH}
\setbeamercolor{foot left}{fg=basicFH,bg=basic4}
\setbeamercolor{foot middle}{fg=basicFH,bg=basicAI}
\setbeamercolor{title}{fg=basicFH,bg=white}


\setbeamercolor*{palette primary}{use=structure,fg=white,bg=structure.fg}
\setbeamercolor*{palette secondary}{use=structure,fg=white,bg=structure.fg! 75}
\setbeamercolor*{palette tertiary}{use=structure,fg=white,bg=structure.fg!5 0}
\setbeamercolor*{palette quaternary}{use=structure,fg=white,bg=structure.fg }

\setbeamercolor*{palette sidebar primary}{use=structure,fg=structure.fg!10}
\setbeamercolor*{palette sidebar secondary}{fg=white}
\setbeamercolor*{palette sidebar tertiary}{use=structure,fg=structure.fg!50}
\setbeamercolor*{palette sidebar quaternary}{fg=white}

\setbeamercolor*{titlelike}{parent=palette primary}

\setbeamercolor*{sidebar}{use=structure,bg=structu re.fg}

\setbeamercolor{block title}{use=structure,fg=white,bg=structure.fg}
\setbeamercolor{block title alerted}{use=alerted text,fg=white,bg=alerted text.fg}
\setbeamercolor{block title example}{use=example text,fg=white,bg=example text.fg}

\setbeamercolor{block body}{parent=normal text,use=block title,bg=block title.bg!25!bg}
\setbeamercolor{block body alerted}{parent=normal text,use=block title alerted,bg=block title alerted.bg!25!bg}
\setbeamercolor{block body example}{parent=normal text,use=block title example,bg=block title example.bg!25!bg}

\mode<all>


Outertheme:


\mode<presentation>



% Use the "sidebar" theme, with no header and a left sidebar as base
\useoutertheme[width=2.5cm,height=0pt,left]{sidebar}

% Load the side bar image if enabled
\pgfdeclareimage[height=\paperheight]{laughlin@sidebarimage}{laughlin-sidebar}

% (A)
\newdimen\laughlin@panelwidth
\laughlin@panelwidth=\paperwidth
\advance\laughlin@panelwidth by -\beamer@sidebarwidth

%%% The background color of the frametitle is the same than the
%%% presentation one
\setbeamertemplate{frametitle}
{
\leavevmode%
\hbox{%
\begin{beamercolorbox}[wd=.67\laughlin@panelwidth,ht=4ex,dp=1ex,left,left skip=1em,seb=1em]{title}%
\insertframetitle
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.33\laughlin@panelwidth,ht=4ex,dp=1ex,left]{title}%
\insertlogo
\end{beamercolorbox}%
}%
}


%%% Set the background in the sidebar
\defbeamertemplate*{sidebar canvas left}{laughlin theme}
{
\pgfuseimage{laughlin@sidebarimage}
}



\defbeamertemplate*{headline}{FH}{%
\leavevmode%
\hspace*{\beamer@sidebarwidth}
\hbox{%
\begin{beamercolorbox}[wd=0.69\laughlin@panelwidth,ht=2.25ex,dp=1ex,left]{head left}%
\end{beamercolorbox}
\begin{beamercolorbox}[wd=0.13\laughlin@panelwidth,ht=2.25ex,dp=1ex,left]{head middle}%
\end{beamercolorbox}
\begin{beamercolorbox}[wd=0.25\laughlin@panelwidth,ht=2.25ex,dp=1ex,left]{head left}%
\end{beamercolorbox}}
\vskip0pt%
}

\defbeamertemplate*{footline}{FH}{%
\leavevmode%
\hspace*{\beamer@sidebarwidth}
\hbox{%
\begin{beamercolorbox}[wd=0.69\laughlin@panelwidth,ht=2.25ex,dp=1ex,left]{foot left}%
\end{beamercolorbox}
\begin{beamercolorbox}[wd=0.13\laughlin@panelwidth,ht=2.25ex,dp=1ex,cente r]{foot middle}%
Seite \insertframenumber{}/\inserttotalframenumber
\end{beamercolorbox}
\begin{beamercolorbox}[wd=0.25\laughlin@panelwidth,ht=2.25ex,dp=1ex,left]{foot left}%
\end{beamercolorbox}}
\vskip0pt%
}

\mode<all>

hakaze
20-09-2012, 14:31
Jetzt zu meinen Wünschen:

a) Der weiße Balken über der Sidebar soll weg
b) Die Fußzeile ragt ein kleines Stück über die Sidebar - soll bündig sein
c) Der Hintergrund meines Titels soll farbig sein, jedoch nur auf der Titelseite (die folgenden Frame-title sollen weiß hinterlegt sein)
d) Zwischen den dunkleren Balken der Kopf und Fußzeile soll ein Farbverlauf von oben nach unten passieren
a) hier musst du manuell das sidebarimage nach oben verschieben, da das headline-Template sich selbständig Platz reserviert:

\setbeamertemplate{sidebar canvas left}%{laughlin theme}
{\vspace*{-\headheight}\pgfuseimage{laughlin@sidebarimage}}
b) Das hängt mit der Rundung bei der Längenberechnung und dem Überhang der beamercolorbox(en) zusammen. Hier kannst du versuchen mit dem Parameter colsep*=dimension zu spielen.

c) Das sollte eigentlich über die titlelike-Farbdefinition gehen. Da habe ich es aber noch nicht geschafft, mich durch deinen Farbblock zu arbeiten.

d) Dies geht über das Element "backgound canvas" mit einem Farbverlauf aus TikZ/pgf (bei den beamercolorbox(en) im "frametitle" muss dann eventuell noch ein "ignorebg" eingefügt werden, damit der Farbverlauf auch durchgängig ist):

\RequirePackage{tikz}

\setbeamertemplate{background canvas}{%
\hspace*{\beamer@sidebarwidth}\hspace*{0.69\laughl in@panelwidth}\hspace*{0.5ex}%
\tikz\shade[top color=basicFH,bottom color=basicAI] (0,0) rectangle (0.13\laughlin@panelwidth+0.5ex,\beamer@paperheigh t);%
}Da stellt sich mit aber schon die Frage nach dem Sinn. Denn schließlich geht der Text im Frame auch über diesen Farbverlauf. Da sich die Text- und Hintergrundfarbe dann kaum noch unterscheiden, ist die Lesbarkeit dann ziemlich hinüber?!?

beacher_pille88
20-09-2012, 15:03
vielen Dank schonmal!!! So richtig hab ich das hier noch nicht durchschaut -.-*

Erstmal: Der Farbverlauf geht von white--> basic3 (Corporate Design meiner Institution, deshalb auch die Zensur, da ich nicht weiß, ob ich das einfach so online stellen darf ;) )

Leider funktioniert


\setbeamertemplate{background canvas}
{%
\hspace*{\beamer@sidebarwidth}
\hspace*{0.69\laughlin@panelwidth}
\hspace*{0.5ex}%
\tikz\shade[top color=white,bottom color=basic3] (0,0) rectangle (0.13\laughlin@panelwidth+0.5ex,\beamer@paperheigh t);%
}

bei mir nicht. Fehlerausgabe:


! Undefined control sequence.
<argument> ...nelwidth +0.5ex,\beamer@paperheight

l.37 \end{frame}


Und ich würde gerne mal eine Erklärung dazu wissen:

die ersten beiden \hspace machen einen Abstand Richtung "rechten" Seitenrand. Aber was macht \hspace*{0.5ex}???
Dann das \tikz\shade sagt mir den Farbverlauf mit den Optionen [obere Farbe=...,untere Farbe=...] - macht dann (0,0) den Startpunkt des rectangle mit einer breite und höhe = (0.13\laughlin@panelwidth+0.5ex,\beamer@paperheigh t)? Was macht das Semikolon da am Ende?

vlg

hakaze
20-09-2012, 15:36
Das wundert mich schon... dann nimm halt \paperheight statt \beamer@paperheight !

Die extra-Abstände von 0,5 ex habe ich noch eingefügt, um eine sichtbare Stufe wegen der nicht ganz bündigen Überlappung (wie am Anfang der Kopf- und Fußzeile) zu verhindern.

Das Semikolon markiert bei TikZ/pgf das Befehlsende (du kannst ja mal probieren, es wegzulassen ;)). Mehr Infos siehe pgfmanual.pdf!

beacher_pille88
20-09-2012, 17:35
Ok vielen Dank!!! Jetzt funktioniert (fast) alles, wie es soll :)

Zu dem Fehler mit dem \beamer@paperheight:

Wenn ich es durch \paperheight ersetzt hab, zeigte er mir einen Fehler, dass ich irgendwo ein "seb" drin hatte - das raus gemacht und schon ging \beamer@paperheight

Ich danke vielmals!!!