pandoc konvertiert zwischen Dokumentformaten: Markdown, HTML, LaTeX, DOCX, ODT, EPUB, PDF und vielen mehr. Es ist das Standardwerkzeug, um Text einmal zu schreiben und in mehreren Zielformaten auszugeben – etwa Dokumentation aus Markdown in PDF und HTML.

Grundschema

pandoc [Optionen] eingabe -o ausgabe

Das Ausgabeformat ergibt sich meist aus der Endung; mit --to lässt es sich überschreiben. Ohne -o schreibt Pandoc nach stdout.

# Unterstützte Formate ansehen
pandoc --list-input-formats
pandoc --list-output-formats

# Version und Optionen
pandoc --version
pandoc --help

Konvertieren zwischen Formaten

# Markdown nach HTML (eigenständige Datei mit CSS)
pandoc doku.md -s --css=stil.css -o doku.html

# Markdown nach DOCX
pandoc konzept.md -o konzept.docx

# Markdown nach PDF (benötigt eine LaTeX-Installation)
pandoc bericht.md -o bericht.pdf --pdf-engine=xelatex

# Microsoft Word nach Markdown
pandoc angebot.docx -t gfm -o angebot.md

# HTML nach Markdown
pandoc seite.html -t gfm -o seite.md

# Mehrere Dateien zusammenführen
pandoc kapitel1.md kapitel2.md kapitel3.md -o buch.docx

Steuerung des Ergebnisses

-s, --standalone        vollständiges Dokument mit Kopf und Fuß
-t, --to FORMAT         Zielformat explizit
-f, --from FORMAT       Quellformat explizit
--toc                   Inhaltsverzeichnis einfügen
--toc-depth=3           Tiefe des Inhaltsverzeichnisses
--number-sections       Abschnitte nummerieren
--highlight-style=tango Syntaxhervorhebung in Code-Blöcken
--metadata title="Titel" Metadaten setzen
-V geometry:margin=2.5cm Variablen für LaTeX-Vorlagen
--reference-doc=ref.docx eigene Vorlage für DOCX
--template=eigene.html   eigene Vorlage für HTML
--lua-filter=f.lua       eigene Transformation

Typische Aufrufe

# Technisches Dokument mit Inhaltsverzeichnis und Nummerierung
pandoc handbuch.md -o handbuch.pdf --pdf-engine=xelatex \
  --toc --number-sections -V geometry:margin=2.5cm \
  -V mainfont="DejaVu Serif" -V lang=de

# Webseite mit eingebettetem CSS
pandoc readme.md -s --embed-resources --standalone \
  --metadata title="Readme" --css=stil.css -o readme.html

# EPUB bauen
pandoc buch/*.md -o buch.epub --toc --metadata title="Handbuch" \
  --metadata author="Hanse Computing"

# DOCX mit betrieblicher Formatvorlage
pandoc entwurf.md --reference-doc=vorlage.docx -o entwurf.docx

# Aus Standardeingang (z. B. in einer Pipe)
cat bericht.md | pandoc -f gfm -t html -s -o bericht.html

Vorlagen und Variablen

# Vorlage im aktuellen Stand ausgeben und anpassen
pandoc -D html > eigene.html
pandoc -D latex > eigene.tex

# Eigene Variablen übergeben
pandoc in.md -s --template=eigene.html \
  -V firma="Hanse Computing" -V jahr=2026 -o out.html

Praxis-Tipps

  • PDF braucht eine Engine: Pandoc erzeugt PDFs nicht selbst, sondern über LaTeX (xelatex, lualatex) oder einen HTML-Weg (wkhtmltopdf, weasyprint). Fehlt die Engine, bricht die Konvertierung mit einer klaren Meldung ab. Für Umlaute und fremde Schriften ist xelatex die zuverlässigere Variante.
  • YAML-Kopf nutzen: Titel, Autor und Datum lassen sich direkt am Anfang der Markdown-Datei setzen; das hält Aufrufe kurz und die Datei selbst beschreibend.
  • --standalone nicht vergessen: Ohne diese Option entsteht nur ein Fragment ohne <head> – der häufigste Grund für unbrauchbare HTML-Ausgaben.
  • --embed-resources: Bilder und CSS werden in die HTML-Datei eingebettet, sodass sie sich als einzelne Datei weitergeben lässt.
  • Rückkonvertierung ist verlustbehaftet: Von DOCX nach Markdown gehen Formatierungen verloren. Für einen Austausch ist es brauchbar, für ein Layout nicht.

Verwandte Grundlagen: Markdown-Referenz, bash-Befehle, Markdown-Referenz, LaTeX-Befehle.