\documentclass[
french,
compacttoc,
twocoltoc,
% monotoc,
]{neoschool}

\title{Le thème Celestia pour Beamer}
\author{Version : 2.0.0 \quad\textemdash{}\quad Auteur : Razik Ikhlef\\[\baselineskip]
  {\normalfont\href{https://edulatex.xyz/celestia/}{https://edulatex.xyz/celestia/}}\\[\baselineskip]
  {\normalfont\href{mailto:razik.ikhlef@csilyon.fr}{razik.ikhlef@csilyon.fr}}}
\date{\today}

\begin{document}

\maketitle

\vspace*{-0.5cm}

\tableofcontents

\section{Introduction}

Le thème Celestia est un thème Beamer moderne et élégant, conçu pour créer des présentations professionnelles et esthétiques. Il offre une grande flexibilité de personnalisation tout en restant simple d'utilisation.

Celestia propose 7 palettes de couleurs, 10 styles de titre de diapositive, 11 styles de pied de page, 12 styles de blocs et 6 styles prédéfinis combinant ces éléments pour un rendu cohérent.

\subsection{Utilisation de base}

\begin{code}{latex}
\documentclass{beamer}
\usetheme{Celestia}

\title{Ma présentation}
\author{Mon nom}
\date{\today}

\begin{document}
\maketitle
\end{document}
\end{code}

\subsection{Compilation}

Le thème Celestia est conçu pour être compilé avec \texttt{lualatex} ou \texttt{xelatex} afin de bénéficier de la gestion complète des polices via \texttt{fontspec}. Un mode de compatibilité \texttt{pdflatex} est toutefois disponible.

\subsection{Depuis la version 1.2}

La version 2.0 change le rendu par défaut : titre de diapositive \texttt{ruled}, blocs \texttt{ribbon}, code \texttt{tint}, grands titres maigres et motif de disques sur la page de titre et les pages de section. La palette par défaut (\texttt{nordic}) et les couleurs des palettes sont inchangées. Le thème présente désormais sept palettes et six styles prédéfinis ; les autres restent acceptés. Les réglages suivants donnent le rendu le plus proche de la version 1.2 :

\begin{code}{latex}
\usetheme[
    frametitle=subtle, block=sober, codestyle=bar,
    titlesize=LargeLARGE, sectiontitlesize=LARGE,
    titleweight=bfseries, motif=false
]{Celestia}
\end{code}

\section{Langue}

\subsection{Option \texttt{language}}

Définit la langue de la présentation, passée automatiquement à l'extension \texttt{babel}. En mode \texttt{french}, les noms des environnements mathématiques (théorème, définition, etc.) et des légendes de code sont automatiquement traduits.

\textbf{Valeur par défaut :} \texttt{english}

\begin{code}{latex}
\usetheme[language=french]{Celestia}
\end{code}

\section{Styles prédéfinis}

\subsection{Option \texttt{style}}

Le thème propose des styles prédéfinis qui configurent automatiquement plusieurs options (palette, frametitle, footerstyle, block) pour un rendu cohérent.

\subsubsection*{Styles disponibles}
\begin{itemize}
    \item \textbf{celestia} : palette nordic, frametitle ruled, footerstyle info, block ribbon (le rendu par défaut) ;
    \item \textbf{modern} : palette nordic, frametitle subtle, footerstyle info, block sober ;
    \item \textbf{signature} : palette petrol, frametitle cosmic, footerstyle cosmic, block fullbar ;
    \item \textbf{executive} : palette palatial, frametitle leftbar, footerstyle fullbar, block fullbar ;
    \item \textbf{sober} : palette terracotta, frametitle gradient, footerstyle info, block sober ;
    \item \textbf{stage} : palette midnight à fond sombre, frametitle ruled, footerstyle minimalist, block ribbon, emphasis accent, titres de diapositive plus grands.
\end{itemize}

\begin{code}{latex}
\usetheme[style=signature]{Celestia}
\end{code}

Les options individuelles peuvent être ajoutées après le style pour personnaliser davantage :

\begin{code}{latex}
\usetheme[style=modern, palette=petrol]{Celestia}
\end{code}

\subsubsection*{Styles des versions 1.x}

Les huit autres styles des versions 1.x restent acceptés, avec leurs réglages et leurs couleurs : \texttt{minimal}, \texttt{studio}, \texttt{academic}, \texttt{design}, \texttt{simple}, \texttt{editorial}, \texttt{lumiere} et \texttt{chalk}.

\section{Palettes de couleurs}

\subsection{Palettes prédéfinies}

Le thème propose sept palettes. Chacune définit six couleurs : principale (\texttt{main}), accent, bloc standard (\texttt{blockcolor}), exemple (\texttt{examplecolor}), alerte (\texttt{alertcolor}) et fond (\texttt{background}).

\subsubsection{Option \texttt{palette}}

\textbf{Valeur par défaut :} \texttt{nordic}

\subsubsection*{Palettes disponibles}
\begin{itemize}
    \item \textbf{nordic} : bleus glacés scandinaves (défaut) ;
    \item \textbf{palatial} : bleu nuit avec accents dorés ;
    \item \textbf{petrol} : verts pétrole avec accents laiton ;
    \item \textbf{terracotta} : tons terre cuite chaleureux ;
    \item \textbf{velvet} : prune sombre avec accents dorés ;
    \item \textbf{midnight} : texte clair sur fond indigo profond ;
    \item \textbf{dusk} : texte clair sur fond sombre bleu-vert.
\end{itemize}

\begin{code}{latex}
\usetheme[palette=petrol]{Celestia}
\end{code}

\textbf{Note :} les palettes \textbf{midnight} et \textbf{dusk} utilisent un fond sombre. Elles conviennent bien aux présentations projetées dans des salles obscures.

\subsubsection*{Palettes des versions 1.x}

Les quinze autres palettes des versions 1.x restent acceptées, afin que les diaporamas existants et les styles prédéfinis qui les emploient gardent leurs couleurs : \texttt{chalk}, \texttt{copper}, \texttt{horizon}, \texttt{imperial}, \texttt{lumiere}, \texttt{manuscript}, \texttt{mineral}, \texttt{obsidian}, \texttt{oxford}, \texttt{prestige}, \texttt{royal}, \texttt{sakura}, \texttt{sapphire}, \texttt{steel} et \texttt{velours}.

\subsection{Palette personnalisée}

\subsubsection{Option \texttt{custompalette}}

Permet de définir une palette complète personnalisée en spécifiant six couleurs hexadécimales (sans le \texttt{\#}) dans l'ordre : couleur principale, accent, bloc standard, bloc exemple, bloc alerte, fond.

\begin{code}{latex}
\usetheme[
    custompalette={2C3E50,E74C3C,3498DB,27AE60,E67E22,ECF0F1}
]{Celestia}
\end{code}

\subsection{Couleurs individuelles}

Pour une personnalisation plus fine, chaque couleur peut être redéfinie séparément (codes hexadécimaux sans le \texttt{\#}) :

\begin{itemize}
    \item \textbf{maincolor} : couleur principale pour le texte et les titres ;
    \item \textbf{accentcolor} : couleur secondaire pour les éléments décoratifs ;
    \item \textbf{backgroundcolor} : couleur de fond des diapositives ;
    \item \textbf{codebackgroundcolor} : couleur de fond des blocs de code ;
    \item \textbf{blockcolor} : couleur des blocs standards (théorème, propriété, etc.) ;
    \item \textbf{examplecolor} : couleur des blocs exemple (définition, exemple, etc.) ;
    \item \textbf{alertcolor} : couleur des blocs d'alerte.
\end{itemize}

\begin{code}{latex}
\usetheme[
    maincolor=045549,
    accentcolor=E63946,
    backgroundcolor=FAFAFA,
    blockcolor=1A3B52
]{Celestia}
\end{code}

\subsection{Couleurs nommées accessibles}

Les couleurs de la palette active sont exposées globalement sous forme de noms de couleurs \LaTeX{}, directement utilisables dans \texttt{TikZ}, \verb|\color{...}|, \verb|\textcolor{...}|, etc. Leur valeur suit automatiquement la palette sélectionnée — inutile de recopier le code hexadécimal à la main.

\begin{itemize}
    \item \texttt{main} : couleur principale ;
    \item \texttt{accent} : couleur secondaire ;
    \item \texttt{background} : couleur de fond des diapositives ;
    \item \texttt{blockcolor}, \texttt{examplecolor}, \texttt{alertcolor} : couleurs des trois familles de blocs ;
    \item \texttt{blockbackground}, \texttt{examplebackground}, \texttt{alertbackground} : couleurs de fond intérieures des trois familles de blocs, calculées selon le style de bloc actif ;
    \item \texttt{emphasis}, \texttt{decoration} : couleurs résolues selon les options \texttt{emphasis} et \texttt{decoration}.
\end{itemize}

\begin{code}{latex}
\begin{tikzpicture}
    \fill[background] (0,0) rectangle (2,1);
    \draw[main, thick] (0,0) -- (2,1);
    \node[fill=accent, text=background] at (1,0.5) {Texte};
\end{tikzpicture}
\end{code}

\subsection{Option \texttt{unicolor}}

Active un mode monochrome où la couleur d'emphase est utilisée pour tous les éléments (blocs, items, décorations).

\begin{code}{latex}
\usetheme[unicolor]{Celestia}
\end{code}

\subsection{Options \texttt{emphasis} et \texttt{decoration}}

Ces deux options contrôlent les couleurs utilisées respectivement pour les éléments d'emphase (titres, items) et les décorations (lignes, ornements).

\subsubsection{Option \texttt{emphasis}}

\textbf{Valeur par défaut :} \texttt{main}

\begin{itemize}
    \item \textbf{main} : les titres et items utilisent la couleur principale. La couleur de décoration est alors automatiquement fixée à \texttt{accent} ;
    \item \textbf{accent} : les titres et items utilisent la couleur d'accent.
\end{itemize}

\subsubsection{Option \texttt{decoration}}

\textbf{Valeur par défaut :} suit la valeur de \texttt{emphasis}

Permet de choisir indépendamment la couleur des éléments décoratifs (\texttt{main} ou \texttt{accent}).

\begin{code}{latex}
\usetheme[emphasis=accent, decoration=main]{Celestia}
\end{code}

\section{Polices}

\subsection{Polices par défaut}

\begin{itemize}
    \item \textbf{Police principale (serif) :} Literata (repli : TeX Gyre Pagella) ;
    \item \textbf{Police sans empattements :} Inter avec graisses légères (repli : TeX Gyre Heros) ;
    \item \textbf{Police à chasse fixe :} IBM Plex Mono (repli : TeX Gyre Cursor).
\end{itemize}

\subsection{Personnalisation des polices}

\begin{itemize}
    \item \textbf{serifface} : police avec empattements (\texttt{literata} par défaut) ;
    \item \textbf{seriffaceoptions} : options \texttt{fontspec} pour la police serif ;
    \item \textbf{sansface} : police sans empattements (\texttt{inter} par défaut) ;
    \item \textbf{sansfaceoptions} : options pour la police sans (vide par défaut ; le thème applique automatiquement \texttt{Scale=0.88} et le poids léger selon le moteur) ;
    \item \textbf{monoface} : police à chasse fixe pour le code (\texttt{plex-mono} par défaut) ;
    \item \textbf{monofaceoptions} : options \texttt{fontspec} pour la police mono.
\end{itemize}

\begin{code}{latex}
\usetheme[
    serifface=EB Garamond,
    seriffaceoptions={Scale=1.1},
    sansface=Montserrat,
    monoface=Fira Code
]{Celestia}
\end{code}

Pour désactiver le chargement de la police serif : \texttt{serifface=none}.

\subsubsection*{Différences entre moteurs pour la recherche de polices}

LuaLaTeX et XeLaTeX utilisent tous deux \texttt{fontspec}, mais leur mécanisme de découverte des polices diffère. \textbf{LuaLaTeX} maintient sa propre base de données (\texttt{luaotfload}) et trouve les polices par nom de famille (ex. \texttt{Source Sans 3}) de façon fiable. \textbf{XeLaTeX} s'appuie sur les bibliothèques système (fontconfig sous Linux, Core Text sous macOS), qui peuvent ne pas reconnaître le même nom.

Si une police personnalisée n'est pas trouvée, le thème utilise la famille TeX Gyre en repli et émet un avertissement. Pour éviter ce repli sous XeLaTeX :

\begin{itemize}
    \item utiliser le nom de fichier exact au lieu du nom de famille : \texttt{sansface=SourceSans3-Regular.otf} ;
    \item vérifier le nom enregistré dans fontconfig avec \verb+fc-list | grep "Source"+ ;
    \item privilégier \textbf{LuaLaTeX} pour la découverte de polices la plus fiable.
\end{itemize}

\subsection{Option \texttt{allserif}}

Utilise la police principale avec empattements comme police par défaut et active le thème \texttt{serif} de Beamer.

\begin{code}{latex}
\usetheme[allserif]{Celestia}
\end{code}

\subsection{Option \texttt{semibold}}

Active le mode demi-gras (\textit{semibold}, poids 600) pour le gras des polices principale et sans empattements. En \texttt{pdflatex}, cela utilise \verb|\DeclareFontSeriesDefault|. En LuaLaTeX/XeLaTeX, cela ajoute automatiquement \texttt{BoldFeatures=\{Weight=600\}} aux options \texttt{fontspec}.

\textbf{Valeur par défaut :} \texttt{true}

\begin{code}{latex}
\usetheme[semibold=false]{Celestia}
\end{code}

\subsection{Option \texttt{light}}

Utilise des graisses légères pour le texte courant (poids 300 pour la police sans empattements en LuaLaTeX/XeLaTeX, ou l'option \texttt{light} pour Inter en pdflatex). Applique également une graisse plus légère à la police à chasse fixe.

\textbf{Valeur par défaut :} \texttt{true}

Avec les palettes à fond sombre du thème, le texte est composé en graisse normale, plus lisible en clair sur fond sombre. L'option \texttt{light}, donnée explicitement, y rétablit la graisse légère.

\begin{code}{latex}
\usetheme[light=false]{Celestia}
\end{code}

\subsection{Police mathématique}

\subsubsection{Option \texttt{mathface}}

Définit la police mathématique. Par défaut, les formules sont composées en Inter, la police du texte : lettres, chiffres et lettres grecques y prennent la graisse du texte (maigre ou normale selon l'option \texttt{light}), avec les trois moteurs. Les autres signes restent ceux de Computer Modern. Pour les autres valeurs prédéfinies, LuaLaTeX et XeLaTeX utilisent \texttt{unicode-math} ; en \texttt{pdflatex}, des extensions classiques sont chargées à la place.

\textbf{Valeur par défaut :} \texttt{inter}. Le thème revient à \texttt{iwona} avec l'option \texttt{allserif}, avec une autre police sans empattement qu'Inter, ou lorsque les polices Type~1 de l'extension \texttt{inter} ne sont pas installées.

\subsubsection*{Valeurs prédéfinies}
\begin{itemize}
    \item \textbf{inter} : Inter, la police du texte (défaut) ;
    \item \textbf{iwona} : police mathématique Iwona ;
    \item \textbf{kurier} : police mathématique Kurier ;
    \item \textbf{pagella} : TeX Gyre Pagella Math (\texttt{mathpazo} en pdflatex) ;
    \item \textbf{termes} : TeX Gyre Termes Math (\texttt{newtxmath} en pdflatex) ;
    \item \textbf{stix} : STIX Two Math (\texttt{stix2} en pdflatex) ;
    \item \textbf{libertinus} : Libertinus Math (\texttt{libertinust1math} en pdflatex) ;
    \item \textbf{fira} : Fira Math ;
    \item \textbf{noto} : Noto Sans Math ;
    \item \textbf{mtpro2} : MathTime Professional 2 (chargé via \texttt{mtpro2} dans les deux moteurs).
\end{itemize}

Toute autre valeur est passée directement à \verb|\setmathfont| (LuaLaTeX/XeLaTeX) ou \verb|\RequirePackage| (pdflatex).

\begin{code}{latex}
\usetheme[mathface=pagella]{Celestia}
\end{code}

\subsubsection{Option \texttt{mathfaceoptions}}

Options supplémentaires passées à \verb|\setmathfont| (LuaLaTeX/XeLaTeX uniquement).

\begin{code}{latex}
\usetheme[mathface=pagella, mathfaceoptions={Scale=1.05}]{Celestia}
\end{code}

\section{Mise en page}

\subsection{Marges}

\subsubsection{Option \texttt{margin}}

Définit la marge gauche et droite du contenu des diapositives.

\textbf{Valeur par défaut :} \texttt{2em}

\begin{code}{latex}
\usetheme[margin=1.5em]{Celestia}
\end{code}

\subsection{Style du titre de diapositive}

\subsubsection{Option \texttt{frametitle}}

Définit le style d'affichage du titre de chaque diapositive.

\textbf{Valeur par défaut :} \texttt{ruled}

\subsubsection*{Valeurs possibles}
\begin{itemize}
    \item \textbf{ruled} : ligne courte sous le titre, prolongée par un filet fin sur la largeur du texte (défaut) ;
    \item \textbf{subtle} : titre avec ligne courte sous le texte (défaut jusqu'à la version 1.2) ;
    \item \textbf{plainrule} : titre avec filet fin sur la largeur du texte ;
    \item \textbf{plain} : titre simple aligné à gauche sans décoration ;
    \item \textbf{cosmic} : titre avec ligne décorative horizontale et losange ;
    \item \textbf{line} : titre avec ligne horizontale pleine largeur ;
    \item \textbf{gradient} : titre sur un bandeau pâle pleine largeur ;
    \item \textbf{clean} : barre verticale colorée à gauche du titre ;
    \item \textbf{elegant} : titre sur fond coloré pleine largeur ;
    \item \textbf{leftbar} : barre verticale au bord gauche de la page, sur toute la hauteur du titre.
\end{itemize}

\begin{code}{latex}
\usetheme[frametitle=elegant]{Celestia}
\end{code}

Chaque style supporte un sous-titre via \verb|\framesubtitle{...}|.

\subsubsection{Espacement du titre}

Deux options, \texttt{frametitlepadding} et \texttt{frametitlebottomskip}, ajustent les espacements du titre quel que soit le style sélectionné. Elles servent à compacter la zone de titre afin de gagner de l'espace vertical, sans changer l'esthétique du style.

\begin{itemize}
    \item \textbf{frametitlepadding}=\texttt{dim} : padding interne (haut et bas) de la boîte du titre. Valeur par défaut selon le style (\texttt{1.35em} pour la majorité).
    \item \textbf{frametitlebottomskip}=\texttt{dim} : \verb|\vskip| ajouté après le titre, typiquement négatif (remonte le contenu). Valeur par défaut \texttt{-1em} pour la plupart des styles, ajustée pour \texttt{clean} avec sous-titre afin de préserver l'aération. Plus la valeur est négative, plus l'espace après le titre est réduit. Une valeur fournie explicitement par l'utilisateur prime sur les valeurs par défaut.
\end{itemize}

\begin{code}{latex}
\usetheme[frametitle=subtle, frametitlepadding=0.5em,
          frametitlebottomskip=-1.5em]{Celestia}
\end{code}

\textbf{Note :} sur les frames courtes, beamer centre verticalement le contenu, ce qui peut masquer l'effet de \texttt{frametitlebottomskip}. Pour un alignement haut strict, utiliser l'option \texttt{[t]} de \verb|\begin{frame}| ou la classe.

\subsection{Page de titre}

La page de titre présente le sujet, le titre en grand corps et le sous-titre. Un filet les sépare de l'auteur, de l'institution et de la date ; il n'est pas tracé quand ces trois champs sont vides.

\subsubsection{Option \texttt{titlealign}}

Définit l'alignement du contenu sur la page de titre.

\textbf{Valeur par défaut :} \texttt{left}

\textbf{Valeurs possibles :} \texttt{left}, \texttt{center}, \texttt{right}

\begin{code}{latex}
\usetheme[titlealign=center]{Celestia}
\end{code}

\subsubsection{Option \texttt{titlebackground}}

Permet de spécifier une image de fond (affichée avec une opacité réduite) pour la page de titre.

\begin{code}{latex}
\usetheme[titlebackground=images/background.jpg]{Celestia}
\end{code}

\subsubsection{Commande \texttt{\textbackslash subject}}

Définit un sujet affiché en capitales espacées au-dessus du titre principal sur la page de titre, ainsi que dans les métadonnées PDF.

\begin{code}{latex}
\subject{Sciences de l'informatique}
\title{Introduction aux graphes}
\end{code}

\subsubsection{Commande \texttt{\textbackslash titlegraphic}}

Place une image, un logo par exemple, sur la page de titre : en haut à droite, ou au-dessus du sujet quand le contenu est centré.

\begin{code}{latex}
\titlegraphic{\includegraphics[height=1.2cm]{logo}}
\end{code}

\subsubsection{Option \texttt{motif}}

Dessine un motif de disques pâles dans l'angle inférieur droit de la page de titre, des pages de section et de sous-section et des pages d'emphase. Sur la page de titre, une image donnée par \texttt{titlebackground} le remplace.

\textbf{Valeur par défaut :} \texttt{true}

\begin{code}{latex}
\usetheme[motif=false]{Celestia}
\end{code}

\section{Style des titres}

\subsection{Famille de police}

\subsubsection{Option \texttt{headstyle}}

Définit la famille de police pour les titres.

\textbf{Valeur par défaut :} \texttt{sffamily}

\textbf{Valeurs possibles :} \texttt{sffamily} (sans empattements), \texttt{rmfamily} (avec empattements)

\subsection{Forme des caractères}

\subsubsection{Option \texttt{headshape}}

Définit la forme des caractères pour les titres.

\textbf{Valeur par défaut :} \texttt{normal}

\textbf{Valeurs possibles :} \texttt{normal}, \texttt{sc} (petites capitales), \texttt{it} (italique)

\subsection{Graisse}

\subsubsection{Option \texttt{headweight}}

Définit la graisse des titres de diapositive.

\textbf{Valeur par défaut :} \texttt{bfseries}

\textbf{Valeurs possibles :} \texttt{bfseries} (gras), \texttt{mdseries} (poids moyen)

\subsubsection{Option \texttt{titleweight}}

Définit la graisse des grands titres : titre de la page de titre, titres des pages de section et de sous-section.

\textbf{Valeur par défaut :} \texttt{mdseries}

\textbf{Valeurs possibles :} \texttt{mdseries} (graisse du texte, maigre par défaut), \texttt{bfseries} (gras)

\subsection{Graisse des titres de blocs}

\subsubsection{Option \texttt{blocktitleweight}}

Définit la graisse des titres des blocs tcolorbox.

\textbf{Valeur par défaut :} \texttt{bfseries}

\textbf{Valeurs possibles :} \texttt{bfseries} (gras), \texttt{mdseries} (poids moyen)

\subsection{Taille des titres}

Le thème permet de personnaliser la taille de différents éléments de titre. En plus des tailles LaTeX standard, Celestia définit des tailles intermédiaires pour un contrôle plus fin :

\begin{itemize}
    \item \textbf{titlesize} : taille du titre principal sur la page de titre (\texttt{Huge} par défaut) ;
    \item \textbf{frametitlesize} : taille du titre de diapositive (\texttt{normalsize} par défaut) ;
    \item \textbf{sectiontitlesize} : taille du titre de section (\texttt{huge} par défaut) ;
    \item \textbf{subtitlesize} : taille du sous-titre (\texttt{large} par défaut) ;
    \item \textbf{footertextsize} : taille du texte du pied de page (\texttt{tiny} par défaut).
\end{itemize}

\subsubsection*{Tailles disponibles}

Les tailles LaTeX standard sont disponibles : \texttt{tiny}, \texttt{scriptsize}, \texttt{footnotesize}, \texttt{small}, \texttt{normalsize}, \texttt{large}, \texttt{Large}, \texttt{LARGE}, \texttt{huge}, \texttt{Huge}.

Celestia ajoute des tailles intermédiaires entre chaque paire consécutive :

\begin{itemize}
    \item \texttt{tinyscriptsize} (entre tiny et scriptsize) ;
    \item \texttt{scriptsizefootnotesize} (entre scriptsize et footnotesize) ;
    \item \texttt{footnotesizesmall} (entre footnotesize et small) ;
    \item \texttt{smallnormalsize} (entre small et normalsize) ;
    \item \texttt{normalsizelarge} (entre normalsize et large) ;
    \item \texttt{largeLarge} (entre large et Large) ;
    \item \texttt{LargeLARGE} (entre Large et LARGE) ;
    \item \texttt{LARGEhuge} (entre LARGE et huge) ;
    \item \texttt{hugeHuge} (entre huge et Huge).
\end{itemize}

\begin{code}{latex}
\usetheme[
    titlesize=hugeHuge,
    frametitlesize=large,
    sectiontitlesize=LARGEhuge,
    footertextsize=scriptsize
]{Celestia}
\end{code}

\subsection{Exemple complet}

\begin{code}{latex}
\usetheme[
    headstyle=rmfamily,
    headshape=sc,
    headweight=mdseries,
    titleweight=bfseries,
    blocktitleweight=bfseries
]{Celestia}
\end{code}

\section{Pied de page}

\subsection{Option \texttt{footerstyle}}

Définit le style du pied de page (masqué sur la première diapositive).

\textbf{Valeur par défaut :} \texttt{info}

\subsubsection*{Valeurs possibles}
\begin{itemize}
    \item \textbf{info} : auteur et titre à gauche, numéro à droite (défaut) ;
    \item \textbf{minimalist} : numéro de page discret en bas à droite ;
    \item \textbf{prestige} : trois colonnes (auteur, titre, numéro) séparées par des points médians ;
    \item \textbf{cosmic} : trois colonnes séparées par des losanges décoratifs ;
    \item \textbf{badge} : numéro dans une étiquette colorée en bas à droite, auteur et titre en bas à gauche ;
    \item \textbf{classic} : barre divisée en quatre zones à fond coloré alterné (auteur / titre / date / numéro) ;
    \item \textbf{fullbar} : barre entièrement colorée, quatre entrées séparées par des points ;
    \item \textbf{ruled} : trois colonnes sous un filet tracé sur la largeur du texte ;
    \item \textbf{framed} : trois colonnes sous un filet tracé sur toute la largeur de la page ;
    \item \textbf{boxed} : trois colonnes, numéro dans une étiquette teintée ;
    \item \textbf{boxedruled} : filet sur la largeur du texte et numéro dans une étiquette teintée.
\end{itemize}

Le numéro s'écrit sous la forme \og 12 / 40 \fg{} (diapositive courante, puis total), sauf dans le style \texttt{minimalist} qui ne donne que le numéro courant.

\begin{code}{latex}
\usetheme[footerstyle=info]{Celestia}
\end{code}

\subsection{Option \texttt{progressbar}}

Ajoute une barre de progression en bas de chaque diapositive. Pour les styles \texttt{info} et \texttt{minimalist}, la barre est intégrée nativement dans le pied de page. Pour les autres styles, elle est affichée en superposition au bas de la page.

\textbf{Valeur par défaut :} \texttt{false}

\begin{code}{latex}
\usetheme[progressbar]{Celestia}
\end{code}

\subsection{Option \texttt{shownavigation}}

Affiche les symboles de navigation Beamer au-dessus du pied de page, à droite (désactivés par défaut).

\begin{code}{latex}
\usetheme[shownavigation]{Celestia}
\end{code}

\section{Table des matières}

Les numéros de section occupent une colonne de largeur fixe : les titres s'alignent sur une même verticale. L'écart entre deux sections se resserre de lui-même quand la liste est longue.

\subsection{Option \texttt{compacttoc}}

Réduit l'espacement vertical entre les entrées de la table des matières.

\begin{code}{latex}
\usetheme[compacttoc]{Celestia}
\end{code}

\subsection{Option \texttt{twocoltoc}}

Répartit automatiquement les sections sur deux colonnes.

\begin{code}{latex}
\usetheme[twocoltoc]{Celestia}
\end{code}

\subsection{Commande \texttt{\textbackslash twocolumntoc}}

Permet de contrôler manuellement la répartition sur deux colonnes en spécifiant les plages de sections.

\begin{code}{latex}
\twocolumntoc[1][5][10]
\end{code}

Cet exemple place les sections 1 à 4 dans la colonne gauche et les sections 5 à 10 dans la colonne droite.

\section{Blocs}

\subsection{Types de blocs}

Trois types de blocs Beamer sont disponibles, chacun associé à une couleur sémantique :

\begin{code}{latex}
\begin{block}{Titre du bloc}
    Contenu du bloc standard (couleur blockcolor)
\end{block}

\begin{exampleblock}{Exemple}
    Contenu du bloc exemple (couleur examplecolor)
\end{exampleblock}

\begin{alertblock}{Attention}
    Contenu du bloc alerte (couleur alertcolor)
\end{alertblock}
\end{code}

\subsection{Style des blocs}

\subsubsection{Option \texttt{block}}

Définit le style visuel des blocs.

\textbf{Valeur par défaut :} \texttt{ribbon}

\subsubsection*{Styles tcolorbox}
\begin{itemize}
    \item \textbf{ribbon} : barre latérale à la couleur du bloc, titre sur un bandeau pâle de la même teinte, texte sur le fond de la page (défaut) ;
    \item \textbf{line} : barre latérale à la couleur du bloc, titre coloré, sans aucun fond ;
    \item \textbf{fullbar} : barre latérale, titre sur un bandeau, texte sur un fond pâle ;
    \item \textbf{bar} : barre latérale, titre et texte sur un même fond pâle ;
    \item \textbf{sober} : fond très pâle sans bordure, titre coloré (défaut jusqu'à la version 1.2) ;
    \item \textbf{soft} : fond pâle uni, titre coloré ;
    \item \textbf{shaded} : fond pâle, titre sur un bandeau plus soutenu ;
    \item \textbf{noback} : sans fond ni barre, titre coloré ;
    \item \textbf{plain} : cadre à la couleur du bloc, titre sur un bandeau plein.
\end{itemize}

Les fonds pâles sont dessinés pour chaque palette : un même ton presque neutre pour tous les blocs, et un ton chaud pour les blocs d'alerte. La couleur du bloc se lit dans son titre, sa barre ou son bandeau.

\subsubsection*{Styles Beamer natifs}
\begin{itemize}
    \item \textbf{native} : blocs Beamer natifs arrondis avec fond coloré ;
    \item \textbf{native-shadow} : blocs Beamer natifs arrondis avec ombre ;
    \item \textbf{native-default} : blocs Beamer par défaut (rectangulaires).
\end{itemize}

\begin{code}{latex}
\usetheme[block=line]{Celestia}
\end{code}

\subsubsection{Options d'opacité des blocs}

Par défaut, les fonds des blocs ne dépendent d'aucune opacité. Donner à l'une des options suivantes une autre valeur que sa valeur par défaut rétablit, pour le style concerné, le fond des versions 1.x : la couleur du bloc mélangée au fond de la page, dans la proportion indiquée (valeur décimale entre 0 et 1) :

\begin{itemize}
    \item \textbf{shadedblockopacity} : opacité du bandeau de titre pour le style \texttt{shaded} (\texttt{0.30} par défaut) ;
    \item \textbf{soberblockopacity} : opacité pour le style \texttt{sober} (\texttt{0.18} par défaut) ;
    \item \textbf{softblockopacity} : opacité pour le style \texttt{soft} (\texttt{0.18} par défaut) ;
    \item \textbf{barblockopacity} : opacité pour le style \texttt{bar} (\texttt{0.05} par défaut).
\end{itemize}

\begin{code}{latex}
\usetheme[block=sober, soberblockopacity=0.25]{Celestia}
\end{code}

\section{Pages spéciales}

\subsection{Pages d'emphase (\textit{standout})}

L'option de frame \texttt{standout} transforme une diapositive en page d'emphase avec fond coloré inversé, sans titre ni pied de page. C'est une option de frame uniquement : elle ne se passe pas dans les options du thème.

\begin{code}{latex}
\usetheme{Celestia}

\begin{frame}[standout]
    Message important

    \vspace{1em}
    \large --- Citation
\end{frame}
\end{code}

\subsection{Pages de citation}

L'option de frame \texttt{quote} compose une citation centrée, en grand corps, sur un fond teinté, sans titre ni pied de page.

\begin{code}{latex}
\begin{frame}[quote]
    Le texte de la citation.\\[0.6em]
    {\small Son auteur}
\end{frame}
\end{code}

\subsection{Pages d'image}

\verb|\imagepage[légende]{fichier}| crée une diapositive dont l'image couvre toute la page. La légende, facultative, s'affiche en bas à gauche. La commande s'emploie hors de tout environnement \texttt{frame}.

\begin{code}{latex}
\imagepage[Maquette du site, échelle 1/200.]{images/maquette.jpg}
\end{code}

\subsection{Pages de section}

\subsubsection{Options des pages de section}

Contrôle l'affichage automatique des pages de section. Le titre de la section y figure en grand corps, sur un fond teinté, sous le titre du diaporama rappelé en capitales espacées.

\textbf{Valeurs par défaut :} \texttt{sectionpage=true}, \texttt{sectionnumber=false}, \texttt{subsectionpage=false}

\begin{itemize}
    \item \textbf{sectionpage} : active ou désactive les pages de section automatiques ;
    \item \textbf{sectionnumber} : place le numéro de section devant le titre ;
    \item \textbf{subsectionpage} : ajoute une page au début de chaque sous-section ; le nom de la section y est rappelé au-dessus du titre de la sous-section.
\end{itemize}

\begin{code}{latex}
\usetheme[sectionpage=false]{Celestia}
\usetheme[sectionnumber]{Celestia}
\usetheme[subsectionpage]{Celestia}
\end{code}

Les commandes \verb|\sectionpage| et \verb|\subsectionpage| composent ces pages à la demande, dans une \texttt{frame}.

Pour désactiver manuellement dans le document :

\begin{code}{latex}
\AtBeginSection{}
\end{code}

\section{Code source}

\subsection{Gestionnaire de code}

\subsubsection{Option \texttt{codehandler}}

Définit le système de gestion de la coloration syntaxique.

\textbf{Valeur par défaut :} \texttt{listings}

\textbf{Valeurs possibles :} \texttt{listings} (extension \texttt{listings}) ou \texttt{minted} (extension \texttt{minted}, nécessite Pygments)

\begin{code}{latex}
\usetheme[codehandler=minted]{Celestia}
\end{code}

En mode \texttt{french}, le nom des légendes de code est automatiquement remplacé par \og Programme \fg.

\subsection{Style des blocs de code}

\subsubsection{Option \texttt{codestyle}}

Définit le style visuel des blocs de code.

\textbf{Valeur par défaut :} \texttt{tint}

\subsubsection*{Valeurs possibles}
\begin{itemize}
    \item \textbf{tint} : fond pâle neutre, sans cadre ni barre (défaut) ;
    \item \textbf{bar} : barre latérale colorée à gauche (défaut jusqu'à la version 1.2) ;
    \item \textbf{frame} : cadre fin à coins arrondis ;
    \item \textbf{macos} : style fenêtre macOS avec trois boutons colorés ;
    \item \textbf{box} : boîte avec barre supérieure colorée.
\end{itemize}

\begin{code}{latex}
\usetheme[codestyle=macos]{Celestia}
\end{code}

\subsection{Encadrement du code}

\subsubsection{Options du cadre}

Contrôle l'encadrement des blocs de code avec \texttt{tcolorbox}.

\textbf{Par défaut :} \texttt{codebox=true} (encadrement activé)

\begin{itemize}
    \item \textbf{codebox} : active l'encadrement (actif par défaut ; utiliser \texttt{codebox=false} pour désactiver) ;
    \item \textbf{nocodeframe} : conserve \texttt{tcolorbox} mais sans bordure visible (styles \texttt{frame}, \texttt{macos} et \texttt{box} ; les styles \texttt{tint} et \texttt{bar} n'ont pas de cadre).
\end{itemize}

\begin{code}{latex}
\usetheme[codebox=false]{Celestia}
\end{code}

\subsection{Utilisation avec \texttt{listings}}

\begin{code}{latex}
\begin{lstlisting}[style=python]
def fibonacci(n):
    if n <= 1:
        return n
    return fibonacci(n-1) + fibonacci(n-2)
\end{lstlisting}
\end{code}

Un style \texttt{python} est prédéfini avec la coloration des mots-clés et des fonctions intégrées de Python.

\section{Formatage du texte}

\subsection{Commandes spéciales}

\begin{itemize}
    \item \verb|\texttt{texte}| : police monospace à taille réduite ;
    \item \verb|\alert{texte}| : texte avec couleur d'alerte ;
    \item \verb|\mathterm{x}| : met en forme un terme mathématique (gras, couleur bloc) ;
    \item \verb|\mathdef{x}| : met en forme une définition mathématique (italique, couleur exemple) ;
    \item \verb+\cverb|code|+ : code \LaTeX{} en ligne, coloré, qui s'emploie comme \verb|\verb| dans une diapositive \texttt{fragile}.
\end{itemize}

\subsection{Option \texttt{boldurl}}

Active les URLs en gras dans les hyperliens.

\begin{code}{latex}
\usetheme[boldurl]{Celestia}
\end{code}

\section{Composants}

Les commandes \verb|\source|, \verb|\keyfigure|, \verb|\tablehead| et \verb|\imagepage| ne sont définies par le thème que si le document ne définit pas déjà une commande du même nom : dans ce cas, c'est celle du document qui est conservée.

\subsection{Source d'un document}

\verb|\source{...}| inscrit une ligne de source en petit corps, au-dessus du pied de page, sur la marge gauche.

\begin{code}{latex}
\begin{frame}{Population}
    ...
    \source{Source : Insee, 2025.}
\end{frame}
\end{code}

\subsection{Chiffre clé}

\verb|\keyfigure{nombre}{libellé}| compose un nombre en grand corps, suivi de son libellé. La commande occupe la largeur de la colonne où elle est placée.

\begin{code}{latex}
\begin{columns}
    \begin{column}{0.3\textwidth}
        \keyfigure{298}{mètres carrés}
    \end{column}
    \begin{column}{0.3\textwidth}
        \keyfigure{3}{maisons en gradins}
    \end{column}
\end{columns}
\end{code}

\subsection{Tableaux}

Les filets des tableaux prennent une teinte adoucie de la couleur principale. \verb|\tablehead{...}| met en forme une cellule d'en-tête.

\begin{code}{latex}
\begin{tabular}{lr}
    \hline
    \tablehead{Variante} & \tablehead{Surface} \\
    \hline
    Bande & 312 \\
    Gradins & 298 \\
    \hline
\end{tabular}
\end{code}

\section{Environnements mathématiques}

Le thème définit des environnements pour les théorèmes et définitions avec une syntaxe simplifiée basée sur \texttt{tcolorbox}. Chaque environnement accepte des options entre crochets : \texttt{title} pour le sous-titre et \texttt{label} pour la référence croisée.

\subsection{Environnements de type \textit{block}}

\begin{itemize}
    \item \texttt{theorem} : théorème ;
    \item \texttt{lemma} : lemme ;
    \item \texttt{proposition} : proposition ;
    \item \texttt{corollary} : corollaire ;
    \item \texttt{property} / \texttt{properties} : propriété / propriétés.
\end{itemize}

\subsection{Environnements de type \textit{example}}

\begin{itemize}
    \item \texttt{definition} / \texttt{definitions} : définition / définitions ;
    \item \texttt{example} / \texttt{examples} : exemple / exemples.
\end{itemize}

\subsection{Autres environnements}

\begin{itemize}
    \item \texttt{remark} / \texttt{remarks} : remarque / remarques, à la couleur du texte ;
    \item \texttt{method} : méthode, à la couleur d'accent ;
    \item \texttt{activity} / \texttt{activities} : activité / activités, à la couleur d'accent ;
    \item \texttt{application} / \texttt{applications} : application / applications, à la couleur d'accent.
\end{itemize}

La couleur d'alerte est réservée aux blocs \texttt{alertblock}.

\subsection{Syntaxe}

\begin{code}{latex}
\begin{theorem}[title=Pythagore, label=th:pyth]
    Dans un triangle rectangle, $a^2 + b^2 = c^2$.
\end{theorem}
\end{code}

Cette syntaxe clé-valeur s'applique à tous les styles de blocs basés sur \texttt{tcolorbox} (par défaut). Avec les styles natifs (\texttt{native}, \texttt{native-shadow} et \texttt{native-default}), les environnements acceptent \texttt{[title=...]} seul, sans \texttt{label} ni option \texttt{tcolorbox}, ainsi que la syntaxe Beamer habituelle :

\begin{code}{latex}
\begin{theorem}[Pythagore]
    Dans un triangle rectangle, $a^2 + b^2 = c^2$.
\end{theorem}
\end{code}

\textbf{Attention :} avec les blocs tcolorbox, l'écriture \texttt{[Pythagore]}, sans \texttt{title=}, provoque une erreur de compilation.

Chaque environnement dispose également d'une version étoilée (non numérotée) :

\begin{code}{latex}
\begin{definition*}[title=Nombre premier]
    Un nombre premier est un entier naturel ayant exactement
    deux diviseurs distincts.
\end{definition*}
\end{code}

Des options \texttt{tcolorbox} supplémentaires peuvent être passées directement :

\begin{code}{latex}
\begin{remark}[title=Important, colback=red!5]
    Contenu avec personnalisation locale.
\end{remark}
\end{code}

\subsection{Indications d'\textit{overlay}}

Chaque environnement accepte une indication d'\textit{overlay} Beamer entre chevrons, placée immédiatement après le nom :

\begin{code}{latex}
\begin{definition}<2->[title=Entiers naturels]
    L'ensemble $\mathbb{N}$ apparait à partir du deuxième overlay.
\end{definition}
\end{code}

Le compteur de l'environnement est figé entre les \textit{overlays} d'une même \textit{frame}, qu'on utilise la syntaxe \verb|<...>| ou la commande \verb|\pause|. La numérotation reste donc stable d'un \textit{overlay} à l'autre.

\section{Environnement \texttt{quiz}}

L'environnement \texttt{quiz} permet de créer des questionnaires à choix multiples avec révélation de la bonne réponse sur la deuxième superposition (\textit{overlay}).

\begin{code}{latex}
\begin{quiz}
    \item Réponse A
    \item Réponse B
    \correct{Réponse C (bonne réponse)}
    \item Réponse D
\end{quiz}
\end{code}

La commande \verb|\correct{...}| marque la bonne réponse, qui apparaît en couleur d'alerte sur \texttt{<2>}.

\section{Bibliographie}

Le thème offre un support automatique pour \texttt{biblatex} et \texttt{natbib}. Les couleurs des entrées bibliographiques sont configurées pour s'intégrer au thème.

\begin{code}{latex}
\usepackage[backend=biber]{biblatex}
\addbibresource{references.bib}

\begin{frame}{Références}
    \printbibliography
\end{frame}
\end{code}

\section{Récapitulatif des options}

\subsection{Options booléennes}

\begin{tabular}{lll}
    \textbf{Option} & \textbf{Défaut} & \textbf{Description} \\
    \hline
    \texttt{allserif} & \texttt{false} & Police serif pour tout le document \\
    \texttt{semibold} & \texttt{true} & Gras en mode demi-gras (poids 600) \\
    \texttt{light} & \texttt{true} & Graisses légères pour le texte courant \\
    \texttt{unicolor} & \texttt{false} & Mode monochrome \\
    \texttt{compacttoc} & \texttt{false} & Table des matières compacte \\
    \texttt{twocoltoc} & \texttt{false} & Table des matières sur deux colonnes \\
    \texttt{codebox} & \texttt{true} & Encadrement des blocs de code \\
    \texttt{nocodeframe} & \texttt{false} & Tcolorbox sans bordure pour le code \\
    \texttt{shownavigation} & \texttt{false} & Symboles de navigation Beamer \\
    \texttt{boldurl} & \texttt{false} & URLs en gras \\
    \texttt{sectionpage} & \texttt{true} & Pages de section automatiques \\
    \texttt{sectionnumber} & \texttt{false} & Numéro devant le titre de section \\
    \texttt{subsectionpage} & \texttt{false} & Pages de sous-section automatiques \\
    \texttt{motif} & \texttt{true} & Motif de la page de titre et des pages de section \\
    \texttt{progressbar} & \texttt{false} & Barre de progression en pied de page \\
\end{tabular}

\subsection{Options à valeur}

\begin{tabular}{lll}
    \textbf{Option} & \textbf{Défaut} & \textbf{Description} \\
    \hline
    \texttt{language} & \texttt{english} & Langue du document \\
    \texttt{palette} & \texttt{nordic} & Palette de couleurs \\
    \texttt{style} & --- & Style prédéfini \\
    \texttt{block} & \texttt{ribbon} & Style des blocs \\
    \texttt{frametitle} & \texttt{ruled} & Style du titre de diapositive \\
    \texttt{footerstyle} & \texttt{info} & Style du pied de page \\
    \texttt{codestyle} & \texttt{tint} & Style des blocs de code \\
    \texttt{codehandler} & \texttt{listings} & Gestionnaire de code \\
    \texttt{titlealign} & \texttt{left} & Alignement du titre \\
    \texttt{emphasis} & \texttt{main} & Couleur d'emphase \\
    \texttt{decoration} & (suit emphasis) & Couleur de décoration \\
    \texttt{margin} & \texttt{2em} & Marge des diapositives \\
    \texttt{serifface} & \texttt{literata} & Police serif \\
    \texttt{sansface} & \texttt{inter} & Police sans empattements \\
    \texttt{monoface} & \texttt{plex-mono} & Police à chasse fixe \\
    \texttt{seriffaceoptions} & (vide) & Options de la police serif \\
    \texttt{sansfaceoptions} & (vide) & Options de la police sans \\
    \texttt{monofaceoptions} & (vide) & Options de la police mono \\
    \texttt{mathface} & \texttt{inter} & Police mathématique \\
    \texttt{mathfaceoptions} & (vide) & Options de la police mathématique \\
    \texttt{custompalette} & (vide) & Palette personnalisée (6 couleurs hex) \\
    \texttt{titlebackground} & (vide) & Image de fond du titre \\
    \texttt{shadedblockopacity} & \texttt{0.30} & Opacité du style shaded (fond des versions 1.x) \\
    \texttt{soberblockopacity} & \texttt{0.18} & Opacité du style sober (fond des versions 1.x) \\
    \texttt{softblockopacity} & \texttt{0.18} & Opacité du style soft (fond des versions 1.x) \\
    \texttt{barblockopacity} & \texttt{0.05} & Opacité du style bar (fond des versions 1.x) \\
    \texttt{codebackgroundcolor} & (vide) & Couleur de fond du code \\
    \texttt{headstyle} & \texttt{sffamily} & Famille de police des titres \\
    \texttt{headshape} & \texttt{normal} & Forme des titres \\
    \texttt{headweight} & \texttt{bfseries} & Graisse des titres de diapositive \\
    \texttt{titleweight} & \texttt{mdseries} & Graisse des grands titres \\
    \texttt{blocktitleweight} & \texttt{bfseries} & Graisse des titres de blocs \\
    \texttt{titlesize} & \texttt{Huge} & Taille du titre principal \\
    \texttt{frametitlesize} & \texttt{normalsize} & Taille du titre de frame \\
    \texttt{sectiontitlesize} & \texttt{huge} & Taille du titre de section \\
    \texttt{subtitlesize} & \texttt{large} & Taille du sous-titre \\
    \texttt{footertextsize} & \texttt{tiny} & Taille du texte du pied de page \\
\end{tabular}

\section{Couleurs accessibles}

Le thème définit des noms de couleurs utilisables dans tout le document :

\begin{itemize}
    \item \texttt{main} : couleur principale ;
    \item \texttt{accent} : couleur d'accent ;
    \item \texttt{background} : couleur de fond ;
    \item \texttt{emphasis} : couleur d'emphase (dépend de l'option \texttt{emphasis}) ;
    \item \texttt{decoration} : couleur de décoration (dépend de l'option \texttt{decoration}) ;
    \item \texttt{blockcolor} : couleur des blocs standards ;
    \item \texttt{examplecolor} : couleur des blocs exemple ;
    \item \texttt{alertcolor} : couleur des blocs alerte ;
    \item \texttt{blockbackground} : couleur de fond intérieure des blocs standards ;
    \item \texttt{examplebackground} : couleur de fond intérieure des blocs exemple ;
    \item \texttt{alertbackground} : couleur de fond intérieure des blocs alerte ;
    \item \texttt{codebackground} : couleur de fond du code.
\end{itemize}

Les trois couleurs \texttt{...background} correspondent exactement au fond affiché à l'intérieur des blocs et suivent le style de bloc sélectionné par l'option \texttt{block}.

\begin{code}{latex}
\textcolor{accent}{Texte en couleur d'accent}
\colorlet{maCustom}{blockcolor!50!background}
\end{code}

\end{document}
