2 \usepackage[utf8
]{inputenc} % Input encoding
3 \usepackage[T1]{fontenc} % Font encoding
4 \usepackage{lmodern
} % Nicer font
5 \usepackage{microtype
} % Better kerning
6 \usepackage{tipa
} % IPA symbols
7 \usepackage{stmaryrd
} % short arrows
8 \usepackage{textcomp
} % upquote
9 \usepackage{titlecaps
} % titlecase commands
10 \usepackage{amsmath
} % extra math
11 \usepackage{amssymb
} % extra math symbols
13 \DeclareMathSymbol{\shortminus}{\mathbin}{AMSa
}{"
39} %chktex 18
15 % Internationalisation
16 \usepackage[dutch,russian,british
]{babel
}
17 %\babelfont[russian]{rm}{Liberation Serif}
19 % Papersize and layout
35 topthumbmargin=
{auto
},
36 bottomthumbmargin=
{auto
},
38 oddtxtexdent=
{.3cm
}]{thumbs
} % thumb marks
39 \usepackage{fancyhdr
} % Custom headers and footers
42 \usepackage{etoolbox
} % To patch the chapter command
43 % Have better page numbering in chapters
44 \patchcmd{\chapter}{plain
}{headings
}{}{}
45 \usepackage{epigraph
} % Epigraph
46 \renewcommand\partname{Movement
} % Rename parts to movements (rhapsody uhu)
47 \newenvironment{chapterabstract
}
51 % Increase the depth for the table of contents
52 \setcounter{secnumdepth
}{3}
53 \renewcommand{\contentsname}{Table of Contents
} % change the name of the TOC
54 \AtBeginDocument{\addtocontents{toc
}{\protect\thispagestyle{empty
}}} % to remove page numbering from the TOC
57 \usepackage[subpreambles=true
]{standalone
} % standalone figures
58 \usepackage{morewrites
} % fix no more room for a new \write
59 \usepackage{appendix
} % subappendices, appendices per chapter
62 \usepackage{bibentry
} % Cite bib entry completely
64 \bibliographystyle{alpha
}
66 % Hyperlinks and metadata
67 \usepackage[pagebackref
]{hyperref
} % hyperlinks
68 \renewcommand*
{\backref}[1]{}
69 \renewcommand*
{\backrefalt}[4]{[{%
70 \ifcase #1 not cited.
\or p.~
#2.
\else pp.
#2.
\fi%chktex 1
74 pdfauthor=
{\myauthor},
75 pdfkeywords=
{task-oriented programming, functional programming, domain specific languages, internet of things
},
78 \usepackage[nodayofweek
]{datetime
} % Use a fixed document date
81 \usepackage{cleveref
} % Easy references
82 \crefname{part
}{movement
}{movements
}
83 \crefname{lstlisting
}{listing
}{listing
}
86 \usepackage{graphicx} % Images
87 \graphicspath{{img/
},
{introduction/img
}}
88 \usepackage{caption
} % subfigures
89 \usepackage{subcaption
}
90 \newcommand{\orcid}[1]{\href{https://orcid.org/
#1}{\hspace{1mm
}\includegraphics[width=
1em
]{orcid
}\hspace{2mm
} https://orcid.org/
#1}}
93 \usepackage{booktabs
} % Nicer tables
94 \usepackage{multirow
} % Multirow cells
95 \usepackage{tabularx
} % Automatically wrapping tables
96 \usepackage{longtable
} % Tables spanning pages
100 \usepackage[algochapter
]{algorithm2e
}
101 % Fix the algorithm font
102 \renewcommand\AlCapFnt{\normalfont}
103 \usepackage{listings
}
104 % General listings settings
107 basicstyle=
\tt\small,
108 breakatwhitespace=false,
113 % escapeinside={(+}{+)}, % chktex 9
117 postbreak=
\mbox{\textcolor{gray
}{$
\hookrightarrow$
}\space},
119 showstringspaces=false,
125 \usepackage{lstlangclean
}
126 \usepackage{lstlanghaskell
}
127 \usepackage{lstlanghaskelllhstex
}
128 \usepackage{lstlangarduino
}
129 \newcommand{\cinline}[1]{\lstinline[language=c,postbreak=
]|
#1|
}
130 \newcommand{\arduinoinline}[1]{\lstinline[language=
{[Arduino
]C++
},postbreak=
]|
#1|
}
131 \newcommand{\cleaninline}[1]{\lstinline[language=Clean,postbreak=
]|
#1|
}
132 \newcommand{\haskellinline}[1]{\lstinline[language=Haskell,style=haskell,postbreak=
]|
#1|
}
133 \newcommand{\haskelllhstexinline}[1]{\lstinline[language=Haskell,style=haskelllhstex,postbreak=
]|
#1|
}
134 % Fix list of listings title
135 \renewcommand{\lstlistlistingname}{List of Listings
}
136 % Fix list of listings chapter separator
138 \let\my@chapter\@chapter
%
139 \renewcommand*
{\@chapter
}{%
140 \addtocontents{lol
}{\protect\addvspace{10pt
}}%
144 \lstnewenvironment{lstClean
}[1][]
146 \lstset{language=Clean,
#1}
147 \renewcommand*
{\lstlistingname}{Listing (
\gls{CLEAN
})
}
150 \lstnewenvironment{lstArduino
}[1][]
152 \lstset{language=
{[Arduino
]C++
},
#1}
153 \renewcommand*
{\lstlistingname}{Listing (
\gls{ARDUINO
})
}
156 \lstnewenvironment{lstHaskell
}[1][]
158 \lstset{language=Haskell,style=haskell,
#1}%
159 \renewcommand*
{\lstlistingname}{Listing (
\gls{HASKELL
})
}
162 \lstnewenvironment{lstHaskellLhstex
}[1][]
164 \lstset{language=Haskell,style=haskelllhstex,
#1}%
165 \renewcommand*
{\lstlistingname}{Listing (
\gls{HASKELL
})
}
169 % Glossaries and acronyms
170 \usepackage[acronym,nonumberlist
]{glossaries
}
172 % Titlecase glossary commands
173 \newcommand{\glst}[1]{\titlecap{\glsentrylong{#1}}}
174 \newcommand{\Glst}[1]{\glst{#1}}
175 % Fix gls in hyperlink errors
176 \pdfstringdefDisableCommands{%
191 \def\glsentrytext#1{}%
194 \def\Glsentrytext#1{}%
200 \makeindex% Enable the index
202 % Custom enumerations
203 \usepackage[inline,shortlabels
]{enumitem
}
205 \setlist[description
]{leftmargin=
\parindent}
207 % Initialize the glossaries
211 \usepackage{subfiles
}
213 \ifSubfilesClassLoaded{}{
215 \includexmp{CC_Attribution-NoDerivatives_4.0_International
}
219 \newcommand{\GHCmod}[1]{\texttt{#1}}
220 \newcommand{\requiresGHCmod}[1]{\footnote{Requires
\GHCmod{#1} to be enabled.
}}
221 \newcommand{\etc}{{\fontfamily{cmr
}\selectfont{\itshape\/\&c
}}}
222 \newcommand{\rdmentry}[6]{#1:
#2 (
#3):
#4.
#5.\
\href{https://doi.org/
#6}{#6}}
223 \newcommand{\mlubbers}{Lubbers, M.\ (Radboud University)
}
224 \newcommand{\pkoopman}{Koopman, dr.\ P.\ (Radboud University)
}
225 \newcommand{\rplasmeijer}{Plasmeijer, prof.\ dr.\ ir.\ R.\ (Radboud University)
}