I am using Beamer and the Warsaw theme. I am trying to format the way sections appear in the frame header.
What I would like to get in header:
I – Section I
II – Section II
I did not manage to modify the numbering to uppercase roman letters. Here is a minimal example :
\documentclass{beamer}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usetheme{Warsaw}
\makeatletter
\def\insertsectionheadnumber{\@Roman\c@section}
\makeatother
\setbeamertemplate{section in head/foot}%
{\hfil\insertsectionheadnumber~-~\insertsectionhead}
\setbeamertemplate{section in head/foot shaded}%
{\color{structure!50}\hfil\insertsectionheadnumber~-~\insertsectionhead}
\begin{document}
\section{Section I}
\begin{frame}
\end{frame}
\section{Subsection II}
\begin{frame}
\end{frame}
\end{document}
What I tried so far to add in my preamble:
-
\renewcommand \thesection{\Roman{section}}
: not working because Beamer uses\insertsectionheadnumber
to insert the section number instead of the standard counter. -
\renewcommand \insertsectionheadnumber{\Roman{section}}
: I get the error\insertsectionheadnumber undefined
. -
\makeatletter
\def\insertsectionheadnumber{\@Roman\c@section}
\makeatother
No error produced but it appears to have no effect. -
Using
\insertsectionnumber
instead of\insertsectionheadnumber
. Here, the\def
command is working (numbers appear as roman), but all the sections are numbered with the counter of the current one (so in my example, on slide 1 every section will be numbered I, then on slide 2 they will all be numbered II).
I tried to look into the class files and found that \insertsectionheadnumber
is defined in beamerbasenavigation.sty
, but I don't understand the code I found there.
How should I define the \insertsectionheadnumber
command, or is there another (better) way to do this ?
Best Answer
Based on the answer https://tex.stackexchange.com/a/163490/36296 you can use
\MakeUppercase{\romannumeral\insertsectionheadnumber}