PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Beamer outertheme sidebar-Kopfzeile schmaler machen



The EYE
12-01-2012, 23:45
Hallo Moin!

Ich habe gerade ein Problem mit beamer bzw. mit dem outertheme sidebar.
Ich würde gerne die Kopfzeile (in der die Folientitel stehen) schmaler machen, da sie mir einfach zuviel Platz weg nimmt.
Habe einfach mal in die beamerouterthemesidebar.sty geguckt und den Wert für \beamer@headheight verkleinert (Standardwert: 2.5\baselineskip). Das hat aber nichts geändert. Ich habe leider keine andere Stelle im Code gefunden, die mich noch weiter vorran bringen könnte.
Ich hoffe also nun auf eure Hilfe.
Hier mein Minimalbeispiel:

\documentclass[14pt]{beamer}

\usetheme{default}

\usecolortheme{Seagull}

\useoutertheme{sidebar}

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

\title{Test}
\author{Max Mustermann}

\date{\today}

\begin{document}

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

\begin{frame}{Gliederung}
\tableofcontents
\end{frame}

\section{Test}
\begin{frame}{Folie 1}
Folie 1
\end{frame}

\end{document}

Gruß Max

The EYE
13-01-2012, 19:12
Es kann doch nicht sein, dass ich der erste bin, der das Problem hat?
Der Code der das Layout aufbaut ist (denke ich) auch nicht sooo kompliziert. Da sollten wir hier zusammen doch eine Lösung finden können!
Leider sitzt mir diesmal auch die Zeit im Nacken, Montag muss die Präsentation nämlich auch schon gehalten werden.

Die entsprechende Datei beamerouterthemesidebar.sty befindet sich hier: ...MIKTEX-VERZEICHNIS\tex\latex\beamer\base\themes\outer\
Auf meinem Win7 System ist das der Pfad C:\Program Files (x86)\MiKTeX 2.9\tex\latex\beamer\base\themes\outer\

Hier ist der gesamte Code dieser Datei. Die Option, mit der ich es versucht hatte (gleich am Anfang) habe ich rot markiert.


% Copyright 2007 by Till Tantau
%
% This file may be distributed and/or modified
%
% 1. under the LaTeX Project Public License and/or
% 2. under the GNU Public License.
%
% See the file doc/licenses/LICENSE for more details.

\ProvidesPackageRCS $Header: /Users/joseph/Library/texmf/tex/latex/beamer/base/themes/outer/beamerouterthemesidebar.sty,v d02a7cf4d8ae 2010/06/17 09:11:41 rivanvx $


\newdimen\beamer@sidebarwidth
\newdimen\beamer@headheight
\usebeamerfont{frametitle}
\beamer@sidebarwidth=2.5\baselineskip
\beamer@headheight=2.5\baselineskip
\reset@font

\def\beamer@lefttext{left}

\DeclareOptionBeamer{hideothersubsections}[]{\beamer@nav@subsectionstyle{show/show/hide}}
\DeclareOptionBeamer{hideallsubsections}[]{\beamer@nav@subsectionstyle{hide}}

