PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Serienbrief: 4 verschiedene Anreden



StephanM
20-07-2012, 18:28
Hallo,

ich möchte einen Serienbrief in Latex schreiben. Die Besonderheit diesmal: Die Empfänger sollen nicht nur nach männlich und weiblich unterschieden werden, sondern gleichzeitig auch nach du und Sie.

Ich habe in einer Tabellenkalkulation zwei Spalten Geschlecht (m oder w) und Anrede (s oder d).

Gibt es eine Möglichkeit, das in Latex selbst zu lösen? Ich benötige ja 4 vier Fälle
wd ws md ms


Ich hänge unten noch mein Quelltext an, bei dem ich bisher immer nur die Anrede Hallo xa verwendet habe, nur um zu zeigen, wie ich bisher mit der Serienbriefen umgegangen bin (und event Fehler angemahnt werden können).

Grüße Stephan


\documentclass[DIN, pagenumber=false, parskip=half,%
fromalign=right, fromphone=false,%
fromemail=false, fromurl=false,%
fromlogo=false, fromrule=false]{scrlttr2}


\usepackage[latin1]{inputenc}
\usepackage[papersize={21cm,9.9cm},left=20mm,right=20mm,top=0m m,bottom=0mm]{geometry}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\setkomavar{date}{}
\begin{document}
\renewcaptionname{ngerman}{\ccname}{}
\setkomavar{ccseparator}{}
\makeatletter
\@addtoplength{refvpos}{-5cm}
\@addtoplength{refaftervskip}{-6cm}
\@addtoplength{foldmarkhpos}{-2cm}
\input{Meine-Adressen.adr}
\endgroup
\makeatother

\renewcommand\addrentry[9]{
\begin{letter}{\ }% letter-Umgebung verwenden!

\opening{Hallo #1,}% Anrede immer mit \opening!

Grüße,\\
\hspace{-1em}Stephan% Schlussgruß immer mit \closing

\end{letter}
}
\input{Meine-Adressen.adr}
\end{document}

klops
21-07-2012, 08:58
Du hast leider keine Beispieladressdatei mitgeliefert. Ich habe deshalb einfach einmal das Serienbrief- und Adressdatei-Beispiel aus der KOMA-Script-Anleitung adaptiert. Ein paar Dinge in Deinem Beispiel musste ich zusätzlich ändern, damit es funktioniert. So hattest Du beispielsweise ein \endgroup zuviel und Deine Einstellungen für das seltsame Papierformat stimmten hinten und vorn nicht. Ich habe da aber nicht lange rumgemacht, sondern einfach nur refaftervskip so weit angepasst, dass man den Beispieltext wenigstens mit Anrede sieht. Außerdem habe ich den Schlussgruß wirklich mit \closing gemacht, statt nur zu schreiben, dass man das machen sollte …


% Die filecontents-Umgebung ist natürlich nur für die Vollständigkeit des Minimalbeispiels
% hier. Normalerweise wird man eher eine externe Datei verwenden.
% Feld 5 ist wie im Serienbriefbeispiel der KOMA-Script-Anleitung ein Indikator für
% männlich oder weiblich und zusätzlich ein Indikator für Du oder Sie.
\begin{filecontents}{\jobname.adr}
\addrentry{Engel}{Gabriel}
{Wolke 3\\12345 Himmelreich}
{000\,01\,02\,03}{ms}{}{}{Erzengel}
{GABRIEL}
\addrentry{Engel}{Michael}
{Wolke 3a\\12345 Himmelreich}
{000\,01\,02\,04}{md}{}{}{Erzengel}
{MICHAEL}
\addrentry{Engel}{Raphaela}
{Wolke 3b\\12345 Himmelreich}
{000\,01\,02\,05}{wd}{}{}{Erzengel}
{RAPHAEL}
\end{filecontents}

\documentclass[%DIN, % wird ohnehin geladen
pagenumber=false, parskip=half,%
foldmarks=false,% dürfte besser sein, als sie aus dem Papier zu schieben
fromalign=right, fromphone=false,%
fromemail=false, fromurl=false,%
fromlogo=false, fromrule=false]{scrlttr2}


\usepackage[latin1]{inputenc}
\usepackage[papersize={21cm,9.9cm},left=20mm,right=20mm,top=0m m,bottom=0mm]{geometry}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\setkomavar{date}{}

\renewcaptionname{ngerman}{\ccname}{}
\setkomavar{ccseparator}{}
\makeatletter
\@addtoplength{refvpos}{-5cm}%
\@addtoplength{refaftervskip}{-4cm}%S onst passt nicht einmal die Anrede auf die Seite
\@setplength{sigbeforevskip}{0pt}
\let\raggedsignature\raggedright
\makeatother

\setkomavar{signature}{Stephan}
\newcommand\ifmw{}% Dummy to be defined later
\newcommand\ifds{}% Dummy to be defined later
\begin{document}

\renewcommand\addrentry[9]{%
\renewcommand\ifmw[2]{%
\ifstr{#5}{md}{##1}{%
\ifstr{#5}{ms}{##1}{##2}%
}%
}%
\renewcommand\ifds[2]{%
\ifstr{#5}{md}{##1}{%
\ifstr{#5}{wd}{##1}{##2}%
}%
}%
\begin{letter}{#2 #1\\#3}% letter-Umgebung verwenden!

\opening{Liebe\ifmw{r}{} \ifds{#2}{\ifmw{Herr #1}{Frau #1}},}% Anrede immer mit \opening!
das gibt es etwas, was ich \ifds{Dir}{Ihnen} noch sagen wollte.
\closing{Grüße}% Schlussgruß wirklich immer mit \closing
\end{letter}
}
\input{\jobname.adr}
\end{document}

\ifstr ist ebenfalls in der KOMA-Script-Anleitung zu finden.

ctansearch
21-07-2012, 20:02
Wäre schön, wenn man ein Beispiel aus der Datenbank hätte.
Ansonsten finde ich die Lösungen reichlich umständlich. Viel einfacher ist es, die Grundstruktur des Briefes in die Datensätze einzubauen .
Mit "Suchen und Ersetzen" lassen sich die nötigen Informationen in die Tabellenkalkulation eingeben und als .tex-Datei abspeichern, und schon kann es losgehen.