%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% upl/isel/upl-isel-defaults.clo
%% NOVA thesis document template
%%
%% This work is licensed under the
%% The LaTeX project public license (LPPL), version 1.3c
%% To view a copy of this license, visit
%% https://www.latex-project.org/lppl/lppl-1-3c/
%%
%% Authors / Contributors:
%%      - João Lourenço <joao.lourenco@fct.unl.pt>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\typeout{NT FILE upl/isel/defaults.clo}%


%%=======================================================================
%% METADATA & GLOBAL PROPERTIES
%%=======================================================================

% Only XeLaTeX/LuaLaTeX are accepted (uses an OpenType-only font)
\AddValidProcessor{upl/isel}{lua,xe}
\AddValidDegree{upl/isel}{msc}

% No PhD degree for ISEL
\ifmscdoc{}{\ntsetup{doctype=msc}}

%%=======================================================================
%% STRINGS (UNIVERSITY & SCHOOL)
%%=======================================================================

% Faculty / School 
\SetSchool*(isel,pt)={Instituto Superior de Engenharia de Lisboa}
\SetSchool*(isel,en)={Instituto Superior de Engenharia de Lisboa}
\SetSchool*(isel,fr)={Instituto Superior de Engenharia de Lisboa}
\SetSchool*(isel,it)={Instituto Superior de Engenharia de Lisboa}

\ntsetup{print/statement=true}
\ntsetup{print/frontpage=true}
\ntsetup{style/font=verdana}
\ntsetup{style/chapter=isel}

\ntaddfile{statement}[en]{upl-isel/upl-isel-statement-en}
\ntaddfile{statement}[pt]{upl-isel/upl-isel-statement-pt}


%%=======================================================================
%% COLORS
%%=======================================================================

\definecolor{iselRed}{HTML}{FF3C28}  % Official for Chapter
\definecolor{iselPlum}{HTML}{5F1437} % Official for Section and Cover
\definecolor{iselPink}{HTML}{FFD2F5} % Official for Section and Cover


%%=======================================================================
%% STRINGS (UNIVERSITY & SCHOOL)
%%=======================================================================

% To allow the user to change the doctype string later
\NewMemStore{DocType}
\SetDocType(bsc)={Trabalho de Projeto}
\SetDocType(msc)={Dissertação}
\SetSpecializationString*(pt)={na Área de Especialização de}

% --------------------------------------------------------------------
%   Dissertation strings
% --------------------------------------------------------------------

\SetDissertationString(bsc,pt)={%
      \GetDocType(\option{/novathesis/doctype}) para obtenção do grau de %
      \GetDegreeString(\option{/novathesis/doctype},\expanded{\GetDocAuthor(gender)},\@LANG@COVER) em\\%
      \GetMajorField(\@LANG@COVER)%
      \IfMemVoidF{MinorField}{\@LANG@COVER}
        {\GetSpecialization(\@LANG@COVER)}
      .%
}

\SetDissertationString(mscplan,pt)={%
      Plano de \GetDocType(\option{/novathesis/doctype}) para obtenção do grau de %
      \GetDegreeString(\option{/novathesis/doctype},\expanded{\GetDocAuthor(gender)},\@LANG@COVER) em\\%
      \GetMajorField(\@LANG@COVER)%
      \IfMemVoidF{MinorField}{\@LANG@COVER}
        {\GetSpecialization(\@LANG@COVER)}
      .%
}

\SetDissertationString(msc,pt)={%
      \GetDocType(\option{/novathesis/doctype}) para obtenção do grau de %
      \GetDegreeString(\option{/novathesis/doctype},\expanded{\GetDocAuthor(gender)},\@LANG@COVER) em\\%
      \GetMajorField(\@LANG@COVER)%
      \IfMemVoidF{MinorField}{\@LANG@COVER}
        {\GetSpecialization(\@LANG@COVER)}
      .%
}

\SetDissertationString(bsc,en)={%
      \GetDocType(\option{/novathesis/doctype}) to obtain the degree of %
      \GetDegreeString(\option{/novathesis/doctype},\expanded{\GetDocAuthor(gender)},\@LANG@COVER) in\\%
      \GetMajorField(\@LANG@COVER)%
      \IfMemVoidF{MinorField}{\@LANG@COVER}
        {\GetSpecialization(\@LANG@COVER)}
      .%
}

\SetDissertationString(mscplan,en)={%
      \GetDocType(\option{/novathesis/doctype}) Plan to obtain the degree of %
      \GetDegreeString(\option{/novathesis/doctype},\expanded{\GetDocAuthor(gender)},\@LANG@COVER) in\\%
      \GetMajorField(\@LANG@COVER)%
      \IfMemVoidF{MinorField}{\@LANG@COVER}
        {\GetSpecialization(\@LANG@COVER)}
      .%
}

\SetDissertationString(msc,en)={%
      \GetDocType(\option{/novathesis/doctype}) to obtain the degree of %
      \GetDegreeString(\option{/novathesis/doctype},\expanded{\GetDocAuthor(gender)},\@LANG@COVER) in\\%
      \GetMajorField(\@LANG@COVER)%
      \IfMemVoidF{MinorField}{\@LANG@COVER}
        {\GetSpecialization(\@LANG@COVER)}
      .%
}

\@for\mylang:={\@LANG@LOADED}\do{%
  \SetCommitteeTitleString*(\mylang)={\MakeUppercase{\GetCommitteeTitleString(\mylang)}}%
  \@for\myadv:={a,c,ca,t}\do{%
    \@for\mysp:={1,2}\do{%
      \@for\mymf:={m,f}\do{%
        \SetAdviserString*(\myadv,\mysp,\mymf,\mylang)=%
              {\MakeUppercase{\GetAdviserString(\myadv,\mysp,\mymf,\mylang)}}%
      }%
    }%
  }%
}


