X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=preamble.tex;h=c4a3c62278597056189a97c32269763a04847e45;hb=3044eec5a52dcd464ecfe502a521d09689f48f06;hp=6c3ec94b05f32fb15e9abe2d5064aa981612e305;hpb=c15776f71f5efe186708e2604ff8f32115c8ac3d;p=phd-thesis.git diff --git a/preamble.tex b/preamble.tex index 6c3ec94..c4a3c62 100644 --- a/preamble.tex +++ b/preamble.tex @@ -1,225 +1,57 @@ -% Fonts -\usepackage[utf8]{inputenc} % Input encoding -\usepackage[T1]{fontenc} % Font encoding -\usepackage{lmodern} % Nicer font -\usepackage{microtype} % Better kerning -\usepackage{tipa} % IPA symbols -\usepackage{stmaryrd} % short arrows -\usepackage{textcomp} % upquote -\usepackage{titlecaps} % titlecase commands -\usepackage{amsmath} % extra math -\usepackage{amssymb} % extra math symbols -\everymath{\it\/} -\DeclareMathSymbol{\shortminus}{\mathbin}{AMSa}{"39} %chktex 18 +\usepackage[utf8]{inputenc} % Input encoding +\usepackage[X2,T1]{fontenc} % Font encoding +\usepackage{ifxetex} +\ifxetex% + \usepackage{amsmath} % extra math + \usepackage{fontspec} + \usepackage{polyglossia} + \setmainlanguage[variant=british]{english} + \setotherlanguage{dutch} + \setotherlanguage{russian} + \newfontfamily{\cyrillicfont}{Liberation Serif} +\else + \usepackage{lmodern} % Nicer font + \usepackage{microtype} % Better kerning + \usepackage{amsmath} % extra math + \usepackage{amssymb} % extra math symbols + + \usepackage[dutch,russian,british]{babel} +% \babelfont[russian]{rm}{Liberation Serif} +\fi + +% Typography, widows, orphans, fonts +\input{preamble/typography} % Internationalisation -\usepackage[dutch,russian,british]{babel} -%\babelfont[russian]{rm}{Liberation Serif} +\input{preamble/internationalisation} % Papersize and layout -\usepackage{geometry} -\geometry{ - inner=25mm, - outer=20mm, - marginparsep=3mm, - marginparwidth=13mm, - top=25mm, - bottom=20mm, - paperwidth=17cm, - paperheight=24cm, -} -\usepackage[ - height={1.5cm}, - width={12mm}, - distance={1.55cm}, - topthumbmargin={auto}, - bottomthumbmargin={auto}, - eventxtindent={.5cm}, - oddtxtexdent={.3cm}]{thumbs} % thumb marks -\usepackage{fancyhdr} % Custom headers and footers -%\pagestyle{fancy} -\pagestyle{headings} -\usepackage{etoolbox} % To patch the chapter command -% Have better page numbering in chapters -\patchcmd{\chapter}{plain}{headings}{}{} -\usepackage{epigraph} % Epigraph -\renewcommand\partname{Movement} % Rename parts to movements (rhapsody uhu) -\newenvironment{chapterabstract} - {\begin{quote}} - {\end{quote}} +\input{preamble/layout} -% 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 - -% (file) structure -\usepackage[subpreambles=true]{standalone} % standalone figures -\usepackage{morewrites} % fix no more room for a new \write -\usepackage{appendix} % subappendices, appendices per chapter - -% Bibliography -\usepackage{bibentry} % Cite bib entry completely -\nobibliography* -\bibliographystyle{alpha} +% Tables +\input{preamble/table} -% Hyperlinks and metadata -\usepackage[pagebackref]{hyperref} % hyperlinks -\renewcommand*{\backref}[1]{} -\renewcommand*{\backrefalt}[4]{[{% - \ifcase #1 not cited.\or p.~#2.\else pp. #2.\fi%chktex 1 -}]} -\hypersetup{% - pdftitle={\mytitle}, - pdfauthor={\myauthor}, - pdfkeywords={task-oriented programming, functional programming, domain specific languages, internet of things}, - hidelinks, -} -\usepackage[nodayofweek]{datetime} % Use a fixed document date -\urlstyle{same} -\usepackage{bookmark} -\usepackage{cleveref} % Easy references -\crefname{part}{movement}{movements} -\crefname{lstlisting}{listing}{listing} +% Listings +\input{preamble/listings} % Graphics -\usepackage{graphicx} % Images -\graphicspath{{img/},{introduction/img}} -\usepackage{caption} % subfigures -\usepackage{subcaption} -\newcommand{\orcid}[1]{\href{https://orcid.org/#1}{\hspace{1mm}\includegraphics[width=1em]{orcid}\hspace{2mm} https://orcid.org/#1}} - -% Tables -\usepackage{booktabs} % Nicer tables -\usepackage{multirow} % Multirow cells -\usepackage{tabularx} % Automatically wrapping tables -\usepackage{longtable} % Tables spanning pages - -% Code -% Pseudocode -\usepackage[algochapter]{algorithm2e} -% Fix the algorithm font -\renewcommand\AlCapFnt{\normalfont} -\usepackage{listings} -% 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=L, - keepspaces=true, - keywordstyle=\bf, - postbreak=\mbox{\textcolor{gray}{$\hookrightarrow$}\space}, - showspaces=false, - showstringspaces=false, - showtabs=false, - stringstyle=\it, - tabsize=4, - upquote=true, -} -\usepackage{lstlangclean} -\usepackage{lstlanghaskell} -\usepackage{lstlanghaskelllhstex} -\usepackage{lstlangarduino} -\newcommand{\cinline}[1]{\lstinline[language=c,postbreak=]|#1|} -\newcommand{\arduinoinline}[1]{\lstinline[language={[Arduino]C++},postbreak=]|#1|} -\newcommand{\cleaninline}[1]{\lstinline[language=Clean,postbreak=]|#1|} -\newcommand{\haskellinline}[1]{\lstinline[language=Haskell,style=haskell,postbreak=]|#1|} -\newcommand{\haskelllhstexinline}[1]{\lstinline[language=Haskell,style=haskelllhstex,postbreak=]|#1|} -% 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 +\input{preamble/graphics} -\lstnewenvironment{lstClean}[1][] - {% - \lstset{language=Clean, #1} - \renewcommand*{\lstlistingname}{Listing (\gls{CLEAN})} - } - {} -\lstnewenvironment{lstArduino}[1][] - {% - \lstset{language={[Arduino]C++}, #1} - \renewcommand*{\lstlistingname}{Listing (\gls{ARDUINO})} - } - {} -\lstnewenvironment{lstHaskell}[1][] - {% - \lstset{language=Haskell,style=haskell,#1}% - \renewcommand*{\lstlistingname}{Listing (\gls{HASKELL})} - } - {} -\lstnewenvironment{lstHaskellLhstex}[1][] - {% - \lstset{language=Haskell,style=haskelllhstex,#1}% - \renewcommand*{\lstlistingname}{Listing (\gls{HASKELL})} - } - {} +% Crossreferences, urls and hyperlinks +\input{preamble/crossref} -% Glossaries and acronyms -\usepackage[acronym,nonumberlist]{glossaries} -\Addlcwords{of} -% Titlecase glossary commands -\newcommand{\glst}[1]{\titlecap{\glsentrylong{#1}}} -\newcommand{\Glst}[1]{\glst{#1}} -% Fix gls in hyperlink errors -\pdfstringdefDisableCommands{% - \def\acrlong#1{}% - \def\acrlongpl#1{}% - \def\acrshort#1{}% - \def\acrshortpl#1{}% - \def\acrfull#1{}% - \def\acrfullpl#1{}% - \def\Acrlong#1{}% - \def\Acrlongpl#1{}% - \def\Acrshort#1{}% - \def\Acrshortpl#1{}% - \def\Acrfull#1{}% - \def\Acrfullpl#1{}% - \def\gls#1{}% - \def\glspl#1{}% - \def\glsentrytext#1{}% - \def\Gls#1{}% - \def\Glspl#1{}% - \def\Glsentrytext#1{}% - \def\titlecap#1{}% -} +% Bibliography +\input{preamble/bibliography} -% Index -\usepackage{makeidx} -\makeindex% Enable the index -% Custom enumerations -\usepackage[inline,shortlabels]{enumitem} -\setlist{noitemsep} -\setlist[description]{leftmargin=\parindent} +% Custom commands +\input{preamble/commands} -% Initialize the glossaries -\makeglossaries% -\input{glossaries} +% Glossaries and acronyms +\input{preamble/glossaries} +% File structure, this must be last of the preamble \usepackage{subfiles} -\ifSubfilesClassLoaded{}{ - \usepackage{xmpincl} - \includexmp{CC_Attribution-NoDerivatives_4.0_International} -} - -% 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)} +% Metadata (only works in main document) and should go after subfiles +%\input{preamble/metadata}