%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%
%   Basic configuration
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Use 'KOMA-Script Book' as the document class
\documentclass[toc=bibliography,toc=indentunnumbered,listof=totoc]{scrbook}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%   Preload essentials
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Load some required packages
\usepackage{etoolbox}                   % Modding standard environments
\usepackage[fleqn,intlimits]{amsmath}   % Common mathematical environments
\usepackage[svgnames]{xcolor}           % Enables coloring of text and pages
\usepackage{hyperref}                   % Enables hyperlink generation



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%   Page design
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Font size
\KOMAoptions{fontsize=11pt}

% Line spacing
\linespread{1.04} 

% Paper format
\KOMAoptions{paper=B5}

% Duplex layout
\KOMAoptions{twoside}

% Page layout [1/sqrt(3)]
\usepackage[text={108.25mm,187.50mm},hmarginratio=1:1,vmarginratio=1:2]{geometry}

% Page layout [1/sqrt(2)]
%\KOMAoptions{BCOR=15mm}
%\KOMAoptions{DIV=11}

% Page layout [Classic circle]
%\KOMAoptions{BCOR=15mm}
%\KOMAoptions{DIV=classic}

% Disable headers
\pagestyle{plain}

% Font used for page numbers
\addtokomafont{pagenumber}{\lining\scshape}

% Use spacing instead of indentation to separate paragraphs
%\KOMAoptions{parskip=half+} 

% Don't stretch the content to fill entire pages
\raggedbottom

% Don't break paragraphs because of a single line
\PassOptionsToPackage{defaultlines=2,all}{nowidow}

% Permit some hyphenation in ragged-right blocks
\PassOptionsToPackage{newcommands}{ragged2e}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%   Document fonts
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Load font management packages
\usepackage[no-math]{fontspec} 
\usepackage{unicode-math}
\usepackage{realscripts}
\usepackage{microtype}

% Where to look for fonts
\defaultfontfeatures{Path={fonts/}}

% Scale all fonts to the same x-height
\defaultfontfeatures{Scale=MatchLowercase}

% Use italics for all math letters
\unimathsetup%
{ 
  math-style=ISO,
  nabla=upright,
  partial=upright
}

% Turn on "contextual alternates"
\defaultfontfeatures{RawFeature={+calt}}

% Define commands to switch number style
\newcommand{\lining}{\addfontfeature{Numbers={Lining}}}
\newcommand{\oldstyle}{\addfontfeature{Numbers={OldStyle}}}

% Serif font (used for body text)
\setmainfont{Libertinus Serif}%
[
  UprightFont      = {*-Regular},
  ItalicFont       = {*-Italic},
  BoldFont         = {*-Semibold},
  BoldItalicFont   = {*-SemiboldItalic},
  Numbers          = {OldStyle},
  PunctuationSpace = 1.125
]

% Sans font (used for titling)
\setsansfont{URW Classico}%
[
  UprightFont    = {*-Regular},
  ItalicFont     = {*-Italic},
  BoldFont       = {*-Bold},
  Numbers        = {Proportional,Lining},
  Scale          = MatchUppercase
]

% Math font (used for equations)
\setmathfont{Libertinus Math}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%   Table of contents
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
% Load a package for styling the table of contents
\usepackage{tocbasic}

% Do not include subsections in the table of contents
\setcounter{tocdepth}{1}

% Fix vertical spacing after table of contents title
\BeforeTOCHead[toc]{\RedeclareSectionCommand[beforeskip=1sp,afterskip=1sp]{chapter}}

% Place page numbers right after the section entries
% Use tabular lining figures for the sections, but oldstyle figures for the pages
\DeclareTOCStyleEntry[
  entryformat=\lining\bfseries,
  linefill=\quad,
  pagenumberbox={},
  raggedpagenumber,
  pagenumberformat=\bfseries,
  ]{tocline}{chapter}
