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