\usepackage{siunitx} % typeset units
\usepackage{xcolor} % colors
\usepackage{fnpct} % footnotekerning
+\usepackage[all]{nowidow} % Kill widows and orphans
\DeclareSIUnit\noop{\relax}
\DeclareSIUnit\celcius{{}^{\circ}\kern-\scriptspace\mathsf{C}}
\everymath{\it\/}
chapterlistsgaps=on,
]{equ}
\usepackage{fancyhdr} % Custom headers and footers
+\usepackage[fit]{truncate}
%\pagestyle{headings}
\pagestyle{fancy}
\fancyhead{}
\fancyfoot{}
\setlength{\unitlength}{18mm}
\newcommand{\blob}{{\color{gray}\rule[-.2\unitlength]{2\unitlength}{.5\unitlength}}}
-\fancyhead[RE]{\rightmark}
-\fancyhead[LO]{\leftmark}
+\fancyhead[RE]{\truncate{.95\headwidth}{\rightmark}}
+\fancyhead[LO]{\truncate{.95\headwidth}{\leftmark}}
\newcommand{\frontmatterfancy}[0]{
\fancyhead[RO]{\thepage}
\fancyhead[LE]{\thepage}
\def\part@nostar@nopt#1{\NR@gettitle{#1}\titlesec@part{#1}}
\def\part@nostar@opt[#1]#2{\NR@gettitle{#1}\titlesec@part[#1]{#2}}
\makeatother
-\newenvironment{chapterabstract}{\begin{quotation}\em}{\end{quotation}} %chktex 6
+
+\usepackage{framed}
+\definecolor{lstbg}{gray}{.95}
+\definecolor{shadecolor}{named}{lstbg}
+\newenvironment{chapterabstract}{\begin{shaded}\begin{quotation}}{\end{quotation}\end{shaded}} %chktex 6
% Increase the depth for the table of contents
\setcounter{secnumdepth}{3}
\usepackage{appendix} % subappendices, appendices per chapter
% Bibliography
-\usepackage{natbib} % Cite bib entry completely
+\usepackage[square]{natbib} % Cite bib entry completely
\setlength{\bibsep}{0.0pt}
-\def\bibfont{\small}
+%\def\bibfont{\small}
%\bibliographystyle{alpha}
\bibliographystyle{abbrvnat}
-\apptocmd{\thebibliography}{\raggedright}{}{}
+%\apptocmd{\thebibliography}{\raggedright}{}{}
\usepackage{bibentry} % Cite bib entry completely
\nobibliography*
\newcommand{\citeentry}[1]{\begin{NoHyper}\bibentry{#1}\end{NoHyper}. \citep{#1}}
+\newcommand{\refurl}[2]{\url{#1}, accessed on: #2}
\makeatletter
\newcommand{\citepage}[1]{p.~#1}
%\newcommand{\citesections}[1]{\S\S.~#1}
\newcommand{\citeparagraph}[1]{\P.~#1}
\newcommand{\citeparagraphs}[1]{\P\P.~#1}
+\newcommand{\citelisting}[1]{\cref@listing@name~#1}
\makeatother
-% Graphics
-\usepackage{graphicx} % Images
-\graphicspath{{img/},{intro/img},{top/img},{tvt/img}}
-\usepackage{caption} % subfigures/captionof
-\usepackage{subcaption}
-\usepackage{rotating}
-\newcommand{\orcid}[1]{\href{https://orcid.org/#1}{\hspace{1mm}\includegraphics[width=1em]{orcid}\hspace{2mm} https://orcid.org/#1}}
-\usepackage{tikz}
-
% Tables
\usepackage{booktabs} % Nicer tables
\usepackage{multirow} % Multirow cells
% Fix the algorithm font
\renewcommand\AlCapFnt{\normalfont}
\usepackage{listings}
+\newcounter{tmp}
% https://tex.stackexchange.com/questions/149056/how-can-i-define-additional-literate-replacements-without-deleting-existing-ones
\makeatletter
\def\addToLiterate#1{\edef\lst@literate{\unexpanded\expandafter{\lst@literate}\unexpanded{#1}}}
columns=[c]fixed,
commentstyle=\sl,
escapeinside={[+}{+]}, % chktex 9
- frame=L,
+ frame=,
+ backgroundcolor=\color{lstbg},
keepspaces=true,
keywordstyle=\bf,
postbreak=\mbox{\textcolor{gray}{$\hookrightarrow$}\space},
\newcommand{\arduinoinline}[1]{\lstinline[language={[Arduino]C++},postbreak=]|#1|}
\newcommand{\pythoninline}[1]{\lstinline[language=Python,postbreak=]|#1|}
\newcommand{\cleaninline}[1]{\lstinline[language=Clean,postbreak=]|#1|}
-\newcommand{\cleaninputlisting}[2][]{\renewcommand*{\lstlistingname}{Listing (\gls{CLEAN})}\lstinputlisting[language=Clean,#1]{\subfix{#2}}}
+\newcommand{\cleaninputlisting}[2][]{\renewcommand*{\lstlistingname}{Listing (\gls{CLEAN})}\lstinputlisting[escapeinside={/*}{*/},language=Clean,#1]{\subfix{#2}}}
\newcommand{\haskellinline}[1]{\lstinline[language={[Regular]Haskell},postbreak=]|#1|}
\newcommand{\haskellinputlisting}[2][]{\renewcommand*{\lstlistingname}{Listing (\gls{HASKELL})}\lstinputlisting[language={[Regular]Haskell},#1]{\subfix{#2}}}
\newcommand{\haskelllhstexinline}[1]{\lstinline[language={[Lhs2Tex]Haskell},postbreak=]|#1|}
}
{}
+% Graphics
+\usepackage{graphicx} % Images
+\graphicspath{{img/},{intro/img},{top/img},{tvt/img}}
+\usepackage{caption} % subfigures/captionof
+\usepackage{subcaption}
+\usepackage{rotating}
+\newcommand{\orcid}[1]{\href{https://orcid.org/#1}{\hspace{1mm}\includegraphics[width=1em]{orcid}\hspace{2mm} https://orcid.org/#1}}
+\usepackage{tikz}
+
+% Index
+%\usepackage{makeidx}
+%\makeindex% Enable the index
+
+% Custom enumerations
+\usepackage[inline,shortlabels]{enumitem}
+\setlist{noitemsep}
+\setlist[description]{leftmargin=\parindent}
+
% Hyperlinks and metadata
-\usepackage[pdflang={en-GB},pagebackref]{hyperref} % hyperlinks
+\usepackage[hyphens]{url}
+\usepackage[pdflang={en-GB},pagebackref,breaklinks]{hyperref} % hyperlinks
\usepackage{xr} % hyperlinks
\renewcommand*{\backref}[1]{}
\renewcommand*{\backrefalt}[4]{[{%
\def\MakeUppercase#1{}%
}
-% Index
-%\usepackage{makeidx}
-%\makeindex% Enable the index
-
-% Custom enumerations
-\usepackage[inline,shortlabels]{enumitem}
-\setlist{noitemsep}
-\setlist[description]{leftmargin=\parindent}
-
% Initialize the glossaries
\makeglossaries%
\input{glossaries}
\newcommand{\Cimtask}{\Gls{CLEAN}\slash\gls{ITASK}\slash\gls{MTASK}}
\newcommand{\ccpp}{\gls{C}\slash\gls{CPP}}
\newcommand{\Ccpp}{\Gls{C}\slash\gls{CPP}}
+\newcommand{\stacksize}[1]{\parallel#1\parallel}
\makeatletter
\newenvironment{compilationscheme}