You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
287 lines
11 KiB
287 lines
11 KiB
% ======================================================================
|
|
% scraddr.tex
|
|
% Copyright (c) Markus Kohm, 2001-2019
|
|
%
|
|
% This file is part of the LaTeX2e KOMA-Script bundle.
|
|
%
|
|
% This work may be distributed and/or modified under the conditions of
|
|
% the LaTeX Project Public License, version 1.3c of the license.
|
|
% The latest version of this license is in
|
|
% http://www.latex-project.org/lppl.txt
|
|
% and version 1.3c or later is part of all distributions of LaTeX
|
|
% version 2005/12/01 or later and of this work.
|
|
%
|
|
% This work has the LPPL maintenance status "author-maintained".
|
|
%
|
|
% The Current Maintainer and author of this work is Markus Kohm.
|
|
%
|
|
% This work consists of all files listed in manifest.txt.
|
|
% ----------------------------------------------------------------------
|
|
% scraddr.tex
|
|
% Copyright (c) Markus Kohm, 2001-2019
|
|
%
|
|
% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
|
|
% Version 1.3c, verteilt und/oder veraendert werden.
|
|
% Die neuste Version dieser Lizenz ist
|
|
% http://www.latex-project.org/lppl.txt
|
|
% und Version 1.3c ist Teil aller Verteilungen von LaTeX
|
|
% Version 2005/12/01 oder spaeter und dieses Werks.
|
|
%
|
|
% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
|
|
% (allein durch den Autor verwaltet).
|
|
%
|
|
% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
|
|
%
|
|
% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
|
|
% ======================================================================
|
|
%
|
|
% Chapter about scraddr of the KOMA-Script guide
|
|
% Maintained by Jens-Uwe Morawski (with help from Markus Kohm)
|
|
%
|
|
% ----------------------------------------------------------------------
|
|
%
|
|
% Kapitel über scraddr in der KOMA-Script-Anleitung
|
|
% Verwaltet von Jens-Uwe Morawski (mit Unterstützung von Markus Kohm)
|
|
%
|
|
% ======================================================================
|
|
|
|
\KOMAProvidesFile{scraddr.tex}
|
|
[$Date: 2019-10-30 09:32:39 +0100 (Wed, 30 Oct 2019) $
|
|
KOMA-Script guide (chapter: scraddr)]
|
|
|
|
\chapter{Adressdateien mit \Package{scraddr} erschließen}%
|
|
\labelbase{scraddr}%
|
|
\BeginIndexGroup
|
|
\BeginIndex{Package}{scraddr}
|
|
|
|
Das Paket \Package{scraddr} ist eine kleine Beigabe zur Briefklasse und zum
|
|
Briefpaket von \KOMAScript. Ziel ist, die Benutzung von Adressdateien zu
|
|
vereinfachen und ihre Anwendung flexibler zu gestalten.
|
|
|
|
\section{Befehle}
|
|
\seclabel{overview}
|
|
|
|
Im Grunde stellt das Paket nur einen Lademechanismus für Adressdateien bereit,
|
|
die aus \DescRef{\LabelBase.cmd.adrentry}- und
|
|
\DescRef{\LabelBase.cmd.adrchar}- oder den neueren
|
|
\DescRef{\LabelBase.cmd.addrentry}- und
|
|
\DescRef{\LabelBase.cmd.addrchar}-Einträgen bestehen, wie sie in
|
|
\autoref{cha:scrlttr2} ab \DescPageRef{scrlttr2.cmd.adrentry} beschrieben
|
|
sind.
|
|
|
|
|
|
\begin{Declaration}
|
|
\Macro{InputAddressFile}\Parameter{Dateiname}
|
|
\end{Declaration}%
|
|
Der Befehl \Macro{InputAddressFile} ist der zentrale Ladebefehl
|
|
von \Package{scraddr}.
|
|
Er erwartet als obligatorisches Argument den
|
|
Namen der einzulesenden Adressdatei.\Index{Adressdatei}
|
|
Wird diese Datei nicht gefunden, wird ein Fehler ausgegeben.
|
|
|
|
Für jeden Eintrag dieser Adressdatei wird eine Reihe von Makros generiert,
|
|
die es ermöglichen, auf die Daten der Adressdatei zuzugreifen. Es soll an
|
|
dieser Stelle nicht verschwiegen werden, dass dies bei großen Adressdateien
|
|
sehr viel \TeX-Speicher kostet.
|
|
%
|
|
\EndIndexGroup
|
|
|
|
\begin{Declaration}%
|
|
\Macro{adrentry}\Parameter{Name}\Parameter{Vorname}\Parameter{Adresse}
|
|
\Parameter{Tel.}\Parameter{F1}\Parameter{F2}
|
|
\Parameter{Kommentar}\Parameter{Kürzel}
|
|
\Macro{addrentry}\Parameter{Name}\Parameter{Vorname}\Parameter{Adresse}
|
|
\Parameter{Tel.}\Parameter{F1}\Parameter{F2}
|
|
\Parameter{F3}\Parameter{F4}
|
|
\Parameter{Kürzel}
|
|
\Macro{adrchar}\Parameter{Anfangsbuchstaben}
|
|
\Macro{addrchar}\Parameter{Anfangsbuchstaben}
|
|
\end{Declaration}%
|
|
Der Aufbau der Adresseinträge in der Adressdatei wurde in
|
|
\autoref{sec:scrlttr2.addressFile} ab
|
|
\DescPageRef{scrlttr2.cmd.adrentry} ausführlich besprochen. Die
|
|
ebenfalls dort erwähnte Unterteilung der Adressdatei mit Hilfe von
|
|
\Macro{adrchar} oder \Macro{addrchar} hat für \Package{scraddr} keine
|
|
Bedeutung und wird vom Paket ignoriert.%
|
|
\EndIndexGroup
|
|
|
|
\begin{Declaration}
|
|
\Macro{Name}\Parameter{Kürzel}
|
|
\Macro{FirstName}\Parameter{Kürzel}
|
|
\Macro{LastName}\Parameter{Kürzel}
|
|
\Macro{Address}\Parameter{Kürzel}
|
|
\Macro{Telephone}\Parameter{Kürzel}
|
|
\Macro{FreeI}\Parameter{Kürzel}
|
|
\Macro{FreeII}\Parameter{Kürzel}
|
|
\Macro{Comment}\Parameter{Kürzel}
|
|
\Macro{FreeIII}\Parameter{Kürzel}
|
|
\Macro{FreeIV}\Parameter{Kürzel}
|
|
\end{Declaration}%
|
|
Die englischen Namen der Zugriffsbefehle folgen den Bezeichnungen der
|
|
Argumente von \DescRef{\LabelBase.cmd.adrentry} und
|
|
\DescRef{\LabelBase.cmd.addrentry}. Die Auswahl des Adresseintrags erfolgt
|
|
anhand des Kürzels im letzten Argument eines Eintrags, das heißt Argument
|
|
Nummer 8 für \DescRef{\LabelBase.cmd.adrentry}-Einträge beziehungsweise
|
|
Argument Nummer 9 für \DescRef{\LabelBase.cmd.addrentry}-Einträge. Das
|
|
bedeutet auch, dass dieses Argument nicht leer sein darf. Um eine sichere
|
|
Funktionsweise zu garantieren, empfiehlt es sich, das Kürzel nur als Folge von
|
|
Buchstaben aufzubauen, wobei jedoch keine Umlaute benutzt werden dürfen.
|
|
|
|
Weiterhin ist zu beachten, dass bei mehrmaligem Auf"|treten
|
|
eines Kürzels in den Einträgen die Angaben beim
|
|
letzten Auf"|treten die gültigen sind.%
|
|
%
|
|
\EndIndexGroup
|
|
|
|
|
|
\section{Anwendung}\seclabel{usage}
|
|
|
|
\BeginIndexGroup
|
|
\BeginIndex[indexother]{Cmd}{addrentry}%
|
|
\BeginIndex[indexother]{Cmd}{adrentry}%
|
|
Um das Paket benutzen zu können, ist eine gültige
|
|
Adressdatei zu erstellen.
|
|
Diese, hier \File{lotr.adr} genannt, könnte beispielsweise
|
|
folgendermaßen aussehen:
|
|
\begin{lstcode}
|
|
\addrentry{Beutlin}{Frodo}%
|
|
{Der Bühl\\ Beutelsend/Hobbingen im Auenland}{}%
|
|
{Bilbo Beutlin}{Rauchen von Pfeifenkraut}%
|
|
{der Ringträger}{Bilbos Erbe}{FRODO}
|
|
\adrentry{Gamdschie}{Samweis}%
|
|
{Beutelhaldenweg 3\\Hobbingen im Auenland}{}%
|
|
{Rosie Kattun}{Knullen}%
|
|
{des Ringträgers treuester Gefährte}{SAM}
|
|
\adrentry{Bombadil}{Tom}%
|
|
{Im Alten Wald}{}%
|
|
{Goldbeere}{trällern von Nonsensliedern}%
|
|
{Meister von Wald, Wasser und Berg}{TOM}
|
|
\end{lstcode}
|
|
%
|
|
Das vierte Argument, die Telefonnummer, wurde hier leer gelassen, da es in
|
|
Auenland keine Telefone gibt. %
|
|
\iffalse % Umbruchkorrektur
|
|
Wie zu sehen ist, sind also auch leere Angaben möglich. Dagegen ist %
|
|
\else%
|
|
Dagegen wäre %
|
|
\fi%
|
|
es nicht erlaubt,\nopagebreak{} ein Argument einfach komplett weg zu lassen.
|
|
|
|
Mit dem oben beschriebenen Ladebefehl lesen wir die Adressdatei in unser
|
|
Briefdokument ein:\IndexCmd{InputAddressFile}
|
|
\begin{lstcode}
|
|
\InputAddressFile{lotr}
|
|
\end{lstcode}
|
|
|
|
\BeginIndexGroup
|
|
\BeginIndex[indexother]{Cmd}{Name}%
|
|
\BeginIndex[indexother]{Cmd}{Address}%
|
|
\BeginIndex[indexother]{Cmd}{FirstName}%
|
|
\BeginIndex[indexother]{Cmd}{LastName}%
|
|
\BeginIndex[indexother]{Cmd}{FreeI}%
|
|
\BeginIndex[indexother]{Cmd}{FreeII}%
|
|
\BeginIndex[indexother]{Cmd}{FreeIII}%
|
|
\BeginIndex[indexother]{Cmd}{FreeIV}%
|
|
\BeginIndex[indexother]{Cmd}{Comment}%
|
|
Mit Hilfe der vorgestellten Makros können wir dann einen Brief
|
|
an den alten \textsc{Tom Bombadil} schreiben, in dem wir ihn
|
|
fragen, ob er sich noch an zwei Gefährten aus alter Zeit
|
|
erinnern kann.
|
|
\begin{lstcode}
|
|
\begin{letter}{\Name{TOM}\\\Address{TOM}}
|
|
|
|
\opening{Lieber \FirstName{TOM} \LastName{TOM},}
|
|
|
|
oder \FreeIII{TOM}, wie Dich Deine geliebte \FreeI{TOM}
|
|
nennt. Kannst Du Dich noch an einen Herrn
|
|
\LastName{FRODO}, genauer gesagt \Name{FRODO}, denn es gab
|
|
ja auch noch den Herrn \FreeI{FRODO}, erinnern. Er war
|
|
\Comment{FRODO} im dritten Zeitalter und \FreeIV{FRODO}.
|
|
Begleitet wurde er von \Name{SAM}, \Comment{SAM}.
|
|
|
|
Beider Vorlieben waren sehr weltlich. Der
|
|
\FirstName{FRODO} genoss das \FreeII{FRODO}, sein Gefährte
|
|
schätzte eine gute Mahlzeit mit \FreeII{SAM}.
|
|
|
|
Weißt du noch? Mithrandir hat Dir bestimmt viel von ihnen
|
|
erzählt.
|
|
|
|
\closing{"`O Frühling und Sommerzeit
|
|
und danach wieder Frühling!\\
|
|
O Wind auf dem Wasserfall
|
|
und Lachen des Laubes!"'}
|
|
\end{letter}
|
|
\end{lstcode}
|
|
Die in diesem Beispiel in \DescRef{scrlttr2.cmd.opening} verwendete
|
|
Zusammensetzung aus \Macro{FirstName}\Parameter{Kürzel} und
|
|
\Macro{LastName}\Parameter{Kürzel} kann, wie bei
|
|
\Macro{begin}\PParameter{letter} gezeigt, auch direkt mittels
|
|
\Macro{Name}\Parameter{Kürzel} erhalten werden.
|
|
|
|
Das fünf"|te und sechste Argument von \DescRef{\LabelBase.cmd.adrentry} und
|
|
\DescRef{\LabelBase.cmd.addrentry} steht zur freien Verfügung. Mit den Makros
|
|
\Macro{FreeI} und \Macro{FreeII} kann auf diese Inhalte zugegriffen werden. Im
|
|
vorliegenden Fall wurde das fünf"|te Argument für die Person benutzt, die der
|
|
Person des Eintrags am nächsten steht. Das sechste Argument enthält im
|
|
Beispiel die besondere Vorliebe der jeweiligen Person. Das siebente Argument
|
|
ist ebenfalls ein freier Eintrag. Der Zugriff erfolgt per \Macro{Comment} oder
|
|
\Macro{FreeIII}. Der Zugriff auf das vierte freie Argument mittels
|
|
\Macro{FreeIV} ist nur für \DescRef{\LabelBase.cmd.addrentry}-Einträge gültig.
|
|
Bei \DescRef{\LabelBase.cmd.adrentry}-Einträgen ist seine Verwendung nicht
|
|
zulässig. Näheres hierzu findet sich im nächsten Abschnitt.
|
|
%
|
|
\EndIndexGroup
|
|
\EndIndexGroup
|
|
|
|
\section{Paketoptionen für Warnungen}
|
|
|
|
Wie im vorherigen Abschnitt erwähnt, ist die Benutzung des Zugriffsbefehls
|
|
\Macro{FreeIV} bei \DescRef{\LabelBase.cmd.adrentry}-Einträgen nicht
|
|
zulässig. Wie \Package{scraddr} darauf reagiert, ist allerdings durch
|
|
Paketoptionen konfigurierbar. Bitte beachten Sie\textnote{Achtung!}, dass
|
|
dieses Paket die erweiterte Optionenschnittstelle mit
|
|
\DescRef{maincls.cmd.KOMAoptions} und \DescRef{maincls.cmd.KOMAoption} nicht
|
|
unterstützt. Die Optionen sind also entweder als globale Optionen bei
|
|
\DescRef{maincls.cmd.documentclass} oder als lokale Optionen bei
|
|
\DescRef{maincls.cmd.usepackage} anzugeben.
|
|
|
|
|
|
\begin{Declaration}
|
|
\Option{adrFreeIVempty}
|
|
\Option{adrFreeIVshow}
|
|
\Option{adrFreeIVwarn}
|
|
\Option{adrFreeIVstop}
|
|
\end{Declaration}
|
|
Diese vier Optionen erlauben die Auswahl aus vier verschiedenen Reaktionen
|
|
zwischen \emph{Ignorieren} bis \emph{Abbruch} falls bei einem
|
|
\DescRef{\LabelBase.cmd.adrentry}-Eintrag der Zugriffsbefehl \Macro{FreeIV}
|
|
verwendet wird:
|
|
%
|
|
\begin{labeling}[~--]{\Option{adrFreeIVempty}}
|
|
\item[\Option{adrFreeIVempty}]
|
|
Der Befehl \Macro{FreeIV} wird einfach ignoriert.
|
|
\item[\Option{adrFreeIVshow}]
|
|
Es wird die Warnung: »(entry FreeIV undefined at \PName{Kürzel})«,
|
|
in den Text geschrieben.
|
|
\item[\Option{adrFreeIVwarn}]
|
|
In der Log-Datei erscheint eine Warnung.
|
|
\item[\Option{adrFreeIVstop}]
|
|
Der \LaTeX{}-Lauf wird mit einer Fehlermeldung unterbrochen.
|
|
\end{labeling}
|
|
Wird für das Paket keine Option angegeben, so ist \Option{adrFreeIVshow}
|
|
voreingestellt.%
|
|
\EndIndexGroup
|
|
%
|
|
\EndIndexGroup
|
|
\endinput
|
|
|
|
%%% Local Variables:
|
|
%%% mode: latex
|
|
%%% mode: flyspell
|
|
%%% coding: utf-8
|
|
%%% ispell-local-dictionary: "de_DE"
|
|
%%% TeX-master: "../guide"
|
|
%%% End:
|
|
|
|
% LocalWords: Zugriffsbefehle Briefpaket Briefklasse Adresseintrags
|
|
% LocalWords: Ladebefehl Auenland
|
|
|