%%
%% This is file `stb-titlepage.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% stb-titlepage.dtx  (with options: `pkg')
%% 
%% Copyright (C) 2023 Stellenbosch University
%% All rights reserved.
%% 
%% ----------------------------------------------------------------------
%% Stellenbosch University Title Page Package
%% ----------------------------------------------------------------------
%% 
%% Author:     Danie Els
%% Maintained: Danie Els (dnjels@sun.ac.za)
%% 
%% This work may be distributed and modified, and must be credited
%% under the conditions of the latest version of the Creative Commons
%% License (CC BY 4.0). The latest version of this license is in:
%% 
%%    https://creativecommons.org/licenses/by/4.0/
%% 
%% This work consists of the files
%%   stb-titlepage.ins
%%   stb-titlepage.dtx
%% and the derived files
%%   stb-titlepage.sty
%% -------------------------------------------------------------------
%% 
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{stb-titlepage}[2023/07/22
                                v1.1
                                Stellenbosch Title Page Package (DNJ ELS)]
\RequirePackage{etoolbox}
\RequirePackage{ifthen}
\RequirePackage{kvoptions}
\RequirePackage{geometry}
\AtEndPreamble{\RequirePackage{eso-pic}}
\AtBeginDocument{%
    \@ifpackageloaded{graphicx}{}{%
        \PackageError{stb-titlepage}{You must load the graphicx package}{}}}
\SetupKeyvalOptions{
    family=STB,
    prefix=STB@}
