$if(linestretch)$ \usepackage{setspace} $else$ % Use setspace anyway because we change the default line spacing. % The spacing is changed early to affect the titlepage and the TOC. \usepackage{setspace} \setstretch{1.2} $endif$ $-- $-- paragraph formatting $-- $if(indent)$ $else$ \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 $endif$ $if(beamer)$ $else$ $if(block-headings)$ % Make \paragraph and \subparagraph free-standing \makeatletter \ifx\paragraph\undefined\else \let\oldparagraph\paragraph \renewcommand{\paragraph}{ \@ifstar \xxxParagraphStar \xxxParagraphNoStar } \newcommand{\xxxParagraphStar}[1]{\oldparagraph*{#1}\mbox{}} \newcommand{\xxxParagraphNoStar}[1]{\oldparagraph{#1}\mbox{}} \fi \ifx\subparagraph\undefined\else \let\oldsubparagraph\subparagraph \renewcommand{\subparagraph}{ \@ifstar \xxxSubParagraphStar \xxxSubParagraphNoStar } \newcommand{\xxxSubParagraphStar}[1]{\oldsubparagraph*{#1}\mbox{}} \newcommand{\xxxSubParagraphNoStar}[1]{\oldsubparagraph{#1}\mbox{}} \fi \makeatother $endif$ $endif$ $-- $-- verbatim in notes $-- $if(verbatim-in-note)$ \usepackage{fancyvrb} $endif$ $-- highlighting $if(listings)$ \usepackage{listings} \newcommand{\passthrough}[1]{#1} \lstset{defaultdialect=[5.3]Lua} \lstset{defaultdialect=[x86masm]Assembler} $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$ % 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=\\\{\}} $endif$ $-- $-- tables $-- $if(tables)$ \usepackage{longtable,booktabs,array} $if(multirow)$ \usepackage{multirow} $endif$ \usepackage{calc} % for calculating minipage widths $if(beamer)$ \usepackage{caption} % Make caption package work with longtable \makeatletter \def\fnum@table{\tablename~\thetable} \makeatother $else$ % 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} $endif$ $endif$ $-- $-- graphics $-- $if(graphics)$ \usepackage{graphicx} \makeatletter \newsavebox\pandoc@box \newcommand*\pandocbounded[1]{% scales image to fit in text height/width \sbox\pandoc@box{#1}% \Gscale@div\@tempa{\textheight}{\dimexpr\ht\pandoc@box+\dp\pandoc@box\relax}% \Gscale@div\@tempb{\linewidth}{\wd\pandoc@box}% \ifdim\@tempb\p@<\@tempa\p@\let\@tempa\@tempb\fi% select the smaller of both \ifdim\@tempa\p@<\p@\scalebox{\@tempa}{\usebox\pandoc@box}% \else\usebox{\pandoc@box}% \fi% } % Set default figure placement to htbp % 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'). \usepackage{float} \floatplacement{figure}{$if(float-placement-figure)$$float-placement-figure$$else$H$endif$} \makeatother $endif$ $if(svg)$ \usepackage{svg} $endif$ $-- $-- strikeout/underline $-- $if(strikeout)$ \ifLuaTeX \usepackage{luacolor} \usepackage[soul]{lua-ul} \else \usepackage{soul} $if(beamer)$ \makeatletter \let\HL\hl \renewcommand\hl{% fix for beamer highlighting \let\set@color\beamerorig@set@color \let\reset@color\beamerorig@reset@color \HL} \makeatother $endif$ $if(CJKmainfont)$ \ifXeTeX % soul's \st doesn't work for CJK: \usepackage{xeCJKfntef} \renewcommand{\st}[1]{\sout{#1}} \fi $endif$ \fi $endif$ $-- $-- CSL citations $-- $if(csl-refs)$ % definitions for citeproc citations \NewDocumentCommand\citeproctext{}{} \NewDocumentCommand\citeproc{mm}{% \begingroup\def\citeproctext{#2}\cite{#1}\endgroup} \makeatletter % allow citations to break across lines \let\@cite@ofmt\@firstofone % avoid brackets around text for \cite: \def\@biblabel#1{} \def\@cite#1#2{{#1\if@tempswa , #2\fi}} \makeatother \newlength{\cslhangindent} \setlength{\cslhangindent}{1.5em} \newlength{\csllabelwidth} \setlength{\csllabelwidth}{3em} \newenvironment{CSLReferences}[2] % #1 hanging-indent, #2 entry-spacing {\begin{list}{}{% \setlength{\itemindent}{0pt} \setlength{\leftmargin}{0pt} \setlength{\parsep}{0pt} % turn on hanging indent if param 1 is 1 \ifodd #1 \setlength{\leftmargin}{\cslhangindent} \setlength{\itemindent}{-1\cslhangindent} \fi % set entry spacing \setlength{\itemsep}{#2\baselineskip}}} {\end{list}} \usepackage{calc} \newcommand{\CSLBlock}[1]{\hfill\break\parbox[t]{\linewidth}{\strut\ignorespaces#1\strut}} \newcommand{\CSLLeftMargin}[1]{\parbox[t]{\csllabelwidth}{\strut#1\strut}} \newcommand{\CSLRightInline}[1]{\parbox[t]{\linewidth - \csllabelwidth}{\strut#1\strut}} \newcommand{\CSLIndent}[1]{\hspace{\cslhangindent}#1} $endif$ $-- $-- Babel language support $-- $if(lang)$ \ifLuaTeX \usepackage[bidi=basic]{babel} \else \usepackage[bidi=default]{babel} \fi $if(babel-lang)$ \babelprovide[main,import]{$babel-lang$} $if(mainfont)$ \ifPDFTeX \else \babelfont{rm}[$for(mainfontoptions)$$mainfontoptions$$sep$,$endfor$$if(mainfontfallback)$,RawFeature={fallback=mainfontfallback}$endif$]{$mainfont$} \fi $endif$ $endif$ $for(babel-otherlangs)$ \babelprovide[import]{$babel-otherlangs$} $endfor$ $for(babelfonts/pairs)$ \babelfont[$babelfonts.key$]{rm}{$babelfonts.value$} $endfor$ % get rid of language-specific shorthands (see #6817): \let\LanguageShortHands\languageshorthands \def\languageshorthands#1{} $if(selnolig-langs)$ \ifLuaTeX \usepackage[$for(selnolig-langs)$$it$$sep$,$endfor$]{selnolig} % disable illegal ligatures \fi $endif$ $endif$ $-- $-- pagestyle $-- $if(pagestyle)$ \pagestyle{$pagestyle$} $endif$ $-- $-- prevent overfull lines $-- \setlength{\emergencystretch}{3em} % prevent overfull lines $-- $-- tight lists $-- \providecommand{\tightlist}{% \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} $-- $-- subfigure support $-- $if(subfigure)$ \usepackage{subcaption} $endif$ $-- $-- text direction support for pdftex $-- $if(dir)$ \ifPDFTeX \TeXXeTstate=1 \newcommand{\RL}[1]{\beginR #1\endR} \newcommand{\LR}[1]{\beginL #1\endL} \newenvironment{RTL}{\beginR}{\endR} \newenvironment{LTR}{\beginL}{\endL} \fi $endif$ $-- $-- bibliography support support for natbib and biblatex $-- $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$ $if(nocite-ids)$ \nocite{$for(nocite-ids)$$it$$sep$, $endfor$} $endif$ $-- $-- csquotes $-- $if(csquotes)$ \usepackage{csquotes} $endif$