[Tex/LaTex] Change the page number of slides in notes when using | handout: command

beamerpage-numbering

I have some slides where I will print out as different pages for the handouts. I am using the command \onslide<1 | handout:1> {} and so on. Is it possible to show on the handout as 5(a) , 5(b) and 5(c) where a, b, c represents the handout page for that particular slide.

I will put the same minimal code from my previous question: How to handle only overlays while printing a latex beamer notes

%\documentclass[mathserif]{beamer}

\documentclass[arial,handout]{beamer}

\usepackage{pgf,pgfpages}
\usepackage{graphicx}
%\usepackage{units}
%\usepackage[utf8]{inputenc}
\usepackage{mathtools}
%\usepackage{amsmath}
\usepackage{animate}


\usepackage{booktabs}
\usepackage{tikz}
\usetikzlibrary{arrows,shapes}

 \tikzset{
    invisible/.style={opacity=0},
    visible on/.style={alt=#1{}{invisible}},
    alt/.code args={<#1>#2#3}{%
      \alt<#1>{\pgfkeysalso{#2}}{\pgfkeysalso{#3}} % \pgfkeysalso doesn't change the path
    },
  }

\mode<presentation>
{
  \usetheme{ift}
  \setbeamertemplate{items}[square]
}

\usefonttheme[onlymath]{serif}
\setbeamerfont{frametitle}{size=\LARGE,series=\bfseries}

\definecolor{uibred}{RGB}{170, 0, 0}
\definecolor{uibblue}{RGB}{0, 84, 115}
\definecolor{uibgreen}{RGB}{119, 175, 0}
%\definecolor{uibgreen}{RGB}{50, 105, 0}
\definecolor{uiborange}{RGB}{217, 89, 0}

%% Create a new command called redub for underbraces
\newcommand\redub[2]{%
    \colorlet{currentcolor}{.}%
    \color{red}%
    \underbrace{\color{currentcolor}#1}_{\color{red}#2}%
    \color{currentcolor}%
}


%Beamer block template
\setbeamertemplate{blocks}[rounded][shadow=true]

\setbeamercolor{block title}{bg=uibblue,fg=white}
\setbeamercolor{item projected}{fg=white,bg=green}

\beamertemplatenavigationsymbolsempty


%\include{macros}

%\includeonlyframes{current}


\defbeamertemplate{enumerate item}{mycircle}
{
  %\usebeamerfont*{item projected}%
  %\usebeamercolor[bg]{item projected}%
  \begin{pgfpicture}{0ex}{0ex}{1.5ex}{0ex}
    %\pgfcircle[fill]{\pgfpoint{0pt}{.75ex}}{1.25ex}
    \pgfbox[center,base]{\color{uibblue}\insertenumlabel.}
  \end{pgfpicture}%
}
[action]
{\setbeamerfont{item projected}{size=\scriptsize}}
\setbeamertemplate{enumerate item}[mycircle]

\begin{document}

%\setbeamertemplate{background}
% {\includegraphics[width=\paperwidth,height=\paperheight]{slide_bg1}}
%\setbeamertemplate{footline}[ifttheme]

\mode<presentation>

\begin{frame}
    \frametitle{Eulerian Salt Flux Decomposition}

    \only<1-2 | handout:1>{\begin{itemize}
        \item Subtidal Volume discharge rate $Q_f$: through a cross=section A  \\
        $Q_f = \langle\int u.dA \rangle$
        \item Salt transport rate $F_s$ through a cross-section A \\
        $F_s = \langle \int uS.dA \rangle$
    \end{itemize}}
        \onslide<2->Sub-tidal salt flux decomposed into three parts 

    \onslide<2->\begin{align*}
        F  & = \langle \int(u_0+u_E+U_T)(s_0+s_E+s_T)dA \rangle \\
            & \approx \langle \int(u_0s_0+u_Es_E+u_Ts_T)dA \rangle \\
            & = \redub{Q_fs_0}{\mathclap{\text{     River flow     }}} + 
             \redub{F_E}{\substack{\text{Exchange}\\\text{shear dispersion}}} + 
             \redub{F_T}{\substack{\text{tidal osciallatory}\\\text{salt transport}}}
    \end{align*}

    \onslide<3- | handout:2>\begin{itemize}
        \item $u_0$ and $s_0$ tidally and cross-sectionally averaged
        \item $u_E$ and $s_E$ tidally averaged and cross-sectionally varying 
        \item $u_T$ and $s_T$ tidally and cross-sectionally varying
    \end{itemize}

\end{frame}

\begin{frame}
\frametitle{Age of Water under dye from all Rivers}

    \only<1-3>{\begin{tikzpicture}
    \centering
        \node [](0,0)(start){ hello2};
%       \draw [step=0.5cm,thin,dotted] (-5,-4) grid(5,4);
%       \node [circle]at (-4.5,0){0};
%       \node [circle,radius=0.9cm,fill=red!30,] at (-4.5,0)(a){};
        \draw [red,fill=red!30](-4.3,-0.2)circle(0.1cm);
        \draw [red,fill=red!30](-3.3,0)circle(0.1cm);
        \draw [red,fill=red!30](-2.5,-0.7)circle(0.1cm);
        \draw [red,fill=red!30](-4.,-0.8)circle(0.1cm);
        \draw [red,fill=red!30](-4.,-1.2)circle(0.1cm);
        \draw [red,fill=red!30](4.3,1.6)circle(0.1cm);
        \draw [red,fill=red!30](3.3,2.7)circle(0.1cm);
        \draw [red,fill=red!30](1.6,3.5)circle(0.1cm);
        \draw [red,fill=red!30](1.3,3.5)circle(0.1cm);      
        \node [rectangle,text width=4cm,red] at (5.5,3) (return) {$Q_2 = 169 A^{0.616}$     \linebreak Mason et. al. 1998};
        \node [rectangle,text width=4cm,red,visible on =<2->] at (5,0) (return) {Smaller near the source     \linebreak Increases away from the source};
        \draw [red,visible on =<3->](-3.3,-1.5) circle(0.7cm);%wolf bay small age
    \end{tikzpicture}}

        \only<4-5>{\begin{tikzpicture}
        \node [](0,0)(start){hello1};
%   \draw [step=0.5,dotted](-5,-4) grid (5,4);
     \node [rectangle,text width=4cm,red] at (5,0) (return) {Scale different from    \linebreak 2 year inflows};
     \node [rectangle, text width =4cm, red,visible on =<5->] at (5,-2) {Maximum age of 120 days};
     \draw [red] (1.5,-1) ellipse(1cm and 0.6cm);
     \node [rectangle, text width=4cm, red] at (5,3) {Minimum 7 day flow over 10 yr. interval};
    \end{tikzpicture}}  

        %
        \only<6-7>{\begin{tikzpicture}
        \node [](0,0)(start){hello};
        \node [rectangle, text width=4cm, red, visible on =<7->] at (5,3) {Mean inflows over 10 yr. interval};
        \end{tikzpicture}}
\end{frame}

\end{document}

Added the output
enter image description here

IFT THEME ADDED

The beamer ift theme can be found on the following location:
https://www.dropbox.com/sh/ewkklsys1zp9xhs/J4msUp2Wbe

Best Answer

As mentioned in an answer to a related question, the number of the current slide within a frame is stored in \beamer@slideinframe. Following Martin Scharrer's comment, we can create a LaTeX counter named slideinframe with

\makeatletter
\def\c@slideinframe{\beamer@slideinframe}
\makeatother

Then to change the pagination of a given frame, you can define a new different footline template, say frame renumbering, and apply that locally to the frame in question. Since I don't have the ift theme you used in your MWE, I'll illustrate with the Madrid theme in the following example.

Outstanding Issue

An outstanding problem that I can't seem to figure out: the frame numbering is correct in the body, but wrong in the footline...

\documentclass[handout]{beamer}
\usetheme{Madrid}

% Define counter "slideinframe"
\makeatletter
\def\c@slideinframe{\beamer@slideinframe}
\makeatother

% Define new template style "frame renumbering"
\defbeamertemplate*{footline}{frame renumbering}
{
  \leavevmode%
  \hbox{%
   \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,center]{author in head/foot}%
     \usebeamerfont{author in head/foot}\insertshortauthor~~(\insertshortinstitute)
   \end{beamercolorbox}%
   \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,center]{title in head/foot}%
     \usebeamerfont{title in head/foot}\insertshorttitle
   \end{beamercolorbox}%
  \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,right]{date in head/foot}%
    \usebeamerfont{date in head/foot}\insertshortdate{}\hspace*{2em}
    \insertframenumber(\alph{slideinframe}) / \inserttotalframenumber\hspace*{2ex} 
  \end{beamercolorbox}}%
  \vskip0pt%
}

