% arguelles 2.6.0 2026-04-26
% Michele Piazzai <hello@piazzai.addy.io>
% https://piazzai.github.io/
% https://mit-license.org/

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{beamerthemeArguelles}[2026-04-26 Argüelles]

\mode<presentation>

\newif\if@optSans
\@optSansfalse
\DeclareOption{sans}{\@optSanstrue}
\newif\if@optFrameno
\@optFramenofalse
\DeclareOption{frameno}{\@optFramenotrue}
\newif\if@optSplitnav
\@optSplitnavfalse
\DeclareOption{splitnav}{\@optSplitnavtrue}
\newif\if@optNoalegre
\@optNoalegrefalse
\DeclareOption{noalegre}{\@optNoalegretrue}
\ProcessOptions

% split navigation
\if@optSplitnav
  \useoutertheme[subsection=false]{miniframes}
  \setbeamertemplate{mini frame in other section}{}
  \RequirePackage{etoolbox}
  \let\beamer@section@set@min@width=\relax
  \patchcmd{\insertnavigation}{\hskip-1.875ex plus-1fill}{}{}{}
  \patchcmd{\sectionentry}{\hskip1.875ex plus 1fill}{}{}{}
  \patchcmd{\sectionentry}{\hyperlink{Navigation#3}{{\usebeamertemplate{section in head/foot shaded}}}}{}{}{}
  \patchcmd{\slideentry}{\usebeamertemplate{mini frame in other subsection}}{\usebeamertemplate{mini frame in other subsection of current section}}{}{}
  \patchcmd{\slideentry}{\usebeamertemplate{mini frame in other subsection}}{\usebeamertemplate{mini frame in other section}}{}{}
  \patchcmd{\slideentry}{\usebeamertemplate{mini frame in other subsection of current section}}{\usebeamertemplate{mini frame in other subsection}}{}{}
\fi

% package dependencies
\RequirePackage{ifluatex}
\RequirePackage{ifxetex}
\ifluatex
  % lualatex, no inputenc needed
\else
  \ifxetex
    % xelatex, no inputenc needed
  \else
    % pdflatex, load inputenc
    \RequirePackage[utf8]{inputenc}
  \fi
\fi
\RequirePackage[T1]{fontenc}
\if@optNoalegre
  % no alegreya, you are on your own
\else
  \RequirePackage[osf]{Alegreya}
  \RequirePackage[osf]{AlegreyaSans}
  % Load eulervm only when unicode-math is NOT active
  \makeatletter
  \@ifpackageloaded{unicode-math}{
    % unicode-math loaded → skip legacy eulervm
  }{
    \RequirePackage[euler-hat-accent]{eulervm}
  }
  \makeatother
\fi
\RequirePackage[bb=px]{mathalpha}
\RequirePackage[nopatch=footnote]{microtype}
\RequirePackage{fontawesome5}
\RequirePackage{opencolor}
\RequirePackage{enumitem}
\RequirePackage{parskip}
\RequirePackage{tikz}
\RequirePackage[skins]{tcolorbox}

% tikz libraries
\usetikzlibrary{calc}

% components
\useinnertheme{Arguelles}
\useoutertheme{Arguelles}
\usecolortheme{Arguelles}
\usefonttheme{Arguelles}

% sans font
\if@optNoalegre
  \newcommand\mediumfont{\normalfont}
\else
  \if@optSans
    \usefonttheme[onlymath]{serif}
    \newcommand\mediumfont{\AlegreyaSansMedium}
  \else
    \usefonttheme{serif}
    \newcommand\mediumfont{\AlegreyaMedium}
  \fi
\fi

% frame numbers
\if@optFrameno
  \defbeamertemplate*{footline}{Arguelles}{
    \usebeamerfont{footline section}\hfill\raisebox{.025\paperheight}{
      \insertframenumber\hspace{.01\paperwidth}
    }
  }
\fi

\AtBeginEnvironment{proof}{\let\@addpunct\@gobble}

\newcommand\Section[1]{\section{\texorpdfstring{\lowercase{#1}}{#1}}}
\newcommand\End{\appendix}
\renewcommand{\appendixname}{End}

\mode<all>
\endinput
