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

\title{Le thème Celestia pour Beamer}
\author{Version : 1.2.5 \quad\textemdash{}\quad Auteur : Razik Ikhlef\\[\baselineskip]
  {\normalfont\href{https://apps.edulatex.xyz/celestia/}{https://apps.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 22 palettes de couleurs harmonieuses, 9 styles de titre de diapositive, 11 styles de pied de page, 10 styles de blocs et 12 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.

\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{minimal} : palette sapphire, frametitle plain, footerstyle minimalist, block soft ;
    \item \textbf{signature} : palette petrol, frametitle cosmic, footerstyle cosmic, block fullbar ;
    \item \textbf{studio} : palette oxford, frametitle elegant, footerstyle info, block sober, emphasis accent ;
    \item \textbf{academic} : palette horizon, frametitle elegant, footerstyle classic, block native, titlealign center ;
    \item \textbf{modern} : palette nordic, frametitle subtle, footerstyle info, block sober ;
    \item \textbf{design} : palette imperial, frametitle clean, footerstyle badge, block bar ;
    \item \textbf{executive} : palette palatial, frametitle leftbar, footerstyle fullbar, block fullbar ;
    \item \textbf{sober} : palette terracotta, frametitle gradient, footerstyle info, block sober ;
    \item \textbf{simple} : palette steel, frametitle plain, footerstyle minimalist, block noback ;
    \item \textbf{editorial} : palette manuscript, frametitle line, footerstyle ruled, block sober ;
    \item \textbf{lumiere} : palette lumiere, frametitle plainrule, footerstyle framed, block soft ;
    \item \textbf{chalk} : palette chalk, frametitle subtle, footerstyle boxedruled, block bar, barblockopacity 0.15.
\end{itemize}

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

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

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

\section{Palettes de couleurs}

\subsection{Palettes prédéfinies}

Le thème propose 22 palettes harmonieuses. Chaque palette définit automatiquement 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{chalk} : texte sombre sur fond beige chaud, style tableau ;
    \item \textbf{copper} : tons gris-bleu avec accents cuivrés ;
    \item \textbf{dusk} : texte clair sur fond sombre bleu-vert ;
    \item \textbf{horizon} : bleus profonds océaniques ;
    \item \textbf{imperial} : bleu nuit avec accents bordeaux ;
    \item \textbf{lumiere} : bleu-gris profond avec accents roses ;
    \item \textbf{manuscript} : tons indigo et violet, ambiance manuscrit ;
    \item \textbf{midnight} : texte clair sur fond indigo profond ;
    \item \textbf{mineral} : bleu sombre avec accents ambrés ;
    \item \textbf{nordic} : bleus glacés scandinaves (défaut) ;
    \item \textbf{obsidian} : palette claire sur fond sombre ;
    \item \textbf{oxford} : bleus académiques classiques ;
    \item \textbf{palatial} : bleu nuit avec accents dorés ;
    \item \textbf{petrol} : verts pétrole avec accents ocre ;
    \item \textbf{prestige} : bleu-gris profond avec accents framboise ;
    \item \textbf{royal} : tons bleu-vert sombres et élégants ;
    \item \textbf{sakura} : tons gris doux avec accents roses ;
    \item \textbf{sapphire} : bleus profonds saphir ;
    \item \textbf{steel} : bleus acier avec accents sobres ;
    \item \textbf{terracotta} : tons terre cuite chaleureux ;
    \item \textbf{velours} : texte clair sur fond prune profond ;
    \item \textbf{velvet} : prune sombre avec accents dorés.
\end{itemize}

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

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

\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 alerte (remarque, activité, etc.).
\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{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}

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

\subsection{Police mathématique}

\subsubsection{Option \texttt{mathface}}

Définit la police mathématique. En LuaLaTeX/XeLaTeX, les valeurs prédéfinies utilisent \texttt{unicode-math}. En \texttt{pdflatex}, des extensions classiques sont chargées à la place.

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

\subsubsection*{Valeurs prédéfinies}
\begin{itemize}
    \item \textbf{iwona} : police mathématique Iwona (défaut) ;
    \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{subtle}

\subsubsection*{Valeurs possibles}
\begin{itemize}
    \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} : dégradé horizontal discret sous le titre ;
    \item \textbf{clean} : barre latérale verticale colorée à gauche du titre ;
    \item \textbf{elegant} : titre sur fond coloré pleine largeur ;
    \item \textbf{subtle} : titre avec ligne courte sous le texte (défaut) ;
    \item \textbf{plainrule} : titre avec ligne de séparation dégradée ;
    \item \textbf{leftbar} : barre verticale épaisse 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{Options \texttt{frametitlepadding} et \texttt{frametitlebottomskip}}

Permettent d'ajuster les espacements du titre quel que soit le style sélectionné. Utiles pour 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}

\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é 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}

\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.

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

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

\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{LargeLARGE} 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{LARGE} 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=Huge,
    frametitlesize=Large,
    sectiontitlesize=huge,
    footertextsize=scriptsize
]{Celestia}
\end{code}

\subsection{Exemple complet}

