Beamer : modifier un thème
24/11/2008
Les lignes d'en-tête et de pied de page
Les lignes de séparation sont simplement constituées d'une beamercolorbox
vide dont on ajuste en particulier la couleur de fond.
Les commandes suivantes peuvent être employées dans un fichier de style personnel, dans le préambule (s'il y a une ou deux valeurs seulement à modifier) et dans le corps du document entre deux environnements {frame}
pour introduire des ruptures de couleurs entre deux sections par exemple (pas forcément trés esthétique, mais bon !). Exceptions possibles à voir.
[haut]1 - Les lignes de séparation des éléments d'en-tête
Je prends pour exemple le thème Szeged
qui affiche ces lignes. Il utilise un thème externe beamerthemeouterminiframes.sty
qui redéfinit tout ce qui est en-tête et pied de page. Les lignes de séparation sont introduites de cette façon :
\defbeamertemplate*{headline}{miniframes theme} {% \begin{beamercolorbox}[colsep=1.5pt]{upper separation line head} \end{beamercolorbox} ... \begin{beamercolorbox}[colsep=1.5pt]{middle separation line head} \end{beamercolorbox} ... \begin{beamercolorbox}[colsep=1.5pt]{lower separation line head} \end{beamercolorbox} }
... en supprimant tout ce qui concerne les sections et sous-sections. Il est donc simple de modifier les couleurs de ces lignes par :
\setbeamercolor{upper separation line head}{bg=red} \setbeamercolor{middle separation line head}{bg=red} \setbeamercolor{lower separation line head}{bg=red}
[haut]2 - Les lignes de séparation des éléments du pied de page
On retrouve les 3 même lignes possibles dans le pied de page (seules les lignes supérieures et inférieures sont utilisées par ce thème.
\defbeamertemplate*{footline}{miniframes theme} {% \begin{beamercolorbox}[colsep=1.5pt]{upper separation line foot} \end{beamercolorbox} ... \begin{beamercolorbox}[colsep=1.5pt]{lower separation line foot} \end{beamercolorbox} }
Leur couleur est aussi modifiable avec la commande :
\setbeamercolor{upper separation line foot}{bg=red} \setbeamercolor{middle separation line foot}{bg=red} \setbeamercolor{lower separation line foot}{bg=red}
[haut]3 - Tout ensemble
On peut aussi attribuer une même couleur à ces 6 lignes en une seule commande :
\setbeamercolor{separation line}{bg=red}
C'est cette commande que l'on trouve (les couleurs sont parfois définies en-dehors des thèmes de couleurs) dans le fichier de thème beamerthemeSzeged.sty
:
\setbeamercolor{separation line}{use=structure,bg=structure.fg!50!bg}
Curieusement, il est possible d'obtenir une couleur différente en modifiant la couleur d'arrière-plan de l'en-tête (headline
) global.
Ici, le rouge obtenu semble bien être mélangé à autre chose (sûrement un pourcentage du bleu de structure
?) et on obtient en outre 2 couleurs différentes pour les noms de sections :
\setbeamercolor{headline}{bg=red}
[haut]4 - Lignes décoratives

Au lieu d'une couleur fixe, il est possible de rendre ces lignes un peu plus décoratives (?) en insérant un motif dans la beamercolorbox
, en variant la valeur de colsep
pour voir l'effet :
% ------- Definition de l'image -------------- \setbeamertemplate{ruledecor}{\includegraphics[width=\paperwidth]{redrule2}} \newcommand\insertruledecor{\usebeamertemplate*{ruledecor}} % -------------- Headline -------------------- \defbeamertemplate*{headline}{miniframes theme} {% \begin{beamercolorbox}[colsep=0.2ex]{upper separation line head} \insertruledecor \end{beamercolorbox} ... \begin{beamercolorbox}[colsep=0.1ex]{lower separation line head} \insertruledecor \end{beamercolorbox} }
On peut éliminer la partie de bordure rouge à gauche en ajoutant un leftskip
négatif, sans être bien sûre que ce soit une bonne idée. On peut aussi, en fonction du décor choisi, éliminer complétement la bordure en ne mettant pas de colsep
.
[haut]5 - Lignes courtes
Jouer sur la longueur des lignes