AA_slide_vancanjay_freeimages_688050.jpg

© Vancanjay, freeimages.com

Flyer, Leporello und Co. einfach mit LaTeX erstellen

In einem Rutsch

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
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ä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.
  • Tafelfertig
    Die LaTeX-Grundausstattung erlaubt nur das Setzen recht schlichter Tabellen. Mit einigen Zusatzpaketen bohren Sie die Funktionen für professionell gestaltete Tabellen kräftig auf.
  • 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.
Kommentare

Infos zur Publikation

LU 12/2016: Neue Desktops

Digitale Ausgabe: Preis € 5,99
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

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

Aktuelle Fragen

Drucker Epson XP-332 unter ubuntu 14.04 einrichten
Andrea Wagenblast, 30.11.2016 22:07, 2 Antworten
Hallo, habe vergeblich versucht mein Multifunktionsgerät Epson XP-332 als neuen Drucker unter...
Apricity Gnome unter Win 10 via VirtualBox
André Driesel, 30.11.2016 06:28, 2 Antworten
Halo Leute, ich versuche hier schon seit mehreren Tagen Apricity OS Gnome via VirtualBox zum l...
EYE of Gnome
FRank Schubert, 15.11.2016 20:06, 2 Antworten
Hallo, EOG öffnet Fotos nur in der Größenordnung 4000 × 3000 Pixel. Größere Fotos werden nic...
Kamera mit Notebook koppeln
Karl Spiegel, 12.11.2016 15:02, 2 Antworten
Hi, Fotografen ich werde eine SONY alpha 77ii bekommen, und möchte die LifeView-Möglichkeit nu...
Linux auf externe SSD installieren
Roland Seidl, 28.10.2016 20:44, 1 Antworten
Bin mit einem Mac unterwegs. Mac Mini 2012 i7. Würde gerne Linux parallel betreiben. Aber auf e...