26.02.2014 Aufrufe

LinuxUser Skripten und Coden (Vorschau)

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!