adr
-Datei testen, ob ein Feld leer ist?Tests auf leere Felder sind einfach nur Tests auf ein leeres Argument. Im Gegensatz zu Tests auf bestimmte Inhalte, die vorzugsweise mit \Ifstr
durchgeführt werden, führt man den Test auf ein leeres Feld daher besser mit \IfArgIsEmpty
durch. Beide Anweisungen werden von Paket scrbase
bereitgestellt und sind deshalb bei Verwendung jeder KOMA-Script-Klasse automatisch verfügbar.
Beide Anweisungen können so beispielsweise für personalisierte Serienbriefe verwendet werden:
\begin{filecontents}{\jobname.adr} % {Nachname}{Vorname}{Straße}{Postleitzahl}{Ort}{Geschlecht}{}{}{Kürzel} \addrentry{Muster}{}{Stra\ss e 1}{12345}{Hier}{}{}{}{TESTA} \addrentry{Nachname}{Peter}{Stra\ss e 2}{54321}{Dort}{m}{}{}{TESTB} \addrentry{}{Petra}{Stra\ss e 3}{98765}{Anderswo}{f}{}{}{TESTC} \addrentry{}{}{Stra\ss e 1}{12345}{Hier}{}{}{}{TESTD} \end{filecontents} \documentclass{scrlttr2} \usepackage[ngerman]{babel} \usepackage[T1]{fontenc} % Empfänger: #1 = Vorname, #2 = Nachname, #3 = Ersatzbezeichnung \newcommand*{\IntelliName}[3]{% \IfArgIsEmpty{#1}{% \IfArgIsEmpty{#2}{#3}{ #2}% }{ #1% \IfArgIsEmpty{#2}{}{\ #2}% }% } \renewcommand{\addrentry}[9]{% \begin{letter}{% \IntelliName{#2}{#1}{Bewohner:in}\\ #3\\ #4 #5% } \opening{Hallo\IntelliName{#2}{#1}{},} wir teilen Ihnen hiermit mit, dass das Haus demnächst mit einer Videoklingelanlage. Jede\Ifstr{#6}{m}{r Bewohner}{% \Ifstr{#6}{f}{ Bewohnerin}{ Person, die hier wohnt,}% } erhält einen eigenen Zugangscode für unsere geniale SmartPhone-App \texttt{WatchMeEveryWhery}. \closing{Mit freundlichen Grüßen}\ \end{letter} } \setkomavar{subject}{Neue Klingelanlage} \setkomavar{fromname}{Ausbeuter \& Co.} \setkomavar{fromaddress}{Wir-kriegen-alle-Weg 666\\77777 Freibeuting} \setkomavar{signature}{Ihre Hausverwaltung} \let\raggedsignature\raggedright \begin{document} \input{\jobname.adr} \end{document}
In der Definition von \IntelliName
wird mit den \IfArgIsEmpty
-Tests dafür gesorgt, dass eine sinnvolle Ansprache unabhängig davon stattfinden kann, ob die Felder für Nachname und Vorname in der adr
-Datei tatsächlich belegt sind. Sind sowohl der Vorname (Argument 1) als auch der Nachname (Argument 2) leer, so wird auf die Ersatzbezeichnung aus Argument 3 zurückgegriffen.
Mit dem verschachtelten \Ifstr
-Test im Brieftext wird eine geschlechtsspezifische Bezeichnung sichergestellt. Dazu wird das sechste Argument von \addrentry
entsprechend ausgewertet.