Merge branch 'master' of git.martlubbers.net:msc-thesis1617
[msc-thesis1617.git] / thesis.pre
index 896e0c5..e7fef0f 100644 (file)
@@ -1,34 +1,61 @@
-\documentclass[a4paper]{book}
-
-\usepackage[british]{babel}
+\documentclass[twoside,a4paper,titlepage]{book}
 
 \usepackage{geometry}                % Papersize
+\usepackage[british]{babel}          % Internationalization
 \usepackage[titletoc]{appendix}      % Appendices
-\usepackage{rutitlepage/rutitlepage} % Titlepage
 \usepackage{hyperref}                % Hyperlinks
 \usepackage{booktabs}                % Better looking tables
-\usepackage{todonotes}               % Todo's
 \usepackage{caption}                 % Captions
 \usepackage{subcaption}              % Subcaptions
-\usepackage{lipsum}                  % dummy text
 \usepackage{listings}                % source code
 \usepackage{float}                   % floating images
 \usepackage{lmodern}                 % Better teletype fonts
 \usepackage{textcomp}                % Nice listings quotes
+\usepackage{pgf-umlsd}               % Connection diagrams
+\usepackage{graphicx}                % Graphics
+\usepackage{epstopdf}                % Eps graphics
+\usepackage{etoolbox}                % Patch chapter command
+\usepackage[nodayofweek]{datetime}   % Use a fixed document date
+
+% Fix fonts
+\normalfont
+\DeclareFontShape{OT1}{lmr}{bx}{sc} { <-> ssub * lmr/bx/n }{}
+
+% Have better page numbering in chapters
+\patchcmd{\chapter}{plain}{headings}{}{}
+
+% Arrows for communication diagrams
+\usetikzlibrary{arrows,shadows}
 
+% Images directory
 \graphicspath{{img/}}
 
+% 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
+
+% Always have url in teletype
 \urlstyle{tt}
+
+% Setup pdf parameters
 \hypersetup{%
-       pdftitle={iTasks and the Internet of Things},
+       pdftitle={Task Oriented Programming and the Internet of Things},
        pdfauthor={Mart Lubbers},
-       pdfsubject={iTasks and the Internet of Things},
+       pdfsubject={Task Oriented Programming and the Internet of Things},
        pdfcreator={Mart Lubbers},
        pdfproducer={Mart Lubbers},
        pdfkeywords={TOP,iTasks,Clean,Function Programming,IoT},
        hidelinks=true
 }
 
+% Fix gls in hyperlink errors
 \pdfstringdefDisableCommands{%
        \def\acrlong#1{}%
        \def\acrlongpl#1{}%
@@ -40,6 +67,7 @@
        \def\Glspl#1{}%
 }
 
+% Clean language spec for listings
 \lstdefinelanguage{Clean}{%
        alsoletter={ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_`1234567890},
        alsoletter={~!@\#$\%^\&*-+=?<>:|\\.},
                {\\}{{$\lambda\:$}}1
                {A.}{{$\forall\;\,$}}1
                {E.}{{$\exists\;\,$}}1
-%              {>}{{$>$}}1
-%              {<}{{$<$}}1
-%              {<=}{{$\leq$}}1
-%              {>=}{{$\geq$}}1
-%              {<>}{{$\neq$}}1
-%              {->}{{$\rightarrow$}}2
-%              {<-}{{$\leftarrow$}}1
-%              {=}{{$=$}}1
-%              {~}{{$\sim$}}1
-%              {\#}{{$\sharp$}}1
-%              {\{|}{{$\{\!|\!$}}1
-%              {|\}}{{$\!|\!\}$}}1
-%              {:=}{{$:=$}}2
-%              {==}{{$==$}}2
-%              {++}{{$+\!\!+$}}2
-%              {+++}{{$+\!\!\!\!+\!\!\!\!+$}}2
-%              {:==}{{$:==$}}3
-%              {\{|*|\}}{{$\{\!|\!\!\star\!\!|\!\}$}}3
-               %
-               % Basic iTask constructs
-%              {>||>}{{$\triangleright\triangleright$}}2
-%              {>>=}{{\texttt{>>=}}}3
-%              {>>|}{{\texttt{>>|}}}3
-%              {?>>}{{\texttt{?>>}}}3
-%              {!>>}{{\texttt{!>>}}}3
-%              {-||-}{{\texttt{-||-}}}4
-%              {.||.}{{\texttt{.||.}}}4
-%              {.&&.}{{\texttt{.\&\&.}}}4
+               {*}{{$^*$}}1
 }
 
+% Handy shortcut for inline Clean code
 \newcommand{\CI}[1]{\lstinline[language=Clean,basicstyle=\ttfamily\fontseries{l}\normalsize]|#1|}
 
+% General listings settings
 \lstset{%
-       breakatwhitespace=false,                        % sets if automatic breaks should only happen at whitespace
-       breaklines=true,                                % sets automatic line breaking
-       captionpos=b,                                   % sets the caption-position to bottom
-       keepspaces=true,                                % keeps spaces in text, useful for keeping indentation of code (possibly needs columns=flexible)
-       basicstyle=\ttfamily\fontseries{l}\footnotesize,% the size of the fonts that are used for the code
-       commentstyle=\itshape\fontseries{m},            % comment style
-       keywordstyle=\bfseries\fontseries{b},           % keyword style
-       stringstyle=\ttfamily,                          % string literal style
-       showspaces=false,                               % show spaces everywhere adding particular underscores; it overrides 'showstringspaces'
-       showstringspaces=false,                         % underline spaces within strings only
-       showtabs=false,                                 % show tabs within strings adding particular underscores
-       tabsize=4,                                      % sets default tabsize to 2 spaces
-       frame=L
+       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,
 }
 
-\title{iTasks and the Internet of Things}
+% Increase the depth for the table of contenst
+\setcounter{secnumdepth}{3}
+
+% Document info
+\title{Task Oriented Programming and the Internet of Things}
 \author{Mart Lubbers BSc.\\
        {\small\href{mailto:mart@martlubbers.net}{mart@martlubbers.net}}}
-\date{\today}
+\date{\formatdate{10}{7}{2017}}