Compare commits
No commits in common. "6f5d5ee378da8af615daf44cb6e835a8658026db" and "f6730e38ceff2f1da1f277b1e7e86c8ff83b885c" have entirely different histories.
6f5d5ee378
...
f6730e38ce
13 changed files with 3301 additions and 27 deletions
14
Makefile
14
Makefile
|
@ -1,14 +1,10 @@
|
||||||
.PHONY: clean all
|
.PHONY: clean
|
||||||
|
|
||||||
all: clean cv resume letter
|
all: resume_*.qmd templates/jb2resume.latex letter.qmd templates/letter.latex
|
||||||
|
poetry run quarto render
|
||||||
|
|
||||||
cv: cv.typ
|
cv: resume_de.qmd resume_en.qmd templates/jb2resume.latex
|
||||||
typst compile --input lang=en cv.typ build/cv_en.pdf
|
poetry run quarto render resume_de.qmd resume_en.qmd
|
||||||
typst compile --input lang=de cv.typ build/cv_de.pdf
|
|
||||||
|
|
||||||
resume: resume.typ
|
|
||||||
typst compile --input lang=en resume.typ build/resume_en.pdf
|
|
||||||
typst compile --input lang=de resume.typ build/resume_de.pdf
|
|
||||||
|
|
||||||
letter: letter.qmd templates/letter.latex
|
letter: letter.qmd templates/letter.latex
|
||||||
poetry run quarto render letter.qmd
|
poetry run quarto render letter.qmd
|
||||||
|
|
15
_quarto.yml
Normal file
15
_quarto.yml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
project:
|
||||||
|
output-dir: _output
|
||||||
|
|
||||||
|
format:
|
||||||
|
html: default
|
||||||
|
pdf:
|
||||||
|
latex-auto-mk: false
|
||||||
|
pdf-engine: tectonic
|
||||||
|
template: templates/jb2resume.latex
|
||||||
|
include-in-header:
|
||||||
|
- text: |
|
||||||
|
\usepackage{xcolor}
|
||||||
|
|
||||||
|
execute:
|
||||||
|
echo: false
|
32
content.yml
32
content.yml
|
@ -180,8 +180,8 @@ experience:
|
||||||
de: 2021
|
de: 2021
|
||||||
en: 2021
|
en: 2021
|
||||||
title:
|
title:
|
||||||
de: Forschungsassistenz, Informelle Organisierung und Absicherung
|
de: Forschungsassistenz, informelle Organisierung und Absicherung
|
||||||
en: Research Assistant, Informal Organization and Social Security
|
en: Research Assistant, informal organization and social security
|
||||||
place:
|
place:
|
||||||
de: Universität Roskilde
|
de: Universität Roskilde
|
||||||
en: Roskilde University
|
en: Roskilde University
|
||||||
|
@ -199,8 +199,8 @@ experience:
|
||||||
de: 2021
|
de: 2021
|
||||||
en: 2021
|
en: 2021
|
||||||
title:
|
title:
|
||||||
de: Redakteur, Soziale Absicherung informeller Arbeiter (SPIWORK)
|
de: Redaktionsassistenz, SPIWORK-Projekt
|
||||||
en: Editorial Assistant, Social Protection of Informal Workers (SPIWORK)
|
en: Editorial Assistant, SPIWORK Project
|
||||||
place:
|
place:
|
||||||
de: Universität Roskilde
|
de: Universität Roskilde
|
||||||
en: Roskilde University
|
en: Roskilde University
|
||||||
|
@ -377,16 +377,6 @@ volunteering:
|
||||||
en: IT and event management services
|
en: IT and event management services
|
||||||
|
|
||||||
skills:
|
skills:
|
||||||
- name:
|
|
||||||
de: Office-Suite
|
|
||||||
en: Office suite
|
|
||||||
items:
|
|
||||||
- de: Excel
|
|
||||||
en: Excel
|
|
||||||
- de: Word
|
|
||||||
en: Word
|
|
||||||
- de: Access
|
|
||||||
en: Access
|
|
||||||
- name:
|
- name:
|
||||||
de: Autorensoftware
|
de: Autorensoftware
|
||||||
en: Authoring software
|
en: Authoring software
|
||||||
|
@ -437,6 +427,16 @@ skills:
|
||||||
en: Jujutsu
|
en: Jujutsu
|
||||||
- de: Fossil
|
- de: Fossil
|
||||||
en: Fossil
|
en: Fossil
|
||||||
|
- name:
|
||||||
|
de: Office-Suite
|
||||||
|
en: Office suite
|
||||||
|
items:
|
||||||
|
- de: Excel
|
||||||
|
en: Excel
|
||||||
|
- de: Word
|
||||||
|
en: Word
|
||||||
|
- de: Access
|
||||||
|
en: Access
|
||||||
- name:
|
- name:
|
||||||
de: Web Content Management
|
de: Web Content Management
|
||||||
en: Web content management
|
en: Web content management
|
||||||
|
@ -447,8 +447,8 @@ skills:
|
||||||
en: Hugo
|
en: Hugo
|
||||||
- de: Flask
|
- de: Flask
|
||||||
en: Flask
|
en: Flask
|
||||||
# - de: Astro
|
- de: Astro
|
||||||
# en: Astro
|
en: Astro
|
||||||
- de: HTML
|
- de: HTML
|
||||||
en: HTML
|
en: HTML
|
||||||
- de: CSS
|
- de: CSS
|
||||||
|
|
2295
poetry.lock
generated
Normal file
2295
poetry.lock
generated
Normal file
File diff suppressed because it is too large
Load diff
0
processing/__init__.py
Normal file
0
processing/__init__.py
Normal file
92
processing/content.py
Normal file
92
processing/content.py
Normal file
|
@ -0,0 +1,92 @@
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
|
def summary_to_md(data: dict[str, Any], lang: str = "en", headline: str = ""):
|
||||||
|
if "summary" not in data:
|
||||||
|
return ""
|
||||||
|
md = f"{headline}\n\n {data['summary'][lang]}\n\n"
|
||||||
|
|
||||||
|
return md
|
||||||
|
|
||||||
|
|
||||||
|
def _publication_md(publication: str, subdued: bool):
|
||||||
|
md = "> "
|
||||||
|
if subdued:
|
||||||
|
md += "\\textcolor{publication}{"
|
||||||
|
md += publication
|
||||||
|
if subdued:
|
||||||
|
md += "}"
|
||||||
|
return f"{md}\n\n"
|
||||||
|
|
||||||
|
|
||||||
|
def experience_to_md(
|
||||||
|
data: dict[str, Any],
|
||||||
|
lang: str = "en",
|
||||||
|
headline: str = "",
|
||||||
|
subdued_publications: bool = True, # slightly off-color presentation
|
||||||
|
bulletpoints_show: bool = True, # display detailed bulletpoints per job
|
||||||
|
):
|
||||||
|
if "experience" not in data:
|
||||||
|
return ""
|
||||||
|
|
||||||
|
md = f"{headline}\n\n"
|
||||||
|
md += "\\definecolor{publication}{rgb}{0.5,0.5,0.5}\n\n"
|
||||||
|
for exp in data["experience"]:
|
||||||
|
client = exp["client"][lang] if "client" in exp else ""
|
||||||
|
title = exp["title"][lang] if "title" in exp else ""
|
||||||
|
md += (
|
||||||
|
# new python 3.12 f-string embedding niceness
|
||||||
|
f"## {title}{f", {client}" if client else ""}\\hfill{exp['date'][lang]}\n\n"
|
||||||
|
)
|
||||||
|
|
||||||
|
if "publication" in exp:
|
||||||
|
md += _publication_md(exp["publication"][lang], subdued_publications)
|
||||||
|
|
||||||
|
if bulletpoints_show:
|
||||||
|
for point in exp["bullets"]:
|
||||||
|
md += f"* {point[lang]}\n"
|
||||||
|
md += "\n\n"
|
||||||
|
|
||||||
|
return md
|
||||||
|
|
||||||
|
|
||||||
|
def thesis_to_md(data: dict[str, Any], lang: str = "en"):
|
||||||
|
md = ""
|
||||||
|
for thesis in data["thesis"]:
|
||||||
|
md += f"{thesis['type'][lang]}\n"
|
||||||
|
md += f": {thesis['title'][lang]}\n"
|
||||||
|
md += f": {thesis['abstract'][lang]}\n"
|
||||||
|
return f"{md}\n"
|
||||||
|
|
||||||
|
|
||||||
|
def education_to_md(
|
||||||
|
data: dict[str, Any], lang: str = "en", headline: str = "", thesis: bool = True
|
||||||
|
):
|
||||||
|
if "education" not in data:
|
||||||
|
return ""
|
||||||
|
|
||||||
|
md = f"{headline}\n\n"
|
||||||
|
|
||||||
|
if thesis and "thesis" in data:
|
||||||
|
md += thesis_to_md(data, lang)
|
||||||
|
|
||||||
|
for edu in data["education"]:
|
||||||
|
md += (
|
||||||
|
f"{edu['place'][lang]}\n\n: {edu['program'][lang]}; {edu['date'][lang]}\n\n"
|
||||||
|
)
|
||||||
|
|
||||||
|
return md
|
||||||
|
|
||||||
|
|
||||||
|
def qualifications_to_md(data: dict[str, Any], lang: str = "en", headline: str = ""):
|
||||||
|
if "skills" not in data:
|
||||||
|
return ""
|
||||||
|
|
||||||
|
md = f"{headline}\n\n"
|
||||||
|
for skillset in data["skills"]:
|
||||||
|
md += f"{skillset[lang]}\n\n"
|
||||||
|
for content in skillset["content"]:
|
||||||
|
md += f": {content['name'][lang]} ({', '.join([item[lang] for item in content['items']])})\n"
|
||||||
|
md += "\n"
|
||||||
|
|
||||||
|
return md
|
9
processing/yml.py
Normal file
9
processing/yml.py
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
import yaml
|
||||||
|
|
||||||
|
DEFAULT_FILE = "content.yml"
|
||||||
|
|
||||||
|
|
||||||
|
def parse(fname: str = DEFAULT_FILE):
|
||||||
|
with open(fname, mode="rb") as f:
|
||||||
|
return yaml.safe_load(f)
|
||||||
|
|
22
pyproject.toml
Normal file
22
pyproject.toml
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
[tool.poetry]
|
||||||
|
name = "resume"
|
||||||
|
version = "0.1.0"
|
||||||
|
description = "My personal curriculum vitae"
|
||||||
|
authors = ["Marty Oehme <marty.oehme@gmail.com>"]
|
||||||
|
license = "GPLv3"
|
||||||
|
packages = [
|
||||||
|
{ include = "processing"}
|
||||||
|
]
|
||||||
|
|
||||||
|
[tool.poetry.dependencies]
|
||||||
|
python = "^3.11"
|
||||||
|
PyYAML = "^6.0"
|
||||||
|
jupyter = "^1.0.0"
|
||||||
|
|
||||||
|
[tool.poetry.group.dev.dependencies]
|
||||||
|
pynvim = "^0.4.3"
|
||||||
|
pyperclip = "^1.8.2"
|
||||||
|
|
||||||
|
[build-system]
|
||||||
|
requires = ["poetry-core"]
|
||||||
|
build-backend = "poetry.core.masonry.api"
|
|
@ -271,7 +271,7 @@
|
||||||
}),
|
}),
|
||||||
align(right, block(fill: luma(250), width: 90%,
|
align(right, block(fill: luma(250), width: 90%,
|
||||||
{
|
{
|
||||||
v(15pt)
|
v(20pt)
|
||||||
set block(inset: (left: 20 * margin, right: 20 * margin))
|
set block(inset: (left: 20 * margin, right: 20 * margin))
|
||||||
show heading: it => align(right, upper(it))
|
show heading: it => align(right, upper(it))
|
||||||
set list(marker: "")
|
set list(marker: "")
|
||||||
|
@ -280,7 +280,6 @@
|
||||||
align(right, block(it))
|
align(right, block(it))
|
||||||
}
|
}
|
||||||
sidebar
|
sidebar
|
||||||
v(15pt)
|
|
||||||
}))
|
}))
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
47
resume_de.qmd
Normal file
47
resume_de.qmd
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
---
|
||||||
|
title: Lebenslauf
|
||||||
|
subtitle: Marty Oehme
|
||||||
|
name: Marty Oehme
|
||||||
|
lang: de
|
||||||
|
left-column:
|
||||||
|
- "Email: [marty.oehme@gmail.com](mailto:marty.oehme@gmail.com)"
|
||||||
|
- "Telefon: +49 177 377 4949"
|
||||||
|
right-column:
|
||||||
|
- "Homepage: [http://martyoeh.me/](http://martyoeh.me/)"
|
||||||
|
- "GitHub: [https://github.com/marty-oehme/](https://github.com/marty-oehme/)"
|
||||||
|
- 'Stand: \today'
|
||||||
|
---
|
||||||
|
|
||||||
|
```{python}
|
||||||
|
from processing import yml, content
|
||||||
|
from IPython.display import Markdown
|
||||||
|
|
||||||
|
data = yml.parse("content.yml")
|
||||||
|
lang = "de"
|
||||||
|
```
|
||||||
|
|
||||||
|
```{python}
|
||||||
|
#| label: summary
|
||||||
|
display(Markdown(content.summary_to_md(data, headline="# Zusammenfassung", lang=lang)))
|
||||||
|
```
|
||||||
|
|
||||||
|
```{python}
|
||||||
|
#| label: prof experience
|
||||||
|
display(
|
||||||
|
Markdown(content.experience_to_md(data, headline="# Berufserfahrung", lang=lang))
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
```{python}
|
||||||
|
#| label: education
|
||||||
|
display(Markdown(content.education_to_md(data, headline="# Ausbildung", lang=lang)))
|
||||||
|
```
|
||||||
|
|
||||||
|
```{python}
|
||||||
|
#| label: qualifications
|
||||||
|
display(
|
||||||
|
Markdown(
|
||||||
|
content.qualifications_to_md(data, headline="# Qualifikationen", lang=lang)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
```
|
51
resume_en.qmd
Normal file
51
resume_en.qmd
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
---
|
||||||
|
title: Curriculum Vitae
|
||||||
|
subtitle: Marty Oehme
|
||||||
|
name: Marty Oehme
|
||||||
|
lang: en
|
||||||
|
left-column:
|
||||||
|
- "Email: [marty.oehme@gmail.com](mailto:marty.oehme@gmail.com)"
|
||||||
|
- "Mobile: +49 177 377 4949"
|
||||||
|
right-column:
|
||||||
|
- "Homepage: [http://martyoeh.me/](http://martyoeh.me/)"
|
||||||
|
- "GitHub: [https://github.com/marty-oehme/](https://github.com/marty-oehme/)"
|
||||||
|
- 'Last Updated: \today'
|
||||||
|
---
|
||||||
|
|
||||||
|
```{python}
|
||||||
|
from processing import yml, content
|
||||||
|
from IPython.display import Markdown
|
||||||
|
|
||||||
|
data = yml.parse("content.yml")
|
||||||
|
lang = "en"
|
||||||
|
```
|
||||||
|
|
||||||
|
```{python}
|
||||||
|
#| label: summary
|
||||||
|
display(Markdown(content.summary_to_md(data, headline="# Summary", lang=lang)))
|
||||||
|
```
|
||||||
|
|
||||||
|
```{python}
|
||||||
|
#| label: prof experience
|
||||||
|
display(
|
||||||
|
Markdown(
|
||||||
|
content.experience_to_md(
|
||||||
|
data,
|
||||||
|
headline="# Professional experience",
|
||||||
|
lang=lang,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
```{python}
|
||||||
|
#| label: education
|
||||||
|
display(Markdown(content.education_to_md(data, headline="# Education", lang=lang)))
|
||||||
|
```
|
||||||
|
|
||||||
|
```{python}
|
||||||
|
#| label: qualifications
|
||||||
|
display(
|
||||||
|
Markdown(content.qualifications_to_md(data, headline="# Qualifications", lang=lang))
|
||||||
|
)
|
||||||
|
```
|
103
templates/jb2resume.latex
Normal file
103
templates/jb2resume.latex
Normal file
|
@ -0,0 +1,103 @@
|
||||||
|
% LaTeX Resume Pandoc Template jb2resume.latex
|
||||||
|
%
|
||||||
|
% Copyright (c) 2016-2017, John Bokma
|
||||||
|
% Based on Jason Blevins' LaTeX CV Template;
|
||||||
|
% http://jblevins.org/projects/cv-template/
|
||||||
|
%
|
||||||
|
% GitHub: https://github.com/john-bokma/resume-pandoc
|
||||||
|
|
||||||
|
\documentclass[$if(fontsize)$$fontsize$$else$10pt$endif$,letterpaper]{article}
|
||||||
|
|
||||||
|
\usepackage{hyperref}
|
||||||
|
\usepackage{geometry}
|
||||||
|
\usepackage{enumitem}
|
||||||
|
\usepackage{underscore}
|
||||||
|
\usepackage[parfill]{parskip}
|
||||||
|
\usepackage{lmodern}
|
||||||
|
\usepackage[svgnames]{xcolor}
|
||||||
|
\usepackage[utf8]{inputenc}
|
||||||
|
|
||||||
|
% Your name on the resume
|
||||||
|
\def\name{$name$}
|
||||||
|
|
||||||
|
% The following metadata will show up in the PDF properties
|
||||||
|
\hypersetup{
|
||||||
|
colorlinks = true,
|
||||||
|
urlcolor=$if(urlcolor)$$urlcolor$$else$blue$endif$,
|
||||||
|
linkcolor=$if(linkcolor)$$linkcolor$$else$magenta$endif$,
|
||||||
|
pdfauthor = {\name},
|
||||||
|
pdfkeywords = {$keywords$},
|
||||||
|
pdftitle = {\name: Curriculum Vitae},
|
||||||
|
pdfsubject = {Curriculum Vitae},
|
||||||
|
pdfpagemode = UseNone
|
||||||
|
}
|
||||||
|
|
||||||
|
\geometry{
|
||||||
|
left=0.5in,
|
||||||
|
top=0.5in,
|
||||||
|
right=0.5in,
|
||||||
|
}
|
||||||
|
\renewcommand{\baselinestretch}{1}
|
||||||
|
|
||||||
|
% Fix for "! Undefined control sequence. <recently read> \tightlist",
|
||||||
|
% see: https://github.com/osener/markup.rocks/issues/4
|
||||||
|
% I have this issue with Pandoc 1.17.2
|
||||||
|
\providecommand{\tightlist}{%
|
||||||
|
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
|
||||||
|
|
||||||
|
% Page number is top right, and it is possible to control the rest of
|
||||||
|
% the header.
|
||||||
|
\pagestyle{myheadings}
|
||||||
|
\markright{\name}
|
||||||
|
\thispagestyle{empty}
|
||||||
|
|
||||||
|
% Custom section fonts
|
||||||
|
\usepackage{sectsty}
|
||||||
|
$if(section-color)$
|
||||||
|
\sectionfont{\color{$section-color$}\sffamily\bfseries\Large}
|
||||||
|
$else$
|
||||||
|
\sectionfont{\rmfamily\mdseries\Large}
|
||||||
|
$endif$
|
||||||
|
\subsectionfont{\rmfamily\mdseries\itshape\large}
|
||||||
|
|
||||||
|
% Section numbers or not (default)
|
||||||
|
$if(numbersections)$
|
||||||
|
\setcounter{secnumdepth}{5}
|
||||||
|
$else$
|
||||||
|
\setcounter{secnumdepth}{0}
|
||||||
|
$endif$
|
||||||
|
|
||||||
|
% By putting an empty \item[] at the start of the list, the list
|
||||||
|
% starts on a new line.
|
||||||
|
\setlist[itemize]{leftmargin=1em,label={--},before=\item[]}
|
||||||
|
|
||||||
|
\setlist[description]{leftmargin=0em, style=sameline}
|
||||||
|
|
||||||
|
% Don't use monospace font for URLs
|
||||||
|
\urlstyle{same}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
% Place name at left
|
||||||
|
$if(name-color)$
|
||||||
|
{\huge\color{$name-color$}\sffamily\bfseries \name}
|
||||||
|
$else$
|
||||||
|
{\huge \name}
|
||||||
|
$endif$
|
||||||
|
|
||||||
|
\bigskip
|
||||||
|
|
||||||
|
$if(left-column)$
|
||||||
|
\begin{minipage}[t]{0.495\textwidth}
|
||||||
|
$for(left-column)$$left-column$$sep$ \\ $endfor$
|
||||||
|
\end{minipage} % Don't use empty lines after \end and the next \begin{minipage}.
|
||||||
|
$endif$
|
||||||
|
$if(right-column)$
|
||||||
|
\begin{minipage}[t]{0.495\textwidth}
|
||||||
|
$for(right-column)$$right-column$$sep$ \\ $endfor$
|
||||||
|
\end{minipage}
|
||||||
|
$endif$
|
||||||
|
|
||||||
|
$body$
|
||||||
|
|
||||||
|
\end{document}
|
645
templates/letter.latex
Normal file
645
templates/letter.latex
Normal file
|
@ -0,0 +1,645 @@
|
||||||
|
%
|
||||||
|
% Options for packages loaded elsewhere
|
||||||
|
%
|
||||||
|
% taken with gratitude from:
|
||||||
|
% https://github.com/benedictdudel/pandoc-letter-din5008
|
||||||
|
%
|
||||||
|
\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(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}
|
||||||
|
$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$
|
||||||
|
$-- 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)$
|
||||||
|
\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$}
|
||||||
|
$endif$
|
||||||
|
$if(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
|
||||||
|
\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(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}}
|
||||||
|
$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$
|
||||||
|
$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}
|
||||||
|
$if(has-frontmatter)$
|
||||||
|
\frontmatter
|
||||||
|
$endif$
|
||||||
|
$if(title)$
|
||||||
|
$if(beamer)$
|
||||||
|
\frame{\titlepage}
|
||||||
|
$else$
|
||||||
|
\maketitle
|
||||||
|
$endif$
|
||||||
|
$if(abstract)$
|
||||||
|
\begin{abstract}
|
||||||
|
$abstract$
|
||||||
|
\end{abstract}
|
||||||
|
$endif$
|
||||||
|
$endif$
|
||||||
|
|
||||||
|
$for(include-before)$
|
||||||
|
$include-before$
|
||||||
|
|
||||||
|
$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$
|
||||||
|
|
||||||
|
% OVERRIDES
|
||||||
|
\begin{letter}{%
|
||||||
|
$sendto$
|
||||||
|
}
|
||||||
|
\opening{\usekomavar{opening}}
|
||||||
|
% END OVERRIDES
|
||||||
|
$body$
|
||||||
|
% OVERRIDES
|
||||||
|
\closing{\usekomavar{closing}}
|
||||||
|
$if(ps)$\ps{$ps$}$endif$
|
||||||
|
$if(encl)$\encl{$encl$}$endif$
|
||||||
|
% END OVERRIDES
|
||||||
|
|
||||||
|
$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$
|
||||||
|
|
||||||
|
$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$
|
||||||
|
|
||||||
|
$endif$
|
||||||
|
$for(include-after)$
|
||||||
|
$include-after$
|
||||||
|
|
||||||
|
$endfor$
|
||||||
|
% OVERRIDES
|
||||||
|
$if(cc)$
|
||||||
|
\cc{$cc$}
|
||||||
|
$endif$
|
||||||
|
\end{letter}
|
||||||
|
% END OVERRIDES
|
||||||
|
\end{document}
|
Loading…
Reference in a new issue