% This is the usual footline template used in Madrid theme
\setbeamertemplate{footline}[infolines theme]

\begin{document}

{
% Enclose the frame to which you want to apply the template "frame renumbering" with {...}
\setbeamertemplate{footline}[frame renumbering]
\begin{frame}{Frame 1}
This is frame \insertframenumber, slide (\alph{slideinframe})
\begin{itemize}
  \item<1| handout:1> Handout 1
  \item<2| handout:2> Handout 2
  \item<3| handout:1-3> Handout 1-3
\end{itemize}
\end{frame}
}

\begin{frame}{Frame 2}
This is frame \insertframenumber, slide (\alph{slideinframe}), with usual pagination.
\end{frame}

\end{document}

enter image description here


Update

A work-around is to use Matthew Leingang's answer in the above mentioned question. It defines a new counter, and calculates the current slide in frame by using the current page minus the page where the current frame starts and plus one.

The problem with this approach is that the counter defined in this way does not show the correct value in the body text.

\documentclass[handout]{beamer}
\usetheme{Madrid}

% Define counter "slideinframe"
\newcounter{slideinframe}

% Define new template style "frame renumbering"
\defbeamertemplate*{footline}{frame renumbering}
{
  % Set counter to correct value
  \setcounter{slideinframe}{\insertpagenumber}%
  \addtocounter{slideinframe}{-\insertframestartpage}%
  \addtocounter{slideinframe}{1}%

  % Redefine footline format
  \leavevmode%
  \hbox{%
   \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,center]{author in head/foot}%
     \usebeamerfont{author in head/foot}\insertshortauthor~~(\insertshortinstitute)
   \end{beamercolorbox}%
   \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,center]{title in head/foot}%
     \usebeamerfont{title in head/foot}\insertshorttitle
   \end{beamercolorbox}%
  \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,right]{date in head/foot}%
    \usebeamerfont{date in head/foot}\insertshortdate{}\hspace*{2em}
    \insertframenumber(\alph{slideinframe}) / \inserttotalframenumber\hspace*{2ex} 
  \end{beamercolorbox}}%
  \vskip0pt%
}

% This is the usual footline template used in Madrid theme
\setbeamertemplate{footline}[infolines theme]

\begin{document}
  % same as above        
\end{document}

enter image description here