% Copyright 2026 Hatim Naqos. LPPL 1.3c or later.
\documentclass[11pt,a4paper]{article}
\usepackage[margin=24mm]{geometry}
\usepackage{iftex}
\ifPDFTeX
  \usepackage[T1]{fontenc}
  \usepackage[utf8]{inputenc}
  \usepackage{tgheros}
\else
  \usepackage{fontspec}
  \setsansfont{TeX Gyre Heros}
\fi
\renewcommand{\familydefault}{\sfdefault}
\usepackage[english]{babel}
\usepackage{xcolor,booktabs,array,listings,hyperref}
\definecolor{JuniaBlue}{HTML}{3F536B}
\definecolor{JuniaSky}{HTML}{C0D4E4}
\hypersetup{colorlinks=true,allcolors=JuniaBlue,pdftitle={juniamaroc-beamer class reference},pdfauthor={Hatim Naqos}}
\lstset{basicstyle=\ttfamily\small,breaklines=true,columns=fullflexible,frame=single,rulecolor=\color{JuniaSky},showstringspaces=false}
\emergencystretch=2em
\setlength{\parindent}{0pt}\setlength{\parskip}{6pt}
\title{\color{JuniaBlue}\textbf{The juniamaroc-beamer class}\\\large Installation and reference}
\author{Hatim Naqos\\\small\href{mailto:hatim.naqos@ecole-junia.ma}{hatim.naqos@ecole-junia.ma}}
\date{Version 1.0.0 · 29 October 2026}
\begin{document}
\maketitle
\begin{abstract}
\texttt{juniamaroc-beamer} is a Beamer-based class for JUNIA Maroc teaching,
student projects and academic presentations. It provides the institutional
palette, original logo variants, brand typography and a small set of reusable
slide layouts. A separate French slide tutorial demonstrates the features
with source code and rendered examples.
\end{abstract}
\tableofcontents
\section{Installation and compilation}
For a local project, keep \texttt{juniamaroc-beamer.cls} and
\texttt{assets/} beside your main document. Start with the supplied starter
and compile twice with pdfLaTeX, XeLaTeX or LuaLaTeX.
No font files are distributed with this macro package.
\begin{lstlisting}
xelatex juniamaroc-beamer-starter.tex
xelatex juniamaroc-beamer-starter.tex
\end{lstlisting}
The default font is TeX Gyre Heros. With the option \texttt{brandfonts}
and XeLaTeX or LuaLaTeX, the class uses the system font families
Afacad Flux and Inter Tight if both are installed. Otherwise it selects
TeX Gyre Heros automatically. The option \texttt{standardfonts} forces
this fallback. pdfLaTeX always uses the fallback. See \texttt{FONTS.md}
for optional font download and installation instructions.

For a personal TEXMF installation, use these directories:
\begin{lstlisting}
tex/latex/juniamaroc-beamer/  (class and PNG assets)
doc/latex/juniamaroc-beamer/  (documentation and examples)
\end{lstlisting}
Refresh the filename database if needed. Assets are found locally in
\texttt{assets/} or through TeX's filename lookup.

On Overleaf, import the student archive, choose the starter as the main
document and select a PDF engine. The fallback needs no additional font
installation. No live Overleaf test is claimed.

\section{A complete minimal document}
\begin{lstlisting}
\documentclass[english]{juniamaroc-beamer}
\title[Short title]{My project}
\subtitle{A student presentation}
\author{Student Name}
\institute{JUNIA Maroc}
\date{\today}
\begin{document}
\maketitle
\section{Introduction}
\begin{frame}{A precise question}
  \begin{itemize}
    \item Explain the context.
    \item State the objective.
  \end{itemize}
\end{frame}
\juniaclosing[Thank you]{Questions?}
\end{document}
\end{lstlisting}
The class inherits Beamer's metadata and content environments. Do not load
Beamer or the earlier experimental JUNIA theme separately. The institute
defaults to JUNIA Maroc. Supply your own title, author, subtitle and date.

\section{Class options}
\begin{tabular}{p{.30\linewidth}p{.62\linewidth}}\toprule
\textbf{Option} & \textbf{Effect}\\\midrule
\texttt{french} & French Babel support (default).\\
\texttt{english} & English Babel support.\\
\texttt{standardfonts} & TeX Gyre Heros (default).\\
\texttt{brandfonts} & Try optional installed institutional fonts.\\
\texttt{nologo} & Disable institutional logo and symbol images.\\
\texttt{nosectionpages} & Disable automatic section dividers.\\
\texttt{noprogress} & Hide the bottom progress rule.\\\bottomrule
\end{tabular}

Other options pass through to Beamer. Defaults are 16:9 and 10pt; for example
\texttt{aspectratio=43} selects 4:3 and \texttt{handout} combines overlays.
Content must still fit the selected page size. Long titles, unusually large
fonts and dense content may need manual line breaks or additional frames.

