PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Beamer - Kopfzeile (headline) / Navigation anpassen



ProfessorChaos
06-04-2009, 13:23
Hi,

ich möchte mir ein eigenes Präsentations-Style erstellen und dafür vorhandene
Themes nach meinen Bedürfnissen anpassen. Probleme bekomme ich bei der Anpassung
der Navigation (headline), da ich keine Ahnung von den Befehlen habe, die dort
verwendet werden.^^ Ich ändere nur einige Zeilen, von welchen ich erahne, was sie
bewirken. Bei der Anpassung der headline reicht mein Verständnis leider nicht aus.

Zunächst ein funktionierendes nicht-minimales Minimalbeispiel, das mein Problem
noch nicht schildert, aber erweitert werden soll. Nicht-minimal, da ich dort auch
die Fußzeile ändere, was ich für mein Problem nicht bräuchte und wegen zusätzlicher
Folien, die die PDF schicker aussehen lassen (eine hätte für ein Min.-Bsp. gereicht).


\documentclass[xcolor=dvipsnames]{beamer}
\usepackage{beamerthemeshadow}
\usetheme{CambridgeUS}
\useoutertheme{smoothbars}
\usecolortheme[named=Red]{structure}



% ----------------------
% Beginn eigenes Fußfeld
% ----------------------
\setbeamertemplate{footline}
{ \leavevmode%
\hbox{%
\begin{beamercolorbox}[wd=.666666\paperwidth,ht=2.25ex,dp=1ex,center]{author in head/foot}%
\usebeamerfont{author in head/foot}the title of the presentation
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.267334\paperwidth,ht=2.25ex,dp=1ex,center]{date in head/foot}%
\usebeamerfont{date in head/foot}the date%
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.066\paperwidth,ht=2.25ex,dp=1ex,right]{date in head/foot}%
\insertframenumber{} / \inserttotalframenumber\hspace*{2ex} %
\end{beamercolorbox}%
}%
\vskip0pt%
}
% --------------------
% Ende eigenes Fußfeld
% --------------------


\begin{document}

\section{1st section}
\subsection{1st subsection}
\frame{ one ! }

\section{2nd section}
\subsection{2nd subsection}
\frame{ two ! }
\subsection{3rd subsection}
\frame{ three ! }


\section{3rd section}
\subsection{4rd subsection}
\frame{ four ! }

\end{document}

Okay, was ich ja eigentlich möchte ist die Manipulation des Kopffelds.
Benötigt wird also die Datei beamerouterthemesmoothbars.sty (http://ftp.ktug.or.kr/tex-archive/macros/latex/contrib/beamer/themes/outer/beamerouterthemesmoothbars.sty)

Dort ist (in meinen Amateur-Augen) der folgende Abschnitt von Bedeutung:



\defbeamertemplate*{headline}{smoothbars theme}
{%
\pgfuseshading{beamer@barshade}%
\ifbeamer@sb@subsection%
\vskip-9.75ex%
\else%
\vskip-7ex%
\fi%
\begin{beamercolorbox}[ignorebg,ht=2.25ex,dp=3.75ex]{section in head/foot}
\insertnavigation{\paperwidth}
\end{beamercolorbox}%
\ifbeamer@sb@subsection%
\begin{beamercolorbox}[ignorebg,ht=2.125ex,dp=1.125ex,%
leftskip=.3cm,rightskip=.3cm plus1fil]{subsection in head/foot}
\usebeamerfont{subsection in head/foot}\insertsubsectionhead
\end{beamercolorbox}%
\fi%
}%

Baue ich diesen Code, analog zur Manipulation der Fußzeile, in meine Präsentation ein,
erhalte ich einige Fehler. Erst wollte ich es kompilieren können, bevor ich meine Änderung einbaue.
Hier das nicht-kompilierende Minimalbeispiel:



\documentclass[xcolor=dvipsnames]{beamer}
\usepackage{beamerthemeshadow}
\usetheme{CambridgeUS}
\useoutertheme{smoothbars}
\usecolortheme[named=Red]{structure}





% -----------------------
% Beginn eigenes Kopffeld
% -----------------------
\setbeamertemplate{headline}{smoothbars theme}
{%
\pgfuseshading{beamer@barshade}%
\ifbeamer@sb@subsection%
\vskip-9.75ex%
\else%
\vskip-7ex%
\fi%
\begin{beamercolorbox}[ignorebg,ht=2.25ex,dp=3.75ex]{section in head/foot}
\insertnavigation{\paperwidth}
\end{beamercolorbox}%
\ifbeamer@sb@subsection%
\begin{beamercolorbox}[ignorebg,ht=2.125ex,dp=1.125ex,%
leftskip=.3cm,rightskip=.3cm plus1fil]{subsection in head/foot}
\usebeamerfont{subsection in head/foot}\insertsubsectionhead
\end{beamercolorbox}%
\fi%
}%
% ---------------------
% Ende eigenes Kopffeld
% ---------------------




% ----------------------
% Beginn eigenes Fußfeld
% ----------------------
\setbeamertemplate{footline}
{ \leavevmode%
\hbox{%
\begin{beamercolorbox}[wd=.666666\paperwidth,ht=2.25ex,dp=1ex,center]{author in head/foot}%
\usebeamerfont{author in head/foot}the title of the presentation
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.267334\paperwidth,ht=2.25ex,dp=1ex,center]{date in head/foot}%
\usebeamerfont{date in head/foot}the date%
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.066\paperwidth,ht=2.25ex,dp=1ex,right]{date in head/foot}%
\insertframenumber{} / \inserttotalframenumber\hspace*{2ex} %
\end{beamercolorbox}%
}%
\vskip0pt%
}
% --------------------
% Ende eigenes Fußfeld
% --------------------



