I have been using the code for a progress bar given by @GonzaloMedina in this post for a nice progress bar. This code is customizable and gives very nice progress bars I find. However, I realized that over a certain number of slides (44) I get an Arithmetic Overflow error.
Here is my code:
\documentclass[10pt,fleqn]{beamer}
\mode<presentation>
\usepackage{tikz}
% PROGRESS BAR
\usetikzlibrary{calc}
\makeatletter
\def\progressbar@progressbar{} % the progress bar
\newcount\progressbar@tmpcounta% auxiliary counter
\newcount\progressbar@tmpcountb% auxiliary counter
\newdimen\progressbar@pbht %progressbar height
\newdimen\progressbar@pbwd %progressbar width
\newdimen\progressbar@tmpdim % auxiliary dimension
\progressbar@pbwd=\paperwidth
\progressbar@pbht=0.5ex
% the progress bar
\def\progressbar@progressbar{%
\progressbar@tmpcounta= \insertframenumber % max = ?
\progressbar@tmpcountb=\inserttotalframenumber
\progressbar@tmpdim=\progressbar@pbwd
\multiply\progressbar@tmpdim by \progressbar@tmpcounta
\divide\progressbar@tmpdim by \progressbar@tmpcountb
\begin{tikzpicture}[rounded corners=1.5pt,very thin]
\shade[top color=blue!20,bottom color=blue!20,middle color=blue!50]
(0pt, 0pt) rectangle ++ (\progressbar@pbwd, \progressbar@pbht);
\shade[draw=red,top color=red!50,bottom color=red!50,middle color=red] %
(0pt, 0pt) rectangle ++ (\progressbar@tmpdim, \progressbar@pbht);
\draw[color=normal text.fg!50]
(0pt, 0pt) rectangle (\progressbar@pbwd, \progressbar@pbht)
node[pos=0.5,color=normal text.fg] {\textnormal{%
}%
};
\end{tikzpicture}%
}
\addtobeamertemplate{headline}{}
{%
\begin{beamercolorbox}[wd=\paperwidth,ht=1.5ex,center,dp=0ex]{white}%
\progressbar@progressbar%
\end{beamercolorbox}%
}
\makeatother
%
\begin{document}
\frame[t]{
\frametitle{slide}
\small{
}
}
\frame[t]{
\frametitle{slide}
\small{
}
}
\end{document}
I only left here two slides for the sake of clarity but when more than 44 slides are used, the arithmetic overflow error kicks in... and I don't know why. A few things I have been thinking about: could it be related with the definition of the graphic increment from a slide to another ? Would 1/45 be some kind of lower bound here... ? But I don't know why...
Because the total number of frame seems to be the cause of the problem, I tried to add the following lines in the definition of the progress bar:
\multiply\progressbar@tmpcounta by 44
\divide\progressbar@tmpcounta by \progressbar@tmpcountb
in order to somehow normalize all values with respect to the maximum number of slides I found acceptable but it did not work.