\section{Layout commands}
\begin{description}
\item[\texttt{\textbackslash maketitle}] Creates a full title frame. Call it
outside a frame. For custom title-frame control use \texttt{\textbackslash titlepage}
inside a plain frame.
\item[\texttt{\textbackslash juniasectionpage}] Creates a numbered section
divider, automatically called by the default section hook.
\item[\texttt{\textbackslash juniaquote\{message\}\{source\}}] Creates a dark
message slide. It counts toward the frame total.
\item[\texttt{\textbackslash juniaclosing[heading]\{message\}}] Creates a dark
closing slide; the default heading is ``Merci !''. In an English document
pass an English heading explicitly.
\end{description}
These commands create frames and must not be nested inside another frame.
Title, section and closing frames use \texttt{noframenumbering}. Content
frames count normally. The progress bar measures frame position rather than
raw PDF page position, so overlays do not advance it. Beamer's
\texttt{allowframebreaks} continuations follow its normal numbering behavior.
Two compilations are required for totals and cross-references.

\subsection{Custom section hooks}
An author-defined \texttt{\textbackslash AtBeginSection} hook replaces the
default hook. For example, use a table of contents with
\texttt{currentsection} instead of the numbered divider. Use
\texttt{nosectionpages} when no automatic transition is desired.

\section{Code, figures and mathematics}
The class loads \texttt{listings}, \texttt{graphicx} and \texttt{booktabs}.
Beamer provides the standard AMS mathematics environments. Listing styles
are \texttt{junia}, \texttt{junia-latex} and \texttt{junia-python}.
\begin{lstlisting}
\begin{frame}[fragile]{Python}
  \lstinputlisting[style=junia-python]
    {juniamaroc-beamer-example.py}
\end{frame}
\end{lstlisting}
Inline \texttt{lstlisting} also requires a fragile frame. Listings typesets
code; it does not execute Python. For long programs, show selected line
ranges across separate frames. The class maps common French accented
characters for listings; it does not promise arbitrary Unicode programming
language input.

Place photographs or vector figures in \texttt{assets/}. Use
the following command:
\begin{lstlisting}
\includegraphics[width=\linewidth,keepaspectratio]{file}
\end{lstlisting}
The supplied synthetic graph is generated from \texttt{juniamaroc-beamer-figure.tex}
using pdfLaTeX and pgfplots. Its values are illustrative, not research data.

Use \texttt{booktabs} rules for tables, \texttt{equation} for numbered
formulae and \texttt{align} for aligned equations. Label and reference
formulae in the usual way. The French tutorial includes rendered examples.

\section{Overlays, continuations and multiple sources}
Use \texttt{\textbackslash pause}, \texttt{\textbackslash uncover},
\texttt{\textbackslash only} or \texttt{itemize[<+->]} for staged reveals.
One frame can produce several PDF pages. With \texttt{handout}, reveals
are combined according to Beamer's handout rules.

For a continued frame use \texttt{[allowframebreaks]} and optional explicit
\texttt{\textbackslash framebreak} commands. Do not combine this mode with
overlays. Large tables do not automatically split within a tabular;
divide them into separate tables/frames. For long code listings, explicit
line-range excerpts are recommended.

For a multi-file project, use \texttt{\textbackslash input\{sections/method\}}
in the main document. Included files contain frames and sections, not a
second preamble or document environment. Always compile the main file.

\section{Brand assets and customisation}
The palette is defined as \texttt{JuniaBlue} (3F536B),
\texttt{JuniaYellow} (E2E45F), \texttt{JuniaSand} (D6C7A0) and
\texttt{JuniaSky} (C0D4E4). \texttt{JuniaLime} aliases the yellow.
Headings use Afacad Flux and body text uses Inter Tight under Unicode
engines with \texttt{brandfonts} when both system font families are installed; otherwise TeX Gyre Heros is used.

The small institutional logotype omits the long school signature, following
the supplied charter's minimum-width guidance. Dark layouts use the
official white symbol with the yellow curve. Preserve artwork proportions
and do not recolour, crop or reconstruct the logos.

\texttt{\textbackslash juniasetup} accepts keys \texttt{logo},
\texttt{logowhite}, \texttt{symbol}, \texttt{symbolwhite} for alternative
authorised files. Paths are checked in \texttt{assets/} and then directly.
Missing logos degrade to text or empty symbol areas. The \texttt{nologo}
option is useful for testing or redistribution without institutional assets.

\section{Dependencies, licenses and maintenance}
Requirements: LaTeX 2020-02-02 or newer, Beamer, iftex, Babel, fontspec
(Unicode engines), graphicx, PGF/TikZ, booktabs and listings. The fallback
uses tgheros. Building the original illustration requires pgfplots.
No font binaries, font sources or font-generation tools are included.

The code, documentation and original examples are copyright 2026 Hatim Naqos,
distributed under LPPL 1.3c or later, with maintenance status
\emph{maintained}. The current maintainer is Hatim Naqos.
No font files are redistributed. Logos carry separate institutional redistribution
permission confirmed by the maintainer; they are not LPPL-licensed.
See \texttt{LICENSE.md}, \texttt{FONTS.md} and the full license files.

This release does not claim CTAN acceptance or automatic
inclusion in a TeX distribution. Send reproducible problems, compiler
version and a minimal example to the maintainer's e-mail on the first page.
\end{document}