\DeclareTOCStyleEntry[
  entryformat=\lining,
  linefill=\quad,
  pagenumberbox={},
  raggedpagenumber,
  pagenumberformat=,
  ]{tocline}{section}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%   Headings
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Change the font used for headings
\addtokomafont{disposition}{\sffamily}

% Change the sizes of chapters and sections
\addtokomafont{chapter}{\LARGE}
\addtokomafont{section}{\large}

% Change spacing around chapters and sections
\RedeclareSectionCommand[beforeskip=-0.0\baselineskip,afterskip=0.5\baselineskip]{chapter}
\RedeclareSectionCommand[beforeskip=-1.0\baselineskip,afterskip=0.5\baselineskip]{section}

% Bringhurst-style chapter numbers in the margin
\makeatletter
  \newsavebox{\feline@chapter}
  \newcommand{\feline@chapter@marker}[1][4cm]{\sbox\feline@chapter{\resizebox{!}{#1}{\setlength{\fboxsep}{0pt}\color{gray}\thechapter}}\parbox[b][0.5cm]{1.5cm}{\usebox{\feline@chapter}\vspace*{-1.325cm}}}
  \renewcommand*{\chapterformat}{\sbox\feline@chapter{\feline@chapter@marker[1.6cm]}\makebox[0pt][l]{\makebox[\dimexpr\textwidth+2.0\marginparsep+\wd\feline@chapter\relax][r]{\usebox\feline@chapter}}}
\makeatother



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%   Captions
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Change the font used for captions
\addtokomafont{caption}{\small}

% Change the font used for labels
\addtokomafont{captionlabel}{\bfseries\lining}

% Add 2em margins on each side of the caption. (Since the default 
% \parindent is 1em, this implies that the left end of the caption 
% will always look one \parindent indented if it comes right before
% or after a new paragraph, and can thus prevent weird indentation.)
\setcapdynwidth{\dimexpr\textwidth-4em\relax}

% Disable extra indentation of subsequent lines in a multiline caption
\setcapindent{0em}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%   Footnotes
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Make sure footnote marks are separated by commas and kerned properly
\usepackage[multiple=true,mult-fn-sep=${}^{,\kern-0.07em}$]{fnpct}

% Change the font used for footnotes
%\addtokomafont{footnote}{\sffamily}

% Change the footnote marks to lining numbers
\renewcommand{\thefootnote}{\lining{\arabic{footnote}}}

% Change the footnote marks to Latin letters
%\renewcommand{\thefootnote}{\textit{\alph{footnote}}}

% Change the footnote marks to symbols
%\usepackage[wiley]{footmisc}
%\renewcommand{\thefootnote}{\fnsymbol{footnote}}

% Set the footnote rule length to the text width
\setfootnoterule{\textwidth}

% Remove the footnote rule entirely
%\setfootnoterule{0pt}

% Adjust the footnote formatting and spacing
\deffootnote{2.15em}{2.15em}{\thefootnotemark.\kern0.75em}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%   Hyperlinks
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Table of contents links
\hypersetup{linktoc=page}

% Color the hyperlinks
\hypersetup{colorlinks}
\hypersetup{allcolors=Navy}

% Font used for hyperlinks
\urlstyle{rm}

% Fix kerning problems for backslashes and redefine underscores in hyperlinks
\makeatletter
  \let\UrlSpecialsOld\UrlSpecials
  \def\UrlSpecials{\UrlSpecialsOld\do\/{\Url@slash}\do\_{\Url@underscore}}%
  \def\Url@slash{\@ifnextchar/{\kern+0.05em\mathchar47\kern-0.10em}%
      {\kern0.08em\mathchar47\penalty\UrlBigBreakPenalty}}
  \def\Url@underscore{\nfss@text{\leavevmode \kern.06em\vbox{\hrule height 0.12ex width 0.4em}}}
\makeatother



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%   References
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Bibliography backend (e.g. 'biber' or 'bibtex')
\PassOptionsToPackage{backend=biber}{biblatex}

% Bibliography style (e.g. 'phys' or 'nature')
\PassOptionsToPackage{style=bababib}{biblatex}

% Citation style (e.g. 'plain' or 'superscript')
\PassOptionsToPackage{autocite=plain}{biblatex} 

% Enable multiple bibliographies with separate numbering
\PassOptionsToPackage{defernumbers=true}{biblatex}

% Format for cross-references with \cref
\PassOptionsToPackage{noabbrev}{cleveref}
\newcommand{\crefrangeconjunction}{--}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%   Postload packages
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Load the required packages
\usepackage{biblatex}   % Produces the bibliography
\usepackage{ragged2e}   % Permits ragged-right with hyphenation
\usepackage{nowidow}    % Prevents widows and orphans in text
\usepackage{cleveref}   % Easy and consistent cross-references
\usepackage{graphicx}   % Loads and displays figures
\usepackage{pdfpages}   % Enables embedding of documents
\usepackage{booktabs}   % Proper formatting of tables
\usepackage{siunitx}    % Proper formatting of units
\usepackage{mhchem}     % Proper formatting of chemicals
\usepackage{lipsum}     % Insertion of arbitrary content



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%   Miscellaneous
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Enforce a consistent Greek style
%\AtBeginDocument{\let\nabla=𝛁}
\AtBeginDocument%
{
  \let\epsilon=\varepsilon
  \let\phi=\varphi
}

% Change the font used for tables
\AtBeginEnvironment{tabular}{\small}
\AtBeginEnvironment{tabular*}{\small}

% Use lining numbers for chemistry and physics
\mhchemoptions{textfontcommand=\lining}
\sisetup{text-rm=\lining}

% Format for typesetting physical units
\sisetup{range-units=single}
\sisetup{range-phrase=--}
\sisetup{detect-all=true} 

% Use 2em equation indentation
\makeatletter
  \setlength\@mathmargin{2em}
\makeatother

% Replace \cite with the more flexible \autocite
\let\cite=\autocite

% Define a custom color palette
\definecolor{whiteish}{rgb}{1.000, 0.964, 0.859}
\definecolor{rosewood}{rgb}{0.396, 0.000, 0.043}

% Declare a custom article format for my papers
\DeclareBibliographyAlias{customa}{article}
\DeclareFieldFormat[customa]{labelnumber}{\textsc{\Rn{#1}}}

% Where to look for figure files
\graphicspath{{./figures/}}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%   Custom macros
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Abbreviations
\newcommand{\eg}{e.g.\ }
\newcommand{\ie}{i.e.\ }
\newcommand{\cf}{c.f.\ }
\newcommand{\etal}{et al.\ }

% Common notation
\renewcommand{\d}[1]{\mathop{\textrm{d}\kern0em#1\kern0.1em}}
\newcommand{\up}{\uparrow}
\newcommand{\dn}{\downarrow}
\newcommand{\trans}{{\symsfup{T}}}

% Common functions
\DeclareMathOperator{\tr}{Tr}
\DeclareMathOperator{\re}{Re}
\DeclareMathOperator{\im}{Im}
\DeclareMathOperator{\atan}{atan}
\DeclareMathOperator{\atanh}{atanh}
\DeclareMathOperator{\asin}{asin}
\DeclareMathOperator{\asinh}{asinh}
\DeclareMathOperator{\acos}{acos}
\DeclareMathOperator{\acosh}{acosh}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%   Document itself
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Import bibliographies
\addbibresource{references.bib}

\begin{document}
  \frontmatter
    \include{chapters/abstract}
    \include{chapters/preface}
    \tableofcontents
  \mainmatter 
    \include{chapters/introduction} 
    \include{chapters/test}
    \include{chapters/conclusion} 
  \backmatter
    \printbibliography
\end{document}
