many updates
[phd-thesis.git] / thesis.tex
1 \documentclass[twoside,10pt]{book}
2
3 \def\mytitle{Orchestrating the Internet of Things with Task-Oriented Programming}
4 \def\mysubtitle{a purely functional rhapsody}
5 \def\myauthor{Mart Lubbers}
6 \def\mydate{\formatdate{31}{12}{2022}}
7
8 \input{preamble}
9
10 % To show hboxes even when in non-draft mode
11 \overfullrule=1mm
12
13 % Just for the todonotes, can go when it's finished
14 \usepackage{todonotes}
15 \setuptodonotes{
16 backgroundcolor=white,
17 linecolor=black,
18 size=scriptsize,
19 }
20
21 % Document info
22 \title{\mytitle{} --- \mysubtitle{}}
23 \author{Mart Lubbers}
24
25 \date{\mydate}
26
27 \begin{document}
28 \selectlanguage{british}
29
30 \frontmatter%
31 %\addtitlethumb{Frontmatter}{}{white}{gray}{pagesLTS.0}
32
33 %Titlepage
34 \subfile{frontmatter/titlepage}
35 \newpage%
36
37 % Epigraph/motto
38 \subfile{frontmatter/motto}
39
40 % Table of contents
41 %\setcounter{tocdepth}{1}
42 \tableofcontents
43 \todo{reduce tocdepth to 1 before finishing}
44 \newpage%
45
46 % Dedication
47 \subfile{frontmatter/dedication}
48
49 \listoftodos%
50
51 % Reset glossary and thus the acronyms
52 \glsresetall{}
53
54 % The actual document
55 \mainmatter%
56 \addthumb{Chapters}{\arabic{chapter}}{white}{gray} % Arabic chapter thumbs
57 \setcounter{chapter}{-1}
58
59 % Introduction
60 \subfile{introduction/introduction}
61 % DSL
62
63 \part[Prelude: Domain-Specific Languages]{Prelude\\Domain-Specific Languages}%
64 \label{prt:dsl}
65
66 % DSL Techniques
67 \subfile{domain-specific_languages/dsl_techniques}
68
69 % Deep embedding with class
70 \subfile{domain-specific_languages/class_deep_embedding}
71
72 % First-class data types
73 \subfile{domain-specific_languages/first-class_datatypes}
74
75 % Stack computations?
76 \subfile{domain-specific_languages/strongly-typed_multi-view_stack-based_computations}
77
78 \part[Exposition: Task-Oriented Internet of Things Programming]{Exposition\\Task-Oriented Internet of Things Programming}%
79 \label{prt:top}
80
81 \subfile{mtask/mtask}
82
83 \part[Transformation: Tiered vs.\ tierless programming]{Transformation\\Tiered vs.\ tierless programming}%
84 \label{prt:tvt}
85
86 \subfile{tiered_vs._tierless_programming/smart_campus}
87
88 \bookmarksetup{startatroot} % descend back out of the previous part
89 \addtocontents{toc}{\bigskip}% Insert some whitespace to make the TOC better
90 \subfile{conclusion/conclusion}
91
92 % Start appendix
93 \appendix%
94 \label{chp:appendix}
95 \addcontentsline{toc}{part}{Appendix}
96 \addthumb{Appendices}{\Alph{chapter}}{white}{gray} % Alpha appendix thumbs
97
98 \subfile{appendix/clean_for_haskell_programmers}
99 \subfile{appendix/bytecode}
100
101 \backmatter%
102 \bookmarksetup{startatroot} % descend back out of the appendix
103 \addtitlethumb{Backmatter}{}{white}{gray}{pagesLTS.0} % Empty backmatter thumbs
104
105 % Bibliography
106 \phantomsection{}%
107 \label{chp:bibliography}
108 \addcontentsline{toc}{chapter}{Bibliography}
109 \bibliography{other,self}
110
111 % Summary
112 \subfile{backmatter/summary}
113
114 % Samenvatting
115 \subfile{backmatter/samenvatting}
116
117 % Acknowledgements
118 \subfile{backmatter/acknowledgements}
119
120 % Research data management
121 \subfile{backmatter/research_data_management}
122
123 % Curriculum vitæ
124 \subfile{backmatter/curriculum_vitae}
125
126 % Glossary
127 \addcontentsline{toc}{chapter}{Glossary}%
128 \label{chp:glossaries}
129 \printglossaries%
130
131 % Lists of
132 \cleardoublepage{}
133 \phantomsection{}%
134 \label{chp:listsof...}
135 \addcontentsline{toc}{chapter}{Lists of \ldots}
136 \begingroup
137 \let\clearpage\relax
138 \let\cleardoublepage\relax
139 \listoffigures%
140 %\listoftables%
141 %\listofalgorithms%
142 %\lstlistoflistings%
143 \endgroup
144
145 % Index
146 \addcontentsline{toc}{chapter}{Index}%
147 \label{chp:index}
148 \printindex
149
150 \end{document}