\usepackage{titlecaps} % titlecase commands
\usepackage{amsmath} % extra math
\usepackage{amssymb} % extra math symbols
+\usepackage{wasysym} % circle symbols
\usepackage{relsize} % \smaller command
\usepackage{siunitx} % typeset units
\usepackage{xcolor} % colors
\DeclareSIUnit\noop{\relax}
\DeclareSIUnit\celcius{{}^{\circ}\kern-\scriptspace\mathsf{C}}
-%\usepackage{atveryend} % \smaller command
\everymath{\it\/}
\DeclareMathSymbol{\shortminus}{\mathbin}{AMSa}{"39} %chktex 18
\newcommand{\dcolon}[0]{\mathbin{::}}
\fancyhead{}
\fancyfoot{}
\setlength{\unitlength}{18mm}
-\newcommand{\blob}{\rule[-.2\unitlength]{2\unitlength}{.5\unitlength}}
+\newcommand{\blob}{{\color{gray}\rule[-.2\unitlength]{2\unitlength}{.5\unitlength}}}
\fancyhead[RE]{\rightmark}
\fancyhead[LO]{\leftmark}
\newcommand{\frontmatterfancy}[0]{
% Have better page numbering in chapters
\patchcmd{\chapter}{plain}{headings}{}{}
\usepackage{epigraph} % Epigraph
-\renewcommand\partname{Movement} % Rename parts to movements (rhapsody uhu)
-\addto\captionsbritish{\renewcommand{\partname}{Movement}}
+\renewcommand\partname{Episode} % Rename parts to episodes (rhapsody uhu)
+\addto\captionsbritish{\renewcommand{\partname}{Episode}}
\usepackage{titlesec}
\titleformat{\part}[block]
{\Huge}
\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}}{\end{quotation}}
+\newenvironment{chapterabstract}{\begin{quotation}\em\noindent}{\end{quotation}} %chktex 6
% Increase the depth for the table of contents
\setcounter{secnumdepth}{3}
\usepackage{appendix} % subappendices, appendices per chapter
% Bibliography
-\usepackage{bibentry} % Cite bib entry completely
-\nobibliography*
\usepackage{natbib} % Cite bib entry completely
\setlength{\bibsep}{0.0pt}
\def\bibfont{\small}
%\bibliographystyle{alpha}
\bibliographystyle{abbrvnat}
\apptocmd{\thebibliography}{\raggedright}{}{}
+\usepackage{bibentry} % Cite bib entry completely
+\nobibliography*
+\newcommand{\citeentry}[1]{\begin{NoHyper}\bibentry{#1}\end{NoHyper}. \citep{#1}}
+
+\makeatletter
+\newcommand{\citepage}[1]{p.~#1}
+\newcommand{\citepages}[1]{pp.~#1}
+\newcommand{\citechapter}[1]{\cref@chapter@name~#1}
+\newcommand{\citechapters}[1]{\cref@chapter@name@plural~#1}
+\newcommand{\citesection}[1]{\cref@section@name~#1}
+\newcommand{\citesections}[1]{\cref@section@name@plural~#1}
+%\newcommand{\citesection}[1]{\S.~#1}
+%\newcommand{\citesections}[1]{\S\S.~#1}
+\newcommand{\citeparagraph}[1]{\P.~#1}
+\newcommand{\citeparagraphs}[1]{\P\P.~#1}
+\makeatother
% Graphics
\usepackage{graphicx} % Images
\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]{#2}}
\newcommand{\haskellinline}[1]{\lstinline[language={[Regular]Haskell},postbreak=]|#1|}
+\newcommand{\haskellinputlisting}[2][]{\renewcommand*{\lstlistingname}{Listing (\gls{HASKELL})}\lstinputlisting[language={[Regular]Haskell},#1]{#2}}
\newcommand{\haskelllhstexinline}[1]{\lstinline[language={[Lhs2Tex]Haskell},postbreak=]|#1|}
%For storing listings in footnotes
\newsavebox{\LstBox}
{}
% Hyperlinks and metadata
-\usepackage[pagebackref]{hyperref} % hyperlinks
+\usepackage[pdflang={en-GB},pagebackref]{hyperref} % hyperlinks
+\usepackage{xr} % hyperlinks
\renewcommand*{\backref}[1]{}
\renewcommand*{\backrefalt}[4]{[{%
\ifcase #1 not cited.\or p.~#2.\else pp. #2.\fi%chktex 1
\urlstyle{same}
\usepackage{bookmark}
\usepackage[noabbrev]{cleveref} % Easy references
-\crefname{part}{movement}{movements}
+\crefname{part}{episode}{episodes}
\crefname{lstlisting}{listing}{listings}
\usepackage{nameref} % to reference names of chapters
-\newcommand{\fullref}[1]{\Cref{#1}: \nameref{#1}}
+\newcommand{\fullref}[1]{\cref{#1}: \nameref{#1}}
+\newcommand{\Fullref}[1]{\Cref{#1}: \nameref{#1}}
% Glossaries and acronyms
-\usepackage[nolangwarn,acronym,nonumberlist]{glossaries}
+\usepackage[nolangwarn,abbreviations,nonumberlist,prefix]{glossaries-extra}
+\setabbreviationstyle[acronym]{long-short}
\Addlcwords{of}
% Titlecase glossary commands
\newcommand{\glst}[1]{\titlecap{\glsentrylong{#1}}}
\newcommand{\Glst}[1]{\glst{#1}}
-% Fix gls in hyperlink errors
+\usepackage{glossary-mcols}
\pdfstringdefDisableCommands{%
- \def\acrlong#1{}%
- \def\acrlongpl#1{}%
- \def\acrshort#1{}%
- \def\acrshortpl#1{}%
+ \def\glsxtrlong#1{}%
+ \def\glsxtrlongpl#1{}%
+ \def\glsxtrshort#1{}%
+ \def\glsxtrshortpl#1{}%
\def\acrfull#1{}%
\def\acrfullpl#1{}%
- \def\Acrlong#1{}%
- \def\Acrlongpl#1{}%
- \def\Acrshort#1{}%
- \def\Acrshortpl#1{}%
+ \def\Glsxtrlong#1{}%
+ \def\Glsxtrlongpl#1{}%
+ \def\Glsxtrshort#1{}%
+ \def\Glsxtrshortpl#1{}%
\def\Acrfull#1{}%
\def\Acrfullpl#1{}%
\def\gls#1{}%
\def\Glsentrytext#1{}%
\def\titlecap#1{}%
}
-\usepackage{glossary-mcols}
% Index
%\usepackage{makeidx}
% Custom commands
\newcommand{\GHCmod}[1]{\texttt{#1}}
\newcommand{\requiresGHCmod}[2][]{\footnote{Requires \GHCmod{#2} to be enabled. #1}}
-\newcommand{\etc}{{\fontfamily{cmr}\selectfont{\itshape\/\&c}}}
-\newcommand{\rdmentry}[6]{#1: #2 (#3): #4. #5.\ \href{https://doi.org/#6}{#6}}
+%\newcommand{\etc}{{\fontfamily{cmr}\selectfont{\itshape\/\&c}}}
+\newcommand{\etc}{{\fontfamily{cmr}\selectfont{\itshape\/\&\kern-0.2em c}}}
+\newcommand{\rdmentry}[5]{#1 (#2): #3. #4.\ \href{https://doi.org/#5}{#5}}
\newcommand{\mlubbers}{Lubbers, M.\ (Radboud University)}
\newcommand{\pkoopman}{Koopman, dr.\ P.\ (Radboud University)}
\newcommand{\rplasmeijer}{Plasmeijer, prof.\ dr.\ ir.\ R.\ (Radboud University)}
+\newcommand{\aramsingh}{Ramsingh, A.\ (University of Glasgow)}
+\newcommand{\jsinger}{Singer, dr.\ J.\ (University of Glasgow)}
+\newcommand{\ptrinder}{Trinder, prof.~dr.\ P.\ (University of Glasgow)}
\newcommand{\mypart}[3]{
\part[#2: #3]{#2\\[2ex]\smaller{}#3}%