date | lang | documentclass | papersize | linestretch | title | subtitle | author | matricle-number | course | location | paper-type | working-period | university-location | degree-course | company | company-location | company-logo | company-tutor | university-tutor | abstract | other-abstracts | babel-otherlangs | colorlinks | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
\today |
de-DE |
scrreport |
a4 |
1.5 |
Pandoc-Vorlage für Arbeiten an der DHBW-Mosbach |
Unterstützt Projektarbeiten, Studienarbeiten und Bachelorarbeiten
|
|
|
MOS-TINF19X |
Mosbach |
Bachelorarbeit T3_3300 |
12 Wochen |
Mosbach |
Angewandte Informatik |
My Cool Company |
Berlin |
img/company_logo.png |
Herr Müller |
Frau Prof. Dr. Meier |
Dies ist ein zu kurzes Abstract.
Das Abstract für tatsächliche Projektarbeiten sollte 200 bis 250 Wörter lang sein.
|
|
|
true |
\pagebreak
Eine Vorlage, um wissenschaftliche Arbeiten für die +dhbw in Pandoc verfassen zu können.
Dabei werden die in [@DHBW.2021] beschriebenen Richtlinien nach bestem Gewissen umgesetzt.
Am einfachsten ist die Verwendung mit Drone. Wenn Drone und Docker installiert sind, reicht folgender Befehl:
drone exec
Basierend auf Drone lässt sich auch alternativ zu GitHub-Actions eine Build-Automatisierung nutzen.
Um diese Vorlage zu verwenden kann das Docker-Image siphalor/extended-pandoc
verwendet werden.
Unter Linux kann folgender Befehl zum Kompilieren der PDF mit Docker verwendet werden:
docker run --rm --volume $(pwd):/data --entrypoint make siphalor/extended-pandoc
Alternativ können die nötigen Extensions selbst installiert werden. Die Liste der Extensions findet sich in der Readme des Docker-Images.
Anschließend kann mit make index.pdf
die PDF-Datei kompiliert werden.
Unter Windows kann sich der entsprechende Befehl aus dem Makefile
entnommen werden.
Im Folgenden wird die Installation unter Windows beschrieben. Die folgenden Befehle sollten in PowerShell ausgeführt werden (alternativ pwsh).
Als Package Manager wird Scoop genutzt, da dieser einfache Installationen und Updates ohne administrative Rechte ermöglicht.
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
irm get.scoop.sh | iex
Weiterhin wird pip
benötigt um die Python-basierten Extensions zu installieren:
scoop install python
python -m ensurepip
Nun benötigen wir noch den make
command aus den GNU coreutils.
Hier kann beispielsweise die Rust-Implementierung dieser Tools verwendet werden:
scoop install uutils-coreutils
Abschließend werden jetzt die Pandoc- und Latex-Umgebung installiert.
In den folgenden Befehlen wird TinyTeX, eine [TeX-Live][https://tug.org/texlive/]-Distribution, verwendet.
Anstelle von tinytex
kann auch MikTex (bei Scoop als miktex
) verwendet werden.
Dies bietet unter anderem eine grafische Oberfläche und eine einsteigerfreundlichere Paket-Verwaltung.
# texlive installation
scoop bucket add r-bucket https://github.com/cderv/r-bucket.git
scoop install tinytex
# pandoc installation
scoop install pandoc pandoc-crossref
pip install pandoc-acro pandoc-include --user
Der Einfachheit halber am besten zunächst den Homebrew Package Manager installieren:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Python ist in den allermeisten Linux-Distributionen vorinstalliert, eventuell ist es als python
statt python3
verfügbar:
python3 -m ensurepip
Schlussendlich können Pandoc, die nötigen Extensions und die TeX Live LaTeX-Umgebung installiert werden.
brew install pandoc pandoc-crossref texlive
pip install pandoc-acro pandoc-include --user
Unterstützt werden alle typischen Markdown-Features, sowie die nativen Erweiterungen von Pandoc:
-
kursiv, fett, beides,
durchgestrichen, [unterstrichen]{.underline}, [Kapitälchen]{.smallcaps} -
Definitionen und Listen:
Wort: : Dies ist eine Beschreibung über mehrere Zeilen.
Unsortierte Listen: : - Eins
- Zwei
- Drei
Unsortierte Listen: : 1. Eins 2. Zwei 3. Drei
-
Zitation/Quellenangaben [@DHBW.2021, Abschnitt 9.1], [@DHBW.2021, S. 23]
-
Latex-Ausdrücke, zum Beispiel für mathematische Ausdrücke
$\sum_{i=1}^n\frac{1}{a_b}\cdot i$ -
Bilder
-
Tabellen:
Spalte 1 Spalte 2 Spalte 3 A B C : Tabellen-Beschriftung {#tbl:some-table} -
Code
und Code-Blöcke:print("Hello World");
print("Floating Code Block!")
Hier geht der Stichpunkt weiter.
Für weitere native Pandoc-Features, siehe die offizielle Dokumentation.
Durch Extensions wird zusätzliche Funktionalität zur Verfügung gestellt:
pandoc-acro
--- Abkürzungen:
: Abkürzungen können in der acronyms.yaml
definiert werden:
```yaml
acronyms:
options:
list/heading: chapter*
make-links: true
dhbw:
short: DHBW
```
Und anschließend verwendet werden: +dhbw; [+dhbw]{.long}
pandoc-crossref
--- Referenzen:
: Referenzen für Abschnitte (@sec:extensions), Bilder (@fig:some-image), Code-Blöcke (@lst:floating-code-block) und Tabellen (@tbl:some-table).