%%=======================================================================
%% COMMITTEE
%%=======================================================================

\SetCommitteeOrder*()={c,m}%


%%=======================================================================
%% LAYOUT (MARGINS)
%%=======================================================================

% Set margins for "normal" pages
\SetMargin*(screen,top)={2.5cm}
\SetMargin*(screen,bottom)={2.5cm}
\SetMargin*(screen,left)={2.5cm}
\SetMargin*(screen,right)={2.5cm}
\SetMargin*(paper,top)={2.5cm}
\SetMargin*(paper,bottom)={2.5cm}
\SetMargin*(paper,left)={2.5cm}
\SetMargin*(paper,right)={2.5cm}

% Set margins for cover pages
\SetMargin*(cover,top)={2.5cm}
\SetMargin*(cover,bottom)={1.7cm}
\SetMargin*(cover,left)={3.5cm}
\SetMargin*(cover,right)={2.5cm}


%%=======================================================================
%% SPINE
%%=======================================================================

\SpineSetup[%
]{
  box/logo/bg/image       = {upl-isel-logo-notext},
  box/logo/bg/image/scale = 0.55,
  % box/logo/bg/image/angle     = {90},
}

%%=======================================================================
%% COVER PAGE SETUP (BACKGROUNDS)
%%=======================================================================

\SetThesisCover(textcolor)={iselPlum}

\SetThesisCover(wireframe)={upl-isel-wireframe}
\SetThesisCover(logo)={upl-isel-logo}


%%=======================================================================
%% UTILITIES & HOOKS
%%=======================================================================

\ntsetup{abstract/title=before}
\ntsetup{abstract/title/align=left}

\NTAddToHook{abstract/title/before}{%\
  \begingroup
    \color{iselPlum}%
    \bfseries\fontsize{14}{16}\selectfont%
    \GetDocTitle(\@LANG@COVER,main)\\[4ex]%
  \endgroup
}


%%=======================================================================
%% FRONT MATTER CONFIGURATION
%%=======================================================================

\@nt@printorder@set{frontmatter_final}{%
    acknowledgements, % (*) Print the acknowledgments
    statement,        % (*) Print the statement of integrity
    abstracts,        % Print abstracts in multiple languages.
    alllistof,        % Print all the listof defined in “6_list_of.tex”
    myprintglossaries, % Print the Glossary, Acronyms, Symbols, etc…
}

\@nt@printorder@set{frontmatter_provisional}{%
    acknowledgements, % (*) Print the acknowledgments
    statement,        % (*) Print the statement of integrity
    abstracts,        % Print abstracts in multiple languages.
    alllistof,        % Print all the listof defined in “6_list_of.tex”
    myprintglossaries, % Print the Glossary, Acronyms, Symbols, etc…
}


%%=======================================================================
%% COVERS 1 and 2 ELEMENTS
%%=======================================================================

\ntaddtocover[tikz]{1-1}{%
  \node[anchor=north west, inner sep=0pt] at (current page.north west)
    {\includegraphics[width=210mm,height=297mm]{\expanded{\GetThesisCover(wireframe)}}};%
}

\ntaddtocover[tikz]{1-1,2-1}{%
  \node[anchor=north] at ($(current page.north) + (7mm,-28.5mm)$)
    {\includegraphics[height=23mm]{\expanded{\GetThesisCover(logo)}}};%
}

% % Title of Dissertation
\ntaddtocover[vspace=66mm,height=4cm,valign=c]{1-1,2-1}{%
  \fontsize{17}{20}\selectfont%
  \textbf{\GetDocTitle(\@LANG@COVER,main)}%
}

% Author name
\ntaddtocover[vspace=17.5mm,height=1cm,valign=c]{1-1,2-1}{%
  \fontsize{12}{14}\selectfont%
  \GetDocAuthor(name)\\
  \fontsize{12}{13}\selectfont%
  (\GetDocAuthor(degree,\@LANG@COVER))%
}

% Degree
\ntaddtocover[vspace=11.5mm,height=1cm,valign=c]{1-1,2-1}{%
  \fontsize{9}{9}\selectfont%
  \SetDissertationStringFont()={}%
  \thepresentationtext%
}

% Advisers
\ntaddtocover[vspace=7mm,valign=t]{2-1}{%
  \MemSet{adviserstringfont}{}{\bfseries}%
  \MemSet{adviserstringpost}{}{\\[2pt]}%
  \fontsize{9}{9}\selectfont%
  \ntprintpersons[name]{0.9}[c]{1}{adviser}{a,c}%
}

% Committee
\ntaddtocover[vspace=7mm,valign=c]{2-1}{%
  \MemSet{committeetitlestringfont}{}{\bfseries}%
  \MemSet{committeestringpost}{}{\\[2pt]}%
  \MemSet{committeestringfont}{}{\bfseries}%
  \fontsize{9}{9}\selectfont%
  \ntprintpersons[name]{0.9}[c]{1}{committee}{\GetCommitteeOrder()}%
}

% Date
\ntaddtocover[vfill=2]{1-1,2-1}{%
  \fontsize{9}{9}\selectfont%
  \ifdocworking
    {\emph{\textbf{Draft: \today}}}%
    {\textbf{\PrintDateISO{\GetDocDate(submission,year)-\GetDocDate(submission,month)}}}%
}


