Pandoc
ist ein universeller Dokumentenkonverter, der sich besonders für die Übersetzung von
Markdown
-Dokumenten in zahlreiche andere Zielformate eignet.
Pandoc kann mit tolle
Präsentationen
erstellen.
Ebenso lassen sich in Markdown verfasste Texte mit Pandoc sehr einfach in ein
E-Book
umwandeln.
Installation
- Pandoc herunterladen und installieren.
- PDF-Export:
Linux:sudo apt-get install texlive-latex-base texlive-latex-recommended texlive-lang-german texlive-xetex texlive-fonts-recommended lmodern
Windows: MiKTeX installieren.
Pandoc-Beispiele
Pandoc wird über die Kommandozeile aufgerufen. Hier ein paar Beispiele:
pandoc -o ausgabe.odt eingabe.md
(Markdown → ODT)pandoc --reference-doc=vorlage.odt -o ausgabe.odt eingabe.md
(Markdown → ODT, mit Vorlage-Datei)pandoc -o ausgabe.pdf eingabe.md
(Markdown → PDF)pandoc -s -5 -o ausgabe.html eingabe.md
(Markdown → HTML5)pandoc -f html -o webseite.odt http://baireuther.de
(HTML → ODT)pandoc -f html -o ausgabe.md webseite.html
(Webseite → Markdown)pandoc --epub-cover-image bild.png -o ausgabe.epub eingabe.md
(Markdown→ epub)pandoc -t beamer -o ausgabe.pdf eingabe.md
(einfache PDF-Präsentation)pandoc *.md > markdown_book.html
(mehrere Markdown-Dateien in eine Webseite umwandeln)
Schalter
-o
→ Output (Ausgabedatei)-s
→ Standalone (Header und Footer werden erzeugt)--toc
→ ein Inhaltsverzeichnis wird erzeugt--toc-depth=NUMBER
→ Tiefe des Inhaltsverzeichnisses--number-sections
: aktiviert die Nummerierung vor den jeweiligen Überschriften (1., 1.1, 1.2 usw.)-V lang=de-DE
→ deutsche Sprache-V papersize=a4paper
: Seitengröße ist A4-Papier-V geometry:margin=2cm
: 2cm Seitenrand überall--pdf-engine=xelatex
: für das Einden von Systemschriftarten ist diese LaTeX-Engine nötig-V fontsize=12pt
: Schriftgröße-V breakurl
: lange URLs korrekt umbrechen-V hyphens=URL
: URLs korrekt trennen
Eine ausführliche Dokumentation aller Befehle gibt es hier .
Templates
Pandoc nutzt standardmäßig die Vorlagen in ~/.pandoc/templates
.
Verschiedene Templates zum Download .
Metadaten
Mittels eines YAML-Metadaten-Blocks kann man diverse Einträge setzen:
---
title: Titel
subtitle: Untertitel
author: Vorname Name
date: 12.05.2018
lang: de-DE
abstract: Dieser Beitrag ...
...
“großer Header”:
---
# Infos
title: Titel
subtitle: Untertitel
author: Vorname Name
date: 12.05.2018
abstract: Dieser Beitrag ...
numbersections: true
lang: de-DE
# Format
fontsize: 12pt
linestretch: 1.5
mainfont: "Ubuntu"
sansfont: "Roboto Condensed"
monofont: "Ubuntu Mono"
mathfont:
geometry: a4paper, left=25mm, right=20mm, top=20mm, bottom=20mm
# Bibliography
csl: style.csl # Styles: https://www.zotero.org/styles
bibliography: references.bib # Formate: https://github.com/jgm/pandoc-citeproc/blob/master/man/pandoc-citeproc.1.md
suppress-bibliography: false
link-citations: true
color-links: true
linkcolor: black
urlcolor: black
citecolor: black
endnote: false
# Verzeichnisse
toc: true # Inhaltsverzeichnis
toc_depth: 2 # Verzeichnistiefe
lof: true # Abbildungsverzeichnis
lot: true # Tabellenverzeichnis
block-headings: true # Verzeichnisebenen > 3 erlauben
...
Alternativ zu den Verzeichniseinträgen können kann im Anschluss an den YAML-Header folgende LaTeX-Steuerzeichen verwendet werden:
\pagenumbering{gobble}
\maketitle
\pagebreak
\pagenumbering{Roman}
\tableofcontents
\pagebreak
\listoffigures
\pagebreak
\pagenumbering{arabic}
\setcounter{page}{3}
Die Umwandlung erfolgt dann durch:
pandoc input.md --pdf-engine=xelatex -o output.pdf
Briefe mit Pandoc
- Download der Vorlage und entpacken.
- Die Datei letter.latex nach ~/.pandoc/templates kopieren
- Im Ordner example befindet sich ein Beispielbrief (letter.md).
- Konvertierung des Briefes mit
pandoc letter.md -s -o letter.pdf --template="letter"
Präsentationen
Pandoc kann mittels beamer, S5, DZSlides, Slidy, Slideous, reveal.js oder Marp Präsentationen erzeugen.
Text schreiben
Der Text wird in
Markdown
geschrieben und als praesentation.md
abgespeichert.
Steuerzeichen
Drei Punkte, getrennt durch Leerzeichen, kennzeichnen eine Pause.
Der folgende Inhalt wird erst nach einem Tastendruck angezeigt: . . .
LaTeX-Beamer
Header:
---
title: Präsentationen mit Pandoc & LaTeX-Beamer
author: Stefan Baireuther
date: 09.03.2021
lang: DE-de
theme: lined
mainfont: Ubuntu-R.ttf
mainfontoptions:
- BoldFont=Ubuntu-B.ttf
- ItalicFont=Ubuntu-RI.ttf
- BoldItalicFont=Ubuntu-BI.ttf
---
Dann wird so konvertiert:
pandoc -t beamer --pdf-engine=xelatex -o out.pdf praesentation.md
- Themes: AnnArbor, Antibes, bars, Bergen, Berkeley, Berlin, Boadilla, boxes, CambridgeUS, classic, compatibility, Copenhagen, Darmstadt, default, Dresden, EastLansing, Frankfurt, Goettingen, Hannover, Ilmenau, JuanLesPins, lined, Luebeck, Madrid, Malmoe, Marburg, Montpellier, PaloAlto, Pittsburgh, plain, Rochester, shadow, sidebar, Singapore, split, Szeged, tree, Warsaw
Hier eine Auswahl an Themes:
- Berkeley - links und oben mit Überschriften blau
- Berlin - Header Verlauf blau Footer
- Boadilla - Footer mit Zähler
- default - leer
- EastLansing - grün-türkis, ohne Verlauf
- Hannover - mit Inhalt links im Verlauf
- lined - Header mit Verlauf
- sidebar - mit Inhalt rechts im Verlauf
- Singapore - Header mit Verlauf
- tree - kleiner Header mit Überschriften
Reveal
reveal.js herunterladen und entpacken. Den entpackten Order “reveal.js-master” in “reveal.js” umbenennen. Die Präsentation muss sich im gleichen Verzeichnis wie der Ordner reveal.js befinden.
Notizen
Notizen werden mit “s” angezeigt und folgendermaßen eingegeben:
<div class="notes">
Meine Anmerkung
</div>
Videos & Bilder
Alles, was sich nicht direkt mit Markdown schreiben lässt, kann einfach per HTML eingebunden werden. So z.B. Videos über iframe
oder den HTML5-Video-Befehl .
-
Youtube:
<iframe width="854" height="480" src="https://www.youtube.com/embed/yrRPLBYiiEc" frameborder="0" allowfullscreen></iframe>
-
mp4-Video:
<video src="film.mp4" width=320 height=240 controls>
-
Bilder in einer bestimmten Größe:
{#id .class width=400 height=400px}
Konvertieren
Der Text praesentation.md
wird mit Pandoc in eine HTML-Präsentation konvertiert:
pandoc -i --section-divs -V revealjs-url:./reveal.js -V theme=sky -V transition=convex -t revealjs -s -o revealtest.html testfolie.md
oder man schreibt am Anfang des Dokuments einen YAML-Metadaten-Block:
---
title: "Titel"
author: Autor
date: April 08, 2017
theme: sky
transition: convex
revealjs-url: ./reveal.js
---
Dann wird so konvertiert:
pandoc -i --section-divs -t revealjs -s -o revealtest.html testfolie.md
- Themes: beige, black, blood, league, moon, night, serif, simple, sky, solarized, white
- Übergangseffekte (transition): none, fade, slide, convex, concave, zoom
Theme-Anpassungen
Die Themes liegen in reveal.sj/css/theme
. Diese können einfach angepasst werden.
Oder man legt im Verzeichnis der Präsentationsdatei (praesentation.md) eine neue css-Datei (meinstyle.css) mit folgendem Inhalt an:
@import url('http://fonts.googleapis.com/css?family=Quicksand');
@import url('http://fonts.googleapis.com/css?family=Oswald');
.reveal {
font-size: 32px;
font-family: 'Oswald', 'sans-serif'; }
.reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 {
font-family: 'Quicksand', 'sans-serif';
font-weight:normal;
text-transform: none;
text-shadow: none; }
.reveal h1 { font-size: 2em; }
.reveal h2 { font-size: 1.7em; }
.reveal h3 { font-size: 1.4em; }
.reveal h4 { font-size: 1em; }
Diese wird dann mit dem zusätzlichen Schalter -css meinstyle.css übergeben.
Ein Logo im Hintergrund fügt man mit diesem Quelltext in der meinstyle.css-Datei ein:
body {
background-image: url(logo.png);
background-repeat: no-repeat;
background-position:20px 20px;
# oder auch background-position: right top;
}
Präsentieren
- o - Übersicht
- f - Vollbildmodus
- b - schwarzer Bildschirm
- s - Notizen anzeigen
- Leertaste/Shift-Leertaste - Navigation
- Pfeiltasten - Navigation
Schalter
- -s standalone (eigenständiges Dokument)
- -i incremental (bei Aufzählungen werden die einzelnen Punkte nacheinander angezeigt)
Markdown → Powerpoint
Mit pandoc -o ausgabe.pptx eingabe.md
kann die Präsentation auch in eine Powerpoint-Datei umgewandelt werden.
E-Books
Header
% Buchtitel
% Autor
% Erscheinungsdatum
Titelbild
- Format 3:4 oder 2:3
- Breite: 500-1000 Pixel
- jpg- oder png-Format
Konvertieren
pandoc kap1.md kap2.md kap3.md -t epub3 --toc --epub-cover-image bild.jpg -o ausgabe.epub
Metadaten
In die Datei metadata.xml schreibt man folgenden Inhalt:
<dc:rights>Copyright 2018 Autor</dc:rights>
<dc:description>Beschreibung</dc:description>
<dc:language>de</dc:language>
<dc:publisher>Verlag</dc:publisher>
<dc:identifier id="ISBN"> <dc:identifier>
Konvertieren mit Metadaten
pandoc kap1.md kap2.md kap3.md -t epub3 --toc --epub-metadata metadata.xml --epub-cover-image bild.jpg -o ausgabe.epub
Links
Layout
Das Layout lässt sich über eine CSS-Datei beeinflussen.
Textausrichtung
body, p {
text-align: left;
}
Schriftart
@font-face {
font-family: SourceSansPro;
font-style: normal;
font-weight: normal;
src:url("SourceSansPro.ttf");
}
body {
font-family: "SourceSansPro";
}
Konvertieren unter Einbindung der Schrift:
pandoc kap1.md kap2.md kap3.md -t epub3 --toc --epub-metadata metadata.xml --epub-cover-image bild.jpg --css ebook.css--epub-embed-font SourceSansPro.ttf -o ausgabe.epub