AA_slide_vancanjay_freeimages_688050.jpg

© Vancanjay, freeimages.com

In einem Rutsch

Flyer, Leporello und Co. einfach mit LaTeX erstellen

15.05.2014
Einen schönen Flyer setzen Sie ohne Probleme in LaTeX – und profitieren so von dessen Automatismen, wenn sich die Rohdaten häufiger ändern.

Entwerfen und Gestalten gehört zur Domäne der DTP-Programme. Stammt der Inhalt des Druckwerks aber aus einer Datenquelle, dann lohnt es sich, einen Blick auf die etablierten Linux-Werkzeuge zu werfen, um sich die Arbeit einfacher zu gestalten. Das zeigt ein Beispiel für eine dynamisch generierte Weinkarte, deren Layout ebenfalls ein Genuss sein soll.

Der Vorteil des alternativen Ansatzes offenbart sich vor allem, wenn die Datenquelle sich regelmäßig ändert: Dann verursacht jede Korrektur mit einem DTP-Programm einen hohen Aufwand. In einem solchen Fall erweist sich LaTeX als praktische Alternative, da hier das Umwandeln und Erstellen nach einer Anlaufphase in der Regel mehr oder weniger automatisch erfolgt.

Flyer oder Leporello

Als Beispiel dient uns im Folgenden eine kleine Weinkarte in Form eines Faltblatts. Der Flyer hat sechs kleine Seiten. Klappen Sie die Außenseiten jeweils in die Mitte um, dann nennt sich das Wickelfalz. Verwenden Sie stattdessen einen Zickzack-Falz, lautet der Fachausdruck dafür Leporello.

Damit das Erstellen des Flyers (Abbildung 1) automatisiert funktioniert, kommt ein Build-Skript mit Apache-Ant [1] und der Ant-Worker-Erweiterung [2] zum Einsatz. Apache Ant installieren Sie unter Ubuntu beispielsweise mit sudo apt-get install ant. Das Build-Skript umfasst mehrere Schritte. Im ersten davon steht das Umwandeln der in LibreOffice Calc als Tabelle geführten Wein-Datei (Abbildung 2) nach CSV an. Das erlaubt es, die Daten mit LaTeX automatisiert weiter zu verarbeiten.

Abbildung 1: Das fertige Faltblatt enthält alle notwendigen Informationen, um den passenden Wein auszuwählen.
Abbildung 2: Die Weinliste für Rotweine in LibreOffice Calc.

Anschließend erzeugt das Skript ein sechseitiges PDF mit Text, Bildern und Tabellen, die Auskunft über die Weinsorten geben. Zuletzt arrangiert es die Seiten zum Faltblatt.

Das Build-Skript

Das Build-Skript (Listing 1) lädt zuerst die Erweiterungen (Zeile 4 bis 7) und definiert die Verzeichnisse für Quelle und Ziel. Der Task init dient dazu, das Zielverzeichnis zu erstellen, clean löscht alle erzeugten Dateien wieder.

Listing 1

<?xml version="1.0" encoding="UTF-8"?>
<project name="Weinliste" basedir="." default="weinliste">
 <path id="worker.classpath">
  <pathelement location="lib/ant-worker.jar" />
 </path>
 <taskdef resource="de/nm/ant/antlib.xml" classpathref="worker.classpath" />
 <property name="target.dir" value="target" />
 <property name="src.dir" value="${basedir}" />
 <target name="init">
  <mkdir dir="target" />
 </target>
 <target name="clean" description="Remove the target directory">
  <delete dir="${target.dir}" failonerror="false" />
 </target>
 <target name="csv" depends="init">
  <ifnewer srcdir="${src.dir}" destdir="${target.dir}" srcextname=".*\.ods$" destextname="csv">
   <calc2csv csvoption="44,34,UTF8,1,1/1/2/1/3/1/4/1/5/1/6/1/7/1/8/1/9/1/10/1/11/1/12/1/13/1/14/1" ooopath="/usr/lib/libreoffice/program" />
  </ifnewer>
  <terminateooo />
 </target>
 <target name="weinliste" depends="csv">
  <ifnewer srcdir="${src.dir}" destdir="${target.dir}" srcextname="weinliste.tex" destextname="pdf">
   <dependsfileset dir="${target.dir}">
    <include name="*.csv" />
   </dependsfileset>
   <lualatex times="2" texinputs="${src.dir}" osfontdir="${src.dir}" />
   <removeother othernames="pdf" />
  </ifnewer>
  <ifnewer srcdir="${src.dir}" destdir="${target.dir}" srcextname="flyer.tex" destextname="pdf">
   <dependsfileset dir="${target.dir}">
    <include name="weinliste.pdf" />
   </dependsfileset>
   <lualatex times="2" />
   <removeother othernames="pdf" />
  </ifnewer>
 </target>