\begin{code}{latex}
\usetheme[
    headstyle=rmfamily,
    headshape=sc,
    headweight=mdseries,
    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{prestige} : trois colonnes avec fins tirets séparateurs ;
    \item \textbf{cosmic} : trois colonnes avec auteur, titre et numéro, séparées par des losanges décoratifs ;
    \item \textbf{info} : auteur et titre à gauche, numéro à droite, avec barre de progression optionnelle (défaut) ;
    \item \textbf{minimalist} : numéro de page discret en bas à droite ;
    \item \textbf{badge} : numéro dans un badge coloré en bas à droite, auteur et titre en bas à gauche ;
    \item \textbf{classic} : barre divisée en quatre zones avec fond coloré alternant (auteur / titre / date / numéro) ;
    \item \textbf{fullbar} : similaire à classic mais entièrement sur fond coloré avec séparateurs circulaires ;
    \item \textbf{ruled} : trois colonnes avec lignes horizontales entre les entrées ;
    \item \textbf{framed} : trois colonnes avec une ligne horizontale supérieure ;
    \item \textbf{boxed} : trois colonnes avec boîtes arrondies autour de chaque entrée ;
    \item \textbf{boxedruled} : combinaison de boîtes arrondies et de lignes horizontales.
\end{itemize}

\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 (désactivés par défaut).

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

\section{Table des matières}

\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{sober}

\subsubsection*{Styles tcolorbox}
\begin{itemize}
    \item \textbf{fullbar} : barre latérale colorée avec titre sur fond teinté séparé ;
    \item \textbf{bar} : barre latérale colorée avec titre intégré au contenu ;
    \item \textbf{sober} : fond légèrement teinté sans bordure, titre coloré (défaut) ;
    \item \textbf{soft} : fond uniformément teinté, style doux ;
    \item \textbf{shaded} : fond prononcé avec titre sur bandeau coloré ;
    \item \textbf{noback} : sans fond, minimaliste ;
    \item \textbf{plain} : blocs avec bordure et fond classiques.
\end{itemize}

\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=sober]{Celestia}
\end{code}

\subsubsection{Options d'opacité des blocs}

Contrôle l'intensité des fonds colorés pour certains styles de blocs (valeur décimale entre 0 et 1) :

\begin{itemize}
    \item \textbf{shadedblockopacity} : opacité 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é. Cette fonctionnalité nécessite l'activation de l'option \texttt{standout} dans les options du thème.

\begin{code}{latex}
\usetheme[standout]{Celestia}

\begin{frame}[standout]
    Message important

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

\subsection{Pages de section}

\subsubsection{Options \texttt{sectionpage} et \texttt{sectionnumber}}

Contrôle l'affichage automatique des pages de section, qui présentent le titre de la section avec un ornement décoratif.

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

\begin{itemize}
    \item \textbf{sectionpage} : active ou désactive les pages de section automatiques ;
    \item \textbf{sectionnumber} : affiche le numéro de section dans un cercle décoratif.
\end{itemize}

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

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{bar}

\subsubsection*{Valeurs possibles}
\begin{itemize}
    \item \textbf{bar} : barre latérale colorée à gauche (défaut) ;
    \item \textbf{frame} : cadre complet avec ombre portée ;
    \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 \texttt{codebox} et \texttt{nocodeframe}}

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.
\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).
\end{itemize}

\subsection{Option \texttt{boldurl}}

Active les URLs en gras dans les hyperliens.

\begin{code}{latex}
\usetheme[boldurl]{Celestia}
\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{Environnements de type \textit{alert}}

\begin{itemize}
    \item \texttt{remark} / \texttt{remarks} : remarque / remarques ;
    \item \texttt{method} : méthode ;
    \item \texttt{activity} / \texttt{activities} : activité / activités ;
    \item \texttt{application} / \texttt{applications} : application / applications.
\end{itemize}

\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 \texttt{block=native}, \texttt{block=native-shadow} ou \texttt{block=native-default}, les environnements utilisent la syntaxe Beamer standard :

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

\textbf{Attention :} confondre les deux syntaxes provoquera une erreur de compilation. Utilisez \texttt{[title=...]} avec les blocs tcolorbox et \texttt{\{Titre\}} avec les blocs natifs.

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{standout} & \texttt{false} & Active les frames standout \\
    \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 de section dans un cercle \\
    \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{sober} & Style des blocs \\
    \texttt{frametitle} & \texttt{subtle} & Style du titre de diapositive \\
    \texttt{footerstyle} & \texttt{info} & Style du pied de page \\
    \texttt{codestyle} & \texttt{bar} & 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{iwona} & 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 \\
    \texttt{soberblockopacity} & \texttt{0.18} & Opacité du style sober \\
    \texttt{softblockopacity} & \texttt{0.18} & Opacité du style soft \\
    \texttt{barblockopacity} & \texttt{0.05} & Opacité du style bar \\
    \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 \\
    \texttt{blocktitleweight} & \texttt{bfseries} & Graisse des titres de blocs \\
    \texttt{titlesize} & \texttt{LargeLARGE} & Taille du titre principal \\
    \texttt{frametitlesize} & \texttt{normalsize} & Taille du titre de frame \\
    \texttt{sectiontitlesize} & \texttt{LARGE} & 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{codebackground} : couleur de fond du code.
\end{itemize}

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

\end{document}