\DeclareBoolOption{titlepage}
\DeclareComplementaryOption{notitlepage}{titlepage}
\DeclareStringOption[0.4]{scale}
\DeclareStringOption[0cm]{vshift}
\DeclareStringOption[stb-logo-vert]{logo}
\DeclareStringOption[std]{typeblock}
\ProcessKeyvalOptions*
\let\@address\relax
\newcommand\address[1]{\def\@address{#1}}
\newlength{\STB@xpos}
\newlength{\STB@ypos}
\newsavebox{\STB@logobox}
\newcommand{\STB@setlogo}{%
    \ifthenelse{\equal{\STB@logo}{none}}{}{%
         \savebox{\STB@logobox}{\includegraphics[scale=\STB@scale]{\STB@logo}}}%
     \setlength{\STB@xpos}{\dimexpr .5\paperwidth - .5\wd\STB@logobox}%
     \setlength{\STB@ypos}{\dimexpr -\ht\STB@logobox - \STB@vshift}}
\AtBeginDocument{\STB@setlogo}
\newcommand{\STB@putlogo}{%
        \AddToShipoutPictureBG*{\AtStockUpperLeft{%
                 \put(\STB@xpos,\STB@ypos){\usebox{\STB@logobox}}}}}
\newif\ifSTB@cpyr
\newcommand\STB@cpyrName{}
\newcommand\STB@cpyrDate{}
\newcommand\Copyright[2]{%
    \STB@cpyrtrue
    \ifstrempty{#1}%
        {\renewcommand\STB@cpyrDate{\the\year}}{\renewcommand\STB@cpyrDate{#1}}%
    \renewcommand\STB@cpyrName{#2}}
\newcommand\STB@cpyrText{Copyright \textcopyright\ \STB@cpyrDate\ \STB@cpyrName}
\if@titlepage
    \renewcommand\maketitle{%
    \begin{titlepage}%
       % \let\footnotesize\small
        \let\footnoterule\relax
        \let \footnote \thanks
        \STB@putlogo
        \null\vfil
        \vskip 30mm
        \begin{center}%
             \ifSTB@cpyr
                \insert\footins{\centering\footnotesize\STB@cpyrText}%
             \fi
            {\LARGE \@title \par}%
            \vskip 3em%
            {\large
            \lineskip .75em%
            \begin{tabular}[t]{c}%
                \@author
            \end{tabular}\par}%
            \vfill
            {\large \@date \par}%
            \vskip 1.5em%
            \ifx\@address\relax\else
                \vskip 1.5em%
                {\normalsize\@address\par}
            \fi
            \vskip 2em%
        \end{center}\par
        \@thanks
        \vfil\null
    \end{titlepage}%
    \setcounter{footnote}{0}%
    \global\let\thanks\relax
    \global\let\maketitle\relax
    \global\let\@thanks\@empty
    \global\let\@author\@empty
    \global\let\@date\@empty
    \global\let\@title\@empty
    \global\let\title\relax
    \global\let\author\relax
    \global\let\date\relax
    \global\let\and\relax}
\else
    \renewcommand\maketitle{\par
    \begingroup
        \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
        \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
        \long\def\@makefntext##1{\parindent 1em\noindent
            \hb@xt@1.8em{%
            \hss\@textsuperscript{\normalfont\@thefnmark}}##1}%
        \if@twocolumn
            \ifnum \col@number=\@ne
                \@maketitle
            \else
                \twocolumn[\@maketitle]%
            \fi
        \else
            \newpage
            \global\@topnum\z@   % Prevents figures from going at top of page.
            \@maketitle
        \fi
        \thispagestyle{plain}\@thanks
    \endgroup
    \STB@putlogo
    \setcounter{footnote}{0}%
    \global\let\thanks\relax
    \global\let\maketitle\relax
    \global\let\@maketitle\relax
    \global\let\@thanks\@empty
    \global\let\@author\@empty
    \global\let\@date\@empty
    \global\let\@title\@empty
    \global\let\title\relax
    \global\let\author\relax
    \global\let\date\relax
    \global\let\and\relax}
    \def\@maketitle{%
        \newpage
        \null
        \vskip 30mm%
        \begin{center}%
            \let \footnote \thanks
            {\LARGE \@title \par}%
            \vskip 1.5em%
            {\large
            \lineskip .5em%
            \begin{tabular}[t]{c}%
                \@author
            \end{tabular}\par}%
            \vskip 1.5em%
            {\large \@date}%
            \ifx\@address\relax\else
                 \vskip 1em%
                {\normalsize\@address\par}
            \fi
        \end{center}%
        \par
        \vskip 1.5em
        \ifSTB@cpyr
            \insert\footins{\noindent\footnotesize\STB@cpyrText\medskip}%
        \fi}
\fi
\newcommand\STB@typeblock@eval{%
    \ifthenelse{\equal{\STB@typeblock}{golden}}{\@nameuse{STB@typeblock@golden}}{%
    \ifthenelse{\equal{\STB@typeblock}{a5}}    {\@nameuse{STB@typeblock@a5}}    {%
    \ifthenelse{\equal{\STB@typeblock}{wide}}  {\@nameuse{STB@typeblock@wide}}  {%
    \ifthenelse{\equal{\STB@typeblock}{std}}   {\@nameuse{STB@typeblock@std}}   {%
        \PackageWarning{ustitle}{logo='\STB@typeblock' is invalid, default to 'std'}%
        \@nameuse{STB@typeblock@std}%
    }}}}}
\@namedef{STB@typeblock@golden}{%----- Golden type block  -----------------
    \geometry{text={0.6667\paperwidth, 1.0787\paperwidth}}
    \geometry{hmarginratio=1:1}
    \geometry{vmarginratio=2:3}
    \geometry{marginparwidth=50pt}
    \PackageInfo{stb-titlepage}{Golden ratio type block}}
\@namedef{STB@typeblock@a5}{%--------- A5 type block ----------------------
    \geometry{text={0.5\paperheight, \paperwidth}}
    \geometry{hmarginratio=1:1   }
    \geometry{vmarginratio=2:3   }
    \geometry{marginparwidth=50pt}
    \PackageInfo{stb-titlepage}{A5 type block}}
\@namedef{STB@typeblock@wide}{%-------- Wide type block --------------------
    \geometry{margin=25mm        }
    \geometry{marginparwidth=50pt}
    \PackageInfo{stb-titlepage}{Wide type block}}
\@namedef{STB@typeblock@std}{%--------- Latex default type block -----------
    \PackageInfo{stb-titlepage}{Latex default type block}}
\STB@typeblock@eval
\endinput
%%
%% End of file `stb-titlepage.sty'.
