From 35fa977b98bce3c852b1aee8ca37f1d1d303b41d Mon Sep 17 00:00:00 2001
From: Cedric Ware <cedric.ware@telecom-paristech.fr>
Date: Sun, 24 May 2020 17:17:38 +0200
Subject: [PATCH] Document options via source comments and more demos in the
 presentation. Clean up comments, fix typos.

---
 model.tex                       | 283 +++++++++++++++++++++-----------
 texinputs/beamerthemetptnew.sty | 181 ++++++++++++--------
 2 files changed, 303 insertions(+), 161 deletions(-)

diff --git a/model.tex b/model.tex
index b42feb8..44d3481 100644
--- a/model.tex
+++ b/model.tex
@@ -1,48 +1,49 @@
 \documentclass[aspectratio=169]{beamer}
 
+% Codage.  Ajuster en fonction de votre éditeur.  Supprimer avec LuaTeX.
 \usepackage[utf8]{inputenc}
-\usepackage[T1]{fontenc}
 
-\usepackage{graphicx}
-\usepackage[french]{babel}
+% Thème Beamer Télécom Paris.  Nombreuses options disponibles,
+% cf. commentaires ci-dessous et slides de démonstration dans
+% corps du document.
+\mode<presentation>
+\usetheme{tptnew}
 
-\usepackage{booktabs}
-% Quelle fontes de caractères
-%\usepackage{lmodern}
-\usepackage{inconsolata}
+% Les options s'utilisent via \usetheme ci-dessus, ou bien via \tptthemekeys.
+% P.ex. \tptthemekeys{visual} est équivalent à \usetheme[visual]{tptnew}.
+%
+% Options simples :
+%
+% • official (défaut) copie fidèlement la charte graphique officielle.
+% • visual rend la charte plus lisible, notamment le contraste des gris.
+% • slim réduit l'encombrement du titre des frames.
+% • nohelvet garde les polices par défaut.
+% • latex garde les polices par défaut et les symboles de navigation Beamer.
 
-% pour insérer directement des fig
-\usepackage{figlatex}
 
