Serienbriefe mit LaTeX schreiben
Serienbriefe lassen sich mit LaTeX sehr schnell und effizient schreiben. Dabei ist es auch möglich die Empfänger nach bestimmten Kriterien zu filtern und ganz gezielt anzuschreiben.
Der Serienbrief ist bis auf eine kleine Ergänzung in der brief.tex
gleich aufgebaut wie der Standardbrief.
Ich habe dafür auch die gleiche lco
-Datei verwendet. 👉 Briefe schreiben mit LaTeX, nichts einfacher als das!
address.adr - Liste der Empfängeradressen
Für Serienbriefe ist es sinnvoll eine eigene separate Datei mit allen Empfängeradressen zu erstellen. Die Datei lässt sich in einem LaTeX-Brief im Hauptdokument brief.tex
über den Befehl \input{}
laden und die Adressen von dort auslesen.
Am Ende des Hauptdokuments brief.tex
wir die Datei address.adr
eingebunden.
...
\end{letter}
% Die Adressdatei wird eingebunden
\input{address.adr}
\end{document}
Beim Konvertierungslauf holt LaTeX die Adressen von dort ab und fügt sie automatisch in das Feld für die Empfängeradresse im Brief ein.
Folgendes Schema für die Empfängeradressen habe ich für das Beispiel gewählt:
% --- Schemata ---
\adrentry{} % Vorname
{} % Nachname
{} % Straße Hausnummer \\ PLZ Ort
{}
{}
{}
{}
{}
% ----------------
Mit \adrentry
wird immer ein neuer Adresseintrag begonnen.
In den geschweiften Klammern {}
werden dann Attribute, also die Kontaktinformationen definiert. Es gibt dabei keine Reihenfolge, jedoch solltet ihr immer in jedem Kontakt die gleiche Information in der gleichen Klammer platzieren.
In dem obigen Schema wird der Vornamen in die erste geschweifte Klammer (#1) geschrieben.
Für eine bessere Sortierung bei vielen Adressen kann \adrchar{}
in der address.adr
verwendet werden. Der Eintrag wird während des LaTeX-Konvertierungslaufs ignoriert, erzeugt also keine Fehler.
Serienbrief erstellen
Nachdem nun alle Empfängeradressen nach einem einheitlichen Schema in der address.lco
hinterlegt sind, kann mit dem Erstellen des Serienbriefs begonnen werden.
Im Hauptdokument brief.tex
ist die Logik für das Auslesen der Adressen direkt unterhalb von \begin{document}
einzufügen.
% --- Serienbrief ---
% Es werden die Einträge aus der Adressdatei ausgelesen.
% Für jeden Eintrag wird ein eigener Brief erstellt.
% Erklärung
% In der eckigen Klammer [] wird die Anzahl der Attribute pro Kontakt angegeben, die in der address.adr definiert sind.
%
% Es werden die Werte aus den {}-Klammern 1,2,3 ausgelesen und neu angeordnet
% --- OPTION 1 ---
\renewcommand*{\adrentry}[8]{%
\begin{letter}{#2 #1\\#3}
% --------------------------
Was passiert nun?
Mit diesen zwei Zeilen wird LaTeX gesagt, dass wir
- 8 geschweifte Klammern pro Empfängeradresse haben -
[8]
- Die Werte aus den Klammern #1, #2, #3 ausgelesen werden und
- in der Reihenfolge
#2 #1 \\ #3
eingefügt werden sollen
Es wird also damit pro Empfängeradresse
- Vorname - #1
- Nachname - #2
- Adresse - #3
ausgelesen und in der Reihenfolge Nachname Vorname Adresse eingefügt.
Serienbrief mit Filter erstellen
LaTeX-Serienbriefe lassen sich auch mit Filter erstellen. Das bedeutet, dass in den geschweiften Klammern Werte abgespeichert werden können und während des Konvertierungslaufs nur die Filterwerte als Empfängeradresse verwendet werden.
Ein Beispiel:
In der Hauptdatei biref.tex
wird der Abschnitt direkt nach \begin{document}
eingefügt.
% Wenn-Dann-Prüfung
\renewcommand*{\adrentry}[8]{
\ifdim #4pt>0pt\relax
% Der Wert in {}-Klammer 4 ist eine Zahl größer als 0.
\begin{letter}{#2 #1\\#3}
% Es wird der Wert in {}-Klammer 5 geprüft und die entsprechende Anrede gesetzt
% m = männlich
% w = weiblich
\if #5m \opening{Lieber #2,} \fi % es wird \opening verwendet, deshalb ist die Anrede weiter unten auszuschalten
\if #5w \opening{Liebe #2,} \fi % es wird \opening verwendet, deshalb ist die Anrede weiter unten auszuschalten
Was passiert nun?
-
Die Klammer #4 wird geprüft, ob deren Wert > 0 (größer Null) ist. Dort steht also eine Zahl und kein Zeichen.
-
Bei einem Treffer, also der Wert in #4 ist > 0 (größer Null), wird die Empfängeradresse verwendet
-
Es wird dann die Klammer #5 geprüft, ob dort
m
oderw
steht. Je nach Wert wird eine andere Anrede für den Vornamen aus Klammer #2 verwendet, die über\opening
definiert wirdm = Lieber #2 w = Liebe #2
-
Es ist also sehr einfach über ein paar Bedingungen die Erstellung von Serienbriefen zu automatisieren und ganz gezielt Empfänger anzuschreiben.
Gib mir gerne einen Kaffee ☕ aus ❗️
Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕️ ausgeben.
Follow Me❗️
Source
Photo by Mathyas Kurmann on Unsplash