Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
LaTeX <strong>und</strong> Datenbanken<br />
Praxis<br />
das DBS übernehmen nun höhere Programmiersprachen<br />
wie PHP, Python, Perl<br />
oder Ruby 1 .<br />
LaTeX dient dabei lediglich zum Vorbereiten<br />
der druckreifen Ausgabe ins<br />
Zielformat, etwa nach Postscript oder<br />
PDF. Um alles andere – das Generieren<br />
des LaTeX-Dokumentes mit den Inhalten<br />
aus der Datenbank <strong>und</strong> das Übersetzen<br />
ins gewünschte Zielformat – kümmern<br />
sich die Programmzeilen aus dem Shell-<br />
Skript drumherum (Listing 1).<br />
Vorgehen<br />
Alle nachfolgend gezeigten Schritte beziehen<br />
sich auf ein praktisches Beispiel,<br />
das Erstellen von Unterlagen für eine<br />
Veranstaltung. Dazu gehört neben<br />
Namensschildern für alle Mitwirkenden<br />
(Referenten, Organisatoren, Helfer,<br />
Presse) eine Liste der Teilnehmer. Das<br />
Ziel besteht darin, aus einer zentralen<br />
Datenbasis alle Unterlagen zu erstellen –<br />
<strong>und</strong> das möglichst automatisiert ohne<br />
Handarbeit.<br />
Als Inspiration diente der Vortrag<br />
„Konferenzmanagement mit LaTeX“ von<br />
Uwe Ziegenhans û sowie die Vorbereitungen<br />
zum jährlich im Spätherbst in<br />
Potsdam stattfindenden Brandenburger<br />
Linux-Infotag (BLIT) û.<br />
Bei diesem bildet das Konferenzverwaltungssystem<br />
Pentabarf û die<br />
Gr<strong>und</strong>lage zum Verwalten aller beteiligten<br />
Personen, Aussteller <strong>und</strong> Vorträge<br />
2. Ursprünglich für die Veranstaltun-<br />
gen des Chaos-Computer-Clubs entwickelt,<br />
hat Pentabarf inzwischen nicht<br />
nur in diesem Genre Maßstäbe gesetzt.<br />
Das System nutzt PostgreSQL als<br />
Datenbank <strong>und</strong> verfügt über eine Reihe<br />
von Filtern zum Export der Daten in Formate<br />
wie HTML, XML <strong>und</strong> CSV. Bislang<br />
kommt dabei meist der CSV-Export zum<br />
Einsatz, der die Datenbasis für Drucksachen<br />
bereitstellt. Der direkte Zugriff auf<br />
PostgreSQL wäre zwar möglich, der Weg<br />
über CSV genügt aber aufgr<strong>und</strong> der<br />
überschaubaren Datenmenge bislang<br />
vollkommen.<br />
Das Drumherum<br />
Das Shell-Skript aus Listing 1 bildet den<br />
gesamten Arbeitsablauf ab. Zur Ausgabe<br />
der Namensschilder ruft es zunächst das<br />
Python-Skript namensschilder.py auf<br />
<strong>und</strong> leitet dessen Ausgabe mittels des<br />
Operators > in eine LaTeX-Datei um (Zeile<br />
3). Mittels Pdflatex entsteht danach<br />
aus der LaTeX-Datei ein PDF-Dokument<br />
(Zeile 4). Da es keine dynamischen Elemente<br />
enthält, genügt ein einziger<br />
Durchlauf zum Übersetzen.<br />
1 Das Zerlegen des Ablaufs in separate<br />
Schritte vereinfacht das Anpassen an eine<br />
veränderte Umgebung.<br />
Listing 1<br />
01 #!/bin/bash<br />
02 <br />
03 python namensschilder.py ><br />
namensschilder.tex<br />
04 pdflatex namensschilder.tex<br />
05 pdfnup ‐‐nup 1x2<br />
‐‐no‐landscape ‐‐outfile a.pdf<br />
namensschilder.pdf<br />
06 pdfnup ‐‐nup 2x1 ‐‐outfile<br />
namensschilder_druck.pdf a.pdf<br />
07 <br />
08 python teilnehmerliste.py ><br />
teilnehmerliste.tex<br />
2 Die Veranstalter des Brandenburger Linux-Infotags setzen zum<br />
09 pdflatex teilnehmerliste.tex<br />
Verwalten der Teilnehmerdaten auf die bewährte Software Pentabarf.<br />
06.2013 www.linux-user.de<br />
43