Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I use the following options:

\usetheme{Frankfurt}
\setbeamercolor{section in head/foot}{fg=black, bg=white}

and this yields a slide which looks like this:

enter image description here

Is it possible

  • to bring 'Section 1' and 'Section 2' closer together?
  • to draw a separation line before the frame title ?
share|improve this question
add comment

2 Answers

up vote 11 down vote accepted

Sure. You can redefine the headline template; I produced the separation line by using a beamercolorbox of .75ex height and using the upper separation line head color previously set.

Instead of using \insertnavigation, I used \insertsectionnavigationhorizontal which allows for more control. I used the red color, since you didn't provide complete information on the color schema used in your code snippet.Feel free to change the settings according to your needs:

\documentclass{beamer}
\usetheme{Frankfurt}

\setbeamercolor{section in head/foot}{fg=black, bg=white}
\setbeamercolor{frametitle}{fg=red, bg=white}
\setbeamercolor{upper separation line head}{bg=red}

\makeatletter
\setbeamertemplate{headline}
{%
  \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}
    \insertsectionnavigationhorizontal{\paperwidth}{}{\hfill\hfill}
  \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%
 \begin{beamercolorbox}[colsep=1.5pt,ht=.75ex]{upper separation line head}
 \end{beamercolorbox}
}%
\makeatother

\begin{document}

\section{Section One}

\begin{frame}
\frametitle{Test Frame One}
test
\end{frame}

\section{Section Two}

\begin{frame}
\frametitle{Test Frame Two}
test
\end{frame}

\end{document}

enter image description here

enter image description here

As Claudio Fiandrino mentions in his comment, using

\insertsectionnavigationhorizontal{\paperwidth}{\hskip0pt plus1fill}{\hskip0pt plus1fill}

instead of

\insertsectionnavigationhorizontal{\paperwidth}{}{\hfill\hfill}

will produce centered sections in the navigation bar.

The previous approach has a disadvantage: the indicators for subsections are no longer included. To recover the indicators and to get the section titles closer, a redefinition of \insertnavigation will be needed:

\documentclass{beamer}
\usetheme{Frankfurt}

\setbeamercolor{section in head/foot}{fg=black, bg=white}
\setbeamercolor{frametitle}{fg=red!70!black, bg=white}
\setbeamercolor{upper separation line head}{bg=red!70!black}

\makeatletter
\def\insertnavigation#1{%
  \vbox{{%
    \usebeamerfont{section in head/foot}\usebeamercolor[fg]{section in head/foot}%
    \beamer@xpos=0\relax%
    \beamer@ypos=1\relax%
    \hbox to #1{\hskip.3cm\setbox\beamer@sectionbox=\hbox{\kern1sp}%
      \ht\beamer@sectionbox=1.875ex%
      \dp\beamer@sectionbox=0.75ex%
        \hskip.3cm%
        \global\beamer@section@min@dim\z@
        \dohead%
        \beamer@section@set@min@width
      \box\beamer@sectionbox\hfill\hskip.3cm}%
  }}}

\setbeamertemplate{headline}
{%
  \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%
 \begin{beamercolorbox}[colsep=1.5pt,ht=.75ex]{upper separation line head}
 \end{beamercolorbox}
}%
\makeatother

\begin{document}

\section{Section One}
\subsection{Test Subsection One One}
\begin{frame}
\frametitle{Test Frame}
test
\end{frame}
\subsection{Test Subsection One Two}
\begin{frame}
\frametitle{Test Frame}
test
\end{frame}

\section{Section Two}
\subsection{Test Subsection Two One}
\begin{frame}
\frametitle{Test Frame}
test
\end{frame}
\subsection{Test Subsection Two Two}
\begin{frame}
\frametitle{Test Frame}
test
\end{frame}

\section{Section Three}
\subsection{Test Subsection Three One}
\begin{frame}
\frametitle{Test Frame}
test
\end{frame}
\subsection{Test Subsection Three Two}
\begin{frame}
\frametitle{Test Frame}
test
\end{frame}

\end{document}

enter image description here

share|improve this answer
    
You were faster than me in answering. :) Why not using \insertsectionnavigationhorizontal{\paperwidth}{\hskip0pt plus1fill}{\hskip0pt plus1fill} to make the sections centered in the navigation bar? –  Claudio Fiandrino May 22 '12 at 19:34
    
@ClaudioFiandrino I initially thought so, but I am not sure about the OP's intent; I'll add your suggestion to my answer. –  Gonzalo Medina May 22 '12 at 19:38
    
Great! Is it normal that the navigation circles have disappeared? –  Marco May 22 '12 at 19:43
    
@Marco: yes, it's normal! This is the only drawback of this method. Do you want them anyway? –  Claudio Fiandrino May 22 '12 at 19:48
    
@Claudio Fiandrino: I would have liked them... is it difficult to make them reappeared? –  Marco May 22 '12 at 19:51
show 4 more comments

Also a little hackish (or pragmatic if you allow me to sell it :P) version is to reduce the length of the beamercolorbox that holds the navigational items. I actually copy pasted the headline definition from the smoothbars theme and added a 0.5 factor. You can adjust how much they should spread out depending on the size/number of sections. I just copied the line solution from Gonzalo's answer.

\documentclass{beamer}
\usetheme{Frankfurt}
\setbeamercolor{upper separation line head}{bg=red}
\setbeamercolor{section in head/foot}{fg=black, bg=white}
\setbeamercolor{frametitle}{fg=red, bg=white}

\makeatletter
\setbeamertemplate{headline}
{%
  \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{0.5\paperwidth} % <======= Added 0.5 here
  \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%
     \begin{beamercolorbox}[colsep=1.5pt,ht=.75ex]{upper separation line head}
 \end{beamercolorbox}

}%

\makeatother

\begin{document}
\section{Introduction}
\subsection{Subintro1}
\begin{frame}{Introduction}
Important Intro
\end{frame}
\subsection{Subintro2}
\begin{frame}{Dummy frame 1}{Subtitle} \end{frame}
\section{Main Course}
\subsection{Main}
\begin{frame}{Dummy frame 2} \end{frame}
\subsection{Course}
\begin{frame}{Dummy frame 3} \end{frame}
\section{Dessert}
\subsection{Wine}
\begin{frame}{Dummy frame 2} \end{frame}
\subsection{Coffee}
\begin{frame}{Dummy frame 3} \end{frame}
\end{document}

enter image description here

share|improve this answer
    
Looking at the section titles, it should be a "Yummy frame" ;-) –  Gonzalo Medina May 22 '12 at 21:25
    
@GonzaloMedina Argh, how did I miss that window of opportunity? :-) –  percusse May 22 '12 at 21:33
    
@percusse: +1, thanks! –  Marco May 23 '12 at 5:30
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.