% !TeX root = ./testing/test.tex
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% The spectrum beamer theme
% A clean beamer theme with a big title graphic
% Maintained by samcarter
%
% Project repository and bug tracker:
% https://github.com/samcarter/beamertheme-spectrum
%
% Released under the LaTeX Project Public License v1.3c or later
% See https://www.latex-project.org/lppl.txt
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ProvidesPackage{beamerthemespectrum}[2025/05/26 version v0.2 Spectrum beamer theme]

\mode<presentation>

\apptocmd{\titlegraphic}{\def\insertsectiongraphic{#1}}{}{}
\newcommand\sectiongraphic[1]{\def\insertsectiongraphic{#1}}
\sectiongraphic{}
\newcommand\titlecredit[1]{\def\inserttitlecredit{#1}}
\titlecredit{}
\def\spectrum@nonetext{none}

\DeclareOptionBeamer{themecolor}{\colorlet{themecolor}{#1}}
\DeclareOptionBeamer{titlegraphic}{\titlegraphic{#1}}
\DeclareOptionBeamer{titlecredit}{\titlecredit{#1}}
\DeclareOptionBeamer{sectiongraphic}{\sectiongraphic{#1}}
\ExecuteOptionsBeamer{themecolor=beamer@blendedblue!75!black}
\ExecuteOptionsBeamer{titlegraphic=beamertheme-spectrum-bg.jpg}
\ProcessOptionsBeamer

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% packages
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{tikz}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% base themes
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\useinnertheme{rectangles}
\usecolortheme{orchid}
\usecolortheme[named=themecolor]{structure}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% colour
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setbeamercolor{title}{fg=white}
\setbeamercolor{subtitle}{fg=white}
\setbeamercolor{frametitle}{bg=themecolor,fg=white}
\setbeamercolor{title in head/foot}{bg=,fg=gray}
\setbeamercolor{block title}{bg=themecolor,fg=white}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% fonts
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setbeamerfont{title}{size=\Huge,series=\bfseries}
\setbeamerfont{subtitle}{size=\LARGE,series=\bfseries}
\setbeamerfont{author}{size=\normalsize}
\setbeamerfont{institute}{size=\normalsize}
\setbeamerfont{date}{size=\normalsize}
\setbeamerfont{frametitle}{series=\bfseries}
\setbeamerfont{section}{size=\LARGE,series=\bfseries}
\setbeamerfont{standout}{size=\Large,series=\bfseries}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% theme settings
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setbeamertemplate{navigation symbols}{}

% footline
\setbeamertemplate{page number in head/foot}[framenumber]
\setbeamertemplate{footline}{%
  \begin{beamercolorbox}{title in head/foot}
    \usebeamerfont{title in head/foot}
    \quad
    \ifx\beamer@shortdate\@empty\else        
      \insertshortdate\hfill{\donotcoloroutermaths$\vert$}\hfill
    \fi
    \expandafter\ifblank\expandafter{\beamer@andstripped}{}{%
      \insertshortauthor\hfill{\donotcoloroutermaths$\vert$}\hfill
    }%
    \ifx\beamer@shorttitle\@empty\else
      \insertshorttitle\hfill{\donotcoloroutermaths$\vert$}\hfill
    \fi    
    \ifx\beamer@shortinstitute\@empty\else
      \insertshortinstitute\hfill{\donotcoloroutermaths$\vert$}\hfill
    \fi
    \makebox[0.4cm][r]{\usebeamertemplate{page number in head/foot}}
    \quad\hspace*{0pt}
    \vskip2pt
  \end{beamercolorbox}
}

% headline
\setbeamertemplate{headline}{}

% frametitle
\setbeamertemplate{frametitle}{%
  \nointerlineskip
  \begin{beamercolorbox}[sep=0cm,wd=\paperwidth,leftskip=\beamer@leftmargin,rightskip=\beamer@rightmargin]{frametitle}%
    \begin{minipage}[t][1.7cm][c]{\textwidth}%
      \usebeamerfont{frametitle}%
      \strut\insertframetitle%
    \end{minipage}%
  \end{beamercolorbox}%
}

% title page
\def\ps@navigation@titlepage{%
  \setbeamertemplate{footline}{}%
  \@nameuse{ps@navigation}%
}
\setbeamertemplate{title page}{%
  \thispagestyle{navigation@titlepage}%
  \begin{tikzpicture}[remember picture,overlay]
    \fill[themecolor] ([yshift=2.5cm]current page.south west) rectangle (current page.north east);    
    \ifx\inserttitlegraphic\spectrum@nonetext
    \else
      \node[anchor=south,inner sep=0pt] at ([yshift=2.8cm]current page.south) {\includegraphics[width=\paperwidth]{\inserttitlegraphic}};
    \fi
    \ifx\inserttitle\empty\else
      \ifx\inserttitlegraphic\spectrum@nonetext
      \else
        \node[opacity=0.5,anchor=north west,text width=\textwidth,align=flush left] at ([yshift=-\beamer@leftmargin-0.15em,xshift=\beamer@leftmargin+0.1em]current page.north west) {%
          \usebeamerfont*{title}%
          \color{black}%
          \inserttitle\par%
          \ifx\insertsubtitle\empty\else
            \medskip
            \usebeamerfont*{subtitle}%
            \insertsubtitle\par
          \fi
        };
      \fi
      \node[anchor=north west,text width=\textwidth,align=flush left] at ([yshift=-\beamer@leftmargin,xshift=\beamer@leftmargin]current page.north west) {%
        \usebeamercolor[fg]{title}%
        \usebeamerfont*{title}%
        \inserttitle\par%
        \ifx\insertsubtitle\empty\else
          \medskip
          \usebeamercolor[fg]{subtitle}%
          \usebeamerfont*{subtitle}%
          \insertsubtitle\par
        \fi        
      };
    \fi    
    \node[anchor=south west,text width=\textwidth,minimum height=2cm] at ([xshift=\beamer@leftmargin,yshift=0.25cm]current page.south west) {
      \expandafter\ifblank\expandafter{\beamer@andstripped}{}{%
        \usebeamercolor[fg]{author}\usebeamerfont{author}\insertauthor\par\smallskip
      }
      \ifx\insertinstitute\@empty \else
        \usebeamercolor[fg]{institute}\usebeamerfont{institute}\insertinstitute\par\smallskip
      \fi
      \ifx\insertdate\@empty \else
        \usebeamercolor[fg]{date}\usebeamerfont{date}\insertdate\par
      \fi      
    };
    \node[anchor=south east,font=\tiny,align=right,inner sep=0.15cm] at (current page.south east) {
      \inserttitlecredit\par
    };    
  \end{tikzpicture}
}

% section page
\setbeamertemplate{section page}{
  \begin{tikzpicture}[remember picture,overlay]
    \fill[themecolor] ([yshift=-2.5cm]current page.north west) rectangle (current page.north east);
    \ifx\insertsectiongraphic\spectrum@nonetext
    \else
      \node[anchor=south,inner sep=0pt] at ([yshift=-2.2cm]current page.north) {\includegraphics[width=\paperwidth]{\insertsectiongraphic}};
    \fi 
    \node[anchor=north west,text width=\textwidth] at ([xshift=\beamer@leftmargin,yshift=-3.75cm]current page.north west) {
      \usebeamercolor[fg]{section}\usebeamerfont{section}\insertsection\par
    };
  \end{tikzpicture}
}

% standout frame
\providebool{spectrum@standout}
\define@key{beamerframe}{standout}[true]{%
  \booltrue{spectrum@standout}
  \begingroup
  \setbeamertemplate{headline}{
    \begin{tikzpicture}[remember picture,overlay]
      \fill[themecolor] ([yshift=-2.5cm]current page.north west) rectangle (current page.north east);
      \ifx\insertsectiongraphic\spectrum@nonetext
      \else
        \node[anchor=south,inner sep=0pt] at ([yshift=-2.2cm]current page.north) {\includegraphics[width=\paperwidth]{\insertsectiongraphic}};
      \fi 
    \end{tikzpicture}
    \vskip2.5cm
  }
}
\pretocmd{\beamer@reseteecodes}{%
  \ifbool{spectrum@standout}{
    \endgroup
    \boolfalse{spectrum@standout}
  }{}
}{}{}
\AtBeginEnvironment{beamer@frameslide}{
  \ifbool{spectrum@standout}{%
    \usebeamerfont{standout}%
    \usebeamercolor[fg]{standout}%
  }{}
}

\mode
<all>