%%
%% This is file `beamerthemegotham.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% gotham.dtx  (with options: `package')
%% 
%% Copyright (C) 2023-20** by Romain NOËL <romainoel@free.fr>
%% 
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%% http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
%% 
%% This work has the LPPL maintenance status `maintained'.
%% 
%% The Current Maintainer of this work is Romain NOËL.
%% Contributors: Romain NOËL (2023-20**)
%% 
\ProvidesExplPackage{beamerthemegotham}{2024-11-11}{1.2.0.a}{A modern, minimal-ish, versatile and extendable yet robust theme for Beamer}
\RequirePackage{expl3}
\RequirePackage{xparse}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%   PACKAGE   %%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\usefonttheme{gotham}
\usecolortheme{gotham}
\useinnertheme{gotham}
\useoutertheme{gotham}

%%%%%  Setting keys  %%%%%

\int_new:N \l_gotham_lookup_cnt
\int_set:Nn \l_gotham_lookup_cnt {0}

\seq_const_from_clist:Nn \c__gotham_load_submodules_seq { font, color, inner, outer }

\cs_new_protected:Npn \__gotham_lookup_keymodules:nn #1#2
{
\int_incr:N \l_gotham_lookup_cnt

\if_int_compare:w \l_gotham_lookup_cnt < 2
\else:
\seq_map_inline:Nn \c__gotham_load_submodules_seq
{
\keys_if_exist:nnT { gotham / ##1 } {#1}
{
\tl_if_empty:nTF {#2}
{ \keys_set:nn { gotham / ##1 } { #1 } }
{ \keys_set:nn { gotham / ##1 } { #1 = {#2} } }
\prg_break:
}
}
\msg_error:nnn { gotham } { unknown-key } {#1}
\prg_break_point:
\fi:
}
\cs_generate_variant:Nn \__gotham_lookup_keymodules:nn { Vn }
\msg_new:nnn { gotham } { unknown-key } { Unknown~ key~ #1~ encountered. }

\prop_new:N \l__gotham_all_all_user_keys_prop
\prop_const_from_keyval:Nn \c__gotham_all_pkg_keys_prop {}

\keys_define:nn { gotham / all / all }
{
unknown .code:n =
{\__gotham_lookup_keymodules:Vn \l_keys_key_str {#1}}
}

\cs_new_protected:Npn \__gotham_set_default_from_keyval:nnn #1 #2 #3
{ %%
\tl_if_novalue:nTF {#2}
{ % no user keys given so _user_keys_prop is taking pkg prop
\prop_set_eq:cc { l__gotham_#3_#1_user_keys_prop } { c__gotham_#3_pkg_keys_prop }
}{ % user key given and put it in prop
\prop_put_from_keyval:cn { l__gotham_#3_#1_user_keys_prop } {#2}
}% end if
\__gotham_set_default_auxi:cnn { l__gotham_#3_#1_user_keys_prop } {#1} {#3}
\keys_set:nn { gotham/#3/#1 } { default }
}
\cs_new_protected:Npn \__gotham_set_default_auxi:Nnn #1 #2 #3
{
\__gotham_set_default_auxii:fnn { \prop_to_keyval:N #1 } {#2} {#3}
}
\cs_generate_variant:Nn \__gotham_set_default_auxi:Nnn { c }
\cs_new_protected:Npn \__gotham_set_default_auxii:nnn #1 #2 #3
{
\keys_define:nn { gotham/#3/#2 } { default .meta:n = {#1} }
}
\cs_generate_variant:Nn \__gotham_set_default_auxii:nnn { f }
\DeclareDocumentCommand{\gothamset}{ m }
{
\__gotham_set_default_from_keyval:nnn { all } {#1} { all }
\keys_set:nn { gotham/all/all } { default }
}

\def\gotham@plaintitleformat#1{#1}
\providecommand{\mreducelistspacing}{\vspace{-\topsep}}

\ProcessOptionsBeamer
\keys_define:nn { gotham / font }
{
unknown .code:n =
{\__gotham_lookup_keymodules:Vn \l_keys_key_str {#1}}
}
\keys_define:nn { gotham / color }
{
unknown .code:n =
{\__gotham_lookup_keymodules:Vn \l_keys_key_str {#1}}
}
\keys_define:nn { gotham / inner }
{
unknown .code:n =
{\__gotham_lookup_keymodules:Vn \l_keys_key_str {#1}}
}
\keys_define:nn { gotham / outer }
{
unknown .code:n =
{\__gotham_lookup_keymodules:Vn \l_keys_key_str {#1}}
}

\ProcessKeyOptions[ gotham / font ]
\ProcessKeyOptions[ gotham / color ]
\ProcessKeyOptions[ gotham / inner ]
\ProcessKeyOptions[ gotham / outer ]

%% 
%% Adapted from classic "A model .dtx file" by Joseph Wright
%% https://www.texdev.net/2009/10/06/a-model-dtx-file/
%%
%% End of file `beamerthemegotham.sty'.