\DeclareOptionBeamer{width}{\beamer@sidebarwidth=# 1}
\DeclareOptionBeamer{height}{\beamer@headheight=#1 }
\DeclareOptionBeamer{left}{\def\beamer@sidebarside {left}}
\DeclareOptionBeamer{right}{\def\beamer@sidebarsid e{right}}
\ExecuteOptionsBeamer{left}
\ProcessOptionsBeamer


\mode<presentation>

\ifdim\beamer@headheight>0pt
% if head height is 0pt, use default frame title

\setbeamercolor*{frametitle}{parent=sidebar}

\defbeamertemplate*{frametitle}{sidebar theme}
{%
\nointerlineskip%
\vskip-\beamer@headheight%
\vbox to \beamer@headheight{%
\vfil
\leftskip=-\beamer@leftmargin%
\advance\leftskip by0.3cm%
\rightskip=-\beamer@rightmargin%
\advance\rightskip by0.3cm plus1fil%
{\usebeamercolor[fg]{frametitle}\usebeamerfont{frametitle}\insertframe title\par}%
{\usebeamercolor[fg]{framesubtitle}\usebeamerfont{framesubtitle}\inser tframesubtitle\par}%
\vbox{}%
\vskip-1em%
\vfil
}%
}

\defbeamertemplate*{headline}{sidebar theme}
{%
\begin{beamercolorbox}[wd=\paperwidth]{frametitle}
\ifx\beamer@sidebarside\beamer@lefttext%
\else%
\hfill%
\fi%
\ifdim\beamer@sidebarwidth>0pt%
\usebeamercolor[bg]{logo}%
\vrule width\beamer@sidebarwidth height \beamer@headheight%
\hskip-\beamer@sidebarwidth%
\hbox to \beamer@sidebarwidth{\hss\vbox to
\beamer@headheight{\vss\hbox{\color{fg}\insertlogo }\vss}\hss}%
\else%
\vrule width0pt height \beamer@headheight%
\fi%
\end{beamercolorbox}
}
\fi


\def\beamer@sidebarformat#1#2#3{%
\begin{beamercolorbox}[wd=\beamer@sidebarwidth,leftskip=#1,rightskip=1ex plus1fil,vmode]{#2}
\vbox{}%
#3\par%
\vbox{}%
\vskip-1.5ex%
\end{beamercolorbox}
}

\defbeamertemplate*{section in sidebar}{sidebar theme}
{%
\vbox{%
\vskip1ex%
\beamer@sidebarformat{3pt}{section in sidebar}{\insertsectionhead}%
}%
}

\defbeamertemplate*{section in sidebar shaded}{sidebar theme}
{%
\vbox{%
\vskip1ex%
\beamer@sidebarformat{3pt}{section in sidebar shaded}{\insertsectionhead}%
}%
}

\defbeamertemplate*{subsection in sidebar}{sidebar theme}
{%
\beamer@sidebarformat{5pt}{subsection in sidebar}{\insertsubsectionhead}%
}

\defbeamertemplate*{subsection in sidebar shaded}{sidebar theme}
{%
\beamer@sidebarformat{5pt}{subsection in sidebar shaded}{\insertsubsectionhead}%
}

\defbeamertemplate*{subsubsection in sidebar}{sidebar theme}
{%
\beamer@sidebarformat{7pt}{subsubsection in sidebar}{\insertsubsubsectionhead}%
}

\defbeamertemplate*{subsubsection in sidebar shaded}{sidebar theme}
{%
\beamer@sidebarformat{7pt}{subsubsection in sidebar shaded}{\insertsubsubsectionhead}%
}


\ifdim\beamer@sidebarwidth>0pt

% Sidebar
\setbeamersize{sidebar width \beamer@sidebarside=\beamer@sidebarwidth}
\defbeamertemplate*{sidebar \beamer@sidebarside}{sidebar theme}
{
\beamer@tempdim=\beamer@sidebarwidth%
\advance\beamer@tempdim by -6pt%
{\usebeamerfont{title in sidebar}%
\vskip1.5em%
\hskip3pt%
\usebeamercolor[fg]{title in sidebar}%
\insertshorttitle[width=\beamer@tempdim,center,respectlinebreaks]\par%
\vskip1.25em%
}%
{%
\hskip3pt%
\usebeamercolor[fg]{author in sidebar}%
\usebeamerfont{author in sidebar}%
\insertshortauthor[width=\beamer@tempdim,center,respectlinebreaks]\par%
\vskip1.25em%
}%
\insertverticalnavigation{\beamer@sidebarwidth}%
\vfill
\ifx\beamer@sidebarside\beamer@lefttext%
\else%
\usebeamercolor{normal text}%
\llap{\usebeamertemplate***{navigation symbols}\hskip0.1cm}%
\vskip2pt%
\fi%
}%

\ifx\beamer@sidebarside\beamer@lefttext%
\defbeamertemplate*{sidebar right}{sidebar theme}
{%
\vfill%
\llap{\usebeamertemplate***{navigation symbols}\hskip0.1cm}%
\vskip2pt}
\fi
% Margins
\setbeamersize{text margin left=0.5cm,text margin right=0.5cm}
\fi

\mode
<all>


Ich zähle auf eure Hilfe! Meine Recherchen haben bisher leider auch nichts neues hervorgebracht... :(

Gruß Max

rais
13-01-2012, 22:57
Moin moin,


Habe einfach mal in die beamerouterthemesidebar.sty geguckt und den Wert für \beamer@headheight verkleinert (Standardwert: 2.5\baselineskip). Das hat aber nichts geändert. Ich habe leider keine andere Stelle im Code gefunden, die mich noch weiter vorran bringen könnte.
Ich hoffe also nun auf eure Hilfe.
Hier mein Minimalbeispiel:

und wie genau hast Du versucht, diesen \beamer@headheight anzupassen?
So ja offensichtlich nicht (oder ich habe Dein Problem nicht verstanden):


\documentclass[14pt]{beamer}

%\usetheme{default}<--wenn das wirklich `default' ist, braucht es imho nicht noch geladen zu werden

%\usecolortheme{Seagull}
%bei Systemen, die bei Dateinamen Groß- und Kleinschreibung unterscheiden, bekommst Du damit bestenfalls
%! LaTeX Error: File `beamercolorthemeSeagull.sty' not found.
%also besser:
\usecolortheme{seagull}

\useoutertheme{sidebar}

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

\title{Test}
\author{Max Mustermann}

\date{\today}
\makeatletter
\beamer@headheight=0.5\baselineskip%<--bereits zu klein...
\makeatother
\begin{document}

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

\begin{frame}{Gliederung}
\tableofcontents
\end{frame}

\section{Test}
\begin{frame}{Folie 1}
Folie 1
\end{frame}

\end{document}

BTW:

Die entsprechende Datei beamerouterthemesidebar.sty befindet sich hier: ...MIKTEX-VERZEICHNIS\tex\latex\beamer\base\themes\outer\

`MIKTEX' gibt es bei mir nicht, und damit auch kein `MIKTEX-VERZEICHNIS' ... versuch es vllt mit `kpsewhich'.

MfG

The EYE
14-01-2012, 11:09
Hallo!

Ich hatte die Änderung direkt in der *.sty-Datei vorgenommen (durch das eintragen eines festen cm Wertes und durch verändern des Faktors).
Das machst du ja quasi auch, nur eben direkt in der Präsentationsdatei. Was ist bei mir denn da schief gelaufen?
Naja...ich habe die Höhe der Kopfzeile angepasst und auch den Befehl für die Breite der Seitenleiste gefunden. Ist das Logo dann aber schmaler, als die Seitenleiste, wird es mittig über dieser zentriert und der Grauton (in diesem Fall) der Farbe, die sich um das Logo herum befindet entspricht dem Grauton der Kopfleiste. Das sah irgendwie fehlplaziert aus. Ich habe ebenfalls den Befehl innerhalb der *.sty-Datei gefunden, auf welchen dort bezüglich der Breite der Seitenleiste Bezug genommen wird (toller Satz...).
Lange Rede kurzer Sinn, hier der Code.

\documentclass[14pt]{beamer}

\usecolortheme{seagull}

\useoutertheme{sidebar}

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

\logo{LOGO}

\date{\today}
\makeatletter %Beginn-Parameter mit @ aendern
\beamer@headheight=1\baselineskip %Hoehe der Kopfzeile aendern
\beamer@leftsidebar=2cm %Breite der Sidebar aendern
\beamer@sidebarwidth=2cm %gibt an, wie breit die Sidebar ist (der Bereich in dem sich das Logo befindet orientiert sich daran), muss manuell an die eingestellte Breite geaendert werden
\makeatother %Ende-Parameter mit @ aendern
\begin{document}

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

\begin{frame}{Gliederung}
\tableofcontents
\end{frame}

\section{Test}
\begin{frame}{Folie 1}
Folie 1
\end{frame}

\end{document}

Nun ist alles so, wie ich es haben möchte. Ich bedanke mich für die Hilfestellung!

Gruß Max

rais
15-01-2012, 08:57
Moin moin,


Ich hatte die Änderung direkt in der *.sty-Datei vorgenommen (durch das eintragen eines festen cm Wertes und durch verändern des Faktors).
Das machst du ja quasi auch, nur eben direkt in der Präsentationsdatei. Was ist bei mir denn da schief gelaufen?

1) Datei wurde nicht geschrieben?
2) Datei wurde wieder überschrieben?
3) Datei wird gar nicht genutzt...

