-\usepackage[
+% Papersize
+\usepackage{geometry}
+\geometry{
inner=25mm,
outer=20mm,
marginparsep=3mm,
top=25mm,
bottom=20mm,
paperwidth=17cm,
- paperheight=24cm]{geometry} % Papersize
-
-\usepackage[british]{babel} % Internationalization
-\usepackage[titletoc]{appendix} % Appendices
-\usepackage[pagebackref,hidelinks]{hyperref} % Hyperlinks
-\usepackage{graphicx} % Graphics
-\usepackage{booktabs} % Better looking tables
-\usepackage{etoolbox} % Patch chapter command
-\usepackage[nodayofweek]{datetime} % Use a fixed document date
-\usepackage{listings} % Code
-\usepackage[acronym,nonumberlist]{glossaries} % Glossaries and acronyms
-\usepackage[algochapter]{algorithm2e} % Pseudocode
-\usepackage{makeidx} % Index
-\usepackage[inline,shortlabels]{enumitem} % Customized enumerations
-\setlist{noitemsep}
-\setlist[description]{leftmargin=\parindent}
-\usepackage{epigraph}
+ paperheight=24cm,
+}
-\usepackage[
- height={1.5cm},
- width={12mm},
- distance={1.55cm},
- topthumbmargin={auto},
- bottomthumbmargin={auto},
- eventxtindent={.5cm},
- oddtxtexdent={.3cm}]{thumbs}
+% Font encoding
+\usepackage[T1]{fontenc}
-\usepackage{lipsum}
+% Less bad boxes
+\usepackage{microtype}
-\usepackage{fancyhdr}
-\pagestyle{fancy}
+% No more room for a new \write
+\usepackage{morewrites}
-% Have better page numbering in chapters
-\patchcmd{\chapter}{plain}{headings}{}{}
+% Internationalisation
+\usepackage[british]{babel}
+
+% Appendices
+% TODO is this necessary?
+\usepackage[titletoc]{appendix}
+% Hyperlinks
+%\usepackage[pagebackref]{hyperref}
+\usepackage[pagebackref]{hyperref}
+% Setup pdf parameters: TODO
+\hypersetup{%
+ pdftitle={\mytitle},
+ pdfauthor={\myauthor},
+ pdfsubject={},
+% pdfcreator={},
+% pdfproducer={},
+ pdfkeywords={task oriented programming, functional programming, domain specific languages, internet of things},
+ 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%
\my@chapter}
\makeatother
-% Setup pdf parameters
-\hypersetup{%
- pdftitle={},
- pdfauthor={},
- pdfsubject={},
- pdfcreator={},
- pdfproducer={},
- pdfkeywords={},
-}
-
+% Glossaries and acronyms
+\usepackage[acronym,nonumberlist]{glossaries}
% Fix gls in hyperlink errors
\pdfstringdefDisableCommands{%
\def\acrlong#1{}%
\def\glspl#1{}%
\def\Gls#1{}%
\def\Glspl#1{}%
+ \def\titlecap#1{}%
}
-% 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,
-}
-
-% Increase the depth for the table of contenst
-\setcounter{secnumdepth}{3}
+% 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}
-
-% Enable the index
-\makeindex%