Mithilfe des konsolenbasierten Programms Pandoc konvertieren Sie verschiedenste Dokumentenformate in fast beliebige andere.
Das Grundprinzip einer Auszeichnungssprache für Dokumente ist denkbar einfach: Sie trennt Form und Inhalt. Der Inhalt, der eigentliche Text, steht in Reinform in der Datei. Formatierungen, wie beispielsweise Fettdruck oder Kursivschrift, werden ebenso über Befehle markiert wie Gliederungselemente, etwa Überschriften oder Aufzählungen. Das macht es leicht, das Dokument zwischen verschiedenen Formaten zu konvertieren.
Zu den einfachen Auszeichnungssprachen zählt Markdown [1], auf dem Pandoc aufbaut. Das Tool erlaubt es Ihnen, mit nichts weiter als einem Texteditor eine DOCX-Datei, ODT-Datei, PDF-Datei, RTF-Datei, eine Präsentation oder ein E-Book zu erstellen oder zu konvertieren. Sämtliche in diesem Artikel verwendeten Beispieldokumente finden Sie auf der Heft-DVD.
Pandoc [2] steht für diverse Betriebssysteme bereit, darunter auch für Linux. Bei etlichen Distributionen gehört die Software zum Bestandteil der Repositories und lässt sich entsprechend über den Paketmanager installieren [3]. Unter Ubuntu befördern Sie das Programm beispielsweise mit dem Befehl sudo apt install pandoc aufs System. Alternativ laden Sie die Binärdateien herunter oder kompilieren das Programm aus den Quellen selbst [4].
Beim Konvertieren in das PDF-Format nutzt Pandoc LaTeX, weswegen Sie TeX auf Ihrem System einrichten müssen, beispielsweise Live TeX [5]. Sie bedienen Pandoc anschließend über das Terminal.
Einfach umwandeln
Listing 1 zeigt den grundlegenden Befehl zum Konvertieren, den Sie in Abwandlungen für alle Aufgaben nutzen. Der erste Schalter -s (“standalone”) sorgt dafür, dass Sie eine vollständige Datei als Ausgabe erhalten. Pandoc erzeugt dann beispielsweise eine komplette HTML-Datei inklusive Header und Footer, die sich direkt in einem Browser öffnen lässt. Ohne den Schalter erhalten Sie als Ausgabe nur den HTML-Code mit dem Inhalt der Eingabedatei. Möchten Sie in die Ausgabedatei ein Inhaltsverzeichnis aufnehmen, verwenden Sie dazu den Schalter --toc.
Listing 1
$ pandoc -s --toc -f Eingabeformat -t Ausgabeformat Eingabedatei -o Ausgabedatei
Anschließend legen Sie mit -f und -t das Ein- und Ausgabeformat fest. Ergibt sich das Format eindeutig aus den verwendeten Dateinamen, müssen Sie diese Schalter nicht angeben. Zum Schluss benennen Sie noch die Ein- und Ausgabedatei. Als Eingabe kann sowohl eine lokal gespeicherte Datei dienen als auch eine Internet-Ressource, die Sie als URL angeben.
Die Tabelle “Ein- und Ausgabeformate” zeigt eine Auswahl der für die Praxis wichtigsten Dokumentenformate, mit denen Pandoc umzugehen versteht. Beachten Sie, dass die Software bestimmte Formate nur ausgibt, aber nicht einliest. So schreibt sie beispielsweise zwar PDF-Dateien, wandelt diese jedoch nicht in andere Formate um.
|
Format |
Beschreibung |
|---|---|
|
Eingabeformate |
|
|
docbook |
DocBook |
|
docx |
Microsoft Word (nur DOCX) |
|
epub |
EPUB |
|
html |
HTML |
|
latex |
LaTeX |
|
markdown |
Markdown |
|
mediawiki |
Mediawiki |
|
odt |
Libre/OpenOffice-Text |
|
Ausgabeformate |
|
|
beamer |
LaTeX-Präsentation |
|
context |
ConTeXt |
|
docbook |
DocBook |
|
docx |
Microsoft Word (nur DOCX) |
|
epub |
EPUB |
|
html |
HTML |
|
latex |
LaTeX |
|
markdown |
Markdown |
|
mediawiki |
Mediawiki |
|
odt |
Libre/OpenOffice-Text |
|
opendocument |
OpenDocument XML |
|
|
PDF-Datei (via LaTeX) |
|
plain |
reiner Text |
|
pptx |
Powerpoint-Präsentation (nur PPTX) |
|
rtf |
Rich Text Format |
Statt des schlichten Layouts aus dem vorherigen Beispiel lässt sich eine HTML-Datei auch mit einem aufwendigeren Design ausstatten. Das definieren Sie in einer CSS-Datei, die Pandoc in die Ausgabedatei einbindet (Listing 2, erste Zeile).
Listing 2
$ pandoc -s -c pandoc.css pandoc.txt -o pandoccss.html $ pandoc -s pandoc.txt -o pandoc.tex
Den Befehl zum Konvertieren eines Textdokuments in eine LaTeX-Datei zeigt die zweite Zeile von Listing 2. Auf diese Weise lassen sich auch ohne LaTeX-Kenntnisse einfach und schnell Dokumente in professionellem Textsatz erzeugen. Nach demselben Prinzip erstellen Sie beispielsweise auch eine RTF-Datei, ein Microsoft-Word-DOCX, eine ODF-Textdatei oder ein PDF-Dokument.
Formatierter Text
In die Eingabedatei lassen sich auch Auszeichnungsbefehle für Formatierungen und Gliederungen aufnehmen und als Markdown-Datei speichern. Das Beispiel aus Listing 3 zeigt eine einfache Markdown-Datei. In den ersten drei Zeilen stehen, jeweils mit einem vorangestellten %, der Titel, die Autoren (durch Semikolon getrennt) und das Datum.
Es folgt der Inhalt des Dokuments mit den Markierungen für die Formatierung, wie etwa Fettdruck (Zeile 5) und Kursivsatz (Zeile 8). Es gibt auch Markierungen für die Gliederung, wie etwa Überschriften (Zeile 4, 6, 7 und 9) und Listen (Zeilen 12 und 13). Zeile 10 zeigt einen eingefügten Link.
Listing 3
% Eine einfache Markdown-Datei % Antonia Beispiel; Anton Muster % 04.07.2018 # Begrüßung **Hallo Welt!** # Wer bin ich? ## Welcher Dateityp bin ich? Ich bin eine einfache *Markdown-Datei*. ## Was ist Markdown? [Markdown](https://daringfireball.net/projects/markdown/) ist eine einfache Auszeichnungssprache. Markdown ist: * einfach zu lernen * einfach in andere Formate umzuwandeln
Der Befehl aus der ersten Zeile von Listing 4 konvertiert diese Markdown-Datei in ein DOCX-Dokument, wobei der Schalter --toc Pandoc veranlasst, ein Inhaltsverzeichnis zu erstellen.
LaTeX- und DOCX-Dateien ineinander konvertieren
Wer eine Open-Source-Bürosuite oder LaTeX einem proprietären Office-Programm vorzieht, der weiß, dass es bei der gemeinsamen Arbeit an einem Projekt oder beim Austausch von Dateien Probleme geben kann. So gehört das Hin- und Zurückkonvertieren von DOCX-, ODT- und LaTeX-Dateien für Linux-Nutzer zum Alltag.
Während sich DOCX- und ODT-Dateien noch mit LibreOffice ineinander konvertieren lassen, bereitet das Umwandeln von LaTeX- und DOCX-Dateien ineinander in der Praxis größere Probleme. Pandoc erweist sich dabei als große Hilfe: Es kann aus einer LaTeX-Datei direkt ein DOCX-Schriftstück erzeugen; umgekehrt funktioniert das ebenso.
Listing 4 zeigt in Zeile 2 den Befehl, um eine DOCX-Datei in eine LaTeX-Datei umzuwandeln. Wenn die DOCX-Datei Bilder enthält, weisen Sie Pandoc an, diese zu extrahieren. Daraufhin speichert es alle Bilddateien im Unterordner media/ des aktuellen Verzeichnisses (repräsentiert durch einen Punkt), damit LaTeX sie später findet.
Sie können vorgeben, wie der LaTeX-Code aussehen soll. So verwendet die Software dafür in der Grundeinstellung die Klasse article. Möchten Sie stattdessen beispielsweise die Komma-Klasse scrartcl nutzen, verwenden Sie den abgewandelten Befehl aus der dritten Zeile von Listing 4.
Listing 4
§ pandoc -s --toc pandoc.md -o pandocmd.docx $ pandoc -s --toc --extract-media="." pandocdocx.docx -o pandocdocx.tex $ pandoc -s --toc --extract-media="." --variable documentclass="scrartcl" pandocdocx.docx -o pandocdocx.tex $ pandoc -s --toc pandoctex.tex -o pandoctex.docx $ pandoc -s -t beamer pandoc.md -o pandocbeamer.pdf
Für das Umwandeln einer DOCX-Datei in ein LaTeX-Dokument gilt es, einiges an Vorarbeit zu leisten. Sie müssen genau darauf achten, dass sämtliche Formatierungen über eine Formatvorlage durch direkte Formatierung stattfinden: Nur so erkennt Pandoc die Formatierung des Texts im Dokument, andernfalls bekommen Sie als Ausgabe nicht viel mehr als den unformatierten Text der Eingabedatei.
Eine einfache LaTeX-Datei mit Gliederungs- und Formatierungsbefehlen sowie Formelsatz und einem Bild zeigt Listing 5. Den Befehl, um aus dieser LaTeX-Datei eine DOCX-Datei zu erzeugen, finden Sie in Zeile 4 von Listing 4.
Das Konvertieren einer LaTeX-Datei in eine DOCX-Datei bereitet wenig Probleme. Pandoc erkennt Formatierungen und Gliederungen und übernimmt sie, dasselbe gilt für Bilder. Mathematische Formeln bereiten allerdings Schwierigkeiten. Komplexe Formeln erstellen Sie am besten mit dem LaTeX-Formeleditor [6] und fügen sie dann nachträglich in die DOCX-Datei ein.
Listing 5
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{graphicx,hyperref}
\title{Eine einfache \LaTeX -Datei}
\author{Antonia Beispiel \and Anton Muster}
\date{04.07.2018}
\begin{document}
\maketitle
\section{Begrüßung}
\textbf{Hallo Welt!}
\section{Wer bin ich?}
\subsection{Welcher Dateityp bin ich?}
Ich bin eine einfache \textit{\LaTeX -Datei}.\footnote{Zu erkennen an der Dateiendung \texttt{.tex}.}
\subsection{Was kann \LaTeX ?}
\href{https://www.latex-project.org/}{\LaTeX } kann sehr viel, unter anderem:
\begin{itemize}
\item Formeln setzen
\item Bilder einbinden
\end{itemize}
\subsection{Formeln setzen}
Dies ist eine Beispielformel:\\
$ F(n) = \frac{(\varphi)^n - (-\frac{1}{\varphi})^n}{\sqrt{5}} $
\subsection{Bilder einbinden}
Dies ist ein Beispielbild:\\
\includegraphics{bild.jpg}
\end{document}
LaTeX-Beamer-Präsentationen
Mit Pandoc erstellen Sie professionelle Präsentationen ohne Powerpoint und ohne sich in die LaTeX-Klasse beamer [7] für Präsentationen einarbeiten zu müssen. Dazu schreiben Sie den Inhalt Ihrer Folien im einfachsten Fall als Markdown-Datei. Dann wandeln Sie diese mit Pandoc in eine professionelle Präsentation mit der LaTeX-Klasse beamer um. Zeile 5 in Listing 4 zeigt den Befehl, um aus der Markdown-Datei aus Listing 3 eine Beamer-Präsentation zu erstellen.
Die fertige Präsentation besteht aus einer Titelfolie, gefolgt von je einer einzelnen Folie mit dem Text unter einer Überschrift der obersten Ebene. Nach demselben Prinzip verwandeln Sie beispielsweise auch eine DOCX-Datei in eine LaTeX-Beamer-Präsentationen.
E-Books erstellen
Beim Erstellen eines E-Books hilft Ihnen Pandoc ebenfalls. Schreiben Sie Ihr E-Book dazu je nach Vorliebe in Markdown, Microsoft Word, LibreOffice oder LaTeX, und wandeln Sie die Datei dann einfach in eine EPUB-Datei um. Wie für DOCX- und ODT-Dateien gilt auch hier, dass Sie sämtliche Formatierungen über eine Formatvorlage vornehmen müssen, damit Pandoc sie richtig übernimmt.
PDF-Dateien
Mit den weit verbreiteten PDF-Dateien kommt Pandoc nicht unmittelbar zurecht, sondern nur auf dem Umweg über LaTeX. Als Eingabedatei lassen sich PDF-Dateien entsprechend nicht verwenden. Die Ausgabe einer PDF-Datei erfolgt grundsätzlich via LaTeX.
Das bietet den Vorteil, dass Sie aus einer einfachen Text- oder Markdown-Datei ein Dokument mit professionellem Textsatz erstellen können. Es bringt aber auch den Nachteil mit sich, dass das Layout der Ausgabedatei deutlich von jenem der Eingabedatei abweicht, wenn Sie mit Pandoc beispielsweise eine PDF-Datei aus einer DOCX- oder ODT-Datei erstellen.
Formatvorlagen
Die Formatvorlagen, die Pandoc für die Ausgabedateien nutzt, finden Sie im Ordner /usr/share/pandoc-Version/data/templates. Von dort bezieht das Tool die Informationen, wie es eine Ausgabedatei in einem bestimmten Dateiformat formatieren soll.
Möchten Sie die Formatierung für ein bestimmtes Ausgabeformat dauerhaft abändern, bearbeiten Sie die entsprechende Vorlagendatei. Um einmalig von der hinterlegten Vorlage abzuweichen, nutzen Sie beim Aufruf von Pandoc den Schalter --variable Variable="Wert".
Wenn Sie wissen möchten, welche Variablen Sie bei einem bestimmten Ausgabeformat verändern können, öffnen Sie die entsprechende Vorlagendatei. Alle veränderbaren Variablen stehen dort zwischen zwei Dollarzeichen ($Variable$). Diese bringen Sie samt des gewünschten Werts im Schalter --variable unter.
Fazit
Pandoc erweist sich als äußerst hilfreiches Werkzeug für alle, die Dokumente in verschiedenen Formaten untereinander konvertieren möchten. Es beherrscht auch das Erstellen von Dokumenten aus einer einfachen Textdatei heraus ohne das entsprechende Programm. Ganz ohne einen letzten Feinschliff von Hand kommt eine konvertierte Datei zwar normalerweise nicht aus, aber trotzdem geht das Konvertieren mit Pandoc wesentlich schneller und einfacher von der Hand als das manuelle Übertragen in ein anderes Format.
Infos
-
Pandoc: https://pandoc.org/
-
Pandoc installieren: https://pandoc.org/installing.html#linux
-
Pandoc-Binärdateien: https://github.com/jgm/pandoc/releases/tag/2.2.1
-
Live TeX: https://www.tug.org/texlive/
-
LaTeX-Formeleditor: http://www.zahlen-kern.de/editor/index.php
-
Slides mit der LaTeX-Klasse Beamer: Daniel Tibi, “In Szene gesetzt”, LU 02/2013, S. 82, https://www.linux-community.de/28145





