Headerbild: Dokumentenautomation mit PythonTeX

Dokumentenautomation mit PythonTeX

Effiziente und fehlerfreie Berichte oder Aufsätze zu erstellen, ist der Fokus der Dokumentenautomation mit PythonTeX. PythonTex ist ein Zusatzpaket, welches in Verbindung mit LaTeX genutzt werden kann, um Dokumenteninhalte dynamisch mit Hilfe der Programmiersprache Python zu generieren.

Autor von PythonTeX ist Geoffrey M. Poore. Das Paket ist LaTeX-typisch frei verfügbar und kann bei GitHub heruntergeladen und installiert werden. Üblicherweise ist das Paket aber in allen nennenswerten LaTeX-Distributionen bereits enthalten beziehungsweise kann über deren Paketmanager einfach installiert werden. In meinem macTeX 2018 war die PythonTeX-Version 0.16 enthalten. die ich für diesen Beitrag auch verwendet habe.

Zielgruppe

Für wen ist die Dokumentenautomation mit PythonTeX eigentlich interessant, werden Sie sich vielleicht fragen? – In erster Linie sind das natürlich LaTeX-Anwender. Die Kernfrage lautet jedoch, welche Vorteile habe ich, wenn ich meine Dokumente automatisiert erstellen lasse?

Automatisierung befreit uns von repetitiven Tätigkeiten, die in der Regel langweilig, aufwendig und oftmals auch fehlerträchtig sind. Alle, die viel schreiben, kennen das. Beim Setzen von Tabellen, mathematischen Formeln und ähnlichen Dingen mehr, verschreibt man sich schnell. Sofern man seine Fehler vor der Veröffentlichung des Dokuments bemerkt, hat man Glück. Andernfalls ist das Ganze zumindest peinlich. Außerdem sind gerade mathematische Formeln mit einem nicht unerheblichen Aufwand verbunden. Ähnliches gilt aber auch für das Erstellen von Grafiken und anderen Dingen, die in einem Dokument vorkommen. Dabei lassen sich die jeweiligen Erstellungsprozesse von vielen dieser Dinge oft einfach beschreiben

Es wäre daher schön, wenn es Mittel und Wege gäbe, die einem Autor die Arbeit dahingehend erleichtern, die oben genannten Inhalte, die manuell aufwendig zu erstellen sind, automatisch zu generieren.

Dokumentenautomation mit PythonTeX

PythonTeX nimmt die Idee der automatischen Dokumentenerstellung genau in diesem Sinne auf, den Autor von zeitintensiven, fehlerträchtigen Aufgaben bei der Erstellung seiner Dokumente zu entlasten. Wer die Programmiersprache Python beherrscht, kann mittels PythonTeX viele Inhalte automatisiert erstellen lassen. Dazu beschreibt er die Inhalte mittels Python-Programmen.

Auf diese Weise lassen sich mathematische Formeln, Berechnungen, Tabellen und andere Dinge mehr oft sehr einfach und vor allem auch effizient und fehlerfrei erstellen. Zudem können Dokumente durch die Anbindung an eine Datenbank oder auch Dateien mit Messergebnissen oder ähnlichen Daten, stets aktuell gehalten werden. Das betreffende LaTeX-Dokument muss lediglich neu übersetzt werden. Die enthaltenen Python-Routinen werden ausgeführt und das Dokument mit aktuellen Daten neu erstellt.

Wer also viel schreibt und der Programmiersprache Python mächtig ist, kann sich mit PythonTeX das Leben deutlich einfacher machen.

Leider ist ein Blog-Beitrag, der in HTML geschrieben wird, kein gutes Medium, um die Fähigkeiten von PythonTeX glaubhaft und überzeugend zu demonstrieren. Ich habe daher einen kurzen Beispiel-Artikel verfasst, der den Umgang mit PythonTex demonstriert.

Praxisbeispiel

Für den Artikel, den Sie sich unten als PDF-Dokument ansehen und herunterladen können, habe ich macTeX 2018 und PythonTeX in der Version 0.16 unter macOS 10.14 (Mojave) verwendet. Python ist auf meinem Rechner in den Versionen 2.7, in macOS integriert, und 3.7.0 installiert. PythonTeX kann mit beiden Versionen umgehen.

Ein LaTeX-Dokument, in welchem PythonTeX verwendet werden soll, muss mit

\usepackage{pythontex}

PythonTeX einbinden. Die Übersetzung des Dokuments erfordert dann mindestens drei Schritte:

  1. Das Dokument ist mit latex, pdflatex, … zu übersetzen. Dabei werden einige Dateien erzeugt, die dann pythontex für seine Arbeit benötigt.
  2. Mit pythontex werden nun die Python-Anweisungen im Dokument ausgeführt und die Resultate werden in entsprechenden Zwischendateien gespeichert.
  3. Ein weiterer Durchlauf von pdflatex und Co. bindet die im vorigen Schritt erstellten Zwischendateien ein und generiert so das abschließende Dokument.

Wenn noch Inhalts- oder sonstige Verzeichnisse aktualisiert werden müssen, sind noch weitere Übersetzungläufe erforderlich – Sie kennen das.

Welche Python-Version genutzt werden soll, kann pythontex über eine Kommandozeilenoption mitgeteilt werden.

$ pythontex --interpreter python:python3 DokumentName

nutzt beispielsweise Python 3.

Wem das manuelle Übersetzen zu nervig ist, kann latexmk nutzen, um die notwendigen Übersetzungsläufe feststellen und automatisch ausführen zu lassen.

Mit diesem Grundwissen ausgerüstet, können Sie sich bereits daran machen, PythonTeX selbst auszuprobieren. In der Dokumentation von PythonTex finden Sie eine Schnellstart-Anleitung sowie natürlich auch eine ausführliche Dokumentation aller Features und Optionen. – Probieren Sie es aus. Sofern Sie mit LaTeX umgehen und Python programmieren können, werden Sie feststellen, sehr schnell und effizient mit PythonTeX arbeiten zu können.

Hier nun das versprochene Beispiel-Dokument zum Download.

Beispiel-Artikel

Fazit

Wenngleich PythonTex sich sicherlich vornehmlich an wissenschaftlich orientierte LaTeX-Anwender richtet, ist das Paket doch auch für jeden anderen LaTeX-Anwender eine echte Bereicherung. Die Dokumentenautomation mit PythonTeX ist, vorausgesetzt man kann Python programmieren, kein Buch mit sieben Siegeln. Es ist fast keine Einarbeitung erforderlich. Man kann gleich produktiv loslegen.

Wie das Beispiel-Dokument hoffentlich anschaulich zeigt, kann PythonTeX die Arbeitseffizienz signifikant steigern.

Karsten Brodmann

Karsten Brodmann

Karsten Brodmann hat an der Universität Osnabrück BWL/Wirtschaftsinformatik studiert. Er hat viele Jahre in der IT gearbeitet und dort Web- und Datenbankanwendungen entwickelt. Seit Gründung der Punkt-Akademie veröffentlicht Karsten Brodmann auch Schulungsvideos zur Datenbankentwicklung, Unix und Programmierung bei Udemy. In seiner Freizeit fotografiert Karsten Brodmann gerne. Seit vielen Jahren fotografiert er analog und digital. Dabei behält er jeweils den gesamten Workflow in der eigenen Hand, von der Aufnahme über die Dunkelkammer oder auch den Scanner sowie die Bildbearbeitung und den Ausdruck am PC.

Weitere Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.