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

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

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 22 color palettes, 9 frame title styles, 11 footer styles, 10 block styles, and 12 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.

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

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

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

\section{Color palettes}

\subsection{Built-in palettes}

The theme ships with 22 harmonious 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{lumiere}

\subsubsection*{Available palettes}
\begin{itemize}
    \item \textbf{chalk}: dark text on a warm beige background, chalkboard style;
    \item \textbf{copper}: gray-blue tones with copper accents;
    \item \textbf{dusk}: light text on a dark teal background;
    \item \textbf{horizon}: deep oceanic blues;
    \item \textbf{imperial}: midnight blue with burgundy accents;
    \item \textbf{lumiere}: deep blue-gray with pink accents (default);
    \item \textbf{manuscript}: indigo and violet tones, manuscript feel;
    \item \textbf{midnight}: light text on a deep indigo background;
    \item \textbf{mineral}: dark blue with amber accents;
    \item \textbf{nordic}: icy Scandinavian blues;
    \item \textbf{obsidian}: light text on a dark background;
    \item \textbf{oxford}: classic academic blues;
    \item \textbf{palatial}: midnight blue with gold accents;
    \item \textbf{petrol}: petrol greens with ochre accents;
    \item \textbf{prestige}: deep blue-gray with raspberry accents;
    \item \textbf{royal}: dark, elegant teal tones;
    \item \textbf{sakura}: soft grays with pink accents;
    \item \textbf{sapphire}: deep sapphire blues;
    \item \textbf{steel}: steel blues with muted accents;
    \item \textbf{terracotta}: warm terracotta tones;
    \item \textbf{velours}: light text on a deep plum background;
    \item \textbf{velvet}: dark plum with gold accents.
\end{itemize}

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

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

\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 (remark, activity, etc.).
\end{itemize}

\begin{code}{latex}
\usetheme[
    maincolor=045549,
    accentcolor=E63946,
    backgroundcolor=FAFAFA,
    blockcolor=1A3B52
]{Celestia}
\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/XeLaTeX, it automatically adds \texttt{BoldFeatures=\{Weight=600\}} 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}

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

\subsection{Math font}

\subsubsection{The \texttt{mathface} option}

Sets the math font. With LuaLaTeX/XeLaTeX, the built-in presets use \texttt{unicode-math}. With \texttt{pdflatex}, legacy packages are loaded instead.

\textbf{Default:} \texttt{iwona}

\subsubsection*{Built-in presets}
\begin{itemize}
    \item \textbf{iwona}: Iwona math font (default);
    \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{plain}

\subsubsection*{Available values}
\begin{itemize}
    \item \textbf{plain}: simple left-aligned title with no decoration (default);
    \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}: subtle horizontal gradient beneath the title;
    \item \textbf{clean}: colored vertical sidebar to the left of the title;
    \item \textbf{elegant}: title on a full-width colored background;
    \item \textbf{subtle}: title with a short underline rule;
    \item \textbf{plainrule}: title with a gradient separator rule;
    \item \textbf{leftbar}: thick vertical bar 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{...}|.

\subsection{Title page}

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

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

\textbf{Default:} \texttt{bfseries}

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

\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{LargeLARGE} by default);
    \item \textbf{frametitlesize}: frame title (\texttt{normalsize} by default);
    \item \textbf{sectiontitlesize}: section title (\texttt{LARGE} 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=Huge,
    frametitlesize=Large,
    sectiontitlesize=huge,
    footertextsize=scriptsize
]{Celestia}
\end{code}

\subsection{Full example}

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

\section{Footer}

\subsection{The \texttt{footerstyle} option}

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

\textbf{Default:} \texttt{prestige}

\subsubsection*{Available values}
\begin{itemize}
    \item \textbf{prestige}: three-column layout with short dash separators (default);
    \item \textbf{cosmic}: three-column layout with author, title, and slide number separated by diamond ornaments;
    \item \textbf{info}: author and title on the left, slide number on the right, with an optional progress bar;
    \item \textbf{minimalist}: discreet slide number in the bottom-right corner;
    \item \textbf{badge}: slide number in a colored badge 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}: similar to classic but entirely on a colored background with circular separators;
    \item \textbf{ruled}: three-column layout with horizontal rules between entries;
    \item \textbf{framed}: three-column layout with a top horizontal rule;
    \item \textbf{boxed}: three-column layout with rounded boxes around each entry;
    \item \textbf{boxedruled}: combination of boxed entries and horizontal rules.
