Pandoc


Dokumente konvertieren

Pandoc ist ein universeller Dokumentenkonverter, der sich besonders für die Übersetzung von Markdown - Dokumenten in zahlreiche andere Zielformate eignet.
Mit Pandoc kann man auch schnell Präsentationen erstellen.
Ebenso lassen sich in Markdown verfasste Texte mit Pandoc sehr einfach in ein E-Book umwandeln.

Inhalt

Installation

  1. Pandoc herunterladen und installieren.
  2. 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 https://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 Einbinden 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/ (Linux) bzw. c:\users\USERNAME\AppData\Roaming\pandoc\ (Windows).

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”:

---
title: Titel
subtitle: Untertitel
author: Vorname Name
date: 12.05.2018
abstract: Dieser Beitrag ...
numbersections: true
lang: de-DE 

fontsize: 12pt
linestretch: 1.5
mainfont: "Ubuntu"
sansfont: "Roboto Condensed"
monofont: "Ubuntu Mono"
mathfont:
geometry: a4paper, left=25mm, right=20mm, top=20mm, bottom=20mm

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
	
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

  1. Download der Vorlage und entpacken.
  2. Die Datei letter.latex nach ~/.pandoc/templates kopieren
  3. Im Ordner example befindet sich ein Beispielbrief (letter.md).
  4. 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. Das Ergebnis ist dann eine HTML- oder PDF-Datei.

Der Text wird in Markdown geschrieben und als praesentation.md abgespeichert.

Markdown → Powerpoint

Mit pandoc -o ausgabe.pptx eingabe.md kann die Präsentation auch in eine Powerpoint-Datei umgewandelt werden.

E-Books

% 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

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

aktualisiert am 23.1.2022