Serienbrief aus CSV mit datatool läuft in "File ended while scanning use of \\@DTLforeach" ohne PDF zu erstellen
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.
%example data
\begin{filecontents*}{data.csv}
Memberno;Marm;Nick;EMail;PGP;Firm;Title;FirstNames;FamilyNames;Phone;PostalNames;AddressDetails;Street;HouseNumber;ZIP;Place;Country
1;mail;Sandy;sandy@strahlenau.de;;;;Sandy;Sonnenschein;;;;Wetterstraße;5;1111;Strahlenau;
2;mail;York;york@gmail.com;0x12345678;NoGo 1;m;Sandy;sandy@strahlenau.de;;;;Sandy;Sonnenschein;;;;Wetterstraße;5;1111;Strahlenau;
2;m;York;york@gmail.com;0x12345678;NoGo GbR;Dr.;York;Quietsch;;;;Bachstraße;4;67345;Ententeich;Österreich
3;paymentdue;Sab;sab@gmx.net;0xabcdef;;;Sabine;Müller;;;;Kutscherstraße;19;39114;Sonstwo;
4;mail;Jane;jane@1und1.de;;;;Hannah;Geisler;;;;Hauptstraße;44 3;p;Sab;sab@gmx.net;0xabcdef;;;Sabine;Müller;;;;Kutscherstraße;19;39114;Sonstwo;
4;m;Jane;jane@1und1.de;;;;Hannah;Geisler;;;;Hauptstraße;44 a;1789;Sity;Schweiz
\end{filecontents*}
\documentclass[
fontsize=11pt,
paper=a4,
parskip=full,
enlargefirstpage=on, % More space on first page
fromalign=left, % PLacement of name in letter head
fromphone=false,
fromfax=false,
fromrule=aftername, % Rule after sender name in letter head
fromemail=on, % turn on email of sender
fromurl=on,
addrfield=on, % Adress field for envelope with window
backaddress=on, % Sender address in this window
%~ subject=beforeopening, % Placement of subject
locfield=narrow, % Additional field for sender
foldmarks=on, % Print foldmarks
version=last,
pagenumber=off,
subject=untitled
]{scrlttr2}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\nonfrenchspacing
\setkomavar{fromzipcode}{12345}
\setkomavar{place}{Place}
\setkomavar{date}{%
\today%
}
\setkomavar{fromemail}[]{mail@sender.com}
\setkomavar{fromurl}[]{https://domain.sender.com/}
\LoadLetterOption{DIN}
\setkomavar{fromname}{SENDER Company}
\setkomavar{toname}{RECEIPIENT}
\setkomavar{fromaddress}{%
Streetaddress
\usekomavar{fromzipcode}~\usekomavar{place}
}
\setkomavar{backaddressseparator}{\enspace\textperiodcentered\enspace}
\setkomavar{enclseparator}[Attachments]{: }
\usepackage[utf8,separator=;]{datatool}
\DTLsetseparator{;}
\DTLloadrawdb[
keys={%
fieldmemberno,fieldmark,fieldnick,fieldemail,fieldpgp,fieldfirm,fieldtitle,fieldname1,fieldname2,fieldphone,fieldnamepostal,fieldremark,fieldstreet,fieldhousenr,fieldzip,fieldplace,fieldcountry %
}
]%
{addresses}%
{data.csv}
\renewcommand*{\raggedsignature}{\raggedright}
\setkomavar{signature}{boardmembers}
\begin{document}
\DTLforeach*{addresses}{%
\Chiffre=fieldmemberno,\Mark=fieldmark,\MemberNick=fieldnick,\MemberEMail=fieldemail,\PGP=fieldpgp,%
\Firm=fieldfirm,\Title=fieldtitle,%
\Firstname=fieldname1,\Surname=fieldname2,%
\Phone=fieldphone,%
\Remark=fieldremark,\Postname=fieldnamepostal,
\Street=fieldstreet,\HouseNr=fieldhousenr,\ZIP=fieldzip,\Place=fieldplace,\Country=fieldcountry
}{
\ifstr{\Mark}{mail}{
\ifstr{\Mark}{m}{
\setkomavar{title}{Your Membership at \usekomavar{fromname}}
\setkomavar{subject}{}
\begin{letter}{%
% here the problem starts: conditionally using information for address
%
% working example, just I do have differrent cases that are not covered by this
% at least useable pdf produced
%~ \Firstname ~\Surname \\
%~ \Street \\
%~ \ZIP \Place
%
% was working formerly, not any more, maybe due to changes in a package?
% no pdf produced
%error msg: File ended while scanning use of \\@DTLforeach.
\ifstr{\Firma}{}{}{\Firma \\}
\ifstr{\Titel}{}{}{\Titel ~}
\ifstr{\Postname}{}{\Vorname ~\Name }{\Postname } \\
\ifstr{\Remark}{}{}{\Remark \\}
\Street{}\ifstr{\HouseNr}{}{}{~\HouseNr } \\
\PLZ ~\Ort \ifstr{\Land}{}{}{\\\MakeUppercase{\countrypostname{\Land }}
}
\opening{Hello \MemberNick{}!}
Letting you know some detail about your mebership at \usekomavar{fromname}\\
\begin{itemize}% itemize here to reduce the example with using a table incl. multicols
\item Chiffre: \Chiffre{} (please mention when contacting)
\item Nick: \MemberNick{}
\item E-Mail: \MemberEMail{}
\end{itemize}
\closing{Yours,}
\end{letter}\newpage
}{}% end of ifstr
}% end of DTLforeach
\end{document}
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