Compare commits
44 commits
main
...
2025-02-05
Author | SHA1 | Date | |
---|---|---|---|
948510fb13 | |||
b333e2f2db | |||
dd482390a2 | |||
bbde91c97e | |||
ca33cb142f | |||
35ef95331d | |||
7eee35dcfc | |||
cfaba8e954 | |||
ddf5f0d9bd | |||
8788c0a647 | |||
c36a5cde83 | |||
0beef3934b | |||
18df7051e7 | |||
64dffb43d6 | |||
cfa3e8a625 | |||
03acad7a44 | |||
a81276f89b | |||
484ea7512e | |||
1ea7afdaa5 | |||
9d4c195ce9 | |||
6f5d5ee378 | |||
4b63eed9e4 | |||
3181a18b8c | |||
c0678dbdf3 | |||
f6730e38ce | |||
7a503d61fb | |||
f19fd2540c | |||
097cd1263d | |||
5df8458b72 | |||
43549c1f53 | |||
e53d5ca386 | |||
d518eb9087 | |||
25d9e7ce13 | |||
698ef628b2 | |||
656c3e37d3 | |||
28b63a6f17 | |||
372dee59cc | |||
a345d36611 | |||
bdf8abfe95 | |||
50c2900b04 | |||
0ed2aa801c | |||
318ea11ac6 | |||
ed31e70a13 | |||
844f582aae |
17 changed files with 839 additions and 3545 deletions
23
Makefile
23
Makefile
|
@ -1,13 +1,22 @@
|
|||
.PHONY: clean
|
||||
.PHONY: clean all
|
||||
|
||||
all: resume_*.qmd templates/jb2resume.latex letter.qmd templates/letter.latex
|
||||
poetry run quarto render
|
||||
all: clean cv resume letter
|
||||
|
||||
cv: resume_de.qmd resume_en.qmd templates/jb2resume.latex
|
||||
poetry run quarto render resume_de.qmd resume_en.qmd
|
||||
|
||||
letter: letter.qmd templates/letter.latex
|
||||
poetry run quarto render letter.qmd
|
||||
cv: cv.typ
|
||||
mkdir -p build
|
||||
typst compile --input lang=en cv.typ build/cv_en.pdf
|
||||
typst compile --input lang=de cv.typ build/cv_de.pdf
|
||||
|
||||
resume: resume.typ
|
||||
mkdir -p build
|
||||
typst compile --input lang=en resume.typ build/resume_en.pdf
|
||||
typst compile --input lang=de resume.typ build/resume_de.pdf
|
||||
|
||||
letter: letter.typ
|
||||
mkdir -p build
|
||||
typst compile --input lang=en letter.typ build/letter_en.pdf
|
||||
typst compile --input lang=de letter.typ build/letter_de.pdf
|
||||
|
||||
clean:
|
||||
rm -f *CV.aux *CV.bcf *CV.log *CV.out *CV.run.xml *CV.pdf short_CV.tex long_CV.tex *CV.bbl *CV.blg *yaml_CV.md
|
||||
|
|
45
README.md
Normal file
45
README.md
Normal file
|
@ -0,0 +1,45 @@
|
|||
# Data-driven CV & resume
|
||||
|
||||
My personal CV and resume files, automatically generated from a multi-lingual
|
||||
yaml data file.
|
||||
|
||||
The CV contains a full run-down of my educational and job experience to date,
|
||||
while the resume is more compact, reduced to a single page
|
||||
and can be tailored for a specific job area or expertise.
|
||||
|
||||
Is called like the following:
|
||||
|
||||
```typst
|
||||
#resume(
|
||||
yaml("content.yml"),
|
||||
main: ("experience", "education", "volunteering", "skills", "languages"),
|
||||
sidebar: ("volunteering", "skills")
|
||||
)
|
||||
```
|
||||
|
||||
This is the default invocation, though sidebar and main body sections can be exchanged at will.
|
||||
|
||||
TODO:
|
||||
|
||||
- [x] move double-resume sources (per langauge) to a variable or similar
|
||||
- [x] separate volunteering from skills section
|
||||
- [_] one function per skill section
|
||||
- [_] resume prep:
|
||||
- [ ] make experience groupable by client / short version
|
||||
- [ ] enable display/hiding of sections/entries by tags?
|
||||
|
||||
- [x] migrate to typst template?
|
||||
- [x] ! Fix german summary to be like English summary
|
||||
- [_] generalized entry?
|
||||
Would have 'title', 'place', 'date', 'type'/'tags' + potential
|
||||
'publication', 'bullets'
|
||||
|
||||
## Typst-driven branch
|
||||
|
||||
- [x] Fix publication '\&'s
|
||||
- [x] Fix en-dash/em-dash (e.g. in years)
|
||||
- [x] Producable from yaml content
|
||||
- [x] Can be switched between Ger/En
|
||||
- [x] Try sidebar version
|
||||
- [ ] Generalize sidebar version through abstraction/extractions
|
||||
- [ ] unify items: experience/education/(thesis?)
|
15
_quarto.yml
15
_quarto.yml
|
@ -1,15 +0,0 @@
|
|||
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
|
487
content.yml
487
content.yml
|
@ -1,45 +1,57 @@
|
|||
about:
|
||||
fullname: Marty Oehme
|
||||
contact:
|
||||
- text: Pichelsdorfer Str. 133, 13595 Berlin, Germany
|
||||
icon:
|
||||
- text: contact@martyoeh.me
|
||||
icon:
|
||||
link: mailto:contact@martyoeh.me
|
||||
- text: +49 177 377 4949
|
||||
icon:
|
||||
link: tel:+491773774949
|
||||
- text: martyoeh.me
|
||||
icon:
|
||||
link: https://martyoeh.me
|
||||
- text: github.com/marty-oehme
|
||||
icon:
|
||||
link: https://github.com/marty-oehme
|
||||
|
||||
summary:
|
||||
de: |
|
||||
Ich habe im September 2021 das EU-geförderte European Master of Global Studies Studienprogramm absolviert,
|
||||
mit dem Schwerpunkt globale Prozesse der Raumaneignung, Nationenbildung und narrativer Ideologien.
|
||||
Seit dem Abschluss des EU-geförderten European Master of Global Studies Erasmus Mundus Programms im Jahr 2021 habe ich als selbstständiger Forschungsberater gearbeitet und mich auf Prozesse der Ungleichheit und der Armutsreduktion, sowie deren räumliche Dimensionierung und kollektive Organisation konzentriert, hauptsächlich betrachtet durch das Prisma der Arbeitsmarktpolitik.
|
||||
|
||||
Seitdem habe ich die Produktion verschiedener Entwicklungs-Forschungsliteratur unterstützt,
|
||||
mit einem Fokus auf Arbeitsmarktpolitiken, ihren Auswirkungen auf Armut und kollektive Organisation,
|
||||
sowie multi-dimensionaler Ungleichheitsreduktion.
|
||||
|
||||
Ich besitze ein breites Spektrum an Fähigkeiten in Datenerfassung, -organisation und -analyse,
|
||||
Manuskriptbearbeitung und Literaturverwaltung,
|
||||
und konnte erste Einblicke in Veranstaltungsmanagement, Lehrassistenz, Website-verwaltung und -inhaltserstellung gewinnen.
|
||||
Der Rahmen meiner akademischen Arbeit erstreckt sich über Entwicklungsstudien, sozialen Schutz, Öko-Tourismus, und Arbeitsmarktstudien.
|
||||
|
||||
Abseits meiner professionellen Tätigkeiten interessiere ich mich für,
|
||||
und befürworte aktiv,
|
||||
die Produktion von freier und offener Software sowie
|
||||
die Schaffung von Bedingungen für eine offene und barrierefreie Wissensproduktion.
|
||||
Durch die Erstellung der entwickelnden Forschungsliteratur habe ich ein breites Spektrum an Fähigkeiten im Bereich der Datenerfassung, Organisation und Visualisierung entwickelt, sowie Erfahrungen in Manuskriptbearbeitung und Referenzmanagement erworben. Zusätzlich habe ich Einblicke in Event Management, Lehrassistentenarbeit, Content Creation, Systemadministration und Website-Management gewonnen. Jenseits meines beruflichen Engagements fördere ich den Aufbau freier und offener Software und Offener Wissenschaft ohne Barrieren.
|
||||
|
||||
Ich bin offen für Gelegenheiten, die meine Expertise in diesen Bereichen vertiefen, jedoch auch für solche, die meine Kenntnisbereiche erweitern.
|
||||
en: |
|
||||
I graduated from the EU-funded European Master of Global Studies programme in September 2021
|
||||
with a focus on global processes of spatialization, nation-building and narrative ideologies.
|
||||
Since completing the EU-funded European Master of Global Studies Erasmus Mundus programme in 2021, I have acted as a research consultant focused on processes of inequality and poverty reduction, spatialization and collective organization, primarily through the lens of labour market policies.
|
||||
|
||||
Since then I helped produce a variety of development research literature,
|
||||
with a focus on labor market policies, their effects on poverty and collective organization, and multi-dimensional inequality reduction.
|
||||
Through producing the development research literature I have developed a broad range of skills in data acquisition, organization and visualization, as well as manuscript editing and reference management. Additionally, I have gained insights into event management, teaching assistance, content creation, system and web administration. Beyond professional work I strive to foster the development of free and open software and open science without barriers.
|
||||
|
||||
I have developed a broad range of skills in data acquisition, organization and analysis,
|
||||
manuscript editing and reference management,
|
||||
as well as first insights into event management, teaching assistance, content creation and website management.
|
||||
The range of my academic work has spanned development studies, tourism studies, social protection, American studies and security studies.
|
||||
I welcome opportunities to advance my expertise in these topics, in addition to those expanding my range of applicable skills.
|
||||
|
||||
Aside from academic work I am interested in and an active proponent
|
||||
of free and open software production and
|
||||
creating the conditions for an open and barrier-free science production.
|
||||
experience_types:
|
||||
1:
|
||||
de: Selbstständiger Schriftsteller Forschung
|
||||
en: Independent research consultant
|
||||
2:
|
||||
de: Honorararbeit
|
||||
en: Salaried work
|
||||
3:
|
||||
de: Gewerbeschein
|
||||
en: Trade license
|
||||
|
||||
experience:
|
||||
- date:
|
||||
- typeid: 1
|
||||
date:
|
||||
de: 2024
|
||||
en: 2024
|
||||
title:
|
||||
de: Co-Autor, Formalisierung und sozialer Schutz, World Development
|
||||
en: Co-Author, Formalization and social protection, World Development
|
||||
de: Co-Autor, Formalisierung und sozialer Schutz
|
||||
en: Co-Author, Formalization and social protection
|
||||
place:
|
||||
de: World Development
|
||||
en: World Development
|
||||
publication:
|
||||
de: 'Torm, N., \& Oehme, M. (2024). Social protection and formalization in low-and middle-income countries: A scoping review of the literature. World Development, 181.'
|
||||
en: 'Torm, N., \& Oehme, M. (2024). Social protection and formalization in low-and middle-income countries: A scoping review of the literature. World Development, 181.'
|
||||
|
@ -53,12 +65,13 @@ experience:
|
|||
- date:
|
||||
de: 2023--2024
|
||||
en: 2023--2024
|
||||
client:
|
||||
de: ILO
|
||||
en: ILO
|
||||
typeid: 1
|
||||
title:
|
||||
de: Externer Forscher, Ungleichheiten auf dem Arbeitsmarkt
|
||||
en: External researcher, Inequalities on the Labour market
|
||||
en: External researcher, Inequalities on the labour market
|
||||
place:
|
||||
de: ILO
|
||||
en: ILO
|
||||
publication:
|
||||
de: ILO (angenommen). Addressing Inequalities in the World of Work.
|
||||
en: ILO (forthcoming). Addressing Inequalities in the World of Work.
|
||||
|
@ -72,9 +85,13 @@ experience:
|
|||
- date:
|
||||
de: 2023
|
||||
en: 2023
|
||||
typeid: 1
|
||||
title:
|
||||
de: Consultant, Forschungsarbeit für nachhaltige Beschaffung in internationaler Logistik, Refinter Consulting
|
||||
en: Consultant, Research on sustainable procurement in international logistics, Refinter Consulting
|
||||
de: Consultant, Forschungsarbeit für nachhaltige Beschaffung in internationaler Logistik
|
||||
en: Consultant, Research on sustainable procurement in international logistics
|
||||
place:
|
||||
en: Refinter Consulting
|
||||
de: Refinter Consulting
|
||||
bullets:
|
||||
- de: Qualitative Gegenüberstellung verschiedener Forschungsperspektiven im Lieferkettenmanagement
|
||||
en: Qualitative comparison of various research strands within supply chain management
|
||||
|
@ -85,12 +102,34 @@ experience:
|
|||
- date:
|
||||
de: 2022
|
||||
en: 2022
|
||||
client:
|
||||
de: Universität Roskilde
|
||||
en: Roskilde University
|
||||
typeid: 1
|
||||
title:
|
||||
de: Forschungsassistenz, Entwicklungsprojekte zur Reduzierung Ungleichheitstrends
|
||||
en: Research Assistant, Development projects to reduce inequality trends
|
||||
place:
|
||||
de: UNU-WIDER
|
||||
en: UNU-WIDER
|
||||
publication:
|
||||
de: Niño-Zarazúa, M., \& Morabito, C. (angenommen). Assessing the potential distributional impacts of development interventions. UNU-WIDER.
|
||||
en: Niño-Zarazúa, M., \& Morabito, C. (forthcoming). Assessing the potential distributional impacts of development interventions. UNU-WIDER.
|
||||
bullets: # TODO: add numerical description of quantity of data (>2mil. datapoints)
|
||||
- de: Sammlung, Verarbeitung und Bereinigung von 4 quantitativen Datensätzen, u.a. der UN Ungleichheitstrends
|
||||
en: Collected, processed, and cleaned 4 datasets, including UN World inequality trends
|
||||
- de: Durchführen einer beschreibenden Analyse von Ungleichheitstrends und -treibern in 4 Ländern
|
||||
en: Conducted descriptive analysis of inequality trends and drivers in 4 countries
|
||||
- de: Erstellen visueller Abbildungen der Daten und beschreibender Analysen der Entwicklungshilfen und ihrer Verteilung
|
||||
en: Produced basic time-series visualizations and descriptive analysis of development aid contributions and their distribution
|
||||
link: https://www.afd.fr/en/carte-des-projets/distributional-impact-development-cooperation-projects
|
||||
- date:
|
||||
de: 2022
|
||||
en: 2022
|
||||
typeid: 1
|
||||
title:
|
||||
de: Consultant, Datenbankforschung internationale Hilfsgelder
|
||||
en: Consultant, Database research international aid funds
|
||||
place:
|
||||
de: Universität Roskilde
|
||||
en: Roskilde University
|
||||
bullets:
|
||||
- de: Präsentation zu Einblick in digitaler Forschung in Datenbanken und Kodierungssystemen
|
||||
en: Presentation of introduction to digital research in databases and coding systems
|
||||
|
@ -101,12 +140,13 @@ experience:
|
|||
- date:
|
||||
de: 2022
|
||||
en: 2022
|
||||
client:
|
||||
de: Universität Roskilde
|
||||
en: Roskilde University
|
||||
typeid: 1
|
||||
title:
|
||||
de: Redaktionsarbeit, Soziale Absicherung und Widerstandsfähigkeit
|
||||
en: Editorial work, Social Protection and Resilience, Roskilde University
|
||||
place:
|
||||
de: Universität Roskilde
|
||||
en: Roskilde University
|
||||
publication:
|
||||
de: 'Torm, N., Gundertofte, C. M., \& Thur, G. E. (2022). Social Protection and Resilience during COVID-19: An Interdisciplinary Analysis of the Role of Informal Worker Associations in Kenya. Roskilde Universitet. SECO Working Paper Series Vol. 2022 No. 6.'
|
||||
en: 'Torm, N., Gundertofte, C. M., \& Thur, G. E. (2022). Social Protection and Resilience during COVID-19: An Interdisciplinary Analysis of the Role of Informal Worker Associations in Kenya. Roskilde Universitet. SECO Working Paper Series Vol. 2022 No. 6.'
|
||||
|
@ -120,32 +160,13 @@ experience:
|
|||
- date:
|
||||
de: 2022
|
||||
en: 2022
|
||||
client:
|
||||
de: UNU-WIDER
|
||||
en: UNU-WIDER
|
||||
title:
|
||||
de: Forschungsassistenz, Entwicklungsprojekte zur Reduzierung Ungleichheitstrends
|
||||
en: Research Assistant, Development projects to reduce inequality trends
|
||||
publication:
|
||||
de: Niño-Zarazúa, M., \& Morabito, C. (angenommen). Assessing the potential distributional impacts of development interventions. UNU-WIDER.
|
||||
en: Niño-Zarazúa, M., \& Morabito, C. (forthcoming). Assessing the potential distributional impacts of development interventions. UNU-WIDER.
|
||||
bullets:
|
||||
- de: Sammlung, Verarbeitung und Bereinigung von 4 quantitativen Datensätzen, u.a. der UN Ungleichheitstrends
|
||||
en: Collected, processed, and cleaned 4 datasets, including UN World inequality trends
|
||||
- de: Durchführen einer beschreibenden Analyse von Ungleichheitstrends und -treibern in 4 Ländern
|
||||
en: Conducted descriptive analysis of inequality trends and drivers in 4 countries
|
||||
- de: Erstellen visueller Abbildungen der Daten und beschreibender Analysen der Entwicklungshilfen und ihrer Verteilung
|
||||
en: Produced basic time-series visualizations and descriptive analysis of development aid contributions and their distribution
|
||||
link: https://www.afd.fr/en/carte-des-projets/distributional-impact-development-cooperation-projects
|
||||
- date:
|
||||
de: 2022
|
||||
en: 2022
|
||||
client:
|
||||
de: ILO
|
||||
en: ILO
|
||||
typeid: 1
|
||||
title:
|
||||
de: Consultant, Review Verknüpfung sozialer Schutz, Produktivität und Formalisierung
|
||||
en: Consultant, Social Protection, Productivity and Formalization Nexus Review
|
||||
place:
|
||||
de: ILO
|
||||
en: ILO
|
||||
publication:
|
||||
de: "Torm, N. (forthcoming). The Social Protection, Productivity and Formalization Nexus among low- and middle- income countries: A Scoping Review of the Literature. International Labour Office."
|
||||
en: "Torm, N. (forthcoming). The Social Protection, Productivity and Formalization Nexus among low- and middle- income countries: A Scoping Review of the Literature. International Labour Office."
|
||||
|
@ -159,12 +180,13 @@ experience:
|
|||
- date:
|
||||
de: 2022
|
||||
en: 2022
|
||||
client:
|
||||
de: Universität Roskilde
|
||||
en: Roskilde University
|
||||
typeid: 1
|
||||
title:
|
||||
de: Consultant, Review Arbeitsmarktpolitiken in Asien und dem Pazifik
|
||||
en: Consultant, Labour Market Policies Review in Asia and the Pacific
|
||||
place:
|
||||
de: Universität Roskilde
|
||||
en: Roskilde University
|
||||
publication:
|
||||
de: 'Niño-Zarazúa, M., \& Torm, N. (2022). Active Labour Market Policies in Asia and the Pacific: A review of the literature. Roskilde Universitet. SECO Working Paper Series Vol. 2022 No. 4.'
|
||||
en: 'Niño-Zarazúa, M., \& Torm, N. (2022). Active Labour Market Policies in Asia and the Pacific: A review of the literature. Roskilde Universitet. SECO Working Paper Series Vol. 2022 No. 4.'
|
||||
|
@ -176,12 +198,13 @@ experience:
|
|||
- date:
|
||||
de: 2021
|
||||
en: 2021
|
||||
client:
|
||||
typeid: 1
|
||||
title:
|
||||
de: Forschungsassistenz, Informelle Organisierung und Absicherung
|
||||
en: Research Assistant, Informal Organization and Social Security
|
||||
place:
|
||||
de: Universität Roskilde
|
||||
en: Roskilde University
|
||||
title:
|
||||
de: Forschungsassistenz, informelle Organisierung und Absicherung
|
||||
en: Research Assistant, informal organization and social security
|
||||
publication:
|
||||
de: Riisgaard, L. (2020). Worker Organisation and Social Protection amongst Informal Petty Traders in Tanzania. Roskilde Universitet. CAE Working Paper No. 2020:4
|
||||
en: Riisgaard, L. (2020). Worker Organisation and Social Protection amongst Informal Petty Traders in Tanzania. Roskilde Universitet. CAE Working Paper No. 2020:4
|
||||
|
@ -195,12 +218,13 @@ experience:
|
|||
- date:
|
||||
de: 2021
|
||||
en: 2021
|
||||
client:
|
||||
typeid: 1
|
||||
title:
|
||||
de: Redakteur, Soziale Absicherung informeller Arbeiter (SPIWORK)
|
||||
en: Editorial Assistant, Social Protection of Informal Workers (SPIWORK)
|
||||
place:
|
||||
de: Universität Roskilde
|
||||
en: Roskilde University
|
||||
title:
|
||||
de: Redaktionsassistenz, SPIWORK-Projekt
|
||||
en: Editorial Assistant, SPIWORK Project
|
||||
publication:
|
||||
de: 'Riisgaard, L., Mitullah, W.V., \& Torm, N. (Eds.). (2021). Social Protection and Informal Workers in Sub-Saharan Africa: Lived Realities and Associational Experiences from Tanzania and Kenya (1st ed.). Routledge.'
|
||||
en: 'Riisgaard, L., Mitullah, W.V., \& Torm, N. (Ed.). (2021). Social Protection and Informal Workers in Sub-Saharan Africa: Lived Realities and Associational Experiences from Tanzania and Kenya (1st ed.). Routledge.'
|
||||
|
@ -214,9 +238,13 @@ experience:
|
|||
- date:
|
||||
de: 2018--2019
|
||||
en: 2018--2019
|
||||
typeid: 2
|
||||
title:
|
||||
de: Akademische Hilfskraft, Institut für Amerikastudien, Universität Leipzig
|
||||
en: Academic Assistant, Institute of American Studies, University of Leipzig
|
||||
de: Akademische Hilfskraft, Institut für Amerikastudien
|
||||
en: Academic Assistant, Institute of American Studies
|
||||
place:
|
||||
de: Universität Leipzig
|
||||
en: University of Leipzig
|
||||
bullets:
|
||||
- de: Digitalisierung und Aufbereitung von Unterrichts- und Forschungsmaterialien
|
||||
en: Digitized and optimized teaching and research materials
|
||||
|
@ -227,9 +255,13 @@ experience:
|
|||
- date:
|
||||
de: 2017--2019
|
||||
en: 2017--2019
|
||||
typeid: 2
|
||||
title:
|
||||
de: Studentische Hilfskraft, Professor Crister S. Garrett, Universität Leipzig
|
||||
en: Student Assistant, Professor Crister S. Garrett, University of Leipzig
|
||||
de: Studentische Hilfskraft, Professor Crister S. Garrett
|
||||
en: Student Assistant, Professor Crister S. Garrett
|
||||
place:
|
||||
de: Universität Leipzig
|
||||
en: University of Leipzig
|
||||
bullets:
|
||||
- de: Digitalisierung und Bearbeitung ausgewählter Arbeitsmaterialien
|
||||
en: Digitized and prepared selected working material
|
||||
|
@ -240,9 +272,13 @@ experience:
|
|||
- date:
|
||||
de: 2018
|
||||
en: 2018
|
||||
typeid: 2
|
||||
title:
|
||||
de: Lehrassistenz, Transatlantische Sommerschule Cultures of Security, Universität Leipzig
|
||||
en: Teaching Assistant, Trans Atlantic Summer School Cultures of Security, University of Leipzig
|
||||
de: Lehrassistenz, Transatlantische Sommerschule Cultures of Security
|
||||
en: Teaching Assistant, Trans Atlantic Summer School Cultures of Security
|
||||
place:
|
||||
de: Universität Leipzig
|
||||
en: University of Leipzig
|
||||
bullets:
|
||||
- de: Vorbereitung, Organisation und Umsetzung von Lehrveranstaltungen und Events
|
||||
en: Prepared, organized, and implemented schedule for teaching and events
|
||||
|
@ -253,9 +289,13 @@ experience:
|
|||
- date:
|
||||
de: 2017--2018
|
||||
en: 2017--2018
|
||||
typeid: 2
|
||||
title:
|
||||
de: Content-Management, Bachelor Plus/Alumni-System, Universität Leipzig
|
||||
en: Content Management, Bachelor Plus/Alumni System, University of Leipzig
|
||||
de: Content-Management, Bachelor Plus/Alumni-System
|
||||
en: Content Management, Bachelor Plus/Alumni System
|
||||
place:
|
||||
de: Universität Leipzig
|
||||
en: University of Leipzig
|
||||
bullets:
|
||||
- de: Gemeinsame Erstellung und Strukturierung von Inhalten im Content-Management-System von Wordpress
|
||||
en: Co-created and structured content in Wordpress content management system
|
||||
|
@ -266,9 +306,14 @@ experience:
|
|||
- date:
|
||||
de: 2014--2018
|
||||
en: 2014--2018
|
||||
typeid: 2
|
||||
hidden: true # TODO: Allow hiding entries like this?
|
||||
title:
|
||||
de: Verkaufsassistent und Eventhelfer für historische Märkte, Heureka Gastronomie
|
||||
en: Sales Assistant and Event Support for Historical Markets, Heureka Gastronomy
|
||||
de: Verkaufsassistent und Eventhelfer für historische Märkte
|
||||
en: Sales Assistant and Event Support for Historical Markets
|
||||
place:
|
||||
de: Heureka Gastronomie
|
||||
en: Heureka Gastronomy
|
||||
bullets:
|
||||
- de: Betreuung mehrerer Verkaufsstände, darunter Glühwein und Getränke, Grillstände und Handbrote
|
||||
en: Managed multiple sales stands, including mulled wine and beverages, grill, and handbread stands
|
||||
|
@ -281,7 +326,7 @@ education:
|
|||
- place:
|
||||
de: Universität Leipzig, Deutschland
|
||||
en: University of Leipzig, Germany
|
||||
program:
|
||||
title:
|
||||
de: European Master of Global Studies, MA
|
||||
en: European Master of Global Studies, MA
|
||||
date:
|
||||
|
@ -290,7 +335,7 @@ education:
|
|||
- place:
|
||||
de: Universität Roskilde, Dänemark
|
||||
en: Roskilde University, Denmark
|
||||
program:
|
||||
title:
|
||||
de: Global Studies, MSc
|
||||
en: Global Studies, MSc
|
||||
date:
|
||||
|
@ -299,7 +344,7 @@ education:
|
|||
- place:
|
||||
de: Universität Leipzig, Deutschland
|
||||
en: University of Leipzig, Germany
|
||||
program:
|
||||
title:
|
||||
de: Amerikanistik, BA
|
||||
en: American Studies, BA
|
||||
date:
|
||||
|
@ -307,131 +352,161 @@ education:
|
|||
en: 2018
|
||||
- place:
|
||||
de: HTWK Leipzig, Deutschland
|
||||
en: HTWK Leipzig, Deutschland
|
||||
program:
|
||||
de: Medieninformatik, BSc (nicht abgeschlossen)
|
||||
en: Media Computer Science, BSc (not completed)
|
||||
en: HTWK Leipzig, Germany
|
||||
title:
|
||||
de: Medieninformatik, BSc (nicht abg.)
|
||||
en: Media Computer Science, BSc (not compl.)
|
||||
date:
|
||||
de: 2015
|
||||
en: 2015
|
||||
|
||||
thesis:
|
||||
- type:
|
||||
de: Master Thesis
|
||||
- title:
|
||||
de: Masterarbeit
|
||||
en: Master Thesis
|
||||
title:
|
||||
de: "Re-Evaluating Nature's Gifts: Economic and Experiential Value Productions in Namibia's Ecotourism"
|
||||
en: "Re-Evaluating Nature's Gifts: Economic and Experiential Value Productions in Namibia's Ecotourism"
|
||||
abstract:
|
||||
place:
|
||||
de: "Re-Evaluating Nature's Gifts: Economic and Experiential Value Productions in Namibia's Ecotourism."
|
||||
en: "Re-Evaluating Nature's Gifts: Economic and Experiential Value Productions in Namibia's Ecotourism."
|
||||
abstract: # TODO: Rephrase this complete abstract since it's not worded well
|
||||
de: Unter Verwendung einer theoretischen Grundlage von Macht wurden die Mechanismen der Konsensbildung bei der Produktion von Räumen im Ökotourismus analysiert. Durch die Anwendung kritischer Diskursanalyse auf die Fallstudie Namibia wurden verschiedene Arten der Wertschöpfung zwischen ökonomischen und erfahrungsbasierten Werten im Tourismus untersucht.
|
||||
en: Used a theoretical basis of power to analyze the mechanisms of consensus shaping the production of ecotourism space. Utilizing critical discourse analysis on the case study of Namibia, it explored various means of value production between economic and experiential values in tourism.
|
||||
|
||||
volunteering:
|
||||
- title:
|
||||
de: ZeitRaum
|
||||
en: ZeitRaum
|
||||
date:
|
||||
de: 2023--2024
|
||||
en: 2023--2024
|
||||
place:
|
||||
de: Heizhaus e.V.
|
||||
en: Heizhaus association
|
||||
bullets:
|
||||
- de: Vermittlung digitaler Kompetenzen im Alter
|
||||
en: Transferring Digital Competence in Aging
|
||||
- de: Wöchentlicher Workshop zur Entwicklung von Selbstvertrauen und Kompetenz mit Smartphones
|
||||
en: Weekly workshop on developing confidence and competence with smartphones
|
||||
- de: Personalisierte technische Hilfsmeetings und technische Support-Beratungen
|
||||
en: Personalized tech assistance appointments and technical support consultations
|
||||
- title:
|
||||
de: Verpixelt
|
||||
en: Verpixelt
|
||||
date:
|
||||
de: 2023
|
||||
en: 2023
|
||||
place:
|
||||
de: Urban Souls e.V.
|
||||
en: Urban Souls association
|
||||
bullets:
|
||||
- de: Technische Assistenz zur Vermittlung digitaler Kompetenzen
|
||||
en: Technical assistance for conveying digital competencies
|
||||
- de: IT und Event Organisationsunterstützung
|
||||
en: IT and event management services
|
||||
|
||||
skills:
|
||||
- de: Digitales Toolset
|
||||
en: Digital toolset
|
||||
content:
|
||||
- name:
|
||||
de: Versionskontrollsoftware
|
||||
en: Version control software
|
||||
items:
|
||||
- de: Git
|
||||
en: git
|
||||
- name:
|
||||
de: Office-Suite
|
||||
en: Office suite
|
||||
items:
|
||||
- de: Excel
|
||||
en: Excel
|
||||
- de: Word
|
||||
en: Word
|
||||
- de: Access
|
||||
en: Access
|
||||
- name:
|
||||
de: Autorensoftware
|
||||
en: Authoring software
|
||||
items:
|
||||
- de: LaTeX
|
||||
en: LaTeX
|
||||
- de: Pandoc
|
||||
en: pandoc
|
||||
- de: Quarto
|
||||
en: quarto
|
||||
- name:
|
||||
de: Web Content Management
|
||||
en: Web content management
|
||||
items:
|
||||
- de: Wordpress
|
||||
en: Wordpress
|
||||
- de: Hugo
|
||||
en: Hugo
|
||||
- de: Flask
|
||||
en: Flask
|
||||
- de: Astro
|
||||
en: Astro
|
||||
- de: HTML
|
||||
en: HTML
|
||||
- de: CSS
|
||||
en: CSS
|
||||
- de: JavaScript
|
||||
en: JavaScript
|
||||
- name:
|
||||
de: Datenanalyse
|
||||
en: Data Analysis
|
||||
items:
|
||||
- de: Python Pandas
|
||||
en: Python pandas
|
||||
- de: Plotly
|
||||
en: Plotly
|
||||
- name:
|
||||
de: Datenmanagement
|
||||
en: Data engineering
|
||||
items:
|
||||
- de: Web-Scraping/-Crawling
|
||||
en: Web-scraping/-crawling
|
||||
- de: SQL
|
||||
en: SQL
|
||||
- name:
|
||||
de: Design Software
|
||||
en: Design software
|
||||
items:
|
||||
- de: GIMP
|
||||
en: GIMP
|
||||
- de: Adobe Suite
|
||||
en: Adobe suite
|
||||
# Add date information for volunteer work
|
||||
- de: Ehrenamt
|
||||
en: Volunteering work
|
||||
content:
|
||||
- name:
|
||||
de: Verpixelt, Urban Souls e.V.
|
||||
en: Verpixelt, Urban Souls association
|
||||
items:
|
||||
- de: technische Assistenz zur Vermittlung digitaler Kompetenzen
|
||||
en: technical assistance for conveying digital competencies
|
||||
- name:
|
||||
de: ZeitRaum, Heizhaus e.V.
|
||||
en: ZeitRaum, Heizhaus association
|
||||
items:
|
||||
- de: Vermittlung digitaler Kompetenzen im Alter, Workshop und Fragestunde
|
||||
en: Transferring Digital Competence in Aging, Workshop and individual sessions
|
||||
- de: Sprachen
|
||||
en: Languages
|
||||
content:
|
||||
- name:
|
||||
de: Deutsch
|
||||
en: German
|
||||
items:
|
||||
- de: Muttersprache
|
||||
en: native
|
||||
- name:
|
||||
de: Englisch
|
||||
en: English
|
||||
items:
|
||||
- de: fließend
|
||||
en: fluent
|
||||
- name:
|
||||
de: Französisch
|
||||
en: French
|
||||
items:
|
||||
- de: Grundkenntnisse
|
||||
en: basics
|
||||
- name:
|
||||
de: Office-Suite
|
||||
en: Office suite
|
||||
items:
|
||||
- de: Excel
|
||||
en: Excel
|
||||
- de: Word
|
||||
en: Word
|
||||
- de: Access
|
||||
en: Access
|
||||
- name:
|
||||
de: Autorensoftware
|
||||
en: Authoring software
|
||||
items:
|
||||
- de: Typst
|
||||
en: Typst
|
||||
- de: LaTeX
|
||||
en: LaTeX
|
||||
- de: Quarto
|
||||
en: Quarto
|
||||
- de: Pandoc
|
||||
en: Pandoc
|
||||
- name:
|
||||
de: Datenmanagement
|
||||
en: Data engineering
|
||||
items:
|
||||
- de: SQL
|
||||
en: SQL
|
||||
- de: Web-Scraping & Crawling
|
||||
en: Web-scraping & crawling
|
||||
- name:
|
||||
de: Datenanalyse
|
||||
en: Data analysis
|
||||
items:
|
||||
- de: Python Pandas & Polars
|
||||
en: Python Pandas & Polars
|
||||
- de: Seaborn
|
||||
en: Seaborn
|
||||
- name:
|
||||
de: Programmieren
|
||||
en: Programming
|
||||
items:
|
||||
- de: Python
|
||||
en: Python
|
||||
- de: Go
|
||||
en: Go
|
||||
- de: Bash
|
||||
en: Bash
|
||||
- de: Lua
|
||||
en: Lua
|
||||
- name:
|
||||
de: Versionskontrollsoftware
|
||||
en: Version control software
|
||||
items:
|
||||
- de: Git
|
||||
en: Git
|
||||
- de: Jujutsu
|
||||
en: Jujutsu
|
||||
# - de: Fossil
|
||||
# en: Fossil
|
||||
- name:
|
||||
de: Web Content Management
|
||||
en: Web content management
|
||||
items:
|
||||
# - de: Wordpress
|
||||
# en: Wordpress
|
||||
- de: Hugo
|
||||
en: Hugo
|
||||
- de: Flask
|
||||
en: Flask
|
||||
# - de: Astro
|
||||
# en: Astro
|
||||
- de: HTML
|
||||
en: HTML
|
||||
- de: CSS
|
||||
en: CSS
|
||||
- de: JavaScript
|
||||
en: JavaScript
|
||||
- name:
|
||||
de: Design Software
|
||||
en: Design software
|
||||
items:
|
||||
- de: GIMP
|
||||
en: GIMP
|
||||
- de: Adobe Suite
|
||||
en: Adobe suite
|
||||
|
||||
languages:
|
||||
- name:
|
||||
de: Deutsch
|
||||
en: German
|
||||
items:
|
||||
- de: Muttersprache
|
||||
en: native
|
||||
- name:
|
||||
de: Englisch
|
||||
en: English
|
||||
items:
|
||||
- de: fließend
|
||||
en: fluent
|
||||
- name:
|
||||
de: Französisch
|
||||
en: French
|
||||
items:
|
||||
- de: Grundkenntnisse
|
||||
en: basics
|
||||
|
|
157
cv.typ
Normal file
157
cv.typ
Normal file
|
@ -0,0 +1,157 @@
|
|||
#import "lib.typ": *
|
||||
|
||||
#let cv(contents, use_sidebar: false) = {
|
||||
show: style
|
||||
show: smartypants
|
||||
set text(lang: lang)
|
||||
|
||||
let date_formatting = {
|
||||
if lang == "de" {
|
||||
"[day]. [month repr:long] [year]"
|
||||
} else {
|
||||
"[month repr:long] [day], [year]"
|
||||
}
|
||||
}
|
||||
set page(
|
||||
paper: "a4",
|
||||
margin: (x: 0.9cm, y: 1.3cm),
|
||||
footer: [
|
||||
#set text(
|
||||
fill: luma(200),
|
||||
size: 8pt,
|
||||
)
|
||||
#_columns_3[
|
||||
#smallcaps[#datetime.today().display(date_formatting)]
|
||||
][
|
||||
#smallcaps[#contents.about.fullname]
|
||||
][
|
||||
#context counter(page).display()
|
||||
]
|
||||
],
|
||||
)
|
||||
|
||||
set par(justify: true)
|
||||
|
||||
header(contents.about)
|
||||
|
||||
let body = {
|
||||
if "summary" in contents {
|
||||
section(
|
||||
title: "",
|
||||
{
|
||||
contents.summary.at(lang)
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
if "experience" in contents {
|
||||
let title = (en: "Professional Experience", de: "Berufserfahrung").at(lang)
|
||||
section(title: title, entries: contents.experience)[]
|
||||
}
|
||||
|
||||
if "education" in contents {
|
||||
let title = (en: "Education", de: "Ausbildung").at(lang)
|
||||
section(title: title, entries: contents.thesis + contents.education)[]
|
||||
}
|
||||
|
||||
if not use_sidebar {
|
||||
if "volunteering" in contents {
|
||||
let title = (en: "Volunteer Work", de: "Ehrenamt").at(lang)
|
||||
section(title: title, entries: contents.volunteering)[]
|
||||
}
|
||||
|
||||
if "skills" in contents {
|
||||
let title = (en: "Qualifications", de: "Qualifikationen").at(lang)
|
||||
section(
|
||||
title: title,
|
||||
{
|
||||
skill_item(item: contents.skills)
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
if "languages" in contents {
|
||||
let title = (en: "Languages", de: "Sprachen").at(lang)
|
||||
section(
|
||||
title: title,
|
||||
{
|
||||
skill_item(item: contents.languages)
|
||||
},
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let sidebar = {
|
||||
if "volunteering" in contents {
|
||||
let title = (en: "Volunteer Work", de: "Ehrenamt").at(lang)
|
||||
[== #title]
|
||||
for e in contents.volunteering {
|
||||
[
|
||||
- *#e.title.at(lang)* (#e.date.at(lang))
|
||||
#par(e.bullets.at(0).at(lang)) \
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
if "languages" in contents {
|
||||
let title = (en: "Languages", de: "Sprachen").at(lang)
|
||||
[== #title]
|
||||
skill_item(item: contents.languages, is_sidebar: true)
|
||||
[\ ]
|
||||
}
|
||||
|
||||
if "skills" in contents {
|
||||
let title = (en: "Qualifications", de: "Kenntnisse").at(lang)
|
||||
[== #title]
|
||||
skill_item(item: contents.skills, is_sidebar: true)
|
||||
}
|
||||
}
|
||||
|
||||
if not use_sidebar {
|
||||
body
|
||||
return
|
||||
}
|
||||
let margin = 1pt
|
||||
grid(
|
||||
columns: (2fr, 1fr),
|
||||
block(
|
||||
outset: 0pt,
|
||||
inset: (top: 0.4 * margin, right: 0pt, rest: margin),
|
||||
stroke: none,
|
||||
width: 100%,
|
||||
{
|
||||
set block(above: 10pt)
|
||||
show heading.where(level: 1): it => style(s => {
|
||||
let h = text(size: 18pt, upper(it))
|
||||
let dim = measure(h, s)
|
||||
stack(
|
||||
dir: ltr,
|
||||
h,
|
||||
place(
|
||||
dy: 7pt,
|
||||
dx: 10pt,
|
||||
horizon + left,
|
||||
line(stroke: accent-color, length: 100% - dim.width - 10pt),
|
||||
),
|
||||
)
|
||||
})
|
||||
body
|
||||
},
|
||||
),
|
||||
{
|
||||
v(20pt)
|
||||
set block(inset: (left: 20 * margin, right: 20 * margin))
|
||||
show heading: it => align(right, upper(it))
|
||||
set list(marker: "")
|
||||
show list: it => {
|
||||
set par(justify: false)
|
||||
align(right, block(it))
|
||||
}
|
||||
sidebar
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
#cv.with(use_sidebar: false)(yaml("content.yml"))
|
||||
|
53
letter.qmd
53
letter.qmd
|
@ -1,53 +0,0 @@
|
|||
---
|
||||
backaddress: Marty Oehme, Körnerstraße 54, 04107 Leipzig
|
||||
fromname: Marty Oehme
|
||||
fromaddress: |
|
||||
Körnerstraße 54
|
||||
04107 Leipzig
|
||||
fromphone: "0177 / 377 49 49"
|
||||
place: Leipzig, DAY MONTH YEAR
|
||||
placeseparator: " "
|
||||
sendto: |
|
||||
NAME OF COMPANY
|
||||
ITS ADDRESS STREET AND NUMBER
|
||||
LOCATION ZIPCODE
|
||||
lang: en
|
||||
subject: Bewerbung für JOBSTELLE
|
||||
signature: Marty Oehme
|
||||
opening: Dear CONTACTNAME
|
||||
closing: Sincerely
|
||||
format:
|
||||
pdf:
|
||||
template: templates/letter.latex
|
||||
---
|
||||
|
||||
After two years of cooperation, I recently finished the final in a row of projects undertaken as consultant for UNU-WIDER and the ILO.
|
||||
I am glad to have happened upon your job posting for the position of project officer as part-time worker with minimum 32 hours, as for me it may allow a more medium term stability than the previous short-term freelance positions did.
|
||||
|
||||
Over the previous two years, I have primarily provided research assistance for three major projects under the helm of the UN, the ILO and Roskilde University:
|
||||
In addition to the descriptive analysis undertaken for all of these projects,
|
||||
my consultancy for UNU-WIDER required the creation of a time-series visualization on the basis of empirical analysis over roughly 200.000 observations within the UN's WIID dataset.
|
||||
The previous work for the ILO and Roskilde University instead consisted of deep research for the creation of wide-ranging scoping reviews,
|
||||
which necessitated collecting, organizing and cleaning datasets of around 2000 source potentials.
|
||||
I accomplished both of these tasks more efficiently with the help of Python and its data analysis modules which is also where my primary statistical programming focus lies.
|
||||
|
||||
Additionally, I have long been helping publish academic, particularly empirical, works,
|
||||
first in the role of academic assistant and later on as editorial consultant.
|
||||
Perhaps most personally beneficial for the current position was the publication of a large academic anthology under the SPIWORK project:
|
||||
During this time I worked with clients located internationally,
|
||||
collaborating directly to create clear and concise manuscripts for each individual topic,
|
||||
before merging the divergent aspects into a final coherent whole while also fulfilling publisher's formal requirements.
|
||||
I would love to bring both the analytical and editorial skillsets together in my new work,
|
||||
to be able to push them forward in tandem.
|
||||
|
||||
Lastly, my skills of communication, especially international communication skills, have been honed throughout this time as I was both participant and leader of small (from 3 people) to medium-sized (up to 8 people) teams.
|
||||
Collaboration in this way was both exciting and straightforward for me,
|
||||
and I firmly believe concise and clear communication both engenders easier productivity flows
|
||||
and is fundamental to the ability to precisely frame topics as complex as energy transition.
|
||||
|
||||
My interactions with processes of both long-term energy planning and renewables-based electrification of end-use sectors primarily stem from research undertaken in Vietnam and Benin under the helm of the Agence française de développement,
|
||||
where the eventual distributional impact of access to clean water and new energy grids provided the project's focus.
|
||||
I have, however, both the willingness and curiosity to dive deeper into these topics and their related issues of regulatory frameworks, financing and policy framing.
|
||||
|
||||
I will be happy to hear back from you and am confident that I could be a good match.
|
||||
Should you agree that my profile is a good fit for the offered position then do not hesitate to contact me and I would be delighted to arrange a meeting.
|
148
lib.typ
Normal file
148
lib.typ
Normal file
|
@ -0,0 +1,148 @@
|
|||
|
||||
// set some styles
|
||||
#let style(it) = {
|
||||
show heading: set text(font: "New Computer Modern")
|
||||
show link: underline
|
||||
it
|
||||
}
|
||||
|
||||
// transform md-similes to actual symbols
|
||||
#let smartypants(it) = {
|
||||
// smartypants and latex compatibility
|
||||
show "--": [#sym.dash.en]
|
||||
show "---": [#sym.dash.em]
|
||||
show "\&": [#sym.amp]
|
||||
it
|
||||
}
|
||||
|
||||
// Choose the compiled language through cli by doing
|
||||
//
|
||||
// $ typst compile --input lang=de cv.typ
|
||||
//
|
||||
#let lang = {
|
||||
if "lang" in sys.inputs and sys.inputs.lang == "de" {
|
||||
"de"
|
||||
} else {
|
||||
"en"
|
||||
}
|
||||
}
|
||||
|
||||
#let _columns_3(left_body, center_body, right_body) = {
|
||||
block[
|
||||
#box(width: 1fr)[
|
||||
#align(left)[#left_body]
|
||||
]
|
||||
#box(width: 1fr)[
|
||||
#align(center)[#center_body]
|
||||
]
|
||||
#box(width: 1fr)[
|
||||
#align(right)[#right_body]
|
||||
]
|
||||
]
|
||||
}
|
||||
|
||||
#let header(about, columns: (1.5fr, 1fr, 1fr)) = {
|
||||
[= #about.fullname]
|
||||
let contact_fields = (
|
||||
for c in about.contact {
|
||||
if "link" in c {
|
||||
([#c.icon ~ #link(c.link)[#c.text]],)
|
||||
} else {
|
||||
([#c.icon ~ #c.text],)
|
||||
}
|
||||
}
|
||||
)
|
||||
grid(
|
||||
columns: columns,
|
||||
gutter: 5pt,
|
||||
..contact_fields
|
||||
)
|
||||
}
|
||||
|
||||
#let subdued(body) = {
|
||||
block(inset: 5%, width: 85%, text(fill: luma(150), body))
|
||||
}
|
||||
|
||||
#let entry(item: ()) = {
|
||||
if "title" in item {
|
||||
[*#item.title.at(lang)*]
|
||||
}
|
||||
if "place" in item {
|
||||
if "title" in item {
|
||||
[, ]
|
||||
}
|
||||
[_#item.place.at(lang)_]
|
||||
}
|
||||
[#h(1fr)]
|
||||
if "date" in item {
|
||||
[ _#item.date.at(lang)_ \ ]
|
||||
}
|
||||
if "bullets" in item {
|
||||
for bullet in item.bullets {
|
||||
[- #bullet.at(lang)]
|
||||
}
|
||||
}
|
||||
if "publication" in item {
|
||||
subdued[#item.publication.at(lang) \ ]
|
||||
}
|
||||
if "abstract" in item {
|
||||
subdued[#item.abstract.at(lang) \ ]
|
||||
}
|
||||
}
|
||||
|
||||
#let horizon_line() = {
|
||||
v(-3pt)
|
||||
line(length: 100%)
|
||||
v(-5pt)
|
||||
}
|
||||
|
||||
#let section_header(title) = {
|
||||
[== #title]
|
||||
horizon_line()
|
||||
};
|
||||
|
||||
#let section(title: "Section", entries: (), body) = {
|
||||
section_header(title)
|
||||
if body == none or body == [] {
|
||||
for e in entries {
|
||||
entry(item: e)
|
||||
}
|
||||
} else {
|
||||
body
|
||||
}
|
||||
};
|
||||
|
||||
// Slightly re-styled entry with PLACE first and TITLE second
|
||||
#let education_entry(item: ()) = {
|
||||
assert(
|
||||
"place" in item and "title" in item and "date" in item,
|
||||
message: "Education items require place, program and date.",
|
||||
)
|
||||
[*#item.place.at(lang)*, #item.title.at(lang) #h(1fr)]
|
||||
[ _#item.date.at(lang)_ \ ]
|
||||
}
|
||||
|
||||
// Restyled entry with PLACE not emphasized like usual, and no date but an abstract
|
||||
#let thesis_entry(item: ()) = {
|
||||
assert("title" in item and "place" in item, message: "Thesis items require type and title.")
|
||||
[*#item.title.at(lang)* #item.place.at(lang) #h(1fr)]
|
||||
[#par(item.abstract.at(lang))]
|
||||
}
|
||||
|
||||
// skill-specific entry, changing its style for sidebar
|
||||
#let skill_item(item: (), is_sidebar: false) = {
|
||||
let side_list(body) = if is_sidebar { list(body) } else { par(body) }
|
||||
for skill in item {
|
||||
side_list({
|
||||
[*#skill.name.at(lang)*]
|
||||
if is_sidebar [\ ] else [ (]
|
||||
for (i, v) in skill.items.enumerate() {
|
||||
[#v.at(lang)]
|
||||
if i < skill.items.len() - 1 {
|
||||
[, ]
|
||||
}
|
||||
}
|
||||
if not is_sidebar [)]
|
||||
})
|
||||
}
|
||||
}
|
2295
poetry.lock
generated
2295
poetry.lock
generated
File diff suppressed because it is too large
Load diff
|
@ -1,92 +0,0 @@
|
|||
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
|
|
@ -1,9 +0,0 @@
|
|||
import yaml
|
||||
|
||||
DEFAULT_FILE = "content.yml"
|
||||
|
||||
|
||||
def parse(fname: str = DEFAULT_FILE):
|
||||
with open(fname, mode="rb") as f:
|
||||
return yaml.safe_load(f)
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
[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"
|
192
resume.typ
Normal file
192
resume.typ
Normal file
|
@ -0,0 +1,192 @@
|
|||
#import "lib.typ": *
|
||||
|
||||
// TODO: make it _return_ the data, not display it on its own
|
||||
#let by_client(experience: ()) = {
|
||||
let by_client = (:)
|
||||
|
||||
for item in experience {
|
||||
let client = item.place.at(lang)
|
||||
if client not in by_client {
|
||||
by_client.insert(client, ())
|
||||
}
|
||||
by_client.at(client).push((item.title.at(lang), item.date.at(lang)))
|
||||
}
|
||||
|
||||
for (client, jobs) in by_client {
|
||||
[*#client*:]
|
||||
for j in jobs {
|
||||
[- #j.at(0) #h(1fr) #j.at(1)]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#let by_experience_type(type: (), experience: ()) = {
|
||||
let by_ty = (:)
|
||||
for (id, desc) in type {
|
||||
let matching_exp_items = experience.filter(item => int(item.typeid) == int(id))
|
||||
if matching_exp_items.len() == 0 {
|
||||
return
|
||||
}
|
||||
|
||||
[=== _#desc.at(lang)_]
|
||||
by_client(experience: matching_exp_items)
|
||||
}
|
||||
}
|
||||
|
||||
#let resume(contents, main: ("experience", "education"), sidebar: ("volunteering", "languages", "skills")) = {
|
||||
show: style
|
||||
show: smartypants
|
||||
set text(lang: lang)
|
||||
|
||||
let date_formatting = {
|
||||
if lang == "de" {
|
||||
"[day]. [month repr:long] [year]"
|
||||
} else {
|
||||
"[month repr:long] [day], [year]"
|
||||
}
|
||||
}
|
||||
set page(
|
||||
paper: "a4",
|
||||
margin: (x: 0.9cm, y: 1.3cm),
|
||||
footer: [
|
||||
#set text(
|
||||
fill: luma(200),
|
||||
size: 8pt,
|
||||
)
|
||||
#_columns_3[
|
||||
#smallcaps[#datetime.today().display(date_formatting)]
|
||||
][
|
||||
#smallcaps[#contents.about.fullname]
|
||||
][
|
||||
#context counter(page).display()
|
||||
]
|
||||
],
|
||||
)
|
||||
|
||||
set par(justify: true)
|
||||
|
||||
header(contents.about)
|
||||
|
||||
let body = {
|
||||
if "summary" in main and "summary" in contents {
|
||||
section(
|
||||
title: "",
|
||||
{
|
||||
contents.summary.at(lang)
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
if "experience" in main and "experience" in contents {
|
||||
let title = (en: "Professional Experience", de: "Berufserfahrung").at(lang)
|
||||
section(title: title)[]
|
||||
by_experience_type(experience: contents.experience, type: contents.experience_types)
|
||||
}
|
||||
|
||||
if "education" in main and "education" in contents {
|
||||
let title = (en: "Education", de: "Ausbildung").at(lang)
|
||||
section(title: title, entries: contents.thesis + contents.education)[]
|
||||
}
|
||||
|
||||
if "volunteering" in main and "volunteering" in contents {
|
||||
let title = (en: "Volunteer Work", de: "Ehrenamt").at(lang)
|
||||
section(title: title, entries: contents.volunteering)[]
|
||||
}
|
||||
|
||||
if "skills" in main and "skills" in contents {
|
||||
let title = (en: "Qualifications", de: "Qualifikationen").at(lang)
|
||||
section(
|
||||
title: title,
|
||||
{
|
||||
skill_item(item: contents.skills)
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
if "languages" in main and "languages" in contents {
|
||||
let title = (en: "Languages", de: "Sprachen").at(lang)
|
||||
section(
|
||||
title: title,
|
||||
{
|
||||
skill_item(item: contents.languages)
|
||||
},
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
let sidebar = {
|
||||
if "volunteering" in sidebar and "volunteering" in contents {
|
||||
let title = (en: "Volunteer Work", de: "Ehrenamt").at(lang)
|
||||
[== #title]
|
||||
for e in contents.at("volunteering") {
|
||||
[
|
||||
- *#e.title.at(lang)* (#e.date.at(lang))
|
||||
#par(e.bullets.at(0).at(lang)) \
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
if "languages" in sidebar and "languages" in contents {
|
||||
let title = (en: "Languages", de: "Sprachen").at(lang)
|
||||
[== #title]
|
||||
skill_item(item: contents.languages, is_sidebar: true)
|
||||
[\ ]
|
||||
}
|
||||
|
||||
if "skills" in sidebar and "skills" in contents {
|
||||
let title = (en: "Qualifications", de: "Kenntnisse").at(lang)
|
||||
[== #title]
|
||||
skill_item(item: contents.skills, is_sidebar: true)
|
||||
}
|
||||
}
|
||||
|
||||
let margin = 1pt
|
||||
grid(
|
||||
columns: (2fr, 1fr),
|
||||
block(
|
||||
outset: 0pt,
|
||||
inset: (top: 0.4 * margin, right: 0pt, rest: margin),
|
||||
stroke: none,
|
||||
width: 100%,
|
||||
{
|
||||
set block(above: 10pt)
|
||||
show heading.where(level: 1): it => style(s => {
|
||||
let h = text(size: 18pt, upper(it))
|
||||
let dim = measure(h, s)
|
||||
stack(
|
||||
dir: ltr,
|
||||
h,
|
||||
place(
|
||||
dy: 7pt,
|
||||
dx: 10pt,
|
||||
horizon + left,
|
||||
line(stroke: accent-color, length: 100% - dim.width - 10pt),
|
||||
),
|
||||
)
|
||||
})
|
||||
body
|
||||
},
|
||||
),
|
||||
align(
|
||||
right,
|
||||
block(
|
||||
fill: luma(250),
|
||||
width: 90%,
|
||||
{
|
||||
v(15pt)
|
||||
set block(inset: (left: 5 * margin, right: 5 * margin))
|
||||
show heading: it => align(right, upper(it))
|
||||
set list(marker: "")
|
||||
show list: it => {
|
||||
set par(justify: false)
|
||||
align(right, block(it))
|
||||
}
|
||||
sidebar
|
||||
v(15pt)
|
||||
},
|
||||
),
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
#resume(yaml("content.yml"))
|
|
@ -1,47 +0,0 @@
|
|||
---
|
||||
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)
|
||||
)
|
||||
)
|
||||
```
|
|
@ -1,51 +0,0 @@
|
|||
---
|
||||
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))
|
||||
)
|
||||
```
|
|
@ -1,103 +0,0 @@
|
|||
% 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}
|
|
@ -1,645 +0,0 @@
|
|||
%
|
||||
% 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