\usepackage{longtable} % Tables spanning pages
\usepackage{threeparttable} % Tables with footnotes
-% Code
% Pseudocode
\usepackage[algochapter,linesnumbered,lined,boxed]{algorithm2e}
% 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}}}
-\lst@Key{moreliterate}{}{\addToLiterate{#1}}
-\makeatother
-% General listings settings
-\lstset{%
- basewidth=0.5em,
- basicstyle=\tt\small,
- breakatwhitespace=false,
- breaklines=true,
- captionpos=b,
- columns=[c]fixed,
- commentstyle=\sl,
- escapeinside={[+}{+]}, % chktex 9
- frame=,
- backgroundcolor=\color{lstbg},
- keepspaces=true,
- keywordstyle=\bf,
- postbreak=\mbox{\textcolor{gray}{$\hookrightarrow$}\space},
- showspaces=false,
- showstringspaces=false,
- showtabs=false,
- stringstyle=\it,
- tabsize=4,
- upquote=true,
- numberstyle=\tiny,
-}
-\usepackage{lstlangclean}
-\usepackage{lstlanghaskell}
-\usepackage{lstlangarduino}
-\lstloadlanguages{%
- {[Arduino]C++},%
- {c},%
- {Python},%
- {Clean},%
- {[Regular]Haskell},
- {[Lhs2Tex]Haskell}}
-\newcommand{\cinline}[1]{\lstinline[language=c,postbreak=]|#1|}
-\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[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|}
-%For storing listings in footnotes
-\newsavebox{\LstBox}
-% 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
-\lstnewenvironment{lstPython}[1][]
- {%
- \lstset{language=Python, #1}
- \renewcommand*{\lstlistingname}{Listing (\gls{PYTHON})}
- }
- {}
-\lstnewenvironment{lstClean}[1][]
- {%
- \lstset{language=Clean, #1}
- \renewcommand*{\lstlistingname}{Listing (\gls{CLEAN})}
- }
- {}
-\lstnewenvironment{lstArduino}[1][]
- {%
- \lstset{language={[Arduino]C++}, #1}
- \renewcommand*{\lstlistingname}{Listing (\gls{CPP})}
- }
- {}
-\lstnewenvironment{lstHaskell}[1][]
- {%
- \lstset{language={[Regular]Haskell},#1}%
- \renewcommand*{\lstlistingname}{Listing (\gls{HASKELL})}
- }
- {}
-\lstnewenvironment{lstHaskellLhstex}[1][]
- {%
- \lstset{language={[Lhs2Tex]Haskell},#1}%
- \renewcommand*{\lstlistingname}{Listing (\gls{HASKELL})}
- }
- {}
+% Listings
+\input{preamble/listings}
% Graphics
\usepackage{graphicx} % Images
\graphicspath{{img/},{intro/img},{top/img},{tvt/img}}
+\usepackage{dpfloat}
\usepackage{caption} % subfigures/captionof
\usepackage{subcaption}
\usepackage{rotating}
\newcommand{\pkoopman}{Koopman, dr.\ P.\ (Radboud University)}
\newcommand{\ptrinder}{Trinder, prof.~dr.\ P.\ (University of Glasgow)}
\newcommand{\rdmentry}[5]{#1 (#2): #3. #4.\ \doifmt{#5}}
-\newcommand{\rewriterate}[2]{\langle{}#1, #2\rangle{}}
+\newcommand{\rewriterate}[2]{\langle{}\mathit{#1}, \mathit{#2}\rangle{}}
\newcommand{\requiresGHCmod}[2][]{\footnote{Requires \GHCmod{#2} to be enabled. #1}}
\newcommand{\rplasmeijer}{Plasmeijer, prof.\ dr.\ ir.\ R.\ (Radboud University)}
\newcommand{\erasmusplus}{ERASMUS\raisebox{.25ex}{+}}
\newcommand{\imtask}{\gls{ITASK}\slash\gls{MTASK}}
-\newcommand{\Imtask}{\Gls{ITASK}\slash\gls{MTASK}}
\newcommand{\citask}{\gls{CLEAN}\slash\gls{ITASK}}
\newcommand{\Citask}{\Gls{CLEAN}\slash\gls{ITASK}}
\newcommand{\cmtask}{\gls{CLEAN}\slash\gls{MTASK}}
\newcommand{\Cmtask}{\Gls{CLEAN}\slash\gls{MTASK}}
\newcommand{\cimtask}{\gls{CLEAN}\slash\gls{ITASK}\slash\gls{MTASK}}
\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{\ccpp}{\texorpdfstring{\gls{C}\slash\gls{CPP}}{C\slash{}C\texttt{++}}}
+\newcommand{\Ccpp}{\texorpdfstring{\Gls{C}\slash\gls{CPP}}{C\slash{}C\texttt{++}}}
\newcommand{\stacksize}[1]{\parallel#1\parallel}
\makeatletter