% ====================================================================== % scrlttr2.tex % Copyright (c) Markus Kohm, 2002-2006 % % 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.3b of the license. % The latest version of this license is in % http://www.latex-project.org/lppl.txt % and version 1.3b 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. % ---------------------------------------------------------------------- % scrlttr2.tex % Copyright (c) Markus Kohm, 2002-2006 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. % Die neuste Version dieser Lizenz ist % http://www.latex-project.org/lppl.txt % und Version 1.3b 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 scrlttr2 of the KOMA-Script guide % Maintained by Markus Kohm % % ---------------------------------------------------------------------- % % Kapitel über scrlttr2 in der KOMA-Script-Anleitung % Verwaltet von Markus Kohm % % ============================================================================ \ProvidesFile{scrlttr2.tex}[2006/04/24 KOMA-Script guide (chapter: scrlttr2)] \chapter{Die neue Briefklasse \Class{scrlttr2}} \labelbase{scrlttr2} \BeginIndex{Class}{scrlttr2}\BeginIndex{}{Briefe}% \begin{Explain} Seit der Ausgabe vom Juni 2002 beinhaltet \KOMAScript{} eine komplett neue Briefklasse\ChangedAt{v2.8q}{\Class{scrlttr2}}. Obwohl einige Teile davon mit den Klassen aus \autoref{cha:maincls} übereinstimmen, sind Briefe doch etwas ganz anderes als Artikel, Berichte, Bücher oder Ähnliches. Schon allein deshalb gibt es für die Briefklasse ein eigenes Kapitel. Aber auch aus einem anderen Grund ist ein eigenes Kapitel für \Class{scrlttr2} gerechtfertigt. Die Klasse wurde von Grund auf neu entwickelt. Sie hat daher auch ein komplett anderes Bedienkonzept als alle anderen mir bekannten Klassen. Die neue Art der Bedienung ist möglicherweise etwas ungewohnt, bietet jedoch nicht nur dem geübten Anwender einige Vorteile. \section{Rückblick auf die alte Briefklasse} \label{sec:scrlttr2.scrlettr} Die alte Briefklasse \Class{scrlettr}\IndexClass{scrlettr} ist obsolet. Sie sollte für neue Briefe besser nicht mehr verwendet werden. Sie wird nicht mehr weiterentwickelt und es findet daher auch nur noch sehr eingeschränkter Support dafür statt. Wer dennoch unbedingt die Anleitung zur alten Briefklasse benötigt, kann diese in \File{scrlettr.dtx} finden. Am besten führt man dazu einige \LaTeX-Läufe mit jener Datei durch, also beispielsweise: \begin{lstlisting} latex scrlettr.dtx latex scrlettr.dtx latex scrlettr.dtx \end{lstlisting} Man erhält so die Datei \File{scrlettr.dvi} mit der Anleitung. Um den Umstieg von der alten auf die neue Klasse zu erleichtern, existiert außerdem eine Kompatibilitätsoption. Grundsätzlich ist in der neuen Klasse die gesamte alte Funktionalität enthalten. Ohne die Kompatibilitätsoption ist jedoch die Benutzerschnittstelle eine andere und auch die Voreinstellungen stimmen nicht überein. Näheres zu besagter Option ist \autoref{sec:scrlttr2.lcoFile}, \autoref{tab:lcoFiles} und \autoref{sec:scrlttr2.fromscrlettr} zu entnehmen. \end{Explain} \section{Die Optionen} \label{sec:scrlttr2.options} Die Briefklasse \Class{scrlttr2} bedient sich für die Optionen des \Package{keyval}\IndexPackage{keyval}-Paketes. Dieses ist Bestandteil des \Package{graphics}-Paketes (siehe \cite{package:graphics}). Da jenes Paket zur \emph{required}-Sektion von \LaTeX{} gehört, sollte es Bestandteil jeder \LaTeX-Verteilung sein. Sollte Ihre \TeX-Distribution zwar \LaTeX{}, nicht jedoch das \Package{graphics}- und \Package{keyval}-Paket enthalten, beschweren Sie sich bitte beim zuständigen \TeX-Distributor. Wenn Sie \Class{scrlttr2} verwenden wollen, wird Ihnen in einem solchen Fall nichts anderes übrig bleiben, als das \Package{graphics}-Paket zu installieren. \begin{Explain} Das Besondere am \Package{keyval}-Paket ist, dass Optionen Werte erhalten können. Dadurch werden nicht nur wesentlich weniger Optionen benötigt, sondern gegebenfalls auch weniger optionale Argumente. Sie werden dies bei der Beschreibung der \Environment{letter}-Umgebung in \autoref{sec:scrlttr2.addressee}, \autopageref{desc:scrlttr2.environment.letter} feststellen. Das \Package{keyval}-Paket wird von der Klasse automatisch geladen. Sollten Sie Optionen an das Paket übergeben müssen, so verwenden Sie hierfür bitte die Anweisung \Macro{PassOptionsToPackage} vor \Macro{documentclass}. \end{Explain} \subsection{Spätere Optionenwahl} \label{sec:scrlttr2.options.late} \BeginIndex{}{Optionen}% In diesem Abschnitt wird auf eine Besonderheit der neuen Briefklasse vorgegriffen. Der Sinn dieser Besonderheit wird eigentlich erst klar, wenn der Aufbau einer Briefdatei mit mehreren Briefen und eine weitere Besonderheit von \Class{scrlttr2} verstanden ist. Um jedoch die Anzahl der Vorwärtsverweise überschaubar zu halten, erschien es sinnvoll, diese bereits hier zu beschreiben. \begin{Declaration} \Macro{KOMAoptions}\Parameter{Optionenliste} \end{Declaration} \BeginIndex{Cmd}{KOMAoptions}% Eine Besonderheit der \Class{scrlttr2}-Klasse besteht darin, dass viele Optionen auch noch nach dem Laden der Klasse geändert werden können. Dazu dient diese Anweisung, der die gewünschten Optionen und deren Werte als Argument übergeben werden. Mehrere Optionen können dabei genau wie beim optionalen Argument von \Macro{documentclass} mit Komma voneinander getrennt aufgelistet werden. Sollte eine Option nur beim Laden der Klasse, also als optionales Argument von \Macro{documentclass} erlaubt sein, so wird in der Beschreibung der jeweiligen Option explizit darauf hingewiesen. \begin{Explain} Falls man in der \PName{Optionenliste} eine Option auf einen unzulässigen Wert setzt, so stoppt \LaTeX{} mit einer Fehlermeldung. Durch Eingabe von "`\texttt{h}"' erhält man dann eine Hilfe, in der auch die möglichen Werte für die entsprechende Option angegeben sind. \end{Explain} % \EndIndex{Cmd}{KOMAoptions}% \EndIndex{}{Optionen}% \subsection{Optionen für die Kompatibilität} \label{sec:scrlttr2.compatibilityOptions} \BeginIndex{}{Kompatibilität} Wer seine Briefe im Quellcode archiviert, legt in der Regel allergrößten Wert darauf, dass bei zukünftigen \LaTeX{}-Läufen immer wieder exakt dasselbe Ergebnis erzielt wird. In einigen Fällen ist es aber so, dass Verbesserungen und Korrekturen an der Klasse zu Änderungen im Verhalten, inbesondere beim Umbruch, führen. \begin{Declaration} \Option{version}=\PName{Wert} \end{Declaration} \BeginIndex{Option}{version}% Bei\ChangedAt{v2.9t}{\Class{scrlttr2}} \Class{scrlttr2} besteht die Wahl, ob eine Quelldatei so weit irgend möglich auch zukünftig bei einem \LaTeX{}-Lauf zu exakt demselben Ergebnis führen soll oder ob jeweils entsprechend der Anpassungen der neusten Version der Klasse zu setzen ist. Zu welcher Version Kompatibilität herzustellen ist, wird dabei über die Option \Option{version} festgelegt. Voreingestellt ist Version 2.9t. Dasselbe Ergebnis kann mit \begin{lstlisting} version=first \end{lstlisting} oder \begin{lstlisting} version=2.9 \end{lstlisting} oder \begin{lstlisting} version=2.9t \end{lstlisting} erreicht werden. Bei Angabe einer unbekannten Version als \PName{Wert} wird eine Warnung ausgegeben und sicherheitshalber \Option{version=}\PValue{first} angenommen. Mit \begin{lstlisting} version=last \end{lstlisting} kann die jeweils neuste Version ausgewählt werden. In diesem Fall wird also auf zukünftige Kompatibilität verzichtet. Wird die Option ohne Wertangabe verwendet, so wird ebenfalls \PValue{last} angenommen. Die Frage der Kompatiblität betrifft in erster Linie Fragen des Umbruchs. Neue Möglichkeiten, die sich nicht auf den Umbruch auswirken, sind auch dann verfügbar, wenn man per Option die Kompatibilität zu einer älteren Version ausgewählt hat. % \EndIndex{Option}{version}% % \EndIndex{}{Kompatibilität} \subsection{Optionen für den Satzspiegel} \label{sec:scrlttr2.typeareaOptions} \BeginIndex{}{Satzspiegel} Die \Class{scrlttr2}-Klasse stützt sich im Gegensatz zur alten \Class{scrlettr}-Klasse und in Übereinstimmung mit den übrigen \KOMAScript-Klassen zur Festlegung des Satzspiegels auf das \Package{typearea}-Paket\IndexPackage{typearea} (siehe \autoref{cha:typearea}). Das Paket wird von der Klasse automatisch geladen. Die Steuerung des Paketes übernimmt die Klasse. Die dazu benötigten Optionen werden in diesem Abschnitt erwähnt. \begin{Declaration} \Option{paper}=\PName{Format} \end{Declaration} \BeginIndex{Option}{paper}% \BeginIndex{}{Papierformat}% Mit dieser Option wird das Papierformat angegeben. Es werden theoretisch alle Papierformate unterstützt, die das \Package{typearea}-Paket kennt. Dabei ist jedoch das Postfix \PValue{paper} bei der Angabe des Wertes \PName{Format} wegzulassen. Für das Letterformat verwenden Sie also beispielsweise den Wert \PValue{letter}. Die Formate der ISO A-, B-, C- und D-Reihe sind mit Kleinbuchstaben zu übergeben, beispielsweise \PValue{a4} für ISO A4. Siehe hierzu auch \autoref{sec:typearea.paperTypes}. \begin{Explain} Obwohl jedes von \Package{typearea} einstellbare Format verwendbar ist, kann es bei der Ausgabe der ersten Briefseite mit manchen Formaten zu unerwünschten Ergebnissen kommen. Das liegt aber nicht am Konzept der Klasse, sondern daran, dass derzeit nur Parametersätze für ISO A4 existieren. Leider gibt es keine allgemeingültigen Regeln, um die Position von Anschriftfeldern und Ähnlichem für beliebige Papierformate zu berechnen. Es ist jedoch möglich, auch für andere Papierformate Parametersätze zu erstellen. Näheres dazu ist \autoref{sec:scrlttr2.lcoFile} zu entnehmen. \end{Explain} % \EndIndex{Option}{paper}% \EndIndex{}{Papierformat}% \begin{Declaration} \Option{BCOR}=\PName{Länge}\\ \Option{DIV}=\PName{Wert}\\ \Option{headlines}=\PName{Anzahl} \end{Declaration} \BeginIndex{Option}{BCOR}% \BeginIndex{Option}{DIV}% \BeginIndex{Option}{headlines}% Die Optionen für den Divisor, die Bindekorrektur\Index{Bindekorrektur} und die Anzahl der Kopfzeilen wird direkt in die entsprechenden Optionen für das \Package{typearea} Paket übersetzt und an dieses Paket weitergeleitet. Werden die Optionen nicht als Klassenoptionen sondern mit \Macro{KOMAoptions} gesetzt, so wird die Anweisung \Macro{typearea} aus dem \Package{typearea}-Paket verwendet. Siehe dazu auch \autoref{sec:typearea.options}, \autopageref{desc:typearea.macro.typearea}. % \EndIndex{Option}{BCOR}% \EndIndex{Option}{DIV}% \EndIndex{Option}{headlines}% \begin{Declaration} \Option{enlargefirstpage} \end{Declaration} \BeginIndex{Option}{enlargefirstpage}% Wie später erklärt wird, fällt die erste Seite eines Briefes immer aus dem normalen Satzspiegel. \Class{scrlttr2} stellt Mechanismen bereit, um die Höhe und vertikale Ausrichtung von Kopf und Fuß der ersten Seite unabhängig von den Folgeseiten bestimmen zu können. Würde dadurch der Fuß der ersten Seite in den Textbereich\Index{Textbereich} ragen, so wird der Textbereich der ersten Seite automatisch mit Hilfe von \Macro{enlargethispage}\IndexCmd{enlargethispage} verkleinert. Soll der Textbereich umgekehrt auch vergrößert werden, falls der Fuß der ersten Seite dies erlaubt, so kann das mit dieser Option erreicht werden. Es passt dann bestenfalls etwas mehr Text auf die erste Seite. Siehe hierzu auch die Erklärung zur Pseudolänge \PLength{firstfootvpos} in \autoref{sec:scrlttr2.firstFoot}, \autopageref{desc:scrlttr2.plength.firstfootvpos}. Die Option versteht die Standardwerte für einfache Schalter, die in \autoref{tab:scrlttr2.simpleSwitchValues}, \autopageref{tab:scrlttr2.simpleSwitchValues} angegeben sind. Voreingestellt ist \PValue{false}. % \EndIndex{Option}{enlargefirstpage}% \begin{table} \centering \caption{Standardwerte für einfache Schalter in der Klasse \Class{scrlttr2}} \begin{tabular}{ll} \toprule Wert & Bedeutung \\ \midrule \PValue{true} & aktiviert die Option \\ \PValue{on} & aktiviert die Option \\ \PValue{false}& deaktiviert die Option \\ \PValue{off} & deaktiviert die Option \\ \bottomrule \end{tabular} \label{tab:scrlttr2.simpleSwitchValues} \end{table} % \EndIndex{}{Satzspiegel}% \subsection{Optionen für das Layout} \label{sec:scrlttr2.layout} In diesem Unterabschnitt werden alle Optionen zusammengefasst, die sich im weiter gefassten Sinne auf das Layout und nicht auf den Satzspiegel auswirken. Genau genommen sind natürlich alle Satzspiegeloptionen (siehe \autoref{sec:scrlttr2.typeareaOptions}) Layoutoptionen. Teilweise gilt dies auch umgekehrt. \begin{Declaration} \Option{mpinclude}\\ \Option{mpexclude} \end{Declaration} \BeginIndex{Option}{mpinclude}% \BeginIndex{Option}{mpexclude}% Diese beiden Optionen des \Package{typearea}-Paketes sollten nicht zusammen mit der \Class{scrlttr2}-Klasse verwendet werden, da insbesondere die erste Briefseite diese Option nicht berücksichtigt. Um Beschwerden vorzugreifen, wird daher bei Verwendung dieser Option eine Warnung ausgegeben. Wenn Sie experimentierfreudig sind, können Sie aber gerne ausprobieren, wie sich insbesondere \Option{mpinclude} zusammen mit anderen Optionen auf die Klasse auswirkt. % \EndIndex{Option}{mpinclude}% \EndIndex{Option}{mpexclude}% \begin{Declaration} \Option{twoside} \end{Declaration}% \BeginIndex{Option}{oneside}% Doppelseitige\Index{doppelseitig} Briefe ergeben in den Augen des Autors wenig Sinn. Deshalb schaltet die Option \Option{twoside} auch nur teilweise auf ein doppelseitiges Layout. So wird zwar die Möglichkeit geschaffen, auf linken und rechten Seiten mit einem unterschiedlichen Rand\Index{Rand} zu arbeiten, diese Möglichkeit wird jedoch nicht genutzt. Die Option hat also mehr die Bedeutung: \emph{Aktiviere die Möglichkeiten eines zweiseitigen Dokuments aber behalte bis auf weiteres und so weit wie möglich das einseitige Layout bei.} % Die Option versteht die Standardwerte für einfache Schalter, die in \autoref{tab:scrlttr2.simpleSwitchValues}, \autopageref{tab:scrlttr2.simpleSwitchValues} angegeben sind. Voreingestellt ist \PValue{false}.% % \EndIndex{Option}{twoside}% Übrigens werden zweispaltige Briefe nicht unterstützt, da absolut kein Sinn darin gesehen wird. \begin{Declaration} \Option{cleardoublepage}=\PName{Stil} \end{Declaration} \BeginIndex{Option}{cleardoublepage}% Will man, dass mit der \Macro{cleardoublepage}-Anweisung eingefügte Leerseiten im Kopf- und Fuß nur eine Seitenzahl oder gar nichts aufweisen, so kann das mit Hilfe dieser Option eingestellt werden. Es stehen drei verschiedene Stile zur Verfügung, die in \autoref{tab:scrlttr2.cleardoublepage} aufgeführt sind. Die Seitenstile werden in \autoref{sec:scrlttr2.pageStyle} näher erläutert. Voreingestellt ist \PValue{standard}. \begin{table} \caption[{Mögliche Werte für Option \Option{cleardoublepage} bei \Class{scrlttr2}}]{Mögliche Werte für Option \Option{cleardoublepage} zur Wahl des Seitenstils von leeren Schaltseiten bei \Class{scrlttr2}} \label{tab:scrlttr2.cleardoublepage} \begin{desctabular} \pventry{empty}{schaltet für die Leerseite auf den Seitenstil\Index{Seitenstil} \PValue{empty}\IndexPagestyle{empty}}% \pventry{plain}{schaltet für die Leerseite auf den Seitenstil \PValue{plain}\IndexPagestyle{plain}} \pventry{standard}{behält für die Leerseite den aktuellen Seitenstil bei.} \end{desctabular} \end{table} % \EndIndex{Option}{cleardoublepage}% \begin{Declaration} \Option{headsepline}\\ \Option{footsepline} \end{Declaration} \BeginIndex{Option}{headsepline}% \BeginIndex{Option}{footsepline}% Mit Hilfe dieser beiden Optionen kann eine Trennlinie\Index{Trennlinie}\Index{Linie} unter dem Kopf\Index{Seitenkopf} oder über dem Fuß\Index{Seitenfuß} von Folgeseiten eingeschaltet werden. Folgeseiten im Sprachgebrauch dieser Anleitung sind alle Briefseiten, abgesehen von der ersten. Die Optionen \Option{headsepline} und \Option{footsepline} verstehen die Standardwerte für einfache Schalter, die in \autoref{tab:scrlttr2.simpleSwitchValues}, \autopageref{tab:scrlttr2.simpleSwitchValues} angegeben sind. Voreingestellt ist \PValue{false}. Wird eine Option wie in der Deklaration ohne Wert verwendet, so entspricht dies dem Wert \PValue{true}, die Trennlinie wird also aktiviert. Bei Verwendung als Option in \Macro{documentclass} wird zusätzlich die Option \Option{headinclude} beziehungsweise \Option{footinclude} an das Paket \Package{typearea} übergeben (siehe \autoref{sec:typearea.options}, \autopageref{desc:typearea.option.headinclude}). % \EndIndex{Option}{headsepline}% \EndIndex{Option}{footsepline}% \begin{Declaration} \Option{pagenumber}=\PName{Position} \end{Declaration} \BeginIndex{Option}{pagenumber}% Mit Hilfe dieser Option kann bestimmt werden, ob und wo eine Seitenzahl auf Folgeseiten gesetzt werden soll. Folgeseiten\Index{Folgeseite} sind alle Briefseiten ohne Briefkopf\Index{Briefkopf}. Die Option wirkt sich auf die Seitenstile\Index{Seitenstil} \PValue{headings} und \PValue{plain} aus. Sie beeinflusst außerdem die Voreinstellung der Seitenstile des \Package{scrpage2}-Paketes, soweit sie vor dem Laden dieses Paketes gesetzt wird (siehe \autoref{cha:scrpage}). Es gibt Werte, die sich nur auf die horizontale Position auswirken, Werte, die nur die vertikale Position beeinflussen, und Werte, die zugleich die vertikale und die horizontale Position festlegen. Mögliche Werte sind \autoref{tab:scrlttr2.pagenumber} zu entnehmen. Voreingestellt ist \PValue{botcenter}. \begin{table} \caption[{Mögliche Werte für Option \Option{pagenumber} bei \Class{scrlttr2}}]{Mögliche Werte für Option \Option{pagenumber} zur Positionierung der Paginierung bei den Seitenstilen \PValue{headings} und \PValue{plain} von \Class{scrlttr2}} \label{tab:scrlttr2.pagenumber} \begin{desctabular} \entry{\PValue{bot}, \PValue{foot}}{% Seitenzahl im Fuß ohne Änderung der horizontalen Position}% \entry{\PValue{botcenter}, \PValue{botcentered}, \PValue{botmittle}, \PValue{footcenter}, \PValue{footcentered}, \PValue{footmiddle}}{% Seitenzahl zentriert im Fuß}% \entry{\PValue{botleft}, \PValue{footleft}}{% Seitenzahl links im Fuß}% \entry{\PValue{botright}, \PValue{footright}}{ Seitenzahl rechts im Fuß}% \entry{\PValue{center}, \PValue{centered}, \PValue{middle}}{% Seitenzahl zentriert ohne Änderung der vertikalen Position}% \entry{\PValue{false}, \PValue{no}, \PValue{off}}{% keine Seitenzahl}% \entry{\PValue{head}, \PValue{top}}{% Seitenzahl im Kopf ohne Änderung der horizontalen Position}% \entry{\PValue{headcenter}, \PValue{headcentered}, \PValue{headmiddle}, \PValue{topcenter}, \PValue{topcentered}, \PValue{topmiddle}}{% Seitenzahl zentriert im Kopf}% \entry{\PValue{headleft}, \PValue{topleft}}{% Seitenzahl links im Kopf}% \entry{\PValue{headright}, \PValue{topright}}{% Seitenzahl rechts im Kopf}% \entry{\PValue{left}}{% Seitenzahl links ohne Änderung der vertikalen Position}% \entry{\PValue{right}}{% Seitenzahl rechts ohne Änderung der vertikalen Position}% \end{desctabular} \end{table} % \EndIndex{Option}{pagenumber}% \begin{Explain}% \begin{Declaration} \Option{parskip}=\PName{Wert} \end{Declaration}% \BeginIndex{Option}{parskip}% Gerade bei Briefen erlebt man häufig, dass diese nicht mit Einrückung der ersten Zeile eines Absatzes\Index{Absatz}\Index{Absatzeinzug}, sondern mit Abstand\Index{Absatzabstand} zwischen den Absätzen gesetzt werden. Hier spielt die Tradition eine große Rolle. Offenbar fiel es früher der durchschnittlichen Sekretärin leichter, auf der Schreibmaschine zweimal den Hebel zur Zeilenschaltung zu betätigen als eine Einrückung mittels gut gesetztem Tabulator oder Leertaste zu setzen. Da korrekter Blocksatz\Index{Blocksatz} mit einer Schreibmaschine kaum möglich war, wurden und werden Briefe auch heute noch häufig im Flattersatz gesetzt. Typografen wie Jan Tschichold vertreten jedoch die Auf"|fassung, dass für Briefe, die mit den Mitteln des modernen Schriftsatzes erstellt werden, diese Mittel auch ebenso gut genutzt werden sollten wie für andere Dokumente. So gesehen sollten also auch Briefe mit Absatzeinrückung und im Blocksatz erstellt werden. \end{Explain} \Class{scrlttr2} bietet nicht nur die Möglichkeit, Absätze durch Einrückung der ersten Zeile zu kennzeichnen, sondern alternativ einen Abstand zwischen den Absätzen zu verwenden. Dabei kann zwischen einer halben und einer ganzen Zeile Abstand gewählt werden. Zur Erleichterung der Erkennung des Absatzendes kann bei der Wahl von Absatzabstand die erlaubte Füllung der letzten Zeile eines Absatzes eingestellt werden. All diese Möglichkeiten werden über die Werte der Option \Option{parskip} gesteuert, deren mögliche Werte in \autoref{tab:scrlttr2.parskip} zu finden sind. Voreingestellt ist \PValue{false}. \begin{table} \caption[{Mögliche Werte für Option \Option{parskip} bei \Class{scrlttr2}}]{Mögliche Werte für Option \Option{parskip} zur Wahl der Absatzauszeichnung bei \Class{scrlttr2}} \label{tab:scrlttr2.parskip} \begin{desctabular} \entry{\PValue{false}, \PValue{off}}{% Absatzeinzug statt Absatzabstand; die letzte Zeile eines Absatzes darf beliebig gefüllt sein}% \entry{\PValue{full}, \PValue{on}, \PValue{true}}{% eine Zeile Abstand zwischen Absätzen; in der letzten Zeile eines Absatzes muss mindestens 1\Unit{em} Platz frei bleiben}% \pventry{full*}{eine Zeile Abstand zwischen Absätzen; in der letzten Zeile eines Absatzes muss mindestens ein Viertel frei bleiben}% \pventry{full+}{eine Zeile Abstand zwischen Absätzen; in der letzten Zeile eines Absatzes muss mindestens ein Drittel frei bleiben}% \pventry{full-}{eine Zeile Abstand zwischen Absätzen; die letzte Zeile eines Absatzes darf beliebig gefüllt sein}% \pventry{half}{eine halbe Zeile Abstand zwischen Absätzen; in der letzten Zeile eines Absatzes muss mindestens 1\Unit{em} Platz frei bleiben}% \pventry{half*}{eine halbe Zeile Abstand zwischen Absätzen; in der letzten Zeile eines Absatzes muss mindestens ein Viertel frei bleiben}% \pventry{half+}{eine halbe Zeile Abstand zwischen Absätzen; in der letzten Zeile eines Absatzes muss mindestens ein Drittel frei bleiben}% \pventry{half-}{eine halbe Zeile Abstand zwischen Absätzen; die letzte Zeile eines Absatzes darf beliebig gefüllt sein}% \end{desctabular} \end{table} % \EndIndex{Option}{parskip}% \subsection{Optionen für die Schriftwahl} \label{sec:scrlttr2.fontOptions} Optionen für die Schriftwahl sind Optionen, die sich auf die Größe der Grundschrift oder der Schrift einzelner Teile auswirken. \begin{Declaration} \Option{fontsize}=\PName{Größe} \end{Declaration} \BeginIndex{Option}{fontsize}% Während bei den Hauptklassen die Schriftgröße\Index{Schriftgroesse=Schriftgröße} des Dokuments mit \Option{10pt}, \Option{11pt} usw. gewählt wird, gibt man bei \Class{scrlttr2} die gewünschte \PName{Größe} als Wert dieser Option an. Die Funktionalität ist aber ansonsten gleich. Diese Option kann nur bei \Macro{documentclass}, nicht jedoch bei \Macro{KOMAoptions} angegeben werden. Voreingestellt ist \PValue{12pt}. % \EndIndex{Option}{fontsize}% \subsection{Optionen für Briefkopf und Anschrift} \label{sec:scrlttr2.headoptions} \BeginIndex{}{Briefkopf}\BeginIndex{}{Anschrift}% Die \Class{scrlttr2}-Klasse bietet eine ganze Reihe von Erweiterungen für die Gestaltung des Briefkopfes. Dadurch wird das Paket \Package{briefkopf}, das immer ohne Support war, obsolet. Darüber hinaus existieren gegenüber der Standardbriefklasse Erweiterungen zur Gestaltung der Anschrift. % \iftrue % Umbruchfülltext Diese Fähigkeiten waren jedoch weitgehend schon in der obsoleten Klasse \Class{scrlettr} zu finden. % \fi \begin{Declaration} \Option{fromalign} \end{Declaration} \BeginIndex{Option}{fromalign}% Diese Option bestimmt, wo der Absender\Index{Absender} im Briefkopf der ersten Seite platziert werden soll. Gleichzeitig dient diese Option als zentraler Schalter, um die Erweiterungen der Briefkopfgestaltung überhaupt zu aktivieren oder zu deaktivieren. Sind die Erweiterungen deaktiviert, so bleiben diverse andere Optionen ohne Wirkung. Dies ist bei den jeweiligen Optionen angegeben. Mögliche Werte für \Option{fromalign} sind \autoref{tab:scrlttr2.fromalign} zu entnehmen. Voreingestellt ist der Wert \PValue{left}. \begin{table} \caption[{Mögliche Werte für Option \Option{fromalign} bei \Class{scrlttr2}}]{Mögliche Werte für Option \Option{fromalign} zur Platzierung des Absenders im Briefkopf von \Class{scrlttr2}} \label{tab:scrlttr2.fromalign} \begin{desctabular} \entry{\PValue{center}, \PValue{centered}, \PValue{middle}}{% Absender wird zentriert; ein Logo wird gegebenenfalls am Anfang der erweiterten Absenderangabe platziert; die Erweiterungen der Briefkopfgestaltung werden aktiviert.}% \entry{\PValue{false}, \PValue{no}, \PValue{off}}{% die Standardgestalt für den Absender wird verwendet; die Erweiterungen der Briefkopfgestaltung werden deaktiviert.}% \entry{\PValue{left}}{% Absender steht linksbündig; ein Logo wird gegebenenfalls rechtsbündig platziert; die Erweiterungen der Briefkopfgestaltung werden aktiviert.}% \entry{\PValue{right}}{% Absender steht rechtsbündig; ein Logo wird gegebenenfalls linksbündig platziert; die Erweiterungen der Briefkopfgestaltung werden aktiviert.}% \end{desctabular} \end{table} % \EndIndex{Option}{fromalign}% \begin{Declaration} \Option{fromrule} \end{Declaration} \BeginIndex{Option}{fromrule}% Diese Option gehört zu den Erweiterungen der Briefkopfgestaltung (siehe Option \Option{fromalign} am Anfang dieses Abschnitts). Mit ihrer Hilfe kann eine Linie\Index{Linie}\Index{Absender} innerhalb des Absenders platziert werden. Die Option versteht die Werte aus \autoref{tab:scrlttr2.fromrule}. Voreingestellt ist der Wert \PValue{false}. Es können nicht gleichzeitig mehrere Linien aktiviert werden. Bezüglich der Länge der Linie siehe \autoref{sec:scrlttr2.other}, \autopageref{desc:scrlttr2.plength.fromrulewidth}). \begin{table} \caption[{Mögliche Werte für Option \Option{fromrule} bei \Class{scrlttr2}}]{Mögliche Werte für Option \Option{fromrule} zur Platzierung einer Linie im Absender von \Class{scrlttr2}} \label{tab:scrlttr2.fromrule} \begin{desctabular} \entry{\PValue{afteraddress}, \PValue{below}, \PValue{on}, \PValue{true}, \PValue{yes}}{% Linie unterhalb des kompletten Absenders}% \entry{\PValue{aftername}}{% Linie direkt unter dem Namen des Absenders}% \entry{\PValue{false}, \PValue{no}, \PValue{off}}{% keine Linie}% \end{desctabular} \end{table} % \EndIndex{Option}{fromrule}% \begin{Declaration} \Option{fromphone} \end{Declaration} \BeginIndex{Option}{fromphone}% Diese Option gehört zu den Erweiterungen der Briefkopfgestaltung (siehe Option \Option{fromalign} am Anfang dieses Abschnitts). Mit ihrer Hilfe kann bestimmt werden, ob die Telefonnummer\Index{Telefon} im Absender\Index{Absender} gesetzt werden soll. Die Option versteht die Standardwerte für einfache Schalter, die in \autoref{tab:scrlttr2.simpleSwitchValues}, \autopageref{tab:scrlttr2.simpleSwitchValues} angegeben sind. Voreingestellt ist \PValue{false}. % \EndIndex{Option}{fromphone}% \begin{Declaration} \Option{fromfax} \end{Declaration} \BeginIndex{Option}{fromfax}% Diese Option gehört zu den Erweiterungen der Briefkopfgestaltung (siehe Option \Option{fromalign} am Anfang dieses Abschnitts). Mit ihrer Hilfe kann bestimmt werden, ob die Telefaxnummer\Index{Fax} im Absender\Index{Absender} gesetzt werden soll. Die Option versteht die Standardwerte für einfache Schalter, die in \autoref{tab:scrlttr2.simpleSwitchValues}, \autopageref{tab:scrlttr2.simpleSwitchValues} angegeben sind. Voreingestellt ist \PValue{false}. % \EndIndex{Option}{fromfax}% \begin{Declaration} \Option{fromemail} \end{Declaration} \BeginIndex{Option}{fromemail}% Diese Option gehört zu den Erweiterungen der Briefkopfgestaltung (siehe Option \Option{fromalign} am Anfang dieses Abschnitts). Mit ihrer Hilfe kann bestimmt werden, ob die E-Mail-Adresse\Index{E-Mail} im Absender\Index{Absender} gesetzt werden soll. Die Option versteht die Standardwerte für einfache Schalter, die in \autoref{tab:scrlttr2.simpleSwitchValues}, \autopageref{tab:scrlttr2.simpleSwitchValues} angegeben sind. Voreingestellt ist \PValue{false}. % \EndIndex{Option}{fromemail}% \begin{Declaration} \Option{fromurl} \end{Declaration} \BeginIndex{Option}{fromurl}% Diese Option gehört zu den Erweiterungen der Briefkopfgestaltung (siehe Option \Option{fromalign} am Anfang dieses Abschnitts). Mit ihrer Hilfe kann bestimmt werden, ob die URL\Index{URL}\Index{WWW}\Index{Homepage} im Absender\Index{Absender} gesetzt werden soll. Die Option versteht die Standardwerte für einfache Schalter, die in \autoref{tab:scrlttr2.simpleSwitchValues}, \autopageref{tab:scrlttr2.simpleSwitchValues} angegeben sind. Voreingestellt ist \PValue{false}. % \EndIndex{Option}{fromurl}% \begin{Declaration} \Option{fromlogo} \end{Declaration} \BeginIndex{Option}{fromlogo}% Diese Option gehört zu den Erweiterungen der Briefkopfgestaltung (siehe Option \Option{fromalign} am Anfang dieses Abschnitts). Mit ihrer Hilfe kann bestimmt werden, ob das Logo\Index{Logo} im Briefkopf gesetzt werden soll. Die Option versteht die Standardwerte für einfache Schalter, die in \autoref{tab:scrlttr2.simpleSwitchValues}, \autopageref{tab:scrlttr2.simpleSwitchValues} angegeben sind. Bezüglich der Platzierung des Logos siehe ebenfalls die Erklärung zu Option \Option{fromalign} am Anfang dieses Abschnitts. Voreingestellt ist \PValue{false}. % \EndIndex{Option}{fromlogo}% \begin{Declaration} \Option{addrfield} \end{Declaration} \BeginIndex{Option}{addrfield}% Mit dieser Option kann gewählt werden, ob ein Anschriftfeld gesetzt werden soll oder nicht. Voreingestellt ist die Verwendung eines Anschriftfeldes. Die Option versteht die Standardwerte für einfache Schalter, die in \autoref{tab:scrlttr2.simpleSwitchValues}, \autopageref{tab:scrlttr2.simpleSwitchValues} angegeben sind. Voreingestellt ist \PValue{true}. % \EndIndex{Option}{addrfield}% \begin{Declaration} \Option{backaddress} \end{Declaration} \BeginIndex{Option}{backaddress}% Mit dieser Option kann gewählt werden, ob eine Rücksendeadresse\Index{Rücksendeadresse} für Fensterbriefumschläge im Anschriftfeld gesetzt werden soll oder nicht. Voreingestellt ist die Verwendung einer Rücksendeadresse. Wird kein Anschriftfeld gesetzt (siehe Option \Option{addrfield}), so wird auch keine Rücksendeadresse gesetzt. Die Option versteht die Standardwerte für einfache Schalter, die in \autoref{tab:scrlttr2.simpleSwitchValues}, \autopageref{tab:scrlttr2.simpleSwitchValues} angegeben sind. Voreingestellt ist \PValue{true}. % \EndIndex{Option}{backaddress}% \begin{Declaration} \Option{subject} \end{Declaration} \BeginIndex{Option}{subject}% Mit dieser Option kann zum einen gewählt werden, ob der Betreff\Index{Betreff} mit einem Titel versehen werden soll oder nicht. Der Titel stimmt mit der Bezeichnung der Variablen \PName{subject} überein (siehe \autoref{tab:scrlttr2.subjectTerm}, \autopageref{tab:scrlttr2.subjectTerm}). Zum anderen kann über diese Option gewählt werden, ob der Betreff vor oder nach der Anrede gesetzt werden soll. Mögliche Werte für diese Option sind \autoref{tab:scrlttr2.subject} zu entnehmen. Voreingestellt sind \PValue{beforeopening} und \PValue{untitled}. \begin{table} \caption[{Mögliche Werte für Option \Option{subject} bei \Class{scrlttr2}}]{Mögliche Werte für Option \Option{subject} zur Platzierung eines Betreffs bei \Class{scrlttr2}} \label{tab:scrlttr2.subject} \begin{desctabular} \pventry{afteropening}{Betreff nach der Anrede setzen}% \pventry{beforeopening}{Betreff vor der Anrede setzen}% \pventry{titled}{Betreff mit Titel versehen}% \pventry{untitled}{Betreff nicht mit Titel versehen}% \end{desctabular} \end{table} % \EndIndex{Option}{subject}% \begin{Declaration} \Option{locfield} \end{Declaration} \BeginIndex{Option}{locfield}% Neben dem Anschriftfeld setzt \Class{scrlttr2} noch ein Feld mit erweiterter Absenderangabe. Dieses Feld kann beispielsweise für Bankverbindungen und Ähnliches verwendet werden. Je nach Einstellung der Option \Option{fromalign} wird es außerdem für das Logo des Absenders mit verwendet. Die Breite dieses Feldes kann beispielsweise in einer \File{lco}-Datei (siehe \autoref{sec:scrlttr2.lcoFile}) gesetzt werden. Wird dort die Breite 0 gesetzt, so kann über die Option \Option{locfield} zwischen zwei unterschiedlichen Voreinstellungen für die Breite dieses Feldes gewählt werden. Siehe hierzu auch die Erklärungen zur Pseudolänge \Variable{locwidth} in \autoref{sec:scrlttr2.locationField}, \autopageref{desc:scrlttr2.plength.locwidth}. Mögliche Werte für die Option sind \autoref{tab:scrlttr2.locfield} zu entnehmen. Voreingestellt ist \PValue{narrow}. \begin{table} \caption[{Mögliche Werte für Option \Option{locfield} bei \Class{scrlttr2}}]{Mögliche Werte für Option \Option{locfield} zur Wahl der Breite des Feldes für die Absenderergänzung bei \Class{scrlttr2}} \label{tab:scrlttr2.locfield} \begin{desctabular} \pventry{narrow}{schmales Feld für Absenderergänzungen}% \pventry{wide}{breites Feld für Absenderergänzungen}% \end{desctabular} \end{table} % \EndIndex{Option}{locfield}% \begin{Declaration} \Option{foldmarks} \end{Declaration} \BeginIndex{Option}{foldmarks}% Mit dieser Option können Faltmarken\Index{Faltmarken}\Index{Falzmarken} für Seitenhalbierung und Seitendrittelung aktiviert oder deaktiviert werden. Die genaue Position der Faltmarken für die Seitendrittelung ist von den Einstellungen des Anwenders beziehungsweise der \File{lco}-Dateien (siehe \autoref{sec:scrlttr2.lcoFile}) abhängig. Es muss sich dabei nicht zwingend um eine echte Drittelung handeln. Die Option versteht die Standardwerte für einfache Schalter, die in \autoref{tab:scrlttr2.simpleSwitchValues}, \autopageref{tab:scrlttr2.simpleSwitchValues} angegeben sind. Voreingestellt ist mit \PValue{true} das Setzen der Faltmarken. % \EndIndex{Option}{foldmarks}% \begin{Declaration} \Option{numericaldate} \end{Declaration} \BeginIndex{Option}{numericaldate}% Mit dieser Option kann zwischen der sprachabhängigen Standarddarstellung des Datums\Index{Datum}\Index{Geschäftszeile} und einem kurzen, rein nummerischen Datum umgeschaltet werden. Die Standarddarstellung wird nicht von \KOMAScript{} bereitgestellt. Sie kann wahlweise von einem Paket wie \Package{german}\IndexPackage{german}, \Package{babel}\IndexPackage{babel} oder auch \Package{isodate}\IndexPackage{isodate} stammen. Das kurze nummerische Datum wird hingegen von \Class{scrlttr2} selbst erzeugt. Die Option versteht die Standardwerte für einfache Schalter, die in \autoref{tab:scrlttr2.simpleSwitchValues}, \autopageref{tab:scrlttr2.simpleSwitchValues} angegeben sind. Voreingestellt ist mit \PValue{false} die Verwendung der Standarddarstellung. Dies ist übrigens eine Änderung gegenüber der obsoleten Klasse \Class{scrlettr}, bei der es die nun nicht mehr unterstützte Option \Option{orgdate} mit gegenteiliger Bedeutung gab. % \EndIndex{Option}{numericaldate}% \begin{Declaration} \Option{refline} \end{Declaration} \BeginIndex{Option}{refline}% Bei \Class{scrlttr2} können Kopf, Fuß, Anschrift und das Feld mit der Absenderergänzung links und rechts aus dem normalen Satzspiegel herausragen. Über diese Option kann nun gewählt werden, ob dies auch für die Geschäftszeile\Index{Geschäftszeile} gelten soll. Die Geschäftszeile enthält normalerweise zumindest das Datum, kann aber auch weitere Angaben aufnehmen. Mögliche Werte für diese Option sind \autoref{tab:scrlttr2.refline} zu entnehmen. Voreingestellt ist \PValue{narrow}. \begin{table} \caption[{Mögliche Werte für Option \Option{refline} bei \Class{scrlttr2}}]{Mögliche Werte für Option \Option{refline} zur Wahl der Breite der Geschäftszeile bei \Class{scrlttr2}} \label{tab:scrlttr2.refline} \begin{desctabular} \pventry{narrow}{Geschäftszeile hält den Satzspiegel ein}% \pventry{wide}{Geschäftszeile richtet sich nach Anschrift und Absenderergänzung}% \end{desctabular} \end{table} % \EndIndex{Option}{refline}% % \EndIndex{}{Briefkopf}\EndIndex{}{Anschrift} \subsection{Optionen für die Formatierung} \label{sec:scrlttr2.formatingOptions} Optionen für die Formatierung sind solche, die Form oder Formatierung einer Ausgabe beeinflussen und nicht in einen anderen Abschnitt eingeordnet werden können. Es sind also sozusagen die \emph{sonstigen Optionen}. \begin{Declaration} \Option{draft} \end{Declaration} \BeginIndex{Option}{draft}% Diese Option schaltet zwischen einem fertigen Dokument\Index{Endfassung} und einem Dokument im Entwurfsstadium\Index{Entwurf} um. Insbesondere werden beim Einschalten der Option \Option{draft} kleine schwarze Kästchen aktiviert, die im Falle von überlangen Zeilen am Zeilenende ausgegeben werden. Diese Kästchen erleichtern dem ungeübten Auge, Absätze ausfindig zu machen, die manueller Nachbearbeitung bedürfen. Demgegenüber erscheinen bei abgeschalteter \Option{draft}-Option keine solche Kästchen. Die Option versteht die Standardwerte für einfache Schalter, die in \autoref{tab:scrlttr2.simpleSwitchValues}, \autopageref{tab:scrlttr2.simpleSwitchValues} angegeben sind. Voreingestellt ist wie üblich \PValue{false}. % \iffalse % Umbruchbedarfstext Ich empfehle jedoch dringend, beim Entwurf eines Briefes wie beim Entwurf jedes Dokuments den Draft-Modus zu wählen, die Option \Option{draft} also zu setzen. % \fi % \EndIndex{Option}{draft}% \subsection{Die \emph{Letter-Class-Option}-Dateien} \label{sec:scrlttr2.lcoFile} \BeginIndex{}{lco=\File{lco}}\BeginIndex{}{Letter-Class-Option}% Normalerweise wird man Einstellungen wie den Abstand des Adressfeldes von der oberen Papierkante nicht in jedem Brief neu wählen. Stattdessen wird man einen ganzen Satz von Parametern für bestimmte Gelegenheiten immer wieder verwenden. Ganz Ähnliches gilt für die verwendeten Briefköpfe und den Fußbereich der ersten Seite. Es ist deshalb sicher sinnvoll, diese Einstellungen in einer eigenen Datei zu speichern. Die Briefklasse \Class{scrlttr2} bietet hierfür die \File{lco}-Dateien an. Die Endung \File{lco} ist eine Abkürzung für \emph{\emph{l}etter \emph{c}lass \emph{o}ption}, also Briefklassenoption. In \File{lco}-Dateien können alle Anweisungen verwendet werden, die auch an der Stelle im Dokument verwendet werden könnten, an der die \File{lco}-Datei geladen wird. Außerdem könnten interne Anweisungen verwendet werden, die für Paketautoren freigegeben sind. Bei \Class{scrlttr2} sind dies inbesondere die Anweisungen \Macro{@newplength}\IndexCmd{@newplength}, \Macro{@setplength}\IndexCmd{@setplength} und \Macro{@addtoplength}\IndexCmd{@addtoplength} (siehe \autoref{sec:scrlttr2.pseudoLength}). \KOMAScript{} liegen bereits einige \File{lco}-Dateien bei. Die Dateien \File{DIN.lco}, \File{DINmtext.lco}, \File{SNleft.lco} und \File{SN.lco} dienen dazu \Class{scrlttr2} an verschiedene Normen\Index{Norm} anzupassen. Sie können sehr gut als Vorlage für eigene Parametersätze verwendet werden. Die Datei \File{KOMAold.lco} dient hingegen dazu, die Kompatibilität zu \Class{scrlettr}, der alten Briefklasse, zu verbessern. Da hierbei auch auf Anweisungen zurückgegriffen wird, die nicht für Paketautoren freigegeben sind, sollte man sie nicht als Vorlage für eigene \File{lco}-Dateien verwenden. Eine Liste aller vordefinierten \File{lco}-Dateien ist in \autoref{tab:lcoFiles}, \autopageref{tab:lcoFiles} zu finden. \begin{Explain} Wenn Sie einen Parametersatz für eine Briefnorm, die bisher nicht von \KOMAScript{} unterstützt wird, erstellt haben, so sind Sie ausdrücklich gebeten, diesen Parametersatz an die Supportaddresse von \KOMAScript{} zu schicken. Bitte geben Sie dabei auch die Erlaubnis zur Weiterverbreitung unter den Lizenzbedingungen von \KOMAScript{} (siehe dazu die Datei \File{LEGALDE.TXT} im \KOMAScript-Paket). Wenn Sie zwar über die notwendigen Maße aus einer bisher nicht unterstützen Briefnorm verfügen, sich jedoch nicht in der Lage sehen, selbst eine passende \File{lco}-Datei zu erstellen, so können Sie sich ebenfalls mit dem \KOMAScript-Autor, Markus Kohm, in Verbindung setzen. Beispiele für teilweise sehr komplexe \File{lco}-Dateien finden sich unter anderem unter \cite{homepage} und in \cite{DANTE:TK0203:MJK}. \end{Explain} \begin{Declaration} \Macro{LoadLetterOption}\Parameter{Name} \end{Declaration} \BeginIndex{Cmd}{LoadLetterOption}% Normalerweise werden \File{lco}-Dateien direkt über \Macro{documentclass} geladen. Dazu gibt man den Namen der \File{lco}-Datei ohne die Endung als Option\Index{Optionen} an. Das Laden der \File{lco}-Datei erfolgt dann direkt nach der Klasse. Es ist jedoch auch möglich, eine \File{lco}-Datei zu einem späteren Zeitpunkt und sogar innerhalb einer anderen \File{lco}-Datei zu laden. Dazu dient die Anweisung \Macro{LoadLetterOption}. Der \PName{Name} der \File{lco}-Datei wird dieser ebenfalls ohne Endung als Parameter übergeben. \begin{Example} Sie erstellen ein Dokument, in dem mehrere Briefe enthalten sind. Die Mehrzahl der Briefe soll nach DIN erstellt werden. Also beginnen Sie: \begin{lstlisting} \documentclass{scrlttr2} \end{lstlisting} Allerdings soll bei einem Brief stattdessen die Variante \File{DINmtext} verwendet werden. Bei dieser steht das Adressfeld weiter oben, damit mehr Text auf die erste Seite passt. Dafür ist die Faltung so angepasst, dass das Adressfeld bei DIN~C6/5-Umschlägen trotzdem in das Adressfenster passt. Sie erreichen das so: \begin{lstlisting} \begin{letter}{Markus Kohm\\ Fichtenstraße 63\\68535 Edingen-Neckarhausen} \LoadLetterOption{DINmtext} \opening{Hallo,} \end{lstlisting} Da der Aufbau der ersten Seite erst mit \Macro{opening}\IndexCmd{opening} wirklich beginnt, genügt es, wenn die \File{lco}-Datei vor \Macro{opening} geladen wird. Dies muss also inbesondere nicht vor \Macro{begin}\PParameter{letter} erfolgen. Die Änderungen durch das Laden der \File{lco}-Datei sind dann auch lokal zu dem entsprechenden Brief. \end{Example} \begin{Explain} Wird eine \File{lco}-Datei über \Macro{documentclass} geladen, so darf sie übrigens trotzdem den Namen einer Option haben. Voraussetzung ist jedoch, dass es sich nicht um eine Option handelt, die einen Wert erwartet. Es wäre jedoch möglich, einer \File{lco}-Datei etwa den Namen \File{fromalign=left.lco} zu geben. Diese würde dann immer geladen, wenn als Option bei \Macro{documentclass} die Option \Option{fromalign} auf den Wert \PValue{left} gesetzt würde. Zugegeben, dies ist eher von akademischem Interesse. Natürlich können Sie diesen Automatismus nur nutzen, wenn das von Ihnen verwendete Betriebs- und Dateisystem derartige Dateinamen erlaubt. Ist das nicht der Fall, müssen Sie einen anderen Datei\-namen wählen und gegebenenfalls die entsprechende Option zusätzlich angeben. \end{Explain} \begin{Example} Sie wollen nicht immer wieder ihre Absenderangaben neu eingeben. Deshalb erstellen Sie eine \File{lco}-Datei, die alle Angaben enthält, beispielsweise: \begin{lstlisting} \ProvidesFile{mkohm.lco} [2002/02/25 letter class option] \setkomavar{fromname}{Markus Kohm} \setkomavar{fromaddress}{Fichtenstra\ss e 63\\ 68535 Edingen-Neckarhausen} \end{lstlisting} Die dabei verwendete Anweisung \Macro{setkomavar} und das Prinzip der Variablen wird in \autoref{sec:scrlttr2.variables}, \autopageref{desc:scrlttr2.macro.setkomavar} genauer erläutert werden. Für das Beispiel hier ist die genaue Funktion der Anweisung unerheblich. Von Bedeutung ist lediglich, was man mit \File{lco}-Dateien machen kann, weniger, wie dies konkret zu erreichen ist. Beachten Sie jedoch, dass hier für "`ß"' die \TeX-Schreibweise \Macro{ss} verwendet wurde. Dies hat seinen Grund darin, dass unmittelbar nach \Macro{documentclass} weder ein Paket für die Eingabecodierung, beispielsweise für Unix mit \Macro{usepackage}\PValue{[latin1]}\PParameter{inputenc} oder für Windows mit \Macro{usepackage}\PValue{[ansinew]}\PParameter{inputenc}, noch ein Paket zur Sprachumschaltung, beispielsweise für die neue deutsche Rechtschreibung mit \Macro{usepackage}\PParameter{ngerman}, geladen ist. Wenn Sie allerdings immer mit derselben Eingabecodierung arbeiten, können Sie auch diese in Ihre Datei mit aufnehmen. Das Ganze sähe dann beispielsweise so aus: \begin{lstlisting} \ProvidesFile{mkohm.lco} [2002/02/25 letter class option] \RequirePackage[latin1]{inputenc} \setkomavar{fromname}{Markus Kohm} \setkomavar{fromaddress}{Fichtenstraße 63\\ 68535 Edingen-Neckarhausen} \end{lstlisting} Dieses Vorgehen hat aber den entscheidenden Nachteil, dass die \File{lco}-Datei \File{mkohm} dann nicht mehr innerhalb des Dokuments geladen werden kann. Wenn Sie also auch Briefe verschiedener Absender in einer Datei haben wollen, sollten Sie davon absehen, in den entsprechenden \File{lco}-Dateien Pakete zu laden. Nehmen wir weiter an, dass ich Briefe grundsätzlich mit der Vorgabe \File{KOMAold} schreibe. Dann erweitere ich die Datei \File{mkohm.lco} noch um die Zeile: \begin{lstlisting} \LoadLetterOption{KOMAold} \end{lstlisting} Wie dem auch sei, stellen Sie zukünftig meine Absenderdaten mit \begin{lstlisting} \documentclass[mkohm]{scrlttr2} \end{lstlisting} ein. \end{Example} In \autoref{tab:lcoFiles}, \autopageref{tab:lcoFiles} finden Sie übrigens eine Liste aller vordefinierten \File{lco}-Dateien. Falls Sie einen Drucker verwenden, der einen sehr großen unbedruckbaren Rand links oder rechts besitzt, werden Sie mit der Option \Option{SN}\IndexOption{SN} möglicherweise Probleme bekommen. Da die Schweizer Norm SN~101\,130 vorsieht, dass das Adressfeld 8\,mm vom rechten Papierrand gesetzt wird, werden bei Schweizer Briefen auch die Kopfzeile und die Absenderergänzung mit einem entsprechend geringen Abstand zum Papierrand gesetzt. Dies betrifft ebenfalls die Geschäftszeile bei der Einstellung \Option{refline}\PValue{=wide} (siehe \autoref{sec:scrlttr2.headoptions}, \autopageref{desc:scrlttr2.option.refline}). Sollten Sie damit ein Problem haben, erstellen Sie sich eine eigene \File{lco}-Datei, die zunächst \Option{SN} lädt und in der \PLength{toaddrhpos} (siehe \autoref{sec:scrlttr2.addressee}, \autopageref{desc:scrlttr2.plength.toaddrvpos}) dann auf einen kleineren Wert gesetzt wird. Verringern Sie dann außerdem \PLength{toaddrwidth} entsprechend. % \EndIndex{Cmd}{LoadLetterOption}% \begin{table} \centering \caption{Vordefinierte \File{lco}-Dateien} \begin{tabular}{lp{.7\textwidth}} \toprule \File{lco}-Name & Bedeutung und Besonderheiten \\ \midrule \Option{DIN}\IndexOption[indexmain]{DIN}% & Parametersatz für Briefe im Format A4 nach DIN~676; geeignet für Fensterbriefumschläge in den Formaten C4, C5, C6 und C6/5 (C6 lang)\\[.5\normalbaselineskip] \Option{DINmtext}\IndexOption[indexmain]{DINmtext}% & Parametersatz für Briefe im Format A4 nach DIN~676, wobei die Alternative für mehr Text auf der ersten Briefseite verwendet wird; nur geeignet für Fensterbriefumschläge in den Formaten C6 und C6/5 (C6 lang)\\[.5\normalbaselineskip] \Option{KOMAold}\IndexOption[indexmain]{KOMAold}% & Parametersatz für Briefe im Format A4 mit Annäherung an das Aussehen von Briefen der obsoleten Briefklasse \Class{scrlettr}; geeignet für Fensterbriefumschläge in den Formaten C4, C5, C6 und C6/5 (C6 lang); es werden einige zusätzliche Anweisungen zur Verbesserung der Kompatibilität mit der obsoleten Briefklasse \Class{scrlettr}\IndexClass{scrlettr} definiert; \Class{scrlttr2} verhält sich mit dieser \File{lco}-Datei möglicherweise nicht genau wie bei Verwendung der übrigen \File{lco}-Dateien\\[.5\normalbaselineskip] \Option{SN}\IndexOption[indexmain]{SN}% & Parametersatz für Schweizer Briefe nach SN~010\,130 mit Anschrift rechts; geeignet für Schweizer Fensterbriefumschläge in den Formaten C4, C5, C6 und C6/5 (C6 lang)\\[.5\normalbaselineskip] \Option{SNleft}\IndexOption[indexmain]{SNleft}% & Parametersatz für Schweizer Briefe mit Anschrift links; geeignet für Schweizer Fensterbriefumschläge mit dem Fenster links in den Formaten C4, C5, C6 und C6/5 (C6 lang)\\ \bottomrule \end{tabular} \label{tab:lcoFiles} \end{table} \begin{Explain} \begin{Declaration} \Macro{LetterOptionNeedsPapersize}% \Parameter{Optionsname}\Parameter{Papiergröße} \end{Declaration} \BeginIndex{Cmd}{LetterOptionNeedsPapersize}% Wie bereits in \autoref{sec:scrlttr2.typeareaOptions} erwähnt wurde, existieren derzeit nur Parametersätze und \File{lco}-Dateien für A4-Papier. Damit man bei Verwendung einer anderen \PName{Papiergröße}\Index{Papierformat} zumindest gewarnt wird, ist in jeder mit \KOMAScript{} ausgelieferten \File{lco}-Datei eine Anweisung \Macro{LetterOptionNeedsPapersize} zu finden. Als erstes Argument wird dabei der Name der \File{lco}-Datei ohne die Endung "`\File{.lco}"' übergeben. Als zweites Argument wird die Papiergröße übergeben, für die diese \File{lco}-Datei gedacht ist. Werden nacheinander mehrere \File{lco}-Dateien geladen, so kann jede dieser \File{lco}-Dateien eine Anweisung \Macro{LetterOptionNeedsPapersize} enthalten. Innerhalb von \Macro{opening}\IndexCmd{opening} wird jedoch nur auf die jeweils letzte angegebene \PName{Papiergröße} geprüft. Wie das nachfolgende Beispiel zeigt, ist es daher für den versierten Anwender leicht möglich, \File{lco}-Dateien mit Parametersätzen für andere Papierformate zu schreiben. Wer allerdings nicht vor hat, selbst solche \File{lco}-Dateien zu schreiben, der kann die Erklärung zu dieser Anweisung gleich wieder vergessen und auch das Beispiel überspringen. \begin{Example} Nehmen wir einmal an, dass Sie A5-Papier in normaler Ausrichtung, also hochkant oder portrait, für Ihre Briefe verwenden. Nehmen wir weiter an, dass Sie diese in normale Fensterbriefumschläge im Format C6 stecken. Damit wäre prinzipiell die Position des Adressfeldes die gleiche wie bei einem normalen Brief in A4 nach DIN. Der Unterschied besteht im Wesentlichen darin, dass das A5-Papier nur einmal gefaltet werden muss. Sie wollen deshalb verhindern, dass die obere und die untere Faltmarke gesetzt wird. Dies erreichen Sie am einfachsten, indem sie die Marken außerhalb des Papiers platzieren. \begin{lstlisting} \ProvidesFile{paper=a5.lco} [2002/05/02 letter class option] \LetterOptionNeedsPapersize{paper=a5}{a5} \@setplength{tfoldmarkvpos}{\paperheight} \@setplength{bfoldmarkvpos}{\paperheight} \end{lstlisting} Außerdem muss natürlich die Position des Seitenfußes, also die Pseudolänge \PLength{firstfootvpos}, angepasst werden. Ich überlasse es dem Leser, dafür einen geeigneten Wert zu ermitteln. Mit einer solchen \File{lco}-Datei ist es lediglich wichtig, dass andere \File{lco}-Dateioptionen wie \File{SN} vor dem Setzen der Papiergröße, also vor dem Laden von "`\File{paper=a5.lco}"', angegeben werden. Das erscheint Ihnen kompliziert? Nur bis Sie es zum ersten Mal gemacht haben. Außerdem: Wie oft schreiben Sie Briefe in einem anderen Format als A4? \end{Example} % \EndIndex{Cmd}{LetterOptionNeedsPapersize} \end{Explain} Die \File{lco}-Datei \File{DIN} wird übrigens immer als erste \File{lco}-Datei geladen. Dies wird getan, damit alle Pseudo-Längen mehr oder weniger sinnvoll vordefiniert sind. Beachten Sie bitte noch, dass es nicht möglich ist, innerhalb einer \File{lco}-Datei mittels \Macro{PassOptionsToPackage} Optionen an Pakete zu übergeben, die von der Klasse bereits geladen sind. Normalerweise betrifft dies nur die Pakete \Package{typearea}, \Package{scrlfile} und \Package{keyval}. % \EndIndex{}{lco=\File{lco}}\EndIndex{}{Letter-Class-Option}% \section{Generelle Dokumenteigenschaften} \label{sec:scrlttr2.general} Einige Dokumenteigenschaften sind keinem speziellen Abschnitt des Dokuments wie dem Briefkopf oder dem Brief"|text zugeordnet. Ein Teil dieser Eigenschaften wurde bereits im \autoref{sec:scrlttr2.options} erläutert oder erwähnt. \subsection{Änderung der verwendeten Schriftart} \label{sec:scrlttr2.font} \BeginIndex{}{Schriftart}\BeginIndex{}{Schriftgroesse=Schriftgröße}% \begin{Explain} Bezüglich der Anweisungen zum Setzen, Erweitern und Abfragen der Schrift eines bestimmten Elements verweise ich hier auf die Anweisungen aus \autoref{sec:maincls.font}. Diese Anweisungen funktionieren in \Class{scrlttr2} ganz genauso. Die Elemente, die auf diese Weise beeinflusst werden können, entnehmen Sie bitte \autoref{tab:scrlttr2.elementsWithoutText}. % \begin{table} \centering% \caption{Elemente, deren Schrift bei der Klasse \Class{scrlttr2} mit \Macro{setkomafont} und \Macro{addtokomafont} verändert werden kann} \begin{desctabular} \feentry{backaddress}{Rücksendeadresse für einen Fensterbriefumschlag}% \feentry{descriptionlabel}{Labels, also das optionale Argument von \Macro{item}, in einer \Environment{description}-Umgebung}% \feentry{fromaddress}{Absenderadresse im Briefkopf}% \feentry{fromname}{Name des Absenders im Briefkopf abweichend von \PValue{fromaddress}}% \feentry{pagefoot}{Eigentlich der Fuß einer Seite, jedoch auch der Kopf der Seite}% \feentry{pagehead}{Eigentlich der Kopf einer Seite, jedoch auch der Fuß der Seite}% \feentry{pagenumber}{Seitenangabe im Kopf oder Fuß, die mit \Macro{pagemark} gesetzt wird}% \feentry{subject}{Betreff in der Brieferöffnung}% \feentry{title}{Titel in der Brieferöffnung}% \end{desctabular} \label{tab:scrlttr2.elementsWithoutText} \end{table} \end{Explain} % \EndIndex{}{Schriftart}\EndIndex{}{Schriftgroesse=Schriftgröße}% \subsection{Seitenstil} \label{sec:scrlttr2.pageStyle} Eine der allgemeinen Eigenschaften eines Dokuments ist der Seitenstil. Siehe hierzu auch \autoref{sec:maincls.pageStyle} und \autoref{cha:scrpage}. \begin{Declaration} \Macro{pagestyle}\PParameter{empty}\\ \XMacro{pagestyle}\PParameter{plain}\\ \XMacro{pagestyle}\PParameter{headings}\\ \XMacro{pagestyle}\PParameter{myheadings}\\ \Macro{thispagestyle}\Parameter{lokaler Seitenstil} \end{Declaration} \BeginIndex{Cmd}{pagestyle}% \BeginIndex{Cmd}{thispagestyle}% \BeginIndex{Pagestyle}{empty}% \BeginIndex{Pagestyle}{plain}% \BeginIndex{Pagestyle}{headings}% \BeginIndex{Pagestyle}{myheadings}% \BeginIndex{}{Seitenstil}% Bei Briefen mit \Class{scrlttr2} wird zwischen vier verschiedenen Seitenstilen unterschieden. \begin{description} \item[empty] ist der Seitenstil, bei dem Kopf- und Fußzeile von Folgeseiten vollständig leer bleiben. Dieser Seitenstil wird auch automatisch für die erste Briefseite verwendet, da auf dieser Seite Kopf und Fuß über \Macro{opening}\IndexCmd{opening} (siehe \autoref{sec:scrlttr2.firstHead}, \autoref{sec:scrlttr2.firstFoot}, sowie \autoref{sec:scrlttr2.opening}, \autopageref{desc:scrlttr2.macro.opening}) mit anderen Mitteln gesetzt werden. \item[plain] ist der Seitenstil, bei dem auf Folgeseiten keinerlei Kolumnentitel verwendet, sondern nur eine Seitenangabe ausgegeben wird. Wo diese gesetzt wird, hängt von der Option \Option{pagenumber} ab (siehe \autoref{sec:scrlttr2.layout}, \autopageref{desc:scrlttr2.option.pagenumber}). \item[headings] ist der Seitenstil für automatische Kolumnentitel auf Folgeseiten. Dabei werden als automatisch gesetzte Marken der Absendername aus der Variablen \PValue{fromname} und der Betreff aus der Variablen \PValue{subject} verwendet (siehe \autoref{sec:scrlttr2.firstHead}, \autopageref{desc:scrlttr2.variable.fromname} und \autoref{sec:scrlttr2.titleSubject}, \autopageref{desc:scrlttr2.variable.subject}). Wo genau diese Marken und die Seitenangabe ausgegeben werden, hängt von der Option \Option{pagenumber} ab (siehe \autoref{sec:scrlttr2.layout}, \autopageref{desc:scrlttr2.option.pagenumber}). Der Autor kann die Marken aber auch noch nach \Macro{opening} manuell beeinflussen. Hierzu stehen wie üblich die Anweisungen \Macro{markboth} und \Macro{markright}, bei Verwendung von \Package{scrpage2} auch \Macro{markleft} (siehe \autoref{sec:scrpage.basics.mark}, \autopageref{desc:scrpage.macro.automark}), zur Verfügung. \item[myheadings] ist der Seitenstil für manuelle Kolumnentitel auf Folgeseiten. Dies entspricht weitgehend \PValue{headings}, allerdings müssen hier die Marken vom Anwender gesetzt werden. Er verwendet dazu die Anweisungen \Macro{markboth}\IndexCmd{markboth} und \Macro{markright}\IndexCmd{markright}. Bei Verwendung von \Package{scrpage2} kann außerdem \Macro{markleft}\IndexCmd{markleft} verwendet werden. \end{description} Folgeseiten im Sprachgebrauch dieser Anleitung sind alle Briefseiten abgesehen von der ersten. Die Form der Seitenstile wird außerdem durch die Optionen \Option{headsepline}\IndexOption{headsepline} und \Option{footsepline}\IndexOption{footsepline} beeinflusst (siehe \autoref{sec:scrlttr2.layout}, \autopageref{desc:scrlttr2.option.headsepline}). Der Seitenstil ab der aktuellen Seite wird mit \Macro{pagestyle} umgeschaltet. Demgegenüber verändert \Macro{thispagestyle} nur den Seitenstil der aktuellen Seite. Die Briefklasse verwendet \Macro{thispagestyle}\PParameter{empty} selbst innerhalb von \Macro{opening}\IndexCmd{opening} für die erste Briefseite.% % \EndIndex{Cmd}{pagestyle}% \EndIndex{Cmd}{thispagestyle}% \EndIndex{Pagestyle}{empty}% \EndIndex{Pagestyle}{plain}% \EndIndex{Pagestyle}{headings}% \EndIndex{Pagestyle}{myheadings}% \EndIndex{}{Seitenstil}% \BeginIndex[indexother]{}{Schriftart}% Um die Schriftart von Kopf und Fuß der Seite oder der Seitenangabe zu ändern, verwenden Sie die Benutzerschnittstelle, die in \autoref{sec:maincls.font} beschrieben ist. Für den Kopf und den Fuß ist dabei das gleiche Element zuständig, das Sie wahlweise mit \PValue{pagehead} oder \PValue{pagefoot} benennen können. Das Element für die Seitenzahl innerhalb des Kopfes oder Fußes heißt \PValue{pagenumber}. Die Voreinstellungen sind in \autoref{tab:maincls.defaultFontsHeadFoot}, \autopageref{tab:maincls.defaultFontsHeadFoot} zu finden. Beachten Sie dazu auch das Beispiel aus \autoref{sec:maincls.pageStyle}, \autopageref{sec:maincls.pageStyle.example}. % \EndIndex[indexother]{}{Schriftart}% \begin{Declaration} \Macro{clearpage}\\ \Macro{cleardoublepage}\\ \Macro{cleardoublestandardpage}\\ \Macro{cleardoubleplainpage}\\ \Macro{cleardoubleemptypage} \end{Declaration}% \BeginIndex{Cmd}{clearpage}% \BeginIndex{Cmd}{cleardoublepage}% \BeginIndex{Cmd}{cleardoublestandardpage}% \BeginIndex{Cmd}{cleardoubleplainpage}% \BeginIndex{Cmd}{cleardoubleemptypage}% Siehe hierzu die Erklärung in \autoref{sec:maincls.pageStyle}\Index{Seitenstil}, \autopageref{desc:maincls.macro.clearpage}, wobei die Arbeitsweise von \Macro{cleardoublepage} bei \Class{scrlttr2} von der Option \Option{cleardoublepage} abhängt, die in \autoref{sec:scrlttr2.layout}, \autopageref{desc:scrlttr2.option.cleardoublepage} näher beschrieben ist. % \EndIndex{Cmd}{clearpage}% \EndIndex{Cmd}{cleardoublepage}% \EndIndex{Cmd}{cleardoublestandardpage}% \EndIndex{Cmd}{cleardoubleplainpage}% \EndIndex{Cmd}{cleardoubleemptypage}% \subsection{Variablen} \label{sec:scrlttr2.variables} \BeginIndex{}{Variablen}% Neben Optionen, Anweisungen (oder Befehlen), Umgebungen, Zählern und Längen wurden in \KOMAScript{} bereits zusätzlich Elemente eingeführt. Eine typische Eigenschaft eines Elements ist eine Schriftart und die Möglichkeit, diese zu ändern (siehe \autoref{sec:maincls.font}). An dieser Stelle werden nun zusätzlich Variablen eingeführt. Variablen haben einen Namen, über den sie angesprochen werden und einen Inhalt. Der Inhalt einer Variablen kann zeitlich bzw. räumlich getrennt von ihrer Verwendung gesetzt werden, so wie der Inhalt einer Anweisung getrennt von ihrer Ausführung definiert werden kann. Ein Hauptunterschied einer Variablen zu einer Anweisung besteht darin, dass eine Anweisung normalerweise eine Aktion auslöst, während der Inhalt einer Variablen normalerweise aus einem Text besteht, der dann von einer Anweisung ausgegeben wird. Außerdem kann eine Variable zusätzlich eine Bezeichnung besitzen, die ebenfalls gesetzt und ausgegeben werden kann. Dieser Abschnitt beschränkt sich bewusst auf die Einführung des Begriffs der Variablen. Die zur Verdeutlichung verwendeten Beispiele sind ohne tiefere Bedeutung. Konkretere Anwendungsbeispiele gibt es bei der Erläuterung der in der Briefklasse bereits definierten und von ihr verwendeten Variablen in den nachfolgenden Abschnitten. \autoref{tab:scrlttr2.variables} gibt eine Übersicht über alle in \Class{scrlttr2} definierten Variablen. \begin{desctable} \caption{Von der Klasse \Class{scrlttr2} unterstützte Variablen\label{tab:scrlttr2.variables}}\\ \Endfirsthead \caption[]{Von der Klasse \Class{scrlttr2} unterstützte Variablen (\emph{Fortsetzung})}\\ \Endhead% \standardfoot% \ventry{backaddress}{Rücksendeadresse für Fensterbriefumschläge (\autoref{sec:scrlttr2.addressee}, \autopageref{desc:scrlttr2.variable.backaddress})}% \ventry{backaddressseparator}{Trennzeichen innerhalb der Rücksendeadresse (\autoref{sec:scrlttr2.addressee}, \autopageref{desc:scrlttr2.variable.backaddressseparator})}% \ventry{ccseparator}{Trennzeichen zwischen Verteilertitel und Verteiler (\autoref{sec:scrlttr2.afterClosing}, \autopageref{desc:scrlttr2.variable.ccseparator})}% \ventry{customer}{Geschäftszeilenfeld "`Kundennummer"' (\autoref{sec:scrlttr2.refLine}, \autopageref{desc:scrlttr2.variable.customer})}% \ventry{date}{Datum (\autoref{sec:scrlttr2.refLine}, \autopageref{desc:scrlttr2.variable.date})}% \ventry{emailseparator}{Trennzeichen zwischen E-Mail-Bezeichner und E-Mail-Adresse (\autoref{sec:scrlttr2.firstHead}, \autopageref{desc:scrlttr2.variable.emailseparator})}% \ventry{enclseparator}{Trennzeichen zwischen Anlagetitel und Anlagen (\autoref{sec:scrlttr2.afterClosing}, \autopageref{desc:scrlttr2.variable.enclseparator})}% \ventry{faxseparator}{Trennzeichen zwischen Faxbezeichner und Faxnummer (\autoref{sec:scrlttr2.firstHead}, \autopageref{desc:scrlttr2.variable.faxseparator})}% \ventry{fromaddress}{Absenderadresse ohne Absendername (\autoref{sec:scrlttr2.firstHead}, \autopageref{desc:scrlttr2.variable.fromaddress})}% \ventry{frombank}{Bankverbindung des Absenders (\autoref{sec:scrlttr2.other}, \autopageref{desc:scrlttr2.variable.frombank})}% \ventry{fromemail}{E-Mail-Adresse des Absenders (\autoref{sec:scrlttr2.firstHead}, \autopageref{desc:scrlttr2.variable.fromemail})}% \ventry{fromfax}{Faxnummer des Absenders (\autoref{sec:scrlttr2.firstHead}, \autopageref{desc:scrlttr2.variable.fromfax})}% \ventry{fromlogo}{Anweisungen zum Setzen des Absenderlogos (\autoref{sec:scrlttr2.firstHead}, \autopageref{desc:scrlttr2.variable.fromlogo})}% \ventry{fromname}{vollständiger Absendername (\autoref{sec:scrlttr2.firstHead}, \autopageref{desc:scrlttr2.variable.fromname})}% \ventry{fromphone}{Telefonnummer des Absenders (\autoref{sec:scrlttr2.firstHead}, \autopageref{desc:scrlttr2.variable.fromphone})}% \ventry{fromurl}{eine URL des Absenders (\autoref{sec:scrlttr2.firstHead}, \autopageref{desc:scrlttr2.variable.fromurl})}% \ventry{invoice}{Geschäftszeilenfeld "`Rechnungsnummer"' (\autoref{sec:scrlttr2.refLine}, \autopageref{desc:scrlttr2.variable.invoice})}% \ventry{location}{erweiterte Absenderangabe (\autoref{sec:scrlttr2.locationField}, \autopageref{desc:scrlttr2.variable.location})}% \ventry{myref}{Geschäftszeilenfeld "`Mein Zeichen"' (\autoref{sec:scrlttr2.refLine}, \autopageref{desc:scrlttr2.variable.myref})}% \ventry{place}{Ort (\autoref{sec:scrlttr2.refLine}, \autopageref{desc:scrlttr2.variable.place})}% \ventry{placeseparator}{Trennzeichen zwischen Ort und Datum (\autoref{sec:scrlttr2.refLine}, \autopageref{desc:scrlttr2.variable.placeseparator})}% \ventry{phoneseparator}{Trennzeichen zwischen Telefonbezeichner und Telefonnummer (\autoref{sec:scrlttr2.firstHead}, \autopageref{desc:scrlttr2.variable.phoneseparator})}% \ventry{signature}{Signatur unter Unterschrift und Grußformel (\autoref{sec:scrlttr2.closing}, \autopageref{desc:scrlttr2.variable.signature})}% \ventry{specialmail}{Versandart (\autoref{sec:scrlttr2.addressee}, \autopageref{desc:scrlttr2.variable.specialmail})}% \ventry{subject}{Betreff (\autoref{sec:scrlttr2.titleSubject}, \autopageref{desc:scrlttr2.variable.subject})}% \ventry{subjectseparator}{Trennzeichen zwischen Betreff"|titel und Betreff (\autoref{sec:scrlttr2.titleSubject}, \autopageref{desc:scrlttr2.variable.subjectseparator})}% \ventry{title}{Brief"|titel (\autoref{sec:scrlttr2.titleSubject}, \autopageref{desc:scrlttr2.variable.title})}% \ventry{toname}{vollständiger Empfängername (\autoref{sec:scrlttr2.addressee}, \autopageref{desc:scrlttr2.variable.toname})}% \ventry{toaddress}{Empfängeradresse ohne Empfängername (\autoref{sec:scrlttr2.addressee}, \autopageref{desc:scrlttr2.variable.toaddress})}% \ventry{yourmail}{Geschäftszeilenfeld "`Ihr Schreiben"' (\autoref{sec:scrlttr2.refLine}, \autopageref{desc:scrlttr2.variable.yourmail})}% \ventry{yourref}{Geschäftszeilenfeld "`Ihr Zeichen"' (\autoref{sec:scrlttr2.refLine}, \autopageref{desc:scrlttr2.variable.yourref})}% \end{desctable} \begin{Declaration} \Macro{newkomavar}\OParameter{Bezeichnung}\Parameter{Name}\\ \Macro{newkomavar*}\OParameter{Bezeichnung}\Parameter{Name}\\ \Macro{removereffields}\\ \Macro{defaultreffields}\\ \Macro{addtoreffields}\Parameter{Name} \end{Declaration} \BeginIndex{Cmd}{newkomavar}\BeginIndex{Cmd}{newkomavar*}% \BeginIndex{Cmd}{addtoreffields}\BeginIndex{Cmd}{removereffields}% \BeginIndex{Cmd}{defaultreffields}% Mit \Macro{newkomavar} wird eine neue Variable definiert. Diese Variable wird über \PName{Name} angesprochen. Optional kann eine \PName{Bezeichnung} für die Variable \PName{Name} angegeben werden. Mit der Anweisung \Macro{addtoreffields} kann die Variable \PName{Name} der Geschäftszeile (siehe \autoref{sec:scrlttr2.refLine}) hinzugefügt werden. Dabei wird die \PName{Bezeichnung} und der Inhalt der Variablen an das Ende der Geschäftszeile angehängt, falls ihr Inhalt nicht leer ist. Die Sternvariante \Macro{newkomavar*} entspricht der Variante ohne Stern mit anschließendem Aufruf der Anweisung \Macro{addtoreffields}. Bei der Sternvariante wird die Variable also automatisch zur Geschäftszeile hinzugefügt. \begin{Example} Angenommen, Sie benötigen in der Geschäftszeile ein zusätzliches Feld für eine Durchwahl. Sie können das Feld dann wahlweise mit \begin{lstlisting} \newkomavar[Durchwahl]{myphone} \addtoreffields{myphone} \end{lstlisting} oder kürzer mit \begin{lstlisting} \newkomavar*[Durchwahl]{myphone} \end{lstlisting} definieren. \end{Example} Im Fall, dass eine Variable für die Geschäftszeile definiert wird, sollten Sie immer eine Bezeichnung dafür angeben.% Mit der Anweisung \Macro{removereffields} können alle Variablen aus der Geschäftszeile entfernt werden. Dies betrifft auch die in der Klasse vordefinierten Variablen. Die Geschäftszeile ist dann bis auf das Datum, das immer hinten angehängt wird, leer. Sie können dies beispielsweise nutzen, wenn Sie die Reihenfolge der Variablen in der Geschäftszeile ändern wollen. Zur Wiederherstellung der Reihenfolge der vordefinierten Variablen in der Geschäftszeile dient \Macro{defaultreffields}. Dabei werden auch alle selbstdefinierten Variablen aus der Geschäftszeile entfernt.% % \EndIndex{Cmd}{defaultreffields}% \EndIndex{Cmd}{newkomavar}\EndIndex{Cmd}{newkomavar*}% \EndIndex{Cmd}{addtoreffields}\EndIndex{Cmd}{removereffields}% \begin{Declaration} \Macro{setkomavar}% \Parameter{Name}\OParameter{Bezeichnung}\Parameter{Inhalt}\\ \Macro{setkomavar*}\Parameter{Name}\Parameter{Bezeichnung} \end{Declaration} \BeginIndex{Cmd}{setkomavar}\BeginIndex{Cmd}{setkomavar*}% Mit der Anweisung \Macro{setkomavar} wird der \PName{Inhalt} der Variablen \PName{Name} gesetzt. Dabei kann per optionalem Argument gleichzeitig auch die \PName{Bezeichnung} der Variablen geändert werden. Demgegenüber kann mit der Sternvariante \Macro{setkomavar*} auch nur die \PName{Bezeichnung} der Variablen \PName{Name} gesetzt werden. \begin{Example} Angenommen, Sie haben wie oben eine Variable für die Durchwahl definiert und wollen nun die Durchwahl setzen. Dies geschieht einfach mit: \begin{lstlisting} \setkomavar{myphone}{-11} \end{lstlisting} Sie wollen außerdem, dass statt "`Durchwahl"' der Begriff "`Apparat"' ausgegeben wird. Also setzen Sie zusätzlich die Bezeichnung mit: \begin{lstlisting} \setkomavar*{myphone}{Apparat} \end{lstlisting} oder fassen beide Angaben zu einer Anweisung zusammen: \begin{lstlisting} \setkomavar{myphone}[Apparat]{-11} \end{lstlisting} Damit schlagen Sie sozusagen zwei Fliegen mit einer Klappe. \end{Example} Übrigens kann mit einem leeren obligatorischen Argument \PName{Inhalt} der Inhalt der Variable gelöscht werden. Selbstverständlich kann in gleicher Weise mit einem leeren Argument \PName{Bezeichnung} die Bezeichnung der Variablen gelöscht werden. \begin{Example} Angenommen, Sie haben wie oben eine Variable für die Durchwahl definiert, wollen nun aber nicht, dass eine Bezeichnung ausgegeben wird. Dann können Sie diese entweder für sich mit: \begin{lstlisting} \setkomavar*{myphone}{} \end{lstlisting} löschen. Sie können aber auch wieder zwei Fliegen mit einer Klappe schlagen und verwenden: \begin{lstlisting} \setkomavar{myphone}[]{-11} \end{lstlisting} Dadurch wird gleichzeitig der Inhalt der Variablen gesetzt und ihre Bezeichnung gel"oscht. \end{Example} % \EndIndex{Cmd}{setkomavar}\EndIndex{Cmd}{setkomavar*}% \begin{Declaration} \Macro{usekomavar}\OParameter{Anweisung}\Parameter{Name}\\ \Macro{usekomavar*}\OParameter{Anweisung}\Parameter{Name} \end{Declaration} \BeginIndex{Cmd}{usekomavar}\BeginIndex{Cmd}{usekomavar*}% In\ChangedAt{v2.9i}{\Class{scrlttr2}} manchen Fällen wird es notwendig sein, selbst auf den Inhalt oder die Bezeichnung einer Variablen zuzugreifen, dies also nicht allein der Klasse zu überlassen. Dies gilt insbesondere dann, wenn Sie eigene Variablen definiert haben, die jedoch nicht zur Geschäftszeile hinzugefügt werden. Mit der Anweisung \Macro{usekomavar} können Sie auf den Inhalt der Variablen \PName{Name} zugreifen, während Sie mit der Sternvariante \Macro{usekomavar*} ihre Bezeichnung erhalten. \begin{Explain} Die Anweisungen \Macro{usekomavar} und \Macro{usekomavar*} sind übrigens wie alle Anweisungen, von denen es eine Sternvariante gibt oder die ein optionales Argument besitzen, nicht voll expandierbar. Bei Verwendung innerhalb von \Macro{markboth}\IndexCmd{markboth}, \Macro{markright}\IndexCmd{markright} oder ähnlichen Anweisungen muss dennoch kein \Macro{protect}\IndexCmd{protect} vorangestellt werden. Selbstverständlich gilt dies bei Verwendung von \Package{scrpage2} auch für \Macro{markleft}\IndexCmd{markleft}. Allerdings können die Anweisungen nicht innerhalb von \Macro{MakeUppercase} und ähnlichen Anweisungen verwendet werden, die direkten Einfluss auf ihr Argument haben. Diese Anweisungen können jedoch als optionales Argument angegeben werden. So erhält man beispielsweise den Inhalt einer Variable in Großbuchstaben mit \Macro{usekomavar}\PValue{[\Macro{MakeUppercase}]}\Parameter{Name}. \end{Explain} % \EndIndex{Cmd}{usekomavar}\EndIndex{Cmd}{usekomavar*}% \begin{Declaration} \Macro{ifkomavarempty}\Parameter{Name}\Parameter{Wahr}\Parameter{Falsch}\\ \Macro{ifkomavarempty*}\Parameter{Name}\Parameter{Wahr}\Parameter{Falsch} \end{Declaration} \BeginIndex{Cmd}{ifkomavarempty}% Mit\ChangedAt{v2.9i}{\Class{scrlttr2}} Hilfe diesen Anweisung kann man feststellen, ob der Inhalt oder die Bezeichnung einer Variablen leer ist oder nicht. Das \PName{Wahr}-Argument wird nur dann ausgeführt, wenn der expandierte Inhalt oder die expandierte Bezeichnung der Variablen \PName{Name} leer ist. Anderenfalls wird das \PName{Falsch}-Argument ausgeführt. Die Sternvariante der Anweisung bezieht sich dabei auf die Bezeichnung der Variablen, während die normale Variante den Inhalt behandelt. \begin{Explain} In diesem Zusammenhang ist wichtig, dass der Inhalt der Variablen soweit expandiert wird, wie dies mit \Macro{edef} möglich ist. Bleiben dabei Leerzeichen oder unexpandierbare Makros wie \Macro{relax} übrig, so gilt der Inhalt auch dann als nicht leer, wenn die Verwendung der Variablen zu keiner Ausgabe führen würde. Auch diese Anweisung kann nicht innerhalb von \Macro{MakeUppercase} oder ähnlichen Anweisungen verwendet werden. Sie ist jedoch robust genug, um beispielsweise als Argument von \Macro{markboth} oder \Macro{footnote} zu funktionieren. \end{Explain} % \EndIndex{Cmd}{ifkomavarempty}% % \EndIndex{}{Variablen} \subsection{Die Pseudolängen} \label{sec:scrlttr2.pseudoLength} \BeginIndex{}{Pseudolängen} \begin{Explain} \TeX{} arbeitet mit einem festen Satz an Registern. Es gibt Register für Tokens, für Boxen, für Zähler, für Abstände (englisch: \emph{skip}) und für Größen (englisch: \emph{dimension}). Von all diesen Registern gibt es jeweils 256 Stück. Für \LaTeX{}-Längen, die mit \Macro{newlength} angefordert werden, werden Abstandsregister belegt. Sind alle diese Register verbraucht, kann man keine weiteren Längen definieren. Die Briefklasse \Class{scrlttr2} würde normalerweise allein für die erste Seite mehr als 20 solche Register verbrauchen. \LaTeX{} selbst belegt bereits 40 dieser Register. Das \Package{typearea}-Paket benötigt ebenfalls einige, so dass ein Viertel der kostbaren Register verbraucht wäre. Aus diesem Grund werden briefspezifische Längen in \Class{scrlttr2} eben nicht in Längen, sondern in Makros abgelegt, den Pseudolängen. Der Nachteil dieses Vorgehens besteht darin, dass man mit diesen Makros nicht so einfach rechnen kann wie mit echten Längen. Wer nun einwenden will, dass \LaTeX{} in der empfohlenen Installation mit \eTeX{} inzwischen das oben genannte Beschränkungsproblem nicht mehr besitzt, hat Recht. Allerdings kam diese Entscheidung für \Class{scrlttr2} ein wenig zu spät. \end{Explain} Eine Liste aller in \Class{scrlttr2} definierten Pseudolängen findet sich in \autoref{tab:scrlttr2.pseudoLength} ab \autopageref{tab:scrlttr2.pseudoLength}. Eine grafische Darstellung der Bedeutungen ist \autoref{fig:scrlttr2.pseudoLength} zu entnehmen. Die verwendeten Maße sind dabei an die Voreinstellungen von \Class{scrlttr2} angelehnt. Nähere Beschreibungen zu den einzelnen Pseudolängen finden sich in den einzelnen Abschnitten dieses Kapitels. \begin{figure} \centering \includegraphics{plenDIN} \caption{Schematische Darstellung der Pseudolängen für den Briefbogen} \label{fig:scrlttr2.pseudoLength} \end{figure} \begin{desctable} \caption{Von der Klasse \Class{scrlttr2} verwendete Pseudolängen% \label{tab:scrlttr2.pseudoLength}}\\ \Endfirsthead % \caption[]{Von der Klasse \Class{scrlttr2} verwendete Pseudolängen (\emph{Fortsetzung})}\\% \Endhead% \standardfoot% \pentry{foldmarkhpos}{% Abstand der Faltmarken von der linken Kante des Papiers (\autoref{sec:scrlttr2.other}, \autopageref{desc:scrlttr2.plength.foldmarkhpos})}% \pentry{tfoldmarkvpos}{% Abstand der oberen Faltmarke von der oberen Kande des Papiers (\autoref{sec:scrlttr2.other}, \autopageref{desc:scrlttr2.plength.tfoldmarkvpos})}% \pentry{bfoldmarkvpos}{% Abstand der unteren Faltmarke von der oberen Kante des Papiers (\autoref{sec:scrlttr2.other}, \autopageref{desc:scrlttr2.plength.bfoldmarkvpos})}% \pentry{firstheadvpos}{% Abstand des Briefkopfes von der oberen Kante des Papiers (\autoref{sec:scrlttr2.firstHead}, \autopageref{desc:scrlttr2.plength.firstheadvpos})}% \pentry{firstheadwidth}{% Breite des Briefkopfes, wobei dieser relativ zur Papierbreite zentriert wird (\autoref{sec:scrlttr2.firstHead}, \autopageref{desc:scrlttr2.plength.firstheadwidth})}% \pentry{fromrulewidth}{% Länge einer optionalen horizontalen Linie im Briefkopf (\autoref{sec:scrlttr2.firstHead}, \autopageref{desc:scrlttr2.plength.fromrulewidth})}% \pentry{toaddrvpos}{% Abstand des Anschriftfeldes von der oberen Kante des Papiers (\autoref{sec:scrlttr2.addressee}, \autopageref{desc:scrlttr2.plength.toaddrvpos})}% \pentry{toaddrhpos}{% Abstand des Anschriftfeldes von der linken Papierkante, falls der Wert positiv ist, oder negativer Abstand des Anschriftfeldes von der rechten Papierkante, falls der Wert negativ ist (\autoref{sec:scrlttr2.addressee}, \autopageref{desc:scrlttr2.plength.toaddrhpos})}% \pentry{toaddrindent}{% linker Einzug der Anschrift innerhalb des Anschriftfeldes (\autoref{sec:scrlttr2.addressee}, \autopageref{desc:scrlttr2.plength.toaddrindent})}% \pentry{toaddrwidth}{% Breite des Anschriftfeldes (\autoref{sec:scrlttr2.addressee}, \autopageref{desc:scrlttr2.plength.toaddrwidth})}% \pentry{toaddrheight}{% Höhe des Anschriftfeldes (\autoref{sec:scrlttr2.addressee}, \autopageref{desc:scrlttr2.plength.toaddrheight})}% \pentry{backaddrheight}{% Höhe der Rücksendeadresse am oberen Rand des Anschriftfeldes (\autoref{sec:scrlttr2.addressee}, \autopageref{desc:scrlttr2.plength.backaddrheight})}% \pentry{specialmailindent}{% linker Einzug der Versandart innerhalb des Anschriftfeldes (\autoref{sec:scrlttr2.addressee}, \autopageref{desc:scrlttr2.plength.specialmailindent})}% \pentry{specialmailrightindent}{% rechter Einzug der Versandart innerhalb des Anschriftfeldes (\autoref{sec:scrlttr2.addressee}, \autopageref{desc:scrlttr2.plength.specialmailrightindent})}% \pentry{locwidth}{% Breite des Feldes für die Absenderergänzung, wobei bei einem Wert von 0 die Breite automatisch aufgrund der in \autoref{sec:scrlttr2.headoptions} beschriebenen Option \Option{locfield} berechnet wird (\autoref{sec:scrlttr2.locationField}, \autopageref{desc:scrlttr2.plength.locwidth})}% \pentry{refvpos}{% Abstand der Geschäftszeile von der oberen Kante des Papiers (\autoref{sec:scrlttr2.refLine}, \autopageref{desc:scrlttr2.plength.refvpos})}% \pentry{refwidth}{% Breite der Geschäftszeile (\autoref{sec:scrlttr2.refLine}, \autopageref{desc:scrlttr2.plength.refwidth})}% \pentry{refhpos}{% Abstand der Geschäftszeile von der linken Papierkante, wobei bei einem Wert von 0 automatisch relativ zur Papierbreite zentriert wird (\autoref{sec:scrlttr2.refLine}, \autopageref{desc:scrlttr2.plength.refhpos})}% \pentry{refaftervskip}{% vertikaler Abstand nach der Geschäftszeile (\autoref{sec:scrlttr2.refLine}, \autopageref{desc:scrlttr2.plength.refaftervskip})}% \pentry{sigbeforevskip}{% vertikaler Abstand zwischen Gruß und Signatur (\autoref{sec:scrlttr2.closing}, \autopageref{desc:scrlttr2.plength.sigbeforevskip})}% \pentry{sigindent}{% Einzug der Signatur gegenüber dem Textkörper (\autoref{sec:scrlttr2.closing}, \autopageref{desc:scrlttr2.plength.sigindent})}% \pentry{firstfootvpos}{% Abstand des Brief"|fußes von der oberen Kante des Papiers (\autoref{sec:scrlttr2.firstFoot}, \autopageref{desc:scrlttr2.plength.firstfootvpos})}% \pentry{firstfootwidth}{% Breite des Brief"|fußes, der automatisch innerhalb der Papierbreite zentriert wird (\autoref{sec:scrlttr2.firstFoot}, \autopageref{desc:scrlttr2.plength.firstfootwidth})}% \end{desctable} \begin{Declaration} \Macro{@newplength}\Parameter{Name} \end{Declaration} \BeginIndex{Cmd}{@newplength}% Mit Hilfe dieser Anweisung wird eine neue Pseudolänge definiert. Die neue Pseudolänge ist dann über ihren \PName{Namen} eindeutig identifiziert. % \iffalse % Umbruchoptimierungstext Es wird sichergestellt, dass jeder \PName{Name} nur einmal vergeben wird.% \else Wird versucht, eine bereits vorhandene Pseudolänge erneut zu definieren, so wird dies mit einer Fehlermeldung quitiert.% % \fi Da der Anwender selbst normalerweise keine eigenen Pseudolängen definieren muss, handelt es sich bei diesem Befehl um keine Benutzeranweisung. Sie kann innerhalb des Dokuments nicht, wohl aber beispielsweise innerhalb einer \File{lco}-Datei verwendet werden. % \EndIndex{Cmd}{@newplength}% \begin{Declaration} \Macro{@setplength}% \OParameter{Faktor}\Parameter{Pseudolänge}\Parameter{Wert}\\ \Macro{@addtoplength}% \OParameter{Faktor}\Parameter{Pseudolänge}\Parameter{Wert} \end{Declaration} \BeginIndex{Cmd}{@setplength}% \BeginIndex{Cmd}{@addtoplength}% Mit Hilfe der Anweisung \Macro{@setplength} kann einer \PName{Pseudolänge} das Vielfache eines \PName{Wertes} zugewiesen werden. Der \PName{Faktor} wird dabei als optionales Argument übergeben (siehe auch \Macro{setlengthtoplength}). Mit der Anweisung \Macro{@addtoplength} kann man zu einer \PName{Pseudolänge} einen \PName{Wert} addieren. Um einer \PName{Pseudolänge} das Vielfache einer anderen Pseudolänge zuzuweisen oder hinzuzuaddieren, verwendet man innerhalb von \PName{Wert} die Anweisung \Macro{useplength}. Um von einer \PName{Pseudolänge} den Wert einer anderen \PName{Pseudolänge} zu subtrahieren, verwendet man gleichzeitig als \PName{Faktor} ein Minuszeichen oder \PValue{-1}. Da der Anwender selbst normalerweise keine Pseudolängen ändern muss, handelt es sich bei diesen Befehlen um keine Benutzeranweisungen. Sie können innerhalb des Dokuments nicht, wohl aber beispielsweise innerhalb einer \File{lco}-Datei verwendet werden. % \EndIndex{Cmd}{@setplength}% \EndIndex{Cmd}{@addtoplength}% \begin{Declaration} \Macro{useplength}\Parameter{Name} \end{Declaration} \BeginIndex{Cmd}{useplength}% Mit Hilfe dieser Anweisung wird auf den Wert der Pseudolänge mit dem angegebenen \PName{Namen} zugegriffen. Dies ist eine der wenigen Benutzeranweisung rund um Pseudolängen. Natürlich kann diese Anweisung dennoch auch innerhalb einer \File{lco}-Datei verwendet werden. % \EndIndex{Cmd}{useplength}% \begin{Explain}% \begin{Declaration} \Macro{setlengthtoplength}% \OParameter{Faktor}\Parameter{Länge}\Parameter{Pseudolänge}\\ \Macro{addtolengthplength}% \OParameter{Faktor}\Parameter{Länge}\Parameter{Pseudolänge} \end{Declaration} \BeginIndex{Cmd}{setlengthtoplength}% \BeginIndex{Cmd}{addtolengthplength}% Während man einer Länge einfach einen Faktor voranstellen kann, ist dies bei Pseudolängen nicht möglich. Angenommen, eine Länge \Macro{Test} hat den Wert 2\Unit{pt}, dann ergibt \texttt{3\Macro{Test}} den Wert 6\Unit{pt}. Verwendet man stattdessen eine Pseudolänge, so würde aus \texttt{3\Macro{useplength}\PParameter{Test}} der Wert 32\Unit{pt}. Dies ist insbesondere dann lästig, wenn man einer echten \PName{Länge} den Wert einer \PName{Pseudolänge} zuweisen will. \end{Explain} Mit der Anweisung \Macro{setlengthtoplength} kann man einer echten \PName{Länge} das Vielfache einer \PName{Pseudolänge} zuweisen. Allerdings wird hier der \PName{Faktor} nicht direkt der \PName{Pseudolänge} vorangestellt, sondern als optionales Argument übergeben. Man sollte diese Anweisung auch verwenden, wenn man einer \PName{Länge} den negativen Wert einer \PName{Pseudolänge} zuweisen will. Als \PName{Faktor} kann dann wahlweise ein Minuszeichen oder \PValue{-1} verwendet werden. Die Anweisung \Macro{addtolengthplength} arbeitet ganz ähnlich. Allerdings wird hier zur \PName{Länge} das Vielfache der \PName{Pseudolänge} addiert. % \EndIndex{Cmd}{setlengthtoplength}% \EndIndex{Cmd}{addtolengthplength}% % \EndIndex{}{Pseudolängen}% \subsection{Der generelle Aufbau eines Briefdokuments} \label{sec:scrlttr2.document} Der generelle Aufbau\Index{Aufbau} eines Briefdokuments weicht etwas vom Aufbau eines normalen Dokuments ab. Während ein Buchdokument normalerweise nur ein Buch enthält, kann ein einzelnes Briefdokument mehrere Briefe enthalten. Wie in \autoref{fig:scrlttr2.document} veranschaulicht wird, besteht ein Briefdokument aus einem Vorspann, den einzelnen Briefen und dem Abschluss. \begin{figure} \centering\small\setlength{\fboxsep}{1.5ex} \fbox{\parbox{.667\linewidth}{\raggedright% \Macro{documentclass}\OParameter{\dots}\PParameter{scrlttr2}\\ \dots\\ {\centering\emph{Einstellungen für alle Briefe}\\} \dots\\ \Macro{begin}\PParameter{document}\\ \dots\\ {\centering\emph{Einstellungen für alle Briefe}\\} \dots\\ }}\\ \fbox{\parbox{.667\linewidth}{\raggedright% \Macro{begin}\PParameter{letter}\Parameter{Empfänger}\\ \dots\\ {\centering\emph{Inhalt eines einzelnen Briefs}\\} \dots\\ \Macro{end}\PParameter{letter}\\ }}\\[2pt] \parbox{.667\linewidth}{\raggedright\vspace{-.5ex}\vdots\vspace{1ex}}\\ \fbox{\parbox{.667\linewidth}{\raggedright% \Macro{end}\PParameter{document}\\ }}\\[\dp\strutbox] \caption[Genereller Aufbau eines Briefdokuments mit beliebig vielen einzelnen Briefen]{Genereller Aufbau eines Briefdokuments mit beliebig vielen einzelnen Briefen (den Aufbau eines einzelnen Briefes zeigt \autoref{fig:scrlttr2.letter})} \label{fig:scrlttr2.document} \end{figure} Der Vorspann beinhaltet dabei alle Einstellungen, die generell alle Briefe betreffen. Diese können in den Einstellungen der einzelnen Briefe jedoch zumindest teilweise überschrieben werden. Die einzige Einstellung, die derzeit nicht innerhalb eines einzelnen Briefes überschrieben werden kann, ist die Größe der Grundschrift (siehe Option \Option{fontsize} in \autoref{sec:scrlttr2.fontOptions}, \autopageref{desc:scrlttr2.option.fontsize}). Ich empfehle, vor \Macro{begin}\PParameter{document} nur allgemeine Einstellungen wie das Laden von Paketen und das Setzen von Optionen vorzunehmen. Alle Einstellungen, die das Setzen einer Variablen oder sonstige Textangaben beinhalten, sollten nach \Macro{begin}\PParameter{document} vorgenommen werden. Dies empfiehlt sich umso mehr, wenn das Babel-Paket\IndexPackage{babel} (siehe \cite{package:babel}) verwendet wird oder sprachabhängige Variablen von \Class{scrlttr2} verändert werden sollen. Der Abschluss besteht in der Regel nur aus \Macro{end}\PParameter{document}. Natürlich können Sie dort aber auch zusätzliche Kommentare einfügen. \begin{figure} \centering \fbox{\parbox{.667\linewidth}{\raggedright% \Macro{begin}\PParameter{letter}% \OParameter{Optionen}\Parameter{Empfänger}\\ \dots\\[\dp\strutbox] {\centering\emph{Einstellungen für diesen Brief}\\} \dots\\ \Macro{opening}\Parameter{Anrede}\\ }}\\[1pt] \fbox{\parbox{.667\linewidth}{\raggedright% \dots\\[\dp\strutbox] {\centering\emph{Brief"|text}\\} \dots\\ }}\\[1pt] \fbox{\parbox{.667\linewidth}{\raggedright% \Macro{closing}\Parameter{Grußformel}\\ \Macro{ps}\\ \dots\\[\dp\strutbox] {\centering\emph{Postscriptum}\\} \dots\\ \Macro{encl}\Parameter{Anlagen}\\ \Macro{cc}\Parameter{Verteiler}\\ \Macro{end}\PParameter{letter}\\ }}\\[\dp\strutbox] \caption[Genereller Aufbau eines einzelnen Briefes innerhalb eines Briefdokuments]{Genereller Aufbau eines einzelnen Briefes innerhalb eines Briefdokuments (siehe \autoref{fig:scrlttr2.document})} \label{fig:scrlttr2.letter} \end{figure} Wie in \autoref{fig:scrlttr2.letter} verdeutlicht wird, bestehen die einzelnen Briefe wiederum aus einer Einleitung, dem eigentlichen Brief"|text und einem Schlussteil. In der Einleitung werden alle Einstellungen vorgenommen, die nur für diesen einen Brief gelten sollen. Entscheidend ist hierbei, dass diese Einleitung immer mit \Macro{opening}\IndexCmd{opening} endet. Ebenso beginnt der Schlussteil immer mit \Macro{closing}\IndexCmd{closing}. Gegebenenfalls können die Argumente \PName{Anrede} und \PName{Grußformel} der beiden Anweisungen leer bleiben, die Anweisungen müssen jedoch gesetzt werden und haben immer ein Argument. \begin{Explain} Es soll an dieser Stelle nicht verschwiegen werden, dass zwischen den einzelnen Briefen weitere Einstellungen getroffen werden können. Diese gelten dann für alle nachfolgenden Briefe. Um Briefdokumente übersichtlich und wartbar zu halten, sollte man sich jedoch gut überlegen, ob man zwischen die Briefe tatsächlich weitere generelle Einstellungen mit beschränkter Gültigkeit setzen will. Ich kann dies nicht empfehlen% \iftrue % Umbruchergänzungstext , da die Suche nach Einstellungen dadurch erschwert wird% \fi % . %\end{Explain} Wie bereits erwähnt, können mit Ausnahme der Schriftgröße alle generellen Einstellungen aus dem Dokumentvorspann auch im Vorspann einzelner Briefe gesetzt werden. Daher finden sich in diesem Abschnitt keine weiteren Erklärungen zu den möglichen Einstellungen. Bitte entnehmen Sie diese dem \autoref{sec:scrlttr2.startLetter}. \end{Explain} \section{Die Briefeinleitung} \label{sec:scrlttr2.startLetter} In der Briefeinleitung\Index{Einleitung} finden sich alle Einstellungen für einen Brief sowie alle Angaben zum Aufbau der ersten Briefseite. Die erste Briefseite übernimmt innerhalb eines Briefes nicht nur die Rolle der Titelei, sondern besteht aus vielen unterschiedlichen Teilen. \subsection{Briefkopf} \label{sec:scrlttr2.firstHead} \BeginIndex{}{Briefkopf}% Unter dem Briefkopf verstehen wir alle Angaben, die den Absender betreffen und die über der Anschrift stehen. Normalerweise würde man erwarten, dass diese über den Seitenstil gesetzt werden. Bei der alten Briefklasse \Class{scrlettr} war dies auch so. Bei \Class{scrlttr2} wird der Briefkopf jedoch unabhängig vom Seitenstil von der Anweisung \Macro{opening}\IndexCmd{opening} ausgegeben. % Fuellmaterial \iftrue% Dabei wird der Briefkopf absolut positioniert, ist also vom Satzspiegel unabhängig. Die erste Seite eines Briefes, also die Seite mit dem Briefkopf, wird tatsächlich mit dem Seitenstil \PValue{empty} gesetzt.% \fi % Ende des Fuellmaterials \begin{Declaration} \PLength{firstheadvpos} \end{Declaration} \BeginIndex{PLength}{firstheadvpos}% Die Pseudolänge \PLength{firstheadvpos} gibt den Abstand des Briefkopfes von der oberen Papierkante an. Der Wert wird in den vordefinierten \File{lco}-Dateien unterschiedlich gesetzt. Ein typischer Wert ist 8\Unit{mm}. % \EndIndex{PLength}{firstheadvpos} \begin{Declaration} \PLength{firstheadwidth} \end{Declaration} \BeginIndex{PLength}{firstheadwidth}% Die Pseudolänge \PLength{firstheadwidth} gibt die Breite des Briefkopfes an. Der Wert wird in den vordefinierten \File{lco}-Dateien unterschiedlich gesetzt. Während er normalerweise von der Papierbreite und dem horizontalen Abstand der Empfängeradresse vom linken Papierrand abhängt, entspricht er bei \Option{KOMAold} der Breite des Satzspiegels. % \EndIndex{PLength}{firstheadwidth}% \begin{Declaration} \Variable{fromname}\\ \Variable{fromaddress}\\ \Variable{fromphone}\\ \Variable{fromfax}\\ \Variable{fromemail}\\ \Variable{fromurl}\\ \Variable{fromlogo} \end{Declaration} \BeginIndex{Variable}{fromname}% \BeginIndex{Variable}{fromaddress}% \BeginIndex{Variable}{fromphone}% \BeginIndex{Variable}{fromfax}% \BeginIndex{Variable}{fromemail}% \BeginIndex{Variable}{fromurl}% \BeginIndex{Variable}{fromlogo}% Diese Variablen stellen die Absenderangaben\Index{Absender} für den Briefkopf, also den Kopf der ersten Seite eines Briefes dar. Welche dieser Variablen tatsächlich für den Briefkopf verwendet werden, kann bei Verwendung der Briefkopferweiterungen (siehe Option \Option{fromalign} in \autoref{sec:scrlttr2.headoptions}, \autopageref{desc:scrlttr2.option.fromalign}) über die entsprechenden Optionen eingestellt werden. Die Variablen \Variable{fromname} und \Variable{fromaddress} werden im Briefkopf ebenso wie \Variable{fromlogo}\Index{Logo} ohne Bezeichnung, die Variablen \Variable{fromphone}\Index{Telefon}, \Variable{fromfax}\Index{Fax}, \Variable{fromemail}\Index{E-Mail} und \Variable{fromurl}\Index{URL}\Index{WWW}\Index{Homepage} hingegen mit ihrer Bezeichnung gesetzt. Die Bezeichnungen sind \autoref{tab:scrlttr2.fromTerm}, \autopageref{tab:scrlttr2.fromTerm} zu entnehmen. % \begin{table} \centering \caption[{Vordefinierte Bezeichnungen der Variablen für die\newline Absenderangaben im Briefkopf}]{Vordefinierte Bezeichnungen der Variablen für die Absenderangaben im Briefkopf} \begin{desctabular}[1.8em] \ventry{fromemail}{\Macro{usekomavar*}\PParameter{emailseparator}% \Macro{usekomavar}\PParameter{emailseparator}}% \ventry{fromfax}{\Macro{usekomavar*}\PParameter{faxseparator}% \Macro{usekomavar}\PParameter{faxseparator}}% \ventry{fromname}{\Macro{headfromname}}% \ventry{fromphone}{\Macro{usekomavar*}\PParameter{phoneseparator}% \Macro{usekomavar}\PParameter{phoneseparator}}% \ventry{fromurl}{\Macro{usekomavar*}\PParameter{urlseparator}% \Macro{usekomavar}\PParameter{urlseparator}}% \end{desctabular} \label{tab:scrlttr2.fromTerm} \end{table} Ein wichtiger Hinweis betrifft noch die Absenderadresse: Innerhalb der Absenderadresse werden einzelne Teilangaben durch doppelten Backslash voneinander getrennt. Solche Teilangaben sind beispielsweise Straße und Hausnummer, Postleitzahl und Ort oder eine Länderangabe. Dieser doppelte Backslash wird je nach Verwendung der Absenderadresse unterschiedlich interpretiert und ist nicht zwangsläufig als Zeilenumbruch zu verstehen. Absätze, vertikale Abstände und Ähnliches sind innerhalb der Absenderangaben normalerweise nicht gestattet. Man muss \Class{scrlttr2} schon sehr genau kennen, um sie gegebenenfalls sinnvoll einsetzen zu können. Außerdem sollte man unbedingt die Variablen für Rücksendeadresse (siehe \autoref{sec:scrlttr2.addressee}, \autopageref{desc:scrlttr2.variable.backaddress}) und Signatur (siehe \autoref{sec:scrlttr2.closing}, \autopageref{desc:scrlttr2.variable.signature}) selbst setzen. Für das Logo kann übrigens auch eine externe Abbildung geladen werden. Dazu setzt man als Inhalt der Variablen \Variable{fromlogo} beispielsweise eine \Macro{includegraphics}-Anweisung. Selbstverständlich muss dann im Vorspann des Briefdokuments (siehe \autoref{sec:scrlttr2.document}) auch das \Package{graphics}- oder \Package{graphicx}-Paket geladen werden (siehe \cite{package:graphics}). % \EndIndex{Variable}{fromname}% \EndIndex{Variable}{fromaddress}% \EndIndex{Variable}{fromphone}% \EndIndex{Variable}{fromfax}% \EndIndex{Variable}{fromemail}% \EndIndex{Variable}{fromurl}% \EndIndex{Variable}{fromlogo}% \begin{Declaration} \PLength{fromrulewidth} \end{Declaration} \BeginIndex{PLength}{fromrulewidth}% Wie bereits bei Option \Option{fromrule}\IndexOption{fromrule} in \autoref{sec:scrlttr2.headoptions}, \autopageref{desc:scrlttr2.option.fromrule} erwähnt wurde, kann in den vordefinierten Briefköpfen eine Linie im oder unter dem Absender gesetzt werden. Hat die Pseudolänge \PLength{fromrulewidth} die Länge 0, so wird dabei die Länge dieser Linie automatisch bestimmt. Dies ist die Voreinstellung bei den vordefinierten \File{lco}-Dateien. Der Wert kann mit \Macro{\@setplength} (siehe \autoref{sec:scrlttr2.pseudoLength}, \autopageref{desc:scrlttr2.macro.@setplength}) in eigenen \File{lco}-Dateien aber auch abweichend gesetzt werden. % \EndIndex{PLength}{fromrulewidth} \begin{Declaration} \Variable{phoneseparator}\\ \Variable{faxseparator}\\ \Variable{emailseparator}\\ \Variable{urlseparator} \end{Declaration} \BeginIndex{Variable}{phoneseparator}% \BeginIndex{Variable}{faxseparator}% \BeginIndex{Variable}{emailseparator}% \BeginIndex{Variable}{urlseparator}% \Index{Telefon}\Index{Fax}\Index{E-Mail}% \Index{URL}\Index{WWW}\Index{Homepage}% In diesen Variablen sind Trennzeichen\Index{Trennzeichen} definiert. Sie werden gegebenenfalls in den Absenderangaben des Briefkopfes verwendet (siehe \autoref{tab:scrlttr2.fromTerm}). Als Besonderheit haben sie außerdem eine Bezeichnung. Die Bezeichnungen werden ebenfalls in den Absenderangaben des Briefkopfes verwendet. Der vordefinierte Inhalt und die Bezeichnung der Trennzeichen sind \autoref{tab:scrlttr2.fromSeperator} zu entnehmen. \begin{table} \centering \caption{Vordefinierte Bezeichnungen und Inhalte der Trennzeichen für die Absenderangaben im Briefkopf} \begin{tabular}{lll} \toprule Name & Bezeichnung & Inhalt \\ \midrule \Variable{emailseparator} & \Macro{emailname} & \texttt{:\~} \\ \Variable{faxseparator} & \Macro{faxname} & \texttt{:\~} \\ \Variable{phoneseparator} & \Macro{phonename} & \texttt{:\~} \\ \Variable{urlseparator} & \Macro{wwwname} & \texttt{:\~} \\ \bottomrule \end{tabular} \label{tab:scrlttr2.fromSeperator} \end{table} % \EndIndex{Variable}{phoneseparator}% \EndIndex{Variable}{faxseparator}% \EndIndex{Variable}{emailseparator}% \EndIndex{Variable}{urlseparator}% \begin{Declaration} \Macro{firsthead}\Parameter{Aufbau} \end{Declaration} \BeginIndex{Cmd}{firsthead}% In vielen Fällen reichen die Möglichkeiten aus, die \Class{scrlttr2} über Optionen und obige Variablen für die Gestaltung des Briefkopfes bietet. In einigen Fällen will man jedoch den Briefkopf freier gestalten können. In diesen Fällen muss man auf die Möglichkeiten der vordefinierten Briefköpfe, die per Option ausgewählt werden können, verzichten. Stattdessen gestaltet man sich seinen Briefkopf frei. Dazu definiert man den gewünschten \PName{Aufbau} mit der Anweisung \Macro{firsthead}. Innerhalb von \Macro{firsthead} können beispielsweise mit Hilfe der \Macro{parbox}-Anweisung (siehe \cite{latex:usrguide}) mehrere Boxen neben- und untereinander gesetzt werden. Einem versierten Anwender sollte es so möglich sein, seinen eigenen Briefkopf zu gestalten. Natürlich kann \PName{Aufbau} auch Zugriffe auf Variablen mit Hilfe von \Macro{usekomavar} nehmen. % \EndIndex{Cmd}{firsthead}% % \EndIndex{}{Briefkopf}% \subsection{Briefbogenfuß} \label{sec:scrlttr2.firstFoot}% \BeginIndex{}{Briefbogenfuss=Briefbogenfuß}% Die erste Seite eines Briefes, der Briefbogen, enthält nicht nur einen eigenen Kopf, den Briefkopf. Diese Seite enthält auch einen eigenen Fuß\Index{Fuss=Fuß}. Auch dieser wird nicht über den Seitenstil, sondern direkt von \Macro{opening}\IndexCmd{opening} ausgegeben. \begin{Declaration} \PLength{firstfootvpos} \end{Declaration} \BeginIndex{PLength}{firstfootvpos}% Diese Pseudolänge gibt den Abstand des Fußes der ersten Briefseite von der Oberkante des Papiers an. Es wird außerdem dafür gesorgt, dass der Textbereich nicht in den Fuß hineinragt. Hierzu wird auf der ersten Seite gegebenenfalls die Höhe des Textbereiches mit Hilfe von \Macro{enlargethispage} verkleinert. Mit Hilfe der Option \Option{enlargefirstpage} kann dafür gesorgt werden, dass die Höhe des Textbereiches umgekehrt gegebenenfalls auch vergrößert wird. Damit kann dann der Abstand zwischen Textbereich und Fuß der ersten Seite auf den Wert der Länge \Length{footskip} verringert werden. Siehe hierzu auch \autoref{sec:scrlttr2.typeareaOptions}, \autopageref{desc:scrlttr2.option.enlargefirstpage}. Bei einer Kompatibilitätseinstellung\ChangedAt{2.9t}{\Class{scrlttr2}} bis Version 2.9t (siehe \Option{version} in \autoref{sec:scrlttr2.compatibilityOptions}, \autopageref{desc:scrlttr2.option.version}) wird außer bei \Option{KOMAold} in allen vordefinierten \File{lco}-Dateien (siehe \autoref{sec:scrlttr2.lcoFile}) der Fuß abhängig vom Satzspiegel gesetzt. Damit hat dann auch \Option{enlargefirstpage} keine Wirkung. Ab Version 2.9u bekommt der Fuß eine Position am unteren Ende des Papiers. Damit ist dann die Höhe des Satzspiegels des Briefbogens eventuell auch von der Option \Option{enlargefirstpage} abhängig. % \EndIndex{PLength}{firstfootvpos}% \begin{Declaration} \PLength{firstfootwidth} \end{Declaration} \BeginIndex{PLength}{firstfootwidth}% Diese Pseudolänge gibt die Breite des Fußes der ersten Briefseite an. Der Wert stimmt in den vordefinierten \File{lco}-Dateien mit \PLength{firstheadwidth} überein.% % \EndIndex{PLength}{firstfootwidth}% \begin{Declaration} \Macro{firstfoot}\Parameter{Aufbau} \end{Declaration} \BeginIndex{Cmd}{firstfoot}% Der Fuß der ersten Seite ist in der Voreinstellung leer. Es besteht jedoch die Möglichkeit einen \PName{Aufbau} mit Hilfe der Anweisung \Macro{firstfoot} zu definieren. Dies geschieht genau wie die Definition des Kopfes mit Hilfe von \Macro{firsthead}. \begin{Example} Sie wollen den Inhalt der Variablen \Variable{frombank}, also die Bankverbindung im Fuß der ersten Seite ausgeben. Der doppelte Backslash soll dabei durch ein Komma ersetzt werden: \begin{lstlisting} \firstfoot{% \parbox[b]{\linewidth}{% \centering\def\\{, }\usekomavar{frombank}% }% } \end{lstlisting} Natürlich können Sie für das Trennzeichen auch eine eigene Variable definieren. Ich überlasse dem Leser dies als Übung. Heutzutage hat man recht häufig, dass eine Art Brief"|fuß als Gegengewicht zum Briefkopf verwendet wird. So etwas kann beispielsweise wie folgt definiert werden: \begin{lstlisting} \firstfoot{% \parbox[t]{\textwidth}{\footnotesize \begin{tabular}[t]{l@{}}% \multicolumn{1}{@{}l@{}}{Gesellschafter:}\\ Hugo Mayer\\ Bernd Müller \end{tabular}% \hfill \begin{tabular}[t]{l@{}}% \multicolumn{1}{@{}l@{}}{Geschäftsführerin:}\\ Liselotte Mayer\\[1ex] \multicolumn{1}{@{}l@{}}{Gerichtsstand:}\\ Hinterdupfeldingen \end{tabular}% \ifkomavarempty{frombank}{}{% \hfill \begin{tabular}[t]{l@{}}% \multicolumn{1}{@{}l@{}}{% \usekomavar*{frombank}:}\\ \usekomavar{frombank} \end{tabular}% }% }% } \end{lstlisting} Das Beispiel stammt übrigens ursprünglich von Torsten Krüger. Mit \begin{lstlisting} \setkomavar{frombank}{Konto 12\,345\,678\\ bei der HansWurstBank\\ BLZ 876\,543\,21} \end{lstlisting} kann die Bankverbindung passend dazu gesetzt werden. Abhängig von den Voreinstellungen ist ein solch hoher Fuß nicht vorgesehen und wird deshalb möglicherweise zu tief platziert. In einem solchen Fall kann die vertikale Position über die Pseudolänge \PLength{firstfootvpos}\IndexPLength{firstfootvpos}, die weiter oben in diesem Abschnitt beschrieben ist, angepasst werden. % Möglicherweise % muss für einen solch hohen Fuß noch die Position des Fußes nach % oben verschoben werden. Dies können Sie gegebenenfalls über die % Pseudolänge \PLength{firstfootvpos}\IndexPLength{firstfootvpos} % erreichen, die weiter oben in diesem Abschnitt beschrieben ist. \end{Example} Im letzten Beispiel wurde ein mehrzeiliger Fuß gesetzt. Bei einer Kompatibilitätseinstellung aber Version 2.9u (siehe \Option{version} in \autoref{sec:scrlttr2.compatibilityOptions}, \autopageref{desc:scrlttr2.option.version}) reicht der Platz dafür in der Regel nicht aus. Sie sollten dann \PLength{firstfootvpos} (siehe \autopageref{desc:scrlttr2.plength.firstfootvpos}) entsprechend verringern.% % \EndIndex{Cmd}{firstfoot}% % \EndIndex{}{Briefbogenfuss=Briefbogenfuß}% \subsection{Anschrift} \label{sec:scrlttr2.addressee}% \BeginIndex{}{Anschrift}% Unter der Anschrift versteht man normalerweise nur den Namen und die Adresse des Empfängers. Als erste Erweiterung zur Anschrift kann die Versandart betrachtet werden, die etwa bei Einschreiben oder Infobriefen zur Anwendung kommt. Bei Fensterbriefumschlägen wird auch die sogenannte Rücksendeadresse zur Anschrift gezählt, da sie im Anschriftfenster zu sehen sein wird. Die Anschrift folgt unmittelbar auf den Briefkopf. \begin{Declaration} \PLength{toaddrvpos}\\ \PLength{toaddrhpos} \end{Declaration} \BeginIndex{PLength}{toaddrvpos}% \BeginIndex{PLength}{toaddrhpos}% Diese Pseudolängen geben den Abstand des Anschriftfensters eines Fensterbriefumschlags vom oberen und vom linken Rand des Papiers an. Sie werden in den vordefinierten \File{lco}-Dateien unterschiedlich eingestellt. Für \PLength{toaddrhpos} gilt außerdem eine Besonderheit. Ist der Wert negativ, so ist sein Betrag der Abstand des Anschriftfeldes vom rechten Rand des Papiers. Sie finden dies beispielsweise bei \Option{SN}. Am kleinsten ist der Wert \PLength{toaddrvpos} bei \Option{DINmtext}. Hier kann es schnell passieren, dass der Briefkopf in das Anschriftfenster ragt. Ob das Anschriftfenster überhaupt gesetzt wird, hängt von der Option \Option{addrfield} ab (siehe \autoref{sec:scrlttr2.headoptions}, \autopageref{desc:scrlttr2.option.addrfield}). % \EndIndex{PLength}{toaddrhpos}% \EndIndex{PLength}{toaddrvpos}% \begin{Declaration} \PLength{toaddrheight} \end{Declaration} \BeginIndex{PLength}{toaddrheight}% Diese Pseudolänge gibt die Höhe des Anschriftenfeldes einschließlich der Versandart an. Ist keine Versandart angegeben, so wird die Anschrift vertikal innerhalb dieses Feldes zentriert. Ist eine Versandart angegeben, so wird die Anschrift unterhalb der Versandart vertikal im Rest des Anschriftenfeldes zentriert.% \EndIndex{PLength}{toaddrheight} \begin{Declaration} \PLength{toaddrwidth} \end{Declaration} \BeginIndex{PLength}{toaddrwidth}% Diese Pseudolänge gibt die Breite des Anschriftfensters an. Diese wird in den vordefinierten \File{lco}-Dateien entsprechend der unterschiedlichen Normen unterschiedlich eingestellt. Typische Werte liegen zwischen 70\Unit{mm} und 100\Unit{mm}. \begin{Example} Angenommen, Sie haben das Problem, dass Ihr Drucker einen sehr breiten unbedruckbaren rechten oder linken Rand von 15\Unit{mm} besitzt. Dadurch kann bei Option \Option{SN} der Briefkopf, die Absenderergänzung und die Anschrift nicht komplett gedruckt werden. Sie erstellen daher eine neue \File{lco}-Datei mit folgendem Inhalt: \begin{lstlisting} \ProvidesFile{SNmmarg.lco} [2002/06/04 v0.1 my own lco] \LoadLetterOption{SN} \@addtoplength{toaddrwidth}{% -\useplength{toaddrhpos}} \@setplength{toaddrhpos}{-15mm} \@addtoplength{toaddrwidth}{% \useplength{toaddrhpos}} \endinput \end{lstlisting} Bis Sie sich einen Drucker mit kleineren Rändern zugelegt haben, verwenden Sie dann \Option{SNmmarg} an Stelle von \Option{SN}. \end{Example} % \EndIndex{PLength}{toaddrwidth}% \begin{Declaration} \PLength{toaddrindent} \end{Declaration} \BeginIndex{PLength}{toaddrindent}% Manchmal will man, dass die Anschrift nicht am linken Rand des Anschriftfensters beginnt, sondern ein wenig eingezogen wird. Der Wert dieses Einzugs kann über die Pseudolänge \PLength{toaddrindent} festgelegt werden. Typischerweise ist dieser Wert jedoch 0\Unit{pt}. % \EndIndex{PLength}{toaddrindent}% \begin{Declaration} \Variable{backaddress}\\ \Variable{backaddressseparator}\\ \PLength{backaddrheight} \end{Declaration} \BeginIndex{Variable}{backaddress}% \BeginIndex{Variable}{backaddressseparator}% \BeginIndex{PLength}{backaddrheight}% Bei Fensterbriefumschlägen wird der Absender häufig in einer kleinen Schrift einzeilig über der Empfängeradresse ausgegeben. Diese Absenderangabe nennt man Rücksendeadresse. Die Rücksendeadresse wird mit einer horizontalen Linie abgetrennt. Der Inhalt der Rücksendeadresse\Index{Rücksendeadresse} wird normalerweise automatisch aus den Variablen \Variable{fromname} und \Variable{fromaddress} gebildet. Innerhalb der Rücksendeadresse wird der doppelte Backslash durch den Inhalt der Variablen \Variable{backaddressseparator} ersetzt. Vordefiniert ist hierbei ein Komma, gefolgt von einem nicht umbrechbaren Leerzeichen. Die Höhe, die innerhalb des Anschriftfensters für die Rücksendeadresse zur Verfügung steht, ist in der Pseudolänge \PLength{backaddrheight} abgelegt. Der Wert wird in den vordefinierten \File{lco}-Dateien typischerweise auf 5\Unit{mm} eingestellt. Ob die Rücksendeadresse überhaupt gesetzt wird, bestimmt der Anwender mit den Optionen \Option{addrfield} (siehe \autoref{sec:scrlttr2.headoptions}, \autopageref{desc:scrlttr2.option.addrfield} und \Option{backaddress} (siehe \autoref{sec:scrlttr2.headoptions}, \autopageref{desc:scrlttr2.option.backaddress}). % \EndIndex{PLength}{backaddrheight}% \EndIndex{Variable}{backaddress}% \EndIndex{Variable}{backaddressseparator}% \begin{Declaration} \Variable{specialmail}\\ \PLength{specialmailindent}\\ \PLength{specialmailrightindent} \end{Declaration} \BeginIndex{Variable}{specialmail}% \BeginIndex{PLength}{specialmailindent}% \BeginIndex{PLength}{specialmailrightindent}% Zwischen Rücksendeadresse und Empfängeradresse kann noch eine optionale Versandart\Index{Versandart} gesetzt werden. Diese wird genau dann gesetzt, wenn die Variable \Variable{specialmail} einen Inhalt hat. Die Ausrichtung wird mit Hilfe der Pseudolängen \PLength{specialmailindent} und \PLength{specialmailrightindent} festgelegt. Diese geben den linken und rechten Einzug der Zeile an. In den vordefinierten \File{lco}-Dateien ist \PLength{specialmailindent} auf den dehnbaren Wert \Macro{fill} gesetzt, während \PLength{specialmailrightindent} auf 1\Unit{em} eingestellt ist. Damit wird die Versandart 1\Unit{em} vom rechten Rand des Anschriftfensters gesetzt. % \EndIndex{PLength}{specialmailindent}% \EndIndex{PLength}{specialmailrightindent}% \EndIndex{Variable}{specialmail}% \begin{Declaration} \Variable{toname}\\ \Variable{toaddress} \end{Declaration} \BeginIndex{Variable}{toname}% \BeginIndex{Variable}{toaddress}% Diese beiden Variablen, die den Namen und die Adresse des Empfängers beinhalten, werden normalerweise nicht direkt vom Anwender gesetzt. Vielmehr gewinnt sie \Class{scrlttr2} direkt aus dem \PName{Empfänger}-Argument der \Environment{letter}-Umgebung\IndexEnv{letter}. Beachten Sie auch hier den wichtigen Hinweis zur Absenderadresse aus \autoref{sec:scrlttr2.firstHead}, \autopageref{desc:scrlttr2.variable.fromname}. % \EndIndex{Variable}{toname}% \EndIndex{Variable}{toaddress}% \begin{Declaration} \Environment{letter}\OParameter{Optionen}\Parameter{Anschrift} \end{Declaration} \BeginIndex{Env}{letter}% Die Briefumgebung, \Environment{letter}, ist nur einer der zentralen Dreh- und Angelpunkte der Briefklasse. Als Besonderheit kann man bei \Class{scrlttr2} der Briefumgebung zusätzliche \PName{Optionen} mit auf den Weg geben. Diese werden dann intern per \Macro{KOMAoptions}-Anweisung ausgeführt. Die \PName{Anschrift} wird als obligatorischer Parameter an die Umgebung übergeben. Dabei dient der doppelte Backslash als Trennzeichen zwischen einzelnen Teilen der \PName{Anschrift}. Diese einzelnen Teile werden im Anschriftfeld als einzelne Zeilen ausgegeben. Dennoch sollte der doppelte Backslash hier nicht als fester Zeilenumbruch verstanden werden. Absätze, vertikaler Leerraum und Ähnliches sind in der Anschrift nicht erlaubt. Sie können zu unerwarteten Effekten und Fehlermeldungen führen. Dies ist übrigens bei der Standardbriefklasse genauso. Die \Environment{letter}-Umgebung beginnt den Brief selbst noch nicht. Dies geschieht erst mit der \Macro{opening}-Anweisung\IndexCmd{opening}.% \EndIndex{Env}{letter}% \begin{Declaration} \Macro{AtBeginLetter}\Parameter{Anweisungen} \end{Declaration} \BeginIndex{Cmd}{AtBeginLetter}% Wie in \cite{latex:clsguide} erwähnt, gibt es bei \LaTeX{} die Möglichkeit, an bestimmten Stellen während des \LaTeX-Laufs eines Dokuments zusätzliche \PName{Anweisungen} ausführen zu lassen. Diesem Zweck dienen beispielsweise die Anweisungen \Macro{AtBeginDocument} und \Macro{AtEndOfClass}. Man nennt solche Eingriffspunkte auch \emph{hooks}\Index{hook=\emph{hook}}, also Haken\Index{Haken}. Die Klasse \Class{scrlttr2} fügt einen weiteren Haken hinzu, der mit \Macro{AtBeginLetter} mit Fleisch versehen werden kann. Wie man schon daran erkennt, dass Anweisungen für die Haken nicht in \cite{latex:usrguide} sondern in \cite{latex:clsguide} dokumentiert sind, sind diese Anweisungen eigentlich eher für Paket- und Klassenautoren gedacht. Bei der Briefklasse kann es jedoch eine sinnvolle Anwendung für \Macro{AtBeginLetter} auch auf Benutzerebene geben. Das folgende Beispiel zeigt dies. % \begin{Example} Angenommen, Sie haben mehrere Briefe in einem Dokument. Sie verwenden außerdem eine eigene Anweisung, um in den Briefen einen Fragebogen zu setzen. Dabei werden die Fragen automatisch mit Hilfe eines Zählers nummeriert. Da \Class{scrlttr2} dieser Zähler nicht bekannt ist, würde er auch im Gegensatz etwa zur Seitenzahl am Anfang eines neuen Briefes nicht zurückgesetzt. Wenn jeder Brief zehn Fragen beinhaltet, hätte damit die erste Frage im fünften Brief die Nummer 41 statt der Nummer 1. Sie lösen das, indem Sie \Class{scrlttr2} mitteilen, dass am Anfang jeden Briefes der Zähler zurückgesetzt werden soll: \begin{lstlisting} \newcounter{Frage} \newcommand{\Frage}[1]{% \refstepcounter{Frage}\par \@hangfrom{\makebox[2em][r]{\theFrage:~}}{#1}} \AtBeginLetter{\setcounter{Frage}{0}} \end{lstlisting} Damit hat dann auch die erste Frage im 1001. Brief wieder die Nummer 1. Selbstverständlich gehören die entsprechenden Definitionen und Anweisungen entweder mit \Macro{makeatletter} und \Macro{makeatother} geklammert (siehe \cite{DANTE:FAQ}) in den Vorspann des Briefdokuments (siehe \autoref{sec:scrlttr2.document} sowie \autoref{fig:scrlttr2.document}, \autopageref{fig:scrlttr2.document}) oder in ein eigenes Paket oder eine \File{lco}-Datei (siehe \autoref{sec:scrlttr2.lcoFile}). \end{Example} % \EndIndex{Cmd}{AtBeginLetter}% % \EndIndex{}{Anschrift}% \subsection{Absenderergänzungen} \label{sec:scrlttr2.locationField} Insbesondere bei Geschäftsbriefen reicht der Platz im Briefkopf und im Seitenfuß oftmals nicht aus, um alle Angaben des Absenders unterzubringen. Für die zusätzlichen Informationen wird oft der Platz neben der Anschrift genutzt. In dieser Anleitung wird dieses Feld \emph{Absenderergänzung} genannt. \begin{Declaration} \PLength{locwidth} \end{Declaration} \BeginIndex{PLength}{locwidth}% Diese Pseudolänge \PLength{locwidth} gibt die Breite der Absenderergänzung an. Ihr Wert wird in den vordefinierten \File{lco}-Dateien typischerweise auf 0\Unit{pt} gesetzt. Dieser Wert nimmt eine Sonderstellung ein. Er bedeutet nicht, dass die Absenderergänzung die Breite Null besitzen soll. Vielmehr wird bei diesem Wert die tatsächliche Breite erst bei \Macro{opening}\IndexCmd{opening} an Hand der Breite des Papiers, der Breite des Anschriftfensters und dem Abstand des Anschriftfensters vom linken Rand gesetzt. Dabei findet auch die Option \Option{locfield} (siehe \autoref{sec:scrlttr2.headoptions}, \autopageref{desc:scrlttr2.option.locfield}) Berücksichtigung. % \EndIndex{PLength}{locwidth} \begin{Declaration} \Variable{location} \end{Declaration} \BeginIndex{Variable}{location}% Der Inhalt der Absenderergänzung wird mit der Variablen \Variable{location} festgelegt. Für den Inhalt dieser Variablen dürfen auch Formatieranweisungen wie \Macro{raggedright} verwendet werden. Es ist zu beachten, dass je nach Einstellung der Optionen \Option{fromalign} und \Option{fromlogo} ein Teil der Absenderergänzung bereits durch das Logo belegt wird (siehe \autoref{sec:scrlttr2.headoptions}, \autopageref{desc:scrlttr2.option.fromalign} und \autopageref{desc:scrlttr2.option.fromlogo}). % \begin{Example} Angenommen, Sie wollen in der Absenderergänzung die Gesellschafter, den Geschäftsführer und den Gerichtsstand Ihrer Firma angeben. Dies kann beispielsweise wie folgt geschehen: \begin{lstlisting} \KOMAoptions{locfield=wide} \setkomavar{location}{\raggedright \textbf{Gesellschafter:}\\ \quad Hugo Mayer\\ \quad Bernd Müller\\[1ex] \textbf{Geschäftsführerin:}\\ \quad Liselotte Mayer\\[1ex] \textbf{Gerichtsstand:}\\ \quad Hinterdupfeldingen } \end{lstlisting} Die Option \Option{locfield=wide} setzen Sie, damit die ganzen Angaben horizontal auch wirklich passen. Solche Angaben können Sie übrigens auch zusammen mit den allgemeinen Absenderangaben in Ihre eigene \File{lco}-Datei packen. \end{Example} % \EndIndex{Variable}{location}% \subsection{Geschäftszeile} \label{sec:scrlttr2.refLine}% \BeginIndex{}{Geschäftszeile}% Insbesondere bei Geschäftsbriefen findet sich häufig eine Zeile mit Angaben wie Namenskürzeln\Index{Kürzel}, Durchwahl\Index{Durchwahl}, Kunden-\Index{Kundennummer} und Rechnungsnummer\Index{Rechnungsnummer} oder zur Bezugnahme auf ein früheres Schreiben. Diese Zeile wird in dieser Anleitung \emph{Geschäftszeile} genannt. Die Geschäftszeile kann auch länger als eine Zeile sein und wird nur gesetzt, wenn mindestens eine der Variablen für die Geschäftszeile nicht leer ist. Es werden nur die Felder gesetzt, die nicht leer sind. Um ein scheinbar leeres Feld zu setzen, muss man der entsprechenden Variablen einen scheinbar leeren Inhalt, beispielsweise ein festes Leerzeichen oder \Macro{null}, geben. Wird auf die Geschäftszeile verzichtet, so werden an ihrer Stelle Bezeichnung und Inhalt der Variablen \Variable{date} ausgegeben. Informationen, wie Variablen zur Geschäftszeile hinzugefügt oder entfernt werden, sind in \autoref{sec:scrlttr2.variables}, \autopageref{desc:scrlttr2.macro.removereffields} zu finden. \begin{Declaration} \PLength{refvpos} \end{Declaration} \BeginIndex{PLength}{refvpos}% Diese Pseudolänge gibt den Abstand der Geschäftszeile von der Oberkante des Papiers an. Ihr Wert wird in den vordefinierten \File{lco}-Dateien unterschiedlich eingestellt. Typische Werte liegen zwischen 80{,}5\Unit{mm} und 98{,}5\Unit{mm}. % \EndIndex{PLength}{refvpos}% \begin{Declaration} \PLength{refwidth}\\ \PLength{refhpos} \end{Declaration} \BeginIndex{PLength}{refwidth}% \BeginIndex{PLength}{refhpos}% Die Pseudolänge \PLength{refwidth} gibt die Breite an, die für die Geschäftszeile zur Verfügung steht. Ihr Wert wird in den vordefinierten \File{lco}-Dateien typischerweise auf 0\Unit{pt} gesetzt. Dieser Wert hat eine besondere Bedeutung. Es wird damit keineswegs festgelegt, dass für die Geschäftszeile keine Breite zur Verfügung steht. Vielmehr bedeutet der Wert, dass die verfügbare Breite erst innerhalb von \Macro{opening}\IndexCmd{opening} ermittelt wird. Die dort ermittelte Breite richtet sich dann nach der Einstellung der Option \Option{refline} (siehe \autoref{sec:scrlttr2.headoptions}, \autopageref{desc:scrlttr2.option.refline}). Gleichzeitig wird dann auch \PLength{refhpos} entsprechend der Option gesetzt. Bei \Option{refline=}\PValue{wide} wird die Geschäftszeile zentriert, wohingegen sie bei \Option{refline=}\PValue{narrow} am Satzspiegel links ausgerichtet wird. Ist \PLength{refwidth} von Null verschieden, wird die Breite der Geschäftszeile also nicht von der Option \Option{refline} bestimmt, so gibt \PLength{refhpos} den Abstand der Geschäftszeile von der linken Papierkante an. Ist dieser Abstand Null, so wird die Geschäftszeile so ausgerichtet, dass das Verhältnis zwischen ihrem Abstand von der linken Papierkante zu ihrem Abstand von der rechten Papierkante dem Verhältnis zwischen dem Abstand des Satzspiegels von der linken Papierkante zu seinem Abstand von der rechten Papierkante entspricht. Bei auf dem Papier horizontal zentriertem Satzspiegel wird also auch die Geschäftszeile zentriert. In der Regel werden diese Sonderfälle für den normalen Anwender von geringem Interesse sein. Die einfachste Regel lautet hier: Entweder wird \PLength{refwidth} auf Null belassen und die Breite und Ausrichtung der Geschäftszeile über die Option \Option{refline} überlassen, oder sowohl \PLength{refwidth} als auch \PLength{refhpos} werden vom Anwender vorgegeben. % \EndIndex{PLength}{refwidth}% \EndIndex{PLength}{refhpos}% \begin{Declaration} \PLength{refaftervskip} \end{Declaration} \BeginIndex{PLength}{refaftervskip}% Diese Pseudolänge gibt den vertikalen Abstand an, der nach der Geschäftszeile eingefügt werden soll. Der Wert wird in den vordefinierten \File{lco}-Dateien eingestellt. Er wirkt sich unmittelbar auf die Höhe des Textbereiches der ersten Seite aus. Der typische Wert liegt zwischen einer und zwei Zeilen. % \EndIndex{PLength}{refaftervskip}% \begin{Declaration} \Variable{yourref}\\ \Variable{yourmail}\\ \Variable{myref}\\ \Variable{customer}\\ \Variable{invoice} \\ \Variable{date} \end{Declaration} \BeginIndex{Variable}{yourref}% \BeginIndex{Variable}{yourmail}% \BeginIndex{Variable}{myref}% \BeginIndex{Variable}{customer}% \BeginIndex{Variable}{invoice}% \BeginIndex{Variable}{date}% \looseness=-1 Bei diesen Variablen handelt es sich um typische Felder der Geschäftszeile. Ihre Bedeutung entnehmen Sie bitte \autoref{tab:scrlttr2.variables} auf \autopageref{tab:scrlttr2.variables}. Jede dieser Variablen hat außerdem eine vordefinierte Bezeichnung, die in \autoref{tab:scrlttr2.reflineTerm} zu finden ist. Die Breite des Feldes, das zu jeder Variablen in der Geschäftszeile gehört, passt sich automatisch der Bezeichnung und dem Inhalt an.% \EndIndex{Variable}{yourref}% \EndIndex{Variable}{yourmail}% \EndIndex{Variable}{myref}% \EndIndex{Variable}{customer}% \EndIndex{Variable}{invoice}% \EndIndex{Variable}{date}% % \begin{Declaration} \Variable{place}\\ \Variable{placeseparator} \end{Declaration} \BeginIndex{Variable}{place}% \BeginIndex{Variable}{placeseparator}% Wie bereits in der Einleitung dieses Abschnitts erwähnt wurde, kann die Geschäftszeile auch entfallen. Dies geschieht, wenn alle Variablen der Geschäftszeile bis auf das Datum leer sind. In diesem Fall wird statt des Datums\Index{Datum} der Inhalt der Variablen für den Ort\Index{Ort}, \Variable{place}, und der Inhalt der Variablen für das Trennzeichens\Index{Trennzeichen}, \Variable{placeseparator}, gefolgt vom Inhalt der Variablen für das Datum, \Variable{date}, gesetzt. Der vordefinierte Inhalt des Trennzeichens ist dabei ein Komma gefolgt von einem nicht umbrechbaren Leerzeichen. Ist der Ort leer, so wird auch das Trennzeichen nicht gesetzt. Der vordefinierte Inhalt der Variablen \Variable{date} ist \Macro{today}\IndexCmd{today} und hängt von der Einstellung der Option \Option{numericaldate} ab (siehe \autoref{sec:scrlttr2.headoptions}, \autopageref{desc:scrlttr2.option.numericaldate}). % \EndIndex{Variable}{place}% \EndIndex{Variable}{placeseparator}% % \EndIndex{}{Geschäftszeile}% \begin{table} \centering \caption[{Vordefinierte Bezeichnungen der Variablen der Geschäftszeile}]{Vordefinierte Bezeichnungen der typischen Variablen der Geschäftszeile unter Verwendung sprachabhängiger Anweisungen} \begin{tabular}{lll} \toprule Name & Bezeichnung & bei deutscher Sprache \\ \midrule \Variable{yourref} & \Macro{yourrefname} & Ihr Zeichen \\ \Variable{yourmail} & \Macro{yourmailname} & Ihr Schreiben vom \\ \Variable{myref} & \Macro{myrefname} & Unser Zeichen \\ \Variable{customer} & \Macro{customername} & Kundennummer \\ \Variable{invoice} & \Macro{invoicename} & Rechnungsnummer \\ \Variable{date} & \Macro{datename} & Datum \\ \bottomrule \end{tabular} \label{tab:scrlttr2.reflineTerm} \end{table} \subsection{Titel und Betreff} \label{sec:scrlttr2.titleSubject} \begin{samepage} Geschäftsbriefe werden häufig mit einem Betreff versehen. Dieser Betreff beschreibt kurz den Vorgang oder den Aspekt, um den es sich handelt. In der Regel sollte ein Betreff möglichst kurz und prägnant sein und nicht über mehrere Zeilen gehen. Neben dem Betreff kann ein Brief auch noch mit einem Titel versehen werden. Von einem Titel wird normalerweise nur bei Mahnungen, Rechnungen und Ähnlichem Gebrauch gemacht. \end{samepage} \begin{Declaration} \Variable{title} \end{Declaration} \BeginIndex{Variable}{title}% Bei \Class{scrlttr2} kann ein Brief zusätzlich mit einem Titel\Index{Titel} versehen werden. Der Titel wird zentriert in der Schriftgröße \Macro{LARGE} nach der Geschäftszeile ausgegeben. Die für das Element \PValue{title} als \Macro{normalcolor}\Macro{sffamily}\Macro{bfseries} voreingestellte Schriftart kann mit Hilfe der Schnittstelle, die in \autoref{sec:maincls.font} beschrieben ist, geändert werden. Dabei sind auch Größenangaben erlaubt. \begin{Example} Angenommen, Sie schreiben eine Mahnung. Sie setzen einen entsprechenden Titel: \begin{lstlisting} \setkomavar{title}{Mahnung} \end{lstlisting} Damit sollte der Empfänger die Mahnung auch als solche erkennen. \end{Example} % \EndIndex{Variable}{title} \begin{Declaration} \Variable{subject}\\ \Variable{subjectseparator} \end{Declaration} \BeginIndex{Variable}{subject}% \BeginIndex{Variable}{subjectseparator}% Soll ein Betreff\Index{Betreff} gesetzt werden, so geschieht dies, indem man den Inhalt der Variablen \Variable{subject} entsprechend festlegt. Je nach Einstellung der Option \Option{subject} kann dem Betreff eine Bezeichnung vorangestellt werden und die vertikale Position des Betreffs verändert werden (siehe \autoref{sec:scrlttr2.headoptions}, \autopageref{desc:scrlttr2.option.subject}). Die vordefinierte Bezeichnung ist \autoref{tab:scrlttr2.subjectTerm} zu entnehmen. Der vordefinierte Inhalt des Trennzeichens\Index{Trennzeichen} \Variable{subjectseparator} besteht aus einem Doppelpunkt, gefolgt von einem Leerzeichen. % \begin{table} \centering \caption{Vordefinierte Bezeichnungen der Variablen für den Betreff} \begin{tabular}{lll} \toprule Name & Bezeichnung \\ \midrule \Variable{subject} & \Macro{usekomavar*}\PParameter{subjectseparator}% \texttt{\%} \\ & \texttt{\quad}% \Macro{usekomavar}\PParameter{subjectseparator} \\ \Variable{subjectseparator} & \Macro{subjectname} \\ \bottomrule \end{tabular} \label{tab:scrlttr2.subjectTerm} \end{table} Der Betreff wird in einer eigenen Schriftart\Index{Schriftart} gesetzt. Um diese zu ändern, verwenden Sie die Benutzerschnittstelle, die in \autoref{sec:maincls.font} beschrieben ist. Für das Element \PValue{subject} ist \Macro{normalfont}\Macro{normalcolor}\Macro{bfseries} die in der Klasse \Class{scrlttr2} voreingestellte Schrift. \begin{Example} Angenommen, Sie schreiben als Vereinsvorstand einen Brief an ein anderes Mitglied des Vorstands, in dem es um vereinsinterne Angelegenheiten geht. Sie wollen dabei im Betreff deutlich machen, dass es sich um einen Betreff handelt, ohne dass Sie eine Bezeichnung mit Trennzeichen voranstellen. Sie könnten das wie folgt lösen: \begin{lstlisting} \setkomavar{subject}[Betrifft ]{% vereinsinterne Angelegenheiten} \end{lstlisting} Sie können es sich aber auch einfach machen: \begin{lstlisting} \setkomavar{subject}[]{% Betrifft vereinsinterne Angelegenheiten} \end{lstlisting} Außerdem wollen Sie, dass der Betreff nicht nur fett sondern auch in einer serifenlosen Schriftart erscheint: \begin{lstlisting} \addtokomafont{subject}{\sffamily} \end{lstlisting} Wie Sie sehen, ist das alles ganz einfach zu lösen. \end{Example} % \EndIndex{Variable}{subject}% \EndIndex{Variable}{subjectseparator}% \subsection{Andere Angaben} \label{sec:scrlttr2.other} Sie finden hier Variablen und Einstellungen, die keinem anderen Bereich der Briefeinleitung zugeordnet werden konnten, die jedoch in diesen Abschnitt gehören. \begin{Declaration} \PLength{tfoldmarkvpos}\\ \PLength{bfoldmarkvpos} \end{Declaration} \BeginIndex{PLength}{tfoldmarkvpos}% \BeginIndex{PLength}{bfoldmarkvpos}% Die Briefklasse \Class{scrlttr2} kennt insgesamt drei Faltmarken\Index{Faltmarken}\Index{Falzmarken}. Die mittlere Faltmarke dient der Halbierung der Seite und wird deshalb immer in der Mitte der Seitenhöhe ausgegeben. Die Position der oberen Faltmarke vom oberen Papierrand wird von der Pseudolänge \PLength{tfoldmarkvpos} bestimmt, die der unteren Faltmarke von der Pseudolänge \PLength{bfoldmarkvpos}. Diese beiden Faltmarken dienen nicht der exakten Drittelung des Papiers beim Falten. Stattdessen soll das Papier mit ihrer Hilfe so geknickt werden können, dass das Feld für die Anschrift in einem Fensterbriefumschlag zu sehen ist. Die Einstellungen sind daher in den vordefinierten \File{lco}-Dateien unterschiedlich gewählt. Eine Besonderheit stellt \Option{DINmtext} dar. Hier wird zwingend von einem Briefumschlag im Format C6/5 (auch "`C6 lang"' genannt) ausgegangen. Briefe, die mit dieser Option erstellt wurden, sind weder für Umschläge im Format C5 noch für Umschläge im Format C4 geeignet. % \EndIndex{PLength}{tfoldmarkvpos}% \EndIndex{PLength}{bfoldmarkvpos}% \begin{Declaration} \PLength{foldmarkhpos} \end{Declaration} \BeginIndex{PLength}{foldmarkhpos}% Diese Pseudolänge gibt den Abstand aller drei Faltmarken\Index{Faltmarken}\Index{Falzmarken} vom linken Papier\-rand an. Normalerweise sind das 3{,}5\Unit{mm}. Sie können den Wert aber auch in Ihrer eigenen \File{lco}-Datei ändern, falls Sie einen Drucker verwenden, der einen breiteren unbedruckbaren linken Rand hat. Die obere und die untere Faltmarke sind übrigens 2\Unit{mm} lang, während die mittlere Faltmarke 4\Unit{mm} lang ist. Die Dicke aller drei Faltmarken ist mit 2\Unit{pt} gleich groß. Derzeit ist es nicht vorgesehen, die Länge oder Dicke der Faltmarken zu ändern. Ob die Faltmarken überhaupt gesetzt werden, hängt außerdem von der Option \Option{foldmarks} ab (siehe \autoref{sec:scrlttr2.headoptions}, \autopageref{desc:scrlttr2.option.foldmarks}). % \EndIndex{PLength}{foldmarkhpos}% \begin{Declaration} \Variable{frombank} \end{Declaration} \BeginIndex{Variable}{frombank}% Diese Variable nimmt derzeit eine Sonderstellung ein. Sie wird intern bisher nicht verwendet. Sie kann jedoch beispielsweise vom Anwender verwendet werden, um die Bankverbindung\Index{Bankverbindung} in das Absenderergänzungsfeld oder den Fuß zu setzen. % \EndIndex{Variable}{frombank}% \begin{Declaration} \Macro{nexthead}\Parameter{Aufbau}\\ \Macro{nextfoot}\Parameter{Aufbau} \end{Declaration} \BeginIndex{Cmd}{nexthead}% \BeginIndex{Cmd}{nextfoot}% In den meisten Fällen werden die Möglichkeiten, die \Class{scrlttr2} über Optionen und Variablen für die Gestaltung des Seitenkopfes\Index{Kopf} und -fußes\Index{Fuß} auf Folgeseiten\Index{Folgeseite} zur Verfügung stellt, vollkommen ausreichen. Dies umso mehr, als man zusätzlich mit \Macro{markboth} und \Macro{markright} die Möglichkeit hat, die Angaben zu ändern, die \Class{scrlttr2} in den Kopf setzt. Folgeseiten im Sprachgebrauch dieser Anleitung sind alle Briefseiten abgesehen von der ersten. Die Anweisungen \Macro{markboth}\IndexCmd{markboth} und \Macro{markright}\IndexCmd{markright} können insbesondere mit dem Seitenstil\Index{Seitenstil} \PValue{myheadings}\IndexPagestyle{myheadings} verwendet werden. Bei Verwendung des Paketes \Package{scrpage2}\IndexPackage{scrpage2} gilt dies natürlich auch für den Seitenstil \PValue{scrheadings}\IndexPagestyle{scrheadings}. Dort steht außerdem die Anweisung \Macro{markleft}\IndexCmd{markleft} zur Verfügung. In einigen wenigen Fällen will man jedoch den Kopf oder Fuß der Folgeseiten ähnlich dem Briefbogen freier gestalten. In diesen Fällen muss auf die vordefinierten Möglichkeiten, die per Option \Option{pagenumber}\IndexOption{pagenumber} (siehe \autoref{sec:scrlttr2.layout}, \autopageref{desc:scrlttr2.option.pagenumber}) auswählbar sind, verzichtet werden. Stattdessen gestaltet man sich den Kopf und Fuß der Folgeseiten frei. Dazu definiert man den gewünschten \PName{Aufbau} mit der Anweisung \Macro{nexthead} beziehungsweise \Macro{nextfoot}. Innerhalb von \Macro{nexthead} und \Macro{nextfoot} können beispielsweise mit Hilfe der \Macro{parbox}-Anweisung (siehe \cite{latex:usrguide}) mehrere Boxen neben- und untereinander gesetzt werden. Einem versierten Anwender sollte es so möglich sein, eigene Seitenköpfe und -füße zu gestalten. Natürlich kann im Argument \PName{Aufbau} mit Hilfe von \Macro{usekomavar} auch auf Variablen zugegriffen werden. % \EndIndex{Cmd}{nexthead}% \EndIndex{Cmd}{nextfoot}% \section{Der Text} \label{sec:scrlttr2.text} Im Gegensatz zu einem Artikel, einem Bericht oder einem Buch besitzt ein Brief normalerweise keine Kapitel- oder Abschnittseinteilung, keine Gleitumgebungen mit Tabellen und Abbildungen, weder Inhaltsverzeichnis noch Verzeichnisse für Gleitumgebung, Literatur, Index, Glossary oder Ähnliches. Der Brief"|text besteht im wesentlichen aus einer Anrede und dem eigentlichen Text. Er wird gefolgt von einem Schlussgruß und eventuell einem Nachsatz und verschiedenen Auf"|listungen nach dem Gruß. \subsection{Anrede} \label{sec:scrlttr2.opening} \begin{Explain} Bei maschinell erstellten Briefen wurde früher häufig auf eine Anrede verzichtet. Das lag daran, dass die Möglichkeiten für individualisierte Serienbriefe noch kaum vorhanden waren. Heute sind persönliche Anreden auch bei massenhaft erzeugten Werbebriefen üblich. \end{Explain} \begin{Declaration} \Macro{opening}\Parameter{Anrede} \end{Declaration} \BeginIndex{Cmd}{opening}% Dies ist eine der wichtigsten Anweisungen in \Class{scrlttr2}. Vordergründig wird damit die \PName{Anrede}\Index{Anrede} des Briefes, beispielsweise "`Sehr geehrte Frau \dots"', gesetzt. Tatsächlich setzt diese Anweisung aber auch die Faltmarken\Index{Faltmarken}\Index{Falzmarken}, den Briefkopf\Index{Briefkopf}, die Anschrift\Index{Anschrift}, die Absenderergänzung, die Geschäftszeile\Index{Geschäftszeile}, den Titel\Index{Titel}, den Betreff\Index{Betreff} und den Seitenfuß\Index{Kopf}\Index{Fuß}, also die Mehrzahl der Felder, die mit Optionen und Variablen eingestellt werden. Kurz gesagt: ohne Anrede kein Brief. % \EndIndex{Cmd}{opening}% \subsection{Fußnoten} \label{sec:scrlttr2.footnotes} Fußnoten\Index{Fussnoten=Fußnoten} sollte man in Briefen noch sehr viel sparsamer verwenden als in anderen Dokumenten. Dennoch verfügt \Class{scrlttr2} bezüglich der Fußnoten über alle Mechanismen, die in \autoref{sec:maincls.footnotes} auch für die Hauptklassen beschrieben sind. Diese werden daher hier nicht erneut aufgeführt. \subsection{Listen} \label{sec:scrlttr2.lists} Listen\Index{Listen} haben in Briefen die gleiche Berechtigung wie in anderen Dokumenten auch. Deshalb verfügt \Class{scrlttr2} diesbezüglich über dieselben Möglichkeiten, die in \autoref{sec:maincls.lists} auch für die Hauptklassen beschrieben sind. Diese werden daher hier nicht erneut aufgeführt. \subsection{Randnotizen} \label{sec:scrlttr2.marginNotes} Randnotizen\Index{Randnotizen} sind in Briefen eher unüblich. Daher wird in \Class{scrlttr2} die Option \Option{mpinclude} auch nicht aktiv unterstützt. Dennoch verfügt die Klasse bezüglich der Randnotizen über alle Mechanismen, die in \autoref{sec:maincls.marginNotes} auch für die Hauptklassen beschrieben sind. Diese werden daher hier nicht erneut aufgeführt. \subsection{Textauszeichnung} \label{sec:scrlttr2.emphasis} Textauszeichnungen\Index{Schriftart} haben in Briefen denselben Stellenwert wie in anderen Dokumenten. Obwohl leider immer wieder das Gegenteil zu beobachten ist, empfehle ich daher auch in Briefen insbesondere mit aktiven Auszeichnungen eher sparsam umzugehen. Auch Briefe sollen gelesen werden. Ein Brief in dem jedes Wort in einer anderen Schrift erscheint, kann nicht gelesen werden. Die Briefklasse \Class{scrlttr2} verfügt über dieselben Möglichkeiten der Textauszeichnung, die in \autoref{sec:maincls.emphasis} für die Hauptklassen beschrieben sind. Diese werden daher hier nicht erneut aufgeführt. \section{Der Schlussteil} \label{sec:scrlttr2.backend} Der Schlussteil eines Briefes besteht immer aus einer Grußfloskel\Index{Gruß}\Index{Schlussgruß}. Selbst bei maschinell erstellten Briefen ohne Unterschrift\Index{Unterschrift} findet sich diese in der Regel. Manchmal besteht sie dann aus einem Satz wie "`Dieser Brief wurde maschinell erstellt und ist ohne Unterschrift gültig"'. Manchmal wird ein solcher Satz als Signatur\Index{Signatur} verwendet. Auf die Grußformel können noch ein Nachsatz und verschiedene Auf"|listungen folgen. \subsection{Schlussgruß} \label{sec:scrlttr2.closing} Der Schlussgruß\Index{Gruß}\Index{Schlussgruß} eines Briefes besteht aus mehreren Teilen. Neben der Grußformel selbst gibt es noch die Unterschrift und die Signatur, eine Art Erläuterung zur Unterschrift. \begin{Declaration} \Variable{signature} \end{Declaration} \BeginIndex{Variable}{signature}% Die Variable \Variable{signature}\Index{Signatur} nimmt eine Art Erläuterung zur Unterschrift\Index{Unterschrift} auf. Ihr Inhalt ist mit \Macro{usekomavar}\PParameter{fromname} vordefiniert. Eine solche Erläuterung kann auch mehrzeilig sein. Die einzelnen Zeilen sollten dann mit doppeltem Backslash voneinander getrennt werden. Absätze innerhalb der Erläuterung sind jedoch nicht gestattet. % \EndIndex{Variable}{signature}% \begin{Declaration} \Macro{closing}\Parameter{Grußfloskel} \end{Declaration} \BeginIndex{Cmd}{closing}% Mit der Anweisung \Macro{closing} wird nicht nur die \PName{Grußfloskel}\Index{Gruß}\Index{Schlussgruß}, sondern auch der Inhalt der Variablen \Variable{signature} unter den Brief gesetzt. Die \PName{Grußfloskel} kann auch mehrzeilig sein. Die einzelnen Zeilen sollten dann mit doppeltem Backslash voneinander getrennt werden. Absätze innerhalb der \PName{Grußfloskel} sind jedoch nicht gestattet. % \EndIndex{Cmd}{closing}% \begin{Declaration} \PLength{sigindent}\\ \PLength{sigbeforevskip}\\ \Macro{raggedsignature} \end{Declaration} \BeginIndex{PLength}{sigindent}% \BeginIndex{PLength}{sigbeforevskip}% \BeginIndex{Cmd}{raggedsignature}% Grußfloskel\Index{Gruß}\Index{Signatur}\Index{Schlussgruß} und Erläuterung der Unterschrift\Index{Unterschrift} werden innerhalb einer Box gesetzt. Die Breite dieser Box wird durch die längste Zeile innerhalb von Grußfloskel und Erläuterung bestimmt. Die Box wird mit dem durch die Pseudolänge \PLength{sigindent} bestimmen Einzug gesetzt. In den vordefinierten \File{lco}-Dateien ist der Einzug auf 0\Unit{mm} gesetzt. Durch den Befehl \Macro{raggedsignature} wird die Ausrichtung innerhalb der Box bestimmt. In den vordefinierten \File{lco}-Dateien ist die Anweisung entweder auf \Macro{centering} (alle außer \Option{KOMAold}) oder auf \Macro{raggedright} (\Option{KOMAold}) gesetzt. Um innerhalb der Box beispielsweise eine linksbündige oder rechtsbündige Ausrichtung zu erhalten, kann der Befehl in gleicher Weise umdefiniert werden wie \Macro{raggedsection} (siehe das entprechende Beispiel in \autoref{sec:maincls.structure}, \autopageref{desc:maincls.macro.raggedsection}). Zwischen Grußfloskel und Erläuterung wird ein vertikaler Abstand eingefügt, der mit der Pseudolänge \PLength{sigbeforevskip} festgelegt ist. In den vordefinierten \File{lco}-Dateien ist der Wert auf zwei Zeilen eingestellt. In diese Lücke setzen Sie dann Ihre Unterschrift. \begin{Example} Sie schreiben als Vorstand des Vereins "`Rotkehlchen e.\,V."' einen Brief an die Mitglieder. Dabei wollen Sie einerseits nochmals verdeutlichen, dass Sie im Namen des Vorstands schreiben, zum anderen wollen sie ihre Position im Vorstand mit angeben. Dies ist beispielsweise wie folgt möglich: \begin{lstlisting} \setkomavar{signature}{Karl-Heinz zu Krähenfeld\\ {\small (2. Vorsitzender "`Rotkehlchen e.\,V."')}} \closing{Mit freundlichen Grüßen\\ (für den Vorstand)} \end{lstlisting} Natürlich können Sie das Setzen der Variablen \Variable{signature} auch in eine Ihrer privaten \File{lco}-Dateien aufnehmen. Ansonsten empfiehlt es sich, auch diese Variable in der Briefeinleitung (siehe \autoref{sec:scrlttr2.startLetter}) zu setzen. \end{Example} % \EndIndex{PLength}{sigindent}% \EndIndex{PLength}{sigbeforevskip}% \EndIndex{Cmd}{raggedsignature}% \subsection{Nachsatz, Verteiler und Anlagen} \label{sec:scrlttr2.afterClosing} Nach dem Gruß können bei Briefen noch eine ganze Reihe von Angaben folgen. Neben dem Postskriptum gehören dazu vor allem Verteiler und ein Hinweis auf Anlagen. \begin{Explain}% \begin{Declaration} \Macro{ps} \end{Declaration}% \BeginIndex{Cmd}{ps}% Als Briefe noch von Hand geschrieben wurden, war das Postskriptum sehr beliebt. Es handelte sich bei diesen Nachsätzen ursprünglich um Angaben, die im eigentlichen Brief vergessen wurden. Bei Briefen, die mit \LaTeX{} geschrieben werden, ist es natürlich einfach, Vergessenes nachträglich in den Brief einzuarbeiten. Trotzdem ist das Postskriptum noch immer sehr beliebt, kann man damit doch sehr schön noch einmal auf ganz andere äußerst wichtige oder eigentlich ganz unwichtige Dinge hinweisen. \end{Explain} Diese Anweisung schaltet lediglich auf das Postskriptum\Index{Postskriptum} um. Dazu wird ein neuer Absatz begonnen und ein vertikaler Abstand -- in der Regel zur Signatur -- eingefügt. Auf die Anweisung \Macro{ps} kann beliebiger Text folgen. Dabei muss der Anwender auch selbst entscheiden, ob er den Nachsatz etwa mit der Abkürzung "`PS:"', die übrigens ohne Punkt gesetzt wird, beginnen will. Die Klasse \Class{scrlttr2} setzt diese Abkürzung weder automatisch noch optional. % \EndIndex{Cmd}{ps} \begin{Declaration} \Macro{cc}\Parameter{Verteiler}\\ \Variable{ccseparator} \end{Declaration} \BeginIndex{Cmd}{cc}% \BeginIndex{Variable}{ccseparator}% Ein \PName{Verteiler}\Index{Verteiler} kann mit der Anweisung \Macro{cc} gesetzt werden. Der \PName{Verteiler} wird der Anweisung dabei als Argument übergeben. Wenn der Inhalt der Variablen \Variable{ccseparator}\Index{Trennzeichen} nicht leer ist, wird dem \PName{Verteiler} die Bezeichnung und der Inhalt dieser Variablen vorangestellt. Der \PName{Verteiler} selbst wird dann um die entsprechende Breite eingerückt ausgegeben. Es empfiehlt sich, den \PName{Verteiler} \Macro{raggedright} zu setzen und die einzelnen Angaben durch doppelten Backslash voneinander zu trennen. \begin{Example} Sie wollen angeben, dass Ihr Brief an alle Vereinsmitglieder und den Vorstand geht: \begin{lstlisting} \cc{% der Vorstand\\ alle Vereinsmitglieder} \end{lstlisting} Diese Anweisung schreiben Sie unter die \Macro{closing}-Anweisung aus dem vorherigen Beispiel oder unter ein eventuelles Postskriptum. \end{Example} Vor dem Verteiler wird automatisch ein Abstand eingefügt. % \EndIndex{Cmd}{cc}% \EndIndex{Variable}{ccseparator}% \begin{Declaration} \Macro{encl}\Parameter{Anlagen}\\ \Variable{enclseparator} \end{Declaration} \BeginIndex{Cmd}{encl}% \BeginIndex{Variable}{enclseparator}% Die \PName{Anlagen}\Index{Anlagen} sind genauso aufgebaut wie der Verteiler. Der einzige Unterschied besteht darin, dass die Einleitung hier von der Bezeichnung und dem Inhalt der Variablen \Variable{enclseparator}\Index{Trennzeichen} bestimmt wird. % \EndIndex{Cmd}{encl}% \EndIndex{Variable}{enclseparator}% \section{Unterstützung verschiedener Sprachen} \label{sec:scrlttr2.languages}% \BeginIndex{}{Sprachen}% Die Klasse \Class{scrlttr2} unterstützt viele Sprachen. Dazu zählen Deutsch (\PValue{german} für alte deutsche Rechtschreibung, \PValue{ngerman} für neue deutsche Rechtschreibung und \PValue{austrian} für Österreichisch), Englisch (\PValue{english} ohne Angabe ob amerikanisches oder britisches Englisch, \PValue{american} und \PValue{USenglish} für Amerikanisch, \PValue{british} und \PValue{UKenglish} für Britisch), Französisch, Italienisch, Spanisch, Holländisch, Kroatisch und Finnisch. \subsection{Sprachauswahl und -umschaltung} \label{sec:scrlttr2.switchLanguage} \Index[indexmain]{Sprachumschaltung}\Index[indexmain]{Sprachauswahl} Zwischen den Sprachen wird bei Verwendung des \Package{babel}-Paketes\IndexPackage{babel} (siehe \cite{package:babel}) mit der Anweisung \Macro{selectlanguage}\Parameter{Sprache} gewechselt. Andere Pakete wie \Package{german}\IndexPackage{german} (siehe \cite{package:german}) und \Package{ngerman}\IndexPackage{ngerman} (siehe \cite{package:ngerman}) besitzen diese Anweisung ebenfalls. In der Regel erfolgt eine Sprachumschaltung jedoch bereits aufgrund des Ladens eines solchen Paketes. \iftrue Näheres entnehmen Sie bitte der jeweiligen Anleitung. \fi \begin{Explain} Erlauben Sie mir noch einen Hinweis zu den Sprachumschaltpaketen. Das Paket \Package{french}\IndexPackage{french} (siehe \cite{package:french}) nimmt neben der Umdefinierung der Begriffe aus \autoref{sec:scrlttr2.languageTerms} weitere Änderungen vor. So definiert es etwa die Anweisung \Macro{opening} um. Dabei geht es einfach davon aus, dass \Macro{opening} immer wie in der Standardbriefklasse \Class{letter} definiert ist. Dies ist bei \Class{scrlttr2} jedoch nicht der Fall. Das Paket \Package{french} zerstört deshalb die Definition aus \Class{scrlttr2} und arbeitet nicht korrekt mir \KOMAScript{} zusammen. Ich betrachte dies als Fehler des Paketes \Package{french}. \looseness=1 Wird das Paket \Package{babel}\IndexPackage{babel} für die Umschaltung auf die Sprache \PValue{french} verwendet und ist gleichzeitig das Paket \Package{french} installiert, so ergeben sich eventuell genau dieselben Probleme, weil in diesem Fall Teile des Paketes \Package{french} verwendet werden. % \iftrue % Umbruchergänzungstext Ist das Paket \Package{french} nicht installiert, ergibt sich das Problem mit \Package{babel} nicht. Ebenfalls existiert das Problem normalerweise nicht, wenn man bei \Package{babel} an Stelle der Sprache \PValue{french} eine der Sprachen \PValue{acadian}, \PValue{canadien}, \PValue{francais} oder \PValue{frenchb} verwendet. \fi Mit Babel ab Version 3.7j tritt dieses Problem jedoch nur noch auf, wenn per Option explizit angegeben wird, dass \Package{babel} das \Package{french}-Paket verwenden soll. % \iftrue % Umbruchoptimierungstext Kann nicht sicher gestellt werden, dass nicht eine alte Version von \Package{babel} verwendet wird, so empfehle ich% \iftrue % Umbruchoptimierungstext , mit \begin{lstlisting} \usepackage[...,frenchb,...]{babel} \end{lstlisting} französische Sprache auszuwählen. Gegebenenfalls ist dann aber trotzdem mit \Macro{selectlanguage}\PParameter{french} auf Französisch umzuschalten.% \else \space bei \Package{babel} die Option \Option{frenchb}.% \fi \fi \iftrue \looseness=1 Es ist nicht auszuschließen, dass mit anderen Sprachen und Paketen ähnliche Probleme auf"|treten. Für Deutsch sind solche Probleme jedoch nicht bekannt und treten weder mit den Paketen \Package{german}\IndexPackage{german} oder \Package{ngerman}\IndexPackage{ngerman} noch mit \Package{babel} auf. \fi \end{Explain} \begin{Declaration} \Macro{captionsenglish}\\ \Macro{captionsUSenglish}\\ \Macro{captionsamerican}\\ \Macro{captionsbritish}\\ \Macro{captionsUKenglish}\\ \Macro{captionsgerman}\\ \Macro{captionsngerman}\\ \Macro{captionsaustrian}\\ \Macro{captionsfrench}\\ \Macro{captionsitalian}\\ \Macro{captionsspanish}\\ \Macro{captionsdutch}\\ \Macro{captionscroatian}\\ \Macro{captionsfinnish} \end{Declaration} \BeginIndex{Cmd}{captionsenglish}\BeginIndex{Cmd}{captionsUSenglish}% \BeginIndex{Cmd}{captionsamerican}\BeginIndex{Cmd}{captionsbritish}% \BeginIndex{Cmd}{captionsUKenglish}\BeginIndex{Cmd}{captionsgerman}% \BeginIndex{Cmd}{captionsngerman}% \BeginIndex{Cmd}{captionsaustrian}\BeginIndex{Cmd}{captionsfrench}% \BeginIndex{Cmd}{captionsitalian}\BeginIndex{Cmd}{captionsspanish}% \BeginIndex{Cmd}{captionsdutch}\BeginIndex{Cmd}{captionscroatian}% \BeginIndex{Cmd}{captionsfinnish}% Wird die Sprache eines Briefes gewechselt, so werden über diese Anweisungen die Begriffe aus \autoref{sec:scrlttr2.languageTerms} umdefiniert. Sollte das verwendete Sprachumschaltpaket dies nicht unterstützen, so können obige Anweisungen notfalls auch direkt verwendet werden.% % \EndIndex{Cmd}{captionsenglish}\EndIndex{Cmd}{captionsUSenglish} \EndIndex{Cmd}{captionsamerican}\EndIndex{Cmd}{captionsbritish} \EndIndex{Cmd}{captionsUKenglish}\EndIndex{Cmd}{captionsgerman} \EndIndex{Cmd}{captionsngerman} \EndIndex{Cmd}{captionsaustrian}\EndIndex{Cmd}{captionsfrench} \EndIndex{Cmd}{captionsitalian}\EndIndex{Cmd}{captionsspanish} \EndIndex{Cmd}{captionsdutch}\EndIndex{Cmd}{captionscroatian} \EndIndex{Cmd}{captionsfinnish}% \begin{Declaration} \Macro{dateenglish}\\ \Macro{dateUSenglish}\\ \Macro{dateamerican}\\ \Macro{datebritish}\\ \Macro{dateUKenglish}\\ \Macro{dategerman}\\ \Macro{datengerman}\\ \Macro{dateaustrian}\\ \Macro{datefrench}\\ \Macro{dateitalian}\\ \Macro{datespanish}\\ \Macro{datedutch}\\ \Macro{datecroatian}\\ \Macro{datefinnish} \end{Declaration} \BeginIndex{Cmd}{dateenglish}\BeginIndex{Cmd}{dateUSenglish} \BeginIndex{Cmd}{dateamerican}\BeginIndex{Cmd}{datebritish} \BeginIndex{Cmd}{dateUKenglish}\BeginIndex{Cmd}{dategerman} \BeginIndex{Cmd}{datengerman} \BeginIndex{Cmd}{dateaustrian}\BeginIndex{Cmd}{datefrench} \BeginIndex{Cmd}{dateitalian}\BeginIndex{Cmd}{datespanish} \BeginIndex{Cmd}{datedutch}\BeginIndex{Cmd}{datecroatian}% \BeginIndex{Cmd}{datefinnish}% Je nach verwendeter Sprache werden auch die Datumsangaben\Index{Datum} des nummerischen Datums (siehe Option \Option{numericaldate} in \autoref{sec:scrlttr2.headoptions}) in unterschiedlicher Form umgesetzt. Die genauen Angaben können der \autoref{tab:date} entnommen werden. % \begin{table} \centering \caption{Sprachabhängige Ausgabeformate für das Datum} \begin{tabular}{ll} \toprule \Macro{dateenglish} & 1/12/1993\\ \Macro{dateUSenglish} & 12/1/1993\\ \Macro{dateamerican} & 12/1/1993\\ \Macro{datebritish} & 1/12/1993\\ \Macro{dateUKenglish} & 1/12/1993\\ \Macro{dategerman} & 1.\,12.\,1993\\ \Macro{datengerman} & 1.\,12.\,1993\\ \Macro{dateaustrian} & 1.\,12.\,1993\\ \Macro{datefrench} & 1.\,12.\,1993\\ \Macro{dateitalian} & 1.\,12.\,1993\\ \Macro{datespanish} & 1.\,12.\,1993\\ \Macro{datedutch} & 1.\,12.\,1993\\ \Macro{datecroatian} & 1.\,12.\,1993.\\ \Macro{datefinnish } & 1.\,12.\,1993.\\ \bottomrule \end{tabular} \label{tab:date} \end{table} % \EndIndex{Cmd}{dateenglish}\EndIndex{Cmd}{dateUSenglish} \EndIndex{Cmd}{dateamerican}\EndIndex{Cmd}{datebritish} \EndIndex{Cmd}{dateUKenglish}\EndIndex{Cmd}{dategerman} \EndIndex{Cmd}{datengerman} \EndIndex{Cmd}{dateaustrian}\EndIndex{Cmd}{datefrench} \EndIndex{Cmd}{dateitalian}\EndIndex{Cmd}{datespanish} \EndIndex{Cmd}{datedutch}\EndIndex{Cmd}{datecroatian}% \EndIndex{Cmd}{datefinnish}% \subsection{Sprachabhängige Begriffe} \label{sec:scrlttr2.languageTerms} \Index[indexmain]{sprachabhaengige Begriffe=sprachabhängige Begriffe} Bei \Class{scrlttr2} sind, wie bei \LaTeX{} üblich, sprachabhängige Begriffe in Anweisungen abgelegt, die bei der Sprachumschaltung umdefiniert werden. \begin{Declaration} \Macro{yourrefname}\\ \Macro{yourmailname}\\ \Macro{myrefname}\\ \Macro{customername}\\ \Macro{invoicename}\\ \Macro{subjectname}\\ \Macro{ccname}\\ \Macro{enclname}\\ \Macro{headtoname}\\ \Macro{headfromname}\\ \Macro{datename}\\ \Macro{pagename}\\ \Macro{phonename}\\ \Macro{faxname}\\ \Macro{emailname}\\ \Macro{wwwname}\\ \Macro{bankname} \end{Declaration} \BeginIndex{Cmd}{yourrefname}\BeginIndex{Cmd}{yourmailname} \BeginIndex{Cmd}{myrefname} \BeginIndex{Cmd}{customername}\BeginIndex{Cmd}{invoicename} \BeginIndex{Cmd}{subjectname} \BeginIndex{Cmd}{ccname}\BeginIndex{Cmd}{enclname} \BeginIndex{Cmd}{headtoname}\BeginIndex{Cmd}{headfromname} \BeginIndex{Cmd}{datename}\BeginIndex{Cmd}{pagename} \BeginIndex{Cmd}{phonename}\BeginIndex{Cmd}{faxname} \BeginIndex{Cmd}{emailname}\BeginIndex{Cmd}{wwwname} \BeginIndex{Cmd}{bankname}% Die aufgeführten Anweisungen enthalten die jeweiligen sprachtypischen Begriffe. Diese können für die Realisierung einer weiteren Sprache oder aber auch zur eigenen freien Gestaltung angepasst werden. Wie dies geht, wird in \mbox{\autoref{sec:scrlttr2.defLanguageTerms}} erklärt. Von \Class{scrlttr2} werden die Begriffe erst nach der Präambel, also bei \Macro{begin}\PParameter{document} gesetzt. Sie sind daher vorher nicht verfügbar und können vorher auch nicht geändert werden. In \autoref{tab:scrlttr2.languageTerms} sind die Voreinstellungen für \Option{english} und \Option{ngerman} zu finden. % \begin{table} \begin{minipage}{\textwidth} \centering \caption[Voreinstellungen für die sprachabhängigen Begriffe]{Voreinstellungen für die sprachabhängigen Begriffe bei Verwendung der Sprachen \Option{english} und \Option{ngerman} soweit nicht durch die Pakete zur Sprachumschaltung bereits definiert} \label{tab:scrlttr2.languageTerms} \begin{tabular}{lll} \toprule Anweisung & \Option{english} & \Option{ngerman} \\ \midrule \Macro{bankname} & Bank account & Bankverbindung \\ \Macro{ccname}\footnotemark[1] & cc & Kopien an \\ \Macro{customername} & Customer no. & Kundennummer \\ \Macro{datename} & Date & Datum \\ \Macro{emailname} & Email & E-Mail \\ \Macro{enclname}\footnotemark[1] & encl & Anlagen \\ \Macro{faxname} & Fax & Fax \\ \Macro{headfromname} & From & Von \\ \Macro{headtoname}\footnotemark[1] & To & An \\ \Macro{invoicename} & Invoice no. & Rechnungsnummer \\ \Macro{myrefname} & Our ref. & Unser Zeichen \\ \Macro{pagename}\footnotemark[1] & Page & Seite \\ \Macro{phonename} & Phone & Telefon \\ \Macro{subjectname} & Subject & Betrifft \\ \Macro{wwwname} & Url & URL \\ \Macro{yourmailname} & Your letter of & Ihr Schreiben vom\\ \Macro{yourrefname} & Your ref. & Ihr Zeichen \\ \bottomrule \end{tabular} \deffootnote{1em}{1em}{\textsuperscript{1}}% brutal aber effektiv \footnotetext[1000]{Diese Begriffe werden normalerweise bereits von Sprachpaketen wie \Package{babel} definiert und dann von \Class{scrlttr2} nicht überschrieben. Abweichungen im Wortlaut sind daher möglich und der Anleitung des verwendeten Sprachpakets zu entnehmen.} \end{minipage} \end{table} % \EndIndex{Cmd}{yourrefname}\EndIndex{Cmd}{yourmailname} \EndIndex{Cmd}{myrefname} \EndIndex{Cmd}{customername}\EndIndex{Cmd}{invoicename} \EndIndex{Cmd}{subjectname} \EndIndex{Cmd}{ccname}\EndIndex{Cmd}{enclname} \EndIndex{Cmd}{headtoname}\EndIndex{Cmd}{headfromname} \EndIndex{Cmd}{datename}\EndIndex{Cmd}{pagename} \EndIndex{Cmd}{phonename}\EndIndex{Cmd}{faxname} \EndIndex{Cmd}{emailname}\EndIndex{Cmd}{wwwname} \EndIndex{Cmd}{bankname} \subsection{Definieren und Ändern sprachabhängiger Begriffe} \label{sec:scrlttr2.defLanguageTerms} \Index[indexmain]{Sprachdefinition} \begin{Explain} Normalerweise muss man zur Definition oder zur Änderung sprachabhängier Begriffe die Anweisungen aus \autoref{sec:scrlttr2.switchLanguage} so umdefinieren, dass zusätzlich zu den bisherigen Begriffen auch die neuen oder geänderten definiert werden. Erschwert wird dieses Vorhaben dadurch, dass beim Laden eines Paketes wie \Package{german}\IndexPackage{german} oder \Package{ngerman}\IndexPackage{ngerman} diese Anweisungen von den Paketen erneut definiert werden. Bei den genannten Paketen geschieht dies leider in einer Form, die alle zuvor gemachten Änderungen zunichte macht. Dies ist auch der Grund, warum \Class{scrlttr2} seine eigenen Änderungen mit Hilfe von \Macro{AtBeginDocument} bis \Macro{begin}\PParameter{document}, also bis nach dem Laden aller Pakete, verzögert. Auch der Anwender muss entweder von \Macro{AtBeginDocument} Gebrauch machen oder aber seine Änderungen nicht in die Dokumentpräambel, sondern hinter \Macro{begin}\PParameter{document} einfügen. Die Klasse \Class{scrlttr2} bietet ihm für die Definition selbst einige zusätzliche Anweisungen. \end{Explain} \begin{Declaration} \Macro{providecaptionname}% \Parameter{Sprache}\Parameter{Begriff}\Parameter{Inhalt}\\ \Macro{newcaptionname}% \Parameter{Sprache}\Parameter{Begriff}\Parameter{Inhalt}\\ \Macro{renewcaptionname}% \Parameter{Sprache}\Parameter{Begriff}\Parameter{Inhalt} \end{Declaration} \BeginIndex{Cmd}{providecaptionname}% \BeginIndex{Cmd}{newcaptionname}% \BeginIndex{Cmd}{renewcaptionname}% Mit Hilfe dieser drei Anweisungen ist es möglich, einem \PName{Begriff} in Abhängigkeit der \PName{Sprache} einen \PName{Inhalt} zuzuweisen. Der \PName{Begriff} ist dabei immer ein Makro. Die Arbeitsweise der drei Anweisungen unterscheidet sich je nachdem, ob eine \PName{Sprache} und ein \PName{Begriff} innerhalb der \PName{Sprache} zum Zeitpunkt des Aufrufs bereits definiert ist. Ist eine \PName{Sprache} nicht definiert, so tut \Macro{providecaptionname} nichts weiter, als dies in der \File{log}-Datei zu vermerken. Dabei wird für jede Sprache nur einmal eine entsprechende Information in die \File{log}-Datei geschrieben. Ist die Sprache definiert, enthält aber bisher keinen entsprechenden \PName{Begriff}, so wird er mit dem angegebenen \PName{Inhalt} definiert. Ist der \PName{Begriff} hingegen in der \PName{Sprache} bereits definiert, so wird er nicht umdefiniert, sondern ein entsprechender Hinweis in die \File{log}-Datei geschrieben. Die Anweisung \Macro{newcaptionname} verhält sich etwas anders. Ist bei ihr die \PName{Sprache} nicht definiert, dann wird diese neu definiert, indem eine entsprechende Anweisung (siehe \autoref{sec:scrlttr2.switchLanguage}) definiert wird. Außerdem wird darüber auch in der \File{log}-Datei informiert. Ist die \PName{Sprache} definiert, der \PName{Begriff} in dieser \PName{Sprache} aber noch nicht vorhanden, so wird er mit dem gewünschten \PName{Inhalt} definiert. Ist der \PName{Begriff} in der \PName{Sprache} bereits vorhanden, so wird eine Fehlermeldung ausgegeben. Noch einmal anders verhält sich die Anweisung \Macro{renewcaptionname}. Ist die \PName{Sprache} nicht definiert, so wird eine Fehlermeldung ausgegeben. Ist die \PName{Sprache} definiert, der \PName{Begriff} in dieser \PName{Sprache} jedoch nicht, so wird ebenfalls eine Fehlermeldung ausgegeben. Ist der \PName{Begriff} in der \PName{Sprache} definiert, so wird er auf den gewünschten \PName{Inhalt} umdefiniert. Die Klasse \Class{scrlttr2} selbst verwendet \Macro{providecaptionname} um die Begriffe aus \autoref{sec:scrlttr2.languageTerms} zu definieren. \begin{Example} Möchten Sie statt des Eintrags "`Ihr Schreiben vom"' lieber "`Ihre Nachricht vom"' in der Geschäftszeile stehen haben, müssen Sie den Begriff \Macro{yourmailname} wie folgt umdefinieren. \begin{lstlisting} \renewcaptionname{ngerman}{\yourmailname}{% Ihre Nachricht vom} \end{lstlisting} Da mit \Macro{renewcaptionname} nur bereits vorhandene Begriffe in vorhandenen Sprachen umdefiniert werden können, müssen Sie diese Anweisung nach \Macro{begin}\PParameter{document} setzen oder mit Hilfe von \Macro{AtBeginDocument} verzögern. Außerdem werden Sie eine Fehlermeldung erhalten, wenn Sie kein Paket zur Sprachumschaltung auf \PValue{ngerman} verwenden. \end{Example} % \EndIndex{Cmd}{providecaptionname}% \EndIndex{Cmd}{newcaptionname}% \EndIndex{Cmd}{renewcaptionname}% % \EndIndex{}{Sprachen}% \section{Adressdateien und Serienbriefe} \label{sec:scrlttr2.addressFile}% \BeginIndex{}{Adressdatei}\BeginIndex{}{Serienbriefe}% Als besonders lästig wird bei Briefen immer das Eintippen der Adressen und das Erstellen von Serienbriefen betrachtet. Die Klasse \Class{scrlttr2} bietet hierfür wie schon die obsolete Klasse \Class{scrlettr} eine gewisse Unterstützung. Eine stark verbesserte Serienbrief"|funktion ist derzeit in Planung. \begin{Declaration} \Macro{adrentry}\Parameter{Name}\Parameter{Vorname}\Parameter{Adresse}% \Parameter{Tel.}\Parameter{F1}\Parameter{F2}% \Parameter{Kommentar}\Parameter{Kürzel} \end{Declaration} \BeginIndex{Cmd}{adrentry}% Mit der \Class{scrlttr2}-Klasse können Adressdateien\Index[indexmain]{Adressdatei} ausgewertet werden. Dies ist beispielsweise für Serienbriefe sehr nützlich. Eine Adressdatei muss die Endung \File{.adr} haben und besteht aus einer Reihe von \Macro{adrentry}-Einträgen. Ein solcher Eintrag besteht aus acht Elementen und kann beispielsweise wie folgt aussehen: \begin{lstlisting} \adrentry{Maier} {Herbert} {Wiesenweg 37\\ 09091 Blumental} {0\,23\,34 / 91\,12\,74} {Bauunternehmer} {} {kauft alles} {MAIER} \end{lstlisting} Die Elemente fünf und sechs, \PValue{F1} und \PValue{F2}, können frei bestimmt werden. Denkbar wären neben Hinweisen auf das Geschlecht oder akademische Grade auch der Geburtstag oder das Eintrittsdatum in einen Verein. Um das Überschreiben von \TeX- oder \LaTeX-Anweisungen zu vermeiden, ist es empfehlenswert, für \PName{Kürzel} ausschließlich Großbuchstaben zu verwenden. \begin{Example} Herr Maier gehört zu Ihren engeren Geschäftspartnern. Da Sie eine rege Korrespondenz mit ihm pflegen, ist es Ihnen auf Dauer zu mühsam, jedesmal alle Empfängerdaten aufs Neue einzugeben. \Class{scrlttr2} nimmt Ihnen diese Arbeit ab. Angenommen, Sie haben Ihre Kundenkontakte in der Datei \File{partner.adr} gespeichert und Sie möchten Herrn Maier einen Brief schreiben, dann sparen Sie sich viel Tipparbeit, wenn Sie folgendes eingeben: \begin{lstlisting} \input{partner.adr} \begin{letter}{\MAIER} Der Brief ... \end{letter} \end{lstlisting} Achten Sie bitte darauf, dass Ihr \TeX-System auch auf die \File{.adr}-Dateien zugreifen kann, da sonst eine Fehlermeldung von \Macro{input} verursacht wird. Entweder Sie legen die Brief- und Adressdateien im selben Verzeichnis an, oder Sie binden ein Adressverzeichnis fest in Ihr \TeX-System ein. \end{Example} % \EndIndex{Cmd}{adrentry} \begin{Declaration} \Macro{addrentry}\Parameter{Name}\Parameter{Vorname}\Parameter{Adresse}% \Parameter{Telefon}\Parameter{F1}\Parameter{F2}\Parameter{F3}% \Parameter{F4}\Parameter{Kürzel} \end{Declaration} \BeginIndex{Cmd}{addrentry}% Da über die Jahre hinweg immer wieder Klagen aufkamen, dass insgesamt nur zwei freie Felder zu wenig seien, verfügt \Class{scrlttr2} nun alternativ über die Anweisung \Macro{addrentry}. Mit dem zusätzlichen "`\texttt{d}"' im Namen sind hier auch zwei weitere freie Felder hinzugekommen, dafür ist jedoch der Kommentar entfallen. Ansonsten kann die Anweisung genau wie \Macro{adrentry} verwendet werden. In einer \File{adr}-Datei können \Macro{adrentry}"~ und \Macro{addrentry}-Anweisungen nebeneinander verwendet werden. Ich weise jedoch darauf hin, dass Zusatzpakete wie das \Package{adrconv}-Paket von Axel Kielhorn eventuell nicht auf die Verwendung von \Macro{addrentry} ausgelegt sind. Hier muss der Anwender gegebenenfalls selbst entsprechende Erweiterungen vornehmen.% % \EndIndex{Cmd}{addrentry} Neben dem vereinfachten Zugriff auf Kundendaten können die \File{.adr}-Dateien auch für Serienbriefe\Index[indexmain]{Serienbriefe} genutzt werden. So ist es ohne die komplizierte Anbindung an Datenbanksysteme möglich, solche Massenpostsendungen zu erstellen. % \begin{Example} Sie wollen einen Serienbrief an alle Mitglieder Ihres Anglervereins schicken, um zur nächsten Mitgliederversammlung einzuladen. \begin{lstlisting} \documentclass{scrlttr2} \usepackage{ngerman} \usepackage[utf8]{inputenc} \begin{document} \renewcommand*{\adrentry}[8]{% \begin{letter}{#2 #1\\#3} \opening{Liebe Vereinsmitglieder,} unsere nächste Mitgliederversammlung findet am Montag, dem 12.~August 2002, statt. Folgende Punkte müssen besprochen werden... \closing{Petri Heil,} \end{letter} } \input{mitglieder.adr} \end{document} \end{lstlisting} Sind in Ihrer \File{adr}-Datei auch \Macro{addrentry}-Anweisungen enthalten, müssen Sie dafür eine entsprechende Definition vor dem Einladen der Adressdatei ergänzen: \begin{lstlisting} \renewcommand*{\addrentry}[9]{% \adrentry{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#9}% } \end{lstlisting} Bei diesem Beispiel wird kein Gebrauch von dem zusätzlichen freien Feld gemacht und deshalb \Macro{addrentry} mit Hilfe von \Macro{adrentry} definiert. \end{Example} Natürlich kann der Brief"|inhalt auch von den Adressatenmerkmalen abhängig gemacht werden. Als Bedingungsfelder können die frei bestimmbaren Elemente fünf oder sechs eines \Macro{adrentry}-Eintrages genutzt werden. \begin{Example} Angenommen, Sie verwenden das Element fünf, um das Geschlecht eines Vereinsmitgliedes zu hinterlegen (\PValue{m/w}) und das sechste Element weist auf einen Rückstand der Mitgliedsbeiträge hin. Wollen Sie nun alle säumigen Mitglieder anschreiben und persönlich anreden, so hilft Ihnen folgendes Beispiel weiter: \begin{lstlisting} \renewcommand*{\adrentry}[8]{ \ifdim #6pt>0pt\relax % #6 ist ein Betrag (Gleitkommazahl) größer 0. % Es werden also die Säumigen erfasst. \begin{letter}{#2 #1\\#3} \if #5m \opening{Lieber #2,} \fi \if #5w \opening{Liebe #2,} \fi Leider mussten wir feststellen, dass du mit der Zahlung deiner Mitgliedsbeiträge im Rückstand bist. Wir möchten Dich bitten, den offenen Betrag von #6~EUR auf das Vereinskonto einzuzahlen. \closing{Petri Heil,} \end{letter} \fi } \end{lstlisting} \end{Example} Es ist also möglich, den Brieftext auf bestimmte Empfängermerkmale gezielt abzustimmen und so den Eindruck eines persönlichen Schreibens zu erwecken. Die Anwendungsbreite ist lediglich durch die maximale Anzahl von zwei freien \Macro{adrentry}-Elementen beziehungsweise vier freien \Macro{addrentry}-Elementen begrenzt. \begin{Declaration} \Macro{adrchar}\Parameter{Anfangsbuchstaben}\\ \Macro{addrchar}\Parameter{Anfangsbuchstaben} \end{Declaration} \BeginIndex{Cmd}{adrchar}% \BeginIndex{Cmd}{addrchar}% \Index[indexmain]{Adressverzeichnis}\Index[indexmain]{Telefonliste}% Es ist auch möglich, die Informationen einer \File{.adr}-Datei in Adressverzeichnisse oder Telefonlisten umzuwandeln. Sie benötigen dazu zusätzlich das \Package{adrconv}-Paket von Axel Kielhorn (siehe \cite{package:adrconv}). In diesem Paket sind interaktive \LaTeX-Dokumente enthalten, mit deren Hilfe sehr einfach entsprechende Listen erstellt werden können. Damit die Listen alphabetisch sortiert ausgegeben werden, muss bereits die Adressdatei sortiert gewesen sein. Es empfiehlt sich dabei, vor jedem neuen Anfangsbuchstaben eine Anweisung \Macro{adrchar} mit diesem Buchstaben als Argument einzufügen. \Class{scrlttr2} selbst ignoriert diese Anweisung. % \begin{Example} Sie haben folgende, winzige Adressdatei: % In der folgenden lstlisting-Umgebung je nach Umbruchbedarf einzelne % Elemente löschen oder hinzufügen. MICHAEL und GABRIEL sollten jedoch % erhalten bleiben. \begin{lstlisting} \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{K} \adrentry{Kohm}{Markus} {Fichtenstra\ss e 63\\ 68535 Edingen-Neckarhausen} {+49~62\,03~1\,??\,??}{}{} {\"Uberhaupt kein Engel} {KOMA} \adrchar{T} \adrentry{Teufel}{Luzifer} {Hinter der Flamme 1\\ 66666 H\"ollenschlund} {}{}{}{Gefallener Engel ohne Telefon} {LUZIFER} \end{lstlisting} Diese bearbeiten Sie nun unter Verwendung von \File{adrdir.tex} aus \cite{package:adrconv}. Seite~3 des Ergebnisses sieht dann etwa so aus: \begin{center} \setlength{\unitlength}{1mm} \begin{picture}(80,58) \put(0,58){\line(1,0){80}} \put(0,3){\line(0,1){55}} \put(80,3){\line(0,1){55}} \thicklines \put(10,43){\line(1,0){60}} \put(70,46){\makebox(0,0)[r]{\textsf{\textbf{E}}}} \put(10,23){\makebox(0,20)[l]{\parbox{5cm}{\raggedright \textbf{Engel}, Gabriel\\\quad\small Wolke 3\\ \quad 12345 Himmelreich\\ \quad (Erzengel)}}} \put(70,23){\makebox(0,20)[r]{\parbox{2cm}{\raggedright~\\ \small~\\{\footnotesize GABRIEL}\\000\,01\,02\,03}}} \put(10,4){\makebox(0,20)[l]{\parbox{5cm}{\raggedright \textbf{Engel}, Michael\\\quad\small Wolke 3a\\ \quad 12345 Himmelreich\\ \quad (Erzengel)}}} \put(70,4){\makebox(0,20)[r]{\parbox{2cm}{\raggedright~\\ \small~\\{\footnotesize MICHAEL}\\000\,01\,02\,04}}} \qbezier(0,3)(10,6)(40,3)\qbezier(40,3)(60,0)(80,3) \end{picture} \end{center} Dabei wird der Buchstabe in der Kopfzeile von \Macro{adrchar} erzeugt. Siehe dazu die Definition in \File{adrdir.tex}. \end{Example} Näheres zum \Package{adrconv}-Paket ist der zugehörigen Anleitung zu entnehmen. Dort finden Sie auch Angaben darüber, ob die aktuelle Version von \Package{adrconv} bereits mit \Macro{addrentry} und \Macro{addrchar} umgehen kann. Frühere Versionen kannten nur \Macro{adrentry} und \Macro{adrchar}. % \EndIndex{Cmd}{adrchar}\EndIndex{Cmd}{addrchar}% % \EndIndex{}{Adressdatei}\EndIndex{}{Serienbriefe}% \section{Von \Class{scrlettr} nach \Class{scrlttr2}} \label{sec:scrlttr2.fromscrlettr} Bei der Umwandlung eines alten Briefes, der ursprünglich mit \Class{scrlettr}\IndexClass{scrlettr} gesetzt wurde, besteht der erste Schritt darin, die \File{lco}-Datei \Option{KOMAold} als Option bei \Macro{documentclass} anzugeben. Damit sollte die Mehrzahl der Anweisungen der alten Klasse bereits funktionieren. An einigen Stellen wird sich die Ausgabe mit der neuen Klasse trotzdem unterscheiden, weil nun einmal der Satzspiegel der alten Klasse nicht vollständig nachgebildet wird. Dies hat seine Ursache nicht zuletzt darin, dass in der Satzspiegelerstellung von \Class{scrlettr} noch diverse Fehler enthalten waren. So war die Position der Faltmarken beispielsweise von der Höhe der Kopfzeile abhängig, die wiederum von der Größe der Grundschrift abhängig war. Eindeutig ein Designfehler der Klasse \Class{scrlettr}. Keine Kompatibilität wird bezüglich der von \Class{scrlettr} verwendeten Längen erreicht. Wer also in seinem Dokument den Satzspiegel von \Class{scrlettr} verändert hatte, der sollte diese Änderungen entfernen oder auskommentieren. In einigen Fällen führt die Änderung einer Länge oder einer internen Anweisung von \Class{scrlettr} auch zu einer Fehlermeldung, da die entsprechenden Längen oder Anweisungen in \Class{scrlttr2} nicht mehr definiert sind. Versuchen Sie in dem Fall ebenfalls diese Änderungen zu entfernen oder auszukommentieren. Nach dem Wechsel von \Class{scrlettr} zu \Class{scrlttr2} wird der alte Beispielbrief allein schon durch Setzen der Option \Option{KOMAold} verarbeitbar: \begin{lstlisting} \documentclass[10pt,KOMAold]{scrlttr2} \usepackage{ngerman} \name{\KOMAScript{}-Gruppe} \address{Klassengasse 1\\ 12345 \LaTeX{}hausen} \signature{Euer \KOMAScript{}-Team} \begin{document} \begin{letter}{Die \KOMAScript{}-Nutzer\\ Irgendwo\\ weltweit} \opening{Liebe \KOMAScript{}-Nutzer,} das \KOMAScript{}-Team m"ochte Euch mit ein paar Informationen ... \closing{Viel Spa"s} \end{letter} \end{document} \end{lstlisting} Der nächste Schritt kann dann darin bestehen, dass man trotz Verwendung der alten Anweisungen nicht mehr das Layout der alten Klasse nachbilden will. Soll beispielsweise das Layout der Letter-Class-Option \Option{DIN} verwendet werden, so gibt man einfach diese Option zusätzlich und \emph{nach} der Option \Option{KOMAold} an: \begin{lstlisting} \documentclass[10pt,KOMAold,DIN]{scrlttr2} \usepackage{ngerman} \name{\KOMAScript{}-Gruppe} \address{Klassengasse 1\\ 12345 \LaTeX{}hausen} \signature{Euer \KOMAScript{}-Team} \begin{document} \begin{letter}{Die \KOMAScript{}-Nutzer\\ Irgendwo\\ weltweit} \opening{Liebe \KOMAScript{}-Nutzer,} das \KOMAScript{}-Team m"ochte Euch mit ein paar Informationen ... \closing{Viel Spa"s} \end{letter} \end{document} \end{lstlisting} Durch weitere Optionen kann das Aussehen auch weiter beeinflusst werden. Ich empfehle, gleich noch einen Schritt weiter zu gehen. Der letzte Schritt besteht dann darin, alle alten Anweisungen durch die neuen Entsprechungen zu ersetzen und die Option \Option{KOMAold} zu entfernen. Bei der Ersetzung kann es nützlich sein, einen Blick in die Datei \File{KOMAold.lco} zu werfen. In dieser sind die alten Befehle mit Hilfe der neuen Variablen und Anweisungen nachgebildet. \begin{lstlisting} \documentclass{scrlttr2} \usepackage{ngerman} \setkomavar{fromname}{\KOMAScript{}-Gruppe} \setkomavar{fromaddress}{Klassengasse 1\\ 12345 \LaTeX hausen} \setkomavar{signature}{Euer \KOMAScript{}-Team} \let\raggedsignature=\raggedright \begin{document} \begin{letter}{Die \KOMAScript-Nutzer\\ Irgendwo\\ weltweit} \opening{Liebe \KOMAScript-Nutzer,} das \KOMAScript-Team m"ochte Euch mit ein paar Informationen ... \closing{Viel Spa"s} \end{letter} \end{document} \end{lstlisting} In diesem Beispiel wurde außerdem von der Möglichkeit Gebrauch gemacht, die Anordnung des Schlussgrußes und der Signatur durch Änderung der Anweisung \Macro{raggedsignature} zu beeinflussen. Dies ist immer dann empfehlenswert, wenn die Signatur erheblich breiter als die Grußfloskel ist.% % \EndIndex{Class}{scrlttr2}\EndIndex{}{Briefe} %%% Local Variables: %%% mode: latex %%% TeX-master: "../guide.tex" %%% End: