AA_baggage_ayla87_sxc_1189176.jpg

© Ayla87, sxc.hu

LaTeX mit Daten aus externen Quellen anreichern

Am laufenden Band

Mit Skriptsprachen wie Perl oder Python verheiraten Sie Datenbanken und LaTeX zu einem Dream-Team beim Seriendruck.

Zur strukturierten und effizienten Verwalten von Daten stehen leistungsfähige Datenbanksysteme (DBS) wie PostgreSQL [1], Apache CouchDB [2], SQLite [3] oder BaseX [4] bereit. Die Programme sind ausschließlich auf diesen Einsatzzweck hin optimiert. Bei Dokumenten mit perfektem Druckbild gilt dagegen das Textsatzsystem LaTeX als Maß der Dinge. Dieser Beitrag zeigt, wie Sie die beiden Spezialisten zu einem Dream-Team vereinen.

Die Abfrage der Datenbank – also der Zugriff auf die gespeicherten Daten – erfolgt über standardisierte Schnittstellen und Abfragesprachen, wie SQL oder XQuery. Inzwischen verfügen fast alle Programmiersprachen über entsprechende Module, um die Kommunikation über diese Schnittstellen zu kapseln und damit das Programmieren und den Zugriff auf die Daten zu vereinfachen. Wie Sie die gelesenen Daten danach ausgeben oder weiterverarbeiten, steht Ihnen frei. Mit Hilfe von LaTeX erhalten Sie in jedem Fall ein optisch ansprechendes Ergebnis.

Rückblick

Im ersten Teil dieses Workshops bildete LaTeX den zentralen Punkt, an den alle Erweiterungen andockten [5]. Dabei erfolgte der Zugriff ausschließlich über Bordmittel in Form von LaTeX-Paketen. Selbst die Anfrage an die Datenbank gehörte zum Dokument.

In diesem Teil des Workshops erfolgt der Einsatz von LaTeX nur noch als Mittel zum Zweck. Den Hintergrund dafür stellt das das Zerlegen des Ablaufs in einzelne, leichter zu überschauende und besser zu pflegende Schritte dar. Das eröffnet auch die Möglichkeit für komplexere Datenbankabfragen. Den Zugriff auf das DBS übernehmen nun höhere Programmiersprachen, wie PHP, Python, Perl oder Ruby (Abbildung 1).

Abbildung 1: Das Zerlegen des Ablaufs in separate Schritte vereinfacht das Anpassen an eine veränderte Umgebung.

LaTeX dient dabei lediglich zum Vorbereiten der druckreifen Ausgabe ins Zielformat, etwa nach Postscript oder PDF. Um alles andere – das Generieren des LaTeX-Dokuments mit den Inhalten aus der Datenbank und das Übersetzen ins gewünschte Zielformat – kümmern sich die Programmzeilen aus dem Shell-Skript drumherum (Listing 1).

Listing 1

#!/bin/bash
python namensschilder.py > namensschilder.tex
pdflatex namensschilder.tex
pdfnup --nup 1x2 --no-landscape --outfile a.pdf namensschilder.pdf
pdfnup --nup 2x1 --outfile namensschilder_druck.pdf a.pdf
python teilnehmerliste.py > teilnehmerliste.tex
pdflatex teilnehmerliste.tex

Vorgehen

Alle nachfolgend gezeigten Schritte beziehen sich auf ein praktisches Beispiel, das Erstellen von Unterlagen für eine Veranstaltung. Dazu gehört neben Namensschildern für alle Mitwirkenden (Referenten, Organisatoren, Helfer, Presse) eine Liste der Teilnehmer. Das Ziel besteht darin, aus einer zentralen Datenbasis alle Unterlagen zu erstellen – und das möglichst automatisiert ohne Handarbeit.

Als Inspiration diente der Vortrag "Konferenzmanagement mit LaTeX" von Uwe Ziegenhans [6] sowie die Vorbereitungen zum jährlich im Spätherbst in Potsdam stattfindenden Brandenburger Linux-Infotag (BLIT) [7].

Bei diesem bildet das Konferenzverwaltungssystem Pentabarf [8] die Grundlage zum Verwalten aller beteiligten Personen, Aussteller und Vorträge (Abbildung 2). Ursprünglich für die Veranstaltungen des Chaos-Computer-Clubs entwickelt, hat Pentabarf inzwischen nicht nur in diesem Genre Maßstäbe gesetzt.

Abbildung 2: Die Veranstalter des BLIT setzen zum Verwalten der Teilnehmer auf die bewährte Software Pentabarf.

Das System nutzt PostgreSQL als Datenbank und verfügt über eine Reihe von Filtern zum Export der Daten in Formate wie HTML, XML und CSV. Bislang kommt dabei meist der CSV-Export zum Einsatz, der die Datenbasis für Drucksachen bereitstellt. Der direkte Zugriff auf PostgreSQL wäre zwar möglich, der Weg über CSV genügt aber aufgrund der überschaubaren Datenmenge bislang vollkommen.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • LaTeX mit Daten aus externen Quellen anreichern
    Ob Serienbrief oder Teilnehmerliste – mit dem richtigen Adapter befüllen Sie LaTeX-Dokumente problemlos mit den Feldinhalten einer Datenbank und erstellen so Druckerzeugnisse in perfekter Qualität.
  • LaTeX mit Daten aus externen Quellen anreichern (Teil 3)
    Schicker Textsatz und Abbildungen dämmen die Ausbreitung von Bleiwüsten ein. Die Kombination aus LaTeX und externen Daten ist dabei weniger heikel, als man denkt – und ermöglicht große Freiräume.
  • Gnome-Tipps
    Gnome ist neben KDE die zweite große Desktopumgebung für Linux. In den Gnome-Tipps stellen wir regelmäßig Nützliches und Praktisches für die alternative grafische Oberfläche vor.
  • Seite 42
  • LaTeX-Workshop, Teil IV
    Im letzten Teil unseres LaTeX-Workshops wollen wir ein paar Besonderheiten behandeln: Wir geben Tipps zum Aufbau komplexer Dokumente und zum Datenaustausch durch PDF- und HTML-Export.
Kommentare

Infos zur Publikation

LU 09/2016: Ciao, Windows!

Digitale Ausgabe: Preis € 5,99
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Aktuelle Fragen

Scannen nicht möglich
Werner Hahn, 19.08.2016 22:33, 3 Antworten
Laptop DELL Latitude E6510 mit Ubuntu 16,04, Canon Pixma MG5450. Das Drucken funktioniert, Scann...
Wie kann man das berichtigen
Udo Muelle, 17.07.2016 20:39, 1 Antworten
Fehlschlag beim Holen von http://extra.linuxmint.com/dists/rosa/main/binary-i386/Packages Hash-S...
Installation Genimotion
Horst Müller, 15.07.2016 17:00, 1 Antworten
Hallo, ich kann Genimotion nicht installieren. Folgende Fehlermeldung habe ich beim Aufruf erh...
Probleme beim Hochfahren der Terastaion 5400 mit Unix-Distrib
Sheldon Cooper, 10.07.2016 09:32, 0 Antworten
Hallo ihr lieben, habe seit zwei Tagen das Problem, das das NAS (Raid5) nicht mehr sauber hoch...
Mit Firewire Videos improtieren?
Werner Hahn, 09.06.2016 11:06, 5 Antworten
Ich besitze den Camcorder Panasonic NV-GS330, bei dem die Videos in guter Qualität nur über den 4...