PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Serienbrief



ssd274
29-06-2011, 19:38
Hallo zusammen,

ich wollte in LaTeX einen Serienbrief schreiben, was auch soweit klappt, allerdings immer mit tausend Fehlermeldungen.
Zunächst hatte ich versucht das ganze mittels
\adrentry zu realisieren, was jedoch überhaupt nicht klappte.
Nun versuchte ich es wie folgt:

\documentclass[DIN, pagenumber=false, parskip=half,%
fromalign=right, fromphone=false,%
fromemail=true, fromurl=true, %
fromlogo=true, fromrule=false, %
fromdate=true,
a4paper,12pt]{scrlttr2}
\usepackage[,utf8x]{inputenc}
\usepackage{ifthen}
% Ganz viele weitere ...
\newcommand{\mitglied}[5]{
\begin{letter}{\ifthenelse{\equal{#3}{m}}{Herrn \\ #1 #2 \\ #4 \\ #5}{Frau\\ #1 #2 \\ #4 \\ #5}}
\opening{\ifthenelse{\equal{#3}{m}}{Lieber #1}{Liebe #1}}
Bla Fasel Bla
\closing{Viele Grüße}
\end{letter}
}
\begin{document}
\mitglied{Max}{Muster}{m}{Musterstraße}{Musterort}
\mitglied{Hermine}{Mustefrau}{w}{Mustersträßchen}{ Musterstadt}
% etc.
\end{document}


Die PDF-Datei wird auch erzeugt, ich bekomme aber immer die Fehlermeldung:
! Illegal parameter number in definition of \scr@toname@var.
<to be read again>
Wenn ich statt 5, 10 verwende:

\newcommand{\mitglied}[10]{
kommt:

! You already have nine parameters.
! File ended while scanning use of \mitglied
Was muss ich ändern damit das fehlerfrei funktioniert?
Ist das System mittels \adrentry doch besser?

Viele Grüße

SSD274

psyman
29-06-2011, 23:11
Wenn ich statt 5, 10 verwende:

\newcommand{\mitglied}[10]{
kommt:

! You already have nine parameters.
! File ended while scanning use of \mitglied


Ich kenne mich mit seienbriefen nicht aus, aber mit \newcommand kannst du nur maximal 9 Parameter angeben.

u_fischer
30-06-2011, 09:55
Was muss ich ändern damit das fehlerfrei funktioniert?
Ist das System mittels \adrentry doch besser?

Kommt darauf an, wie professional das Ganze sein soll. Wenn es nur um einmal ein paar Serienbriefe geht, empfehle ich sowas:



\newcommand\Nachname{} % usw alle Befehle einmal zur Sicherheit inialisieren
\newcommand\Typ{} %damit du nicht existierende Befehle überschreibst
%dann
\newcommand\Druckebrief
{%
\begin{letter}{
\ifthenelse{\equal{\Typ}{m}}
{Herrn \\ \Vorname~ \Nachname ....}
{...}
}

%briefe drucken:
\def\Nachname{Muster}
\def\Typ{m}
...
\DruckeBrief

\def\Nachname{Muster2}
\def\Typ{f}
...
\DruckeBrief


Dann hast du keine Probleme mit langen Argumentlisten und Parameternummer.

Wenn es professioneller sein soll, empfehle ich die Daten in csv-Dateien zu speichern und datatools zu benutzen.