Serienbriefe mit KOMA-Script und datatool.
Ein Schulverwaltungszweck hatte mir die Aufgabe beschert, einen Serienbrief an Kolleg*innen zu versenden. Ästhetische Gründe sprachen (wie immer) für die Verwendung von LaTeX. Früher hatte ich für eine ähnliche Aufgabe Nicola Talbots csvtools verwendet; da dies als durch datatool von derselben Autorin ersetzt gekennzeichnet ist (und außerdem keine Bedingungen à la if … then … kennt), wollte ich letzteres ausprobieren.
Leider wurde stets nur ein einziger Brief statt derer viele erzeugt. Einige Stunden habe ich am Wochenende mit der Suche nach dem Fehler verbracht, hatte wahlweise Excels csv-Export, seine Zeichensatzkonvertierung (wer weiß, was Excel unter UTF-8 versteht) oder die Zeilenendendeklaration in Verdacht (CR? LF? CRLF?). Schließlich habe ich aus purer, tief empfundener Verzweiflung doch nochmal Word angeschmissen und das Ganze dort nachgebaut.
Als das dann lief, konnte ich in Ruhe weiterforschen – getrieben vom für Word/Excel akzeptablen, an TeX-Standards gemessen aber ungenügenden Ergebnis. Den entscheidenden Hinweis (nach vielen weiteren nicht zielführenden) gab mir dann dieser Eintrag auf Stack Exchange: hier wurde ich auf die Umgebung
Und schon ist alles wieder schön.
Leider wurde stets nur ein einziger Brief statt derer viele erzeugt. Einige Stunden habe ich am Wochenende mit der Suche nach dem Fehler verbracht, hatte wahlweise Excels csv-Export, seine Zeichensatzkonvertierung (wer weiß, was Excel unter UTF-8 versteht) oder die Zeilenendendeklaration in Verdacht (CR? LF? CRLF?). Schließlich habe ich aus purer, tief empfundener Verzweiflung doch nochmal Word angeschmissen und das Ganze dort nachgebaut.
Als das dann lief, konnte ich in Ruhe weiterforschen – getrieben vom für Word/Excel akzeptablen, an TeX-Standards gemessen aber ungenügenden Ergebnis. Den entscheidenden Hinweis (nach vielen weiteren nicht zielführenden) gab mir dann dieser Eintrag auf Stack Exchange: hier wurde ich auf die Umgebung
DTLenvforeach
(statt DTLforeach
) hingewiesen, die in korrekter Verschachtelung mit der letter
-Umgebung aus KOMAscript dann so aussieht:[…]
\usepackage{datatool}
\DTLsetseparator{;}
\DTLloaddb[noheader=false]{adressen}{dbname.csv}
\begin{document}
\begin{DTLenvforeach}{adressen}
{\Name=Name,%
\Vorname=Vorname,%
\Geschlecht=Geschlecht,%
\EMail=EMail,%
\Passwort=Passwort}
[…]
{\begin{letter}{\Vorname\ \Name}
\enlargethispage{4cm}
\opening{\ifstr{\Geschlecht}{w}{Liebe \Vorname,}{Lieber \Vorname,}}
[…]
\closing{\leftline{Mit freundlichem Gruß –}}
\end{letter}}
\end{DTLenvforeach}
[…]
Und schon ist alles wieder schön.
Kommentare
Ansicht der Kommentare: Linear | Verschachtelt
Torben am :
Ich werde endlich mal daran gehen, meine Dokumente nur noch in TeX zu setzen, das wäre doch gelacht. Die Lernkurve ist aber steil, wenn man aus der bunten Wysiwyg-Word-Welt kommt ;-).
Soweit macht es aber Spaß (und sieht unverschämt gut aus).
Hanjo am :