dotfiles/pandoc/.pandoc/templates/eisvogel.latex

1067 lines
30 KiB
Plaintext
Raw Permalink Normal View History

2019-03-24 15:03:56 +01:00
%%
2022-05-25 20:47:42 +02:00
% Copyright (c) 2017 - 2021, Pascal Wagler;
% Copyright (c) 2014 - 2021, John MacFarlane
2019-12-17 21:08:54 +01:00
%
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$
$if(CJKmainfont)$
\PassOptionsToPackage{space}{xeCJK}
$endif$
2019-12-17 21:08:54 +01:00
%
\documentclass[
$if(fontsize)$
$fontsize$,
$endif$
$if(lang)$
$babel-lang$,
$endif$
$if(papersize)$
$papersize$paper,
$else$
paper=a4,
2019-12-17 21:08:54 +01:00
$endif$
$if(beamer)$
ignorenonframetext,
$if(handout)$
handout,
$endif$
$if(aspectratio)$
aspectratio=$aspectratio$,
$endif$
$endif$
$for(classoption)$
$classoption$$sep$,
$endfor$
,captions=tableheading
2019-12-17 21:08:54 +01:00
]{$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$
\usepackage{amsmath,amssymb}
2019-03-24 15:03:56 +01:00
$if(fontfamily)$
\usepackage[$for(fontfamilyoptions)$$fontfamilyoptions$$sep$,$endfor$]{$fontfamily$}
$else$
\usepackage{lmodern}
$endif$
$if(linestretch)$
\usepackage{setspace}
$else$
\usepackage{setspace}
\setstretch{1.2}
$endif$
\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,array}
2022-05-25 20:47:42 +02:00
$if(multirow)$
\usepackage{multirow}
$endif$
\usepackage{calc} % for calculating minipage widths
2019-03-24 15:03:56 +01:00
$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}
2019-03-24 15:03:56 +01:00
\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}
% Set default figure placement to htbp
\makeatletter
\def\fps@figure{htbp}
\makeatother
2019-03-24 15:03:56 +01:00
$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
2019-03-24 15:03:56 +01:00
\providecommand{\tightlist}{%
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
$if(numbersections)$
\setcounter{secnumdepth}{$if(secnumdepth)$$secnumdepth$$else$5$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[$for(polyglossia-lang.options)$$polyglossia-lang.options$$sep$,$endfor$]{$polyglossia-lang.name$}
2019-03-24 15:03:56 +01:00
$for(polyglossia-otherlangs)$
\setotherlanguage[$for(polyglossia-otherlangs.options)$$polyglossia-otherlangs.options$$sep$,$endfor$]{$polyglossia-otherlangs.name$}
2019-03-24 15:03:56 +01:00
$endfor$
2019-12-17 21:08:54 +01:00
\else
\usepackage[$for(babel-otherlangs)$$babel-otherlangs$,$endfor$main=$babel-lang$]{babel}
% get rid of language-specific shorthands (see #6817):
\let\LanguageShortHands\languageshorthands
\def\languageshorthands#1{}
2019-12-17 21:08:54 +01:00
$if(babel-newcommands)$
$babel-newcommands$
$endif$
2019-03-24 15:03:56 +01:00
\fi
$endif$
\ifluatex
\usepackage{selnolig} % disable illegal ligatures
\fi
2019-03-24 15:03:56 +01:00
$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}
\newlength{\csllabelwidth}
\setlength{\csllabelwidth}{3em}
\newenvironment{CSLReferences}[2] % #1 hanging-ident, #2 entry spacing
{% don't indent paragraphs
\setlength{\parindent}{0pt}
% turn on hanging indent if param 1 is 1
\ifodd #1 \everypar{\setlength{\hangindent}{\cslhangindent}}\ignorespaces\fi
% set entry spacing
\ifnum #2 > 0
\setlength{\parskip}{#2\baselineskip}
\fi
}%
{}
\usepackage{calc}
\newcommand{\CSLBlock}[1]{#1\hfill\break}
\newcommand{\CSLLeftMargin}[1]{\parbox[t]{\csllabelwidth}{#1}}
\newcommand{\CSLRightInline}[1]{\parbox[t]{\linewidth - \csllabelwidth}{#1}\break}
\newcommand{\CSLIndent}[1]{\hspace{\cslhangindent}#1}
2019-12-17 21:08:54 +01:00
$endif$
2022-05-25 20:47:42 +02:00
$if(csquotes)$
\usepackage{csquotes}
$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$
\author{$for(author)$$author$$sep$ \and $endfor$}
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$
$if(page-background)$
\usepackage[pages=all]{background}
$endif$
2019-03-24 15:03:56 +01:00
%
% 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 de­fault font fam­ily
% 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, author and date
2019-03-24 15:03:56 +01:00
%
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$}
\date{$date$}
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}
$if(page-background)$
\backgroundsetup{
scale=1,
color=black,
opacity=$if(page-background-opacity)$$page-background-opacity$$else$0.2$endif$,
angle=0,
contents={%
\includegraphics[width=\paperwidth,height=\paperheight]{$page-background$}
}%
}
$endif$
2019-12-17 21:08:54 +01:00
$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
2022-05-25 20:47:42 +02:00
\includegraphics[width=$if(logo-width)$$logo-width$$else$35mm$endif$, left]{$logo$}
2019-03-24 15:03:56 +01:00
$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}[allowframebreaks]
2019-03-24 15:03:56 +01:00
$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$
\setcounter{tocdepth}{$toc-depth$}
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}