Dokumentenformate mit Pandoc umwandeln

Aus LinuxUser 09/2018

Dokumentenformate mit Pandoc umwandeln

© Michal Bednarek, 123RF

Bäumchen wechsle dich

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

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

  1. Markdown: https://daringfireball.net/projects/markdown/

  2. Pandoc: https://pandoc.org/

  3. Pandoc installieren: https://pandoc.org/installing.html#linux

  4. Pandoc-Binärdateien: https://github.com/jgm/pandoc/releases/tag/2.2.1

  5. Live TeX: https://www.tug.org/texlive/

  6. LaTeX-Formeleditor: http://www.zahlen-kern.de/editor/index.php

  7. Slides mit der LaTeX-Klasse Beamer: Daniel Tibi, “In Szene gesetzt”, LU 02/2013, S. 82, https://www.linux-community.de/28145

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 09/2018 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben