3

I am creating my own Beamer theme based on the Berlin theme and what I want to do is to move the navigation bar below the frametitle, instead of the default position (i.e., top of page, above everything).

For example, the following picture and code uses the Berlin theme, which creates a navigation bar in the headline on top of the frame. How can I move the frametitle to the top of frame and move the navigation bar below the frametitle?

enter image description here

\documentclass{beamer}
\usetheme{Berlin}
\begin{document}
\section{First Sec}
\begin{frame}{First Frame Title}First Section\end{frame}
\section{Second Sec}
\begin{frame}{Second Frame Title}Second Section\end{frame}
\end{document}
  • I remember that I copy and .sty file and modified some things, maybe you can do it ... in .sty file there is the design ... – juanuni May 30 '15 at 14:42
  • @juanuni, thanks for your response. Which .sty are you referring to? The beameroutertheme one? Any idea which command will do the magic? – crwang May 30 '15 at 23:46
  • Well, two ways: 1) you can make the changes for your Berlin theme (forever :v ), I dont remember if the change what you want is in beameroutertheme.sty or beamerinnertheme.sty, you can read the Till Tantau's beamer guide ... 2) rename a copy of your Berlin theme, make the changes for your design and install this "new theme" like another LaTeX package ... I don't remember the commands, but if you identify the .sty you can read the design, is not hard to differentiate between the design and commands defined in the .sty file. Regards ... – juanuni May 31 '15 at 13:33
  • @juanuni, thanks. I was able to find a way to get it done, see my answer below. – crwang Jun 1 '15 at 0:21
3

After searching a while and could not find an answer, I doubt if there is any straightforward command to do this. However, I figured out a workaround to do this, for those who might be interested.

First, you need to know which outer theme (.sty file) your beamer theme uses. In this case, the Berlin theme ( beamerthemeBerlin.sty ) uses the mini frame outer theme ( beamerouterthememiniframes.sty ).

I then went into this outer theme and changed the definition of the headline and added a definition for the frametitle. See my code below:

% Head Line
\defbeamertemplate*{headline}{miniframes theme}
{%
  \begin{beamercolorbox}[wd=\paperwidth,ht=10.25ex,dp=4.5ex,left]{frametitle}
    \hspace{6pt}
    \usebeamerfont{frametitle}
    \insertframetitle
    \vskip2pt
  \end{beamercolorbox}%
  \vspace{-10pt}
}

% Frame Title
\defbeamertemplate*{frametitle}{miniframes theme}
{%
  \begin{beamercolorbox}[wd=\paperwidth,ht=1.4ex,dp=0.7ex,center]{section in head/foot}
    \usebeamerfont{headline}
    \insertnavigation{0.85\paperwidth}
  \end{beamercolorbox}%
 % no subsection title for simplicity
}

And the results are shown below:

enter image description here enter image description here

  • Great, I'm glad you've been able to modify the appropriate .sty file. Regards. – juanuni Jun 1 '15 at 0:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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