Hallo zusammen! Ich verwende seit fast einem Jahr diese sicher nicht ganz optimale Lösung für einen Serienbrief. Das hat bis vor Kurzem (~1 Monat) auch problemfrei funktioniert. Neuerdings bekomme ich aber den Fehler "File ended while scanning use of \@DTLforeach" unter TeX Live 2019/Debian. Das nicht ganz so minimale MWE… bei dem ich hier im Wesentlichen bedingt Briefe adressieren möchte. Code, hier editierbar zum Übersetzen:
Gerne auch Hinweise wie der Serienbrief besser umgesetzt werden sollte, aber primär interessiert mich wie ich die Bedingten Adressabgaben wieder wirksam werden lassen kann, die PDF sauber erstellt wird und möglichst kein Fehler gemeldet wird. Vielen Dank im Voraus für eure Hinweise |
Ich habe dann einfach weiter geforscht und nachdem ich weder mit Hier die Lösung (neues Code, hier editierbar zum Übersetzen:
Hier nun auch nicht mehr Falls noch jemand Verbesserungsvorschläge hat, immer gerne :) |
Das kann eigentlich gar nicht funktionieren und kann eigentlich auch noch nie funktioniert haben. Das beginnt schon damit, dass
\ifblank
nicht so funktioniert, wie du das zu glauben scheinst. Die Anweisung hat nämlich nur drei und nicht vier Argumente und expandiert das erste Argument laut Doku auch nicht. Aber selbst mit korrekten Argumenten würde die Verarbeitung vonfromaddress
so nicht funktionieren, weil am Ende AFAIK kein\\
stehen darf. Auch die\ifstr
im Argument derletter
-Umgebung sind problematisch, da auch dabei die Zerlegung des Arguments eher nicht funktioniert.@ijon-tichy danke für den Hinweis auf \ifblank, ich habe dieses Relikt aus der Verwendung im \firsthead hier mal entfernt und bei mir lokal auf 3 Argumente verkürzt. Das \ ging wohl gut weil ich \fromaddress in der konkerten Vorlage nicht selbst aufrief. Was würde deiner Erfahrung nach einen String-Vergleich ermöglichen?. Aber ich kann nicht behaupten, die Funktionsweise durchdrungen zu haben.
Wäre es denkbar, dass Du neuerdings (TeXLive 11/2019?)
\begin{filecontents*}[overwrite]{data.csv}
verwenden musst?