Liste aus .adr-Datei generieren

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


Petrelka
Forum-Newbie
Forum-Newbie
Beiträge: 6
Registriert: Do 22. Apr 2010, 16:58

Liste aus .adr-Datei generieren

Beitrag von Petrelka »

Liebe Community,

Ich bin mir grad nicht sicher, ob ich in diesem Forum richtig bin, oder ob ein anderes besser geeignet wäre ...

Ich habe mir ein Tex-Dokument mit dem Koma-Briefsatz srclttr2 erstellt. Um das Ganze Serienbriefreif zu machen, habe ich auch eine .adr-Datei mit allen Adressen angelegt. Das funktioniert auch super.

Jetzt moechte ich diese .adr-Datei mit den Adressen noch weiter nutzen und daraus eine Anwesenheitsliste generieren (also eine Seite, auf der die Adressen draufstehen mit einem Feld für Unterschrift etc.).

Hier gehen mir allerdings die Ideen aus, wie ich das machen könnte. Bis jetzt habe ich das auch in der sctlttr2-Umgebung versucht, was mir auch schön gestaltet diese Teile der Anwesenheitsliste ausgibt, wie ich sie haben möchte. Allerdings immer nur ein Eintrag pro Seite (wie ja auch von Koma nicht anders gewollt bei einem Serienbrief).

Hier frage ich mich jetzt, ob es schon was schönes Pakettechnisch gibt, was ich nutzen kann, oder ob ich mir das selbst schreiben muss? Und wenn selbst schreiben ... gibt es eine "Foreach" Anweisung bei LaTeX? :) Oder kann mir einer von euch auf die Sprünge helfen, ob das hier im Forum irgendwo schon steht - ich hab irgendwie nicht so wirklich ein schlagkräftiges Wort gefunden, was die SuFu zu einem Ergebnis gebracht hätte. :-/

Vielen Dank schonmal und liebe Gruesse,

Petra
This message is written on 100% recycled electrons - save the planet!

Nerd 032F

Beitrag von Nerd 032F »

Im Prinzip muss man ja nur \addrentry bzw. \adrentry passend definieren, also etwas wie (nur als Skizze zu verstehen):
\documentclass{scrartcl}
\newcommand*{\addrentry}[9]{\item[{#2, #1}:] ~}
\newcommand*{\adrentry}[8]{\addrentry{#1}{#2}{#3}{#4}{#5}{#6}{}{#7}{#8}}
\begin{document}
\begin{description}
\input{meinedaten.adr}
\end{description}
\end{document}

Noch so einer

Beitrag von Noch so einer »

Eigentlich hat Nerd Dir dazu doch schon ein Beispiel geliefert. Man kann das beliebig ausbauen, beispielsweise:
\begin{filecontents}{beispiel.adr}
% Das ist die Beispiel-Datei von Kapitel 4 der KOMA-Script-Anleitung:
\adrchar{E}
\adrentry{Engel}{Gabriel}
{Wolke 3\\12345 Himmelreich}
{000\,01\,02\,03}{}{}{Erzengel}
{GABRIEL}
\adrentry{Engel}{Michael}
{Wolke 3a\\12345 Himmelreich}
{000\,01\,02\,04}{}{}{Erzengel}
{MICHAEL}
\adrentry{Engel}{Raphael}
{Wolke 3b\\12345 Himmelreich}
{000\,01\,02\,05}{}{}{Erzengel}
{RAPHAEL}
\adrchar{T}
\adrentry{Teufel}{Luzifer}
{Hinter der Flamme 1\\
66666 H\"ollenschlund}
{}{}{}{Gefallener Engel ohne Telefon}
{LUZIFER}
\end{filecontents}
\documentclass{scrartcl}
\usepackage{scrletter}
\usepackage{array,tabularx,booktabs}
\renewcommand*{\adrentry}[8]{\addrentry{#1}{#2}{#3}{#4}{#5}{#6}{}{#7}{#8}}
\renewcommand*{\addrentry}[9]{%
  \unskip #2, #1 & #3\ifstr{#4}{}{}{\\Telefon: #4} & \tabularnewline
  \midrule
}
\begin{document}
\renewcommand{\arraystretch}{2}
\begin{tabularx}{\textwidth}{@{}l>{\raggedright}XX@{}}
\toprule
Name & Adresse & Unterschrift\hspace{5cm} \tabularnewline
\midrule
\input{beispiel.adr}
\end{tabularx}
\end{document}

Antworten