% Papersize
\usepackage{geometry}
\geometry{
	inner=25mm,
	outer=20mm,
	marginparsep=3mm,
	marginparwidth=13mm,
	top=25mm,
	bottom=20mm,
	paperwidth=17cm,
	paperheight=24cm,
}

% Font encoding
\usepackage[T1]{fontenc}

% Internationalisation
\usepackage[british]{babel}

% Appendices
% TODO is this necessary?
\usepackage[titletoc]{appendix}

% Hyperlinks
\usepackage{hyperref}
% Setup pdf parameters: TODO
\hypersetup{%
	pdftitle={},
	pdfauthor={M. Lubbers},
	pdfsubject={},
%	pdfcreator={},
%	pdfproducer={},
	pdfkeywords={},
	pagebackref,
	hidelinks,
}

% Graphics
\usepackage{graphicx}
% Images directory
\graphicspath{{img/}}

% Nice tables
\usepackage{booktabs}

% Automatically wrapping tables
\usepackage{tabularx}

% Use a fixed document date
\usepackage[nodayofweek]{datetime}

% Code
\usepackage{listings}
% General listings settings
\lstset{%
	breakatwhitespace=false,
	breaklines=true,
	captionpos=b,
	keepspaces=true,
	basicstyle=\ttfamily\fontseries{l}\footnotesize,
	commentstyle=\slshape\fontseries{m},
	keywordstyle=\bfseries\fontseries{b},
	stringstyle=\ttfamily,
	showspaces=false,
	showstringspaces=false,
	showtabs=false,
	tabsize=4,
	frame=L,
}
% Fix list of listings title
\renewcommand{\lstlistlistingname}{List of Listings}
% Fix list of listings chapter separator
\makeatletter
\let\my@chapter\@chapter%
\renewcommand*{\@chapter}{%
  \addtocontents{lol}{\protect\addvspace{10pt}}%
  \my@chapter}
\makeatother

% Glossaries and acronyms
\usepackage[acronym,nonumberlist]{glossaries}
% Fix gls in hyperlink errors
\pdfstringdefDisableCommands{%
	\def\acrlong#1{}%
	\def\acrlongpl#1{}%
	\def\acrshort#1{}%
	\def\acrshortpl#1{}%
	\def\acrfull#1{}%
	\def\acrfullpl#1{}%
	\def\Acrlong#1{}%
	\def\Acrlongpl#1{}%
	\def\Acrshort#1{}%
	\def\Acrshortpl#1{}%
	\def\Acrfull#1{}%
	\def\Acrfullpl#1{}%
	\def\gls#1{}%
	\def\glspl#1{}%
	\def\Gls#1{}%
	\def\Glspl#1{}%
	\def\titlecap#1{}%
}

% Titlecase commands
\usepackage{titlecaps}
\Addlcwords{of}
% Titlecase glossary command
\newcommand{\glst}[1]{\titlecap{\glsentrylong{#1}}}
\newcommand{\Glst}[1]{\glst{#1}}

% Pseudocode
\usepackage[algochapter]{algorithm2e}
% Fix the algorithm font
\renewcommand\AlCapFnt{\normalfont}

% Index
\usepackage{makeidx}
% Enable the index
\makeindex%

% Custom enumerations
\usepackage[inline,shortlabels]{enumitem}
\setlist{noitemsep}
\setlist[description]{leftmargin=\parindent}

% Epigraph (lovecraft)
\usepackage{epigraph}

% Thumb marks on the page
\usepackage[
	height={1.5cm},
	width={12mm},
	distance={1.55cm},
	topthumbmargin={auto},
	bottomthumbmargin={auto},
	eventxtindent={.5cm},
	oddtxtexdent={.3cm}]{thumbs}

% Custom headers and footers
\usepackage{fancyhdr}
\pagestyle{fancy}

% To patch the chapter command
\usepackage{etoolbox}
% Have better page numbering in chapters
\patchcmd{\chapter}{plain}{headings}{}{}

% Increase the depth for the table of contents
\setcounter{secnumdepth}{3}
\renewcommand{\contentsname}{Table of Contents} % change the name of the TOC
\AtBeginDocument{\addtocontents{toc}{\protect\thispagestyle{empty}}} % to remove page numbering from the TOC

% Initialize the glossaries
\makeglossaries%
\input{glossaries}