\begin{document}

\section{1st section}
\subsection{1st subsection}
\frame{ one ! }

\section{2nd section}
\subsection{2nd subsection}
\frame{ two ! }
\subsection{3rd subsection}
\frame{ three ! }


\section{3rd section}
\subsection{4rd subsection}
\frame{ four ! }

\end{document}

Wahrscheinlich rollt der Profi nun mit den Augen, was ich da eigentlich mache.
Aber ehrlich: ich weiß es nicht...

Nun, was ich eigentlich bewirken möchte: Ich möchte oberhalb der Navigation einen ein bis zwei Milimeter
breiten, roten Balken einfügen. Er soll keine Funktion haben, sondern lediglich die Optik verschönern. Ohne
diesen roten Abschluss habe ich das Gefühl, dass etwas fehlt...

mechanicus
06-04-2009, 13:48
Hallo,

also nur eine Linie:

\documentclass[xcolor=dvipsnames]{beamer}
\usepackage{beamerthemeshadow}
\usetheme{CambridgeUS}
\useoutertheme{smoothbars}
\usecolortheme[named=Red]{structure}
\usepackage{xcolor}




% -----------------------
% Beginn eigenes Kopffeld
% -----------------------
\setbeamertemplate{headline}%{smoothbars theme}
{%
\color{red}
\rule{\paperwidth}{2mm}
}%
% ---------------------
% Ende eigenes Kopffeld
% ---------------------




% ----------------------
% Beginn eigenes Fußfeld
% ----------------------
\setbeamertemplate{footline}
{ \leavevmode%
\hbox{%
\begin{beamercolorbox}[wd=.666666\paperwidth,ht=2.25ex,dp=1ex,center]{author in head/foot}%
\usebeamerfont{author in head/foot}the title of the presentation
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.267334\paperwidth,ht=2.25ex,dp=1ex,center]{date in head/foot}%
\usebeamerfont{date in head/foot}the date%
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.066\paperwidth,ht=2.25ex,dp=1ex,right]{date in head/foot}%
\insertframenumber{} / \inserttotalframenumber\hspace*{2ex} %
\end{beamercolorbox}%
}%
\vskip0pt%
}
% --------------------
% Ende eigenes Fußfeld
% --------------------



\begin{document}

\section{1st section}
\subsection{1st subsection}
\frame{ one ! }

\section{2nd section}
\subsection{2nd subsection}
\frame{ two ! }
\subsection{3rd subsection}
\frame{ three ! }


\section{3rd section}
\subsection{4rd subsection}
\frame{ four ! }

\end{document}

Was du falsch gemacht hast:

@ als Sonderzeichen nicht beachtet (makeatletter ...)
setbeamertemplate hat kein drittes Argument (in deinem Fall war smoothbar überflüssig)


Gruß
Marco

