[Tex/LaTex] Navigation (Bullets) very small in custom beamer outer theme

beamerformattingmini-framesnavigation

trying to customize our university theme, I got stuck with the size of the navigation bullets (mini frame style), which are displayed as if scaled to 50% and the same with it's text.
Even though I can change the text size with

\setbeamerfont{headline}{size=\fontsize{9}{11}}

and the Sections/Subsections are displayed with a nice 9pt font, the bullets remain very small. I inserted the navigation with the following code:

\insertnavigation{\paperwidth}

to the header and use the helvet font – with no strange effect anywhere else though.

Can anybody tell me, how to increase the size of the bullets? Do I have to set the scale factor somewhere?

Best Answer

Looking at the definition of the beamer templates mini frame/mini frame in current subsection in beamerouterthemedefault.sty (ll. 21-39), you'll see that the mini frames have a fixed size of 1mm. To change this according to your needs, these templates have to be redefined. This can be done using the following code:

\makeatletter
\newdimen\beamer@miniframeradius
\beamer@miniframeradius=0.05cm
\define@key{beamer@margin}{mini frame radius}{\beamer@miniframeradius=#1\relax}
\setbeamertemplate{mini frame}
{%
  \begin{pgfpicture}{0pt}{0pt}{2\beamer@miniframeradius}{2\beamer@miniframeradius}
    \pgfpathcircle{\pgfpoint{\beamer@miniframeradius}{\beamer@miniframeradius}}{\beamer@miniframeradius}
    \pgfusepath{fill,stroke}
  \end{pgfpicture}%
}
\setbeamertemplate{mini frame in current subsection}
{%
  \begin{pgfpicture}{0pt}{0pt}{2\beamer@miniframeradius}{2\beamer@miniframeradius}
    \pgfpathcircle{\pgfpoint{\beamer@miniframeradius}{\beamer@miniframeradius}}{\beamer@miniframeradius}
    \pgfusepath{stroke}
  \end{pgfpicture}%
}
\makeatother

Input this code in the preamble of your document, i. e. between \documentclass{beamer} and \begin{document}. It defines a new beamer length called mini frame radius which controls the size of the mini frames. The space that two mini frames are apart is set with mini frame size (which is not a very suitable name, but it's introduced by beamer like this). So to enlarge the mini frames, use \setbeamersize to change these length, e. g. like this:

\setbeamersize{mini frame radius=.07cm,mini frame size=.18cm}

Minimal test code:

\documentclass{beamer}
\useoutertheme{miniframes}
\makeatletter
\newdimen\beamer@miniframeradius
\beamer@miniframeradius=0.05cm
\define@key{beamer@margin}{mini frame radius}{\beamer@miniframeradius=#1\relax}
\setbeamertemplate{mini frame}
{%
  \begin{pgfpicture}{0pt}{0pt}{2\beamer@miniframeradius}{2\beamer@miniframeradius}
    \pgfpathcircle{\pgfpoint{\beamer@miniframeradius}{\beamer@miniframeradius}}{\beamer@miniframeradius}
    \pgfusepath{fill,stroke}
  \end{pgfpicture}%
}
\setbeamertemplate{mini frame in current subsection}
{%
  \begin{pgfpicture}{0pt}{0pt}{2\beamer@miniframeradius}{2\beamer@miniframeradius}
    \pgfpathcircle{\pgfpoint{\beamer@miniframeradius}{\beamer@miniframeradius}}{\beamer@miniframeradius}
    \pgfusepath{stroke}
  \end{pgfpicture}%
}
\makeatother
\setbeamerfont{headline}{size=\fontsize{9}{11}}
\setbeamersize{mini frame radius=.08cm,mini frame size=.2cm}
\begin{document}
\section{section 1}\subsection{subsection 1}
\frame{}\frame{}\frame{}
\subsection{subsection 2}
\frame{}\frame{}
\end{document}

Result:

headline with enlarged mini frames