X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=preamble.tex;h=d88dfc6f25f8c89ec7ab9caa569285bb456db3e4;hb=f14909a1fc10adc898c994bbf0c67a98b03ebcd4;hp=61b5490d8d7c5aa8068690b2616438bf89e89cf3;hpb=f0a360c44e8e72f8229f52989c2fa09046df40d3;p=phd-thesis.git diff --git a/preamble.tex b/preamble.tex index 61b5490..d88dfc6 100644 --- a/preamble.tex +++ b/preamble.tex @@ -1,4 +1,9 @@ -\usepackage[ +% Input encoding +\usepackage[utf8]{inputenc} + +% Papersize +\usepackage{geometry} +\geometry{ inner=25mm, outer=20mm, marginparsep=3mm, @@ -6,31 +11,120 @@ top=25mm, bottom=20mm, paperwidth=17cm, - paperheight=24cm]{geometry} % Papersize -\usepackage[british]{babel} % Internationalization -\usepackage[titletoc]{appendix} % Appendices -\usepackage[pagebackref,hidelinks]{hyperref} % Hyperlinks -\usepackage{graphicx} % Graphics -\usepackage{booktabs} % Better looking tables -\usepackage{etoolbox} % Patch chapter command -\usepackage[nodayofweek]{datetime} % Use a fixed document date -\usepackage{listings} % Code -\usepackage[acronym,nonumberlist]{glossaries} % Glossaries and acronyms -\usepackage[algochapter]{algorithm2e} % Pseudocode -\usepackage{makeidx} % Index -\usepackage[inline,shortlabels]{enumitem} -\setlist{noitemsep} -\setlist[description]{leftmargin=\parindent} + paperheight=24cm, +} -% Have better page numbering in chapters -\patchcmd{\chapter}{plain}{headings}{}{} +% Font encoding +\usepackage[T1,T2A]{fontenc} + +% standalone figures +\usepackage[subpreambles=true]{standalone} + +% Less bad boxes +\usepackage{microtype} +% No more room for a new \write +\usepackage{morewrites} + +% Internationalisation +\usepackage[dutch,russian,british]{babel} +%\babelfont[russian]{rm}{Liberation Serif} + +% Appendices +% TODO is this necessary? +%\usepackage[titletoc]{appendix} + +% Hyperlinks +%\usepackage[pagebackref]{hyperref} +\usepackage[pagebackref]{hyperref} +% Setup pdf parameters: TODO +\hypersetup{% + pdftitle={\mytitle}, + pdfauthor={\myauthor}, + pdfsubject={}, +% pdfcreator={}, +% pdfproducer={}, + pdfkeywords={task-oriented programming, functional programming, domain specific languages, internet of things}, + hidelinks, +} +\urlstyle{same} + + +% Graphics +\usepackage{graphicx} % Images directory \graphicspath{{img/}} +%subfigures +\usepackage{caption} +\usepackage{subcaption} + +% Nice tables +\usepackage{booktabs} +% Automatically wrapping tables +\usepackage{tabularx} + +% Use a fixed document date +\usepackage[nodayofweek]{datetime} + +% Code +\usepackage{stmaryrd} % Short arrow +\usepackage{listings} +% General listings settings +\lstset{% + basewidth=0.45em, + basicstyle=\linespread{0.9}\tt\footnotesize, + breakatwhitespace=false, + breaklines=true, + captionpos=b, + columns=[c]fixed, + commentstyle=\sl, + escapeinside={(+}{+)}, % chktex 9 + frame=L, + keepspaces=true, + keywordstyle=\bf, + postbreak=\mbox{\textcolor{gray}{$\hookrightarrow$}\space}, + showspaces=false, + showstringspaces=false, + showtabs=false, + stringstyle=\it, + tabsize=4, +% literate=% +% {a0}{{a\textsubscript{0}}}2 +% {a1}{{a\textsubscript{1}}}2 +% {a2}{{a\textsubscript{2}}}2 +%% {an}{{a\textsubscript{n}}}2 +% {c0}{{c\textsubscript{0}}}2 +% {c1}{{c\textsubscript{1}}}2 +% {c2}{{c\textsubscript{2}}}2 +% {cn}{{c\textsubscript{n}}}2 +% {f0}{{f\textsubscript{0}}}2 +% {f1}{{f\textsubscript{1}}}2 +% {f2}{{f\textsubscript{2}}}2 +% {fn}{{f\textsubscript{n}}}2 +% {t0}{{t\textsubscript{0}}}2 +% {t1}{{t\textsubscript{1}}}2 +% {t2}{{t\textsubscript{2}}}2 +% {tn}{{t\textsubscript{n}}}2 +% {v0}{{v\textsubscript{0}}}2 +% {v1}{{v\textsubscript{1}}}2 +% {v2}{{v\textsubscript{2}}}2 +% {vn}{{v\textsubscript{n}}}2 +% {C0}{{C\textsubscript{0}}}2 +% {C1}{{C\textsubscript{1}}}2 +% {C2}{{C\textsubscript{2}}}2 +% {Cn}{{C\textsubscript{n}}}2 +% {R0}{{R\textsubscript{0}}}2 +% {R1}{{R\textsubscript{1}}}2 +% {R2}{{R\textsubscript{2}}}2 +% {Rn}{{R\textsubscript{n}}}2 +} +\usepackage{lstlangclean} +\usepackage{lstlanghaskell} +\newcommand{\cleaninline}[1]{\lstinline[language=Clean,postbreak=]|#1|} +\newcommand{\haskellinline}[1]{\lstinline[language=Haskell,style=haskell,postbreak=]|#1|} % Fix list of listings title \renewcommand{\lstlistlistingname}{List of Listings} - % Fix list of listings chapter separator \makeatletter \let\my@chapter\@chapter% @@ -39,19 +133,21 @@ \my@chapter} \makeatother -% Always have url in teletype -\urlstyle{tt} - -% Setup pdf parameters -\hypersetup{% - pdftitle={}, - pdfauthor={}, - pdfsubject={}, - pdfcreator={}, - pdfproducer={}, - pdfkeywords={}, -} +\lstnewenvironment{lstClean}[1][] + {% + \lstset{language=Clean, #1} + \renewcommand*{\lstlistingname}{Listing (Clean)} + } + {} +\lstnewenvironment{lstHaskell}[1][] + {% + \lstset{language=Haskell,style=haskell,#1}% + \renewcommand*{\lstlistingname}{Listing (Haskell)} + } + {} +% Glossaries and acronyms +\usepackage[acronym,nonumberlist]{glossaries} % Fix gls in hyperlink errors \pdfstringdefDisableCommands{% \def\acrlong#1{}% @@ -68,36 +164,81 @@ \def\Acrfullpl#1{}% \def\gls#1{}% \def\glspl#1{}% + \def\glsentrytext#1{}% \def\Gls#1{}% \def\Glspl#1{}% + \def\Glsentrytext#1{}% + \def\titlecap#1{}% } -% General listings settings -\lstset{% - breakatwhitespace=false, - breaklines=true, - captionpos=b, - keepspaces=true, - basicstyle=\ttfamily\fontseries{l}\footnotesize, - commentstyle=\slshape\fontseries{m}, - keywordstyle=\bfseries\fontseries{b}, - stringstyle=\ttfamily, - showspaces=false, - showstringspaces=false, - showtabs=false, - tabsize=4, - frame=L, -} - -% Increase the depth for the table of contenst -\setcounter{secnumdepth}{3} +% Titlecase commands +\usepackage{titlecaps} +\Addlcwords{of} +% Titlecase glossary command +\newcommand{\glst}[1]{\titlecap{\glsentrylong{#1}}} +\newcommand{\Glst}[1]{\glst{#1}} +% Pseudocode +\usepackage[algochapter]{algorithm2e} % Fix the algorithm font \renewcommand\AlCapFnt{\normalfont} +% Index +\usepackage{makeidx} +% Enable the index +\makeindex% + +% Custom enumerations +\usepackage[inline,shortlabels]{enumitem} +\setlist{noitemsep} +\setlist[description]{leftmargin=\parindent} + +% Epigraph +\usepackage{epigraph} + +% Thumb marks on the page +\usepackage[ + height={1.5cm}, + width={12mm}, + distance={1.55cm}, + topthumbmargin={auto}, + bottomthumbmargin={auto}, + eventxtindent={.5cm}, + oddtxtexdent={.3cm}]{thumbs} + +% Custom headers and footers +\usepackage{fancyhdr} +\pagestyle{fancy} + +% Tables spanning pages +\usepackage{longtable} + +% Easy references +\usepackage{cleveref} + +% To patch the chapter command +\usepackage{etoolbox} +% Have better page numbering in chapters +\patchcmd{\chapter}{plain}{headings}{}{} + +% Increase the depth for the table of contents +\setcounter{secnumdepth}{3} +\renewcommand{\contentsname}{Table of Contents} % change the name of the TOC +\AtBeginDocument{\addtocontents{toc}{\protect\thispagestyle{empty}}} % to remove page numbering from the TOC + % Initialize the glossaries \makeglossaries% \input{glossaries} -% Enable the index -\makeindex% +% Custom commands +\newcommand{\GHCmod}[1]{\texttt{#1}} +\newcommand{\requiresGHCmod}[1]{\footnote{Requires \GHCmod{#1} to be enabled.}} +\newcommand{\etc}{{\fontfamily{cmr}\selectfont{\itshape\/\&c}}} +\newcommand{\rdmentry}[6]{#1: #2 (#3): #4. #5.\ \href{https://doi.org/#6}{#6}} +\newcommand{\mlubbers}{Lubbers, M.\ (Radboud University)} +\newcommand{\pkoopman}{Koopman, dr.\ P.\ (Radboud University)} +\newcommand{\rplasmeijer}{Plasmeijer, prof.\ dr.\ ir.\ R.\ (Radboud University)} + +\bibliographystyle{alpha} + +\usepackage{subfiles}