\ProvidesFile{scrguide.tex}[1996/11/13 KOMA-Script Anleitung] % % scrguide.tex Copyright (C) 1994-1996 Markus Kohm % % This file is part of the LaTeX2e KOMA-Script-Bundle % % It should be distributed UNCHANGED and together with all other % files in the KOMA-Script-Bundle. The file readme.txt contains a list % of all these files. % % A modified version of this file may be distributed, but it should % be distributed with a DIFFERENT name. Changed files must be % distributed TOGETHER WITH A COMPLETE AND UNCHANGED distribution % of these files. % % See also readme.txt for further information. % % This bundle is written specialy for use at german-language. So the % main documentation is german. Perhaps there'll be a time, you may % get a english documentation. If you want to write it, you may % contact me, see readme.txt. % % % Das ganze jetzt noch einmal kurz auf Deutsch: % % Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. % % Die Datei sollte nur UNVER"ANDERT und zusammen mit allen anderen % Dateien aus dem Paket weitergegeben werden. Die Datei liesmich.txt % enth"alt eine Liste all dieser Dateien. % % Eine ver"anderte Version dieser Datei darf weitergegeben werden, % aber nur, wenn sie einen ANDEREN Namen bekommt. Ver"anderte Dateien % d"urfen nur ZUSAMMEN MIT EINER KOMPLETTEN UND UNVER"ANDERTEN Version % dieser Dateien weitergegeben werden. % % Unter keinen Umst"anden ist erlaubt, durch Weitergabe oder zur Verf"ugung % stellen einer oder mehrerer Dateien aus dem KOMA-Script-Paket einen % wie auch immer gearteten Gewinn zu erzielen. % % Weitere Informationen sind in liesmich.txt zu finden. % % Dieses Paket ist f"ur den deutschen Sprachraum konzipiert. Daher ist % auch diese Anleitung komplett in Deutsch. Vielleicht wird es irgendwann % auch einmal eine englische Dokumentation geben. Wer eine solche % erstellen m"ochte, kann sich gerne an mich wenden. Siehe dazu ebenfalls % liesmich.txt. % \NeedsTeXFormat{LaTeX2e} \documentclass[idxtotoc,bibtotoc,headsepline,normalheadings] {scrreprt}[1996/11/09] \AtBeginDocument{\sloppy} \pagestyle{headings} \usepackage{scrpage}[1994/12/31] \usepackage{scrdate,scrtime}[1995/02/12] \usepackage{german}[1995/01/20] \usepackage{alltt} % aus doc.sty entnommen (+ modifiziert): % ---------------------------------------------------------------------- \providecommand\BibTeX{{\rmfamily B\kern-.05em% \textsc{i\kern-.025em b}\kern-.08em% T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}} % aus ltxguide.cls entnommen (+ modifiziert): % ---------------------------------------------------------------------- \InputIfFileExists{ltxguide.cfg}{}{}% % A declaration of a command, in a box, set out into the margin. % % Unfortunately, there is a bug with this command, which allows page % breaks to happen after a \begin{decl}[DATE]: it is a bug with TeX that % makes it very difficult to get page-breaks correct near marginals, % especially at the end of a paragraph. \newenvironment{decl}% {\par\small\addvspace{4.5ex plus 1ex}% \vskip -\parskip \noindent\hspace{-.75\leftmargini}% \begin{tabular}{|l|}\hline\ignorespaces}% {\\\hline\end{tabular}\nobreak\par\nobreak \vspace{2.3ex}\vskip -\parskip\noindent\ignorespaces} % Various forms of argument: \newcommand{\m}[1]{\mbox{\it #1\/}} \renewcommand{\arg}[1]{{\tt\string{}\m{#1}{\tt\string}}} \newcommand{\oarg}[1]{{\tt[}\m{#1}{\tt]}} % ---------------------------------------------------------------------- % aus ltxdoc.cls entnommen: \newcommand{\parg}[1]{{\tt(}\m{#1}{\tt)}} % ---------------------------------------------------------------------- % aus doc.sty entnommen: \def\dotfill{\leaders\hbox to.6em{\hss .\hss}\hskip 0pt plus 1fill} % ---------------------------------------------------------------------- \newcommand{\purearg}[1]{\string{#1\string}} \newcommand{\script}[1]{{\scshape#1}} \newcommand{\file}[1]{{\ttfamily#1}} \newcommand{\class}[1]{{\sffamily#1}} \newcommand{\package}[1]{{\sffamily#1}} \usepackage{makeidx}\makeindex \newcommand{\Index}[2][textrm]{\index{#2!#1}} \newcommand{\BeginIndex}[2]{\csname Index#1\endcsname[(textit]{#2}\ignorespaces} \newcommand{\EndIndex}[2]{\csname Index#1\endcsname[)textit]{#2}} \def\bslash{\char`\\} \newcommand{\IndexCmd}[2][textrm]{% \Index[#1]{#2=\texttt{\bslash#2}}} \newcommand{\IndexEnv}[2][textrm]{% \Index[#1]{Umgebung>#2=\texttt{#2}}% \Index[#1]{#2=\texttt{#2} (Umgebung)}} \newcommand{\IndexOption}[2][textrm]{% \Index[#1]{Option>#2=\texttt{#2}}% \Index[#1]{#2=\texttt{#2} (Option)}} \newcommand{\IndexPackage}[2][textrm]{% \Index[#1]{package>#2=\package{#2}}% \Index[#1]{#2=\package{#2} (package)}} \usepackage{shortvrb}\MakeShortVerb{\|} \def\VersionDate#1 #2\eol{#1} \def\docdate{\expandafter\expandafter\expandafter\VersionDate% \csname ver@scrguide.tex\endcsname\eol} \begin{document} \title{Das \script{KOMA-Script} Paket} \uppertitleback{Haftungsausschlu"s:\\Es wird keinerlei Haftung "ubernommen f"ur irgendwelche Sch"aden, die aus der Benutzung der Programme des hier beschriebenen Paketes folgen.} \author{Frank Neukam\and Markus Kohm} \date{\docdate} \maketitle \tableofcontents \chapter{Allgemeines} \section{Einleitung} Urspr"unglich erstellt wurde das \script{Script}-Paket von Frank Neukam f"ur \LaTeX~2.09. Ziel war damals ein Style f"ur die Erstellung eines Vorlesungs-Skripts. Zur selben Zeit bekam er Jan Tschicholds Buch "uber Typographie \cite{JanTschichold} in die Hand. Damit stand f"ur Frank fest, da"s es an der Zeit war, endlich ein paar Styles zu erstellen, die auch die europ"aischen Regeln der Typographie und Papierformate ber"ucksichtigen. Version~1.0 seiner Document-Style-Famile \script{Script} ver"offentlichte er am 6.~Juni~1992 per ftp. Die Resonanz darauf war enorm. Irgendwann zwischen Ende 1992 und Anfang 1993 erreichte diese Familie auch meinen Rechner. Nachdem ich bereits vorher mit verschiedenen Document- und Option-Styles experimentiert hatte, stand f"ur mich sofort fest, da"s diese Familie ab sofort als Grundlage f"ur alle meine weiteren T"atigkeiten dienen sollte. Da ich allerdings im Gegensatz zu Frank Neukam nicht das Format DIN A4 bzw. ISO A4 sondern A5 bevorzugte, dauerte es nicht lange, bis ich seine Familie um eine variable Seitengr"o"senoption erweitert hatte. Es folgten andere Erweiterungen und Erg"anzungen. Ich selbst erstellte auch einen Document-Style f"ur eine Literaturgruppe. Im Dezember 1993, als die Versionsvielfalt um sein Paket gerade in ein Chaos auszubrechen drohte, brachte Frank Neukam die Version~2.0 heraus. Wie jeder wei"s, folgte kurz darauf in Punkto \LaTeX\ ein Quantensprung. Die Rufe nach einer neuen, angepa"sten Version wurden laut. Kurz darauf war der erste schnelle Hack in Umlauf, der \script{Script~2.0} als \script{Script~2.0e} f"ur \LaTeXe\ verf"ugbar machte. Nun bin ich ein ewiger --- wenn auch sehr chaotischer --- Perfektionist, der mit solchen Notl"osungen nie ganz zufrieden ist. Ich wollte eine L"osung, die sowohl m"oglichst konform zu \script{Script~2.0} als auch zu \LaTeXe\ ist. Also machte ich mich an die Arbeit. Die erste Version des Pakets war am 7.~Juli~1994 fertig. Diese Version schickte ich unverz"uglich an Frank Neukam, um sein OK oder "Anderungsvorschl"age zu bekommen. Unter allen Umst"anden wollte ich ein neues Versionschaos vermeiden. Inzwischen hatte ich auch schonmal Kontakt zu Frank, der \script{KOMA-Script} dabei abgesegnet hat. Jedenfalls sah ich mich gezwungen, meine Version unter anderem Namen und --- aufgrund der vielen Nachfragen --- m"oglichst rasch zu ver"offentlichen. Daraufhin jagte eine Korrektur die n"achste. Von Anfang an hatte ich den Ehrgeiz gehabt, ebenfalls ein vollst"andiges Paket und wenn irgend m"oglich mit Hilfe von \package{doc/docstrip} zu erstellen. Nachdem Axel Kielhorn Anfang Dezember 1994 die bisher vermi"ste letter-class beigesteuert hatte, machte ich mich also an den letzten Schritt, der hiermit vollendet sein sollte. Weite Teile dieser Anleitung sind direkt Frank Neukams Anleitung zu \script{Script~2.0}\Index{Script 2.0} entnommen. Bis auf weiteres erkl"are ich mich f"ur \script{KOMA-Script} verantwortlich. Inzwischen stecken einige hundert Stunden Arbeit in dem gesamten Paket. Dennoch ist es noch lange nicht perfekt oder auch nur vollkommen fehlerfrei. Alle Fehlermeldungen und Verbesserungs- sowie Erweiterungsvorschl"age k"onnen entweder an eine meiner \mbox{e-mail}-Adressen, in der news-group de.comp.tex oder an meine Postanschrift gerichtet werden: \begin{labeling}[:]{{\sfb Gelbe Post}} \item[\sfb MausNet] Markus Kohm @ KA2 \item[\sfb Gelbe Post] Markus Kohm, Augartenstra"se 29, 76137 Karlsruhe \end{labeling} \section{Danksagung} Ich m"ochte an dieser Stelle eigentlich nur einen explizit nennen. Ich danke Frank Neukam f"ur seine Document-Style-Familie \script{Script}. Ohne die M"uhe, die er sich einmal gemacht hat, g"abe es auch dieses Paket nicht. Im "ubrigen danke ich allen, die bei der Entwanzung und Verbesserung mitgeholfen haben. Dank geb"uhrt auch dem \LaTeX-Team und Dante; ersteren f"ur die notwendige Erneuerung, letzteren f"ur den CTAN-Server, "uber den ich das Paket verbreiten darf. Diese Anleitung wurde von Harald Sommerfeldt "uberarbeitet und um einige Teile erg"anzt, dem ich hierf"ur ebenfalls herzlich danke. \section{Rechtliches} Die Weitergabe und Benutzung dieses Paketes ist erlaubt, soweit diese zu den f"ur \LaTeX\ "ublichen Bedingungen erfolgt. Dies bedeutet insbesondere, da"s sich niemand an diesem Paket bereichern darf! Das Paket darf auch nur in \emph{vollst"andiger} Form weitergegeben werden. "Anderungen an einzelnen Dateien sind erlaubt, wenn diese dokumentiert und die betroffenen Dateien umbenannt werden. Es mu"s dennoch immer eine unver"anderte Version im Paket enthalten sein. Ich lehne jegliche Haftung f"ur Sch"aden, die aus der Verwendung des Paketes oder eines Teils daraus resultieren, ab. Die Verwendung geschieht ausschlie"slich auf eigene Gefahr des Anwenders. Zwar bem"uhe ich mich immer, m"oglichst wenig Fehler in meine Werke einzubauen, aber leider ist Fehlerfreiheit nahezu unm"oglich. So kann es immer zu unerw"unschten Effekten kommen. \section{Kompatibilit"at zu den Originalclasses} \Index[(]{Script 2.0} Alle Befehle, die in den zugrundeliegenden Standard-classes vorhanden sind, sind auch im \script{KOMA-Script}-Paket enthalten. Es wurden allerdings einige weitere Befehle hinzugef"ugt. Einige Befehle verhalten sich auch etwas anders als bei den Standard-classes. Dennoch sollte es m"oglich sein, jedes Dokument, das f"ur die Standard-classes geschrieben wurde, auch mit den classes aus dem \script{KOMA-Script}-Paket zu bearbeiten. Gegen"uber den Document-Styles aus der \script{Script~2.0} Familie wurden nur wenige "Anderungen im Befehlsumfang vorgenommen. Einige wenige Befehle, die meiner Meinung nach eher Optionen sein sollten, wurden zu Optionen. Im Kompatibilit"atsmodus f"ur \LaTeX~2.09 sind diese Befehle aber noch vorhanden. Die Zuordnung zwischen Standard-class und \script{KOMA-Script}-class zeigt Tabelle \ref{TAB:Zuordnung}. \Index[)]{Script 2.0} \begin{table} \begin{center} \DeleteShortVerb{\|} \begin{tabular}{|c||c|c|} \hline Standard-class & \script{Script 2.0}-Style & \script{KOMA-Script}-class \\\hline article & script\_s & scrartcl \\ report & script & scrreprt \\ book & script & scrbook \\ letter & script\_l & scrlettr \\\hline \end{tabular} \MakeShortVerb{\|} \caption{\label{TAB:Zuordnung}% Zuordnung von Standard-class bzw. \script{Script~2.0}-Style zu \script{KOMA-Script}-class.} %\Index{Script 2.0} \end{center} \end{table} \chapter{Das neue Layout} \section{Die neuen Fonts} \begin{decl}|\sfb|\end{decl}% \BeginIndex{Cmd}{sfb} "Uberall, wo fr"uher Extended Boldface verwendet wurde (also in allen "Uberschriften, im Inhaltsverzeichnis und im |description| Environment), wird jetzt standardm"a"sig ein neuer Font benutzt, n"amlich Sans Serif Bold Extended (|\sffamily\bfseries|). Es handelt sich dabei um eine serifenlose Schrift in halbfetter Ausf"uhrung, die durch den Befehl |\sfb| nach dem alten Auswahlverfahren selektiert wird. So wie alle anderen Befehle nach dem alten Auswahlverfahren (|\rm|, |\sl|, |\sf|, |\tt|, |\it|, |\bf|, |\em|) sollte auch |\sfb| eigentlich nicht mehr verwendet werden. Zu beachten ist lediglich, da"s bei den CM-Fonts als kleinste Gr"o"se ein 10pt-Font zur Verf"ugung steht; wird z.\,B. mittels |\tiny\sfb| eine kleinere Schrift gew"unscht, so wird automatisch die normale Extended Boldface eingestellt. \EndIndex{Cmd}{sfb} \section{Der Satzspiegel} \subsection{Grundlegendes} Der Satzspiegel definiert die Gr"o"se des bedruckten Bereichs einer Seite\footnote{Im folgenden auch "`Textbereich"' genannt; Kopfzeile, Fu"szeile und Randnoten z"ahlen jedoch nicht dazu.} und dessen Positionierung auf der Seite; seine Breite ist abh"angig von der gew"ahlten Schriftart und "~gr"o"se (optimale Lesbarkeit ist bei ca. 60--70 Zeichen pro Zeile gegeben). Bei seiner Konstruktion ist besonders auf die Seitenproportionen (Verh"altnis von Breite zu H"ohe) sowie auf seinen Stand auf der Seite zu achten. Jan Tschichold hat in dem in der Einleitung angegebenen Buch \cite{JanTschichold} eine Konstruktion vorgeschlagen, die einfach durchf"uhrbar ist und bei jedem Seitenverh"altnis des gew"ahlten Papierformats (also auch bei dem "`unklassischen"' ISO/DIN A4-Format mit dem Seitenverh"altnis 1:$\sqrt{2}$, von dem in allen \script{KOMA-Script}-Haupt-classes normalerweise ausgegangen wird) sehr ansprechende Ergebnisse liefert. Dies liegt wohl in der Hauptsache daran, da"s hier der Satzspiegel die gleichen Seitenverh"altnisse wie die zu bedruckende Seite selbst aufweist; auch die R"ander stehen in einer sehr einfachen Relation zueinander (innerer zu "au"serer bzw. oberer zu unterer Rand verhalten sich wie 1:2; bei einseitigem Druck, also ohne die |twoside|-Option, sind innerer und "au"serer Rand gleich gro"s). \subsection{Konstruktion} Die Konstruktion basiert auf einer Einteilung der Breite und H"ohe der Seite in $n$ gleiche Teile. Das Ergebnis ist je eine L"angenangabe f"ur die Horizontale --- im folgenden mit HLE (horizontale L"angeneinheit) abgek"urzt --- und die Vertikale (VLE). \begin{description} \item[Beispiel: ] F"ur eine DIN A4-Seite (210 mm $\times$ 297 mm) ergibt sich bei Zehnteilung der Seite ($n=10$) f"ur die horizontale L"angeneinheit HLE = 210 mm $\div$ 10 = 21 mm und f"ur die vertikale L"angeneinheit VLE = 297 mm $\div$ 10 = 29.7 mm. \end{description} \noindent Nun wird bei doppelseitigem Druck einfach der innere Rand\footnote{Es ist hier der effektiv sichtbare Rand gemeint, nicht die odd- bzw. evensidemargin-Einstellung; diese Gr"o"sen werden intern so errechnet, da"s eben genau der gew"unschte Rand sichtbar ist.} auf eine Breite von 1 HLE und der "au"sere Rand auf 2 HLE gesetzt. Soll einseitig gedruckt werden, so wird sowohl der innere als auch der "au"sere Rand auf 1.5 HLE eingestellt. Analog dazu wird ein oberer Rand von 1 VLE und ein unterer Rand von 2 VLE freigelassen. F"ur den Textbereich bleibt so eine Fl"ache von $(n-3)$ HLE Breite mal $(n-3)$ VLE H"ohe. Randbemerkungen ("`marginal notes"') stehen im "au"seren Rand und sind auf eine Breite von 1.5 HLE (bei Verwendung der |twoside|-Option) bzw. 1 HLE (sonst) begrenzt. \begin{description} \item[Beispiel: ] Bei Sechsteilung der Seite ($n=6$) sind der linke und rechte Rand zusammen 3 HLE und der Textbereich ebenfalls $6-3=3$ HLE breit. Das gleiche gilt f"ur die vertikalen Gr"o"sen. Damit ist bei einer Sechsteilung der Seite der Textbereich genau halb so breit und hoch wie die gesamte Seite. \end{description} \noindent Die \TeX-Forderung, da"s die Textbereichsbreite (|\textwidth|)\IndexCmd{textwidth} ein Vielfaches der Zeichenbreite der \texttt{Typewriter}-Schrift sein soll, wird durch die beschriebene exakte Konstruktion nicht erf"ullt. Sie wird allerdings selbst von den Original-Styles nicht eingehalten und ist nur bei komplett in \texttt{Typewriter}-Schrift geschriebenen Zeilen von Belang. In Abschnitt~\ref{AREASET} wird eine M"oglichkeit aufgezeigt, wie z.\,B. f"ur Programmlistings der Satzspiegel doch noch der |\tt|-Schrift angepa"st werden kann. Die zweite Regel der Satzspiegelkonstruktion, da"s |\textheight|\IndexCmd{textheight} (die H"ohe des Textbereiches) gleich |\topskip|\IndexCmd{topskip} vermehrt um ein ganzzahliges Vielfaches des Grundlinienabstandes (|\baselineskip|)\IndexCmd{baselineskip} sein soll, wurde jedoch befolgt. Damit wird erreicht, da"s bei komplett mit Flie"stext gef"ullten Seiten (also Seiten ohne "Uberschriften, Tabellen, \emph{displayed material} o."a.) die Abs"atze nicht auseinandergezogen werden m"ussen, um zu gew"ahrleisten, da"s die unterste Zeile mit dem unteren Rand des Textbereichs zusammenf"allt. Der Satzspiegel kann dadurch maximal eine knappe Zeile h"oher werden als dies bei einer exakten Konstruktion der Fall gewesen w"are. \subsection{Auswahl des gew"unschten Satzspiegels} Man erkennt leicht, da"s f"ur kleine $n$ auch der Textbereich im Verh"altnis zur Seitengr"o"se klein ist, und f"ur sehr gro"se $n$ der Textbereich die Seite nahezu ausf"ullt (Randbemerkungen sind bei $n$ gr"o"ser als 12 mangels Platz kaum noch m"oglich bzw. sinnvoll umbrechbar). So l"a"st sich mit lediglich einer Gr"o"se der Satzspiegel in weiten Grenzen ver"andern, und man hat au"serdem noch die Garantie, da"s er immer optimal konstruiert ist. Optional l"a"st sich noch ein Bindungs-Korrektur-Ma"s \emph{BCOR} (f"ur binding-correction) angeben, so da"s bei der Satzspiegelkonstruktion be"-r"uck"-sich"-tigt wird, da"s ein Teil der Seite durch Heftung oder Bindung nicht sichtbar ist oder abgefr"ast wird. Die Seite wird dazu um \emph{BCOR} schm"aler betrachtet, als sie wirklich ist, der Satzspiegel auf dieser Basis berechnet, und anschlie"send der innere Rand um dieses St"uck vergr"o"sert. \begin{description} \item[Beispiel: ] Ist durch eine Klebebindung, bei der sich die Seiten nicht mehr bis ganz innen aufschlagen lassen, der sichtbare Bereich der Seite nicht mehr 210 mm breit (ISO/DIN A4), sondern 8 mm weniger, so gibt man f"ur \emph{BCOR} 8 mm an (wie und wo steht weiter unten) und schon steht der Satzspiegel z.\,B. bei einseitigem Druck wieder exakt mittig auf dem sichtbaren Teil der Seite und hat auch die gleichen Proportionen wie dieser (202:297 statt 210:297). \end{description} \begin{decl}|\typearea|\oarg{BCOR}\arg{DIV}\end{decl}% \BeginIndex{Cmd}{typearea} Der Satzspiegel wird durch Angabe des Befehls |\typearea| neu konstruiert. Weil interne Gr"o"sen wie |\oddsidemargin| u."a. ver"andert werden, die nur in der Pr"aambel (dem Teil der Textquelldatei vor |\begin{document}|) modifiziert werden d"urfen, ist auch der |\typearea|-Befehl nur in der Pr"aambel erlaubt. Die Optionalangabe \oarg{BCOR} stellt die gleichnamige Gr"o"se zur Bindungs-Korrektur ein, w"ahrend \arg{DIV} die Rolle des oben genannten Divisors $n$ "ubernimmt. \oarg{BCOR} bedarf einer Ma"seinheit, wobei alle bei \TeX\ erlaubten Einheiten m"oglich sind (pt, mm, cm, in, \dots), \arg{DIV} hingegen mu"s eine ganze Zahl gr"o"ser als 3 sein. Bei Verwendung einer der class \class{scrartcl}, \class{scrreprt} oder \class{scrbook} wird \arg{DIV} nach Tabelle~\ref{DIV1} gew"ahlt (wobei keine Bindungs-Korrektur vorgenommen wird) und der |\typearea|-Befehl durch den |\documentclass|-Befehl automatisch ausgef"uhrt. Dies kommt daher, da"s die classes das package \package{typearea}\IndexPackage{typearea}, das diese Berechnungen durchf"uhrt, automatisch einliest. \begin{table} \begin{center} \DeleteShortVerb{\|} \begin{tabular}{|c|c|} \hline Textfontgr"o"se & {\em DIV} \\ \hline 10pt & 8 \\ 11pt & 10 \\ 12pt & 12 \\ \hline \end{tabular} \MakeShortVerb{\|} \caption{\label{DIV1}\arg{DIV}-Voreinstellungen} \end{center} \end{table} Als Anhaltspunkt f"ur die manuelle \arg{DIV}-Einstellung kann Tabelle~\ref{DIV2} dienen. Dabei wurde \emph{BCOR} = 0pt und das Papierformat |a4paper| sowie zweiseitiger Druck zugrundegelegt; die Abstimmung der Textbereichsh"ohe auf den (von der gew"ahlten Schriftgr"o"se abh"angigen) Grundlinienabstand, die die Textbereichsh"ohe nochmals um maximal 14.5~pt $\simeq$ 5.1 mm vergr"o"sern kann, wurde nicht ber"ucksichtigt. \label{DIVoptimal} Will man einen m"oglichst guten Wert f"ur \arg{DIV} w"ahlen, so kann man die Ermittlung auch direkt \script{KOMA-Script} "uberlassen. Dazu verwendet man einfach einen der Werte 1, 2 oder 3. Diese Werte ergeben normalerweise keine sinnvolle Aufteilung, da ja bereits drei Teile f"ur den Rand ben"otigt werden. Stattdessen berechnet \script{KOMA-Script} dann einen passenden Wert. Dazu wird davon ausgegangen, da"s eine optimale Lesbarkeit des Textes bei ca. 69 Zeichen pro Spalte gegeben ist. Gleichzeitig wird daf"ur gesorgt, da"s eine minimale Randbreite nicht unterschritten wird. Neben den Werten 1 bis 3 hat der Wert 0 ebenfalls noch eine Sonderbedeutung. Bei 0 wird der voreingestellte Defaultwert f"ur die Papier- und Schriftgr"o"se verwendet. Existiert ein solcher nicht, so wird ebenfalls ein Wert berechnet. \begin{table} \begin{center} \DeleteShortVerb{\|} \begin{tabular}{|c||c|c|c|c|}\hline & \multicolumn{2}{c|}{Textbereich} & \multicolumn{2}{c|}{R"ander}\\ \emph{DIV}& Breite [mm] & H"ohe [mm] & oben [mm] & innen [mm] \\\hline 6 & 105.00 & 148.50 & 49.50 & 35.00 \\ 7 & 120.00 & 169.71 & 42.43 & 30.00 \\ 8 & 131.25 & 185.63 & 37.13 & 26.25 \\ 9 & 140.00 & 198.00 & 33.00 & 23.33 \\ 10 & 147.00 & 207.90 & 29.70 & 21.00 \\ 11 & 152.73 & 216.00 & 27.00 & 19.09 \\ 12 & 157.50 & 222.75 & 24.75 & 17.50 \\ 13 & 161.54 & 228.46 & 22.85 & 16.15 \\ 14 & 165.00 & 233.36 & 21.21 & 15.00 \\ 15 & 168.00 & 237.60 & 19.80 & 14.00 \\\hline \end{tabular} \MakeShortVerb{\|} \caption{\label{DIV2}Satzspiegelma"se in Abh"angigkeit von \emph{DIV}} \end{center} \end{table} \begin{decl}|DIV|\m{Faktor}\\|DIVcalc|\\|BCOR|\m{Korrektur}\end{decl}% \BeginIndex{Option}{DIV}\BeginIndex{Option}{DIVcalc}\BeginIndex{Option}{BCOR} Die Satzspiegelparameter \m{DIV} und \m{BCOR} k"onnen alternativ auch als Option an die classes \class{scrartcl}, \class{scrreprt} und \class{scrbook} bzw.\ das package \package{typearea} "ubergeben werden; ein expliziter Aufruf von |\typearea| kann dann entfallen. F"ur \m{Faktor} bzw.\ \m{Korrektur} ist hierbei jeweils das gew"unschte Ma"s direkt hinter der Option anzugeben. Ein kleines Beispiel hierzu: \begin{quote}\begin{small}\begin{verbatim} \documentclass[DIV14,BCOR0.5cm]{scrreprt} \end{verbatim}\end{small}\end{quote} Dar"uber hinaus ist noch die Option |DIVcalc|\IndexOption{DIV} m"oglich, mit Hilfe derer daf"ur gesorgt wird, da"s an Stelle von Defaultwerten f"ur |DIV| berechnete Werte verwendet werden. |DIVcalc| entspricht damit weitestgehend |DIV0| (siehe Abschnitt \ref{DIVoptimal}, Seite \pageref{DIVoptimal}). \EndIndex{Option}{DIV}\EndIndex{Option}{DIVcalc}\EndIndex{Option}{BCOR} \EndIndex{Cmd}{typearea} \subsection{Ungew"ohnliche Satzspiegel\label{AREASET}} \begin{decl}|\areaset|\oarg{BCOR}\arg{WIDTH}\arg{HEIGHT}\end{decl}% \BeginIndex{Cmd}{areaset} Wird ein Satzspiegel gew"unscht, der ungew"ohnliche Proportionen hat oder zwar wie oben angegeben konstruiert werden soll, jedoch \emph{exakt} die in der vorstehenden Tabelle aufgef"uhrten Ma"se (ohne die Korrektur auf Vielfache des Grundlinienabstandes) haben soll, so gibt es noch alternativ zu |\typearea|\IndexCmd{typearea} den Befehl |\areaset|, der die Textbereichsbreite auf \arg{WIDTH} und die Textbereichsh"ohe auf \arg{HEIGHT} setzt (jeweils ohne jede nachtr"agliche Korrektur) und die Rand- und Randnoten-Einstellungen so vornimmt, da"s der Textbereich sinnvoll positioniert wird ("ahnlich wie beim |\typearea|-Befehl). Auch die Wirkung der optionalen \oarg{BCOR}-Angabe ist wie schon oben beschrieben. Damit ist es nun sehr einfach m"oglich, z.\,B. genau quadratische oder sehr schmale hohe Satzspiegel zu verwirklichen. Wenn die automatische Positionierung nicht gef"allt, kann diese durch die entsprechenden Befehle nat"urlich auch noch nachtr"aglich ver"andert werden. Weiterhin ist es hiermit m"oglich, die Satzspiegelbreite auf die Breite eines vorgegebenen Textes abzustimmen. Als Beispiel soll, wie weiter oben angek"undigt, der Textbereich der Breite von 30 Zeichen in \texttt{Typewriter}-Schrift angepa"st werden. Eine Befehlsfolge, die dieses durchf"uhrt, w"urde etwa lauten: \begin{quote}\begin{small}\begin{verbatim} \newlength{\thirtytt} \settowidth{\thirtytt}{\texttt{123456789012345678901234567890}} \areaset{\thirtytt}{20cm} % Textbereichsh"ohe: 20cm \end{verbatim}\end{small}\end{quote} \noindent Auch dieser Befehl darf selbstverst"andlich nur in der Pr"aambel auftreten. \EndIndex{Cmd}{areaset} \subsection{Ber"ucksichtigung von Kopf- und/oder Fu"szeile} Manchmal ist es sinnvoll, da"s bei der Konstruktion des Satzspiegels auch die Kopf- und/oder Fu"szeile als zum Textbereich dazugeh"orig betrachtet wird. Dies ist z.\,B. der Fall, wenn der Kolumnentitel wie in dieser Dokumentation durch eine horizontale Linie vom eigentlichen Text getrennt ist und dadurch optisch n"aher an diesen heranr"uckt. \begin{decl}|headinclude|\\|headexclude|\end{decl}% \BeginIndex{Option}{headinclude}\BeginIndex{Option}{headexclude} Bei Angabe der package-Option |headinclude| gilt bei einer nachfolgenden Satzspiegelberechnung mit Hilfe des |\typearea|-\IndexCmd{typearea} oder |\areaset|-Befehls\IndexCmd{areaset} alles, was oben "uber den Textbereich gesagt wurde, f"ur den Textbereich plus Kopfzeile. Nat"urlich existiert auch eine gegenteilige Option |headexclude|. \EndIndex{Option}{headinclude}\EndIndex{Option}{headexclude} \begin{decl}|footinclude|\\|footexclude|\end{decl}% \BeginIndex{Option}{footinclude}\BeginIndex{Option}{footexclude} F"ur Fu"szeilen gibt es die analogen Optionen |footinclude| und |footexclude|. \EndIndex{Option}{footinclude}\EndIndex{Option}{footexclude} Die Optionen k"onnen entweder direkt bei |\documentclass| angegeben werden, oder auch bei |\usepackage|, wenn das \package{typearea}-package \IndexPackage{typearea} explizit eingeladen wird. \Index{Script 2.0} Dadurch, da"s bei \script{KOMA-Script} dieses Verhalten im Gegensatz zu \script{Script~2.0} nicht mehr mit zus"atzlichen Pr"aambel-Befehlen |\headincludeon|\IndexCmd{headincludeon} und |\headincludeoff|\IndexCmd{headincludeoff} bzw.\ |\footincludeon|\IndexCmd{footincludeon} und |\footincludeoff|\IndexCmd{footincludeoff}, sondern mit Optionen geschaltet wird, wird kein expliziter |\typearea|-Befehl \IndexCmd{typearea} mehr ben"otigt. Seit Version 2.2a von \script{KOMA-Script} (Versiondatum [1995/01/25]) k"onnen auch |DIV|\IndexOption{DIV} und |BCOR|\IndexOption{BCOR} per Option angegeben werden. Damit ist der explizite |\typearea|-Befehl kaum noch notwendig. \subsection{Andere Papierformate} F"ur die Einstellung des Papierformats werden bei \script{KOMA-Script} nicht mehr die bei \script{Script~2.0}\Index{Script 2.0} "ublichen Option |DINA3|, |DINA4|, |DINA5|, |DINA6| und |DINA3l|, |DINA4l|, |DINA5l|, |DINA6l|, sondern die bei den Standard-classes "ublichen Optionen |a4paper|, |a5paper|, |letterpaper|, |landscape|, \dots\ verwendet. Im Gegensatz zu den gleichnamigen Optionen der Standard-classes werden allerdings keine starren Satzseitenspiegel daraus berechnet, sondern mit Hilfe des |typearea|-packages Satzseitenspiegel nach den oben genannten Regeln. Sollen nun andere, nicht im \package{typearea} package\IndexPackage{typearea} enthaltene Papierformate verwendet werden, so mu"s daf"ur auch kein eigenes package mehr erstellt werden. F"ur kleine, einmalige "Anderungen kann das Papierformat explizit "uber die L"angenvariablen |\paperwidth|\IndexCmd{paperwidth} und |\paperheight|\IndexCmd{paperheight} angegeben werden. In diesem Fall mu"s der Satzseitenspiegel anschlie"send mit dem |\typearea|-Befehl% \IndexCmd{typearea} oder dem |\areaset|-Befehl\IndexCmd{areaset} berechnet werden. Es ist aber auch m"oglich weitere Optionen in eine Datei \file{typearea.cfg}% \index{typeareacfg=\file{typearea.cfg}} zu schreiben. Eine solche Option kann dann wie die Standardoptionen verwendet werden. \begin{decl}|\SetDIVList|\arg{list}\end{decl}% \BeginIndex{Cmd}{SetDIVList} Au"ser der Seitengr"o"se kann f"ur jede Option oder auch generell ein von der Schriftgr"o"se abh"angiger \emph{DIV}-Faktor definiert werden. Dazu definiert man mit dem Befehl |\SetDIVList| eine entsprechende Liste. Die Liste besteht aus einer Reihe von Werten in geschweiften Klammern, die einfach aneinandergereiht wird. Der Wert ganz links ist f"ur \mbox{10pt-}, der n"achste Wert f"ur \mbox{11pt-}, der dritte f"ur 12pt-Schrift usw. Wird keine Liste mit |\SetDIVList| gesetzt, so entspricht dies |\SetDIVList{{8}{10}{12}}|. Ist f"ur eine Schriftgr"o"se kein Standardwert gesetzt, so wird statt dessen 10 genommen. \begin{description} \item[Beispiel 1: ] Ein Gedichtb"andchen soll im ISO/DIN A5-Format gedruckt werden. Dazu gen"ugt nun die Angabe von |a5paper| als Option, z.\,B.: \begin{quote}\begin{small} |\documentclass[a5paper]{scrreprt}| \end{small}\end{quote} \item[Beispiel 2: ] Der Textbereich eines Zeitplanes im ISO/DIN A4 \emph{Quer}format soll exakt 270~mm mal 190~mm gro"s sein. Dies wird erreicht durch die Angabe von \begin{quote}\begin{small} |\documentclass[a4paper]{scrreprt}|\\ |\areaset{270mm}{190mm}| \end{small}\end{quote} und einer (systemabh"angigen) Anweisung an den Druckertreiber, im Querformat zu drucken. \item[Beispiel 3: ] Beim Gedichtb"andchen aus Beispiel~1 soll zus"atzlich eine Abfr"asung von 1,5~mm ber"ucksichtigt werden. Dazu mu"s der Satzspiegel nochmal neu konstruiert werden, z.\,B. mit \begin{quote}\begin{small} |\documentclass[a5paper,DIV12,BCOR1.5mm]{scrreprt}| \end{small}\end{quote} \item[Beispiel 4: ] Es soll auf Endlospapier mit den Ma"sen $8\frac{1}{4}$~inch mal 12~inch gedruckt werden, und auch dort soll der Satzspiegel ordentlich aussehen. Mit den Befehlen \begin{quote}\begin{small} |\paperwidth 8.25in|\\ |\paperheight 12in|\\ |\typearea{10}| \end{small}\end{quote} wird dies erreicht. Druckt man "ofters auf Endlospapier, so empfiehlt es sich, diese Anweisungen in eine eigene Option in \file{typearea.cfg}\index{typeareacfg=\file{typearea.cfg}} zu schreiben, die man dann einfach z.\,B. mit \begin{quote}\begin{small} |\documentclass[endlos]{scrreprt}| \end{small}\end{quote} verwenden kann. Soll zus"atzlich das Argument \arg{DIV} des |\typearea|-Befehls\IndexCmd{typearea} abh"angig von der gew"ahlten Schriftgr"o"se sein, so f"ugt man zus"atzlich noch einen |\SetDIVList|-Befehl zu. Der Eintrag in \file{typearea.cfg} k"onnte dann so aussehen: \begin{quote}\begin{small} |\DeclareOption{endlos}|\\ | {\setlength\paperheight {8.25in}%|\\ | \setlength\paperwidth {12in}%|\\ | \SetDIVList{{8}{10}{12}}}| \end{small}\end{quote} \end{description} \EndIndex{Cmd}{SetDIVList} \subsection{Einbindung der Befehle zur Satzspiegeleinstellung} Im Gegensatz zu den Document-Styles aus der \script{Script~2.0}-Famile \Index{Script 2.0}ist die Satzseitenspiegelberechnung in den classes des \script{KOMA-Script}-Pakets nicht mehr direkt enthalten. Statt dessen wird von den classes einfach das \package{typearea}-package\IndexPackage{typearea} angefordert, in dem diese Berechnungen stattfinden. Die Schriftgr"o"se wird aus den entsprechenden Optionendateien der Standard-classes gelesen. Da die letter-class \class{scrlettr} einen besonderen und vor allem festen Satzspiegel besitzt, wurde bei ihm auf die Einbindung des |typearea|-packages verzichtet. Es sollte dann auch \emph{keinesfalls} mit |\usepackage{typearea}| nachgeladen werden. Hingegen sollte es problemlos sein, das |typearea|-package auch zusammen mit anderen classes, z.\,B. den Standard-classes, zu verwenden, die von keinem festen Layout ausgehen. Damit wird die Satzseitenspiegelberechnung auch f"ur jene classes verf"ugbar. Im Kompatibilit"atsmodus sind die Befehle |\headincludeon|\IndexCmd{headincludeon} und |\headincludeoff|\IndexCmd{headincludeoff} bzw. |\footincludeon|\IndexCmd{footincludeon} und |\footincludeoff|\IndexCmd{footincludeoff} weiterhin vorhanden. \section{Sonstige "Anderungen} \subsection{Default-Fontgr"o"se} Wird in der Definition der Document-class nichts anderes angegeben, so wird standardm"a"sig als Textfont der 11pt-Font verwendet (wie z.\,B. in dieser Dokumentation). Eine Ausnahme hiervon bildet wieder die \class{scrlettr}-class, bei der ohne Optionsangabe die 12pt-Schrift benutzt wird. Bei den Standard-classes werden hingegen normalerweise 10pt-Fonts verwendet. \subsection{Kapitel"uberschriften und Numerierung\label{KAPITELUEBERSCHRIFT}} Kapitel"uberschriften in den classes \class{scrbook} und \class{scrreprt} werden ohne die bei \class{book} und \class{report} "ublichen eigenen Zeilen f"ur das Wort "`Kapitel"' und die Kapitelnummer gesetzt, sondern wie bei "Uberschriften niedrigerer Priorit"at mit der Kapitelnummer direkt vor der eigentlichen "Uberschrift. Da hierdurch ein Anhang leicht f"ur ein normales Kapitel gehalten werden kann (er unterscheidet sich von diesen ja nur durch die Art der Numerierung), ist es empfehlenswert, ihn mit |\part*{Anhang}| deutlich vom Rest des Dokumentes abzusetzen. \begin{decl}|bigheadings|\\|normalheadings|\\|smallheadings|\end{decl} \BeginIndex{Option}{bigheadings} \BeginIndex{Option}{normalheadings} \BeginIndex{Option}{smallheadings} Die "Uberschriften werden sowohl bei den Standard-Classes als auch bei \script{KOMA-Script} normalerweise recht gro"s gesetzt. Es gibt offenbar viele Leute, denen das nicht gef"allt. Insbesondere bei kleinen Papiergr"o"sen sind die gro"sen "Uberschriften eher st"orend. Deshalb habe wurden die drei Optionen |bigheadings|, |normalheadings| und |smallheadings| implementiert. "Uber diese ist es m"oglich drei verschiedene Gr"o"senabstufungen der "Uberschriften einzustellen. Voreingestellt ist |bigheadings|, wobei auch hierbei die Kapitel"uberschrift (nur bei \class{scrbook} und \class{scrreprt}) zus"atzlich um eine Stufe gegen"uber Version 2.2g (Versionsdatum [1996/01/14]) verringert wurde (siehe auch Abschnitt \ref{SECTFONT} auf Seite \pageref{SECTFONT}). \EndIndex{Option}{smallheadings} \EndIndex{Option}{normalheadings} \EndIndex{Option}{bigheadings} \begin{decl}|\raggedsection|\end{decl} \BeginIndex{Cmd}{raggedsection} Seit Version 2.2h werden alle "Uberschriften ohne Trennung gesetzt. Verwantwortlich ist daf"ur der Befehl |\raggedsection|. Will man Trennungen in "Uberschriften erlauben, so kann man dies z.\,B. mit dem Befehl \begin{quote}\begin{verbatim} \let\raggedsection\relax \end{verbatim}\end{quote} erreichen. Normalerweise ist |\raggedsection| mit |\raggedright|\IndexCmd{raggedright} identisch. \EndIndex{Cmd}{raggedsection} \begin{decl}|pointednumbers|\\|pointlessnumbers|\end{decl} \BeginIndex{Option}{pointednumbers} \BeginIndex{Option}{pointlessnumbers} Im Gegensatz zu fr"uheren Versionen von \script{KOMA-Script} und auch \script{Script~2.0}\Index{Script 2.0} steht nach einfachen Abschnittsnummern ab der Version 2.2c (Versionsdatum [1995/05/25]) nun kein Punkt mehr (einheitlich: 1, 1.1, 1.2.3 usw., siehe \cite[Seite~18, Regel~5]{Duden}), wenn ausschlie"slich mit arabischen Ziffern numeriert wird. Werden bei der Numerierung auch r"omische Zahlen bzw. Buchstaben verwendet, so steht nach allen Abschnittsnummern ein Punkt (einheitlich: I., I.1., A., A.1.1. usw., siehe \cite[Seite~18, Regel~6]{Duden}). Dies gilt selbstverst"andlich auch f"ur Eintr"age in Kolumnentitel und Inhaltsverzeichnis. "Uber die Optionen |pointednumbers| und |pointlessnumbers| kann jedoch die Numerierung nach Duden abgeschaltet werden. Statt dessen wird dann bei |pointednumbers| immer und bei |pointlessnumbers| nie ein abschlie"sender Punkt gesetzt. Die Optionen heben sich \emph{nicht} gegenseitig auf! \EndIndex{Option}{pointlessnumbers} \EndIndex{Option}{pointednumbers} Zu beachten ist noch, da"s die korrekte Verwendung des Punktes beim ersten \LaTeX-Lauf noch nicht sichergestellt werden kann. \subsection{Kolumnentitel und Pagina} Die \class{scrbook}-class benutzt als Default den Pagestyle |headings|, der in den Kopfteil der Seiten das aktuelle Kapitel (linke Seiten) bzw. den aktuellen Abschnitt (rechte Seiten) schreibt (sog. lebender Kolumnentitel bzw. running head). Weiterhin wird eine Seitennummer in den Fu"sbereich der Seite gesetzt (sog. Pagina). \class{scrreprt} und \class{scrartcl} stellen standardm"a"sig |plain| als Pagestyle ein, jedoch sind nat"urlich auch hier |headings|, |myheadings| und |empty| verf"ugbar. Beim Brief stehen teilweise andere Seitenstile zur Auswahl, die in Abschnitt~\ref{PAGESTYLES} behandelt werden. Normalerweise werden Kolumnentitel und Pagina zentriert; wurde jedoch die Option |twoside| angegeben, so wird beides an den "au"seren Rand der Seite gesetzt. Bei \class{scrbook} ist |twoside| standardm"a"sig gesetzt. Die Definitionen der Pagestyles |headings|, |myheadings| und |plain|, sowie die Befehle zum automatischen Setzen der Kolumnentitel durch Befehle wie |\section| oder |\tableofcontents| wurden dahingehend ver"andert, da"s die Kolumnentitel mit normaler Gro"s-Klein-Schreibung (vorher alles gro"s), standardm"a"sig in \textsl{slanted} (vorher \textit{Italics}) und bei Kapiteln ohne das Wort CHAPTER bzw. KAPITEL gesetzt werden. Die Seitennummer wurde generell aus der Kopfzeile in die sonst leere Fu"szeile verbannt. Diese Ma"snahmen haben neben der besseren Lesbarkeit ("`Inhaltsverzeichnis"' liest sich viel angenehmer als "`INHALTSVERZEICHNIS"') vor allem den Vorteil, da"s nun auch wesentlich l"angere Abschnitts-"Uberschriften in die Kopfzeile passen ohne abgeschnitten zu werden. \begin{decl}|headsepline|\\|headnosepline|\\ |footsepline|\\|footnosepline|\end{decl}% \BeginIndex{Option}{headsepline}\BeginIndex{Option}{headnosepline} \BeginIndex{Option}{footsepline}\BeginIndex{Option}{footnosepline} Wird unter den Kolumnentiteln eine horizontale Linie gew"unscht, so ist auch dies jetzt ohne Probleme m"oglich\label{HEADSEPLINE}: sie l"a"st sich einfach mit der class-Option |headsepline| an- bzw. durch |headnosepline| ausschalten. Das funktioniert nat"urlich nur bei den Pagestyles |headings| und |myheadings|, da ja alle anderen keinen Kolumnentitel generieren. Durch diese Optionen wird auch |headinclude| automatisch sinnvoll miteingestellt, d.h. |headinclude| bei |headsepline| und |headexclude| bei |headnosepline|. Default ist bei \class{scrbook}, \class{scrreprt} und \class{scrartcl} (bei \class{scrlettr} ist wieder alles anders; siehe Abschnitt~\ref{PAGESTYLES}) |headnosepline|. Analog gibt es auch die Optionen |footinclude|, |footexclude| f"ur die Fu"szeilen, wenn man mit den Optionen |footsepline| bzw. |footnosepline| eine Trennlinie "uber der Fu"szeile ein- bzw. ausschaltet. \Index{Script 2.0} Im Kompatibilit"atsmodus sind weiterhin die alten Befehle |\headseplineon| und |\headseplineoff| bzw. |\footseplineon| und |\footseplineoff| verf"ugbar. Da auch im Seitenstil |plain| eine Seitennummer in die Fu"szeile geschrieben wird, erscheint die Trennlinie auch dort. \begin{description} \item[Beispiel: ] In der vorliegenden Dokumentation wurde mit \begin{quote}\begin{small} |\documentclass[headsepline]{...}| \end{small}\end{quote}% der horizontale Strich unter den Kolumnentiteln eingeschaltet (dadurch wurde auch gleichzeitig |headinclude| ausgef"uhrt). \end{description} \EndIndex{Option}{headsepline}\EndIndex{Option}{headnosepline} \EndIndex{Option}{footsepline}\EndIndex{Option}{footnosepline} \subsection{Kleinere kosmetische Ver"anderungen} In Fu"snoten ist ein kleiner horizontaler Bereich (1\,em) nur f"ur die Fu"snotennummer reserviert, der eigentliche Text beginnt also immer erst diesen Abstand vom linken Rand entfernt. Bei mehrzeiligen Fu"snoten werden die Folgezeilen nochmals 0.5\,em links eingezogen. Dadurch setzen sich diese besser voneinander ab. Abs"atze werden ohne vertikalen Zwischenraum und mit einem Einzug von 1\,em (entspricht 1 |\quad|) gesetzt. Obwohl bei \package{german}\IndexPackage{german} ab Version 2.4 |\frenchspacing|\IndexCmd{frenchspacing} mit verwaltet wird, wird dies zus"atzlich eingeschaltet. Es ist jedoch m"oglich, da"s dies in einer der n"achsten Versionen entfernt wird. Bei der |enumerate|-Umgebung\IndexEnv{enumerate} wurde in der zweiten Ebene eine Klammer entfernt, so da"s a) statt (a) geschrieben wird. Weiterhin wurde in der dritten Ebene des |itemize|-Environments\IndexEnv{itemize} der "`$\ast$"' durch ein "`$\triangleright$"' ersetzt (das sieht zumindest f"ur Franks und meinen Geschmack etwas gef"alliger aus). Die Autoren- und Datumsangaben in Titeln erscheinen nicht in |\large|, sondern in |\Large|. In mehrzeiligen Captions (Unterschriften von |table|\IndexEnv{table} bzw.\ |figure|\IndexEnv{figure}) werden die zweiten und folgenden Zeilen so weit links einger"uckt, da"s diese nicht mehr unter "`Abbildung \dots:"', sondern unter dem eigentlichen Text der ersten Zeile beginnen. Es wurden noch etliche weitere Kleinigkeiten im Layout ver"andert, die allerdings dem unge"ubten Auge kaum auf"|fallen werden. So ist etwa der Spaltenabstand im zweispaltigen Satz von 10 pt auf die "ubliche 1 cc verg"o"sert worden (1 Cicero $\simeq$ 12 pt). Will man alles ganz genau wissen, so kann man ja immer noch die jeweilige class- bzw. package-Datei studieren (dazu sollte man allerdings auch die niedrigeren \TeX-Befehle kennen bzw. zuerst die \file{.dtx}-Versionen der Original-classes und -packages durcharbeiten). \chapter{Zus"atzliche Befehle} \section{Die Erweiterungen des Abstracts und der Titelseite} \begin{decl}|abstractoff|\\|abstracton|\end{decl}% \BeginIndex{Option}{abstractoff}\BeginIndex{Option}{abstracton} Bei Abstracts besteht nun die M"oglichkeit, die automatisch erzeugte "Uberschrift (z.\,B. "`Zusammenfassung"') mit der Option |abstractoff| aus- bzw. mit |abstracton| anzuschalten. Voreingestellt ist bei \class{scrartcl} und \class{scrreprt} |abstractoff|. Bei \class{scrbook} gibt es kein Abstract. \EndIndex{Option}{abstractoff}\EndIndex{Option}{abstracton} \begin{decl}|\extratitle|\arg{Schmutztitel}\\ |\titlehead|\arg{Text}\\ |\subject|\arg{Text}\\ |\publishers|\arg{Verlag}\\ |\uppertitleback|\arg{Text}\\ |\lowertitleback|\arg{Text}\\ |\dedication|\arg{Widmung}\end{decl}% \BeginIndex{Cmd}{maketitle} \BeginIndex{Cmd}{extratitle}\BeginIndex{Cmd}{titlehead} \BeginIndex{Cmd}{subject}\BeginIndex{Cmd}{publishers} \BeginIndex{Cmd}{uppertitleback}\BeginIndex{Cmd}{lowertitleback} \BeginIndex{Cmd}{dedication} Der |\maketitle|-Befehl der \script{Script}-Haupt-classes wurde durch die folgenden optionalen Angaben wesentlich erweitert: \begin{itemize} \item |\extratitle| erzeugt eine eigene Seite, auf der der sog. "`Schmutztitel"'\footnote{Fr"uher war der Buchblock oftmals nicht durch einen Buchdeckel vor Verschmutzung gesch"utzt; diese Aufgabe "ubernahm dann die erste Seite des Buches, die meist einen Kurztitel, eben jenen "`Schmutztitel"', trug. Auch heute noch wird gerne eine Extraseite vor dem eigentlichen Haupttitel f"ur Verlagsname, Buchreihennummer o."a. benutzt.} steht. Dieser wird wie normaler Text, also ohne Zentrierung und in normaler Schriftart und "~gr"o"se gesetzt. Dadurch ist dessen Gestaltung v"ollig dem Anwender "uberlassen. Die R"uckseite ist auch im zweiseitigen Druck leer. \item |\titlehead| setzt in den Kopfteil der Haupttitelseite einen zus"atzlicher Text wie z.\,B. eine Institutsadresse. \item |\subject| setzt direkt oberhalb des eigentlichen Titels eine Zusatzangabe (z.\,B. "`Diplomarbeit"') in etwas gr"o"serer Schrift. \item |\publishers| plaziert den Verlagsnamen in den unteren Teil der Haupttitelseite. \item Im zweiseitigen Druck l"a"st sich die R"uckseite des Haupttitels f"ur weitere Informationen (im Beispiel dieser Dokumentation ist dies der Haftungsausschlu"s) nutzen. Dazu setzt |\uppertitleback| einen Text an den oberen Rand der Seite und |lowertitleback| einen Text an den unteren Rand. \item |\dedication| erzeugt eine seperate Widmungsseite, wobei \emph{Widmung} zentriert und in etwas gr"o"serer Schrift gesetzt wird. Wie bei |\extratitle| ist die R"uckseite grunds"atzlich leer. \end{itemize} \begin{description} \item[Beispiel: ] \ \begin{quote}\begin{small}\begin{verbatim} \titlehead{Institut f"ur Nachrichtentechnik \hfill SS1993 \\Hochschulstr.12 \\3456 Unistadt} \subject{Diplomarbeit} \title{Digitale Raumsimulation mit dem DSP56004} \author{Ulrich Ungenannt} \lowertitleback{Diese Diplomarbeit wurde mit dem Textsatzsystem \TeX\ erstellt.} \maketitle \end{verbatim}\end{small}\end{quote} \end{description} \EndIndex{Cmd}{extratitle}\EndIndex{Cmd}{titlehead} \EndIndex{Cmd}{subject}\EndIndex{Cmd}{publishers} \EndIndex{Cmd}{uppertitleback}\EndIndex{Cmd}{lowertitleback} \EndIndex{Cmd}{dedication} \noindent Der Titel (Kurz- oder Haupttitel) beginnt normalerweise auf Seite 1. Durch Angabe einer Zusatzoption (z.\,B. |\maketitle[-1]|) l"a"st sich die Startseite jetzt beliebig festlegen. \EndIndex{Cmd}{maketitle} Da es seit \LaTeXe\ f"ur \class{article} eine Option |titlepage| gibt, die auch in \class{scrartcl} implementiert ist, entf"allt ein \file{sctitle.sty}. \section{Gestaltung des Inhaltsverzeichnisses} Mit Version 2.3h werden zus"atzliche Optionen eingef"uhrt, mit deren Hilfe es M"oglich ist, Einflu"s auf das Inhaltsverzeichnis zu nehmen. Dabei wurden zum einen h"aufig geh"au"serte W"unsche, zum anderen aber auch typographische Aspekte ber"ucksichtigt. So werden Dinge, die ich selbst f"ur weniger sinnvoll halte, weniger gut unterst"utzt. Die zus"atzlichen Optionen f"uhren dazu, da"s einige interne Befehle mit Hilfe der Anweisung \IndexCmd{AtEndOfClass}|\AtEndOfClass| umdefiniert werden. Die Verwendung der Optionen wirkt sich also auf den Speicherverbrauch aus. \begin{decl}|liststotoc|\end{decl} \BeginIndex{Option}{liststotoc} Normalerweise erscheinen Tabellen- und Abbildungsverzeichnis nicht im Inhaltsverzeichnis. In den meisten F"allen wird dies auch so gew"unscht. Ab und zu mag es jedoch sinnvoll sein, diese beiden Verzeichnisse im Inhaltsverzeichnis explizit aufzuf"uhren. "Uber die Option |liststotoc| wird deshalb die Erzeugung der "Uberschriften in \IndexCmd{listoftables}|\listoftables| und \IndexCmd{listoffigures}|\listoffigures|, die "uber die internen Befehle \IndexCmd{lot@heading}|\lot@heading| und \IndexCmd{lof@heading}|\lof@heading| erfolgt, am Ende der Class so umdefiniert, da"s ein Eintrag (ohne Nummer) in das Inhaltsverzeichnis vorgenommen wird. \EndIndex{Option}{liststotoc} \begin{decl}|bibtotoc|\\|bibtotocnumbered|\end{decl} \BeginIndex{Option}{bibtotoc}\BeginIndex{Option}{bibtotocnumbered} Auch das Literaturverzeichnis wird normalerweise nicht im Inhaltsverzeichnis aufgef"uhrt. Mit der Option |bibtotoc| wird daf"ur gesorgt, da"s es ohne Nummer aufgenommen wird. Es gibt jedoch auch Anwender, die das Literaturverzeichnis als eigenst"andiges Kapitel betrachten, das nicht nur im Inhalsverzeichnis erscheinen, sondern auch mit einer Nummer versehen werden soll. Die wird mit der Option |bibtotocnumbered| erreicht. In beiden F"allen wird der interne Befehl \IndexCmd{bib@heading}|\bib@heading| am Ende der Class entsprechend umdefiniert. \EndIndex{Option}{bibtotocnumbered}\EndIndex{Option}{bibtotoc} \begin{decl}|idxtotoc|\end{decl} \BeginIndex{Option}{idxtotoc} Der Index kann auf Wunsch ebenfalls in das Inhaltsverzeichnis aufgenommen werden. Er ist jedoch in keinem Fall ein eigenst"andiges Kapitel, das numeriert werden sollte. Vielmehr dient der Eintrag im Inhaltsverzeichnis eher dazu, darauf hinzuweisen, da"s ein Index existiert. Entsprechend wird "uber die Option |idxtotoc| der interne Befehl \IndexCmd{idx@heading}|\idx@heading| am Ende der Class umdefiniert. \EndIndex{Option}{idxtotoc} \section{Die "`xxxxfont"'-Variablen\label{SECTFONT}} \begin{decl}|\capfont|\\|\caplabelfont|\\ |\descfont|\\|\headfont|\\ |\pnumfont|\\|\sectfont|\end{decl}% \BeginIndex{Cmd}{capfont}\BeginIndex{Cmd}{caplabelfont} \BeginIndex{Cmd}{descfont}\BeginIndex{Cmd}{headfont} \BeginIndex{Cmd}{pnumfont}\BeginIndex{Cmd}{sectfont} Seit der Version~2.0 des \script{Script}-Paketes sind mehrere Variablen zur globalen Schrift\-"an\-de\-rung in Kolumnentiteln, Paginierung, Captions, "Uberschriften und dem |description|-Environment bereitgestellt. Dadurch lassen sich mit einem einzigen Befehl z.\,B. s"amtliche "Uberschriften statt in |\sffamily\bfseries| in \verb|\rmfamily| ausgegeben. Dazu mu"s nur (am besten in der Pr"aambel) die Anweisung |\renewcommand{\sectfont}{\rmfamily}| stehen. Auf die gleiche Art und Weise k"onnen auch die anderen Fonteinstellungen aus Tabelle \ref{TAB::Fonts} ge"andert werden. \begin{table} \begin{center}\small \begin{tabular}{lll} Variable & Wirkung auf: & Default \\\hline |\capfont| & Caption-Texte & |\normalfont| \\ |\caplabelfont| & Caption-Label & |\normalfont| \\ |\descfont| & Item-Texte des {\tt description}-Environments & |\sffamily\bfseries| \\ |\headfont| & Kolumnentitel & |\slshape| \\ |\pnumfont| & Paginierung & |\normalfont| \\ |\sectfont| & S"amtliche "Uberschriften und Titel & |\sffamily\bfseries| \\ \end{tabular} \caption{\label{TAB::Fonts}% Die Befehle zur Fonteinstellung, ihre Bedeutung und Standardeinstellungen} \end{center} \end{table} \noindent Selbstverst"andlich sind nicht nur Fonteinstellungs-, sondern auch Gr"o"sen"anderungsbefehle m"oglich (siehe auch Abschnitt \ref{KAPITELUEBERSCHRIFT} auf Seite \pageref{KAPITELUEBERSCHRIFT}). \EndIndex{Cmd}{capfont}\EndIndex{Cmd}{caplabelfont} \EndIndex{Cmd}{descfont}\EndIndex{Cmd}{headfont} \EndIndex{Cmd}{pnumfont}\EndIndex{Cmd}{sectfont} \section{Die "`marginline"'} \begin{decl}|\marginline|\arg{Randnotiz}\end{decl}% \BeginIndex{Cmd}{marginline} Analog zum |\marginpar|\IndexCmd{marginpar} wurde die |\marginline| eingef"uhrt, die f"ur einzeilige Randnotizen gedacht ist. Bei diesen tritt n"amlich im |twoside|-Modus auf linken Seiten das Problem auf, da"s sie mit |\marginpar| nicht rechtsb"undig gesetzt werden (was sinnvoll w"are), sondern durch den Blocksatz einer nicht vollen Zeile linksb"undig erscheinen. Bei Verwendung von |\marginline| werden einzeilige Texte sinnvoll in den "au"seren Rand gesetzt, was zum Beispiel zum Hervorheben von Querverweisen n"utzlich ist. \EndIndex{Cmd}{marginline} \section{Der "`addchap"'- bzw. "`addsec"'-Befehl} \begin{decl}|\addchap|\oarg{Inhaltsverzeichniseintrag}\arg{"Uberschrift}\\ |\addchap*|\arg{"Uberschrift}\\ |\addsec|\oarg{Inhaltsverzeichniseintrag}\arg{"Uberschrift}\\ |\addsec*|\arg{"Uberschrift}\end{decl}% \BeginIndex{Cmd}{addchap}\BeginIndex{Cmd}{addchap*} \BeginIndex{Cmd}{addsec}\BeginIndex{Cmd}{addsec*} F"ur unnumerierte Abschnitte wie z.\,B. ein Vorwort oder Danksagungen stand bisher nur der |\chapter*|- bzw. |\section*|-Befehl zur Verf"ugung, die allerdings den Nachteil haben, da"s sie zwar das bis auf die Numerierung komplette "Uberschrifts-Layout erzeugen, jedoch weder einen Eintrag ins Inhaltsverzeichnis noch einen Kolumnentitel generieren. Dies mu"ste, falls dies erw"unscht war, nachtr"aglich von Hand durchgef"uhrt werden, was wohl nicht ganz der \LaTeX-Philosophie entspricht. F"ur die oben genannten Anwendungen wurden daher die neuen Befehle |\addchap| und |\addchap*| ("`additional chapter"', bei \class{scrbook} und \class{scrreprt}) sowie |\addsec| und |\addsec*| ("`additional section"', bei \class{scrbook}, \class{scrreprt} und \class{scrartcl}) implementiert, die bis auf die fehlende Numerierung genauso wie der |\chapter|- bzw. |\section|-Befehl (ohne Stern!) arbeiten, also alle Eintr"age an den entsprechenden Stellen erzeugen. Stern-Versionen |\addchap*| bzw. |\addsec*| sind den Stern-Versionen der "ublichen Befehle sehr "ahnlich, nur da"s zus"atzlich die Kolumnentitel gel"oscht werden (geht z.\,B. der zu einem |\chapter*| geh"orende Text "uber mehrere Seiten, so tauchen die -- veralteten! -- Kolumnentitel pl"otzlich wieder auf). Zus"atzlich ist als Optionalargument wie bei den Originalen ein anderer Eintrag ins Inhaltsverzeichnis als die Abschnitts"uberschrift angebbar. \EndIndex{Cmd}{addchap}\EndIndex{Cmd}{addchap*} \EndIndex{Cmd}{addsec}\EndIndex{Cmd}{addsec*} \section{Der "`minisec"'-Befehl} \BeginIndex{Cmd}{minisec} \begin{decl}|\minisec|\arg{"Uberschrift}\end{decl}% Manchmal ist eine Art "Uberschrift w"unschenswert, die zwar etwas hervortritt (etwa durch die Wahl einer anderen Schrift), ansonsten aber eng mit dem nachfolgenden Text zusammenh"angt, also nicht wie bei den "ublichen Sektionierungsbefehlen relativ viel vertikalen Freiraum vor und nach der "Uberschrift l"a"st. \minisec{Wirkung des neuen "`minisec"'-Befehls:} Der Befehl |\minisec| ("`minisec"' steht f"ur "`mini-section"') bewirkt nun genau das oben genannte, indem er das Argument in |\sffamily\bfseries| mit einem vertikalen Freiraum von 1.5\,ex vorher und keinem danach setzt. Die obige Zwischen"uberschrift wurde als Beispiel mit |\minisec{Wirkung des ...}| gesetzt. Mini-Sections werden nicht mit ins Inhaltsverzeichnis aufgenommen. Da von vorneherein keine Numerierung vorgesehen ist, existiert auch keine Version mit Stern von diesem Befehl. Genauso wie |\marginline|, |\addchap|, |\addsec| und die Titelseitenerweiterungen existiert |\minisec| nicht in der \class{scrlettr}-class. \EndIndex{Cmd}{minisec} \section{Das "`labeling"'-Environment} \BeginIndex{Env}{labeling} \begin{decl}|\begin{labeling}|\oarg{Trennzeichen}\arg{l"angster Titel}\\ |\item|\oarg{Titel} \ldots \\ | |\vdots \\ |\end{labeling}|\end{decl}% \begin{labeling}{Wirkung:} \item[Wirkung:] Wie in dieser tabellarischen Aufstellung, die auch gleichzeitig wieder ein Beispiel f"ur die Wirkung des Environments ist, setzt |labeling| Text wie in einem normalen Absatz, nur da"s zus"atzlich ein Titel vorangestellt werden kann (in diesem Fall "`Wirkung"'). Pro Titel sind, wie hier vorgef"uhrt, mehrere Abs"atze m"oglich, um auch umfangreichere Texte "ubersichtlich gliedern zu k"onnen. \item[Syntax:] |labeling| ist ein gew"ohnliches Environment mit einer Zusatzangabe plus einem Optionalargument. Dabei ist \arg{l"angster Titel} das l"angste |\item|-""Argu"-ment inklusive allen eventuellen Schrift"anderungsbefehlen. Wird kein Trennzeichen ben"otigt, so kann das optionale Argument \oarg{Trennzeichen} weggelassen werden. \item[Beispiel:] Die Standardform eines mathematischen Beweises wird folgenderma"sen erzeugt: \begin{quote}\begin{small}\begin{verbatim} \begin{labeling}[:]{\sfb Auss.} \item[\sfb Vor.] $x$ sei ... \item[\sfb Auss.] Es gilt ... \item[\sfb Bew.] Nach Satz ... \end{labeling} \end{verbatim}\end{small}\end{quote} Dies bewirkt die Ausgabe: \begin{labeling}[:]{\sfb Auss.} \item[\sfb Vor.] $x$ sei \dots \item[\sfb Auss.] Es gilt \dots \item[\sfb Bew.] Nach Satz \dots \end{labeling} \end{labeling} \EndIndex{Env}{labeling} \chapter{Erweiterung der Internationalisierung} \Index[(]{CJK} Werner Lemberg\footnote{e-mail: \texttt{a7621gac@awiuni11.bitnet}} bem"angelte zurecht, da"s die Standardnamen wie |\figurename| etc. nicht immer ausreichend sind, da manche Sprachen Z"ahlw"orter vor oder nach dem jeweiligen Z"ahler einf"ugen m"ussen (man denke da sogar im Deutschen an "`Abbildung~1"' und "`Erste Abbildung"'). Desweiteren werden bei manchen Sprachen die Zwischenr"aume anders gesetzt bzw. sogar ganz unterdr"uckt. Werner hat deshalb das CJK-Paket entwickelt. Dabei wird eine Unterteilung in drei Ebenen eingef"uhrt. Um verschiedene Sprachen zu implementieren, kann jede dieser Ebenen getrennt ver"andert werden. Ebene~1 besteht aus den hinl"anglich bekannten Makros wie |\figurename| und alle weiteren Makros, die z.\,B. |german.sty| modifiziert. Desweiteren k"onnen die Makros |\sectfont| etc. etwaige zus"atzliche Fonts aktivieren. Ebene~2 ist die zus"atzliche Adaptierung von den Z"ahlern selbst (|\thesection| k"onnte z.\,B. chinesische Schriftzeichen anstelle von arabischen Ziffern ansprechen). Die allgemeinste Form der dritten Ebene besteht aus den Makros |\chaptermarkformat|, |\sectionmarkformat|, |\subsectionmarkformat|, |\partformat|, |\chapterformat|, |\figureformat|, |\tableformat| und |\captionformat|, welche die "Anderung der Reihenfolge von Z"ahler und Titel sowie die genaue Kontrolle der Zwischenr"aume etc. erm"oglichen. F"ur die g"angigen Sprachen k"onnen alle Makros f"ur die dritte Ebene identisch definiert werden. Bei Verwendung von "`exotischen"' Sprachen, aber auch speziellen Darstellungen in den g"angigen Sprachen k"onnen diese Makros umdefiniert werden. Ab Version 2.2c (Versionsdatum [1995/05/25]) ist \script{KOMA-Script} explizit f"ur die Verwendung von \cite{CJK} vorbereitet\footnote{An dieser Stelle ein Dankesch"on an Werner f"ur die gute Zusammenarbeit}. Dies betrifft allerdings nicht |scrlettr.cls| wohl aber |scrpage.sty| (siehe Abschnitt \ref{SCRPAGE}). \Index[)]{CJK} \iffalse \chapter{Befehls- und Optionen"ubersicht} \section{Optionen} \begin{labeling}{\tt footnosepline} \item[\tt headinclude] \IndexOption{headinclude} \ldots \item[\tt headexclude] \IndexOption{headexclude} \ldots \item[\tt footinclude] \IndexOption{footinclude} \ldots \item[\tt footexclude] \IndexOption{footexclude} \ldots \item[\tt headsepline] \IndexOption{headsepline} \ldots \item[\tt headnosepline] \IndexOption{headnosepline} \ldots \item[\tt footsepline] \IndexOption{footsepline} \ldots \item[\tt footnosepline] \IndexOption{footnosepline} \ldots \item[\tt abstractoff] \IndexOption{abstractoff} \ldots \item[\tt abstracton] \IndexOption{abstracton} \ldots \end{labeling} \section{Befehle} \minisec{Huba} \vspace{0.5em} \begin{labeling}{\tt\bslash areaset\oarg{BCOR}\arg{WIDTH}\arg{HEIGHT}} \item[\tt\bslash typearea\oarg{BCOR}\arg{DIV}] \IndexCmd{typearea} \ldots \item[\tt\bslash areaset\oarg{BCOR}\arg{WIDTH}\arg{HEIGHT}] \IndexCmd{areaset} \ldots \item[\tt\bslash SetDIVList\arg{list}] \IndexCmd{SetDIVList} \ldots \end{labeling} \vspace{1em} \minisec{Huba} \vspace{0.5em} \begin{labeling}{\tt\bslash areaset\oarg{BCOR}\arg{WIDTH}\arg{HEIGHT}} \item[\tt\bslash extratitle\arg{Schmutztitel}] \IndexCmd{extratitle} \ldots \item[\tt\bslash titlehead\arg{Text}] \IndexCmd{titlehead} \ldots \item[\tt\bslash subject\arg{Text}] \IndexCmd{subject} \ldots \item[\tt\bslash publishers\arg{Verlag}] \IndexCmd{publishers} \ldots \item[\tt\bslash uppertitleback\arg{Text}] \IndexCmd{uppertitleback} \ldots \item[\tt\bslash lowertitleback\arg{Text}] \IndexCmd{lowertitleback} \ldots \item[\tt\bslash dedication\arg{Widmung}] \IndexCmd{dedication} \ldots \end{labeling} \vspace{1em} \minisec{Huba} \vspace{0.5em} \begin{labeling}{\tt\bslash areaset\oarg{BCOR}\arg{WIDTH}\arg{HEIGHT}} \item[\tt\bslash sbf] \IndexCmd{sbf} \ldots \item[\tt\bslash capfont] \IndexCmd{capfont} \ldots \item[\tt\bslash caplabelfont] \IndexCmd{caplabelfont} \ldots \item[\tt\bslash descfont] \IndexCmd{descfont} \ldots \item[\tt\bslash headfont] \IndexCmd{headfont} \ldots \item[\tt\bslash pnumfont] \IndexCmd{pnumfont} \ldots \item[\tt\bslash sectfont] \IndexCmd{sectfont} \ldots \item[\tt\bslash marginline] \IndexCmd{marginline} \ldots \item[\tt\bslash addchap(*)] \IndexCmd{addchap}\IndexCmd{addchap*} \ldots \item[\tt\bslash addsec(*)] \IndexCmd{addsec}\IndexCmd{addsec* \ldots \item[\tt\bslash minisec] \IndexCmd{minisec} \ldots \end{labeling} \vspace{1em} \minisec{Huba} \vspace{0.5em} \begin{labeling}{\tt\bslash areaset\oarg{BCOR}\arg{WIDTH}\arg{HEIGHT}} \item[\tt\bslash labeling] \IndexEnv{labeling} \ldots \end{labeling} %\vspace{1em} \fi \chapter{Die scrlettr-class} \section{Das Original} Immer mehr \LaTeX-Anwender schreiben ihre Briefe ebenfalls mit \TeX. Da jedoch die originale |letter|-class sehr auf das amerikanische Brief"|format zugeschnitten ist, wird diese kaum verwendet. Damit nicht erst lange nach einer brauchbaren letter-class gesucht werden mu"s, ist eine solche ebenfalls im \script{KOMA-Script}-Paket enthalten. Axel Kielhorn hat \file{scrlettr.cls} nach dem Vorbild von \file{script\_l.sty} und den Gegebenheiten von \LaTeXe\ erstellt. Ich selbst habe nur wenige, kleinere "Anderungen vorgenommen, die mehr dazu dienten, die class meinen W"unschen anzupassen. \class{scrlettr} ist nicht unbedingt die beste m"ogliche Wahl, gen"ugt aber den meisten Anspr"uchen und kann zumindest erheblich mehr als \class{letter}. Eine typische Briefeingabedatei hat folgende Form: \begin{quote}\begin{small}\begin{verbatim} \documentclass{letter} \usepackage{german} \name{Name des Absenders} \address{Adresse des Absenders} \signature{Unterschrift} \begin{document} \begin{letter}{Name und Adresse des Empf"angers des ersten Briefes} \opening{Anrede (z.\,B. Sehr geehrte Damen und Herren,)} Brieftext...Brieftext...Brieftext \closing{Gru"sformel (z.\,B. Mit freundlichen Gr"u"sen)} \ps{Postskriptum} \cc{Verteiler (z.\,B. Direktion\\Personalb"uro)} \encl{Anlagen (z.\,B. Lebenslauf\\Lichtbild)} \end{letter} \begin{letter}{Name und Adresse des Empf"angers des zweiten Briefes} ... \end{letter} ... \end{document} \end{verbatim}\end{small}\end{quote} \noindent Die Befehle |\signature|\IndexCmd{signature}, |\closing|\IndexCmd{closing}, |\ps|\IndexCmd{ps}, |\cc|\IndexCmd{cc} und |\encl|\IndexCmd{encl} sind optional. Bei fehlender |\signature|-Angabe wird das |\name|-Argument\IndexCmd{name} als Unterschrift gesetzt. Ist eine gedruckte Unterschrift v"ollig unerw"unscht, so kann diese durch |\signature{}| unterdr"uckt werden. Zu beachten ist weiterhin, da"s Adre"sfeld, Datum usw. erst durch den |\opening|-Befehl\IndexCmd{opening} erzeugt werden (wichtig z.\,B. bei Rechnungen ohne Anrede; dort mu"s dann trotzdem ein leerer |\opening{}|-Befehl stehen). Dies hat weiterhin zur Folge, da"s z.\,B. bei einer zu langen \texttt{backaddress} (s.u.) eine "`Overfull hbox"' in der Zeile gemeldet wird, in der der |\opening|-Befehl steht, obwohl dieser gar nicht die eigentliche Ursache ist. Bei einer solchen Warnung sind also auch alle vorherigen Befehle zu pr"ufen! Um sich bei jedem Brief die wiederholte Eingabe der eigenen Adresse und sonstiger Voreinstellungen zu ersparen, ist es empfehlenswert, diese in eine eigene Datei (z.\,B. \file{privat.sty}) zu schreiben, die dann einfach als package mit |\usepackage{privat}| angegeben wird. Ein Beispiel f"ur eine solche Datei findet sich auf Seite~\pageref{PRIVAT}. \section{Zus"atzliche Eigenschaften der scrlettr-class} Die neue \class{scrlettr}-class ist gegen"uber dem Original wesentlich erweitert und flexibler gestaltet worden. Sie zeichnet vor allem die M"oglichkeit der Benutzung eigener Adre"sdateien und nahezu uneingeschr"ankte Serienbrief"|f"ahigkeit aus. \subsection{Mehrsprachigkeit} Die \class{scrlettr}-class wurde von vorneherein mehrsprachig ausgelegt (Englisch, amerikanisches Englisch, Deutsch, "Osterreichisch, Franz"osisch und Dank Simone Naldi neuerdings auch Italienisch; voreingestellt ist amerikanisches Englisch). \begin{decl}|\captionsenglish|\\|\captionsUSenglish|\\ |\captionsgerman|\\|\captionsaustrian|\\ |\captionsfrench|\\|\captionsitalian|\end{decl}% \BeginIndex{Cmd}{captionsenglish}\BeginIndex{Cmd}{captionsUSenglish} \BeginIndex{Cmd}{captionsgerman}\BeginIndex{Cmd}{captionsaustrian} \BeginIndex{Cmd}{captionsfrench}\BeginIndex{Cmd}{captionsitalian} Zur Einstellung der Sprache der automatisch gesetzten ("`Caption"'-) Texte wie "`Betreff"', "`Seite"', "`Anlagen"' usw. steht eine Reihe von Befehlen, n"amlich |\captionsenglish|, |\captionsUSenglish|, |\captionsgerman|, |\captionsaustrian|, |\captionsfrench| und |\captionsitalian| zur Verf"ugung. \EndIndex{Cmd}{captionsenglish}\EndIndex{Cmd}{captionsUSenglish} \EndIndex{Cmd}{captionsgerman}\EndIndex{Cmd}{captionsaustrian} \EndIndex{Cmd}{captionsfrench}\EndIndex{Cmd}{captionsitalian} \begin{decl}|\dateenglish|\\|\dateUSenglish|\\ |\dategerman|\\|\dateaustrian|\\ |\datefrench|\\|\dateitalian|\end{decl}% \BeginIndex{Cmd}{dateenglish}\BeginIndex{Cmd}{dateUSenglish} \BeginIndex{Cmd}{dategerman}\BeginIndex{Cmd}{dateaustrian} \BeginIndex{Cmd}{datefrench}\BeginIndex{Cmd}{dateitalian} Die Schreibweise des Datums wird wird durch die Befehle \begin{quote}\begin{tabular}{ll} |\dateenglish| & 1/12/1993\\ |\dateUSenglish| & 12/1/1993\\ |\dategerman| & 1.\,12.\,1993\\ |\dateaustrian| & 1.\,12.\,1993\\ |\datefrench| & 1.\,12.\,1993\\ |\dateitalian| & 1.\,12-\,1993 \end{tabular}\end{quote} in der angegebenen Form festgelegt. \EndIndex{Cmd}{dateenglish}\EndIndex{Cmd}{dateUSenglish} \EndIndex{Cmd}{dategerman}\EndIndex{Cmd}{dateaustrian} \EndIndex{Cmd}{datefrench}\EndIndex{Cmd}{dateitalian} Es ist generell empfehlenswert (aber nicht zwingend notwendig), grunds"atzlich \package{german}\IndexPackage{german} als zus"atzliches package mit dem |\usepackage|-Befehl anzugeben, da dieses package den sehr komfortablen |\selectlanguage|-Befehl\IndexCmd{selectlanguage} zur Verf"ugung stellt, der gleichzeitig Captiontexte, die Schreibweise des Datums, einige sprachspezifische Extras und Trennregeln der verwendeten Sprache anpa"st. Im Zusammenhang mit \class{scrlettr} ist jedoch zu beachten, da"s |\selectlanguage| erst \emph{nach} |\begin{document}| verwendet werden sollte\footnote{Die briefspezifischen Caption-Texte und Datumsformate werden nach einem Vorschlag von Sven Gohlke erst durch den {\tt\bslash begin\purearg{document}}-Befehl definiert. Daher werden diese erst nach diesem Befehl aktiv. Durch eine spezielle Anpassung an \file{german.sty} Version 2.5b ist die Sprachauswahl nicht mehr von festen Sprachnummern abh"angig. Daf"ur wird jedoch gefordert, da"s die Spachnummern zu \file{german.sty} kompatibel definiert sind.}. \begin{description} \item[Beispiel 1: ] F"ur eine Datei mit rein englischsprachigen Briefen (amerikanisches Englisch) gen"ugt: \begin{quote}\begin{small} |\documentclass{scrlettr}|\\ |\begin{document}|\\ |\begin{letter}{|\ldots |}|\\ \ldots \end{small}\end{quote} \item[Beispiel 2: ] F"ur eine Datei mit rein deutschsprachigen Briefen gen"ugt: \begin{quote}\begin{flushleft}\begin{small} |\documentclass{scrlettr}|\\ |\usepackage{german}|\\ |\begin{document}|\\ |\begin{letter}{|\ldots |}|\\ \ldots \end{small}\end{flushleft}\end{quote} \item[Beispiel 3: ] Bei gemischtsprachigen Briefen empfiehlt sich: \begin{quote}\begin{flushleft}\begin{small} |\documentclass{scrlettr}|\\ |\usepackage{german}|\\ |\begin{document}|\\ \mbox{}\\ |\selectlanguage{USenglish}|\\ |\begin{letter}{|\ldots |}|\\ \ldots \\ |\end{letter}|\\ \mbox{}\\ |\selectlanguage{german}|\\ |\begin{letter}{|\ldots |}|\\ \ldots \\ |\end{letter}|\\ \mbox{}\\ \ldots \end{small}\end{flushleft}\end{quote} \end{description} \subsection{Zweiseitiger Druck} \BeginIndex{Option}{twoside} \begin{decl}|twoside|\end{decl}% Zweiseitig gedruckte Briefe werden durch Angabe der Option |twoside| unterst"utzt; jedoch "andert sich hier im Gegensatz zu den "ubrigen \script{KOMA-Script}-classes der Satzspiegel nicht, sondern es wird lediglich sichergestellt, da"s ein neuer Brief immer auf einer ungeraden \emph{Druck}seite beginnt. Die \emph{interne} \TeX-Seitenz"ahlung startet bei jedem |\begin{letter}|-Befehl wieder bei 1. Dar"uber hinaus wird eine Warnung ausgegeben, um darauf hinzuweisen, da"s es sich nicht wirklich um ein zweiseitiges Layout handelt. \EndIndex{Option}{twoside} \subsection{Layout} Die |scrletter|-class verwendet einen festen Satzspiegel, an dem nichts mehr ver"andert werden sollte (Au"snahmen siehe unten). Er ist recht anspruchsvoll, was Ma"shaltigkeit und bedruckbaren Bereich des verwendeten Druckers angeht, da Falzmarken so weit links wie m"oglich und die Adresse wirklich im Adre"sfenster eines Fensterbriefumschlages stehen sollen. Aus diesem Grund sollte die Einstellung des Druckertreibers mit der \LaTeXe-Testseite "uberpr"uft werden. Sollten die Falzmarken auf dem Drucker nicht erscheinen, so ist zun"achst zu "uberpr"ufen, ob sie "uberhaupt eingeschaltet sind. Ist dies der Fall, so hat der Drucker vermutlich einen linken Rand von mehr als 5\,mm. Anderenfalls m"u"ste zumindest ein Teil der Falzmarken zu sehen sein. In diesem Fall bleibt nur die dokumentierte L"ange \texttt{\bslash foldhskip} zu erh"ohen. Man kann dies z.\,B. in der Pr"aambel oder im Rahmen einer Datei tun, in der man seinen eigenen Briefkopf definiert (siehe Abschnitt \ref{BRIEFKOPF}). Die H"ohe des Kopfbereichs der Seite ist in der Version~2.0 von 20\,mm auf 22\,mm vergr"o"sert worden\footnote{Dadurch ist der Abstand des oberen Papierrandes vom Briefkopf von 10\,mm auf 9\,mm geschrumpft; da einige Drucker damit bereits Probleme hatten, habe ich den oberen Rand von 15.5\,mm auf 19\,mm vergr"o"sert. Daf"ur wurde wiederum der Abstand zwischen Kopfzeile und Text von 9\,mm auf 8\,mm verringert. Die entsprechende Zeile ist dokumentiert.}; damit gibt es hoffentlich keine Probleme mehr bei Verwendung des voreingestellten Briefkopf-Formates\footnote{Diese Probleme traten auf bei Verwendung der 12pt-Schrift und wenn beide Zeilen der Adresse Unterl"angen besa"sen. Dreizeilige Adressangaben sind jedoch nach wie vor mangels Platz problematisch aber m"oglich. Falls mehr Information im Briefkopf untergebracht werden soll, so mu"s ein eigener entwickelt werden.}. Der Fu"sbereich der Seite ist 25\,mm hoch, linker und rechter Rand sind beide 25.4 mm breit. Abs"atze werden ohne Einzug und mit einem vertikalen Abstand von einem halben |\baselineskip| gesetzt. Ein unterer Randausgleich wird auch im zweiseitigen Druck nicht durchgef"uhrt (|\raggedbottom|). Gegen"uber der Version~1.0 von \file{script\_l.sty} wurde die Brieftext-Zentrierung leicht verbessert, was die Probleme bei umfangreicheren Briefen mit sehr langen Abs"atzen hoffentlich beseitigt hat. \minisec{Ver"anderung des Satzspiegels in Au"snahmef"allen} Sollte sich \emph{nach} "Uberpr"ufung und Korrektur der Drucker- bzw. Treibereinstellung ergeben, da"s die komplette Breifseite doch nicht gedruckt werden kann, so k"onnen die Einstellungen von |\textheight| und |\footskip| ge"andert werden. Dabei ist zu beachten, da"s eine Ver"anderung des einen Wertes immer mit einer entgegengerichtete "Anderung des anderen Wertes einher gehen mu"s! Die "Anderung kann entweder in der Dokumentpr"aambel, in der Datei mit dem pers"onlichen Briefkopf oder in \file{scrlettr.cls} selbst erfolgen. Bitte beachten Sie jedoch, da"s die ver"anderte Datei nicht weitergegeben werden darf und Briefe dann bei Bearbeitung mit Original \class{scrlettr} anders umbrochen werden! \subsection{Adre"sfeld und Zusatz-"`location"'-Feld} Zur Beschriftung des Briefumschlages gab es im Original den |\makelabels|-Befehl, der dazu gedacht war, Adre"setiketten zu bedrucken. Da mir keine Konfiguration bekannt ist, in der dieser Befehl mit all seinen Anforderungen bez"uglich Papierwechsel etc. wirklich Sinn macht, habe ich ihn erst gar nicht in die neue Brief-class miteinbezogen (mal ehrlich: Haben Sie |\makelabels| benutzt?) Hier sehe ich auch die --- hoffentlich --- einzige M"oglichkeit, wo eine Inkompatibilit"at zu den Original-classes auftreten kann. Als Entsch"adigung erm"oglicht \class{scrlettr} die Verwendung von Fensterbriefumschl"agen, die Adre"setiketten "uberfl"ussig machen. In einem Feld der H"ohe |\addrheight| und Breite |\addrwidth|, das |\addrvskip| von der Textbereichsoberkante und (|\addrindent| plus 25.4 mm) vom linken Rand des Papiers entfernt ist, wird dazu die bei |\begin{letter}| angegebene Adresse vertikal zentriert. \begin{decl}|\backaddress|\arg{R"ucksende-Adresse}\\ |\specialmail|\arg{Versandart}\end{decl}% \BeginIndex{Cmd}{backaddress}\BeginIndex{Cmd}{specialmail} Optional kann noch mit |\backaddress| eine kleingeschriebene R"ucksende-Adresse und mit |\specialmail| eine spezielle Versandart (z.\,B. Einschreiben) in dieses Feld eingeblendet werden. \EndIndex{Cmd}{backaddress}\EndIndex{Cmd}{specialmail} \begin{decl}|\location|\arg{Zusatz-Information}\end{decl}% \BeginIndex{Cmd}{location} Im freien Raum rechts neben dem Adre"sfeld l"a"st sich noch zus"atzlicher Text (z.\,B. Zweigstellen einer Firma) unterbringen. Dieser wird durch |\location| in ein |\locwidth| breites Feld geschrieben, dessen rechter Rand mit der rechten Begrenzung des Textbereiches "ubereinstimmt. \EndIndex{Cmd}{location} \begin{decl}|\addrfieldoff|\\|\addrfieldon|\end{decl}% \BeginIndex{Cmd}{addrfieldoff}\BeginIndex{Cmd}{addrfieldon} Beide Felder zusammen sind durch |\addrfieldoff| ab- bzw. mit |\addrfieldon| wieder anschaltbar (Default: |\addrfieldon|). Dies kann z.\,B. f"ur pers"onliche Schreiben ohne Gesch"aftsbriefcharakter von Nutzen sein (wenngleich ich in diesem Falle eher zum F"uller greifen w"urde). Hier wurden Befehle an Stelle von Optionen verwendet, da es somit m"oglich ist, in einem Dokument mehrere Briefe mit unterschiedlichen Einstellungen unterzubringen. \EndIndex{Cmd}{addrfieldoff}\EndIndex{Cmd}{addrfieldon} Noch eine kleine Anmerkung zur Schreibweise des Wortes "`Adresse"': Deutsch schreibt es sich mit \emph{einem} "`d"', w"ahrend es im Englischen "`a\emph{dd}ress"' hei"st. Daher ist bei allen Befehlen, die "`address"' enthalten, auf das doppelte "`d"' zu achten. Anweisungen, die etwas mit dem unten beschriebenen \file{.adr}-File zu tun haben, werden allerdings mit \emph{einem} "`d"' geschrieben (|\adrentry| und |\adrchar|). \begin{decl}|wlocfield|\\|slocfield|\end{decl}% \BeginIndex{Option}{wlocfield}\BeginIndex{Option}{slocfield} Die Breite des Adre"s-Feldes ist normalerweise auf 70\,mm beschr"ankt. F"ur das Zusatzfeld daneben (|\location|) steht in der Grundeinstellung die H"alfte der restlichen Textbreite zur Verf"ugung. Da mir selbst dies etwas zu wenig war, existiert eine Option |wlocfield| ("`wide location field"'), mit der $2/3$ der restlichen Textbreite verwendet werden. Dies sollte bei der Mehrzahl der Fensterumschl"age problemlos sein. Nat"urlich existiert auch eine gegenteilige Option |slocfield| ("`small location field"'), mit der die Standardeinstellung $1/2$ verlangt wird. \EndIndex{Option}{wlocfield}\EndIndex{Option}{slocfield} \subsection{Referenzfeld} \begin{decl}|\yourref|\arg{Ihr Zeichen}\\ |\yourmail|\arg{Ihr Schreiben vom}\\ |\myref|\arg{Unser Zeichen}\\ |\customer|\arg{Kundennummer}\\ |\invoice|\arg{Rechnungsnummer}\\ |\refitemi|\arg{Eigenes Feld 1}\\ |\refitemii|\arg{Eigenes Feld 2}\\ |\refitemiii|\arg{Eigenes Feld 3}\end{decl}% \BeginIndex{Cmd}{yourref}\BeginIndex{Cmd}{yourmail} \BeginIndex{Cmd}{myref}\BeginIndex{Cmd}{customer} \BeginIndex{Cmd}{invoice}\BeginIndex{Cmd}{refitemi} \BeginIndex{Cmd}{refitemii}\BeginIndex{Cmd}{refitemiii} Unterhalb des Adre"sfeldes steht normalerweise das Datum bzw. bei Gesch"aftsbriefen ein Referenzfeld mit vorgedruckten Unterfeldern f"ur Kundennummer, Durchwahl, Sachbearbeiter und "ahnliches. Dies ist jetzt auch m"oglich: Ohne weitere Angabe erscheint rechtsb"undig Ort (definiert durch |\place|\arg{Ort}\IndexCmd{place}) und Datum, w"ahrend bei Benutzung mindestens eines der obenstehenden Befehle das Datum in Vordruckform und die ge"-w"unschten Unterfelder horizontal gegeneinander zentriert gesetzt werden. \EndIndex{Cmd}{yourref}\EndIndex{Cmd}{yourmail} \EndIndex{Cmd}{myref}\EndIndex{Cmd}{customer} \EndIndex{Cmd}{invoice}\EndIndex{Cmd}{refitemi} \EndIndex{Cmd}{refitemii}\EndIndex{Cmd}{refitemiii} \begin{decl}|\refitemnamei|\arg{Vordruck}\\ |\refitemnameii|\arg{Vordruck}\\ |\refitemnameiii|\arg{Vordruck}\end{decl}% \BeginIndex{Cmd}{refitemnamei}\BeginIndex{Cmd}{refitemnameii}\BeginIndex{Cmd}{refitemnameiii} Die "`Vordrucke"' der selbstdefinierten Unterfelder lassen sich mit diesen Befehlen bestimmen. \EndIndex{Cmd}{refitemnamei}\EndIndex{Cmd}{refitemnameii}\EndIndex{Cmd}{refitemnameiii} \subsection{Titel und Betreff} \begin{decl}|\title|\arg{"Uberschrift}\end{decl}% \BeginIndex{Cmd}{title} Keine eigene Titelseite, sondern eine fettgedruckte "Uberschrift (z.\,B. "`Rechnung"', "`1. Mahnung"') wird durch den Befehl |\title| unterhalb des Referenzfeldes erzeugt. \EndIndex{Cmd}{title} \begin{decl}|\subject|\arg{Kurzinhalt des Briefes}\\ |\subjecton|\\|\subjectoff|\end{decl}% \BeginIndex{Cmd}{subject}\BeginIndex{Cmd}{subjecton}\BeginIndex{Cmd}{subjectoff} Ein "`Betreff"' l"a"st sich mit |\subject| angeben, wobei mit |\subjecton| bzw.\ |\subjectoff| das Wort "`Betr."' selbst an- und ausgeschaltet werden kann (voreingestellt ist aus, also |\subjectoff|). \EndIndex{Cmd}{subject}\EndIndex{Cmd}{subjecton}\EndIndex{Cmd}{subjectoff} \subsection{Seitenstile\label{PAGESTYLES}} \begin{decl}|\firsthead|\arg{Kopf}\\ |\firstfoot|\arg{Fu"s}\\ |\nexthead|\arg{Kopf}\\ |\nextfoot|\arg{Fu"s}\end{decl}% \BeginIndex{Cmd}{firsthead}\BeginIndex{Cmd}{firstfoot} \BeginIndex{Cmd}{nexthead}\BeginIndex{Cmd}{nextfoot} In der \class{scrlettr}-class stehen nach wie vor die Seitenstile |empty|, |plain| und |headings| zur Verf"ugung (Default ist |plain|). Zus"atzlich gibt es noch speziell f"ur die erste Seite eines Briefes den Pagestyle |firstpage|. Der eigentliche Clou an der Sache ist nun, da"s die Eintr"age in den Kopf- und Fu"sbereich der Seiten bei |firstpage| und |headings| frei gestaltbar sind. Dies geschieht durch die Befehle |\firsthead|, |\firstfoot|, |\nexthead| und |\nextfoot|, die bei einer "Anderung auf jeden Fall \emph{vor} dem Aufruf des zugeh"origen |\pagestyle{|\ldots|}|- bzw. |\begin{letter}|-Befehls ausgef"uhrt werden m"ussen. Als Beispiel sollen die Vorbelegungen der class-Datei dienen\footnote{Das Verst"andnis der Definitionen ist zugegebenerma"sen nicht ganz einfach. Die Bedeutung der verwendeten Variablen schlagen Sie bitte in der Variablen"ubersicht in Abschnitt~\ref{VARIABLEN} nach.}: \begin{quote}\begin{small}\begin{verbatim} \firsthead{\parbox[b]{\textwidth}{\begin{center} {\sc \ignorespaces \fromname}\\[-8pt] \rule{\textwidth}{.4pt}\\ \ignorespaces \fromaddress \end{center}}} \firstfoot{} \nexthead{\parbox[b]{\textwidth}{{% \sc \ignorespaces \fromname}\\[8pt] \headtoname\ \ignorespaces \toname \hfill \datename:\ \today \hfill \pagename\ \thepage\\[-8pt] \rule{\textwidth}{.4pt}}} \nextfoot{} \end{verbatim}\end{small}\end{quote} \noindent Dadurch ist es nun m"oglich, eigene Briefk"opfe und Fu"sleisten (z.\,B. f"ur Bankverbindungen, Gerichtsstand etc.) zu entwerfen. Der Phantasie sind eigentlich nur durch die zur Verf"ugung stehenden Zeichens"atze Grenzen gesetzt; Ausgefallenes l"a"st sich durch das |picture|-Environment oder "`Metafont"'\footnote{Das ist keineswegs so schwer, wie es zun"achst erscheint, da es bereits Vektor-Graphikprogramme gibt, die auch Metafont-Ausgaben beherrschen. Aber Vorsicht! Metafont macht s"uchtig!} realisieren. \EndIndex{Cmd}{firsthead}\EndIndex{Cmd}{firstfoot} \EndIndex{Cmd}{nexthead}\EndIndex{Cmd}{nextfoot} \subsection{Adre"sdateien\label{BRIEFKOPF}} \begin{decl}|\adrentry|\arg{Name}\arg{Vorname}\arg{Adresse}% \arg{Telefonnummer}\arg{}\arg{}\arg{Kommentar}\arg{K"urzel}\end{decl}% \BeginIndex{Cmd}{adrentry} Um nicht in jedem Brief die komplette Anschrift des Adressaten nachschlagen und vor allem eingeben zu m"ussen, wurden Adre"sdateien (\file{.adr}-Files) \label{ADR} eingef"uhrt. Sie enthalten f"ur jeden Adressaten einen Eintrag in Form eines Befehls |\adrentry|, dessen f"unftes und sechstes Argument dem Anwender zur freien Verf"ugung steht. Eine solche Adre"sdatei bindet man mit |\input| entweder direkt in den Quelltext des Briefes (am besten noch in der Pr"aambel) oder in das oben vorgeschlagene Optionsfile, das die Voreinstellungen enth"alt, ein. Im letzteren Fall kann man statt |\input| nat"urlich auch den Befehl |\InputIfFileExists| verwenden, der eine Fehlerbehandlung f"ur den Fall erlaubt, da"s die Datei nicht existiert. \begin{description} \item[Beispiel 1: ] Frank Neukams pers"onliches Optionsfile\label{PRIVAT} sieht folgenderma"sen aus: \begin{small}\begin{verbatim} % privat.sty \name{Frank Neukam} \address{Franz-Stadelmayer-Str. 30\\97074 W"urzburg} \backaddress{F. Neukam, F.-Stadelmayer-Str. 30, 97074 W"urzburg} \place{W"urzburg, } \input{privat.adr} \end{verbatim}\end{small} \item[Beispiel 2: ] Markus Kohms pers"onliches Optionsfile ist "`etwas"' aufwendiger, demonstriert aber gut die tats"achlichen M"oglichkeiten: \begin{small}\begin{verbatim} % mjk.sty, private Einstellungen f"ur scrlettr % (in Verbindung mit der Option `wlocfield' verwenden) % Markus Kohm %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ProvidesFile{mjk} \typeout{Absender ist: Markus Kohm} \font\mklogo =mklogo scaled \magstep0 % beinhaltet mein Logo \newcommand\mk{\mklogo\symbol{0}} \name{Markus Kohm} \signature{\qquad Markus Kohm} \address{Augartenstra"se 29\\76137 Karlsruhe} \backaddress{Markus Kohm $\cdot$\ Augartenstra"se 29 $\cdot$\ 76137 Karlsruhe} \place{Karlsruhe, } \telephone{(07\,21)~} % Geheimnummer entfernt \location{\begin{flushleft}\small\sf% {\sfb email:}\\Mausnet:\\\hspace{1em}Markus Kohm @ KA\\[.8ex] Internet:\\\hspace{1em} Markus\_Kohm@ka.maus.de\\[1.5ex] {\sfb Telefon:}~~\telephonenum\\ \end{flushleft}} \firsthead{\parbox{\textwidth}{%\vspace*{1ex} \parbox{2cm}{\mk}\hfill\parbox{\locwidth}{\begin{flushleft} \fontsize{12}{14.5}\selectfont {\sfb\ignorespaces\fromname}\\ {\sf\ignorespaces\fromaddress}\\ \end{flushleft}}\par\vspace{1ex}\rule{\textwidth}{0.8pt}}} \firstfoot{\parbox[t]{\textwidth}{\begin{center} \sffamily\slshape\fontsize{8}{9}\selectfont \rule{\textwidth}{.4pt}\\ Bankverbindung: Sparda--Bank Karlsruhe (BLZ~660\,905\,00) Konto--Nr.~995\,894\end{center}}} \nexthead{\parbox[b]{\textwidth}{{% \sfb\ignorespaces\fromname} \hfill\sf\headtoname\ \ignorespaces\toname \hfill\datename:\ \@date\hfill\pagename\ \thepage\\[-8pt]\rule{\textwidth}{.4pt}}} \nextfoot{\parbox[t]{\textwidth}{\begin{center} \sffamily\slshape\fontsize{8}{9}\selectfont \rule{\textwidth}{.4pt}\\ Bankverbindung: Sparda--Bank Karlsruhe (BLZ~660\,905\,00) Konto--Nr.~995\,894\end{center}}} \pagestyle{headings} \InputIfFileExists{privat.adr}{\typeout{Private Adressen geladen}} {\typeout{Keine privaten Adressen!}} \endinput \end{verbatim}\end{small} \end{description} \noindent F"ur jeden \file{.adr}-Eintrag wird dann die komplette Anschrift unter dem jeweiligen K"urzel als \TeX-Makro abgelegt. Um das "Uberschreiben von \TeX- oder \LaTeX-Befehlen zu vermeiden, ist es empfehlenswert, f"ur K"urzel nur Gro"sbuchstaben zu verwenden. Lautet also z.\,B. ein \file{.adr}-Eintrag \begin{quote}\begin{small}\begin{verbatim} \adrentry{abc-Lernsysteme} {} {z.Hd. Frau Streb\\Schulstr.1\\2345 Paukstadt} {0\,678 / 90\,12\,34} {} {} {} {ABC} \end{verbatim}\end{small}\end{quote} so schreibt man anstelle der kompletten Adresse nur noch |\begin{letter}{\ABC}|. Mit Hilfe der im \script{Script}-Paket enthaltenen \file{dir.tex}-Datei kann aus einer \file{.adr}-Datei ein Adre"sheft erzeugt werden, das nach Zurechtschneidung in die Standard-Ta"-schen"-ka"-len"-der"-h"ul"-len pa"st. Dazu sollten die Eintr"age alphabetisch sortiert sein und vor jedem neu begonnenen Anfangsbuchstaben des Nachnamens ein |\adrchar|\arg{Anfangsbuchstabe} stehen. Von der \class{scrlettr}-class wird dieser Befehl ignoriert; |dir.tex| jedoch beginnt bei einer solchen Anweisung eine neue Seite und schreibt diesen Buchstaben in die Kopfzeile. Am besten probieren Sie dieses Programm einfach einmal anhand einer kleinen Adre"sdatei aus, alle ben"otigten Informationen werden w"ahrend des \TeX-Kompilerlaufes erfragt. "Ahnlich wie \file{dir.tex} arbeitet das Programm \file{phone.tex}, nur da"s dieses anstelle eines Adre"sheftes ein Telefonnummern-Verzeichnis anlegt. |\adrchar| erzeugt hier lediglich einen kleinen vertikalen Zwischenraum. \subsection{Serienbriefe} Eine weitere Anwendung der \file{.adr}-Dateien sind Serienbriefe. \begin{description} \item[Beispiel: ] Mit der folgenden kurzen Datei kann eine Einladung an s"amtliche Kollegen eines Betriebes erzeugt werden: \begin{quote}\begin{small}\begin{verbatim} \documentclass{scrlettr} \usepackage{privat,german} \begin{document} \def\adrentry#1#2#3#4#5#6#7#8{ \begin{letter}{#2 #1\\#3} \opening{Liebe Kolleginnen und Kollegen,} anl"a"slich meines ... \closing{Mit freundlichen Gr"u"sen} \end{letter} } \input{kollegen.adr} \end{document} \end{verbatim}\end{small}\end{quote} \end{description} Soll der Brieftext abh"angig von Adressatenmerkmalen, die in den beiden noch freien Argumenten des |\adrentry|-Befehls stehen, ver"anderlich sein, k"onnen Konstrukte der folgenden Form verwendet werden\footnote{Als Beispiel ist das Geschlecht des Empf"angers im Argument \#5 kodiert: m f"ur m"annlich, w f"ur weiblich. In Argument \#6 steht die Anzahl der Kinder.}: \begin{quote}\begin{small}\begin{verbatim} \def\adrentry#1#2#3#4#5#6#7#8{ \ifcase #6 % Dieser Zweig wird bei #6 = 0 abgearbeitet. % In diesem Beispiel sind Empf"anger ohne Kinder uninteressant, % weshalb im \else-Zweig nur Briefe an Kunden mit mindestens % einem Kind erzeugt werden. \else % #6 > 0 \begin{letter}{#2 #1\\#3} \if #5m \opening{Sehr geehrter Herr #1,} \fi \if #5w \opening{Sehr geehrte Frau #1,} \fi Sie als% Direkt nach 'als' mu"s ein % stehen, da der \if-Befehl % vor 'gl"ucklich..' einen zus"atzlichen Leerraum % generiert (nach \fi jedoch nicht}. \if #5m gl"ucklicher Vater \fi \if #5w gl"uckliche Mutter \fi wissen sicher am besten, was gut f"ur \ifnum #6 < 2 Ihr Kind \else Ihre Kinder \fi ist. Um Sie... \closing{Mit freundlichen Gr"u"sen} \end{letter} \fi } \end{verbatim}\end{small}\end{quote} \noindent Es ist also auch m"oglich, den Brieftext auf bestimmte Empf"angermerkmale gezielt abzustimmen und so den Eindruck eines pers"onlichen Schreibens zu erwecken. Die Anwendungsbreite ist lediglich durch die maximale Anzahl von zwei freien |\adrchar|-Argumenten begrenzt. \EndIndex{Cmd}{adrentry} \subsection{Das scraddr-package zur Auswertung von Adre"sdateien} \BeginIndex{Package}{scraddr} Dieses Paket liest beliebige - auch mehrere - Adre"sdateien im oben beschriebenen Format ein und legt f"ur jeden Eintrag eine Reihe von Makros an. Bedingung daf"ur ist, da"s das achte Element jedes |\adrentry|-Eintrags - der K"urzeleintrag - nicht leer ist. Im Falle von identischen K"urzeleintr"agen "uberschreiben sp"atere Eintr"age fr"uhere. Die Inhalte k"onnen dann "uber spezielle Befehle ermittelt werden. Das Paket besitzt keine Optionen. \begin{decl}|\InputAddressFile|\arg{Dateiname}\end{decl} \BeginIndex{Cmd}{InputAddressFile} Mit Hilfe des Befehls |\InputAddressFile| wird die angegebene Adre"sdatei eingelesen und in Adre"smakros gewandelt, die dann beliebig verwendet werden k"onnen. Die Adre"smakros werden global generiert. Andere Makros insbesondere die Definition von \IndexCmd{adrentry}|\adrentry| bleiben davon unber"uhrt. Existiert die Datei \emph{Dateiname} nicht, so wird ein Fehler ausgegeben, ansonsten wird die Ladeaktion angezeigt. \EndIndex{Cmd}{InputAddressFile} \begin{decl}|\Name|\arg{K"urzel}\\ |\FirstName|\arg{K"urzel}\\ |\LastName|\arg{K"urzel}\\ |\Address|\arg{K"urzel}\\ |\Telephone|\arg{K"urzel}\\ |\FreeI|\arg{K"urzel}\\ |\FreeII|\arg{K"urzel}\\ |\Comment|\arg{K"urzel}\end{decl} \BeginIndex{Cmd}{Name}\BeginIndex{Cmd}{FirstName} \BeginIndex{Cmd}{LastName}\BeginIndex{Cmd}{Address} \BeginIndex{Cmd}{Telephone}\BeginIndex{Cmd}{FreeI} \BeginIndex{Cmd}{FreeII}\BeginIndex{Cmd}{Comment} Da keine Vorschriften existieren, wie genau das K"urzel aufgebaut sein mu"s, k"onnen innerhalb des K"urzels theoretisch auch solche Zeichen enthalten sein, die f"ur Makronamen normalerweise ungeeignet sind (z.\,B. Punkte oder Ziffern). Deshalb existiert ein Satz von Befehlen, "uber den auf die zu einem K"urzel geh"orenden Elemente zugegriffen werden kann. Dabei wird davon ausgegangen, da"s die Adre"sdatei dem zuvor vorgeschlagenen Aufbau entspricht. Bedigung f"ur die korrekte Funktion ist, da"s die |\adrentry|-Eintr"age in der Adre"sdatei dem zuvor genannten Aufbau entsprechen! Au"serdem darf in den K"urzeln kein Zeichen enthalten sein, das u.U. von einer Makroexpansion betroffen w"are. Es empfiehlt sich daher, sich auf Buchstaben (ohne Umlaute!) und Ziffern zu beschr"anken. \EndIndex{Cmd}{Comment}\EndIndex{Cmd}{FreeII} \EndIndex{Cmd}{FreeI}\EndIndex{Cmd}{Telephone} \EndIndex{Cmd}{Address}\EndIndex{Cmd}{LastName} \EndIndex{Cmd}{FirstName}\EndIndex{Cmd}{Name} \EndIndex{Package}{scraddr} \subsection{Adre"sdatenbankkonverter} \index{~\BibTeX} Gerd Neugebauer hat f"ur \BibTeX\ eine Adre"sdatenbank definierter und dazu passend den Bibliographie-Stil \texttt{address.bst} erstellt. Diese Datenbank enth"alt wesentlich mehr Eintr"age als die Adre"sdateien, die \script{Script} verwendet. Dar"uber hinaus ist sie beliebig erweiterbar. Es dr"angt sich nat"urlich die Frage auf, ob man nicht irgendwie die \BibTeX-Datenbank bzw. die relevanten Teile daraus f"ur \script{Script} aufbereiten und verwenden kann. Axel Kielhorn ist dieses Problem angegangen und hat zwei Bibliographie-Stile geschrieben, die als Beispiele dienen k"onnen. Diese Stile stellen keine ultimative L"osung dar, sondern sie sollen Hinweise geben, was man selbst alles machen kann. Durch Ab"anderung der Bespiele kann man leicht seinen eigenen Konverter erzeugen. Dadurch kann man z.\,B. beliebige Felder der \BibTeX-Datenbank in die freien Felder der Adre"sdatei "ubernehmen. Zur Funktion von \BibTeX\ lesen Sie bitte in der Anleitung zu \BibTeX\ (\file{btxdoc} und \file{btxhak}) nach. \subsubsection{Die Bibliographie-Stile zur Konvertierung} \Index[texttt]{addrconv.bst} Der erste Bibliographie-Stil, \file{addrconv.bst}, erzeugt einfach eine Adre"sdatei mit den notwendigen Eintr"agen \m{Name}, \m{Vorname}, \m{Adresse} und \m{Telefonnummer}. Dabei werden die Eintr"age der Adre"sdatei alphabethisch sortiert und auch der \verb|\adrchar| wird automatisch gesetzt. Den Inhalt der Adre"sdatei kann man anschlie"send sehr sch"on mit den beiden Beispieldateien \file{dir.tex} und \file{phone.tex} ausgeben lassen. \Index[texttt]{birthday.bst} Der zweite Bibliographie-Stil, \file{birthday.bst}, erzeugt stattdessen eine Geburtstagsliste. Dabei werden die Eintr"age nicht alphabetisch sondern nach den Geburtstagen (also Monat und Jahr) sortiert. Eine sinnvolle Ausgabe ist hier ebenfalls mit \file{dir.tex} m"oglich. \subsubsection{Die Anwendung der Bibliographie-Stile zur Konvertierung} \Index[texttt]{addrconv.tex}\Index[texttt]{birthday.tex} Normalerweise schreibt man die Information, welcher Bibliographie-Stil und welche -Datenbank verwendet werden soll in die \LaTeX-Datei, in die die Datenbank eingebunden werden soll. Beim ersten \TeX-Lauf wird die entsprechende Information dann in der zugeh"origen \file{aux}-Datei abgelegt. Von dort liest \BibTeX\ die Informationen und erzeugt dann mit Hilfe des Bibliographie-Stils in einer \texttt{bst}-Datei aus einer Quell-\file{bib}-Datei die Zieldaten in der \file{bbl}-Datei. Diese werden dann beim n"achsten \TeX-Lauf mit eingelesen und verarbeitet. In unserem Fall der Konvertierung ist das nur bedingt m"oglich. So existiert zwar eine \file{bib}-Datei und auch die beiden Bibliographie-Stile in den \file{bst}-Dateien, aber es fehlt die \file{tex}-Datei, aus der \LaTeX\ die Information in eine \file{aux}-Datei schreiben k"onnte. Genau daf"ur dienen die beiden Dateien \file{addrconv.tex} und \file{birthday.tex}. Es handelt sich dabei um interaktive \TeX-Programme, die sowohl unter \TeX (Plain\TeX) als auch unter \LaTeX funktionieren. Nach dem Start wird man nach dem Namen der \BibTeX-Datenbank gefragt, die konvertiert werden soll. Der Name mu"s ohne die Endung "`\texttt{.bib}"' eingegeben werden! Daraufhin wird eine Datei gleichen Namens aber mit der Endung "`\texttt{.aux}"' erzeugt. Starten Sie nun \BibTeX, wobei Sie als Parameter ebenfalls wieder den Dateinamen ohne Endung angeben. \BibTeX\ erzeugt daraufhin (vorausgesetzt die \file{bst}-Datei wird gefunden) eine Datei gleichen Namens jedoch mit der Endung "`\texttt{.bbl}"'. Jetzt m"ussen Sie nur noch die Endung in "`\texttt{.adr}"' "andern und k"onnen die Datei z.\,B. mit \file{dir.tex} oder \file{phone.tex} weiterbearbeiten. \file{addrconv.tex} erzeugt eine \file{aux}-Datei f"ur die Verwendung von \file{addrconv.bst}, w"ahrend \file{birthday.tex} eine \file{aux}-Datei f"ur die Verwendung von \file{birthday.bst} erzeugt. Hier das Protokoll einer Beispielbearbeitung f"ur die Beispieldatenbank \file{example.bib}: \begin{alltt} \textbf{sh>}tex addrconv.tex This is TeX, Version 3.1415926536 (addrconv.tex Now you have to typein the name of the BibTeX addressfile, you want to convert to script-address-file-format (without extension `.bib'): Geben Sie nun den Namen der BibTeX-Adressdatei ein, die sie in das Script-Adressdateiformat konvertieren wollen (ohne `.bib'): addressfile=example After running BibTeX rename file `example.bbl' to `example.adr'! Nach dem BibTeX-Lauf benennen Sie bitte die Datei `example.bbl' in `example.adr' um! ) No pages of output. Transcript written on addrconv.log. \texttt{sh>}bibtex example This is BibTeX, 8-bit Version 0.99c // 0.6cs The top-level auxiliary file: example.aux The style file: addrconv.bst Database file #1: example.bib \texttt{sh>}mv example.bbl example.adr \end{alltt} Die erzeugte Adre"sdatei, \file{example.adr}, sieht dann so aus: \begin{verbatim} \adrchar{K} \adrentry{Kielhorn}{Axel} {Stra{\ss}e des 16.~Mai 17 \\ 38118 Braunschweig}{0531 / 89 34 39}{}{}{}{} \adrentry{Kielhorn}{Ralf} {Stra{\ss}e des 17.~Juni 17 \\ 38118 Braunschweig}{0531 / 89 34 39}{}{}{}{} \adrentry{Kohm}{Markus} {Augartenstra{\ss}e 27 \\ 76137 Karlsruhe}{}{}{}{}{} \adrchar{M} \adrentry{Mustermann}{Hans} {Einbahnstra{\ss}e 1 \\ 01234 Heimstatt}{01234 / 5 67 89}{}{}{}{} \end{verbatim} Sollten Sie Fragen zu den Bibliographie-Stilen haben, so wenden Sie sich bitte direkt an Axel Kielhorn, seine eMail-Adresse finden Sie in \file{example.bib}. \clearpage \section{Befehls- und Variablen"ubersicht\label{VARIABLEN}} \minisec{Briefspezifische Befehle, die strukturbeschreibend sind oder eine Ausgabe erzeugen:} \vspace{0.5em} \begin{labeling}{\tt\bslash begin\purearg{letter}\arg{Adressat}} \item[\tt\bslash begin\purearg{letter}\arg{Adressat}] \IndexCmd{begin\string{letter\string}} Markiert den Beginn eines Briefes an \emph{Adressat} und beginnt eine neue Seite \item[\tt\bslash end\purearg{letter}] \IndexCmd{end\string{letter\string}} Markiert das Ende eines Briefes \item[\tt\bslash opening\arg{Anrede}] \IndexCmd{opening} Setzt alle Teile eines Briefes oberhalb und einschlie"slich der \emph{Anrede} \item[\tt\bslash closing\arg{Gru"sformel}] \IndexCmd{closing} Setzt \emph{Gru"sformel} und Unterschrift \item[\tt\bslash ps\arg{Postskriptum}] \IndexCmd{ps} Setzt ein \emph{Postskriptum} \item[\tt\bslash cc\arg{Verteiler}] \IndexCmd{cc} Setzt eine Verteilerliste (Eintr"age durch \texttt{\bslash\bslash} abgetrennt) \item[\tt\bslash encl\arg{Anlagen}] \IndexCmd{encl} Setzt eine Anlagenliste (Eintr"age durch \texttt{\bslash\bslash} abgetrennt) \end{labeling} \vspace{1em} \minisec{Befehle der Adre"sdateien:} \vspace{0.5em} |\adrchar| und |\adrentry| (s.o.) \vspace{1.5em} \minisec{Befehle zur Sprachumschaltung:} \vspace{0.5em} \begin{labeling}[\ ]{\tt\bslash captionsUSenglish} \item[\tt\bslash captionsenglish] \IndexCmd{captionsenglish} Selektiert englische Caption-Texte \item[\tt\bslash captionsUSenglish] \IndexCmd{captionsUSenglish} Selektiert amerikanische Caption-Texte \item[\tt\bslash captionsgerman] \IndexCmd{captionsgerman} Selektiert deutsche Caption-Texte \item[\tt\bslash captionsaustrian] \IndexCmd{captionsaustrian} Selektiert "osterreichische Caption-Texte \item[\tt\bslash captionsfrench] \IndexCmd{captionsfrench} Selektiert franz"osische Caption-Texte \item[\tt\bslash captionsitalian] \IndexCmd{captionsitalian} Selektiert italienische Caption-Texte \item[\tt\bslash dateenglish] \IndexCmd{dateenglish} Englisches Datum (1/12/1993) \item[\tt\bslash dateUSenglish] \IndexCmd{dateUSenglish} Amerikanisches Datum (12/1/1993) \item[\tt\bslash dategerman] \IndexCmd{dategerman} Deutsches Datum (1.\,12.\,1993) \item[\tt\bslash dateaustrian] \IndexCmd{dateaustrian} "Osterreichisches Datum (1.\,12.\,1993) \item[\tt\bslash datefrench] \IndexCmd{datefrench} Franz"osisches Datum (1.\,12.\,1993) \item[\tt\bslash dateitalian] \IndexCmd{dateitalian} Italienisches Datum (1.\,12.\,1993) \end{labeling} \vspace{1em} \minisec{Sprachabh"angige Variablen} \vspace{0.5em} (d"urfen an beliebiger Stelle nach dem |\begin{document}|-Befehl verwendet werden, k"onnen aber nur mit Hilfe von |\renewcommand| ge"andert werden; die Liste enth"alt die Variableninhalte nur in Englisch, Deutsch und Franz"osisch, da die amerikanischen Namen den englischen und die "osterreichischen den deutschen entsprechen): \vspace{0.5em} \begin{labeling}{\tt 1234567890123} \item[\tt\bslash yourrefname] \IndexCmd{yourrefname} Your ref. / Ihr Zeichen / Vos r\'ef\'erences \item[\tt\bslash yourmailname] \IndexCmd{yourmailname} Your letter of / Ihr Schreiben vom / Votre lettre du \item[\tt\bslash myrefname] \IndexCmd{myrefname} Our ref. / Unser Zeichen / Nos r\'ef\'erences \item[\tt\bslash customername] \IndexCmd{customername} Customer no. / Kundennummer / Num\'ero de client \item[\tt\bslash invoicename] \IndexCmd{invoicename} Invoice no./ Rechnungsnummer / Num\'ero de facture \item[\tt\bslash subjectname] \IndexCmd{subjectname} Subject / Betr. / Concernant \item[\tt\bslash ccname] \IndexCmd{ccname} cc / Kopien an / Copie \`a \item[\tt\bslash enclname] \IndexCmd{enclname} encl / Anlagen / Annexes \item[\tt\bslash headtoname] \IndexCmd{headtoname} To / An / A \item[\tt\bslash datename] \IndexCmd{datename} Date / Datum / Date \item[\tt\bslash pagename] \IndexCmd{pagename} Page / Seite / Page \end{labeling} \vspace{1em} \minisec{Briefspezifische Variablen und deren Befehle zur Neu- oder Umdefinierung} \vspace{0.5em} (Variablen mit \verb|@| sind gesch"utzt; alle anderen k"onnen an beliebiger Stelle verwendet werden): \vspace{0.5em} \begin{labeling}[\textrm{"andert}]{\tt 1234567890123456} \item[\tt\bslash name] \IndexCmd{name} |\fromname|\IndexCmd{fromname} \item[\tt\bslash signature] \IndexCmd{signature} |\fromsig|\IndexCmd{fromsig} \item[\tt\bslash address] \IndexCmd{address} |\fromaddress|\IndexCmd{fromaddress} \item[\tt\bslash place] \IndexCmd{place} |\fromplace|\IndexCmd{fromplace} \item[\tt\bslash location] \IndexCmd{location} |\fromlocation|\IndexCmd{fromlocation} \item[\tt\bslash backaddress] \IndexCmd{backaddress} |\frombackaddress|\IndexCmd{frombackaddress} \item[\tt\bslash telephone] \IndexCmd{telephone} |\telephonenum|\IndexCmd{telephonenum} \item[\tt\bslash yourref] \IndexCmd{yourref} |\varyourref|\IndexCmd{yourref} \item[\tt\bslash yourmail] \IndexCmd{yourmail} |\varyourmail|\IndexCmd{yourmail} \item[\tt\bslash myref] \IndexCmd{myref} |\varmyref|\IndexCmd{myref} \item[\tt\bslash customer] \IndexCmd{customer} |\varcustomer|\IndexCmd{customer} \item[\tt\bslash invoice] \IndexCmd{invoice} |\varinvoice|\IndexCmd{invoice} \item[\tt\bslash refitemi] \IndexCmd{refitemi} |\varrefitemi|\IndexCmd{refitemi} \item[\tt\bslash refitemii] \IndexCmd{refitemii} |\varrefitemii|\IndexCmd{refitemii} \item[\tt\bslash refitemiii] \IndexCmd{refitemiii} |\varrefitemiii|\IndexCmd{refitemiii} \item[\tt\bslash refitemnamei] \IndexCmd{refitemnamei} |\varrefitemnamei|\IndexCmd{refitemnamei} \item[\tt\bslash refitemnameii] \IndexCmd{refitemnameii} |\varrefitemnameii|\IndexCmd{refitemnameii} \item[\tt\bslash refitemnameiii] \IndexCmd{refitemnameiii} |\varrefitemnameiii|\IndexCmd{refitemnameiii} \item[\tt\bslash specialmail] \IndexCmd{specialmail} |\@specialmail|\index{specialmail=|\@specialmail|} \item[\tt\bslash title] \IndexCmd{title} |\@title|\index{title=|\@title|} \item[\tt\bslash subject] \IndexCmd{subject} |\@subject|\index{subject=|\@subject|} \item[\tt\bslash firsthead] \IndexCmd{firsthead} |\@firsthead|\index{firsthead=|\@firsthead|} \item[\tt\bslash firstfoot] \IndexCmd{firstfoot} |\@firstfoot|\index{firstfoot=|\@firstfoot|} \item[\tt\bslash nexthead] \IndexCmd{nexthead} |\@nexthead|\index{nexthead=|\@nexthead|} \item[\tt\bslash nextfoot] \IndexCmd{nextfoot} |\@nextfoot|\index{nextfoot=|\@nextfoot|} \end{labeling} \vspace{1em} \minisec{Briefspezifische L"angenangaben} \vspace{0.5em} (voreingestellte L"ange in eckigen Klammern): \vspace{0.5em} \begin{labeling}{\tt 1234567890123} \item[\tt\bslash foldhskip] \IndexCmd{foldhskip} Abstand der Falzmarken vom linken Papierrand [3.5\,mm] \item[\tt\bslash foldvskipi] \IndexCmd{foldvskipi} Abstand der ersten Falzmarke vom oberen Papierrand [62\,mm] \item[\tt\bslash foldvskipii] \IndexCmd{foldvskipii} Abstand der zweiten Falzmarke von der ersten Falzmarke [40.5\,mm] \item[\tt\bslash foldvskipiii] \IndexCmd{foldvskipiii} Abstand der dritten Falzmarke von der zweiten Falzmarke [58.5\,mm] \item[\tt\bslash addrvskip] \IndexCmd{addrvskip} Abstand des Adre"sfensters von der Textbereichs-Oberkante [7.5\,mm] \item[\tt\bslash addrindent] \IndexCmd{addrindent} Abstand des Adre"sfensters vom linken Rand des Textbereiches [0\,mm] \item[\tt\bslash addrwidth] \IndexCmd{addrwidth} Breite des Adre"sfensters [70\,mm] \item[\tt\bslash addrheight] \IndexCmd{addrheight} H"ohe des Adre"sfensters [35\,mm] \item[\tt\bslash locwidth] \IndexCmd{locwidth} Breite des "`Location"'-Feldes [(|\textwidth|$-$|\addrwidth|)/2 bei Option |slocfield| oder (|\textwidth|$-$|\addrwidth|)$*2/3$ bei Verwendung der Option |wlocfield|] \item[\tt\bslash refvskip] \IndexCmd{refvskip} Abstand des Referenzfeldes von der Adre"sfeld-Unterkante [5.5\,mm] \item[\tt\bslash sigindent] \IndexCmd{sigindent} Abstand der Gru"sformel und der Unterschrift vom linken Rand des Textbereiches [0\,mm] \end{labeling} \vspace{1em} \minisec{Schalter} \vspace{0.5em} (an jeden Schalternamen ist noch |on| bzw. |off| anzuh"angen): \vspace{0.5em} \begin{labeling}[\textrm{schaltet}]{\tt 12345678901} \item[\tt\bslash foldmarks] \IndexCmd{foldmarks} Falzmarken [Default = on] \item[\tt\bslash addrfield] \IndexCmd{addrfield} Adre"s- und "`Location"'-Feld [Default = on] \item[\tt\bslash subject] \IndexCmd{subject} "`Betreff"'-Text [Default = off] \end{labeling} \clearpage \makeatletter \let\ps@oldplain\ps@plain \let\ps@oldheadings\ps@headings \makeatother \renewpagestyle{plain}{(\textwidth,0pt)% {\hfill}{\hfill}{\hfill}% (\textwidth,0pt)}% {(\textwidth,.4pt)% {\pagemark\hfill}% {\hfill\pagemark}% {\hfill\pagemark\hfill}% (\textwidth,1pt)} \renewpagestyle{headings}{(\textwidth,1pt)% {\headmark\hfill}{\hfill\headmark}{\hfill\headmark\hfill}% (\textwidth,.4pt)}% {(\textwidth,.4pt)% {\pagemark\hfill% Copyright \copyright\ Markus Kohm, 1994--1996}% {Package \texttt{scrpage}\hfill\pagemark}% {\rlap{Package \texttt{scrpage}}\hfill% Copyright \copyright\ Markus Kohm, 1994--1996\hfill% \llap\pagemark}% (\textwidth,1pt)} \pagestyle{headings} \chapter{Das scrpage-package}\label{SCRPAGE} \BeginIndex{Package}{scrpage} Das \package{scrpage}-package definiert eine neue Schnittstelle um das Seitenlayout wesentlich flexibler definieren zu k"onnen, als dies mit dem Befehl |\pagestyle| m"oglich ist. Es "ahnelt in dieser Hinsicht dem \package{fancyheadings}-package~\cite{fancyheadings}, beschreitet aber in vielerlei Hinsicht neue Wege. So existiert z.\,B. neben der normalen, einfachen Anwenderschnittstelle auch eine komplexere, aber auch flexiblere f"ur die Experten unter uns. Das \package{scrpage}-package funktioniert hierbei nicht nur mit den \script{KOMA}-classes, sondern auch mit den \LaTeX -classes \class{article}, \class{report} und \class{book}. \section{Die Anwenderschnittstelle} \begin{decl}|\headfont|\\|\pnumfont|\end{decl}% \BeginIndex{Cmd}{headfont}\BeginIndex{Cmd}{pnumfont}% Der Befehl |\headfont| wird benutzt, um auf den f"ur die Seitenk"opfe und "~f"u"se definierten Zeichensatz umzuschalten; |\pnumfont| hingegen bestimmt den Zeichensatz der Seitennummern. Beide Befehle sind mit |\normalfont| vorbelegt, k"onnen aber nat"urlich auf die eigenen Bed"urfnisse umdefiniert werden, z.\,B. mit \begin{quote}|\renewcommand{\headfont}{\normalfont\slshape}| \quad .\end{quote} \EndIndex{Cmd}{headfont}\EndIndex{Cmd}{pnumfont} \begin{decl}|\headmark|\end{decl}% \BeginIndex{Cmd}{headmark}% Wird mittels der Option |twoside| ein zweiseitiges Layout gew"ahlt, so entspricht der Befehl |\headmark| dem \LaTeX -Befehl |\leftmark| auf geraden bzw.\ |\rightmark| auf ungeraden Seiten. Bei einseitigem Layout entspricht |\headmark| immer |\rightmark|. Das \package{scrpage}-package nimmt einem also die Entscheidung, ob es sich bei der aktuellen Seite um eine gerade oder ungerade Seite handelt, ab, so da"s |\headmark| in jedem Falle die aktuelle Kopfzeile enth"alt. \EndIndex{Cmd}{headmark} \begin{decl}|\pagemark|\end{decl}% \BeginIndex{Cmd}{pagemark}% |\pagemark| enth"alt immer die aktuelle Seitenzahl. Im Gegensatz zu |\thepage| wird bei |\pagemark| automatisch der richtige Zeichensatz (mittels |\pnumfont|) ausgew"ahlt. \EndIndex{Cmd}{pagemark} \begin{decl}|\deftripstyle|\arg{Name}\oarg{olw}\oarg{ilw}\arg{headleft}\arg{headmid}\arg{headright}% \arg{footleft}\arg{footmid}\arg{footright}\end{decl}% \BeginIndex{Cmd}{deftribstyle}% Mittels |\deftripstyle| wird nun ein neues Seitenlayout namens \m{Name} definiert. Die Argumente \m{headleft}, \m{headmid}, \m{headright}, \m{footleft}, \m{footmid} und \m{footright} verteilen sich dabei wie folgt auf die Seiten: \begin{center}\setlength{\unitlength}{1mm}\begin{picture}(120,82) \put(0,0){\dashbox{2}(58,82){~}} \put(1,78){\makebox(0,0)[l]{\emph{headright}}} \put(29,78){\makebox(0,0){\emph{headmid}}} \put(57,78){\makebox(0,0)[r]{\emph{headleft}}} \put(29,41){\makebox(0,0){left page}} \put(1,3){\makebox(0,0)[l]{\emph{footright}}} \put(29,3){\makebox(0,0){\emph{footmid}}} \put(57,3){\makebox(0,0)[r]{\emph{footleft}}} \put(60,0){\dashbox{2}(58,82){~}} \put(61,78){\makebox(0,0)[l]{\emph{headleft}}} \put(89,78){\makebox(0,0){\emph{headmid}}} \put(117,78){\makebox(0,0)[r]{\emph{headright}}} \put(89,41){\makebox(0,0){right page}} \put(61,3){\makebox(0,0)[l]{\emph{footleft}}} \put(89,3){\makebox(0,0){\emph{footmid}}} \put(117,3){\makebox(0,0)[r]{\emph{footright}}} \end{picture}\end{center} Mittels der optionalen Argumente \m{ilw} (\emph{i}nner \emph{l}ine \emph{w}idth, innere Linienbreite) und \m{olw} (\emph{o}uter \emph{l}ine \emph{w}idth, "au"sere Linienbreite) k"onnen Separationslinien f"ur den Kopf- und Fu"steil der Seite erzeugt werden, hierf"ur ist die gew"unschte Liniendicke anzugeben. Wird nur ein optionales Argument angegeben, so wird damit \m{ilw} gesetzt, also nur eine innere Separationslinie erzeugt (wie wir dies ja bereits von der Option |headsepline| der \script{KOMA}-classes kennen). Das ganze hat man sich dann so vorzustellen (mit \emph{olw}=2pt, \emph{ilw}=0.5pt): \begin{center}\setlength{\unitlength}{1mm}\begin{picture}(120,82) \put(0,0){\dashbox{2}(58,82){~}} \put(1,80){\rule{56\unitlength}{2pt}} \put(1,78){\makebox(0,0)[l]{\emph{headright}}} \put(29,78){\makebox(0,0){\emph{headmid}}} \put(57,78){\makebox(0,0)[r]{\emph{headleft}}} \put(1,76){\rule{56\unitlength}{0.5pt}} \put(29,41){\makebox(0,0){left page}} \put(1,5){\rule{56\unitlength}{0.5pt}} \put(1,3){\makebox(0,0)[l]{\emph{footright}}} \put(29,3){\makebox(0,0){\emph{footmid}}} \put(57,3){\makebox(0,0)[r]{\emph{footleft}}} \put(1,1){\rule{56\unitlength}{2pt}} \put(60,0){\dashbox{2}(58,82){~}} \put(61,80){\rule{56\unitlength}{2pt}} \put(61,78){\makebox(0,0)[l]{\emph{headleft}}} \put(89,78){\makebox(0,0){\emph{headmid}}} \put(117,78){\makebox(0,0)[r]{\emph{headright}}} \put(61,76){\rule{56\unitlength}{0.5pt}} \put(89,41){\makebox(0,0){right page}} \put(61,5){\rule{56\unitlength}{0.5pt}} \put(61,3){\makebox(0,0)[l]{\emph{footleft}}} \put(89,3){\makebox(0,0){\emph{footmid}}} \put(117,3){\makebox(0,0)[r]{\emph{footright}}} \put(61,1){\rule{56\unitlength}{2pt}} \end{picture}\end{center} Egal ob man mit |\deftripstyle| einen neuen Seitenstil definiert oder einen bereits existierenden umdefinitiert, in jedem Falle wird er erst bei Benutzung von |\pagestyle| oder |\thispagestyle| verwendet. \EndIndex{Cmd}{deftribstyle} Zur Umdefinition des Seitenstils |myheadings| sollte allerdings folgender Befehl zur Verwendung kommen: \begin{decl}|\deftripstyle*|\arg{Name}\oarg{olw}\oarg{ilw}\arg{headleft}\arg{headmid}\arg{headright}% \arg{footleft}\arg{footmid}\arg{footright}\end{decl}% \BeginIndex{Cmd}{deftribstyle*} Hiermit kann eine \emph{my}-Variante des Seitenstils definiert werden. Diese zeichnet sich dadurch aus, da"s der Seitenkopf nicht automatisch durch Kolumnentitel (wie |\chapter| und |\section|) ver"andert wird, sondern lediglich durch die Befehle |\markleft|, |\markright| und |\markboth| bestimmt wird. \EndIndex{Cmd}{deftribstyle*} \section{Die Expertenschnittstelle} \begin{decl}|\defpagestyle|\arg{Name}\arg{Kopf-Definition}\arg{Fu"s-Definition}\\ |\newpagestyle|\arg{Name}\arg{Kopf-Definition}\arg{Fu"s-Definition}\\ |\renewpagestyle|\arg{Name}\arg{Kopf-Definition}\arg{Fu"s-Definition}\\ |\providepagestyle|\arg{Name}\arg{Kopf-Definition}\arg{Fu"s-Definition}\end{decl}% \BeginIndex{Cmd}{defpagestyle}\BeginIndex{Cmd}{newpagesyle} \BeginIndex{Cmd}{renewpagestyle}\BeginIndex{Cmd}{providepagestyle} All diese Kommandos definieren einen neuen Seitenstil, hierbei haben \m{Kopf-Definition} und \m{Fu"s-Definition} folgenden Aufbau: \begin{quote} \parg{ull,ulw}\arg{gerade Seite}\arg{ungerade Seite}\arg{einseitig}\parg{bll,blw} \end{quote} dabei sind uns \m{ulw} (\emph{u}pper \emph{l}ine \emph{w}idth, obere Linienbreite) und \m{blw} (\emph{b}elow \emph{l}ine \emph{w}idth, untere Linienbreite) bereits als \m{olw} und \m{ilw} begegnet, \m{ull} und \m{bll} sind die dazugeh"origen L"angen, die bei den Befehlen |\deftripstyle| und |\deftribstyle*| automatisch auf die Breite der aktuellen Seite (also |\textwidth|) gesetzt werden. F"ur \m{gerade Seite} und \m{ungerade Seite} sind die entsprechenden Definitionen der Seitenk"opfe bzw.\ "~f"u"se einzusetzen. Ist das Seitenlayout einseitig, so wird statt diesen Definitionen immer \m{einseitig} verwendet. Was bisher nicht erl"autert wurde sind die Unterscheidungsmerkmale der einzelnen Befehle, dies soll jetzt nachgeholt werden: |\defpagestyle| definiert \emph{immer} den Seitenstil \m{Name}, egal ob dieser vorher eventuell schon (anders) definiert war oder nicht. Dies stellt also quasi die Rambo-Variante dar, w"ahrend |\newpagestyle| eine Fehlermeldung ausgibt, falls der Seitenstil schon definiert sein sollte. Mit |\renewpagestyle| verh"alt es sich genau andersherum: Ist der Seitenstil noch nicht definiert, ergibt sich hier eine Fehlermeldung, ansonsten wird er wie angegeben umdefiniert. |\providepagestyle| zu guter letzt definiert den angegebenen Seitenstil nur, wenn er vorher noch nicht definiert war. Im Gegensatz zu |\newpagestyle| wird aber bei bereits vorhandener Definition nix getan (stimmt nicht ganz, es wird immerhin ein Eintrag in der LOG-Datei get"atigt), also insbesondere keine Fehlermeldung ausgegeben. Den alten \LaTeXe -Hasen unter uns wird dies alles bekannt vorkommen, sind diese Befehle doch analog zu |\def|, |\newcommand|, |\renewcommand| und |\providecommand| ausgelegt worden. So, nach so viel trockener (aber hoffentlich schmeckender) Theorie nun endlich, quasi als kr"onender Abschlu"s, ein Beispiel, mit dem die Kopf- und Fu"szeilen dieses Kapitels realisiert wurden: \begin{small}\begin{verbatim} \renewpagestyle{plain}{(\textwidth,0pt)% {\hfill}{\hfill}{\hfill}% (\textwidth,0pt)}% {(\textwidth,.4pt)% {\pagemark\hfill}% {\hfill\pagemark}% {\hfill\pagemark\hfill}% (\textwidth,1pt)} \renewpagestyle{headings}{(\textwidth,1pt)% {\headmark\hfill}{\hfill\headmark}{\hfill\headmark\hfill}% (\textwidth,.4pt)}% {(\textwidth,.4pt)% {\pagemark\hfill% Copyright \copyright\ Markus Kohm, 1994--1996}% {Package \texttt{scrpage}\hfill\pagemark}% {\rlap{Package \texttt{scrpage}}\hfill% Copyright \copyright\ Markus Kohm, 1994--1996\hfill% \llap\pagemark}% (\textwidth,1pt)} \pagestyle{headings} % und ab geht die Post... \end{verbatim}\end{small} \EndIndex{Cmd}{defpagestyle}\EndIndex{Cmd}{newpagesyle} \EndIndex{Cmd}{renewpagestyle}\EndIndex{Cmd}{providepagestyle} \EndIndex{Package}{scrpage} \clearpage \makeatletter \let\ps@plain\ps@oldplain \let\ps@headings\ps@oldheadings \makeatother \pagestyle{headings} \chapter{Die kleineren Beigaben} Dem \script{KOMA}-Script Paket liegen noch ein paar kleine, aber feine packages bei, die dem Anwender Freude bereiten und (ebenso wie das \package{scrpage}-package) auch in Verbindung mit den original \LaTeX -classes problemlos funktionieren. \section{Das scrdate-package} \BeginIndex{Package}{scrdate} \begin{decl}|\todaysname|\\|\dayname|\arg{Name}\end{decl}% \BeginIndex{Cmd}{todaysname} Mit |\todaysname| erh"alt man neben dem Tag, den man ja mit |\today|\IndexCmd{today} erh"alt und mit |\date|\IndexCmd{date} bekannterma"sen setzen kann, auch den dazugeh"origen Wochentag. So liefert z.\,B. \begin{quote}\begin{small}\begin{verbatim} Dieses Dokument wurde an einem \todaysname\ "ubersetzt. \end{verbatim}\end{small}\end{quote} die Ausgabe \begin{quote} Dieses Dokument wurde an einem \todaysname\ "ubersetzt. \end{quote} |\dayname| setzt entsprechend diesen Wochentag auf einen festen Wert. \EndIndex{Cmd}{todaysname} Das scrdate-package beherrscht derzeit die Sprachen Englisch (english and USenglish), Deutsch (german) und Franz"osisch (french), kann aber auch f"ur andere Sprachen konfiguriert werden. N"aheres dazu entnehme man \file{scrdate.dtx}. Bei der aktuellen Version ist es egal, ob \package{scrdate} vor oder nach \package{german}\IndexPackage{german}, \package{babel}\IndexPackage{babel} oder "ahnlichen Paketen geladen wird, in jedem Falle wird die korrekte Sprache gew"ahlt\footnote{Etwas genauer ausgedr"uckt: Solange die Spachauswahl in einer zu \package{babel} bzw. \package{german} kompatiblen Form erfolgt und die Sprache \package{scrdate} bekannt ist, wird die Sprache korrekt gew"ahlt. Ist dies nicht der Fall, werden (US)englische Ausdr"ucke verwendet. Wie man \package{scrdate} neue Sprachen beibringen kann, ist \file{scrdate.dtx} zu entnehmen.}. \EndIndex{Package}{scrdate} \section{Das scrtime-package} \BeginIndex{Package}{scrtime} \begin{decl}% |\thistime|\oarg{Trennung}\\ |\thistime*|\oarg{Trennung}\\ |\settime|\arg{Wert}\end{decl}% \BeginIndex{Cmd}{thistime}\BeginIndex{Cmd}{thistime*}\BeginIndex{Cmd}{settime} |\thistime| liefert die aktuelle Zeit; als Trennbuchstabe zwischen den Werten Stunden, Minuten und Sekunden wird das optionale Argument \m{Trennung} verwendet; die Voreinstellung ist hierbei das Zeichen `:'. |\thistime*| funktioniert fast genau wie |\thistime|. Der einzige Unterschied besteht darin, da"s im Gegensatz zu |\thistime| bei |\thistime*| die Minutenangaben bei Werten kleiner 10 nicht durch eine vorangestellte Null auf zwei Stellen erweitert wird. So liefert z.\,B. die Zeile \begin{quote}\begin{small}\begin{verbatim} Ihr Zug geht um \thistime Uhr. \end{verbatim}\end{small}\end{quote} als m"ogliche Ergebnisse: \begin{quote} Ihr Zug geht um \thistime Uhr. Ihr Zug geht um 23:09 Uhr. \end{quote} Demgegen"uber liefert z.\,B. die Zeile \begin{quote}\begin{small}\begin{verbatim} Beim n"achsten Ton ist es \thistime*[\ Uhr,\ ] Minuten und 42 Sekunden. \end{verbatim}\end{small}\end{quote} als m"ogliche Ergebnisse: \begin{quote} Beim n"achsten Ton ist es \thistime*[\ Uhr,\ ] Minuten und 42 Sekunden. Beim n"achsten Ton ist es 23\ Uhr,\ 9 Minuten und 42 Sekunden. \end{quote} |\settime| setzt diese Zeit auf einen bestimmten festen Wert\footnote{% Allerdings darf man nicht erwarten, da"s nun die Zeit stillsteht!}; anschlie"send wird das optionale Argument von |\thistime| bzw. |\thistime*| ignoriert, da ja die Zeichenkette, die |\thistime| bzw. |\thistime*| nun liefert, hiermit explizit festgelegt wurde. \EndIndex{Cmd}{thistime}\EndIndex{Cmd}{thistime*}\EndIndex{Cmd}{settime} \begin{decl}|12h|\\|24h|\end{decl}% \BeginIndex{Option}{12h}\BeginIndex{Option}{24h} Mit den Optionen |12h| und |24h| kann ausgew"ahlt werden, ob die Zeit bei |\thistime| und |\thistime*| im 12-Stunden- oder 24-Stunden-Format ausgegeben werden soll; voreingestellt ist |24h|.\footnote{Leider beherrscht das \package{scrtime}-% package noch nicht die Sternzeit nach \textsc{StarTrek}\Index{StarTrek}, ein echter Mangel!} Die Option verliert bei einem Aufruf von |\settime| ebenfalls ihre G"ultigkeit. \EndIndex{Option}{12h}\EndIndex{Option}{24h} \EndIndex{Package}{scrtime} \clearpage \begin{thebibliography}{XXXXX99} \bibitem[Duden20]{Duden} \textsc{Duden} "`Die deutsche Rechtschreibung"', Band 1, 20.~Auf"|lage, Dudenverlag, 1991 \bibitem[CJK]{CJK} \textsc{Werner Lemberg:} "`Chinesisch, Japanisch und Koreanisch mit \LaTeX"', 1995 \bibitem[POost94]{fancyheadings} \textsc{Piet van Oostrum:} "`Page headers and footers in \LaTeX"', 11.~Oktober~1994 \bibitem[JTsch87]{JanTschichold} \textsc{Jan Tschichold:} "`Ausgew"ahlte Aufs"atze "uber die Gestalt des Buches und der Typographie"', Zweite Auf"|lage, Birkh"auser Verlag, Basel~1987 \end{thebibliography} \printindex \end{document} % % Ende der Datei `scrguide.tex'