1
0
Fork 0
mirror of https://github.com/benedictdudel/pandoc-letter-din5008.git synced 2024-08-16 10:19:49 +02:00

Template now based on the official LaTeX template of pandoc

This commit is contained in:
Benedict Dudel 2022-12-26 19:25:59 +01:00
parent 78cb69210d
commit f1a9c37a41
11 changed files with 726 additions and 134 deletions

107
README.md
View file

@ -1,22 +1,12 @@
# Pandoc Letter Template (DIN 5008)
# Pandoc Letter Template (Default: DIN 5008)
[Pandoc](https://pandoc.org/) template for writing letters in Markdown and converting them into PDFs
that follow the German national standard DIN 5008 for letter formatting. By using this
template, you can more efficiently create professional-looking letters in a
clean and organized manner. The template is customizable, so you can tailor it
to your specific needs.
Effortlessly write professional letters with the Pandoc Letter Template. Simply create and customize your letters in Markdown and convert them to stunning PDFs with one command. Based on the official [Pandoc LaTeX template](https://github.com/jgm/pandoc/blob/master/data/templates/default.latex) and [`scrlttr2`](https://ftp.rrzn.uni-hannover.de/pub/mirror/tex-archive/macros/latex/contrib/koma-script/doc/scrguide-en.pdf#chapter.4) document class, you can use all the variables supported by the official template, plus additional variables. The template defaults to the German [DIN 5008](https://de.wikipedia.org/wiki/DIN_5008) standard for added convenience. No more tedious design or typesetting work - just easy, beautiful letters for any occasion.
## Preview
## Previews
<p align="center">
<img src="https://github.com/benedu/pandoc-letter/raw/master/example/letter.png" alt="Letter Preview"/>
</p>
## Requirements
- [Pandoc](http://pandoc.org/installing.html)
- [LaTeX](https://latex-project.org/ftp.html)
- [csquotes](https://ctan.org/pkg/csquotes)
|[Minimal](/examples/minimal)|[Invoice](/examples/invoice)|
|:--------------------------:|:--------------------------:|
|<img src="/examples/minimal/letter.png" alt="Minimal Letter Preview"/>|<img src="/examples/invoice/letter.png" alt="Invoice Letter Preview"/>|
## Usage
@ -26,23 +16,98 @@ Clone this repository or download the template with the following command:
curl https://raw.githubusercontent.com/benedictdudel/pandoc-letter-din5008/master/letter.latex --create-dirs -o ~/.pandoc/templates/letter.latex
```
Write your letter in markdown, using the provided [`example/letter.md`](https://raw.githubusercontent.com/benedictdudel/pandoc-letter-din5008/master/example/letter.md) file as a
Write your letter in markdown, using one of the provided examples [`examples/minimal/letter.md`](https://raw.githubusercontent.com/benedictdudel/pandoc-letter-din5008/master/examples/minimal/letter.md) file as a
guide. You can download the example `letter.md` file with the following command:
```bash
curl https://raw.githubusercontent.com/benedictdudel/pandoc-letter-din5008/master/example/letter.md -o letter.md
curl https://raw.githubusercontent.com/benedictdudel/pandoc-letter-din5008/master/examples/minimal/letter.md -o letter.md
```
To convert the markdown file to a PDF run:
```bash
pandoc letter.md -s -o letter.pdf --template="letter"
pandoc letter.md -o letter.pdf --template="letter"
```
## Customization
You can customize the look and feel of the generated PDF by modifying the
variables. See [`example/letter.md`](https://raw.githubusercontent.com/benedictdudel/pandoc-letter-din5008/master/example/letter.md) for a full list of available variables.
There are two ways to customize the letter. You can use the exported KOMA-variables via yaml or use a custom `lco` (letter class options) file which you can reference in your yaml metadata.
### 1. Letter Class Options (`.lco`)
Create a new file `defaults.lco` with the following content:
```latex
\ProvidesFile{defaults.lco}
\setkomavar{opening}{Dear Sir or Madam,}
\setkomavar{closing}{Sincerely,}
```
Reference the `defaults.lco` file within you yaml metadata:
```yaml
---
letteroption:
- defaults
---
```
### 2. Variables
The template supports all variables from the official LaTeX template plus additional variables from `scrlttr2`. Those variables are:
|name |description |
|--------------------|-------------------------------------------------------|
|addresseeimage|commands used to print the postpaid postmark for the addrfield backgroundimage option or the postpaid address for the addrfield=image option|
|backaddress|return address for window envelopes|
|backaddressseparator|separator within the return address|
|closing|concluding text|
|ccseparator|separator between title of additional addresses (cc list) and additional addresses|
|cc|distribution list|
|customer|customer number|
|customername|name of customer number|
|date|date|
|datename|name of date|
|emailseparator|separator between email name and email address|
|enclseparator|separator between title of enclosure and enclosures|
|faxseparator|separator between title of fax and fax number|
|firstfooter|footer of the letterhead page|
|firsthead|header of the letterhead page|
|fromaddress|senders address without sender name|
|fromalign|where the sender information should be placed on the first page|
|frombank|senders bank details|
|fromemail|senders e-mail|
|fromfax|senders fax number|
|fromlogo|commands for inserting the senders logo|
|frommobilephone|senders mobile telephone number|
|fromname|complete name of sender|
|fromphone|senders telephone number|
|fromurl|URL of the sender, e. g. of the senders homepage|
|fromzipcode|ZIP code (postal code) of the sender for the postpaid postmark of the addrfield=PP option|
|invoice|invoice number|
|invoicename|name of invoice number|
|letteroption|to load lco files|
|location|extra details of the sender|
|myref|senders reference|
|nextfoot|footer using page style headings or myheadings|
|nexthead|header using page style headings or myheadings|
|opening|salutation|
|phoneseparator|separator between title of telephone and telephone number|
|place|senders location; used next to date|
|placeseparator|separator between location and date|
|PPdatamatrix|command to print the data array for the addrfield=PP option|
|PPcode|commands for the senders identification code for the addrfield=PP option|
|signature|signature annotation beneath the closing text of the letter|
|specialmail|delivery method|
|subject|letters subject|
|subjectseparator|separator between subject title and subject|
|title|letter title|
|toaddress|address of recipient without recipient name|
|toname|complete name of recipient|
|yourmail|date of recipients referenced mail|
|yourmailname|name of date of recipients referenced mail|
|yourref|recipients reference|
|yourrefname|name of the recipients reference|
|zipcodeseparator|separator between the title of ZIP code (postal code) and the code itself|
## Contact

View file

@ -1,39 +0,0 @@
---
letteroption:
- parskip=half
- foldmarks=true
- foldmarks=BTm
- fromalign=right
- version=last
author: Max Mustermann
phone: +49 1234 56789
email: max.mustermann@beispiel.de
date: 01.08.2016
place: Musterstadt
subject: Titel vom Brief
return-address:
- Musterstraße
- 12345 Berlin
address:
- Musterfirma GmbH
- Max Mustermann
- Musterstraße
- 12345 Musterstadt
opening: Sehr geehrte Damen und Herren,
closing: Mit freundlichen Grüßen
enclosed: Muster, Muster, Muster
ps: "PS: Hier noch ein Gedanke zum Schluss"
links-as-notes: true
...
Ich bin ein kleiner [Blindtext](https://twitter.com/benedictdudel). Und zwar schon so lange ich denken kann. Es war nicht leicht zu verstehen, was es bedeutet, ein blinder Text zu sein: Man ergibt keinen Sinn. Wirklich keinen Sinn.
- Honig 5 €
- Streichhölzer 2 €
Aber andere Texte schaffen das auch nicht. Und darum stört es mich nicht besonders "blind" zu sein.
|Spalte 1 |Spalte 2|
|-------------|--------|
|Honig |5 € |
|Streichhölzer|2 € |

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

View file

@ -0,0 +1,30 @@
---
lang: de
backaddress: Erika Musterfrau, Musterstraße 1, 12345 Musterstadt
fromname: Erika Musterfrau
fromaddress: |
Musterstraße 1
12345 Musterstadt
place: Musterstadt
to: |
Musterfirma GmbH
Max Mustermann
Musterstraße 2
12345 Musterstadt
date: 01.01.2023
subject: Musterbrief
signature: Erika Musterfrau
invoice: 123456789
...
vielen Dank für Ihren Auftrag. Bitte überweisen Sie den im Folgenden aufgeführten Rechnungsbetrag innerhalb von 14 Tagen auf das angegebene Konto.
| **Beschreibung** | **Menge** | **Preis St.** | **Preis Gesamt** |
| --------------------- | --------- | ------------- | ---------------- |
| Software-Entwicklung | 4 | € 100 | € 400 |
| Software-Installation | 1 | € 50 | € 50 |
| --------------------- | ----- | --------- | ------------ |
| Zwischensumme | | | € 450 |
| _MwSt. 19%_ | | | _€ 85,5_ |
| --------------------- | ----- | --------- | ------------ |
| **Gesamt** | | | **€ 535,5** |

BIN
examples/invoice/letter.pdf Normal file

Binary file not shown.

BIN
examples/invoice/letter.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

View file

@ -0,0 +1,21 @@
---
backaddress: Erika Musterfrau, Musterstraße 1, 12345 Musterstadt
fromname: Erika Musterfrau
fromaddress: |
Musterstraße 1
12345 Musterstadt
place: Musterstadt
to: |
Musterfirma GmbH
Max Mustermann
Musterstraße 2
12345 Musterstadt
date: 01.01.2023
subject: Musterbrief
signature: Erika Musterfrau
...
Nostrud ullamco do elit ullamco. Tempor culpa id minim eiusmod labore in fugiat anim anim cupidatat est. Ipsum culpa in labore ea minim nisi amet. Fugiat aute duis non ut aliqua ex. Irure id nulla amet do nostrud commodo ea aliqua non eu.
Do duis voluptate occaecat mollit laborum ad id proident culpa sit. Fugiat labore qui magna occaecat ex amet nisi ipsum eiusmod commodo minim. Ea culpa voluptate est laborum in culpa.
Esse incididunt consequat Lorem nostrud ea enim cupidatat occaecat. Commodo ut fugiat magna nulla. Id consectetur minim laborum id laboris quis amet. Veniam ipsum id culpa eiusmod id deserunt laboris cupidatat quis duis dolor sit. Do culpa veniam laboris aute ipsum in.

BIN
examples/minimal/letter.pdf Normal file

Binary file not shown.

BIN
examples/minimal/letter.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

View file

@ -1,33 +1,155 @@
% Options for packages loaded elsewhere
\PassOptionsToPackage{unicode$for(hyperrefoptions)$,$hyperrefoptions$$endfor$}{hyperref}
\PassOptionsToPackage{hyphens}{url}
$if(colorlinks)$
\PassOptionsToPackage{dvipsnames,svgnames,x11names}{xcolor}
$endif$
$if(CJKmainfont)$
\PassOptionsToPackage{space}{xeCJK}
$endif$
%
\documentclass[
$if(phone)$ fromphone,$endif$
$if(email)$ fromemail,$endif$
$for(letteroption)$
$letteroption$$sep$,
$if(fontsize)$
$fontsize$,
$endif$
$if(papersize)$
$papersize$paper,
$endif$
$if(beamer)$
ignorenonframetext,
$if(handout)$
handout,
$endif$
$if(aspectratio)$
aspectratio=$aspectratio$,
$endif$
$endif$
$for(classoption)$
$classoption$$sep$,
$endfor$
]{scrlttr2}
% Fonts
% Inspired from https://github.com/aaronwolen/pandoc-letter
$if(fontfamily)$
\usepackage[$for(fontfamilyoptions)$$fontfamilyoptions$$sep$,$endfor$]{$fontfamily$}
$if(beamer)$
$if(background-image)$
\usebackgroundtemplate{%
\includegraphics[width=\paperwidth]{$background-image$}%
}
$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$
% Prevent slide breaks in the middle of a paragraph
\widowpenalties 1 10000
\raggedbottom
$if(section-titles)$
\setbeamertemplate{part page}{
\centering
\begin{beamercolorbox}[sep=16pt,center]{part title}
\usebeamerfont{part title}\insertpart\par
\end{beamercolorbox}
}
\setbeamertemplate{section page}{
\centering
\begin{beamercolorbox}[sep=12pt,center]{part title}
\usebeamerfont{section title}\insertsection\par
\end{beamercolorbox}
}
\setbeamertemplate{subsection page}{
\centering
\begin{beamercolorbox}[sep=8pt,center]{part title}
\usebeamerfont{subsection title}\insertsubsection\par
\end{beamercolorbox}
}
\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}
$if(linestretch)$
\usepackage{setspace}
$endif$
\usepackage{iftex}
\ifPDFTeX
\usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{textcomp} % provide euro and other symbols
\else % if luatex or xetex
$if(mathspec)$
\ifXeTeX
\usepackage{mathspec} % this also loads fontspec
\else
\usepackage{unicode-math} % this also loads fontspec
\fi
$else$
\usepackage{unicode-math} % this also loads fontspec
$endif$
\defaultfontfeatures{Scale=MatchLowercase}$-- must come before Beamer theme
\defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1}
\fi
$if(fontfamily)$
$else$
$-- Set default font before Beamer theme so the theme can override it
\usepackage{lmodern}
$endif$
$for(fontfamilies)$
\newfontfamily{$fontfamilies.name$}[$fontfamilies.options$]{$fontfamilies.font$}
$endfor$
$-- Set Beamer theme before user font settings so they can override theme
$if(beamer)$
$if(theme)$
\usetheme[$for(themeoptions)$$themeoptions$$sep$,$endfor$]{$theme$}
$endif$
$if(colortheme)$
\usecolortheme{$colortheme$}
$endif$
$if(fonttheme)$
\usefonttheme{$fonttheme$}
$endif$
$if(mainfont)$
\setmainfont[$for(mainfontoptions)$$mainfontoptions$$sep$,$endfor$]{$mainfont$}
\usefonttheme{serif} % use mainfont rather than sansfont for slide text
$endif$
$if(innertheme)$
\useinnertheme{$innertheme$}
$endif$
$if(outertheme)$
\useoutertheme{$outertheme$}
$endif$
$endif$
$-- User font settings (must come after default font and Beamer theme)
$if(fontfamily)$
\usepackage[$for(fontfamilyoptions)$$fontfamilyoptions$$sep$,$endfor$]{$fontfamily$}
$endif$
\ifPDFTeX\else
% xetex/luatex font selection
$if(mainfont)$
\setmainfont[$for(mainfontoptions)$$mainfontoptions$$sep$,$endfor$]{$mainfont$}
$endif$
$if(sansfont)$
\setsansfont[$for(sansfontoptions)$$sansfontoptions$$sep$,$endfor$]{$sansfont$}
\setsansfont[$for(sansfontoptions)$$sansfontoptions$$sep$,$endfor$]{$sansfont$}
$endif$
$if(monofont)$
\setmonofont[Mapping=tex-ansi$if(monofontoptions)$,$for(monofontoptions)$$monofontoptions$$sep$,$endfor$$endif$]{$monofont$}
\setmonofont[$for(monofontoptions)$$monofontoptions$$sep$,$endfor$]{$monofont$}
$endif$
$for(fontfamilies)$
\newfontfamily{$fontfamilies.name$}[$for(fontfamilies.options)$$fontfamilies.options$$sep$,$endfor$]{$fontfamilies.font$}
$endfor$
$if(mathfont)$
$if(mathspec)$
\ifxetex
\ifXeTeX
\setmathfont(Digits,Latin,Greek)[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
\else
\setmathfont[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
@ -37,89 +159,482 @@ $else$
$endif$
$endif$
$if(CJKmainfont)$
\ifxetex
\ifXeTeX
\usepackage{xeCJK}
\setCJKmainfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$}
\fi
$endif$
$if(luatexjapresetoptions)$
\ifluatex
\ifLuaTeX
\usepackage[$for(luatexjapresetoptions)$$luatexjapresetoptions$$sep$,$endfor$]{luatexja-preset}
\fi
$endif$
$if(CJKmainfont)$
\ifluatex
\ifLuaTeX
\usepackage[$for(luatexjafontspecoptions)$$luatexjafontspecoptions$$sep$,$endfor$]{luatexja-fontspec}
\setmainjfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$}
\fi
$endif$
% End of Fonts
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{csquotes} % German quotation marks
\usepackage{graphics}
\usepackage{booktabs}
\usepackage{longtable}
\usepackage[right]{eurosym}
\fi
$if(zero-width-non-joiner)$
%% Support for zero-width non-joiner characters.
\makeatletter
\def\zerowidthnonjoiner{%
% Prevent ligatures and adjust kerning, but still support hyphenating.
\texorpdfstring{%
\TextOrMath{\nobreak\discretionary{-}{}{\kern.03em}%
\ifvmode\else\nobreak\hskip\z@skip\fi}{}%
}{}%
}
\makeatother
\ifPDFTeX
\DeclareUnicodeCharacter{200C}{\zerowidthnonjoiner}
\else
\catcode`^^^^200c=\active
\protected\def ^^^^200c{\zerowidthnonjoiner}
\fi
%% End of ZWNJ support
$endif$
% Use upquote if available, for straight quotes in verbatim environments
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
\IfFileExists{microtype.sty}{% use microtype if available
\usepackage[$for(microtypeoptions)$$microtypeoptions$$sep$,$endfor$]{microtype}
\UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
}{}
$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(verbatim-in-note)$
\usepackage{fancyvrb}
$endif$
\usepackage{xcolor}
$if(geometry)$
$if(beamer)$
\geometry{$for(geometry)$$geometry$$sep$,$endfor$}
$else$
\usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry}
$endif$
$endif$
$if(beamer)$
\newif\ifbibliography
$endif$
$if(listings)$
\usepackage{listings}
\newcommand{\passthrough}[1]{#1}
\lstset{defaultdialect=[5.3]Lua}
\lstset{defaultdialect=[x86masm]Assembler}
$endif$
$if(lhs)$
\lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{}
$endif$
$if(highlighting-macros)$
$highlighting-macros$
$endif$
$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$
$if(graphics)$
\usepackage{graphicx}
\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
$endif$
$if(svg)$
\usepackage{svg}
$endif$
$if(strikeout)$
$-- also used for underline
\usepackage{soul}
$endif$
\setlength{\emergencystretch}{3em} % prevent overfull lines
\providecommand{\tightlist}{%
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
\makeatletter
\setlength{\@tempskipa}{-1.2cm}%
\@addtoplength{toaddrheight}{\@tempskipa}
\makeatother
\setlength{\oddsidemargin}{\useplength{toaddrhpos}}
\addtolength{\oddsidemargin}{-1in}
\setlength{\textwidth}{\useplength{firstheadwidth}}
% Links
\usepackage[hidelinks]{hyperref}
$if(numbersections)$
\setcounter{secnumdepth}{$if(secnumdepth)$$secnumdepth$$else$5$endif$}
$else$
\setcounter{secnumdepth}{-\maxdimen} % remove section numbering
$endif$
$if(beamer)$
$else$
$if(block-headings)$
% Make \paragraph and \subparagraph free-standing
\ifx\paragraph\undefined\else
\let\oldparagraph\paragraph
\renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}}
\fi
\ifx\subparagraph\undefined\else
\let\oldsubparagraph\subparagraph
\renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}}
\fi
$endif$
$endif$
$if(pagestyle)$
\pagestyle{$pagestyle$}
$endif$
$if(csl-refs)$
\newlength{\cslhangindent}
\setlength{\cslhangindent}{1.5em}
\newlength{\csllabelwidth}
\setlength{\csllabelwidth}{3em}
\newlength{\cslentryspacingunit} % times entry-spacing
\setlength{\cslentryspacingunit}{\parskip}
\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
\let\oldpar\par
\def\par{\hangindent=\cslhangindent\oldpar}
\fi
% set entry spacing
\setlength{\parskip}{#2\cslentryspacingunit}
}%
{}
\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}
$endif$
$if(lang)$
\ifLuaTeX
\usepackage[bidi=basic]{babel}
\else
\usepackage[bidi=default]{babel}
\fi
$if(babel-lang)$
\babelprovide[main,import]{$babel-lang$}
$endif$
$for(babel-otherlangs)$
\babelprovide[import]{$babel-otherlangs$}
$endfor$
% get rid of language-specific shorthands (see #6817):
\let\LanguageShortHands\languageshorthands
\def\languageshorthands#1{}
$endif$
$for(header-includes)$
$header-includes$
$endfor$
\ifLuaTeX
\usepackage{selnolig} % disable illegal ligatures
\fi
$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$
$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$
$if(csquotes)$
\usepackage{csquotes}
$endif$
\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}}
\IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available
\urlstyle{$if(urlstyle)$$urlstyle$$else$same$endif$}
$if(links-as-notes)$
% Make links footnotes instead of hotlinks:
\DeclareRobustCommand{\href}[2]{#2\footnote{\url{#1}}}
$endif$
% End of Links
$if(verbatim-in-note)$
\VerbatimFootnotes % allow verbatim text in footnotes
$endif$
\hypersetup{
$if(title-meta)$
pdftitle={$title-meta$},
$endif$
$if(author-meta)$
pdfauthor={$author-meta$},
$endif$
$if(lang)$
pdflang={$lang$},
$endif$
$if(subject)$
pdfsubject={$subject$},
$endif$
$if(keywords)$
pdfkeywords={$for(keywords)$$keywords$$sep$, $endfor$},
$endif$
$if(colorlinks)$
colorlinks=true,
linkcolor={$if(linkcolor)$$linkcolor$$else$Maroon$endif$},
filecolor={$if(filecolor)$$filecolor$$else$Maroon$endif$},
citecolor={$if(citecolor)$$citecolor$$else$Blue$endif$},
urlcolor={$if(urlcolor)$$urlcolor$$else$Blue$endif$},
$else$
$if(boxlinks)$
$else$
hidelinks,
$endif$
$endif$
pdfcreator={LaTeX via pandoc}}
$if(title)$
\title{$title$$if(thanks)$\thanks{$thanks$}$endif$}
$endif$
$if(subtitle)$
$if(beamer)$
$else$
\usepackage{etoolbox}
\makeatletter
\providecommand{\subtitle}[1]{% add subtitle to \maketitle
\apptocmd{\@title}{\par {\large #1 \par}}{}{}
}
\makeatother
$endif$
\subtitle{$subtitle$}
$endif$
\author{$for(author)$$author$$sep$ \and $endfor$}
\date{$date$}
$if(beamer)$
$if(institute)$
\institute{$for(institute)$$institute$$sep$ \and $endfor$}
$endif$
$if(titlegraphic)$
\titlegraphic{\includegraphics{$titlegraphic$}}
$endif$
$if(logo)$
\logo{\includegraphics{$logo$}}
$endif$
$endif$
% OVERRIDES
\newkomavar{opening}
\newkomavar{closing}
\KOMAoptions{fromemail=false}
\KOMAoptions{fromfax=false}
\KOMAoptions{fromlogo=false}
\KOMAoptions{frommobilephone=false}
\KOMAoptions{fromphone=false}
\KOMAoptions{fromurl=false}
\KOMAoptions{fromalign=right}
\setkomavar{opening}{Sehr geehrte Damen und Herren,}
\setkomavar{closing}{Mit freundlichen Grüßen}
\setkomavar*{enclseparator}{Anlagen}
$for(letteroption)$
\LoadLetterOption{$letteroption$}
$endfor$
$if(addresseeimage)$\setkomavar{addresseeimage}{$addresseeimage$}$endif$
$if(backaddress)$\setkomavar{backaddress}{$backaddress$}\KOMAoptions{backaddress=true}$endif$
$if(backaddressseparator)$\setkomavar{backaddressseparator}{$backaddressseparator$}$endif$
$if(ccseparator)$\setkomavar{ccseparator}{$ccseparator$}$endif$
$if(customer)$\setkomavar{customer}{$customer$}$endif$
$if(date)$\setkomavar{date}{$date$}$endif$
$if(emailseparator)$\setkomavar{emailseparator}{$emailseparator$}$endif$
$if(enclseparator)$\setkomavar{enclseparator}{$enclseparator$}$endif$
$if(faxseparator)$\setkomavar{faxseparator}{$faxseparator$}$endif$
$if(firstfoot)$\setkomavar{firstfoot}{$firstfoot$}$endif$
$if(firsthead)$\setkomavar{firsthead}{$firsthead$}$endif$
$if(fromaddress)$\setkomavar{fromaddress}{$fromaddress$}$endif$
$if(frombank)$\setkomavar{frombank}{$frombank$}$endif$
$if(fromemail)$\setkomavar{fromemail}{$fromemail$}\KOMAoptions{fromemail=true}$endif$
$if(fromfax)$\setkomavar{fromfax}{$fromfax$}\KOMAoptions{fromfax=true}$endif$
$if(fromlogo)$\setkomavar{fromlogo}{$fromlogo$}\KOMAoptions{fromlogo=true}$endif$
$if(frommobilephone)$\setkomavar{frommobilephone}{$frommobilephone$}\KOMAoptions{frommobilephone=true}$endif$
$if(fromname)$\setkomavar{fromname}{$fromname$}$endif$
$if(fromphone)$\setkomavar{fromphone}{$fromphone$}\KOMAoptions{fromphone=true}$endif$
$if(fromurl)$\setkomavar{fromurl}{$fromurl$}\KOMAoptions{fromurl=true}$endif$
$if(fromzipcode)$\setkomavar{fromzipcode}{$fromzipcode$}$endif$
$if(invoice)$\setkomavar{invoice}{$invoice$}$endif$
$if(location)$\setkomavar{location}{$location$}$endif$
$if(myref)$\setkomavar{myref}{$myref$}$endif$
$if(nextfoot)$\setkomavar{nextfoot}{$nextfoot$}$endif$
$if(nexthead)$\setkomavar{nexthead}{$nexthead$}$endif$
$if(phoneseparator)$\setkomavar{phoneseparator}{$phoneseparator$}$endif$
$if(place)$\setkomavar{place}{$place$}$endif$
$if(placeseparator)$\setkomavar{placeseparator}{$placeseparator$}$endif$
$if(PPdatamatrix)$\setkomavar{PPdatamatrix}{$PPdatamatrix$}$endif$
$if(PPcode)$\setkomavar{PPcode}{$PPcode$}$endif$
$if(signature)$\setkomavar{signature}{$signature$}\renewcommand*{\raggedsignature}{\raggedright}$endif$
$if(specialmail)$\setkomavar{specialmail}{$specialmail$}$endif$
$if(subject)$\setkomavar{subject}{$subject$}$endif$
$if(subjectseparator)$\setkomavar{placeseparator}{$placeseparator$}$endif$
$if(title)$\setkomavar{title}{$title$}$endif$
$if(toaddress)$\setkomavar{toaddress}{$toaddress$}\KOMAoptions{toaddress=true}$endif$
$if(toname)$\setkomavar{toname}{$toname$}\KOMAoptions{toname=true}$endif$
$if(yourmail)$\setkomavar{yourmail}{$yourmail$}$endif$
$if(yourref)$\setkomavar{yourref}{$yourref$}$endif$
$if(zipcodeseparator)$\setkomavar{zipcodeseparator}{$zipcodeseparator$}$endif$
$if(enclseparator)$\setkomavar{enclseparator}{$enclseparator$}$endif$
$if(fromalign)$\KOMAoptions{fromalign=$fromalign$}$endif$
$if(customername)$\setkomavar*{customer}{$customername$}$endif$
$if(datename)$\setkomavar*{date}{$datename$}$endif$
$if(invoicename)$\setkomavar*{invoice}{$invoicename$}$endif$
$if(myrefname)$\setkomavar*{myref}{$myrefname$}$endif$
$if(yourmailname)$\setkomavar*{yourmail}{$yourmailname$}$endif$
$if(yourrefname)$\setkomavar*{yourref}{$yourrefname$}$endif$
$if(opening)$\setkomavar{opening}{$opening$}$endif$
$if(closing)$\setkomavar{closing}{$closing$}$endif$
$if(enclseparator)$\setkomavar*{enclseparator}{$enclseparator$}$endif$
% END OVERRIDES
\begin{document}
\setkomavar{fromname}{$author$}
\renewcommand*{\raggedsignature}{\raggedright}
\setkomavar{fromaddress}{
$for(return-address)$
$return-address$$sep$\\
$endfor$
}
\setkomavar{fromphone}{$phone$}
\setkomavar{fromemail}{$email$}
\setkomavar{signature}{$author$}
$if(has-frontmatter)$
\frontmatter
$endif$
$if(title)$
$if(beamer)$
\frame{\titlepage}
$else$
\maketitle
$endif$
$if(abstract)$
\begin{abstract}
$abstract$
\end{abstract}
$endif$
$endif$
$if(date)$\setkomavar{date}{$date$}$endif$
\setkomavar{place}{$place$}
$for(include-before)$
$include-before$
$if(subject)$\setkomavar{subject}{$subject$}$endif$
$endfor$
$if(toc)$
$if(toc-title)$
\renewcommand*\contentsname{$toc-title$}
$endif$
$if(beamer)$
\begin{frame}[allowframebreaks]
$if(toc-title)$
\frametitle{$toc-title$}
$endif$
\tableofcontents[hideallsubsections]
\end{frame}
$else$
{
$if(colorlinks)$
\hypersetup{linkcolor=$if(toccolor)$$toccolor$$else$$endif$}
$endif$
\setcounter{tocdepth}{$toc-depth$}
\tableofcontents
}
$endif$
$endif$
$if(lof)$
\listoffigures
$endif$
$if(lot)$
\listoftables
$endif$
$if(linestretch)$
\setstretch{$linestretch$}
$endif$
$if(has-frontmatter)$
\mainmatter
$endif$
\begin{letter}{%
$for(address)$
$address$$sep$\\
$endfor$}
% OVERRIDES
\begin{letter}{%
$to$
}
\opening{\usekomavar{opening}}
% END OVERRIDES
$body$
% OVERRIDES
\closing{\usekomavar{closing}}
$if(ps)$\ps{$ps$}$endif$
$if(encl)$\encl{$encl$}$endif$
% END OVERRIDES
\opening{$opening$}
$if(has-frontmatter)$
\backmatter
$endif$
$if(natbib)$
$if(bibliography)$
$if(biblio-title)$
$if(has-chapters)$
\renewcommand\bibname{$biblio-title$}
$else$
\renewcommand\refname{$biblio-title$}
$endif$
$endif$
$if(beamer)$
\begin{frame}[allowframebreaks]{$biblio-title$}
\bibliographytrue
$endif$
\bibliography{$for(bibliography)$$bibliography$$sep$,$endfor$}
$if(beamer)$
\end{frame}
$endif$
$body$
$endif$
$endif$
$if(biblatex)$
$if(beamer)$
\begin{frame}[allowframebreaks]{$biblio-title$}
\bibliographytrue
\printbibliography[heading=none]
\end{frame}
$else$
\printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$
$endif$
\closing{$closing$}
$endif$
$for(include-after)$
$include-after$
$if(ps)$\ps $ps$$endif$
$if(enclosed)$
\setkomavar*{enclseparator}{Anlage(n)}
\encl{$enclosed$}
$endif$
\end{letter}
\end{document}
$endfor$
% OVERRIDES
$if(cc)$
\cc{$cc$}
$endif$
\end{letter}
% END OVERRIDES
\end{document}