-% où se trouvent les images
-\graphicspath{{images/}{pdfs/}{figs/}{svgs/}{odgs/}}
+% Gestion des fontes.  (FIXME incompatible LuaTeX.)
+\usepackage[T1]{fontenc}
+%\usepackage{lmodern}% Recommandé si vous activez l'option latex ou nohelvet.
+\usepackage{inconsolata}% Pour la police monospace (p.ex. pour l'adresse mail).
 
-% pour ne pas mettre l'extension des images
+% Gestion des images.  Le thème a déjà chargé graphicx.  Pour préciser
+% les dossiers où se trouvent les images, et ne pas avoir à spécifier
+% leur extension dans les noms de fichiers :
+\graphicspath{{images/}{pdfs/}{figs/}{svgs/}{odgs/}}
 \DeclareGraphicsExtensions{.fig,.pdf,.png,.jpg}
 
-% Texte de remplissage.
-\usepackage{lipsum}
+% Pour insérer directement des images au format .fig :
+\usepackage{figlatex}
 
-% beamer theme
-\mode<presentation>
-% If you want headline with section list
-%\usetheme[infolines]{tptnew}
-% default without affiliations
-%\usetheme{tptnew}
-% If you want to add affiltation logos
-%\usetheme[logosaclay]{tptnew}
-\usetheme[logoipp]{tptnew}
-% If tpt is affiliated to a new entity, just give the new logos
-% You can also have custom versions
-%\usetheme[affiliation, titleaffiliation]{tptnew}
-%\affiliationlogoinfooter{logo-IPP-small-red}
-%\affiliationlogointitle{logo-IPP-small-red}
-%\affiliationlogointitle{logo-IPP-large}
+% Divers : typographie française, gestion des tables, texte de remplissage.
+\usepackage[french]{babel}
+\usepackage{booktabs}
+\usepackage{lipsum}
 
 
 %%------------------------------------------------------------------------------
 
-%% Faire apparaitre le plan à chaque section
+% Faire apparaître le plan à chaque section et sous-section :
 \AtBeginSection[]{
   \contentsframe[currentsection]
 }
@@ -62,9 +63,10 @@
 \author{Graba Tarik}
 \email{tarik.graba@telecom-paris.fr}
 \institute{COMELEC--SEN}
-% Additional logo in the title page (conf, event...)
-%\extralogo{\includegraphics[width=2cm]{logo-cnrs}}
 \date{}
+
+% Logo additionnel sur la page de titre (pour une conf ou un évènement).
+%\extraLogo[width=2cm]{logo-cnrs}
 %------------------------------------------------------------------------------
 \begin{document}
 
@@ -72,17 +74,103 @@
 
 \begin{frame}
   \frametitle{Présentation standard}
-  \lipsum[1]
+  \begin{itemize}
+  \item Charte graphique officielle :
+    \begin{itemize}
+    \item Boîtes en bas de page
+    \item Frise de titre du frame
+    \item Police Helvetica (ou FIXME)
+    \item Logo Télécom Paris + IP Paris
+    \end{itemize}
+  \item Rupture avec la tradition \LaTeX :
+    \begin{itemize}
+    \item Police imposée
+    \item Pas de symboles de navigation Beamer
+    \end{itemize}
+  \end{itemize}
 \end{frame}
+%% Stop ici pour la documentation (voir Makefile).
+
+{
+  \tptthemekeys{latex,visual,slim,framecount}
+  \begin{frame}
+    \frametitle{Présentation \LaTeX{}ifiée et plus lisible}
+    \begin{itemize}
+    \item Option ``\texttt{latex}'' :
+      \begin{itemize}
+      \item Police Computer Modern ou Latin Modern
+      \item Symboles de navigation Beamer
+      \item Puces Beamer
+      \end{itemize}
+    \item Option ``\texttt{visual}'' :
+      \begin{itemize}
+      \item Gris plus foncé pour plus de contraste
+      \end{itemize}
+    \item Option ``\texttt{slim}'' :
+      \begin{itemize}
+      \item Réduit l'encombrement vertical
+      \end{itemize}
+    \item Option ``framecount'' :
+      \begin{itemize}
+      \item Affiche le nombre total de pages avec le nº
+      \end{itemize}
+    \item Autres options disponibles, voir la suite !
+    \end{itemize}
+  \end{frame}
+}
+
+% On doit recalculer les dimensions quand on a touché à l'en-tête
+% ou au pied de page.
+\tptcalculateheadfoot
+
+%------------------------------------------------------------------------------
+\section[Options]{Démonstration des options}
+%------------------------------------------------------------------------------
+\subsection[simples]{Options simples}
+%------------------------------------------------------------------------------
 
 {
-  \tptthemekeys{nohelvet,nonavsymbols}
+  \tptthemekeys{navsymbols=right}
   \begin{frame}
-    \frametitle{Avec polices et sans symboles Beamer}
+    \frametitle{Avec polices symboles Beamer alignés à droite}
+    \lipsum[1]
+  \end{frame}
+}
+
+{
+  \tptthemekeys{infolines}
+  \setbeamercolor{section in head/foot}{bg=tptred!20!white}
+  \setbeamercolor{subsection in head/foot}{bg=gray!50!white}
+  \begin{frame}
+    \frametitle{Avec les sections en en-tête}
+    \framesubtitle{(Active automatiquement l'option \texttt{slim})}
     \lipsum[2]
   \end{frame}
 }
 
+{
+  \tptthemekeys{logosaclay}
+  \begin{frame}
+    \frametitle{Avec le logo de Paris-Saclay}
+    \framesubtitle{(Par exemple pour des masters partagés)}
+    \lipsum[3]
+  \end{frame}
+}
+
+{
+  \tptthemekeys{logoipp}
+  \begin{frame}
+    \frametitle{Avec le logo de l'IP Paris séparé}
+    \framesubtitle{(pour compatibilité ascendante)}
+    \lipsum[4]
+  \end{frame}
+}
+\tptcalculateheadfoot
+
+%------------------------------------------------------------------------------
+\subsection[complexes]{Options complexes}
+%------------------------------------------------------------------------------
+
 {
   \tptthemekeys{bodyframecount}
   \setlength{\tptbottomboxesheight}{10pt}
@@ -99,7 +187,7 @@
   \begin{frame}
     \frametitle{Moins encombré, et avec le nombre de pages
       (... et d'autres couleurs !)}
-    \lipsum[3]
+    \lipsum[5]
   \end{frame}
 }
 \tptcalculateheadfoot
@@ -110,46 +198,48 @@
     \frametitle{Avec la frise alignée...}
     \framesubtitle{... sur le sous-titre, voir la ligne%
       \llap{\rule{20em}{0.4pt}}}
-    \lipsum[4]
+    \lipsum[6]
   \end{frame}
 }
 
 %------------------------------------------------------------------------------
 \section[1e] { 1e Section }
 %------------------------------------------------------------------------------
-\subsection[1su] { Sous section 1}
+\subsection[1su] { Sous section 1 : texte}
 %------------------------------------------------------------------------------
 \begin{frame}
 \frametitle{First Frame}
 
 \begin{itemize}
-\item bla bla bla
+\item \lipsum[7][1]
   \begin{itemize}
-    \item bla bla bla
-    \item bla bla bla
+    \item \lipsum[7][2]
+    \item \lipsum[7][3]
   \end{itemize}
-\item bla bla bla
+\item \lipsum[7][4]
 \end{itemize}
 
 \end{frame}
 %------------------------------------------------------------------------------
 \begin{frame}
-\frametitle{an other Frame}
+\frametitle{Another Frame}
 \framesubtitle{sub title}
 
 \begin{itemize}
-\item bla bla bla
+\item \lipsum[8][1]
   \begin{itemize}
-    \item bla bla bla
-    \item bla bla bla
+    \item \lipsum[8][2]
+    \item \lipsum[8][3]
   \end{itemize}
-\item bla bla bla
+\item \lipsum[8][4]
 \end{itemize}
 
 \end{frame}
 %------------------------------------------------------------------------------
+\subsection { Sous section 2 : illustrations}
+%------------------------------------------------------------------------------
 \begin{frame}
-\frametitle{an other Frame}
+\frametitle{Another Frame}
 
 \begin{center}
   \includegraphics[width=\textwidth]{cycii_PLL}
@@ -158,7 +248,7 @@
 \end{frame}
 %------------------------------------------------------------------------------
 \begin{frame}
-\frametitle{an other Frame from an \texttt{odg}}
+\frametitle{Another Frame from an \texttt{odg}}
 
 \begin{center}
    \includegraphics[height=.8\textheight,width=\textwidth,keepaspectratio]{diag}
@@ -175,10 +265,8 @@
 
 \end{frame}
 %------------------------------------------------------------------------------
-\subsection { Sous section 2}
-%------------------------------------------------------------------------------
 \begin{frame}
-\frametitle{an other Frame}
+\frametitle{Another Frame : Fig illustration}
 
 \begin{center}
   \includegraphics[width=\textwidth]{fpga-dff}
@@ -186,11 +274,12 @@
 
 \end{frame}
 %------------------------------------------------------------------------------
-\section[2e] { 2e Section }
+\section[2e] { 2e Section : blocs }
 %------------------------------------------------------------------------------
 \begin{frame}
-\frametitle{First Frame}
+\frametitle{Block Frame}
 
+\begin{block}{This is a block}
 \begin{itemize}
 \item bla bla bla
   \begin{itemize}
@@ -199,14 +288,14 @@
   \end{itemize}
 \item bla bla bla
 \end{itemize}
+\end{block}
 
 \end{frame}
 %------------------------------------------------------------------------------
-\subsection { Sous section 1}
-%------------------------------------------------------------------------------
 \begin{frame}
-\frametitle{an other Frame}
+\frametitle{AlertBlock Frame}
 
+\begin{alertblock}{This is a block}
 \begin{itemize}
 \item bla bla bla
   \begin{itemize}
@@ -215,57 +304,59 @@
   \end{itemize}
 \item bla bla bla
 \end{itemize}
+\end{alertblock}
 
 \end{frame}
 %------------------------------------------------------------------------------
-\subsection { Sous section 2}
-%------------------------------------------------------------------------------
 \begin{frame}
-\frametitle{an other Frame}
-
-\begin{itemize}
-\item bla bla bla
-  \begin{itemize}
-    \item bla bla bla
-    \item bla bla bla
-  \end{itemize}
-\item bla bla bla
-\end{itemize}
-
+  \frametitle{Parfois le bloc dépasse...}
+  \begin{alertblock}{This is a block}
+    \lipsum[9-12]
+  \end{alertblock}
 \end{frame}
 %------------------------------------------------------------------------------
-\section[3e] { 3e Section }
-%------------------------------------------------------------------------------
-\begin{frame}
-\frametitle{Block Frame}
-
-\begin{block}{This is a block}
-\begin{itemize}
-\item bla bla bla
-  \begin{itemize}
-    \item bla bla bla
-    \item bla bla bla
-  \end{itemize}
-\item bla bla bla
-\end{itemize}
-\end{block}
-
+\begin{frame}[plain]
+  \frametitle{... mais on peut toujours désactiver le pied de page}
+  \begin{alertblock}{This is a block}
+    \lipsum[13-16]
+  \end{alertblock}
 \end{frame}
 %------------------------------------------------------------------------------
+\section{\appendixname : Documentation pour usage avancé}
+%------------------------------------------------------------------------------
+\appendix
+\tptthemekeys{bodyframecount}
 \begin{frame}
-\frametitle{AlertBlock Frame}
-
-\begin{alertblock}{This is a block}
-\begin{itemize}
-\item bla bla bla
+  \frametitle{Autres options}
   \begin{itemize}
-    \item bla bla bla
-    \item bla bla bla
+  \item \texttt{bodyframecount} affiche le nombre total de pages
+    \emph{hors annexe} (regardez ci-dessous et le frame suivant
+    pour voir la différence).
+  \item \texttt{navsymbols=left|center|right} active les symboles de
+    navigation et spécifie leur alignement latéral (défaut \texttt{left}).
+  \item \texttt{nonavsymbols} désactive les symboles de navigation.
+  \item \texttt{align frametitle=}<\textrm{\textit{option}}> spécifie
+    l'alignement vertical du titre du frame par rapport à la frise :
+    \begin{itemize}
+    \item \texttt{baseline} : 1\textsuperscript{re} ligne du titre ;
+    \item \texttt{bottom baseline} : dernière ligne du titre ;
+    \item \texttt{bottom} : dessous du titre (pas pareil que la
+      baseline p.\,ex.\ avec un p ou un g) ;
+    \item \texttt{subtitle bottom, subtitle bottom baseline}
+      comme \texttt{bottom} et \texttt{bottom baseline} mais
+      avec le sous-titre.
+    \end{itemize}
+  \item \texttt{frametitle yshift=}<\textrm{\textit{dimension}}> :
+    ajuste l'alignement vertical du titre du frame.
+  \item \texttt{frametitle yshift if subtitle=}<\textrm{\textit{dimension}}> :
+    comme \texttt{frametitle yshift} mais seulement en présence
+    d'un sous-titre.
   \end{itemize}
-\item bla bla bla
-\end{itemize}
-\end{alertblock}
+\end{frame}
 
+\tptthemekeys{framecount}
+\begin{frame}
+  \frametitle{Dimensions modifiables}
 \end{frame}
 
 \end{document}
diff --git a/texinputs/beamerthemetptnew.sty b/texinputs/beamerthemetptnew.sty
index eeb1df6..62c0f1e 100644
--- a/texinputs/beamerthemetptnew.sty
+++ b/texinputs/beamerthemetptnew.sty
@@ -7,25 +7,66 @@
 \newcommand\tptthemekeys[1]{\pgfqkeys{/tpt theme}{#1}}
 \newcommand\tptthemevalueof[1]{\pgfkeysvalueof{/tpt theme/#1}}
 
-\RequirePackage{pgffor}
-\RequirePackage{graphicx}
-\RequirePackage{xcolor}
-
 % Police Helvetica par défaut, mais on sauve la police sans-serif d'avant
 % s'il y en a une (sinon c'est cmss).
 \let\tpt@save@sffamily=\sfdefault
 \RequirePackage{helvet}
 
+% On charge le thème infolines (puis on le désactive) pour que ses
+% templates soient disponibles.
+\RequirePackage{beamerouterthemeinfolines}
+\setbeamertemplate{headline}[default]
+\setbeamertemplate{footline}[default]
+
+% Désactivation de la sidebar par défaut, packages divers.
+\defbeamertemplate*{sidebar right}{tpt default}{}
+\RequirePackage{pgffor}
+\RequirePackage{graphicx}
+\RequirePackage{xcolor}
+
 % Options du package.
-\newif\iftpt@infolines\tpt@infolinesfalse
 \newif\iftpt@navsymbols\tpt@navsymbolstrue
 \newif\iftpt@titleaffiliation\tpt@titleaffiliationfalse
 \newif\iftpt@affiliation\tpt@affiliationfalse
 \tptthemekeys{%
-  infolines/.code={%
-    \tpt@infolinestrue
-    \setlength{\tptframetitlefriezesep}{1.5mm}%
+  %
+  % On définit ici ce que font les options, mais on ne les traitera
+  % qu'à la fin du package : comme la plupart spécifient des macros
+  % ou templates Beamer non encore définis, on attend qu'ils le soient.
+  % Donc ne pas spécifier ici de valeurs par défaut pour celles-là.
+  %
+  % Option official par défaut : pas de symboles de navigation,
+  % logo Télécom avec endossement IP Paris, affiliation IMT dans
+  % la page de titre, pas de nombre total de pages.
+  official/.style={nonavsymbols,titleaffiliation,framecount=false,official@},
+  official@/.code={%
+    \MainLogo{logo-tp-ipp}%
+    \affiliationlogointitle{logo-IMT}%
   },
+  %
+  % latex : garde les polices et symboles Beamer par défaut.
+  latex/.style={navsymbols,nohelvet,latex@},
+  latex@/.code={\setbeamertemplate{itemize items}[default]},
+  %
+  % visual : utilise un gris plus foncé pour les boîtes et sous-titre.
+  visual/.code={%
+    \colorlet{tptgray}{black!60}%
+    {\usebeamercolor{title in head/foot}}% Needed to reset frame title frieze.
+  },
+  %
+  % slim : réduit l'encombrement vertical des frames.
+  slim/.code={\setlength{\tptframetitlefriezesep}{1.5mm}},
+  %
+  % infolines : affiche les sections en en-tête.  Utilise l'option slim.
+  infolines/.style={slim,infolines@},
+  infolines@/.code={%
+    \setbeamertemplate{headline}[infolines theme]%
+    \tptcalculateheadfoot
+  },
+  %
+  % Symboles de navigation.  En plus de les activer ou les désactiver,
+  % on peut les aligner latéralement (met le contenu de "navsymbols align"
+  % comme option de la beamercolorbox qui contient les symboles).
   navsymbols/.is choice,
   navsymbols/.default=left,
   navsymbols/left/.style={navsymbols enable,navsymbols align=left},
@@ -35,36 +76,57 @@
   navsymbols align={},
   navsymbols enable/.code={%
     \setbeamertemplate{navigation symbols}[default]%
-    \tpt@navsymbolstrue},
+    \tpt@navsymbolstrue
+    \tptcalculateheadfoot
+  },
   nonavsymbols/.code={%
     \setbeamertemplate{navigation symbols}{}%
-    \tpt@navsymbolsfalse},
+    \tpt@navsymbolsfalse
+    \tptcalculateheadfoot
+  },
+  %
+  % Logos et affiliations.  Ces options contrôlent les logos de
+  % pied de page et de la page de titre.
   titleaffiliation/.is if=tpt@titleaffiliation,
   affiliation/.is if=tpt@affiliation,
-  logosaclay/.code={%
-    \affiliationlogoinfooter{logo-upsay-e}
-    \affiliationlogointitle{logo-upsay-violet}
-    \tpt@affiliationtrue
-    \tpt@titleaffiliationtrue
+  logosaclay/.style={affiliation,titleaffiliation,logosaclay@},
+  logosaclay@/.code={%
+    \affiliationlogoinfooter{logo-upsay-e}%
+    \affiliationlogointitle{logo-upsay-violet}%
+    \tptcalculateheadfoot
   },
-  logoipp/.code={%
-    \affiliationlogoinfooter{logo-IPP-small}
-    \affiliationlogointitle{logo-IMT}
-    \tpt@affiliationtrue
-    \tpt@titleaffiliationtrue
+  %
+  % logoipp, pour la compatibilité ascendante, sépare les logos
+  % Télécom et IP Paris.
+  logoipp/.style={affiliation,titleaffiliation,logoipp@},
+  logoipp@/.code={%
+    \MainLogo{tp}%
+    \affiliationlogoinfooter{logo-IPP-small}%
+    \setlength{\footerlogoheight}{.05118\paperwidth}%
+    \tptcalculateheadfoot
   },
+  %
+  % Police Helvetica (ou non).
   helvet/.is choice,
   helvet/.default=true,
   helvet/false/.code={\let\sfdefault=\tpt@save@sffamily\normalfont},
   helvet/true/.code={\renewcommand\sfdefault{phv}\normalfont},
   nohelvet/.style={helvet=false},
+  %
+  % Affichage du nombre total de pages (framecount), éventuellement
+  % sans tenir compte des annexes (bodyframecount), avec le nº de page.
   framecount/.is choice,
   framecount/false/.code={\setbeamertemplate{page in head/foot}[plain]},
   framecount/true/.code={\setbeamertemplate{page in head/foot}[total]},
   framecount/body/.code={\setbeamertemplate{page in head/foot}[body]},
-  framecount/.default=true, % "framecount" seul veut dire "framecount=true"...
-  framecount=false,         % ... mais par défaut il est mis à "false".
+  framecount/.default=true, % "framecount" seul veut dire "framecount=true".
   bodyframecount/.style={framecount=body},
+  %
+  % Alignement du titre de frame sur la frise.  Peut se faire sur
+  % la 1re ou la dernière ligne du titre (alignframetitle=baseline,
+  % ou =bottom baseline), ou le dessous du titre (=bottom), ou la
+  % dernière ligne ou le dessous du sous-titre (=subtitle bottom baseline,
+  % =subtitle bottom).
   alignframetitle/.style={%
     alignframetitle@template=#1,
     frame title yshift=0pt,
@@ -75,8 +137,16 @@
     \setbeamertemplate{frametitle content box}[#1]%
   },
   alignframetitle@template/.value required,
+  %
+  % Alias pour ceux qui trouvent plus lisibles les espaces dans les options.
   align frametitle/.style={alignframetitle=#1},
   align frame title/.style={alignframetitle=#1},
+  %
+  % Ajustements fins de l'alignement du titre de frame :
+  % frametitleyshift=<dimension> décale le titre vers le haut,
+  % frametitleyshiftifsubtitle=<dimension> idem mais uniquement
+  % s'il y a un sous-titre.  Des alias avec espaces sont fournis.
+  % Par défaut frametitleyshiftifsubtitle=8pt (défini plus bas).
   frametitleyshift/.code={%
     \setlength{\tptframetitleyshift}{#1}},
   frametitleyshift/.value required,
@@ -105,15 +175,7 @@
 
 % Taille des logos en bas de page.
 \tpt@deflength{\footerlogomargin}{1em}% Marge horizontale droite.
-\tpt@deflength{\footerlogoheight}{.05118\paperwidth}% Hauteur des logos.
-\AtEndOfPackage{%
-  % La hauteur est 5% de la page s'il y a des logos d'affiliation, 7,8% sinon.
-  % FIXME Est-ce vraiment ce qu'on veut ?
-  % FIXME Ne fonctionne pas si les logos sont modifiés au vol dans le document.
-  \ifx\insertAffLogo\@empty
-  \setlength{\footerlogoheight}{.07812\paperwidth}%
-  \fi
-}
+\tpt@deflength{\footerlogoheight}{.07812\paperwidth}% Hauteur des logos.
 
 %
 % Déclaration des logos.
@@ -204,21 +266,22 @@
 
 \definecolor{tptred}{RGB}{191,18,56} 
 \definecolor{tptbrown}{RGB}{109,80,71}
+\colorlet{tptgray}{black!40}
 
 \setbeamercolor{frametitle}{fg=tptred,bg=white}
 \setbeamercolor{structure}{fg=tptred}
 \setbeamercolor{title}{bg=white,fg=black}
-\setbeamercolor{subtitle}{bg=white,fg=black!40}
-\setbeamercolor{author in title frame}{bg=white,fg=black!40}
-\setbeamercolor{mail in title frame}{bg=white,fg=black!40}
-\setbeamercolor{date in title frame}{bg=white,fg=black!40}
+\setbeamercolor{subtitle}{bg=white,fg=tptgray}
+\setbeamercolor{author in title frame}{bg=white,fg=tptgray}
+\setbeamercolor{mail in title frame}{bg=white,fg=tptgray}
+\setbeamercolor{date in title frame}{bg=white,fg=tptgray}
 \setbeamercolor{page in head/foot}{fg=white,bg=tptred}
 \setbeamercolor{date in head/foot}{parent=page in head/foot}
 \setbeamercolor{institute in head/foot}{fg=white,bg=black}
 \setbeamercolor{author in head/foot}{fg=white,bg=tptbrown}
 \setbeamercolor{section in head/foot}{bg=white,fg=tptred}
 \setbeamercolor{subsection in head/foot}{bg=white,fg=tptbrown}
-\setbeamercolor{title in head/foot}{fg=white,bg=gray}
+\setbeamercolor{title in head/foot}{fg=white,bg=tptgray}
 \setbeamercolor{block title}{parent=structure,bg=normal text.bg!75!tptbrown}
 \setbeamercolor{block body}{bg=normal text.bg!98!tptbrown}
 \setbeamercolor{block title alerted}{use={normal text,alerted text},fg=alerted text.fg!75!normal text.fg,bg=normal text.bg!75!tptred}
@@ -236,7 +299,13 @@
 \setbeamerfont{author in head/foot}{size*={6}{7},series=\sffamily}
 \setbeamerfont{frametitle}{size*={14}{18},series=\bfseries}
 
-% FIXME déplacer ailleurs et documenter.
+%
+% \tptfrieze[baseline]{largeur}{hauteur}{couleur1,couleur2,...,couleurN}
+% génère une frise de N rectangles, chacun de la baseline, largeur,
+% hauteur et couleur spécifiées.
+%
+% Sert pour la page de titre et le titre des frames.
+%
 \newcommand*\tptfrieze[4][0pt]{%
   \foreach \tpt@color in {#4} {%
     \textcolor{\tpt@color}{\rule[#1]{#2}{#3}}%
@@ -245,7 +314,7 @@
 
 
 %
-% Title page.
+% Page de titre.
 %
 \defbeamertemplate*{title page}{tpt default}%
 {%
@@ -308,9 +377,6 @@
 }
 
 
-\defbeamertemplate*{sidebar right}{tpt default}{}
-
-
 %
 % Bas de page : boîtes de couleur et logo.
 %
@@ -446,9 +512,6 @@
 % et un template interne qui gère les options d'alignement
 % de l'ensemble titre + sous-titre.
 %
-
-% Largeurs calculées au vol.
-
 \defbeamertemplate*{frametitle}{tpt default}[1][]{%
   \tptthemekeys{#1}% Active les options données (comme pour le package).
   \nointerlineskip%  On ne saute pas de ligne après l'en-tête.
@@ -570,25 +633,6 @@
 \tpt@frametitle@defalias{subtitlebottombaseline}{subtitle bottom baseline}
 \tpt@frametitle@defalias{subtitlebottom}{subtitle bottom}
 
-%
-% L'en-tête.
-%
-\defbeamertemplate*{headline}{tpt default}
-{
-\iftpt@infolines
-  \leavevmode%
-  \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex]{section in head/foot}%
-    \insertsectionnavigationhorizontal{.5\paperwidth}{\hskip0pt plus1filll}{}%
-  \end{beamercolorbox}%
-  \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex]{subsection in head/foot}%
-    \insertsubsectionnavigationhorizontal{.5\paperwidth}{}{\hskip0pt plus1filll}%
-  \end{beamercolorbox}%
-  %\par\begin{beamercolorbox}[wd=\paperwidth,ht=1pt]{page in head/foot}\hfill{}\end{beamercolorbox}%
-  %\par\begin{beamercolorbox}[wd=\paperwidth,ht=1pt]{institute in head/foot}\hfill{}\end{beamercolorbox}%
-  %\par\begin{beamercolorbox}[wd=\paperwidth,ht=1pt]{author in head/foot}\hfill{}\end{beamercolorbox}%
-\fi%
-}
-
 %
 % Itemize labels.
 %
@@ -626,8 +670,12 @@
 
 %
 % Macro pour recalculer la hauteur des haut et bas de page.
+% On ne l'active qu'à la fin du package.
 %
-\newcommand*\tptcalculateheadfoot{\beamer@calculateheadfoot}
+\newcommand*\tptcalculateheadfoot{}
+\AtEndOfPackage{%
+  \renewcommand*\tptcalculateheadfoot{\beamer@calculateheadfoot}%
+}
 
 % .. from tptthemtheme?
 % Contents frame (FIXME part frame option).
@@ -653,4 +701,7 @@
 \mode<all>
 
 % On finit par traiter les options du package maintenant que tout est défini.
-\ProcessPgfOptions{/tpt theme}
+\tptthemekeys{official}       % Options par défaut.
+\ProcessPgfOptions{/tpt theme}% Options du package.
+
+\endinput
-- 
GitLab