AA_baggage_ayla87_sxc_1189176.jpg

© Ayla87, sxc.hu

Am laufenden Band

LaTeX mit Daten aus externen Quellen anreichern

13.05.2013
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
 

Ähnliche Artikel

Kommentare

Infos zur Publikation

title_2014_10

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

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

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 4 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...