Zu 1) und 2) könntest Du leicht feststellen: fragliche Datei einfach erneut öffnen und prüfen, ob Deine Änderung(en) (noch) drin stehen.
Zu 3) könntest Du auch leicht prüfen: Öffne eine Eingabeaufforderung (Start->Programm ausführen->cmd), wechsele mit cd in das Verzeichnis, in dem Deine .tex steht und tipp


kpsewhich beamerouterthemesidebar.sty

und vergleiche den hier angegebenen Pfad mit dem der Datei, die Du geändert hast.

Davon abgesehen halte ich es für keine gute Idee, Änderungen direkt in irgend welchen .sty-Dateien vorzunehmen:
-- Du müsstest diese Änderung auf jedem Rechner wiederholen, mit dem Du arbeitest (was bei systemweiten Installationen, an denen mehrere arbeiten, meist eh nicht möglich ist oder wenn, dann dürften sich diejenigen Deiner Kollegen bei Dir `bedanken', daß Du ihnen so mir nicht uns nichts irgendwelche Dateien modifizierst).
-- Du müsstest damit rechnen, daß diese Änderung nach dem nächsten Update verschwunden ist.
-- ...

MfG

The EYE
15-01-2012, 10:39
Hey,

ja, da hast du wohl Recht. Angesichts der Tatsache, dass direkte Änderungen meistens Unsinn sind, werde ich jetzt nicht nachforschen woran es liegt. (höchstens in den Semesterferien ;-) )

Ich bdanke mich nochmal!

Gruß Max