[Tex/LaTex] Custom headline in LaTeX Beamer

beamerthemes

I'm trying to modify some themes in Beamer and nearly have what I want. The last step is to change the headline to display the sections in the presentation.

What I have so far is:

enter image description here

however, I would like the top (headline) bar to be solid black and list the sections similarly to

enter image description here

I've tried loading themes and modifying themes, but nothing seems to work. If anyone has any recommendations, please post an answer. I appreciate your help and time.

Minimum Example:

\documentclass{beamer}
\usetheme{Warsaw}

\title[Short Title]{Long Title}
\author[Short Name]{Long Name}
\institute[Short Inst.]
{Long Inst.}
\date{October 1, 2012}

\begin{document}
\section{Section 1}
\begin{frame}
\frametitle{Section 1}
Hello World!
\end{frame}

\section{Section 2}
\begin{frame}
\frametitle{Section 2}
Hello World!
\end{frame}

\end{document}

Theme:

\ProvidesPackageRCS $Header: /home/vedranm/bitbucket/beamer/base/themes/theme/beamerthemeWarsaw.sty,v d02a7cf4d8ae 2010/06/17 09:11:41 rivanvx $

\mode<presentation>

%% Themes
% Outer themes
\useoutertheme{shadow}
% Color themes
\usecolortheme{orchid}
\usecolortheme{whale}
% Rounded boxes and shadows
\useinnertheme[shadow=true]{rounded}
% Solid \item symbols
\useinnertheme{circles}

%% Custom colors
\setbeamerfont{block title}{size={}}
\setbeamercolor{structure}{fg=red}
\setbeamercolor{item}{fg=red}

% Hide navigation symbols
\setbeamertemplate{navigation symbols}{}

%% Title block
\definecolor{beamer@darkred}{RGB}{190,0,0}
\setbeamercolor*{title}{use=structure,fg=white,bg=beamer@darkred}

%% Bottom infolines
\setbeamertemplate{footline}
{
  \leavevmode%
  \hbox{%
  % Name and institution
  \begin{beamercolorbox}[wd=0.5\paperwidth,ht=2.3ex,dp=1.25ex,right]{title in head/foot}%
    \usebeamerfont{title in head/foot}\insertshortauthor~~\beamer@ifempty{\insertshortinstitute}{}{(\insertshortinstitute)}\hspace{1em}
  \end{beamercolorbox}%\hspace*{-0.5pt}%
  % Short title
  \begin{beamercolorbox}[wd=0.41\paperwidth,ht=2.3ex,dp=1.25ex,left]{author in head/foot}%
    \usebeamerfont{author in head/foot}\hspace{1em}\insertshorttitle
  \end{beamercolorbox}\hspace*{-0.5pt}%
  % Frame counter
  \begin{beamercolorbox}[wd=0.1\paperwidth,ht=2.3ex,dp=1.25ex,right]{author in head/foot}%
    \usebeamerfont{author in head/foot}\insertframenumber{}\hspace{1pt}/\hspace{1pt}\inserttotalframenumber\hspace*{4ex}

  \vskip0pt%
}

\mode
<all>

Best Answer

Beamer appearance cheat sheet is a very useful cheat sheet when it comes to customize the look of beamer documents. To get the layout you are interested in, I would modify the template for the headline as follows:

\setbeamertemplate{headline}{%
\leavevmode%
  \hbox{%
    \begin{beamercolorbox}[wd=\paperwidth,ht=2.5ex,dp=1.125ex]{palette quaternary}%
    \insertsectionnavigationhorizontal{\paperwidth}{}{\hskip0pt plus1filll}
    \end{beamercolorbox}%
  }
}

The command insertsectionnavigationhorizontal does all the magic. The remaining code just puts all the sections within a colored box of width paperwidth.

Note that the insertsectionnavigationhorizontal command takes three parameters: the width of the box, material that is inserted to the left, and material that is inserted to the right. In this case, nothing goes to the left and an expandable space goes to the right, making the section names left justified. If you want centered section titles, just copy the third argument into the second:

\insertsectionnavigationhorizontal{\paperwidth}{\hskip0pt plus1filll}{\hskip0pt plus1filll}

The setting of the template goes before the \begin{document}, and after all themes have been loaded.

Beamer create own headline theme is also a related question in TeXSX.


EDIT

There are errors in your theme file: you forgot to close the last beamercolorbox and the overall hbox. Add these lines before the vskip0pt:

 \end{beamercolorbox}}

(yes that's a double brace, the last one closes the hbox). This is how the header looks like: result