</project>

Das Umwandeln der Tabellendaten erfolgt im Task csv (Zeile 20 bis 27), der jede ODS-Datei mit dem Task calc2csv in eine CSV-Datei umwandelt, falls Letztere nicht aktuell sein sollte. Die Parameter bei csvoption legen die Markierung für Zeichenketten ("), den Spaltentrenner (,), das Encoding (UTF8), die Nummer der ersten Zeile und das Format der einzelnen Spalten fest [3].

Der Task weinliste erstellt mithilfe von Lualatex die PDF-Datei, sofern diese nicht aktuell ist, und löscht mit removeother alle nicht mehr notwendigen Dateien. Für die zusätzlichen Fonts geben Sie bei osfontdir das Verzeichnis an, damit Lualatex diese findet. Wichtig für die Tabellen: Der LaTeX-Lauf erfolgt zwei Mal, um die Breiten richtig zu berechnen. Anschließend generiert das Skript den Flyer.

Ein Aufruf von ant ruft dann hintereinander init, csv und weinliste auf – vorausgesetzt, LaTeX ist installiert, beispielsweise in Form von TeX Live [6].

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

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

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • LibreOffice als komfortabler Editor für LaTeX
    Mit Writer2LaTeX verknüpfen Sie die angenehmen Möglichkeit der Eingabe in LibreOffice Writer mit dem perfekten Druckbild des Satzsystems LaTeX.
  • 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.
  • Aufpoliert
    Das Programm Graphviz hilft beim Erstellen von Grafiken. Den letzten Schliff verleihen Sie den Ergebnissen aber am besten mittels LaTeX.
  • Professioneller Textsatz mit LaTeX
    Mit dem Textsatzsystem LaTeX stellen Sie professionelle Dokumente vom Brief bis zum Buch selbst zusammen. Im ersten Teil einer dreiteiligen LaTeX-Serie erklären wir die Grundlagen.
  • Anwendungsbeispiele zu LaTeX und PDF
    Die vergangenen Folgen des LaTeX-Workshops im LinuxUser haben viele Möglichkeiten des Satzsystems vorgestellt. Die letzte Ausgabe geht auf einige spezielle Pakete genauer ein, die PDF-Dateien mit weiteren Finessen versehen.
Kommentare

Infos zur Publikation

LU 06/2015: Shell-Tools

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

Grammatikprüfung in LibreOffice nachrüsten
Grammatikprüfung in LibreOffice nachrüsten
Tim Schürmann, 24.04.2015 19:36, 0 Kommentare

LibreOffice kommt zwar mit einer deutschen Rechtschreibprüfung und einem guten Thesaurus, eine Grammatikprüfung fehlt jedoch. In ältere 32-Bit-Versionen ...

Aktuelle Fragen

Zu wenig Speicherplatz auf /boot unter MATE
Patrick Obenauer, 25.05.2015 14:28, 1 Antworten
Hallo zusammen, ich habe Ubuntu 14.10 mit MATE 1.8.2 (3.16-37) mit Standardeinstellungen aufgese...
Konsole / Terminal in Linux Mint 17.1 deutsch
Dirk Resag, 09.05.2015 23:39, 12 Antworten
Hallo an die Community, ich habe vor kurzem ein älteres Notebook, Amilo A1650G, 1GB Arbeitsspe...
Admin Probleme mit Q4os
Thomas Weiss, 30.03.2015 20:27, 6 Antworten
Hallo Leute, ich habe zwei Fragen zu Q4os. Die Installation auf meinem Dell Latitude D600 verl...
eeepc 1005HA externer sound Ausgang geht nicht
Dieter Drewanz, 18.03.2015 15:00, 1 Antworten
Hallo LC, nach dem Update () funktioniert unter KDE der externe Soundausgang an der Klinkenbuc...
AceCad DigiMemo A 402
Dr. Ulrich Andree, 15.03.2015 17:38, 2 Antworten
Moin zusammen, ich habe mir den elektronischen Notizblock "AceCad DigiMemo A 402" zugelegt und m...