6

I want to use a trick I found in the question Beamer navigation circles without subsections? to suppress multiple lines of "frame dots" for each subsection in beamer's mini frame navigation. Instead, I want to have a line of frame dots for each section. This fails with the outer theme miniframe, but not with the outer theme smoothbars:

\documentclass{beamer}
\usepackage[latin1]{inputenc}
\usetheme{M21}
\title
{Long Title}  
\subtitle{Subtitle}
\author{Christoph}
\date{}
\subject{}
\begin{document}
\begin{frame}
  \titlepage
\end{frame}    
\section[One]{Sec 1}
\setcounter{subsection}{1}
\begin{frame}
  \frametitle{Some Frame}
  \framesubtitle{its subtitle}
  and some bla bla
\end{frame}
\begin{frame}
  \frametitle{More...}
  \framesubtitle{more subtitle}
  and some bla bla
\end{frame}
\begin{frame}
  \frametitle{Last Frame in Section}
  and some bla bla
\end{frame}

\section{Sec 2}
\setcounter{subsection}{1}
\begin{frame}
  \frametitle{Some Frame}
  \framesubtitle{its subtitle}
  and some bla bla
\end{frame}
\begin{frame}
  \frametitle{More...}
  \framesubtitle{more subtitle}
  and some bla bla
\end{frame}
\begin{frame}
  \frametitle{Last Frame in Section}
  and some bla bla
\end{frame}

\end{document}

My theme file beamerthemeM21.sty has the following content:

\usepackage{remreset}
\makeatletter
\@removefromreset{subsection}{section}
\makeatother

\mode<presentation>
\setbeamercovered{transparent}

\mode<all>
\useoutertheme[subsection=false]{smoothbars}
%\useoutertheme[subsection=false]{miniframes}

\setbeamertemplate{navigation symbols}{}

As it is now, the MWE should show correct dots, like so:

One        Sec 2
Ooo        ooo

If you comment smoothbars and activate miniframes, the line of dots is shifted to the right, and the shift amount increases for each section:

One        Sec 2
  Ooo          ooo

How can I avoid that? Where did I mess it up?

1 Answer 1

3

The problem here is that the outer theme smoothbars uses the beamer option compress in order to get the mini frames into one single line, while miniframes doesn't do that by default. So in order to remove the spurious space, you need to activate this compression, which can be done by saying

\beamer@compresstrue

in beamerthemeM21.sty (enclosed in \makeatletter ... \makeatother, of course).

BTW: You don't need to use \setcounter{subsection}{1} in each section as in your MWE, doing this once (e. g. in your theme file) is enough.

So the corrected beamerthemeM21.sty looks like this:

\usepackage{remreset}
\makeatletter
\@removefromreset{subsection}{section}
\beamer@compresstrue
\makeatother
\setcounter{subsection}{1}

\mode<presentation>
\setbeamercovered{transparent}

\mode<all>
\useoutertheme[subsection=false]{miniframes}

\setbeamertemplate{navigation symbols}{}

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .