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

\title{The Celestia theme for Beamer}
\author{Version: 2.0.0 \quad\textemdash{}\quad Author: 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}

The Celestia theme is a modern, elegant Beamer theme designed to produce professional and visually appealing presentations. It offers extensive customization while remaining straightforward to use.

Celestia ships with 7 color palettes, 10 frame title styles, 11 footer styles, 12 block styles, and 6 preset styles that combine these elements into cohesive looks.

\subsection{Basic usage}

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

\title{My presentation}
\author{John Doe}
\date{\today}

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

\subsection{Compilation}

The Celestia theme is designed to be compiled with \texttt{lualatex} or \texttt{xelatex} for full font management through \texttt{fontspec}. A \texttt{pdflatex} compatibility mode is also available.

\subsection{Coming from version 1.2}

Version 2.0 changes the default look: \texttt{ruled} frame titles, \texttt{ribbon} blocks, \texttt{tint} code boxes, large light titles and a motif of discs on the title page and the section pages. The default palette (\texttt{nordic}) and the colors of the palettes are unchanged. The theme now presents seven palettes and six preset styles; the others are still accepted. The following settings give the look closest to 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{Language}

\subsection{The \texttt{language} option}

Sets the presentation language, which is automatically passed to the \texttt{babel} package. In \texttt{french} mode, the names of mathematical environments (theorem, definition, etc.) and code listing captions are automatically translated.

\textbf{Default:} \texttt{english}

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

\section{Preset styles}

\subsection{The \texttt{style} option}

The theme provides preset styles that automatically configure several options (palette, frametitle, footerstyle, block) for a cohesive look.

\subsubsection*{Available styles}
\begin{itemize}
    \item \textbf{celestia}: palette nordic, frametitle ruled, footerstyle info, block ribbon (the default look);
    \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}: dark palette midnight, frametitle ruled, footerstyle minimalist, block ribbon, emphasis accent, larger frame titles.
\end{itemize}

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

Individual options can be appended after the style for further customization:

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

\subsubsection*{Styles of versions 1.x}

The eight other styles of versions 1.x are still accepted, with their settings and their colors: \texttt{minimal}, \texttt{studio}, \texttt{academic}, \texttt{design}, \texttt{simple}, \texttt{editorial}, \texttt{lumiere} and \texttt{chalk}.

\section{Color palettes}

\subsection{Built-in palettes}

The theme ships with seven palettes. Each palette automatically defines six colors: primary (\texttt{main}), accent, standard block (\texttt{blockcolor}), example (\texttt{examplecolor}), alert (\texttt{alertcolor}), and background (\texttt{background}).

\subsubsection{The \texttt{palette} option}

\textbf{Default:} \texttt{nordic}

\subsubsection*{Available palettes}
\begin{itemize}
    \item \textbf{nordic}: icy Scandinavian blues (default);
    \item \textbf{palatial}: midnight blue with gold accents;
    \item \textbf{petrol}: petrol greens with brass accents;
    \item \textbf{terracotta}: warm terracotta tones;
    \item \textbf{velvet}: dark plum with gold accents;
    \item \textbf{midnight}: light text on a deep indigo background;
    \item \textbf{dusk}: light text on a dark teal background.
\end{itemize}

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

\textbf{Note:} the \textbf{midnight} and \textbf{dusk} palettes use a dark background. They work well for presentations projected in dimly lit rooms.

\subsubsection*{Palettes of versions 1.x}

The fifteen other palettes of versions 1.x are still accepted, so that existing presentations and the preset styles that use them keep their colors: \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} and \texttt{velours}.

\subsection{Custom palette}

\subsubsection{The \texttt{custompalette} option}

Defines a fully custom palette by specifying six hex color codes (without the \texttt{\#}) in order: primary, accent, standard block, example block, alert block, background.

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

\subsection{Individual colors}

For finer control, each color can be overridden individually (hex codes without the \texttt{\#}):

\begin{itemize}
    \item \textbf{maincolor}: primary color for text and headings;
    \item \textbf{accentcolor}: secondary color for decorative elements;
    \item \textbf{backgroundcolor}: slide background color;
    \item \textbf{codebackgroundcolor}: background color for code blocks;
    \item \textbf{blockcolor}: color for standard blocks (theorem, property, etc.);
    \item \textbf{examplecolor}: color for example blocks (definition, example, etc.);
    \item \textbf{alertcolor}: color for alert blocks.
\end{itemize}

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

\subsection{Accessible named colors}

The colors of the active palette are exposed globally as \LaTeX{} color names, directly usable in \texttt{TikZ}, \verb|\color{...}|, \verb|\textcolor{...}|, etc. Their value automatically follows the selected palette — there is no need to copy the hexadecimal code by hand.

\begin{itemize}
    \item \texttt{main}: primary color;
    \item \texttt{accent}: secondary color;
    \item \texttt{background}: slide background color;
    \item \texttt{blockcolor}, \texttt{examplecolor}, \texttt{alertcolor}: colors of the three block families;
    \item \texttt{blockbackground}, \texttt{examplebackground}, \texttt{alertbackground}: interior background colors of the three block families, computed from the active block style;
    \item \texttt{emphasis}, \texttt{decoration}: colors resolved according to the \texttt{emphasis} and \texttt{decoration} options.
\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) {Text};
\end{tikzpicture}
\end{code}

\subsection{The \texttt{unicolor} option}

Enables a monochromatic mode in which the accent color is used for all elements (blocks, items, decorations).

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

\subsection{The \texttt{emphasis} and \texttt{decoration} options}

These two options control the colors used for emphasis elements (headings, items) and decorations (rules, ornaments), respectively.

\subsubsection{The \texttt{emphasis} option}

\textbf{Default:} \texttt{main}

\begin{itemize}
    \item \textbf{main}: headings and items use the primary color. The decoration color is then automatically set to \texttt{accent};
    \item \textbf{accent}: headings and items use the accent color.
\end{itemize}

\subsubsection{The \texttt{decoration} option}

\textbf{Default:} follows the value of \texttt{emphasis}

Allows the decoration color to be set independently (\texttt{main} or \texttt{accent}).

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

\section{Fonts}

\subsection{Default fonts}

\begin{itemize}
    \item \textbf{Serif font (main):} Literata (fallback: TeX Gyre Pagella);
    \item \textbf{Sans-serif font:} Inter with light weights (fallback: TeX Gyre Heros);
    \item \textbf{Monospaced font:} IBM Plex Mono (fallback: TeX Gyre Cursor).
\end{itemize}

\subsection{Font customization}

\begin{itemize}
    \item \textbf{serifface}: main serif font (\texttt{literata} by default);
    \item \textbf{seriffaceoptions}: \texttt{fontspec} options for the serif font;
    \item \textbf{sansface}: sans-serif font (\texttt{inter} by default);
    \item \textbf{sansfaceoptions}: options for the sans-serif font (empty by default; the theme automatically applies \texttt{Scale=0.88} and a light weight depending on the engine);
    \item \textbf{monoface}: monospaced font for code (\texttt{plex-mono} by default);
    \item \textbf{monofaceoptions}: \texttt{fontspec} options for the mono font.
\end{itemize}

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

To disable serif font loading entirely: \texttt{serifface=none}.

\subsubsection*{Engine differences for font lookup}

LuaLaTeX and XeLaTeX both use \texttt{fontspec}, but their font discovery mechanisms differ. \textbf{LuaLaTeX} maintains its own font database (\texttt{luaotfload}) and reliably finds fonts by family name (e.g. \texttt{Source Sans 3}). \textbf{XeLaTeX} relies on the system libraries (fontconfig on Linux, Core Text on macOS), which may not recognize the same name.

If a custom font is not found, the theme falls back to the TeX Gyre family and emits a warning. To avoid the fallback on XeLaTeX, you can:

\begin{itemize}
    \item use the exact file name instead of the family name: \texttt{sansface=SourceSans3-Regular.otf};
    \item check the name registered in fontconfig with \verb+fc-list | grep "Source"+;
    \item prefer \textbf{LuaLaTeX} for the most reliable font discovery.
\end{itemize}

\subsection{The \texttt{allserif} option}

Uses the serif main font as the default body font and activates Beamer's \texttt{serif} font theme.

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

\subsection{The \texttt{semibold} option}

Enables semibold (weight 600) as the bold series for the main and sans-serif fonts. With \texttt{pdflatex}, this uses \verb|\DeclareFontSeriesDefault|. With LuaLaTeX or XeLaTeX, the option \texttt{BoldFeatures=\{Weight=600\}} is added to the \texttt{fontspec} options.

\textbf{Default:} \texttt{true}

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

\subsection{The \texttt{light} option}

Uses lighter font weights for the body text (weight 300 for the sans-serif font with LuaLaTeX/XeLaTeX, or the \texttt{light} option for Inter with pdflatex). Also applies a lighter weight to the monospaced font.

\textbf{Default:} \texttt{true}

With the dark palettes of the theme, the text is set in the regular weight, which reads better in light on dark. The \texttt{light} option, when given explicitly, restores the light weight there.

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

\subsection{Math font}

\subsubsection{The \texttt{mathface} option}

Sets the math font. By default, formulas are set in Inter, the text font: letters, digits and Greek letters take the weight of the text (light or regular, depending on the \texttt{light} option), with the three engines. The other symbols remain those of Computer Modern. For the other presets, LuaLaTeX and XeLaTeX use \texttt{unicode-math}; with \texttt{pdflatex}, legacy packages are loaded instead.

\textbf{Default:} \texttt{inter}. The theme falls back to \texttt{iwona} with the \texttt{allserif} option, with a sans-serif font other than Inter, or when the Type~1 fonts of the \texttt{inter} package are not installed.

\subsubsection*{Built-in presets}
\begin{itemize}
    \item \textbf{inter}: Inter, the text font (default);
    \item \textbf{iwona}: Iwona math font;
    \item \textbf{kurier}: Kurier math font;
    \item \textbf{pagella}: TeX Gyre Pagella Math (\texttt{mathpazo} with pdflatex);
    \item \textbf{termes}: TeX Gyre Termes Math (\texttt{newtxmath} with pdflatex);
    \item \textbf{stix}: STIX Two Math (\texttt{stix2} with pdflatex);
    \item \textbf{libertinus}: Libertinus Math (\texttt{libertinust1math} with pdflatex);
    \item \textbf{fira}: Fira Math;
    \item \textbf{noto}: Noto Sans Math;
    \item \textbf{mtpro2}: MathTime Professional 2 (loaded via the \texttt{mtpro2} package with both engines).
\end{itemize}

Any other value is passed directly to \verb|\setmathfont| (LuaLaTeX/XeLaTeX) or \verb|\RequirePackage| (pdflatex).

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

\subsubsection{The \texttt{mathfaceoptions} option}

Additional options passed to \verb|\setmathfont| (LuaLaTeX/XeLaTeX only).

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

\section{Layout}

\subsection{Margins}

\subsubsection{The \texttt{margin} option}

Sets the left and right margin of the slide content area.

\textbf{Default:} \texttt{2em}

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

\subsection{Frame title style}

\subsubsection{The \texttt{frametitle} option}

Sets the visual style of each slide's frame title.

\textbf{Default:} \texttt{ruled}

\subsubsection*{Available values}
\begin{itemize}
    \item \textbf{ruled}: short rule under the title, continued by a hairline across the text width (default);
    \item \textbf{subtle}: title with a short underline rule (the default up to version 1.2);
    \item \textbf{plainrule}: title with a hairline across the text width;
    \item \textbf{plain}: simple left-aligned title with no decoration;
    \item \textbf{cosmic}: title with a horizontal decorative rule and diamond ornament;
    \item \textbf{line}: title with a full-width horizontal rule;
    \item \textbf{gradient}: title on a pale full-width band;
    \item \textbf{clean}: colored vertical bar to the left of the title;
    \item \textbf{elegant}: title on a full-width colored background;
    \item \textbf{leftbar}: vertical bar on the left edge of the page, spanning the full height of the title.
\end{itemize}

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

Every style supports a subtitle via \verb|\framesubtitle{...}|.

\subsubsection{Title spacing}

Two options, \texttt{frametitlepadding} and \texttt{frametitlebottomskip}, fine-tune the title spacing regardless of the selected style. They are useful for compacting the title area to gain vertical space without changing the style's aesthetics.

\begin{itemize}
    \item \textbf{frametitlepadding}=\texttt{dim}: internal padding (top and bottom) of the title box. Default depends on the style (\texttt{1.35em} for most).
    \item \textbf{frametitlebottomskip}=\texttt{dim}: \verb|\vskip| added after the title, typically negative (pulls content up). Default \texttt{-1em} for most styles, adjusted for \texttt{clean} when a subtitle is present to preserve breathing room. The more negative the value, the smaller the space after the title. An explicit user-supplied value takes priority over all defaults.
\end{itemize}

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

\textbf{Note:} the effect of \texttt{frametitlebottomskip} can be masked on short frames, where beamer vertically centers the content. For strict top alignment, use the \texttt{[t]} option of \verb|\begin{frame}| or of the class.

\subsection{Title page}

The title page shows the subject, the title in a large size and the subtitle. A rule separates them from the author, the institute and the date; it is not drawn when these three fields are empty.

\subsubsection{The \texttt{titlealign} option}

Sets the alignment of the title page content.

\textbf{Default:} \texttt{left}

\textbf{Available values:} \texttt{left}, \texttt{center}, \texttt{right}

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

\subsubsection{The \texttt{titlebackground} option}

Specifies a background image (displayed at reduced opacity) for the title page.

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

\subsubsection{The \texttt{\textbackslash subject} command}

Defines a subject line displayed in spaced capitals above the main title on the title page and embedded in the PDF metadata.

\begin{code}{latex}
\subject{Computer Science}
\title{Introduction to Graph Theory}
\end{code}

\subsubsection{The \texttt{\textbackslash titlegraphic} command}

Places an image, a logo for instance, on the title page: top right, or above the subject when the content is centered.

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

\subsubsection{The \texttt{motif} option}

Draws a motif of pale discs in the bottom right corner of the title page, of the section and subsection pages and of the standout slides. On the title page, an image given with \texttt{titlebackground} replaces it.

\textbf{Default:} \texttt{true}

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

\section{Heading style}

\subsection{Font family}

\subsubsection{The \texttt{headstyle} option}

Sets the font family used for headings.

\textbf{Default:} \texttt{sffamily}

\textbf{Available values:} \texttt{sffamily} (sans-serif), \texttt{rmfamily} (serif)

\subsection{Font shape}

\subsubsection{The \texttt{headshape} option}

Sets the font shape for headings.

\textbf{Default:} \texttt{normal}

\textbf{Available values:} \texttt{normal}, \texttt{sc} (small caps), \texttt{it} (italic)

\subsection{Font weight}

\subsubsection{The \texttt{headweight} option}

Sets the font weight of frame titles.

\textbf{Default:} \texttt{bfseries}

\textbf{Available values:} \texttt{bfseries} (bold), \texttt{mdseries} (medium)

\subsubsection{The \texttt{titleweight} option}

Sets the font weight of the large titles: the title of the title page and the titles of the section and subsection pages.

\textbf{Default:} \texttt{mdseries}

\textbf{Available values:} \texttt{mdseries} (the weight of the text, light by default), \texttt{bfseries} (bold)

\subsection{Block title weight}

\subsubsection{The \texttt{blocktitleweight} option}

Sets the font weight for tcolorbox block titles.

\textbf{Default:} \texttt{bfseries}

\textbf{Available values:} \texttt{bfseries} (bold), \texttt{mdseries} (medium)

\subsection{Heading sizes}

The theme allows each heading element to be sized independently. In addition to the standard LaTeX sizes, Celestia defines intermediate sizes for finer control:

\begin{itemize}
    \item \textbf{titlesize}: main title on the title page (\texttt{Huge} by default);
    \item \textbf{frametitlesize}: frame title (\texttt{normalsize} by default);
    \item \textbf{sectiontitlesize}: section title (\texttt{huge} by default);
    \item \textbf{subtitlesize}: subtitle (\texttt{large} by default);
    \item \textbf{footertextsize}: footer text (\texttt{tiny} by default).
\end{itemize}

\subsubsection*{Available sizes}

The standard LaTeX sizes are available: \texttt{tiny}, \texttt{scriptsize}, \texttt{footnotesize}, \texttt{small}, \texttt{normalsize}, \texttt{large}, \texttt{Large}, \texttt{LARGE}, \texttt{huge}, \texttt{Huge}.

Celestia adds an intermediate size between each consecutive pair:

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

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

\subsection{Full example}

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

\section{Footer}

\subsection{The \texttt{footerstyle} option}

Sets the footer style (hidden on the title slide).

\textbf{Default:} \texttt{info}

\subsubsection*{Available values}
\begin{itemize}
    \item \textbf{info}: author and title on the left, slide number on the right (default);
    \item \textbf{minimalist}: discreet slide number in the bottom-right corner;
    \item \textbf{prestige}: three columns (author, title, slide number) separated by middle dots;
    \item \textbf{cosmic}: three columns separated by diamond ornaments;
    \item \textbf{badge}: slide number in a colored tag on the bottom right, author and title on the bottom left;
    \item \textbf{classic}: bar divided into four alternating colored zones (author / title / date / slide number);
    \item \textbf{fullbar}: fully colored bar, four entries separated by dots;
    \item \textbf{ruled}: three columns under a hairline drawn across the text width;
    \item \textbf{framed}: three columns under a hairline drawn across the full page width;
    \item \textbf{boxed}: three columns, slide number in a tinted tag;
    \item \textbf{boxedruled}: hairline across the text width and slide number in a tinted tag.
\end{itemize}

The slide number reads ``12 / 40'' (current slide, then total), except in the \texttt{minimalist} style, which gives the current number only.

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

\subsection{The \texttt{progressbar} option}

Adds a progress bar at the bottom of each slide. For the \texttt{info} and \texttt{minimalist} styles, the bar is natively integrated into the footer. For other styles, it is overlaid at the bottom of the page.

\textbf{Default:} \texttt{false}

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

\subsection{The \texttt{shownavigation} option}

Displays the Beamer navigation symbols above the footer, on the right (disabled by default).

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

\section{Table of contents}

Section numbers sit in a column of fixed width, so that the titles line up. The space between two sections shrinks by itself when the list is long.

\subsection{The \texttt{compacttoc} option}

Reduces the vertical spacing between entries in the table of contents.

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

\subsection{The \texttt{twocoltoc} option}

Automatically distributes sections across two columns.

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

\subsection{The \texttt{\textbackslash twocolumntoc} command}

Provides manual control over the two-column distribution by specifying section ranges.

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

This example places sections 1 through 4 in the left column and sections 5 through 10 in the right column.

\section{Blocks}

\subsection{Block types}

Three Beamer block types are available, each associated with a semantic color:

\begin{code}{latex}
\begin{block}{Block title}
    Standard block content (blockcolor)
\end{block}

\begin{exampleblock}{Example}
    Example block content (examplecolor)
\end{exampleblock}

\begin{alertblock}{Warning}
    Alert block content (alertcolor)
\end{alertblock}
\end{code}

\subsection{Block style}

\subsubsection{The \texttt{block} option}

Sets the visual style of blocks.

\textbf{Default:} \texttt{ribbon}

\subsubsection*{tcolorbox styles}
\begin{itemize}
    \item \textbf{ribbon}: sidebar in the block color, title on a pale band of the same hue, text on the page background (default);
    \item \textbf{line}: sidebar in the block color, colored title, no background at all;
    \item \textbf{fullbar}: sidebar, title on a band, text on a pale background;
    \item \textbf{bar}: sidebar, title and text on the same pale background;
    \item \textbf{sober}: very pale background with no border, colored title (the default up to version 1.2);
    \item \textbf{soft}: plain pale background, colored title;
    \item \textbf{shaded}: pale background, title on a stronger band;
    \item \textbf{noback}: no background and no bar, colored title;
    \item \textbf{plain}: frame in the block color, title on a solid band.
\end{itemize}

The pale backgrounds are designed for each palette: one near-neutral tone for all blocks, and a warm tone for alert blocks. The block color shows in its title, its bar or its band.

\subsubsection*{Native Beamer styles}
\begin{itemize}
    \item \textbf{native}: native Beamer rounded blocks with a colored background;
    \item \textbf{native-shadow}: native Beamer rounded blocks with a drop shadow;
    \item \textbf{native-default}: default Beamer blocks (rectangular).
\end{itemize}

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

\subsubsection{Block opacity options}

By default, the block backgrounds do not depend on any opacity. Giving one of the following options a value other than its default restores, for the style concerned, the background of versions 1.x: the block color mixed with the page background in the given proportion (decimal value between 0 and 1):

\begin{itemize}
    \item \textbf{shadedblockopacity}: opacity of the title band for the \texttt{shaded} style (\texttt{0.30} by default);
    \item \textbf{soberblockopacity}: opacity for the \texttt{sober} style (\texttt{0.18} by default);
    \item \textbf{softblockopacity}: opacity for the \texttt{soft} style (\texttt{0.18} by default);
    \item \textbf{barblockopacity}: opacity for the \texttt{bar} style (\texttt{0.05} by default).
\end{itemize}

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

\section{Special slides}

\subsection{Standout slides}

The \texttt{standout} frame option turns a slide into a highlight page with an inverted colored background, without title or footer. It is a frame option only: it is not meant to be passed in the theme options.

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

\begin{frame}[standout]
    Key takeaway

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

\subsection{Quote slides}

The \texttt{quote} frame option sets a centered quotation, in a large size, on a tinted background, without title or footer.

\begin{code}{latex}
\begin{frame}[quote]
    The text of the quotation.\\[0.6em]
    {\small Its author}
\end{frame}
\end{code}

\subsection{Image slides}

\verb|\imagepage[caption]{file}| creates a slide whose image covers the whole page. The optional caption is shown at the bottom left. The command is used outside of any \texttt{frame} environment.

\begin{code}{latex}
\imagepage[Site model, scale 1:200.]{images/model.jpg}
\end{code}

\subsection{Section slides}

\subsubsection{Section slide options}

Controls the automatic display of section divider slides. The section title is set in a large size, on a tinted background, under the title of the presentation recalled in spaced capitals.

\textbf{Defaults:} \texttt{sectionpage=true}, \texttt{sectionnumber=false}, \texttt{subsectionpage=false}

\begin{itemize}
    \item \textbf{sectionpage}: enables or disables automatic section divider slides;
    \item \textbf{sectionnumber}: puts the section number before the title;
    \item \textbf{subsectionpage}: adds a slide at the start of every subsection; the section name is recalled above the subsection title.
\end{itemize}

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

The \verb|\sectionpage| and \verb|\subsectionpage| commands typeset these slides on demand, inside a \texttt{frame}.

To disable section slides manually within the document:

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

\section{Source code}

\subsection{Code handler}

\subsubsection{The \texttt{codehandler} option}

Sets the syntax highlighting backend.

\textbf{Default:} \texttt{listings}

\textbf{Available values:} \texttt{listings} (the \texttt{listings} package) or \texttt{minted} (the \texttt{minted} package, requires Pygments)

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

In \texttt{french} mode, code listing captions are automatically relabeled to \emph{Programme}.

\subsection{Code block style}

\subsubsection{The \texttt{codestyle} option}

Sets the visual style of code blocks.

\textbf{Default:} \texttt{tint}

\subsubsection*{Available values}
\begin{itemize}
    \item \textbf{tint}: pale neutral background, no frame and no bar (default);
    \item \textbf{bar}: colored sidebar on the left (the default up to version 1.2);
    \item \textbf{frame}: thin border with rounded corners;
    \item \textbf{macos}: macOS-style window chrome with three colored dots;
    \item \textbf{box}: box with a colored top bar.
\end{itemize}

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

\subsection{Code framing}

\subsubsection{Frame options}

Controls the \texttt{tcolorbox} wrapping around code blocks.

\textbf{Default:} \texttt{codebox=true} (wrapping enabled)

\begin{itemize}
    \item \textbf{codebox}: enables the code wrapper (on by default; use \texttt{codebox=false} to disable);
    \item \textbf{nocodeframe}: keeps the \texttt{tcolorbox} wrapper but removes the visible border (\texttt{frame}, \texttt{macos} and \texttt{box} code styles; the \texttt{tint} and \texttt{bar} styles have no frame).
\end{itemize}

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

\subsection{Usage with \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}

A \texttt{python} style is provided out of the box with keyword and built-in function highlighting.

\section{Text formatting}

\subsection{Special commands}

\begin{itemize}
    \item \verb|\texttt{text}|: monospaced font at a reduced size;
    \item \verb|\alert{text}|: text in the alert color;
    \item \verb|\mathterm{x}|: formats a mathematical term (bold, block color);
    \item \verb|\mathdef{x}|: formats a mathematical definition (italic, example color);
    \item \verb+\cverb|code|+: inline coloured \LaTeX{} code, used like \verb|\verb| in a \texttt{fragile} frame.
\end{itemize}

\subsection{The \texttt{boldurl} option}

Renders URLs in bold within hyperlinks.

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

\section{Components}

The theme defines the \verb|\source|, \verb|\keyfigure|, \verb|\tablehead| and \verb|\imagepage| commands only if the document does not already define a command of the same name: in that case, the command of the document is kept.

\subsection{Source line}

\verb|\source{...}| writes a source line in a small size, above the footer, on the left margin.

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

\subsection{Key figure}

\verb|\keyfigure{number}{label}| sets a number in a large size, followed by its label. The command takes the width of the column it is placed in.

\begin{code}{latex}
\begin{columns}
    \begin{column}{0.3\textwidth}
        \keyfigure{298}{square metres}
    \end{column}
    \begin{column}{0.3\textwidth}
        \keyfigure{3}{terraced houses}
    \end{column}
\end{columns}
\end{code}

\subsection{Tables}

Table rules take a softened tint of the primary color. \verb|\tablehead{...}| formats a header cell.

\begin{code}{latex}
\begin{tabular}{lr}
    \hline
    \tablehead{Variant} & \tablehead{Area} \\
    \hline
    Strip & 312 \\
    Terraces & 298 \\
    \hline
\end{tabular}
\end{code}

\section{Math environments}

The theme defines theorem-like environments with a streamlined syntax built on \texttt{tcolorbox}. Each environment accepts key-value options in brackets: \texttt{title} for a subtitle and \texttt{label} for cross-referencing.

\subsection{Block-type environments}

\begin{itemize}
    \item \texttt{theorem}: theorem;
    \item \texttt{lemma}: lemma;
    \item \texttt{proposition}: proposition;
    \item \texttt{corollary}: corollary;
    \item \texttt{property} / \texttt{properties}: property / properties.
\end{itemize}

\subsection{Example-type environments}

\begin{itemize}
    \item \texttt{definition} / \texttt{definitions}: definition / definitions;
    \item \texttt{example} / \texttt{examples}: example / examples.
\end{itemize}

\subsection{Other environments}

\begin{itemize}
    \item \texttt{remark} / \texttt{remarks}: remark / remarks, in the text color;
    \item \texttt{method}: method, in the accent color;
    \item \texttt{activity} / \texttt{activities}: activity / activities, in the accent color;
    \item \texttt{application} / \texttt{applications}: application / applications, in the accent color.
\end{itemize}

The alert color is reserved for \texttt{alertblock} blocks.

\subsection{Syntax}

\begin{code}{latex}
\begin{theorem}[title=Pythagorean theorem, label=th:pyth]
    In a right triangle, $a^2 + b^2 = c^2$.
\end{theorem}
\end{code}

This key-value syntax applies to all \texttt{tcolorbox}-based block styles (the default). With the native styles (\texttt{native}, \texttt{native-shadow} and \texttt{native-default}), the environments accept \texttt{[title=...]} alone, without \texttt{label} or \texttt{tcolorbox} options, as well as the usual Beamer syntax:

\begin{code}{latex}
\begin{theorem}[Pythagorean theorem]
    In a right triangle, $a^2 + b^2 = c^2$.
\end{theorem}
\end{code}

\textbf{Warning:} with tcolorbox blocks, writing \texttt{[Pythagorean theorem]} without \texttt{title=} causes a compilation error.

Each environment also has a starred (unnumbered) variant:

\begin{code}{latex}
\begin{definition*}[title=Prime number]
    A prime number is a natural number that has exactly
    two distinct divisors.
\end{definition*}
\end{code}

Additional \texttt{tcolorbox} options can be passed directly:

\begin{code}{latex}
\begin{remark}[title=Important, colback=red!5]
    Content with local customization.
\end{remark}
\end{code}

\subsection{Overlay specifications}

Each environment accepts a Beamer overlay specification between angle brackets, placed immediately after the name:

\begin{code}{latex}
\begin{definition}<2->[title=Natural numbers]
    The set $\mathbb{N}$ appears from the second overlay.
\end{definition}
\end{code}

The environment counter is frozen across overlays of the same frame, whether you use the \verb|<...>| syntax or the \verb|\pause| command. Numbering therefore remains stable from one overlay to the next.

\section{The \texttt{quiz} environment}

The \texttt{quiz} environment creates multiple-choice questions with the correct answer revealed on the second overlay.

\begin{code}{latex}
\begin{quiz}
    \item Answer A
    \item Answer B
    \correct{Answer C (correct answer)}
    \item Answer D
\end{quiz}
\end{code}

The \verb|\correct{...}| command marks the correct answer, which is highlighted in the alert color on \texttt{<2>}.

\section{Bibliography}

The theme provides automatic support for \texttt{biblatex} and \texttt{natbib}. Bibliography entry colors are configured to match the active palette.

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

\begin{frame}{References}
    \printbibliography
\end{frame}
\end{code}

\section{Options reference}

\subsection{Boolean options}

\begin{tabular}{lll}
    \textbf{Option} & \textbf{Default} & \textbf{Description} \\
    \hline
    \texttt{allserif} & \texttt{false} & Use serif font throughout \\
    \texttt{semibold} & \texttt{true} & Use semibold (weight 600) as the bold series \\
    \texttt{light} & \texttt{true} & Use light font weights for body text \\
    \texttt{unicolor} & \texttt{false} & Monochromatic mode \\
    \texttt{compacttoc} & \texttt{false} & Compact table of contents \\
    \texttt{twocoltoc} & \texttt{false} & Two-column table of contents \\
    \texttt{codebox} & \texttt{true} & Wrap code blocks in tcolorbox \\
    \texttt{nocodeframe} & \texttt{false} & Keep tcolorbox wrapper, hide border \\
    \texttt{shownavigation} & \texttt{false} & Show Beamer navigation symbols \\
    \texttt{boldurl} & \texttt{false} & Render URLs in bold \\
    \texttt{sectionpage} & \texttt{true} & Automatic section divider slides \\
    \texttt{sectionnumber} & \texttt{false} & Number before the section title \\
    \texttt{subsectionpage} & \texttt{false} & Automatic subsection slides \\
    \texttt{motif} & \texttt{true} & Motif of the title page and section slides \\
    \texttt{progressbar} & \texttt{false} & Footer progress bar \\
\end{tabular}

\subsection{Key-value options}

\begin{tabular}{lll}
    \textbf{Option} & \textbf{Default} & \textbf{Description} \\
    \hline
    \texttt{language} & \texttt{english} & Document language \\
    \texttt{palette} & \texttt{nordic} & Color palette \\
    \texttt{style} & --- & Preset style \\
    \texttt{block} & \texttt{ribbon} & Block style \\
    \texttt{frametitle} & \texttt{ruled} & Frame title style \\
    \texttt{footerstyle} & \texttt{info} & Footer style \\
    \texttt{codestyle} & \texttt{tint} & Code block style \\
    \texttt{codehandler} & \texttt{listings} & Syntax highlighting backend \\
    \texttt{titlealign} & \texttt{left} & Title page alignment \\
    \texttt{emphasis} & \texttt{main} & Emphasis color \\
    \texttt{decoration} & (follows emphasis) & Decoration color \\
    \texttt{margin} & \texttt{2em} & Slide margins \\
    \texttt{serifface} & \texttt{literata} & Serif font \\
    \texttt{sansface} & \texttt{inter} & Sans-serif font \\
    \texttt{monoface} & \texttt{plex-mono} & Monospaced font \\
    \texttt{seriffaceoptions} & (empty) & Serif font options \\
    \texttt{sansfaceoptions} & (empty) & Sans-serif font options \\
    \texttt{monofaceoptions} & (empty) & Monospaced font options \\
    \texttt{mathface} & \texttt{inter} & Math font \\
    \texttt{mathfaceoptions} & (empty) & Math font options \\
    \texttt{custompalette} & (empty) & Custom palette (6 hex colors) \\
    \texttt{titlebackground} & (empty) & Title page background image \\
    \texttt{shadedblockopacity} & \texttt{0.30} & Opacity for the shaded style (1.x background) \\
    \texttt{soberblockopacity} & \texttt{0.18} & Opacity for the sober style (1.x background) \\
    \texttt{softblockopacity} & \texttt{0.18} & Opacity for the soft style (1.x background) \\
    \texttt{barblockopacity} & \texttt{0.05} & Opacity for the bar style (1.x background) \\
    \texttt{codebackgroundcolor} & (empty) & Code background color \\
    \texttt{headstyle} & \texttt{sffamily} & Heading font family \\
    \texttt{headshape} & \texttt{normal} & Heading font shape \\
    \texttt{headweight} & \texttt{bfseries} & Frame title font weight \\
    \texttt{titleweight} & \texttt{mdseries} & Large title font weight \\
    \texttt{blocktitleweight} & \texttt{bfseries} & Block title font weight \\
    \texttt{titlesize} & \texttt{Huge} & Main title size \\
    \texttt{frametitlesize} & \texttt{normalsize} & Frame title size \\
    \texttt{sectiontitlesize} & \texttt{huge} & Section title size \\
    \texttt{subtitlesize} & \texttt{large} & Subtitle size \\
    \texttt{footertextsize} & \texttt{tiny} & Footer text size \\
\end{tabular}

\section{Available color names}

The theme exposes the following color names for use anywhere in the document:

\begin{itemize}
    \item \texttt{main}: primary color;
    \item \texttt{accent}: accent color;
    \item \texttt{background}: background color;
    \item \texttt{emphasis}: emphasis color (depends on the \texttt{emphasis} option);
    \item \texttt{decoration}: decoration color (depends on the \texttt{decoration} option);
    \item \texttt{blockcolor}: standard block color;
    \item \texttt{examplecolor}: example block color;
    \item \texttt{alertcolor}: alert block color;
    \item \texttt{blockbackground}: interior background color of standard blocks;
    \item \texttt{examplebackground}: interior background color of example blocks;
    \item \texttt{alertbackground}: interior background color of alert blocks;
    \item \texttt{codebackground}: code background color.
\end{itemize}

The three \texttt{...background} colors match exactly the background painted inside the blocks and follow the block style selected with the \texttt{block} option.

\begin{code}{latex}
\textcolor{accent}{Text in the accent color}
\colorlet{myCustom}{blockcolor!50!background}
\end{code}

\end{document}
