2019-03-24 15:03:56 +01:00
|
|
|
|
%%
|
2019-12-17 21:08:54 +01:00
|
|
|
|
% Copyright (c) 2017 - 2019, Pascal Wagler;
|
|
|
|
|
% Copyright (c) 2014 - 2019, John MacFarlane
|
|
|
|
|
%
|
2019-03-24 15:03:56 +01:00
|
|
|
|
% All rights reserved.
|
2019-12-17 21:08:54 +01:00
|
|
|
|
%
|
|
|
|
|
% Redistribution and use in source and binary forms, with or without
|
|
|
|
|
% modification, are permitted provided that the following conditions
|
2019-03-24 15:03:56 +01:00
|
|
|
|
% are met:
|
2019-12-17 21:08:54 +01:00
|
|
|
|
%
|
|
|
|
|
% - Redistributions of source code must retain the above copyright
|
2019-03-24 15:03:56 +01:00
|
|
|
|
% notice, this list of conditions and the following disclaimer.
|
2019-12-17 21:08:54 +01:00
|
|
|
|
%
|
|
|
|
|
% - Redistributions in binary form must reproduce the above copyright
|
|
|
|
|
% notice, this list of conditions and the following disclaimer in the
|
2019-03-24 15:03:56 +01:00
|
|
|
|
% documentation and/or other materials provided with the distribution.
|
2019-12-17 21:08:54 +01:00
|
|
|
|
%
|
|
|
|
|
% - Neither the name of John MacFarlane nor the names of other
|
|
|
|
|
% contributors may be used to endorse or promote products derived
|
2019-03-24 15:03:56 +01:00
|
|
|
|
% from this software without specific prior written permission.
|
2019-12-17 21:08:54 +01:00
|
|
|
|
%
|
|
|
|
|
% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
|
|
|
% "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
|
|
|
% LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
|
|
|
% FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
|
|
|
% COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
2019-03-24 15:03:56 +01:00
|
|
|
|
% INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
2019-12-17 21:08:54 +01:00
|
|
|
|
% BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
|
|
|
% LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
|
|
|
% CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
|
|
|
% LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
|
|
|
% ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
2019-03-24 15:03:56 +01:00
|
|
|
|
% POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
|
%%
|
|
|
|
|
|
|
|
|
|
%%
|
2019-12-17 21:08:54 +01:00
|
|
|
|
% This is the Eisvogel pandoc LaTeX template.
|
|
|
|
|
%
|
|
|
|
|
% For usage information and examples visit the official GitHub page:
|
2019-03-24 15:03:56 +01:00
|
|
|
|
% https://github.com/Wandmalfarbe/pandoc-latex-template
|
|
|
|
|
%%
|
|
|
|
|
|
2019-12-17 21:08:54 +01:00
|
|
|
|
% Options for packages loaded elsewhere
|
|
|
|
|
\PassOptionsToPackage{unicode$for(hyperrefoptions)$,$hyperrefoptions$$endfor$}{hyperref}
|
2019-03-24 15:03:56 +01:00
|
|
|
|
\PassOptionsToPackage{hyphens}{url}
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\PassOptionsToPackage{dvipsnames,svgnames*,x11names*,table}{xcolor}
|
|
|
|
|
$if(dir)$
|
|
|
|
|
$if(latex-dir-rtl)$
|
2019-03-24 15:03:56 +01:00
|
|
|
|
\PassOptionsToPackage{RTLdocument}{bidi}
|
2019-12-17 21:08:54 +01:00
|
|
|
|
$endif$
|
|
|
|
|
$endif$
|
|
|
|
|
%
|
|
|
|
|
\documentclass[
|
|
|
|
|
$if(fontsize)$
|
|
|
|
|
$fontsize$,
|
|
|
|
|
$endif$
|
|
|
|
|
$if(lang)$
|
|
|
|
|
$babel-lang$,
|
|
|
|
|
$endif$
|
|
|
|
|
$if(papersize)$
|
|
|
|
|
$papersize$paper,
|
|
|
|
|
$else$
|
|
|
|
|
a4paper,
|
|
|
|
|
$endif$
|
|
|
|
|
$if(beamer)$
|
|
|
|
|
ignorenonframetext,
|
|
|
|
|
$if(handout)$
|
|
|
|
|
handout,
|
|
|
|
|
$endif$
|
|
|
|
|
$if(aspectratio)$
|
|
|
|
|
aspectratio=$aspectratio$,
|
|
|
|
|
$endif$
|
|
|
|
|
$endif$
|
|
|
|
|
$for(classoption)$
|
|
|
|
|
$classoption$$sep$,
|
|
|
|
|
$endfor$
|
|
|
|
|
,tablecaptionabove
|
|
|
|
|
]{$if(beamer)$$documentclass$$else$$if(book)$scrbook$else$scrartcl$endif$$endif$}
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$if(beamer)$
|
|
|
|
|
$if(background-image)$
|
|
|
|
|
\usebackgroundtemplate{%
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\includegraphics[width=\paperwidth]{$background-image$}%
|
2019-03-24 15:03:56 +01:00
|
|
|
|
}
|
|
|
|
|
$endif$
|
|
|
|
|
\usepackage{pgfpages}
|
|
|
|
|
\setbeamertemplate{caption}[numbered]
|
|
|
|
|
\setbeamertemplate{caption label separator}{: }
|
|
|
|
|
\setbeamercolor{caption name}{fg=normal text.fg}
|
|
|
|
|
\beamertemplatenavigationsymbols$if(navigation)$$navigation$$else$empty$endif$
|
|
|
|
|
$for(beameroption)$
|
|
|
|
|
\setbeameroption{$beameroption$}
|
|
|
|
|
$endfor$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
% Prevent slide breaks in the middle of a paragraph
|
2019-03-24 15:03:56 +01:00
|
|
|
|
\widowpenalties 1 10000
|
|
|
|
|
\raggedbottom
|
|
|
|
|
$if(section-titles)$
|
|
|
|
|
\setbeamertemplate{part page}{
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\centering
|
|
|
|
|
\begin{beamercolorbox}[sep=16pt,center]{part title}
|
|
|
|
|
\usebeamerfont{part title}\insertpart\par
|
|
|
|
|
\end{beamercolorbox}
|
2019-03-24 15:03:56 +01:00
|
|
|
|
}
|
|
|
|
|
\setbeamertemplate{section page}{
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\centering
|
|
|
|
|
\begin{beamercolorbox}[sep=12pt,center]{part title}
|
|
|
|
|
\usebeamerfont{section title}\insertsection\par
|
|
|
|
|
\end{beamercolorbox}
|
2019-03-24 15:03:56 +01:00
|
|
|
|
}
|
|
|
|
|
\setbeamertemplate{subsection page}{
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\centering
|
|
|
|
|
\begin{beamercolorbox}[sep=8pt,center]{part title}
|
|
|
|
|
\usebeamerfont{subsection title}\insertsubsection\par
|
|
|
|
|
\end{beamercolorbox}
|
2019-03-24 15:03:56 +01:00
|
|
|
|
}
|
|
|
|
|
\AtBeginPart{
|
|
|
|
|
\frame{\partpage}
|
|
|
|
|
}
|
|
|
|
|
\AtBeginSection{
|
|
|
|
|
\ifbibliography
|
|
|
|
|
\else
|
|
|
|
|
\frame{\sectionpage}
|
|
|
|
|
\fi
|
|
|
|
|
}
|
|
|
|
|
\AtBeginSubsection{
|
|
|
|
|
\frame{\subsectionpage}
|
|
|
|
|
}
|
|
|
|
|
$endif$
|
|
|
|
|
$endif$
|
|
|
|
|
$if(beamerarticle)$
|
|
|
|
|
\usepackage{beamerarticle} % needs to be loaded first
|
|
|
|
|
$endif$
|
|
|
|
|
$if(fontfamily)$
|
|
|
|
|
\usepackage[$for(fontfamilyoptions)$$fontfamilyoptions$$sep$,$endfor$]{$fontfamily$}
|
|
|
|
|
$else$
|
|
|
|
|
\usepackage{lmodern}
|
|
|
|
|
$endif$
|
|
|
|
|
$if(linestretch)$
|
|
|
|
|
\usepackage{setspace}
|
|
|
|
|
\setstretch{$linestretch$}
|
|
|
|
|
$else$
|
|
|
|
|
\usepackage{setspace}
|
|
|
|
|
\setstretch{1.2}
|
|
|
|
|
$endif$
|
|
|
|
|
\usepackage{amssymb,amsmath}
|
|
|
|
|
\usepackage{ifxetex,ifluatex}
|
|
|
|
|
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
|
|
|
|
|
\usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc}
|
|
|
|
|
\usepackage[utf8]{inputenc}
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\usepackage{textcomp} % provide euro and other symbols
|
|
|
|
|
\else % if luatex or xetex
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$if(mathspec)$
|
|
|
|
|
\ifxetex
|
|
|
|
|
\usepackage{mathspec}
|
|
|
|
|
\else
|
|
|
|
|
\usepackage{unicode-math}
|
|
|
|
|
\fi
|
|
|
|
|
$else$
|
|
|
|
|
\usepackage{unicode-math}
|
|
|
|
|
$endif$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\defaultfontfeatures{Scale=MatchLowercase}
|
|
|
|
|
\defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1}
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$if(mainfont)$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\setmainfont[$for(mainfontoptions)$$mainfontoptions$$sep$,$endfor$]{$mainfont$}
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$endif$
|
|
|
|
|
$if(sansfont)$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\setsansfont[$for(sansfontoptions)$$sansfontoptions$$sep$,$endfor$]{$sansfont$}
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$endif$
|
|
|
|
|
$if(monofont)$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\setmonofont[$for(monofontoptions)$$monofontoptions$$sep$,$endfor$]{$monofont$}
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$endif$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
$for(fontfamilies)$
|
|
|
|
|
\newfontfamily{$fontfamilies.name$}[$for(fontfamilies.options)$$fontfamilies.options$$sep$,$endfor$]{$fontfamilies.font$}
|
|
|
|
|
$endfor$
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$if(mathfont)$
|
|
|
|
|
$if(mathspec)$
|
|
|
|
|
\ifxetex
|
|
|
|
|
\setmathfont(Digits,Latin,Greek)[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
|
|
|
|
|
\else
|
|
|
|
|
\setmathfont[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
|
|
|
|
|
\fi
|
|
|
|
|
$else$
|
|
|
|
|
\setmathfont[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
|
|
|
|
|
$endif$
|
|
|
|
|
$endif$
|
|
|
|
|
$if(CJKmainfont)$
|
|
|
|
|
\ifxetex
|
|
|
|
|
\usepackage{xeCJK}
|
|
|
|
|
\setCJKmainfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$}
|
|
|
|
|
\fi
|
|
|
|
|
$endif$
|
|
|
|
|
$if(luatexjapresetoptions)$
|
|
|
|
|
\ifluatex
|
|
|
|
|
\usepackage[$for(luatexjapresetoptions)$$luatexjapresetoptions$$sep$,$endfor$]{luatexja-preset}
|
|
|
|
|
\fi
|
|
|
|
|
$endif$
|
|
|
|
|
$if(CJKmainfont)$
|
|
|
|
|
\ifluatex
|
|
|
|
|
\usepackage[$for(luatexjafontspecoptions)$$luatexjafontspecoptions$$sep$,$endfor$]{luatexja-fontspec}
|
|
|
|
|
\setmainjfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$}
|
|
|
|
|
\fi
|
|
|
|
|
$endif$
|
|
|
|
|
\fi
|
|
|
|
|
$if(beamer)$
|
|
|
|
|
$if(theme)$
|
|
|
|
|
\usetheme[$for(themeoptions)$$themeoptions$$sep$,$endfor$]{$theme$}
|
|
|
|
|
$endif$
|
|
|
|
|
$if(colortheme)$
|
|
|
|
|
\usecolortheme{$colortheme$}
|
|
|
|
|
$endif$
|
|
|
|
|
$if(fonttheme)$
|
|
|
|
|
\usefonttheme{$fonttheme$}
|
|
|
|
|
$endif$
|
|
|
|
|
$if(mainfont)$
|
|
|
|
|
\usefonttheme{serif} % use mainfont rather than sansfont for slide text
|
|
|
|
|
$endif$
|
|
|
|
|
$if(innertheme)$
|
|
|
|
|
\useinnertheme{$innertheme$}
|
|
|
|
|
$endif$
|
|
|
|
|
$if(outertheme)$
|
|
|
|
|
\useoutertheme{$outertheme$}
|
|
|
|
|
$endif$
|
|
|
|
|
$endif$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
% Use upquote if available, for straight quotes in verbatim environments
|
2019-03-24 15:03:56 +01:00
|
|
|
|
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\IfFileExists{microtype.sty}{% use microtype if available
|
|
|
|
|
\usepackage[$for(microtypeoptions)$$microtypeoptions$$sep$,$endfor$]{microtype}
|
|
|
|
|
\UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
|
2019-03-24 15:03:56 +01:00
|
|
|
|
}{}
|
|
|
|
|
$if(indent)$
|
|
|
|
|
$else$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\makeatletter
|
|
|
|
|
\@ifundefined{KOMAClassName}{% if non-KOMA class
|
|
|
|
|
\IfFileExists{parskip.sty}{%
|
|
|
|
|
\usepackage{parskip}
|
|
|
|
|
}{% else
|
|
|
|
|
\setlength{\parindent}{0pt}
|
|
|
|
|
\setlength{\parskip}{6pt plus 2pt minus 1pt}}
|
|
|
|
|
}{% if KOMA class
|
|
|
|
|
\KOMAoptions{parskip=half}}
|
|
|
|
|
\makeatother
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$endif$
|
|
|
|
|
$if(verbatim-in-note)$
|
|
|
|
|
\usepackage{fancyvrb}
|
|
|
|
|
$endif$
|
|
|
|
|
\usepackage{xcolor}
|
|
|
|
|
\definecolor{default-linkcolor}{HTML}{A50000}
|
|
|
|
|
\definecolor{default-filecolor}{HTML}{A50000}
|
|
|
|
|
\definecolor{default-citecolor}{HTML}{4077C0}
|
|
|
|
|
\definecolor{default-urlcolor}{HTML}{4077C0}
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available
|
|
|
|
|
$if(footnotes-pretty)$
|
|
|
|
|
% load footmisc in order to customize footnotes (footmisc has to be loaded before hyperref, cf. https://tex.stackexchange.com/a/169124/144087)
|
|
|
|
|
\usepackage[hang,flushmargin,bottom,multiple]{footmisc}
|
|
|
|
|
\setlength{\footnotemargin}{0.8em} % set space between footnote nr and text
|
|
|
|
|
\setlength{\footnotesep}{\baselineskip} % set space between multiple footnotes
|
|
|
|
|
\setlength{\skip\footins}{0.3cm} % set space between page content and footnote
|
|
|
|
|
\setlength{\footskip}{0.9cm} % set space between footnote and page bottom
|
|
|
|
|
$endif$
|
|
|
|
|
\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}}
|
2019-03-24 15:03:56 +01:00
|
|
|
|
\hypersetup{
|
|
|
|
|
$if(title-meta)$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
pdftitle={$title-meta$},
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$endif$
|
|
|
|
|
$if(author-meta)$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
pdfauthor={$author-meta$},
|
|
|
|
|
$endif$
|
|
|
|
|
$if(lang)$
|
|
|
|
|
pdflang={$lang$},
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$endif$
|
|
|
|
|
$if(subject)$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
pdfsubject={$subject$},
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$endif$
|
|
|
|
|
$if(keywords)$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
pdfkeywords={$for(keywords)$$keywords$$sep$, $endfor$},
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$endif$
|
|
|
|
|
$if(colorlinks)$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
colorlinks=true,
|
|
|
|
|
linkcolor=$if(linkcolor)$$linkcolor$$else$default-linkcolor$endif$,
|
|
|
|
|
filecolor=$if(filecolor)$$filecolor$$else$default-filecolor$endif$,
|
|
|
|
|
citecolor=$if(citecolor)$$citecolor$$else$default-citecolor$endif$,
|
|
|
|
|
urlcolor=$if(urlcolor)$$urlcolor$$else$default-urlcolor$endif$,
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$else$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
hidelinks,
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$endif$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
breaklinks=true,
|
|
|
|
|
pdfcreator={LaTeX via pandoc with the Eisvogel template}}
|
|
|
|
|
\urlstyle{same} % disable monospaced font for URLs
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$if(verbatim-in-note)$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\VerbatimFootnotes % allow verbatim text in footnotes
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$endif$
|
|
|
|
|
$if(geometry)$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
$if(beamer)$
|
|
|
|
|
\geometry{$for(geometry)$$geometry$$sep$,$endfor$}
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$else$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry}
|
|
|
|
|
$endif$
|
|
|
|
|
$else$
|
|
|
|
|
$if(beamer)$
|
|
|
|
|
$else$
|
|
|
|
|
\usepackage[margin=2.5cm,includehead=true,includefoot=true,centering,$for(geometry)$$geometry$$sep$,$endfor$]{geometry}
|
|
|
|
|
$endif$
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$endif$
|
|
|
|
|
$if(logo)$
|
|
|
|
|
\usepackage[export]{adjustbox}
|
|
|
|
|
\usepackage{graphicx}
|
|
|
|
|
$endif$
|
|
|
|
|
$if(beamer)$
|
|
|
|
|
\newif\ifbibliography
|
|
|
|
|
$endif$
|
|
|
|
|
$if(listings)$
|
|
|
|
|
\usepackage{listings}
|
|
|
|
|
\newcommand{\passthrough}[1]{#1}
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\lstset{defaultdialect=[5.3]Lua}
|
|
|
|
|
\lstset{defaultdialect=[x86masm]Assembler}
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$endif$
|
|
|
|
|
$if(listings-no-page-break)$
|
|
|
|
|
\usepackage{etoolbox}
|
|
|
|
|
\BeforeBeginEnvironment{lstlisting}{\par\noindent\begin{minipage}{\linewidth}}
|
|
|
|
|
\AfterEndEnvironment{lstlisting}{\end{minipage}\par\addvspace{\topskip}}
|
|
|
|
|
$endif$
|
|
|
|
|
$if(lhs)$
|
|
|
|
|
\lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{}
|
|
|
|
|
$endif$
|
|
|
|
|
$if(highlighting-macros)$
|
|
|
|
|
$highlighting-macros$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
|
|
|
|
|
% Workaround/bugfix from jannick0.
|
|
|
|
|
% See https://github.com/jgm/pandoc/issues/4302#issuecomment-360669013)
|
|
|
|
|
% or https://github.com/Wandmalfarbe/pandoc-latex-template/issues/2
|
|
|
|
|
%
|
|
|
|
|
% Redefine the verbatim environment 'Highlighting' to break long lines (with
|
|
|
|
|
% the help of fvextra). Redefinition is necessary because it is unlikely that
|
|
|
|
|
% pandoc includes fvextra in the default template.
|
|
|
|
|
\usepackage{fvextra}
|
|
|
|
|
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{breaklines,fontsize=$if(code-block-font-size)$$code-block-font-size$$else$\small$endif$,commandchars=\\\{\}}
|
|
|
|
|
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$endif$
|
|
|
|
|
$if(tables)$
|
|
|
|
|
\usepackage{longtable,booktabs}
|
|
|
|
|
$if(beamer)$
|
|
|
|
|
\usepackage{caption}
|
2019-12-17 21:08:54 +01:00
|
|
|
|
% Make caption package work with longtable
|
2019-03-24 15:03:56 +01:00
|
|
|
|
\makeatletter
|
|
|
|
|
\def\fnum@table{\tablename~\thetable}
|
|
|
|
|
\makeatother
|
|
|
|
|
$else$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
% Correct order of tables after \paragraph or \subparagraph
|
|
|
|
|
\usepackage{etoolbox}
|
|
|
|
|
\makeatletter
|
|
|
|
|
\patchcmd\longtable{\par}{\if@noskipsec\mbox{}\fi\par}{}{}
|
|
|
|
|
\makeatother
|
|
|
|
|
% Allow footnotes in longtable head/foot
|
|
|
|
|
\IfFileExists{footnotehyper.sty}{\usepackage{footnotehyper}}{\usepackage{footnote}}
|
|
|
|
|
\makesavenoteenv{longtable}
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$endif$
|
|
|
|
|
$endif$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
% add backlinks to footnote references, cf. https://tex.stackexchange.com/questions/302266/make-footnote-clickable-both-ways
|
|
|
|
|
$if(footnotes-disable-backlinks)$
|
|
|
|
|
$else$
|
|
|
|
|
\usepackage{footnotebackref}
|
|
|
|
|
$endif$
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$if(graphics)$
|
|
|
|
|
\usepackage{graphicx,grffile}
|
|
|
|
|
\makeatletter
|
|
|
|
|
\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi}
|
|
|
|
|
\def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi}
|
|
|
|
|
\makeatother
|
|
|
|
|
% Scale images if necessary, so that they will not overflow the page
|
|
|
|
|
% margins by default, and it is still possible to overwrite the defaults
|
|
|
|
|
% using explicit options in \includegraphics[width, height, ...]{}
|
|
|
|
|
\setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio}
|
|
|
|
|
$endif$
|
|
|
|
|
$if(links-as-notes)$
|
|
|
|
|
% Make links footnotes instead of hotlinks:
|
|
|
|
|
\DeclareRobustCommand{\href}[2]{#2\footnote{\url{#1}}}
|
|
|
|
|
$endif$
|
|
|
|
|
$if(strikeout)$
|
|
|
|
|
\usepackage[normalem]{ulem}
|
2019-12-17 21:08:54 +01:00
|
|
|
|
% Avoid problems with \sout in headers with hyperref
|
2019-03-24 15:03:56 +01:00
|
|
|
|
\pdfstringdefDisableCommands{\renewcommand{\sout}{}}
|
|
|
|
|
$endif$
|
|
|
|
|
\setlength{\emergencystretch}{3em} % prevent overfull lines
|
|
|
|
|
\providecommand{\tightlist}{%
|
|
|
|
|
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
|
|
|
|
|
$if(numbersections)$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\setcounter{secnumdepth}{$if(secnumdepth)$$secnumdepth$$else$3$endif$}
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$else$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\setcounter{secnumdepth}{-\maxdimen} % remove section numbering
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$endif$
|
|
|
|
|
$if(beamer)$
|
|
|
|
|
$else$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
$if(block-headings)$
|
|
|
|
|
% Make \paragraph and \subparagraph free-standing
|
2019-03-24 15:03:56 +01:00
|
|
|
|
\ifx\paragraph\undefined\else
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\let\oldparagraph\paragraph
|
|
|
|
|
\renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}}
|
2019-03-24 15:03:56 +01:00
|
|
|
|
\fi
|
|
|
|
|
\ifx\subparagraph\undefined\else
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\let\oldsubparagraph\subparagraph
|
|
|
|
|
\renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}}
|
2019-03-24 15:03:56 +01:00
|
|
|
|
\fi
|
|
|
|
|
$endif$
|
|
|
|
|
$endif$
|
|
|
|
|
$if(pagestyle)$
|
|
|
|
|
\pagestyle{$pagestyle$}
|
|
|
|
|
$endif$
|
|
|
|
|
|
2019-12-17 21:08:54 +01:00
|
|
|
|
% Make use of float-package and set default placement for figures to H.
|
|
|
|
|
% The option H means 'PUT IT HERE' (as opposed to the standard h option which means 'You may put it here if you like').
|
2019-03-24 15:03:56 +01:00
|
|
|
|
\usepackage{float}
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\floatplacement{figure}{$if(float-placement-figure)$$float-placement-figure$$else$H$endif$}
|
2019-03-24 15:03:56 +01:00
|
|
|
|
|
|
|
|
|
$for(header-includes)$
|
|
|
|
|
$header-includes$
|
|
|
|
|
$endfor$
|
|
|
|
|
$if(lang)$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\ifxetex
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$if(mainfont)$
|
|
|
|
|
$else$
|
|
|
|
|
% See issue https://github.com/reutenauer/polyglossia/issues/127
|
|
|
|
|
\renewcommand*\familydefault{\sfdefault}
|
|
|
|
|
$endif$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
% Load polyglossia as late as possible: uses bidi with RTL langages (e.g. Hebrew, Arabic)
|
2019-03-24 15:03:56 +01:00
|
|
|
|
\usepackage{polyglossia}
|
|
|
|
|
\setmainlanguage[$polyglossia-lang.options$]{$polyglossia-lang.name$}
|
|
|
|
|
$for(polyglossia-otherlangs)$
|
|
|
|
|
\setotherlanguage[$polyglossia-otherlangs.options$]{$polyglossia-otherlangs.name$}
|
|
|
|
|
$endfor$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\else
|
|
|
|
|
\usepackage[shorthands=off,$for(babel-otherlangs)$$babel-otherlangs$,$endfor$main=$babel-lang$]{babel}
|
|
|
|
|
$if(babel-newcommands)$
|
|
|
|
|
$babel-newcommands$
|
|
|
|
|
$endif$
|
2019-03-24 15:03:56 +01:00
|
|
|
|
\fi
|
|
|
|
|
$endif$
|
|
|
|
|
$if(dir)$
|
|
|
|
|
\ifxetex
|
2019-12-17 21:08:54 +01:00
|
|
|
|
% Load bidi as late as possible as it modifies e.g. graphicx
|
2019-03-24 15:03:56 +01:00
|
|
|
|
\usepackage{bidi}
|
|
|
|
|
\fi
|
|
|
|
|
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
|
|
|
|
|
\TeXXeTstate=1
|
|
|
|
|
\newcommand{\RL}[1]{\beginR #1\endR}
|
|
|
|
|
\newcommand{\LR}[1]{\beginL #1\endL}
|
|
|
|
|
\newenvironment{RTL}{\beginR}{\endR}
|
|
|
|
|
\newenvironment{LTR}{\beginL}{\endL}
|
|
|
|
|
\fi
|
|
|
|
|
$endif$
|
|
|
|
|
$if(natbib)$
|
|
|
|
|
\usepackage[$natbiboptions$]{natbib}
|
|
|
|
|
\bibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$}
|
|
|
|
|
$endif$
|
|
|
|
|
$if(biblatex)$
|
|
|
|
|
\usepackage[$if(biblio-style)$style=$biblio-style$,$endif$$for(biblatexoptions)$$biblatexoptions$$sep$,$endfor$]{biblatex}
|
|
|
|
|
$for(bibliography)$
|
|
|
|
|
\addbibresource{$bibliography$}
|
|
|
|
|
$endfor$
|
|
|
|
|
$endif$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
$if(csl-refs)$
|
|
|
|
|
\newlength{\cslhangindent}
|
|
|
|
|
\setlength{\cslhangindent}{1.5em}
|
|
|
|
|
\newenvironment{cslreferences}%
|
|
|
|
|
{$if(csl-hanging-indent)$\setlength{\parindent}{0pt}%
|
|
|
|
|
\everypar{\setlength{\hangindent}{\cslhangindent}}\ignorespaces$endif$}%
|
|
|
|
|
{\par}
|
|
|
|
|
$endif$
|
2019-03-24 15:03:56 +01:00
|
|
|
|
|
|
|
|
|
$if(title)$
|
|
|
|
|
\title{$title$$if(thanks)$\thanks{$thanks$}$endif$}
|
|
|
|
|
$endif$
|
|
|
|
|
$if(subtitle)$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
$if(beamer)$
|
|
|
|
|
$else$
|
|
|
|
|
\usepackage{etoolbox}
|
|
|
|
|
\makeatletter
|
|
|
|
|
\providecommand{\subtitle}[1]{% add subtitle to \maketitle
|
|
|
|
|
\apptocmd{\@title}{\par {\large #1 \par}}{}{}
|
|
|
|
|
}
|
|
|
|
|
\makeatother
|
|
|
|
|
$endif$
|
2019-03-24 15:03:56 +01:00
|
|
|
|
\subtitle{$subtitle$}
|
|
|
|
|
$endif$
|
|
|
|
|
$if(author)$
|
|
|
|
|
\author{$for(author)$$author$$sep$ \and $endfor$}
|
|
|
|
|
$endif$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\date{$date$}
|
|
|
|
|
$if(beamer)$
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$if(institute)$
|
|
|
|
|
\institute{$for(institute)$$institute$$sep$ \and $endfor$}
|
|
|
|
|
$endif$
|
|
|
|
|
$if(titlegraphic)$
|
|
|
|
|
\titlegraphic{\includegraphics{$titlegraphic$}}
|
|
|
|
|
$endif$
|
|
|
|
|
$if(logo)$
|
|
|
|
|
\logo{\includegraphics{$logo$}}
|
|
|
|
|
$endif$
|
|
|
|
|
$endif$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
%%
|
|
|
|
|
%% added
|
|
|
|
|
%%
|
|
|
|
|
|
|
|
|
|
%
|
2019-12-17 21:08:54 +01:00
|
|
|
|
% language specification
|
|
|
|
|
%
|
|
|
|
|
% If no language is specified, use English as the default main document language.
|
2019-03-24 15:03:56 +01:00
|
|
|
|
%
|
|
|
|
|
$if(lang)$$else$
|
|
|
|
|
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
|
|
|
|
|
\usepackage[shorthands=off,$for(babel-otherlangs)$$babel-otherlangs$,$endfor$main=english]{babel}
|
|
|
|
|
$if(babel-newcommands)$
|
|
|
|
|
$babel-newcommands$
|
|
|
|
|
$endif$
|
|
|
|
|
\else
|
|
|
|
|
$if(mainfont)$
|
|
|
|
|
$else$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
% Workaround for bug in Polyglossia that breaks `\familydefault` when `\setmainlanguage` is used.
|
|
|
|
|
% See https://github.com/Wandmalfarbe/pandoc-latex-template/issues/8
|
|
|
|
|
% See https://github.com/reutenauer/polyglossia/issues/186
|
|
|
|
|
% See https://github.com/reutenauer/polyglossia/issues/127
|
2019-03-24 15:03:56 +01:00
|
|
|
|
\renewcommand*\familydefault{\sfdefault}
|
|
|
|
|
$endif$
|
|
|
|
|
% load polyglossia as late as possible as it *could* call bidi if RTL lang (e.g. Hebrew or Arabic)
|
|
|
|
|
\usepackage{polyglossia}
|
|
|
|
|
\setmainlanguage[]{english}
|
|
|
|
|
$for(polyglossia-otherlangs)$
|
|
|
|
|
\setotherlanguage[$polyglossia-otherlangs.options$]{$polyglossia-otherlangs.name$}
|
|
|
|
|
$endfor$
|
|
|
|
|
\fi
|
|
|
|
|
$endif$
|
|
|
|
|
|
|
|
|
|
%
|
|
|
|
|
% for the background color of the title page
|
|
|
|
|
%
|
|
|
|
|
$if(titlepage)$
|
|
|
|
|
\usepackage{pagecolor}
|
|
|
|
|
\usepackage{afterpage}
|
2019-12-17 21:08:54 +01:00
|
|
|
|
$if(titlepage-background)$
|
|
|
|
|
\usepackage{tikz}
|
|
|
|
|
$endif$
|
|
|
|
|
$if(geometry)$
|
|
|
|
|
$else$
|
|
|
|
|
\usepackage[margin=2.5cm,includehead=true,includefoot=true,centering]{geometry}
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$endif$
|
|
|
|
|
$endif$
|
|
|
|
|
|
|
|
|
|
%
|
|
|
|
|
% break urls
|
|
|
|
|
%
|
|
|
|
|
\PassOptionsToPackage{hyphens}{url}
|
|
|
|
|
|
|
|
|
|
%
|
2019-12-17 21:08:54 +01:00
|
|
|
|
% When using babel or polyglossia with biblatex, loading csquotes is recommended
|
2019-03-24 15:03:56 +01:00
|
|
|
|
% to ensure that quoted texts are typeset according to the rules of your main language.
|
|
|
|
|
%
|
|
|
|
|
\usepackage{csquotes}
|
|
|
|
|
|
|
|
|
|
%
|
|
|
|
|
% captions
|
|
|
|
|
%
|
|
|
|
|
\definecolor{caption-color}{HTML}{777777}
|
2019-12-17 21:08:54 +01:00
|
|
|
|
$if(beamer)$
|
|
|
|
|
$else$
|
2019-03-24 15:03:56 +01:00
|
|
|
|
\usepackage[font={stretch=1.2}, textfont={color=caption-color}, position=top, skip=4mm, labelfont=bf, singlelinecheck=false, justification=$if(caption-justification)$$caption-justification$$else$raggedright$endif$]{caption}
|
|
|
|
|
\setcapindent{0em}
|
2019-12-17 21:08:54 +01:00
|
|
|
|
$endif$
|
2019-03-24 15:03:56 +01:00
|
|
|
|
|
|
|
|
|
%
|
|
|
|
|
% blockquote
|
|
|
|
|
%
|
|
|
|
|
\definecolor{blockquote-border}{RGB}{221,221,221}
|
|
|
|
|
\definecolor{blockquote-text}{RGB}{119,119,119}
|
|
|
|
|
\usepackage{mdframed}
|
|
|
|
|
\newmdenv[rightline=false,bottomline=false,topline=false,linewidth=3pt,linecolor=blockquote-border,skipabove=\parskip]{customblockquote}
|
|
|
|
|
\renewenvironment{quote}{\begin{customblockquote}\list{}{\rightmargin=0em\leftmargin=0em}%
|
|
|
|
|
\item\relax\color{blockquote-text}\ignorespaces}{\unskip\unskip\endlist\end{customblockquote}}
|
|
|
|
|
|
|
|
|
|
%
|
|
|
|
|
% Source Sans Pro as the default font family
|
|
|
|
|
% Source Code Pro for monospace text
|
|
|
|
|
%
|
2019-12-17 21:08:54 +01:00
|
|
|
|
% 'default' option sets the default
|
2019-03-24 15:03:56 +01:00
|
|
|
|
% font family to Source Sans Pro, not \sfdefault.
|
|
|
|
|
%
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
|
|
|
|
|
$if(fontfamily)$
|
|
|
|
|
$else$
|
|
|
|
|
\usepackage[default]{sourcesanspro}
|
|
|
|
|
\usepackage{sourcecodepro}
|
|
|
|
|
$endif$
|
|
|
|
|
\else % if not pdftex
|
|
|
|
|
$if(mainfont)$
|
|
|
|
|
$else$
|
|
|
|
|
\usepackage[default]{sourcesanspro}
|
|
|
|
|
\usepackage{sourcecodepro}
|
|
|
|
|
|
|
|
|
|
% XeLaTeX specific adjustments for straight quotes: https://tex.stackexchange.com/a/354887
|
|
|
|
|
% This issue is already fixed (see https://github.com/silkeh/latex-sourcecodepro/pull/5) but the
|
|
|
|
|
% fix is still unreleased.
|
|
|
|
|
% TODO: Remove this workaround when the new version of sourcecodepro is released on CTAN.
|
|
|
|
|
\ifxetex
|
|
|
|
|
\makeatletter
|
|
|
|
|
\defaultfontfeatures[\ttfamily]
|
|
|
|
|
{ Numbers = \sourcecodepro@figurestyle,
|
|
|
|
|
Scale = \SourceCodePro@scale,
|
|
|
|
|
Extension = .otf }
|
|
|
|
|
\setmonofont
|
|
|
|
|
[ UprightFont = *-\sourcecodepro@regstyle,
|
|
|
|
|
ItalicFont = *-\sourcecodepro@regstyle It,
|
|
|
|
|
BoldFont = *-\sourcecodepro@boldstyle,
|
|
|
|
|
BoldItalicFont = *-\sourcecodepro@boldstyle It ]
|
|
|
|
|
{SourceCodePro}
|
|
|
|
|
\makeatother
|
|
|
|
|
\fi
|
|
|
|
|
$endif$
|
|
|
|
|
\fi
|
2019-03-24 15:03:56 +01:00
|
|
|
|
|
|
|
|
|
%
|
|
|
|
|
% heading color
|
|
|
|
|
%
|
|
|
|
|
\definecolor{heading-color}{RGB}{40,40,40}
|
2019-12-17 21:08:54 +01:00
|
|
|
|
$if(beamer)$
|
|
|
|
|
$else$
|
2019-03-24 15:03:56 +01:00
|
|
|
|
\addtokomafont{section}{\color{heading-color}}
|
2019-12-17 21:08:54 +01:00
|
|
|
|
$endif$
|
|
|
|
|
% When using the classes report, scrreprt, book,
|
2019-03-24 15:03:56 +01:00
|
|
|
|
% scrbook or memoir, uncomment the following line.
|
|
|
|
|
%\addtokomafont{chapter}{\color{heading-color}}
|
|
|
|
|
|
|
|
|
|
%
|
|
|
|
|
% variables for title and author
|
|
|
|
|
%
|
2019-12-17 21:08:54 +01:00
|
|
|
|
$if(beamer)$
|
|
|
|
|
$else$
|
2019-03-24 15:03:56 +01:00
|
|
|
|
\usepackage{titling}
|
|
|
|
|
\title{$title$}
|
|
|
|
|
\author{$for(author)$$author$$sep$, $endfor$}
|
2019-12-17 21:08:54 +01:00
|
|
|
|
$endif$
|
2019-03-24 15:03:56 +01:00
|
|
|
|
|
|
|
|
|
%
|
|
|
|
|
% tables
|
|
|
|
|
%
|
|
|
|
|
$if(tables)$
|
|
|
|
|
|
|
|
|
|
\definecolor{table-row-color}{HTML}{F5F5F5}
|
|
|
|
|
\definecolor{table-rule-color}{HTML}{999999}
|
|
|
|
|
|
|
|
|
|
%\arrayrulecolor{black!40}
|
|
|
|
|
\arrayrulecolor{table-rule-color} % color of \toprule, \midrule, \bottomrule
|
|
|
|
|
\setlength\heavyrulewidth{0.3ex} % thickness of \toprule, \bottomrule
|
|
|
|
|
\renewcommand{\arraystretch}{1.3} % spacing (padding)
|
|
|
|
|
|
2019-12-17 21:08:54 +01:00
|
|
|
|
$if(table-use-row-colors)$
|
|
|
|
|
% TODO: This doesn't work anymore. I don't know why.
|
2019-03-24 15:03:56 +01:00
|
|
|
|
% Reset rownum counter so that each table
|
|
|
|
|
% starts with the same row colors.
|
|
|
|
|
% https://tex.stackexchange.com/questions/170637/restarting-rowcolors
|
2019-12-17 21:08:54 +01:00
|
|
|
|
%
|
|
|
|
|
% Unfortunately the colored cells extend beyond the edge of the
|
|
|
|
|
% table because pandoc uses @-expressions (@{}) like so:
|
|
|
|
|
%
|
|
|
|
|
% \begin{longtable}[]{@{}ll@{}}
|
|
|
|
|
% \end{longtable}
|
|
|
|
|
%
|
|
|
|
|
% https://en.wikibooks.org/wiki/LaTeX/Tables#.40-expressions
|
2019-03-24 15:03:56 +01:00
|
|
|
|
\let\oldlongtable\longtable
|
|
|
|
|
\let\endoldlongtable\endlongtable
|
|
|
|
|
\renewenvironment{longtable}{
|
|
|
|
|
\rowcolors{3}{}{table-row-color!100} % row color
|
|
|
|
|
\oldlongtable} {
|
|
|
|
|
\endoldlongtable
|
|
|
|
|
\global\rownum=0\relax}
|
2019-12-17 21:08:54 +01:00
|
|
|
|
$endif$
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$endif$
|
|
|
|
|
|
|
|
|
|
%
|
|
|
|
|
% remove paragraph indention
|
|
|
|
|
%
|
|
|
|
|
\setlength{\parindent}{0pt}
|
|
|
|
|
\setlength{\parskip}{6pt plus 2pt minus 1pt}
|
|
|
|
|
\setlength{\emergencystretch}{3em} % prevent overfull lines
|
|
|
|
|
|
|
|
|
|
%
|
|
|
|
|
%
|
|
|
|
|
% Listings
|
|
|
|
|
%
|
|
|
|
|
%
|
|
|
|
|
|
|
|
|
|
$if(listings)$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
|
|
|
|
|
%
|
|
|
|
|
% general listing colors
|
|
|
|
|
%
|
|
|
|
|
\definecolor{listing-background}{HTML}{F7F7F7}
|
|
|
|
|
\definecolor{listing-rule}{HTML}{B3B2B3}
|
|
|
|
|
\definecolor{listing-numbers}{HTML}{B3B2B3}
|
|
|
|
|
\definecolor{listing-text-color}{HTML}{000000}
|
|
|
|
|
\definecolor{listing-keyword}{HTML}{435489}
|
|
|
|
|
\definecolor{listing-keyword-2}{HTML}{1284CA} % additional keywords
|
|
|
|
|
\definecolor{listing-keyword-3}{HTML}{9137CB} % additional keywords
|
|
|
|
|
\definecolor{listing-identifier}{HTML}{435489}
|
|
|
|
|
\definecolor{listing-string}{HTML}{00999A}
|
|
|
|
|
\definecolor{listing-comment}{HTML}{8E8E8E}
|
|
|
|
|
|
2019-03-24 15:03:56 +01:00
|
|
|
|
\lstdefinestyle{eisvogel_listing_style}{
|
|
|
|
|
language = java,
|
|
|
|
|
$if(listings-disable-line-numbers)$
|
|
|
|
|
xleftmargin = 0.6em,
|
|
|
|
|
framexleftmargin = 0.4em,
|
|
|
|
|
$else$
|
|
|
|
|
numbers = left,
|
|
|
|
|
xleftmargin = 2.7em,
|
|
|
|
|
framexleftmargin = 2.5em,
|
|
|
|
|
$endif$
|
|
|
|
|
backgroundcolor = \color{listing-background},
|
2019-12-17 21:08:54 +01:00
|
|
|
|
basicstyle = \color{listing-text-color}\linespread{1.0}$if(code-block-font-size)$$code-block-font-size$$else$\small$endif$\ttfamily{},
|
2019-03-24 15:03:56 +01:00
|
|
|
|
breaklines = true,
|
|
|
|
|
frame = single,
|
2019-12-17 21:08:54 +01:00
|
|
|
|
framesep = 0.19em,
|
2019-03-24 15:03:56 +01:00
|
|
|
|
rulecolor = \color{listing-rule},
|
|
|
|
|
frameround = ffff,
|
|
|
|
|
tabsize = 4,
|
|
|
|
|
numberstyle = \color{listing-numbers},
|
|
|
|
|
aboveskip = 1.0em,
|
2019-12-17 21:08:54 +01:00
|
|
|
|
belowskip = 0.1em,
|
|
|
|
|
abovecaptionskip = 0em,
|
2019-03-24 15:03:56 +01:00
|
|
|
|
belowcaptionskip = 1.0em,
|
2019-12-17 21:08:54 +01:00
|
|
|
|
keywordstyle = {\color{listing-keyword}\bfseries},
|
|
|
|
|
keywordstyle = {[2]\color{listing-keyword-2}\bfseries},
|
|
|
|
|
keywordstyle = {[3]\color{listing-keyword-3}\bfseries\itshape},
|
2019-03-24 15:03:56 +01:00
|
|
|
|
sensitive = true,
|
|
|
|
|
identifierstyle = \color{listing-identifier},
|
|
|
|
|
commentstyle = \color{listing-comment},
|
|
|
|
|
stringstyle = \color{listing-string},
|
|
|
|
|
showstringspaces = false,
|
|
|
|
|
escapeinside = {/*@}{@*/}, % Allow LaTeX inside these special comments
|
|
|
|
|
literate =
|
|
|
|
|
{á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1
|
|
|
|
|
{Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1
|
|
|
|
|
{à}{{\`a}}1 {è}{{\'e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1
|
|
|
|
|
{À}{{\`A}}1 {È}{{\'E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1
|
|
|
|
|
{ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
|
|
|
|
|
{Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
|
|
|
|
|
{â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1
|
|
|
|
|
{Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1
|
|
|
|
|
{œ}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1
|
|
|
|
|
{ç}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1
|
|
|
|
|
{€}{{\EUR}}1 {£}{{\pounds}}1 {«}{{\guillemotleft}}1
|
|
|
|
|
{»}{{\guillemotright}}1 {ñ}{{\~n}}1 {Ñ}{{\~N}}1 {¿}{{?`}}1
|
|
|
|
|
{…}{{\ldots}}1 {≥}{{>=}}1 {≤}{{<=}}1 {„}{{\glqq}}1 {“}{{\grqq}}1
|
|
|
|
|
{”}{{''}}1
|
|
|
|
|
}
|
|
|
|
|
\lstset{style=eisvogel_listing_style}
|
|
|
|
|
|
2019-12-17 21:08:54 +01:00
|
|
|
|
%
|
|
|
|
|
% Java (Java SE 12, 2019-06-22)
|
|
|
|
|
%
|
|
|
|
|
\lstdefinelanguage{Java}{
|
|
|
|
|
morekeywords={
|
|
|
|
|
% normal keywords (without data types)
|
|
|
|
|
abstract,assert,break,case,catch,class,continue,default,
|
|
|
|
|
do,else,enum,exports,extends,final,finally,for,if,implements,
|
|
|
|
|
import,instanceof,interface,module,native,new,package,private,
|
|
|
|
|
protected,public,requires,return,static,strictfp,super,switch,
|
|
|
|
|
synchronized,this,throw,throws,transient,try,volatile,while,
|
|
|
|
|
% var is an identifier
|
|
|
|
|
var
|
|
|
|
|
},
|
|
|
|
|
morekeywords={[2] % data types
|
|
|
|
|
% primitive data types
|
|
|
|
|
boolean,byte,char,double,float,int,long,short,
|
|
|
|
|
% String
|
|
|
|
|
String,
|
|
|
|
|
% primitive wrapper types
|
|
|
|
|
Boolean,Byte,Character,Double,Float,Integer,Long,Short
|
|
|
|
|
% number types
|
|
|
|
|
Number,AtomicInteger,AtomicLong,BigDecimal,BigInteger,DoubleAccumulator,DoubleAdder,LongAccumulator,LongAdder,Short,
|
|
|
|
|
% other
|
|
|
|
|
Object,Void,void
|
|
|
|
|
},
|
|
|
|
|
morekeywords={[3] % literals
|
|
|
|
|
% reserved words for literal values
|
|
|
|
|
null,true,false,
|
|
|
|
|
},
|
|
|
|
|
sensitive,
|
|
|
|
|
morecomment = [l]//,
|
|
|
|
|
morecomment = [s]{/*}{*/},
|
|
|
|
|
morecomment = [s]{/**}{*/},
|
|
|
|
|
morestring = [b]",
|
|
|
|
|
morestring = [b]',
|
|
|
|
|
}
|
|
|
|
|
|
2019-03-24 15:03:56 +01:00
|
|
|
|
\lstdefinelanguage{XML}{
|
|
|
|
|
morestring = [b]",
|
|
|
|
|
moredelim = [s][\bfseries\color{listing-keyword}]{<}{\ },
|
|
|
|
|
moredelim = [s][\bfseries\color{listing-keyword}]{</}{>},
|
|
|
|
|
moredelim = [l][\bfseries\color{listing-keyword}]{/>},
|
|
|
|
|
moredelim = [l][\bfseries\color{listing-keyword}]{>},
|
|
|
|
|
morecomment = [s]{<?}{?>},
|
|
|
|
|
morecomment = [s]{<!--}{-->},
|
|
|
|
|
commentstyle = \color{listing-comment},
|
|
|
|
|
stringstyle = \color{listing-string},
|
|
|
|
|
identifierstyle = \color{listing-identifier}
|
|
|
|
|
}
|
|
|
|
|
$endif$
|
|
|
|
|
|
|
|
|
|
%
|
|
|
|
|
% header and footer
|
|
|
|
|
%
|
2019-12-17 21:08:54 +01:00
|
|
|
|
$if(beamer)$
|
|
|
|
|
$else$
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$if(disable-header-and-footer)$
|
|
|
|
|
$else$
|
|
|
|
|
\usepackage{fancyhdr}
|
2019-12-17 21:08:54 +01:00
|
|
|
|
|
|
|
|
|
\fancypagestyle{eisvogel-header-footer}{
|
|
|
|
|
\fancyhead{}
|
|
|
|
|
\fancyfoot{}
|
|
|
|
|
\lhead[$if(header-right)$$header-right$$else$$date$$endif$]{$if(header-left)$$header-left$$else$$title$$endif$}
|
|
|
|
|
\chead[$if(header-center)$$header-center$$else$$endif$]{$if(header-center)$$header-center$$else$$endif$}
|
|
|
|
|
\rhead[$if(header-left)$$header-left$$else$$title$$endif$]{$if(header-right)$$header-right$$else$$date$$endif$}
|
|
|
|
|
\lfoot[$if(footer-right)$$footer-right$$else$\thepage$endif$]{$if(footer-left)$$footer-left$$else$$for(author)$$author$$sep$, $endfor$$endif$}
|
|
|
|
|
\cfoot[$if(footer-center)$$footer-center$$else$$endif$]{$if(footer-center)$$footer-center$$else$$endif$}
|
|
|
|
|
\rfoot[$if(footer-left)$$footer-left$$else$$for(author)$$author$$sep$, $endfor$$endif$]{$if(footer-right)$$footer-right$$else$\thepage$endif$}
|
|
|
|
|
\renewcommand{\headrulewidth}{0.4pt}
|
|
|
|
|
\renewcommand{\footrulewidth}{0.4pt}
|
|
|
|
|
}
|
|
|
|
|
\pagestyle{eisvogel-header-footer}
|
|
|
|
|
$endif$
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$endif$
|
|
|
|
|
|
|
|
|
|
%%
|
|
|
|
|
%% end added
|
|
|
|
|
%%
|
|
|
|
|
|
|
|
|
|
\begin{document}
|
|
|
|
|
|
|
|
|
|
%%
|
|
|
|
|
%% begin titlepage
|
|
|
|
|
%%
|
2019-12-17 21:08:54 +01:00
|
|
|
|
$if(beamer)$
|
|
|
|
|
$else$
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$if(titlepage)$
|
|
|
|
|
\begin{titlepage}
|
2019-12-17 21:08:54 +01:00
|
|
|
|
$if(titlepage-background)$
|
|
|
|
|
\newgeometry{top=2cm, right=4cm, bottom=3cm, left=4cm}
|
|
|
|
|
$else$
|
2019-03-24 15:03:56 +01:00
|
|
|
|
\newgeometry{left=6cm}
|
2019-12-17 21:08:54 +01:00
|
|
|
|
$endif$
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$if(titlepage-color)$
|
|
|
|
|
\definecolor{titlepage-color}{HTML}{$titlepage-color$}
|
|
|
|
|
\newpagecolor{titlepage-color}\afterpage{\restorepagecolor}
|
|
|
|
|
$endif$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
$if(titlepage-background)$
|
|
|
|
|
\tikz[remember picture,overlay] \node[inner sep=0pt] at (current page.center){\includegraphics[width=\paperwidth,height=\paperheight]{$titlepage-background$}};
|
|
|
|
|
$endif$
|
2019-03-24 15:03:56 +01:00
|
|
|
|
\newcommand{\colorRule}[3][black]{\textcolor[HTML]{#1}{\rule{#2}{#3}}}
|
|
|
|
|
\begin{flushleft}
|
|
|
|
|
\noindent
|
|
|
|
|
\\[-1em]
|
|
|
|
|
\color[HTML]{$if(titlepage-text-color)$$titlepage-text-color$$else$5F5F5F$endif$}
|
|
|
|
|
\makebox[0pt][l]{\colorRule[$if(titlepage-rule-color)$$titlepage-rule-color$$else$435488$endif$]{1.3\textwidth}{$if(titlepage-rule-height)$$titlepage-rule-height$$else$4$endif$pt}}
|
|
|
|
|
\par
|
|
|
|
|
\noindent
|
|
|
|
|
|
2019-12-17 21:08:54 +01:00
|
|
|
|
$if(titlepage-background)$
|
|
|
|
|
% The titlepage with a background image has other text spacing and text size
|
|
|
|
|
{
|
|
|
|
|
\setstretch{2}
|
|
|
|
|
\vfill
|
|
|
|
|
\vskip -8em
|
|
|
|
|
\noindent {\huge \textbf{\textsf{$title$}}}
|
|
|
|
|
$if(subtitle)$
|
|
|
|
|
\vskip 1em
|
|
|
|
|
{\Large \textsf{$subtitle$}}
|
|
|
|
|
$endif$
|
|
|
|
|
\vskip 2em
|
|
|
|
|
\noindent {\Large \textsf{$for(author)$$author$$sep$, $endfor$} \vskip 0.6em \textsf{$date$}}
|
|
|
|
|
\vfill
|
|
|
|
|
}
|
|
|
|
|
$else$
|
|
|
|
|
{
|
|
|
|
|
\setstretch{1.4}
|
|
|
|
|
\vfill
|
|
|
|
|
\noindent {\huge \textbf{\textsf{$title$}}}
|
|
|
|
|
$if(subtitle)$
|
|
|
|
|
\vskip 1em
|
|
|
|
|
{\Large \textsf{$subtitle$}}
|
|
|
|
|
$endif$
|
|
|
|
|
\vskip 2em
|
|
|
|
|
\noindent {\Large \textsf{$for(author)$$author$$sep$, $endfor$}}
|
|
|
|
|
\vfill
|
2019-03-24 15:03:56 +01:00
|
|
|
|
}
|
2019-12-17 21:08:54 +01:00
|
|
|
|
$endif$
|
2019-03-24 15:03:56 +01:00
|
|
|
|
|
|
|
|
|
$if(logo)$
|
|
|
|
|
\noindent
|
|
|
|
|
\includegraphics[width=$if(logo-width)$$logo-width$$else$100$endif$pt, left]{$logo$}
|
|
|
|
|
$endif$
|
|
|
|
|
|
2019-12-17 21:08:54 +01:00
|
|
|
|
$if(titlepage-background)$
|
|
|
|
|
$else$
|
|
|
|
|
\textsf{$date$}
|
|
|
|
|
$endif$
|
2019-03-24 15:03:56 +01:00
|
|
|
|
\end{flushleft}
|
|
|
|
|
\end{titlepage}
|
|
|
|
|
\restoregeometry
|
|
|
|
|
$endif$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
$endif$
|
2019-03-24 15:03:56 +01:00
|
|
|
|
|
|
|
|
|
%%
|
|
|
|
|
%% end titlepage
|
|
|
|
|
%%
|
|
|
|
|
|
2019-12-17 21:08:54 +01:00
|
|
|
|
$if(has-frontmatter)$
|
|
|
|
|
\frontmatter
|
|
|
|
|
$endif$
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$if(title)$
|
|
|
|
|
$if(beamer)$
|
|
|
|
|
\frame{\titlepage}
|
|
|
|
|
$endif$
|
|
|
|
|
$if(abstract)$
|
|
|
|
|
\begin{abstract}
|
|
|
|
|
$abstract$
|
|
|
|
|
\end{abstract}
|
|
|
|
|
$endif$
|
|
|
|
|
$endif$
|
|
|
|
|
|
2019-12-17 21:08:54 +01:00
|
|
|
|
$if(first-chapter)$
|
|
|
|
|
\setcounter{chapter}{$first-chapter$}
|
|
|
|
|
\addtocounter{chapter}{-1}
|
|
|
|
|
$endif$
|
|
|
|
|
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$for(include-before)$
|
|
|
|
|
$include-before$
|
|
|
|
|
|
|
|
|
|
$endfor$
|
|
|
|
|
$if(toc)$
|
|
|
|
|
$if(toc-title)$
|
|
|
|
|
\renewcommand*\contentsname{$toc-title$}
|
|
|
|
|
$endif$
|
|
|
|
|
$if(beamer)$
|
|
|
|
|
\begin{frame}
|
|
|
|
|
$if(toc-title)$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\frametitle{$toc-title$}
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$endif$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\tableofcontents[hideallsubsections]
|
2019-03-24 15:03:56 +01:00
|
|
|
|
\end{frame}
|
|
|
|
|
$if(toc-own-page)$
|
|
|
|
|
\newpage
|
|
|
|
|
$endif$
|
|
|
|
|
$else$
|
|
|
|
|
{
|
|
|
|
|
$if(colorlinks)$
|
|
|
|
|
\hypersetup{linkcolor=$if(toccolor)$$toccolor$$else$$endif$}
|
|
|
|
|
$endif$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\setcounter{tocdepth}{$if(toc-depth)$$toc-depth$$else$3$endif$}
|
2019-03-24 15:03:56 +01:00
|
|
|
|
\tableofcontents
|
|
|
|
|
$if(toc-own-page)$
|
|
|
|
|
\newpage
|
|
|
|
|
$endif$
|
|
|
|
|
}
|
|
|
|
|
$endif$
|
|
|
|
|
$endif$
|
|
|
|
|
$if(lot)$
|
|
|
|
|
\listoftables
|
|
|
|
|
$endif$
|
|
|
|
|
$if(lof)$
|
|
|
|
|
\listoffigures
|
|
|
|
|
$endif$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
$if(linestretch)$
|
|
|
|
|
\setstretch{$linestretch$}
|
|
|
|
|
$endif$
|
|
|
|
|
$if(has-frontmatter)$
|
|
|
|
|
\mainmatter
|
|
|
|
|
$endif$
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$body$
|
|
|
|
|
|
2019-12-17 21:08:54 +01:00
|
|
|
|
$if(has-frontmatter)$
|
|
|
|
|
\backmatter
|
|
|
|
|
$endif$
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$if(natbib)$
|
|
|
|
|
$if(bibliography)$
|
|
|
|
|
$if(biblio-title)$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
$if(has-chapters)$
|
2019-03-24 15:03:56 +01:00
|
|
|
|
\renewcommand\bibname{$biblio-title$}
|
|
|
|
|
$else$
|
|
|
|
|
\renewcommand\refname{$biblio-title$}
|
|
|
|
|
$endif$
|
|
|
|
|
$endif$
|
|
|
|
|
$if(beamer)$
|
|
|
|
|
\begin{frame}[allowframebreaks]{$biblio-title$}
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\bibliographytrue
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$endif$
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\bibliography{$for(bibliography)$$bibliography$$sep$,$endfor$}
|
2019-03-24 15:03:56 +01:00
|
|
|
|
$if(beamer)$
|
|
|
|
|
\end{frame}
|
|
|
|
|
$endif$
|
|
|
|
|
|
|
|
|
|
$endif$
|
|
|
|
|
$endif$
|
|
|
|
|
$if(biblatex)$
|
|
|
|
|
$if(beamer)$
|
|
|
|
|
\begin{frame}[allowframebreaks]{$biblio-title$}
|
2019-12-17 21:08:54 +01:00
|
|
|
|
\bibliographytrue
|
|
|
|
|
\printbibliography[heading=none]
|
2019-03-24 15:03:56 +01:00
|
|
|
|
\end{frame}
|
|
|
|
|
$else$
|
|
|
|
|
\printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$
|
|
|
|
|
$endif$
|
|
|
|
|
|
|
|
|
|
$endif$
|
|
|
|
|
$for(include-after)$
|
|
|
|
|
$include-after$
|
|
|
|
|
|
|
|
|
|
$endfor$
|
|
|
|
|
\end{document}
|