0

Using only<.>{stuff} at the end of a beamer frame it is possible to place stuff at the very last overlay in a beamer frame.

Now, I would like to slightly alter the footline when I reach the last overlay, for example putting a star besides the page number, or turning it red.

Can this be done with a reasonable amount of effort?

  • It depends on how easy it is to modify the footline. If it simply a matter of overlaying something, no problem. – John Kormylo May 17 '19 at 12:30
0

Depending on the definition of 'reasonable', it can be done.

One option is to set a custom footline with color and additional text commands in it and set the definitions for these commands in \only<.> commands. At the start of a new frame you can set them back to the original values. The question did not say which theme is used so I took a standard example - you may need to adjust the footline template to match your presentation.

MWE:

\documentclass[10pt,xcolor=dvipsnames]{beamer}
\usepackage{etoolbox}
\setbeamertemplate{navigation symbols}{}

\setbeamertemplate{footline}
{
  \leavevmode%
  \hbox{%
  \begin{beamercolorbox}[wd=.4\paperwidth,ht=2.25ex,dp=1ex,center]{author in head/foot}%
    \usebeamerfont{author in head/foot}\insertshortauthor
  \end{beamercolorbox}%
  \begin{beamercolorbox}[wd=.6\paperwidth,ht=2.25ex,dp=1ex,center]{title in head/foot}%
    \usebeamerfont{title in head/foot}\insertshorttitle\hspace*{3em}%
    % modification of the footline using \mycolor and \mysymbol here
    \hfill \color{\mycolor}\mysymbol\insertframenumber{} / \inserttotalframenumber\hspace*{1ex}
  \end{beamercolorbox}}%
  \vskip0pt%
}
\setbeamerfont{footline}{size=\normalsize}
\author{John Doe}
\title{My presentation}
\def\mycolor{blue}
\def\mysymbol{\relax}
\BeforeBeginEnvironment{frame}{\gdef\mycolor{blue}\gdef\mysymbol{\relax}}
\def\setlast{\only<.>{\gdef\mycolor{red}\gdef\mysymbol{*}}}
\begin{document}

\begin{frame}
  \begin{itemize}
    \item<+-> one
    \item<+-> two 
    \item<+-> three
  \end{itemize}
\setlast
\end{frame}
\setbeamercolor{page number in head/foot}{fg=red}
\begin{frame}
  \begin{itemize}
    \item<+-> one one
    \item<+-> two two
    \item<+-> three three
  \end{itemize}

\setlast
\end{frame}

\end{document}
\end{document}

Result:

enter image description here

Note that you have to insert \setlast manually at the end of each frame. I tried to automate this but I'm not really sure where to hook into - this can probably be improved.

| improve this answer | |
  • Feel free to add an improvement, but I find this a reasonably self-contained solution! – Fosco May 18 '19 at 16:41

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.