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

Lu07/2016: GIMP FÜR PROFIS

Digitale Ausgabe: Preis € 5,99
(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!       

Aktuelle Fragen

Mit Firewire Videos improtieren?
Werner Hahn, 09.06.2016 11:06, 5 Antworten
Ich besitze den Camcorder Panasonic NV-GS330, bei dem die Videos in guter Qualität nur über den 4...
lidl internetstick für linux mint
rolf meyer, 04.06.2016 14:17, 3 Antworten
hallo zusammen ich benötige eure hilfe habe einen lidl-internetstick möchte ihn auf linux mint i...
thema ändern
a b, 29.05.2016 16:34, 0 Antworten
Hallo Linuxer zuerst alle eine schönen Sonntag, bevor ich meine Frage stelle. Ich habe Ubuntu 1...
Ideenwettbewerb
G.-P. Möller, 28.05.2016 10:57, 0 Antworten
Liebe User, im Rahmen eines großen Forschungsprojekts am Lehrstuhl für Technologie- und Innova...
Welche Drucker sind Linux-mint kompatibel?
Johannes Nacke, 20.05.2016 07:32, 6 Antworten
Hallo Ihr Lieben, ich bitte um mitteilung welche Drucker Kompatibel sind mit Linux-Mint. LG Joh...