ProfessorChaos
06-04-2009, 13:59
also nur eine Linie:
Nein, ich wollte die Navigation um eine Linie *ergänzen*. Sie soll also bleiben, wie sie war, nur
dass eben zusätzlich die besagte Linie darüber erscheinen soll (und zwar im selben Farbton wie
unten, aber welcher das ist, finde ich sicherlich heraus).


Was du falsch gemacht hast:

@ als Sonderzeichen nicht beachtet (makeatletter ...)
setbeamertemplate hat kein drittes Argument (in deinem Fall war smoothbar überflüssig)


1.
Damit kann ich leider nichts anfangen, denn beim "normalen" teXen brauchte ich noch niemals
das @-Symbol. Der nicht-funktionierende Code ist einfach nur 1-zu-1 aus der sty herauskopiert,
da ich die Navigation ja übernehmen möchte...

2.
Ja, danke, dieser Fehler unterlief mir im Eifer des Gefechts. Auch die angepasste Version
kompiliert nicht (33 Fehler).

mechanicus
06-04-2009, 14:02
Hallo,


\documentclass[xcolor=dvipsnames]{beamer}
\usepackage{beamerthemeshadow}
\usetheme{CambridgeUS}
\useoutertheme{smoothbars}
\usecolortheme[named=Red]{structure}
\usepackage{xcolor}




% -----------------------
% Beginn eigenes Kopffeld
% -----------------------
\makeatletter
\setbeamertemplate{headline}
{%
{\color{red}\rule{\paperwidth}{2mm}}\\
\pgfuseshading{beamer@barshade}%
\ifbeamer@sb@subsection%
\vskip-9.75ex%
\else%
\vskip-7ex%
\fi%
\begin{beamercolorbox}[ignorebg,ht=2.25ex,dp=3.75ex]{section in head/foot}
\insertnavigation{\paperwidth}
\end{beamercolorbox}%
\ifbeamer@sb@subsection%
\begin{beamercolorbox}[ignorebg,ht=2.125ex,dp=1.125ex,%
leftskip=.3cm,rightskip=.3cm plus1fil]{subsection in head/foot}
\usebeamerfont{subsection in head/foot}\insertsubsectionhead
\end{beamercolorbox}%
\fi%
}%
\makeatother
% ---------------------
% Ende eigenes Kopffeld
% ---------------------




% ----------------------
% Beginn eigenes Fußfeld
% ----------------------
\setbeamertemplate{footline}
{ \leavevmode%
\hbox{%
\begin{beamercolorbox}[wd=.666666\paperwidth,ht=2.25ex,dp=1ex,center]{author in head/foot}%
\usebeamerfont{author in head/foot}the title of the presentation
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.267334\paperwidth,ht=2.25ex,dp=1ex,center]{date in head/foot}%
\usebeamerfont{date in head/foot}the date%
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.066\paperwidth,ht=2.25ex,dp=1ex,right]{date in head/foot}%
\insertframenumber{} / \inserttotalframenumber\hspace*{2ex} %
\end{beamercolorbox}%
}%
\vskip0pt%
}
% --------------------
% Ende eigenes Fußfeld
% --------------------



\begin{document}

\section{1st section}
\subsection{1st subsection}
\frame{ one ! }

\section{2nd section}
\subsection{2nd subsection}
\frame{ two ! }
\subsection{3rd subsection}
\frame{ three ! }


\section{3rd section}
\subsection{4rd subsection}
\frame{ four ! }

\end{document}
Die Farbe habe ich jetzt nicht rausgesucht.

Gruß
Marco

mechanicus
06-04-2009, 14:11
Die Farbe habe ich jetzt nicht rausgesucht.

Nun doch:

\color{darkred!80!black}

Gruß
Marco

ProfessorChaos
06-04-2009, 15:05
[neue Version]Funktioniert 1A, vielen Dank!



Die Farbe habe ich jetzt nicht rausgesucht.
...
Nun doch:
\color{darkred!80!black}
\color{red!80!black} wäre die korrekte Farbe. Aber danke, hat mir Arbeit erspart. Ich hätte es
natürlich selbst herausgesucht, war aber kurz afk...

Ich konnte mit dem Code aus der .sty unter anderem wegen dem mir kryptisch vorkommenden
@-Symbol nichts anfangen. Daher hat mir auch \makeatletter nichts gesagt, erwähnt hattest
du den Befehl ja. Wem es geht wie mir, hier zwei Worte zum selbigen: @-Symbol (http://de.wikibooks.org/wiki/LaTeX-Wörterbuch:_@).