\end{itemize}

\begin{code}{latex}
\usetheme[footerstyle=prestige]{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 (disabled by default).

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

\section{Table of contents}

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

\subsubsection*{tcolorbox styles}
\begin{itemize}
    \item \textbf{fullbar}: colored sidebar with a separate tinted title area and drop shadow (default);
    \item \textbf{bar}: colored sidebar with the title integrated into the content area;
    \item \textbf{sober}: lightly tinted background with no border, colored title;
    \item \textbf{soft}: uniformly tinted background, soft look;
    \item \textbf{shaded}: stronger tinted background with a colored title banner;
    \item \textbf{noback}: no background, minimalist;
    \item \textbf{plain}: blocks with a classic border and background.
\end{itemize}

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

\subsubsection{Block opacity options}

Controls the intensity of the tinted backgrounds for certain block styles (decimal value between 0 and 1):

\begin{itemize}
    \item \textbf{shadedblockopacity}: opacity 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. This feature requires the \texttt{standout} option to be enabled in the theme options.

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

\begin{frame}[standout]
    Key takeaway

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

\subsection{Section slides}

\subsubsection{The \texttt{sectionpage} and \texttt{sectionnumber} options}

Controls the automatic display of section divider slides, which present the section title with a decorative ornament.

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

\begin{itemize}
    \item \textbf{sectionpage}: enables or disables automatic section divider slides;
    \item \textbf{sectionnumber}: displays the section number inside a decorative circle.
\end{itemize}

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

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 \og Programme \fg.

\subsection{Code block style}

\subsubsection{The \texttt{codestyle} option}

Sets the visual style of code blocks.

\textbf{Default:} \texttt{bar}

\subsubsection*{Available values}
\begin{itemize}
    \item \textbf{bar}: colored sidebar on the left (default);
    \item \textbf{frame}: full border with a drop shadow;
    \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{The \texttt{codebox} and \texttt{nocodeframe} 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.
\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).
\end{itemize}

\subsection{The \texttt{boldurl} option}

Renders URLs in bold within hyperlinks.

\begin{code}{latex}
\usetheme[boldurl]{Celestia}
\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{Alert-type environments}

\begin{itemize}
    \item \texttt{remark} / \texttt{remarks}: remark / remarks;
    \item \texttt{method}: method;
    \item \texttt{activity} / \texttt{activities}: activity / activities;
    \item \texttt{application} / \texttt{applications}: application / applications.
\end{itemize}

\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). When using \texttt{block=native}, \texttt{block=native-shadow} or \texttt{block=native-default}, the environments use the standard Beamer syntax instead:

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

\textbf{Warning:} mixing up the two syntaxes will cause a compilation error. Use \texttt{[title=...]} with tcolorbox blocks and \texttt{\{Title\}} with native blocks.

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}

\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{standout} & \texttt{false} & Enable standout frames \\
    \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} & Section number in a decorative circle \\
    \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{lumiere} & Color palette \\
    \texttt{style} & --- & Preset style \\
    \texttt{block} & \texttt{fullbar} & Block style \\
    \texttt{frametitle} & \texttt{plain} & Frame title style \\
    \texttt{footerstyle} & \texttt{prestige} & Footer style \\
    \texttt{codestyle} & \texttt{bar} & 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{iwona} & 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 \\
    \texttt{soberblockopacity} & \texttt{0.18} & Opacity for the sober style \\
    \texttt{softblockopacity} & \texttt{0.18} & Opacity for the soft style \\
    \texttt{barblockopacity} & \texttt{0.05} & Opacity for the bar style \\
    \texttt{codebackgroundcolor} & (empty) & Code background color \\
    \texttt{headstyle} & \texttt{sffamily} & Heading font family \\
    \texttt{headshape} & \texttt{normal} & Heading font shape \\
    \texttt{headweight} & \texttt{bfseries} & Heading font weight \\
    \texttt{blocktitleweight} & \texttt{bfseries} & Block title font weight \\
    \texttt{titlesize} & \texttt{LargeLARGE} & Main title size \\
    \texttt{frametitlesize} & \texttt{normalsize} & Frame title size \\
    \texttt{sectiontitlesize} & \texttt{LARGE} & 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{codebackground}: code background color.
\end{itemize}

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

\end{document}
