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 08/2015: Cloud-Speicher

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

Plugins bei OPERA - Linux Mint 17.1
Christoph-J. Walter, 23.07.2015 08:32, 2 Antworten
Beim Versuch Video-Sequenzen an zu schauen kommt die Meldung -Plug-ins und Shockwave abgestürzt-....
Wird Windows 10 update/upgrade mein Grub zerstören ?
daniel s, 22.07.2015 08:31, 5 Antworten
oder rührt Windows den Bootloader nicht an? das ist auch alles was Google mir nicht beantw...
Z FUER Y UND ANDERE EINGABEFEHLER AUF DER TASTATUR
heide marie voigt, 10.07.2015 13:53, 2 Antworten
BISHER konnte ich fehlerfrei schreiben ... nun ist einiges drucheinander geraten ... ich war bei...
PCLinuxOS lässt sich nicht installieren
Arth Lübkemann, 09.07.2015 18:53, 6 Antworten
Hallo Leute, ich versuche seit geraumer Zeit das aktuelle PCLinuxOS KDE per USB Stick zu insta...
Fernwartung oder wartung im haus
heide marie voigt, 29.06.2015 10:37, 2 Antworten
gerne hätte ich jemanden in Bremen nord, der mir weiter hilft - angebote bitte mit preis HMVoigt