\documentclass[
english,
compacttoc,
twocolumntoc,
vspacing=0.85,
inlinecodebox,
mainface=Zilla Slab,
sansface=Source Sans 3,
sansfaceoptions={Scale=0.92},
monoface=IBM Plex Mono,
monofaceoptions={Scale=0.88},
]{neoschool}

\title{The Celestia Theme}
\author{Version: 1.1.1 \quad\textemdash{}\quad Author: Razik Ikhlef\\[\baselineskip]
  {\normalsize\href{https://apps.edulatex.xyz}{https://apps.edulatex.xyz}}\\[\baselineskip]
  {\normalsize\href{mailto:razik.ikhlef@csilyon.fr}{razik.ikhlef@csilyon.fr}}}
\date{\today}

\begin{document}

\maketitle

\tableofcontents
\newpage

\section{Introduction}

The Celestia theme is a modern and elegant Beamer theme designed to create professional and visually appealing presentations. It offers extensive customization flexibility while remaining simple to use.

\subsection{Basic Usage}

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

\title{My Presentation}
\author{My Name}
\date{\today}

\begin{document}
\maketitle
% Your slides here
\end{document}
\end{code}

\section{Language}

\subsection{The \texttt{language} Option}

Sets the presentation language, automatically passed to the \texttt{babel} package.

\textbf{Default value:} \texttt{english}

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

\section{Color Palettes}

\subsection{Predefined Palettes}

The theme provides 26 harmonious color palettes. Each palette automatically defines all colors (primary, accent, blocks, background).

\subsubsection{The \texttt{palette} Option}

\subsubsection*{Default value: \texttt{midnight}}

\subsubsection*{Available Palettes}
\begin{itemize}
    \item \textbf{midnight} -- Deep midnight blue with golden accents (default)
    \item \textbf{ocean} -- Aquatic blue and turquoise tones
    \item \textbf{sunset} -- Warm red-orange palette
    \item \textbf{royal} -- Classic royal blue with red touches
    \item \textbf{frost} -- Cool cyan and icy blue tones
    \item \textbf{slate} -- Sober and modern slate gray
    \item \textbf{terra} -- Earth and terracotta tones
    \item \textbf{forest} -- Natural forest greens
    \item \textbf{spring} -- Spring pink and turquoise
    \item \textbf{plum} -- Elegant plum purples
    \item \textbf{sepia} -- Vintage sepia browns
    \item \textbf{navy} -- Navy blue with emerald green
    \item \textbf{crimson} -- Intense crimson red
    \item \textbf{emerald} -- Vibrant emerald greens
    \item \textbf{amber} -- Warm amber oranges
    \item \textbf{lavender} -- Soft lavender purples
    \item \textbf{copper} -- Copper and metallic tones
    \item \textbf{coral} -- Blue-green and coral tones
    \item \textbf{earth} -- Earth and natural wood tones
    \item \textbf{modern} -- Balanced modern palette
    \item \textbf{neon} -- Vivid neon contrasts
    \item \textbf{nordic} -- Nordic design-inspired palette
    \item \textbf{pastel} -- Soft pastel tones
    \item \textbf{retro} -- Vintage retro colors
    \item \textbf{sakura} -- Japanese pink and purple
    \item \textbf{solar} -- Energetic solar oranges
    \item \textbf{twilight} -- Twilight blues
    \item \textbf{bnw} -- Minimalist black and white
\end{itemize}

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

\subsection{Custom Palette}

\subsubsection{The \texttt{custompalette} Option}

Allows you to define a complete custom palette by specifying six colors in order: primary color, 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 customization, you can define each color separately (hexadecimal codes without the \#).

\begin{itemize}
    \item \textbf{maincolor} -- Primary color for titles and accents (default \texttt{0A1F3C})
    \item \textbf{accentcolor} -- Secondary color for special elements (default \texttt{B38600})
    \item \textbf{backgroundcolor} -- Slide background color (default \texttt{F8FAFC})
    \item \textbf{codebackgroundcolor} -- Code block background color
    \item \textbf{blockcolor} -- Standard block color (default \texttt{4A6572})
    \item \textbf{examplecolor} -- Example block color (default \texttt{4A7C59})
    \item \textbf{alertcolor} -- Alert block color (default \texttt{A93226})
\end{itemize}

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

\subsubsection{The \texttt{unicolor} Option}

Enables monochrome mode where the primary color is used for all text.

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

\section{Fonts}

\subsection{Default Fonts}

\begin{itemize}
    \item \textbf{Main font:} Literata (serif)
    \item \textbf{Sans-serif font:} Inter
    \item \textbf{Monospace font:} Roboto Mono
\end{itemize}

\subsection{Font Customization}

\begin{itemize}
    \item \textbf{mainface} -- Main font for body text
    \item \textbf{mainfaceoptions} -- \texttt{fontspec} options for the main font
    \item \textbf{sansface} -- Sans-serif font
    \item \textbf{sansfaceoptions} -- \texttt{fontspec} options for the sans-serif font
    \item \textbf{monoface} -- Monospace font for code
    \item \textbf{monofaceoptions} -- \texttt{fontspec} options for the monospace font
\end{itemize}

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

\subsubsection{The \texttt{allserif} Option}

Uses the main serif font for mathematics.

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

\section{Layout}

\subsection{Margins}

\subsubsection{The \texttt{margin} Option}

Sets the content margin for slides.

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

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

\subsection{Frame Title Style}

\subsubsection{The \texttt{frametitle} Option}

Defines the display style for each slide's title.

\subsubsection*{Default value: \texttt{elegant}}

\subsubsection*{Available Values:}
\begin{itemize}
    \item \textbf{elegant} -- Title with decorative bar on the left
    \item \textbf{plain} -- Simple, left-aligned without decoration
    \item \textbf{centered} -- Centered with decorative bar
    \item \textbf{plaincentered} -- Centered without decoration
    \item \textbf{shaded} -- Title with shaded colored background
\end{itemize}

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

\subsection{Decorative Elements}

\subsubsection{The \texttt{decorative} and \texttt{nodecorative} Options}

Enables or disables decorative elements (gradients, triangles).

\textbf{Default:} disabled

\begin{code}{latex}
\usetheme[decorative]{Celestia}
% or
\usetheme[nodecorative]{Celestia}
\end{code}

\subsubsection{The \texttt{decorationstyle} Option}

Defines the visual style of decorations.

\subsubsection*{Default value: \texttt{none}}

\subsubsection*{Available Values}
\begin{itemize}
  \item \textbf{none} -- No decorations
  \item \textbf{sober} -- Sober and discreet decorations
  \item \textbf{fancy} -- Elaborate and creative decorations
  \item \textbf{minimal} -- Minimalist decorations
\end{itemize}

\begin{code}{latex}
\usetheme[decorationstyle=fancy]{Celestia}
\end{code}

\subsubsection{The \texttt{decorationopacity} Option}

Sets the opacity of decorative elements (value between 0 and 1).

\textbf{Default value:} \texttt{0.15}

\begin{code}{latex}
\usetheme[
    decorationstyle=fancy,
    decorationopacity=0.15
]{Celestia}
\end{code}

\subsection{Title Page}

\subsubsection{The \texttt{titlealign} Option}

Sets the title alignment on the title page.

\subsubsection*{Default value: \texttt{center}}

\subsubsection*{Available values: \texttt{left}, \texttt{center}, \texttt{right}}

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

\subsubsection{The \texttt{titlebackground} Option}

Allows you to specify a background image for the title page.

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

\section{Title Styling}

\subsection{Font Family}

\subsubsection{The \texttt{headstyle} Option}

Sets the font family for titles.

\subsubsection*{Default value: \texttt{sffamily}}

\subsubsection*{Available Values}
\begin{itemize}
    \item \textbf{rmfamily} -- Serif font
    \item \textbf{sffamily} -- Sans-serif font
\end{itemize}

\subsection{Character Shape}

\subsubsection{The \texttt{headshape} Option}

Sets the character shape for titles.

\subsubsection*{Default value: \texttt{normal}}

\subsubsection*{Available Values}
\begin{itemize}
    \item \textbf{normal} -- Normal shape
    \item \textbf{sc} -- Small caps
    \item \textbf{it} -- Italic
\end{itemize}

\subsection{Weight}

\subsubsection{The \texttt{headweight} Option}

Sets the font weight for titles.

\subsubsection*{Default value: \texttt{bfseries}}

\subsubsection*{Available Values}
\begin{itemize}
    \item \textbf{bfseries} -- Bold
    \item \textbf{mdseries} -- Medium weight
\end{itemize}

\subsection{Title Sizes}

The theme allows customization of the size of different title elements:

\begin{itemize}
    \item \textbf{titlesize} -- Main title size (title page) (default \texttt{Large})
    \item \textbf{frametitlesize} -- Frame title size (default \texttt{large})
    \item \textbf{sectiontitlesize} -- Section title size (default \texttt{LARGE})
    \item \textbf{subtitlesize} -- Subtitle size (default \texttt{Large})
\end{itemize}

Available values are standard LaTeX size commands: \texttt{tiny}, \texttt{scriptsize}, \texttt{footnotesize}, \texttt{small}, \texttt{normalsize}, \texttt{large}, \texttt{Large}, \texttt{LARGE}, \texttt{huge}, \texttt{Huge}.

\begin{code}{latex}
\usetheme[
    titlesize=Huge,
    frametitlesize=Large,
    sectiontitlesize=huge
]{Celestia}
\end{code}

\subsection{Combined Example}

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

\section{Source Code}

\subsection{Code Handler}

\subsubsection{The \texttt{codehandler} Option}

Defines the code management system.

\subsubsection*{Default value: \texttt{listings}}

\subsubsection*{Available Values}
\begin{itemize}
    \item \textbf{listings} -- Uses the \texttt{listings} package
    \item \textbf{minted} -- Uses the \texttt{minted} package (requires Pygments)
\end{itemize}

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

\subsection{Code Framing}

\subsubsection{The \texttt{codebox}, \texttt{nocodebox}, \texttt{nocodeframe} Options}

Controls the framing of code blocks with \texttt{tcolorbox}.

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

\begin{itemize}
    \item \textbf{codebox} -- Enables framing (active by default)
    \item \textbf{nocodebox} -- Completely disables framing
    \item \textbf{nocodeframe} -- Keeps \texttt{tcolorbox} but without visible border
\end{itemize}

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

\subsection{Supported Languages}

The theme supports syntax highlighting for many languages:

\textbf{Programming languages:} Python, Java, C++, JavaScript, SQL, Bash, Assembly, Lisp

\textbf{Data formats:} JSON, YAML, TOML, CSV

\textbf{Others:} LaTeX, Markdown

\subsection{Usage}

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

\section{Footer}

\subsection{The \texttt{footerstyle} Option}

Defines the footer style.

\subsubsection{Available Values}
\begin{itemize}
    \item \textbf{default} -- Celestia's default style with alternating colors (author, title, date, page)
    \item \textbf{quartercircle} -- Page number in a quarter circle at bottom right
    \item \textbf{fullbar} -- Full bar with author/title/date and number in a circle
    \item \textbf{shadedfullbar} -- Full bar with shaded background
    \item \textbf{number} -- Simple page number display
    \item \textbf{fraction} -- Displayed as a fraction (current slide / total)
\end{itemize}

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

\subsection{The \texttt{shownavigation} Option}

Displays Beamer navigation symbols (disabled by default).

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

\section{Table of Contents}

\subsection{The \texttt{compacttoc} Option}

Reduces vertical spacing between table of contents entries.

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

\subsection{The \texttt{twocolumntoc} Option}

Automatically distributes sections across two balanced columns.

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

\subsection{Custom Command}

The \verb|\twocolumntoc| command allows manual control of the two-column distribution.

\begin{code}{latex}
% Sections 1-4 in left column, 5-10 in right column
\twocolumntoc[1][5][10]
\end{code}

\section{Blocks}

\subsection{Block Types}

Three types of blocks are available:

\begin{code}{latex}
\begin{block}{Block Title}
    Standard block content
\end{block}

\begin{exampleblock}{Example}
    Example block content
\end{exampleblock}

\begin{alertblock}{Warning}
    Alert block content
\end{alertblock}
\end{code}

\subsection{Block Styles}

\subsubsection{The \texttt{soberblock}, \texttt{softblock}, \texttt{shadedblock}, and \texttt{nobackblock} Options}

Defines the visual style of blocks.

\textbf{Default:} title on colored background, body with 10\% tinted background

\begin{itemize}
    \item \textbf{soberblock} -- Colored title on general background, lightly tinted body
    \item \textbf{softblock} -- Title and body on uniformly tinted 10\% background
    \item \textbf{shadedblock} -- Blocks with shaded background
    \item \textbf{nobackblock} -- Blocks without colored background
\end{itemize}

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

\subsubsection{Block Opacity Options}

Allows control of colored background intensity for each block style (value between 0 and 1):

\begin{itemize}
    \item \textbf{shadedblockopacity} -- Opacity for \texttt{shadedblock} (default \texttt{0.35})
    \item \textbf{soberblockopacity} -- Opacity for \texttt{soberblock} (default \texttt{0.18})
    \item \textbf{softblockopacity} -- Opacity for \texttt{softblock} (default \texttt{0.18})
\end{itemize}

\begin{code}{latex}
\usetheme[
    soberblock,
    soberblockopacity=0.20
]{Celestia}
\end{code}

\section{Special Pages}

\subsection{Standout Pages}

The \texttt{standout} frame option transforms a slide into an emphasis page for key moments: quotes, important messages, etc.

\begin{code}{latex}
\begin{frame}[standout]
    \centering
    \Huge
    Important Message

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

\subsection{Section Pages}

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

Controls the automatic display of section pages.

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

\begin{itemize}
    \item \textbf{sectionpage} -- Enables/disables automatic section pages
    \item \textbf{sectionnumber} -- Shows/hides section numbers
\end{itemize}

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

To manually disable in the document:

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

\section{Text Formatting}

\subsection{Special Commands}

\begin{itemize}
    \item \verb|\texttt{text}| -- Monospace font with accent color
    \item \verb/\verb|text|/ -- Like \texttt{\textbackslash texttt} for inline code
    \item \verb|\alert{text}| -- Bold text with accent color
\end{itemize}

\subsection{The \texttt{boldurl} Option}

Enables bold URLs in hyperlinks.

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

\section{Predefined Schemes}

\subsection{The \texttt{scheme} Option}

Applies a predefined scheme that automatically configures multiple parameters (decoration style, footer, frame title, blocks) to achieve a cohesive look.

\subsubsection*{Available Values}

\begin{itemize}
    \item \textbf{light} -- Light style with sober decorations, shaded full bar footer, shaded titles, and \textbf{blocks without background}.
    \item \textbf{academic} -- Academic style without decorations, centered titles, a quarter circle containing the page number on the right side of the footer, and shaded blocks.
    \item \textbf{creative} -- Creative style with fancy decorations, full bar footer, soft blocks, and plain titles.
    \item \textbf{zen} -- Minimalist refined style with minimal decorations, simple numbering, \textbf{plain centered titles}, and blocks without background.
    \item \textbf{simple} -- Ultra-simple style without decorations, fraction numbering, plain titles, and blocks without background.
\end{itemize}

\begin{code}{latex}
\usetheme[scheme=zen]{Celestia}
\end{code}

\begin{note}
  Parameters defined by the scheme can be overridden by explicitly specifying other options.
\end{note}

\end{document}
