Login
Newsletter
Werbung

Do, 20. Juni 2013, 15:00

PDF-Dokumente schreiben mit Pandoc und Markdown

Fußnoten

Fußnoten werden erzeugt, indem in Fließtext ein Fußnotenanker eingesetzt wird, während der eigentliche Fußnotentext grundsätzlich beliebig irgendwo im Markdown-Dokument platziert werden kann (sinnvollerweise aber außerhalb von Blockelementen wie Listen, Tabellen, usw.). So kann man den jeweiligen Fußnotentext etwa direkt unterhalb des jeweiligen Abschnittes platzieren oder alle Fußnoten am Ende des Dokumentes sammeln. Die Verbindung zwischen Anker und Fußnotentext wird dabei durch beliebige Etiketten hergestellt (siehe im Beispieldokument [^blibb] und [^blubb]), wobei auch einfach manuell durchnummeriert werden kann ([^1], [^2], usw.).

Es gibt aber auch die Möglichkeit, wie bei LaTeX die Fußnoten direkt in den Fließtext zu schreiben (»inline footnotes«). Beide Methoden können in demselben Dokument auch kombiniert werden, was die Verwendung von Fußnoten bei Pandoc sehr flexibel macht.

Die generierte PDF-Datei aus dem Beispieldokument mit einer speziellen Dokumentenvorlage

Daniel Stender

Die generierte PDF-Datei aus dem Beispieldokument mit einer speziellen Dokumentenvorlage

PDF erzeugen

Im Unterschied zu dem Dokumentenprozessor Rst2pdf, der PDF-Dateien aus reST-Quellcode direkt erzeugt und dafür die PDF-Bibliothek von Reportlab benutzt, greift Pandoc auf ein installiertes LaTeX-System zu, um PDF-Dateien zu generieren, wenn .pdf als Ausgabeformat gewählt wird.

Eine andere Möglichkeit ist es aber, den LibreOffice Writer als PDF-Engine einzusetzen: Zunächst erzeugt man aus dem Markdown-Quellcode eine ODT-Datei. Dabei muss beachtet werden, dass der Dokumentenkopf mit den Angaben für Title, Author und Date (siehe Beispieldokument) eine derjenigen Markdown-Erweiterungen von Pandoc ist, die beim Kompilieren extra freigeschaltet werden müssen:

$ pandoc -f markdown+mmd_title_block -o beispiel1.odt beispiel1.md

Die entstandene Datei kann man nun in LibreOffice Writer laden, in diesem eventuell zunächst weiter bearbeiten und dort dann als PDF-Dokument exportieren. Eine einfachere Lösung ist es aber, Unoconv für die Konvertierung zu benutzen:

$ unoconv beispiel1.odt

Dieser Konverter wird durch das gleichnamige Paket unoconv über den Paketmanager installiert und generiert automatisch eine PDF-Datei, wenn nichts anderes beim Aufruf angegeben wird.

Templates

Das so generierte ODT- bzw. PDF-Dokument ist allerdings im Format »US-Letter«. Zu den Standardeinstellungen, die LibreOffice Writer auswirft, gehört es zum Beispiel auch, dass die Standard-Absatzvorlage sowie Autor und Datum auf »linksbündig« eingestellt sind. Nun möchte man das erste eventuell lieber auf Blocksatz umstellen und die beiden letzten auf »zentriert«, wie der darüber stehende Titel auch.

Für diese und andere Dokumenteinstellungen (wie z.B. die verwendeten Schriften) bietet Unoconv die Möglichkeit, LibreOffice-Templates zu verwenden. Ein solches Template gewinnt man, indem man ein beliebiges Dokument in LibreOffice Writer als ODF-Textdokumentenvorlage (.ott) abspeichert. Die gesamten Einstellungen dieser Dokumentenvorlage können dann ganz einfach auf die generierte PDF-Datei übertragen werden:

$ unoconv -t meintemplate.ott beispiel1.odt

In der Praxis empfiehlt es sich, die ODT-Datei aus dem ersten Konvertierungslauf separat als Vorlage für weitere Konvertierungen abzuspeichern. Eine Dokumentenvorlage kann auch völlig leer sein und muss keinen Text in sich tragen und lässt sich natürlich auch für andere Dokumente verwenden.

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung