%
% LAYOUT.TEX - Kurzbeschreibung von PA 88-10-04 (LaTeX)
%                                      99-03-20
%
%  Updated for REFMAN.CLS (LaTeX2e)
%
\documentclass[twoside,a4paper]{refart}
\usepackage{makeidx}
\usepackage{ifthen}
\usepackage{german}
%\usepackage[atari]{umlaute}
% ifthen wird vom Bild von N.Beebe gebraucht!

\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}}
\def\bs{\char'134 } % backslash in \tt font.
\newcommand{\zB}{z.\,B.}
\newcommand{\dH}{d.\,h.}

\title{Layout-"Anderungen mit \LaTeX}
\author{EDV-Zentrum der TU Wien, Abt.~Digitalrechenanlage \\
Hubert Partl \\
1988-10-04   \\
Axel Kielhorn\thanks{a.kielhorn@tu-bs.de}\\
1996-01-01   \\
H27.0 --- Version 1}


\date{}
\emergencystretch1em  % F"ur TeX <3.0 auskommentieren!

\pagestyle{myfootings}
\markboth{Layout-"Anderungen mit \rm\LaTeX}%
         {Layout-"Anderungen mit \rm\LaTeX}

\makeindex % Dies nur als Demonstration, das jetzt auch ein Index
           % m"oglich ist :-)
% Bei Marginlabels mu"s der Index *vor* dem Label stehen.

% Es ist notwendig die Umlaute in der TeX-Schreibweise zu schreiben,
% da der german.sty sie sonst in etwas verwandeln w"urde, mit dem
% MakeIndex nicht zurecht kommt.


\setcounter{tocdepth}{2}

\begin{document}

\maketitle

\begin{abstract}
	Dieses Dokument beschreibt die M"oglichkeiten der 
	\texttt{refart} und \texttt{refrep} Class f"ur \LaTeXe. 
	Sie arbeitet nicht mehr mit dem alten \LaTeX\ 2.09 
	zusammen und enth"alt einige Verbesserungen gegen"uber dem 
	Original. Alte \texttt{REFMAN} Quellen sollten sich aber 
	problemlos an die Class anpassen lassen.
\end{abstract}


Dieses Heft ist als Erg"anzung zu Kapitel~5 (``Designing It Yourself'')
des \LaTeX-Manuals von Leslie Lamport gedacht.

\tableofcontents

\newpage


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Einleitung}

\subsection{Autor, Layout-Designer und Setzer}

Jedes Schrift"-st"uck -- von einer kurzen handgeschriebenen Notiz bis 
zu einem gedruckten Buch --besteht aus zwei Komponenten: {\bf Inhalt} 
und {\bf Form.} In den meisten F"allen ist die Form nicht Selbstzweck 
sondern dient nur dazu, den Inhalt f"ur den Leser verst"and"-lich 
darzustellen.

\index{Autor}\marginlabel{Autor:}
Der {\bf Inhalt} wird vom jeweiligen Autor geliefert.
Bei Druckwerken wird der Autor meist durch den Lektor des 
Verlages oder den Herausgeber der Zeitschrift unterst"utzt.

Bei der Verwendung des Textsatzsystems \LaTeX\ wird der Inhalt im 
Hauptteil des \LaTeX-""Eingabefiles angegeben -- also zwischen 
\verb|\begin{document}| und \verb|\end{document}| -- erg"anzt durch 
\LaTeX-Befehle, die angeben, welche Bedeutung die einzelnen Text-
Teile haben.

\index{Designer}\marginlabel{Designer:}
Die {\bf Form} eines Druckwerks wird "ublicherweise vom Verleger 
festgelegt, der das Layout von den im Verlag angestellten 
Designern entwerfen l"a"st.

Die mit \LaTeX\ mitgelieferten sogenannten "`Document Classes"' 
wurden von professionellen amerikanischen Layout-Designern f"ur die 
von Leslie Lamport vorgesehenen Arten von Schrift"-st"ucken entworfen, 
also f"ur wissenschaftliche Zeitschriften, Berichte und B"ucher -- auf 
der Grundlage der in den USA "ublichen Konventionen. Die "`Koma-Script-
Classes"' sind an den europ"aischen Geschmack angepa"st und in vielen 
Kleinigkeiten optimiert worden. Diese Layouts sind in den sogenannten 
"`Class-Files"' festgelegt. Am Beginn des \LaTeX-""Eingabefiles -- 
vor dem Befehl \verb|\begin{document}| -- wird angegeben, in welcher 
Form der Inhalt des Schrift"-st"ucks gesetzt und ausgedruckt werden 
soll.

\index{Setzer}\marginlabel{Setzer:}
Der Setzer in der Druckerei
bringt den vom Autor bzw.\ Lektor gelieferten Inhalt in die vom 
Layout-Designer festgelegte Form, in der das Schrift"-st"uck dann 
schlie"slich ausgedruckt wird.

Bei der Verwendung von \LaTeX\ erfolgt das Setzen durch das 
Computer-""Programm \TeX\ und das Ausdrucken durch ein weiteres 
Computer-""Programm, den sogenannten Device-Driver.


\subsection{Layout-"Anderungen}

Wenn das Schrift"-st"uck nicht in einem der vorgefertigten 
\LaTeX-Layouts gesetzt werden soll, sind die folgenden zwei 
Voraussetzungen notwendig:
\begin{enumerate}

\item
	Das Layout mu"s entworfen werden.
	Dies sollte im allgemeinen von einem professionellen Designer 
	gemacht werden. Falls kein solcher zur Verf"ugung steht, mu"s 
	sich der Autor oder der Herausgeber als "`Amateur-Designer"' 
	versuchen -- am besten durch Anlehnung an professionell 
	gestaltete Vorbilder.

\seealso{\ref{design}}
	Ausf"uhrlichere Hinweise dazu werden in Kapitel~\ref{design} 
	angegeben.

\item
	Das Layout mu"s in Form eines \LaTeX-Class-Files formuliert 
	werden. Dies kann entweder als "`Class-Option"' geschehen, oder 
	durch die Definition einer neuen "`Class"'. Die komplette 
	Neudefinition hat den Vorteil, das sie weitreichendere 
	"Anderungen erlaubt. Ich habe mich daher bei der Portierung nach 
	\LaTeXe\ f"ur eine eigene "`Class"' entschieden. Dadurch wird 
	die "Ubertragung von alten Dateien zwar etwas erschwert, aber 
	meiner Meinung nach "uberwiegen die Vorteile.
	Die Angabe dieser "`Class"' bzw.\ dieser "`Class-Option"' am 
	Beginn des \LaTeX-""Eingabefiles bewirkt dann, da"s der Inhalt 
	des Schrift"-st"ucks in dieser neuen Form gesetzt und gedruckt 
	wird.

\seealso{\ref{layout}}
	Ausf"uhrlichere Hinweise dazu werden in Kapitel~\ref{layout} 
	angegeben.

\end{enumerate}

\section{Die Kunst des Layout-Design}
\label{design}
\label{Layout-Design}
\index{Layout-Design}

\subsection{Allgemeine Regeln}
\index{Regeln}

Es gibt fast keine allgemeing"ultigen Regeln, sondern man mu"s f"ur jedes 
Schrift"-st"uck oder jede Reihe von Schrift"-st"ucken ein eigenes Layout 
entwerfen.

Dieses Layout mu"s sich vor allem daran orientieren,
{\it wer\/} das Schrift"-st"uck {\it wie\/} lesen wird.

Ein wichtiges Kriterium ist \zB, ob der Leser es eher von A bis~Z 
durchgehend lesen will wie einen Kriminalroman oder ein 
"`Tutorial"', oder ob er eher bestimmte Stellen rasch auf"|finden 
will wie in einem Telefonbuch oder in einem "`Reference Manual"'.
\index{Manual}\index{Telefonbuch}

Au"serdem mu"s das Layout die bestehenden Konventionen ber"ucksichtigen, 
vor allem die Gewohnheiten des Lesers, aber auch den sogenannten 
"`House Style"',\index{House-Style} durch den sich verschiedenartige 
Schrift"-st"ucke und die Produkte verschiedener Hersteller oder 
Institutionen voneinander unterscheiden sollen.\footnote{Man vergleiche 
\zB\ das jeweils typische Layout verschiedener Fachzeitschriften oder 
Tageszeitungen.}

\attention
Der Hauptzweck des Layouts ist stets, da"s der Leser die gesuchten 
Informationen gut findet und sie gut lesen kann, und da"s er den Inhalt und 
den logischen Aufbau des Schrift"-st"ucks richtig versteht.
Wichtig sind also "Ubersichtlichkeit, Lesbarkeit, Konsistenz und 
dergleichen. Die Sch"on"-heit ("Asthetik) steht demgegen"-"uber im 
allgemeinen nur an zweiter Stelle.\footnote{Dies gilt nat"urlich nicht 
f"ur Werbeprospekte, Bild"-b"ande und dgl.}

Im folgenden werden ein paar einfache 
"`Faustregeln"'\index{Faustregeln} f"ur den Seitenaufbau angef"uhrt, die 
f"ur die meisten Anwendungen G"ultigkeit haben.
\begin{description}

\item[Zeilenabst"ande]\index{Zeilenabst\"ande}
	Die Zeilenabst"ande m"ussen gr"o"ser als die Wortabst"ande 
	sein, damit die Augen des Lesers richtig entlang der Zeilen 
	gef"uhrt werden.

\item[Zeilenl"ange]\index{Zeilenl\"ange}
	Die Zeilenl"ange
	-- bzw.\ bei mehrspaltigem Druck die Spaltenbreite --
	soll m"oglichst bei etwa 60~Zeichen pro Zeile liegen. Zu lange 
	Zeilen sind schlecht lesbar, weil sie anstrengende 
	Augenbewegungen erfordern und gleichzeitig die 
	Wahrscheinlichkeit erh"ohen, beim Zeilenwechsel in die falsche 
	Zeile zu geraten. Zu kurze Zeilen machen Probleme beim 
	Randausgleich (Blocksatz) und beim Abteilen (Silbentrennung). 
	Wenn l"angere Zeilen notwendig sind, dann m"ussen die 
	Zeilenabst"ande vergr"o"sert werden.

\item[Seitenaufbau]\index{Seitenaufbau}
	Die normalen Textseiten sollen einen m"oglichst einheitlichen 
	Aufbau haben. Abbildungen, Tabellen und spezielle Seiten wie 
	Inhaltsverzeichnis, Index usw. sollen aber \emph{nicht} in 
	dasselbe Schema gepre"st werden, sondern stets so viel Platz 
	einnehmen, wie f"ur die jeweilige Tabelle etc. am g"unstigsten 
	ist (also durchaus k"urzer oder l"anger als die normale 
	Zeilenl"ange, evtl.~mit einem Rahmen darum herum). Wenn m"oglich 
	sollten bei der Seitenaufteilung auch "asthetische Grundregeln 
	wie \zB\ der "`Goldene Schnitt"' ($ 13 : 8 \approx 8 : 5 $) 
	angewendet werden.

\item[Randnoten]\index{Randnoten}
	"`Randnoten"' sind f"ur viele Zwecke besser geeignet als 
	Fu"s"-noten, weil sie direkt neben dem Text erscheinen, auf den 
	sie sich beziehen. Dazu z"ahlen auch Symbole wie \zB\ 
	"`Achtung-Zeichen"', die wichtige Text-Teile markieren bzw.\ 
	den Leser auf sie hinweisen.

\item[Kopf- und Fu"szeilen]\index{Kopfzeilen}\index{Fu{\ss}zeilen}
	Der Inhalt von Kopf- und Fu"s-Zeilen soll die Orientierung 
	innerhalb des Schrift"-st"ucks erleichtern. Falls zu erwarten 
	ist, da"s manche Leser einzelne Seiten aus dem Schrift"-st"uck 
	herauskopieren (\zB\ einen Artikel aus einer Zeitschrift), 
	sollte in der Kopf- oder Fu"szeile auch die Information zu 
	finden sein, aus welchem Schrift"-st"uck die Seiten stammen. 
	Falls h"aufig neue Versionen eines Schrift"-st"ucks erstellt 
	werden (\zB\ bei Software-Manuals), sollte auch das Datum oder 
	die Versionsnummer in der Kopf- oder Fu"szeile erscheinen.

\end{description}

\subsection{Spezielle Hinweise f"ur technische Beschreibungen}

Wir wollen kurz die Eignung von drei verschiedenen Layouts f"ur den an 
unserer Universit"at h"aufigen Spezialfall von technischen 
Beschreibungen, Users' Guides, Reference Manuals, Mitteilungs"-bl"attern 
und "ahnlichen technischen Druckwerken vergleichen:\footnote{Diese 
Hinweise stammen von Paul Stiff, der Layout-Design an der University of 
Reading unterrichtet.}


\begin{description}

\item[Plain \TeX]
	Das Standardformat von Plain \TeX\ hat vor allem den gro"sen 
	Nachteil, da"s die Zeilen viel zu lang sind, was sich schlecht 
	auf die Lesbarkeit und "Ubersichtlichkeit auswirkt. Dieses von 
	Schreibmaschinenschrift gewohnte Schriftbild eignet sich nicht 
	f"ur die von \TeX\ unterst"utzte "`Druck"'-Schrift. Die an der 
	TU~Wien vor der Einf"uhrung von \LaTeX\ entwickelten Macros {\tt 
	EASY.TEX} und \hbox{\tt ARTii.TEX} bzw.\ \hbox{\tt REPii.TEX} 
	haben au"serdem einige weitere Design-M"angel, \zB\ sind die 
	Abst"ande zwischen den Kapitel-"""Uberschriften zu gro"s.

\item[Standard-\LaTeX]
	Auch das Standardformat von \LaTeX\ ist f"ur diese Zwecke nicht 
	ideal. Die Zeilenl"ange ist zwar richtig gew"ahlt, aber die 
	Seiten enthalten einen zu gro"sen ungen"utzten Rand, insbesondere 
	oben und unten. Au"serdem werden f"ur die Kapitel-"""Uberschriften 
	etwas zu gro"se Schriften verwendet.

\item[Reference-Manual-Style]
	Ein f"ur solche Zwecke g"unstigeres Seiten-Layout findet man bei 
	einigen in den letzten Jahren neu erschienenen Reference 
	Manuals:\footnote{Ein h"aufig zitiertes  -- allerdings in den 
	konkreten Details auch nicht ganz ideales -- Beispiel ist das 
	"`PostScript Reference Manual"'.}
\begin{itemize}
\item
	Der fortlaufenden Text steht mit einer relativ kurzen, gut 
	lesbaren Zeilenl"ange im rechten Teil der Seite. Dieser Teil 
	dient also zum fortlaufenden Lesen einzelner Abschnitte.
\item
	Im breiten linken Rand jeder Seite stehen die 
	"Uberschriften sowie Stichworte und andere "`Randnoten"'. Dieser 
	Teil dient also zum raschen Auffinden von bestimmten 
	Informationen innerhalb des gesamten Schrift"-st"ucks.
\item
	Abbildungen und Tabellen stehen je nach ihrem Platzbedarf in 
	der einen oder anderen Spalte oder gehen "uber die gesamte 
	Seitenbreite.
\end{itemize}
\seealso{\ref{refmanex}}
Eine Anleitung, wie man ein solches Layout mit \LaTeX\ realisieren 
kann, wird in Abschnitt~\ref{refmanex} angegeben.

\end{description}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\section{Wie kann man das \LaTeX-Layout "andern?}
\label{layout}

\subsection{Vor und Nachteile des Textsatzsystems \LaTeX}

\marginlabel{Vorteile:}
Der gro"se Vorteil von \LaTeX\ besteht darin, da"s es ein "`generisches"' 
oder "`logisches"' Design \index{Design, logisches}\index{Design, generisches}
unterst"utzt. Darunter versteht man, da"s der 
Autor nur mit einigen wenigen Befehlen angeben mu"s, welche 
\emph{Bedeutung} die einzelnen Text-Teile haben: "Uberschriften, Zitate, 
mathematische Gleichungen, Listen, Aufz"ahlungen, Literaturangaben usw. 
Diese logischen Begriffe werden dann vom System automatisch in der 
richtigen Art und Weise gesetzt und ausgedruckt. Was "`richtig"' ist, 
mu"s dem System vorher in geeigneter Weise mitgeteilt werden, bei 
\LaTeX\ durch die Angabe der "`Document Class"' und eventuell weiterer 
"`Packages"'.

Im Gegensatz dazu steht das von "alteren Textverarbeitungsprogrammen und 
auch von Plain~\TeX\ unterst"utzte "`visuelle"' Design,\index{Design, 
visuelles} bei dem der Autor die sichtbaren Eigenschaften wie 
Schriftart, Schriftgr"o"se, vertikale Abst"ande, horizontale Einr"uckungen 
usw. angeben mu"s.

Das Prinzip des logischen Design\index{Design, logisches} macht 
einerseits die Anwendung durch den Autor wesentlich einfacher und 
"ubersichtlicher und stellt andererseits die logische Konsistenz des 
Schrift"-st"ucks sicher (\zB\ einheitliche Schriftart f"ur alle 
"Uberschriften des gleichen Levels, einheitliche Numerierung von 
Kapiteln und von Gleichungen, einheitliche Darstellung von Listen und 
Aufz"ahlungen, usw.).

\marginlabel{Nachteile:}
Als Nachteil von \LaTeX\ wird immer wieder angef"uhrt, da"s es den Autor 
zu sehr einschr"ankt und da"s man das Layout zu wenig "andern kann. Dies 
ist nur teilweise richtig, n"amlich nur dann, wenn man sich auf die vier 
mit \LaTeX\ mitgelieferten Standard-Layouts beschr"ankt, die sich 
selbstverst"andlich nicht f"ur alle Anwendungen eignen und die au"serdem 
sehr stark an amerikanische Konventionen angepa"st sind.

\LaTeX\ ist aber wesentlich m"achtiger und flexibler: Man kann praktisch 
beliebige "Anderungen am Layout dadurch erreichen, da"s man die in den 
Style-Files enthaltenen Definitionen "andert, die ge"-"an"-derten 
Definitionen in privaten Style-Option-Files speichert und diese dann 
als zus"atzliche Style-Options aufruft. Der Aufwand daf"ur ist keineswegs 
gr"o"ser als bei der Verwendung von Plain \TeX, in manchen F"allen sogar 
wesentlich geringer.

\subsection{Eingabe-Dateien und Class-Dateien}

In Einklang mit dem Prinzip des logischen Design und der Trennung 
von Inhalt und Form verwendet \LaTeX\ grund"-s"atz"-lich zwei Arten 
von Dateien:
\begin{itemize}
\item
	Der Inhalt einschlie"slich der logischen Struktur des 
	Schrift"-st"ucks wird in den \LaTeX-""Eingabefiles festgelegt.
\item
	Die Form (das Layout) wird in sogenannten Class-Files und 
	eventuell auch Packages festgelegt.
\end{itemize}
Welche Class- und Package-Files ein Schrift"-st"uck verwendet -- 
\dH\ in welchem Layout es gesetzt werden soll -- wird am Beginn des 
Eingabefiles mit den Befehlen \verb|\documentclass| bzw. 
\verb|\usepackage| angegeben.

F"ur die Erzeugung eines Schriftst"ucks mit \LaTeX\ sind also 
zumindest zwei Files notwendig: ein Eingabefile und ein Class-File.

Diese Trennung entspricht den in der Einleitung erl"auterten 
unterschiedlichen Funktionen von Autor und Layout-Designer. Sie hat 
aber auch f"ur den Fall, da"s der Autor selbst das Layout festlegt, 
wesentliche  Vorteile:
\begin{itemize}
\item
	Einerseits wird damit sichergestellt, da"s zusammengeh"orige 
	Schrift"-st"ucke automatisch im selben Layout gesetzt werden, 
	auch wenn dieses Layout nach dem Erstellen des Textes noch 
	ge"-"an"-dert wurde. Dies w"are nur schwer zu erreichen, wenn die 
	Layout-""Definitionen direkt in jedem einzelnen 
	Eingabefile enthalten w"aren.
\item
	Andererseits ist es auf diese Weise ohne gro"sen Aufwand 
	m"oglich, denselben Inhalt in verschiedenen Layouts 
	auszudrucken, \zB\ als Artikel f"ur die eine oder andere 
	wissenschaftliche Zeitschrift oder als Kapitel einer 
	Dissertation und eines Forschungsberichts.
\end{itemize}

\subsection{Class-Files und Package-Files}

\LaTeX\ unterst"utzt innerhalb der Layout-Definition die folgende 
Hierarchie von "`Class"' und "`Option"', die sich in den verschiedenen 
Parametern des Befehls \verb|\documentclass| widerspiegelt:
\begin{itemize}
\item
	Als erstes wird der Inhalt desjenigen "`Class-Files"' 
	verarbeitet, dessen Name im \verb|\documentclass|-Befehl 
	zwischen den geschwungenen Klammern angegeben wurde. Dies gibt 
	die grunds"atzliche Art des Schriftst"ucks an.
\item
	Dann werden der Reihe nach diejenigen "`Class-Option-Files"' 
	verarbeitet, deren Namen zwischen den eckigen Klammern 
	angegeben wurden. Damit kann man verschiedene Layout-Varianten 
	ausw"ahlen.
\item
	Als dritter Schritt werden dann die im 
	\verb|\usepackage|-Befehl angegebenen Packages geladen, die 
	ihrerseits wieder Optionen laden k"onnen.

\end{itemize}
Diese mehrstufige Verarbeitung macht es m"oglich, die 
Layout-""Definition in mehrere kleinere Einheiten zu zerlegen, wobei in 
einem Class-Option-File sowohl Layout-Definitionen der urspr"unglichen 
Class-Files abge"-"andert als auch weitere Definitionen hinzuge"-f"ugt 
werden k"onnen.

Class-Files, Class-Option-Files und Packages unterscheiden sich von 
"`normalen"' Eingabefiles im wesentlichen durch die folgenden Punkte:
\begin{itemize}
\item
	Sie d"urfen nur Definitionen enthalten, aber keine Text-Ausgaben 
	bewirken.
\item
	Das Sonderzeichen "`Klammeraffe"' ({\tt @}) hat in ihnen die 
	Bedeutung eines Buchstabens ("`letter"'), \dH\ es ist 
	innerhalb von Befehlsnamen erlaubt. Die meisten von \LaTeX\ 
	intern verwendeten Befehle enthalten Klammeraffen in ihren 
	Namen, damit Kollisionen mit den vom Benutzer verwendeten 
	Befehlen ausgeschlossen werden.
\item
	Die Filenamen haben die "`Extension"' {\tt cls} bzw. {\tt clo} 
	oder {\tt sty} f"ur Packages (nicht {\tt tex}).
\end{itemize}

\subsection{Vorgangsweise bei Layout-"Anderungen}
\index{Layout-\"Anderungen, Vorgangsweise}

\subsubsection{Festlegen der "Anderungen gegen"uber dem Original-Layout}

Im allgemeinen ist es g"unstiger, die Class-Files f"ur das neue Layout 
nicht von Null an neu zu erstellen, sondern die bereits bestehenden 
\LaTeX-Class-Files als Vorbilder zu verwenden und so viel wie m"oglich 
von den darin enthaltenen Definitionen zu "ubernehmen.

In den meisten F"allen gen"ugt es sogar, ein mehr oder weniger kurzes 
Package-File zu erstellen, das nur die Unterschiede des neuen Layouts 
gegen"uber einem der originalen \LaTeX-Layouts enth"alt, und diese 
"`Option"' dann in Verbindung mit der originalen "`Class"' zu verwenden.

Im ersten Schritt legt man daher fest, in welchen Bereichen sich das 
neue Layout vom originalen \LaTeX-Layout unterscheidet und worin diese 
Unterschiede im einzelnen bestehen. Man geht dabei am besten so vor, 
da"s man sich f"ur alle als \LaTeX-Befehle oder -Environments definierten
logischen Einheiten "uberlegt, in welchem Layout sie gesetzt werden 
sollen. Neue zus"atzliche \LaTeX-Befehle sollte man nach M"oglichkeit 
\emph{nicht} erfinden -- und wenn, dann nur im Einklang mit dem Prinzip 
des logischen Design und mit der Struktur der anderen \LaTeX-Befehle 
(\zB\ neue Environments f"ur spezielle Tabellen, oder eigene Befehle 
f"ur spezielle Hervorhebungen).

\subsubsection{Finden der Original-Definitionen}

Im zweiten Schritt mu"s man finden, wo und wie alle 
die Layout-""Eigenschaften, die man "andern will, im Original definiert 
sind. Dazu soll man die folgenden Quellen in der folgenden 
Reihenfolge durchsuchen:\footnote{Diese Hinweise stammen von Sue 
Brooks, die im Rahmen der \TeX-""Konferenz 1988 in Exeter ein 
Work"-shop f"ur "`\LaTeX-Hacker"' leitete.}
\begin{enumerate}
\item das \LaTeX-Manual von Leslie Lamport,
\item die Dokumentations-Files {\tt *.dtx}
\item die Kernal-Files {\tt *.ltx},
\item das \TeX book von Donald E.~Knuth.
\end{enumerate}
Die beiden B"ucher sind im Buchhandel erh"altlich (Verlag Addison 
Wesley). Ob und wo die Files an Ihrem Computer angelegt sind, ist im 
"`\LaTeX\ Local Guide"' Ihrer Installation angegeben. Die Files sind 
sehr gut kommentiert, soda"s man sich im allgemeinen auch dann gut in 
ihnen zurechtfindet, wenn man nicht alle Details der darin enthaltenen 
Befehle versteht.


\subsubsection{Schreiben eines neuen Package-Files}

Im dritten Schritt erzeugt man das neue Package-File. Man w"ahlt einen 
Namen f"ur die neue Package (\zB~\texttt{refman}) und bildet den 
Filenamen aus diesem Namen und der Extension \texttt{sty} (\zB\ 
\texttt{refman.sty}). Ausgerechnet f"ur \texttt{refman} trift 
diese Vorgehensweise nicht zu, da es sich inzwischen um eine 
eigenst"andige Class handelt.

Dieses File mu"s nur diejenigen Definitionen 
(\verb|\def|-Befehle, Wertzuweisungen und dergleichen) enthalten, die 
sich gegen"uber der Originalversion unterscheiden, und/oder diejenigen, 
die man zus"atzlich definieren will.

Bei den "Anderungen geht man am besten so vor, da"s man die betreffenden 
\verb|\def|-Befehle, Wertzuweisungen usw.\ aus den originalen Files in 
das neue File kopiert und dann dort entsprechend modifizert.

Auch bei neuen Definitionen lehnt man sich am besten an Vorbilder in 
den originalen Files an.

Au"serdem mu"s man den Zweck des Files, seine Verwendung, den 
Autor und das letzte "Anderungsdatum sowie alle im File 
enthaltenen Definitionen auf Kommentarzeilen innerhalb des Files 
dokumentieren. Bei sehr umfangreichen Style-Files kann man dazu 
das \texttt{docstrip}-Programm benutzen, mit dem auch alle 
\LaTeXe\ Dateien dokumentiert wurden. Das Script 
(\texttt{*.ins}) erzeugt aus dem Dokument (\texttt{*.dtx}) dann 
eine Package (\texttt{*.sty}) oder Class (\texttt{*.cls}).
Die \texttt{dtx}-Datei dient gleichzeitig als Dokumentation.
Dadurch bleibt gew"ahrleistet das Package und 
Dokumentation "ubereinstimmen. In den meisten F"allen gen"ugt es 
aber, nur ein \texttt{sty}-File mit allen Kommentaren anzulegen.


\subsubsection{Verwendung der neuen Style-Option}

Durch die Angabe des neuen Package-Namens im \verb|\usepackage|-Befehl 
werden die "Anderungen f"ur das betreffende Schrift"-st"uck wirksam, 
\dH~dieses wird im neuen Layout gesetzt.
Beispiel:
\begin{verbatim}
   %Alte Version:
   \documentstyle[11pt,twoside,german,refman]{article}
\end{verbatim}
wird zu:
\begin{verbatim}
   %Neue Version: (LaTeX2e)
   \documentclass[11pt,twoside,a4paper]{refart}
   \usepackage{german}
   %\usepackage{mysty} %<- Hier wird meine Package geladen
\end{verbatim}

Davon abgesehen sollten keine "Anderungen im Eingabefile notwendig 
sein -- es sei denn, das Schrift"-st"uck ent"-h"alt spezielle logische 
Text-""Elemente, die im neuen Layout vorgesehen sind, aber in 
Original-\LaTeX\ nicht unter"-st"utzt werden.

\attention
Wenn man das Eingabefile an einen anderen Computer "ubertragen will, mu"s 
man \emph{alle} darin verwendete Package-Files mit"-"ubertragen, damit 
es auch dort verarbeitet werden kann.

%%%%%%     %%%%%%%%%%      %%%%%%%%%%        %%%%%%%%%%        %%%%%%%%%

\subsection{Ein einfaches Beispiel (Gleichungsnummern)}

Angenommen, Sie wollen, da"s in einem "`Article"' die Gleichungen innerhalb 
jeder "`Section"' separat numeriert werden.

Im \LaTeX-Manual finden Sie den Hinweis, da"s der "`Report"'-Style 
etwas "Ahnliches pro "`Chapter"' macht.

Sie schauen das File \texttt{report.cls} an und finden darin die 
folgenden zwei Befehle, die sich -- wie in den Kommentarzeilen 
angegeben ist -- auf die Gleichungsnummern beziehen:\nopagebreak
\begin{verbatim}
   \@addtoreset{equation}{chapter}
   \def\theequation{\thechapter .\arabic{equation}}
   % In LaTeX2e ab 1995/06/01:
   \renewcommand\theequation{\thechapter.\@arabic\c@equation}
\end{verbatim}
Es ist nicht notwendig, da"s sie diese beiden Befehle in allen Details 
verstehen, 
es gen"ugt, wenn Sie erkennen, da"s sich \texttt{chapter} in 
beiden F"allen auf die Numerierung pro Kapitel bezieht.

Sie legen ein File mit dem Namen {\tt eqpersec.sty} an,\footnote
       {Je nach dem Computer, an dem Sie arbeiten, kann der Filename
        eine andere Syntax haben,
        \zB\ {\tt EQPERSEC\_STY} an einer CYBER unter NOS/VE.}
kopieren die Befehle in dieses File, ersetzen darin konsequent {\tt 
chapter} durch {\tt section} und erhalten also die neuen 
Definitionen\nopagebreak
\begin{verbatim}
   % Dies ist equation_per_section.sty
   % Kurzname: eqpersec.sty
   %
   % Gleichungszaehler am Anfang einer section 
   % zuruecksetzen.
   \@addtoreset{equation}{section}
   % Gleichungsnummer = sectionnummer.equationnummer
   \def\theequation{\thesection .\arabic{equation}}
   % oder:
   \renewcommand\theequation{\thesection.\@arabic\c@equation}
\end{verbatim}
Nat"urlich f"ugen Sie auch noch Kommentarzeilen hinzu, die den Zweck des 
Files erkl"aren und Ihren Namen als den Autor dieses neuen 
Style-Option-Files sowie das "Anderungsdatum angeben.

Wann immer Sie nun in Ihrem \LaTeX-""Eingabefile die Package {\tt 
eqpersec} angeben, \zB~mit\nopagebreak
\begin{verbatim}
\documentclass[11pt]{article}
\usepackage{eqpersec}
\end{verbatim}
dann werden die Gleichungen in Ihrem Artikel nach dieser neuen 
Konvention numeriert.


%%%%%%%%%% %%%%%%%%%%%%%% %%%%%%%%%%%% %%%%%%%%%%%% %%%%%%%% %%%%%%%%%%%%

\subsection{Ein etwas komplexeres Beispiel (Reference Manual)}
\label{refmanex}

Wir wollen ein "ahnliches Seiten-Layout wie beim PostScript Reference 
Manual erreichen:
mit einem breiten linken Rand, der f"ur "Uberschriften und Randnoten ben"utzt 
wird, und mit nur einem eher knappen freien Rand oben, rechts und unten.

Dies scheint eine sehr grundlegene "Anderung zu sein. Durch die gute 
Modularit"at von \LaTeX\ sind aber auch f"ur eine solche Aufgabe nur relativ 
wenige "Anderungen notwendig, die im folgenden komplett beschrieben werden.


\subsubsection{Seitenaufteilung}

Die neue Seitenaufteilung wird im wesentlichen mit den im 
\LaTeX-Manual beschriebenen Parametern festgelegt. In diesem Beispiel 
verwenden wir dazu die Plain-\TeX-Befehle \verb|\newdimen|,
Wertzuweisung und \verb|\advance|, wir k"onnten aber genausogut auch die 
entsprechenden \LaTeX-Befehle \verb|\newlength|, \verb|\setlength| 
und \verb|\addtolength| verwenden.

\pagebreak[2]

\marginlabel{Horizontal:}
Zun"achst definieren wir zwei neue Bezeichnungen f"ur Gr"o"sen,
die im folgenden "ofter verwendet werden:

\verb|\fullwidth| gibt die komplette Breite (Textbreite + gen"utzter linker 
Rand) an und erh"alt denselben Wert wie in Plain~\TeX, n"amlich 6.5~Inch, 
soda"s am Papier rechts und links noch jeweils 1~Inch freier Rand bleiben. 
(Dies ist jetzt nat"urlich von der Papiergr"o"se abh"angig)

\verb|\leftmarginwidth| gibt die Breite des Randes an, der links von der 
normalen Textbreite f"ur "Uberschriften und Randnoten verwendet wird:
\begin{displaymath}
\texttt{leftmarginwidth} = \texttt{fullwidth} - \texttt{textwidth}
\end{displaymath}

Da die entsprechenden Ma"se in Abh"angigkeit von der Papierbreite berechnet 
werden, m"ochte ich hier auf eine genaue Beschreibung verzichten. Diese 
Class wurde mit dem \texttt{docstrip}-Programm erstellt und erlaubt es 
eine ausf"uhrliche Dokumentation zu erzeugen. (Allerdings in Englisch)

\marginlabel{Vertikal:}
Das vertikale Layout wird abh"angig von der Papierh"ohe berechnet. Auch hier 
m"ochte ich auf die Dokumentation zur Class verweisen.

\vspace{0pt plus 1cm}

\subsubsection{Kapitel-"Uberschriften}

Die "Uberschriften von Sections, Sub- und Subsubsections sollen so 
abge"-"an"-dert werden, da"s sie in den linken Rand hinausragen.

Im File \texttt{classes.dtx} finden wir, da"s diese "Uberschriften durch 
Aufrufe des Befehls \verb|\@startsection| definiert sind, dessen 
Funktion auf den Kommentarzeilen beschrieben ist. F"ur uns relevant sind 
nur folgende Parameter:
Der Absolutbetrag des vierten und des f"unften Parameters gibt den Abstand 
vor bzw.\ nach der "Uberschrift an. Der sechste Parameter gibt an, wie der 
Text der "Uberschrift gesetzt werden soll.
Der Befehl f"ur Sections ist \zB\ im Original so definiert:\nopagebreak
\begin{verbatim}
\newcommand\section{\@startsection
             {section}{1}{\z@}%
             {-3.5ex plus -1ex minus -.2ex}%
             {2.3ex plus .2ex}%
             {\normalfont\Large\bfseries}}
\end{verbatim}
und analog die Befehle f"ur Sub- und Subsubsections.
Die Anpassung an die jeweilige Schrift"-gr"o"se erfolgt automatisch durch
die Verwendung der relativen Einheit \texttt{ex}.

Wir definieren zun"achst eine Abk"urzung \verb|\secshape| f"ur das neue 
Layout aller dieser "Uberschriften. Die wesentliche "Anderung besteht darin, 
da"s die "Uberschriften um die Breite des linken Randes weiter links als der 
normale Text beginnen sollen.
Zu diesem Zweck setzen wir den linken Rand auf die entsprechende 
negative Gr"o"se. Au"serdem wollen wir, da"s die W"orter in der "Uberschrift 
nicht abgeteilt werden und da"s deshalb rechts kein Randausgleich 
gemacht wird.
Dies erreichen wir mit den folgenden Befehlen, die im \TeX book 
beschrieben sind:\nopagebreak
\begin{verbatim}
\def\secshape{\leftskip=-\leftmarginwidth
              \rightskip=0pt plus 1fil
              \hyphenpenalty=2000}
\end{verbatim}
Ein Aufruf dieses Befehls soll nun jeweils in den sechsten
Parameter von \verb|\@startsection| eingef"ugt werden.

Da die "Uberschriften durch das Hinausragen in den linken Rand deutlich 
genug vom normalen Text abgesetzt sind, m"ussen sie nicht durch so gro"se 
Schrift und Abst"ande wie im Original hervorgehoben werden.
Wir verkleinern daher auch noch die entsprechenden Angaben im vierten, 
f"unften und sechsten Parameter und erhalten schlie"slich die neue 
Definition\nopagebreak
\begin{verbatim}
\newcommand\section{\@startsection
             {section}{1}{\z@}%
             {-2ex plus -1ex minus -.2ex}%
             {0.5ex plus .2ex}%
             {\secshape\normalfont\large\bfseries}}
\end{verbatim}
und analoge neue Definitionen f"ur Sub- und Subsubsections.

\vspace{0pt plus 1cm}

\subsubsection{Positionierung der Randnoten}

Die Positionierung der Randnoten mu"s so abge"andert werden, da"s 
\emph{alle} Randnoten in den linken Rand gesetzt werden -- unabh"angig 
davon, ob es sich um eine rechte oder linke Seite und um eine normale 
oder verkehrte Randnote handelt.

Im File \texttt{latex.dtx} finden wir die viele Zeilen lange Definition 
des Befehls \verb|\@addmarginpar|, der das Setzen der Randnoten 
durchf"uhrt. Wir brauchen uns nicht um alle Details dieses komplizierten 
Befehls zu k"ummern, wir m"ussen nur eines herausfinden: Im ersten Teil 
des Befehls wird eine interne Gr"o"se \verb|\@tempcnta| entweder auf 
\verb|\@ne| oder auf \verb|\m@ne| gesetzt, je nachdem, ob die Randnote 
rechts oder links vom Text gesetzt werden soll.
Dazu dienen die folgenden Zeilen:
\begin{verbatim}
    \@tempcnta\@ne
    \if@twocolumn
        \if@firstcolumn \@tempcnta\m@ne \fi
    \else
      \if@mparswitch
         \ifodd\c@page \else\@tempcnta\m@ne \fi
      \fi
      \if@reversemargin \@tempcnta -\@tempcnta \fi
    \fi
\end{verbatim}

Diese Zeilen ersetzen wir also einfach durch die Zuweisung
\begin{verbatim}
    \@tempcnta\m@ne
\end{verbatim}

Die restlichen Zeilen, die das eigentliche Setzen der Randnote je nach 
dem Wert von \verb|\@tempcnta| an die richtige Stelle der Seite 
bewirken, lassen wir unver"andert.

\subsubsection{Erweiterungen}

Die hier angef"uhrten Definitionen gen"ugen durchaus f"ur einfache 
Anwendungen. In der Praxis k"onnen allerdings noch einige Erweiterungen 
n"utzlich sein.
\seealso{\ref{refman}}
Ein Beispiel f"ur eine solche "`komplette"' Style-Option ist in 
Anhang~\ref{refman} beschrieben.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\input lay_d2

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\printindex

\end{document}
