diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/refman/layout_d.tex |
Initial commit
Diffstat (limited to 'macros/latex/contrib/refman/layout_d.tex')
-rw-r--r-- | macros/latex/contrib/refman/layout_d.tex | 781 |
1 files changed, 781 insertions, 0 deletions
diff --git a/macros/latex/contrib/refman/layout_d.tex b/macros/latex/contrib/refman/layout_d.tex new file mode 100644 index 0000000000..899d8dcb4c --- /dev/null +++ b/macros/latex/contrib/refman/layout_d.tex @@ -0,0 +1,781 @@ +% +% LAYOUT.TEX - Kurzbeschreibung von PA 88-10-04 (LaTeX) +% 99-03-20 +% +% Updated for REFMAN.CLS (LaTeX2e) +% +\documentclass[twoside,a4paper]{refart} +%\documentclass[pagesize,twoside,a5paper,smallborder,10pt]{refart} +\usepackage[T1]{fontenc} +\usepackage{ae} % CM-Zeichens"atze mit T1 encoding +\usepackage{makeidx} +\usepackage{ifthen} +\usepackage{german} +%\usepackage{showidx} + +\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@web.de}\\ +1996-01-01 \\ +H27.0 --- Version 1} + +\date{} +\emergencystretch1em % F"ur TeX <3.0 auskommentieren! + +%\pagestyle{footings} +%\pagestyle{headings} +%\pagestyle{myfootings} +\markboth{Layout-"Anderungen mit \textrm{\LaTeX}}% + {Layout-"Anderungen mit \textrm{\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} +\settextfraction{0.7} + +\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: \textbf{Inhalt} +und \textbf{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 \textbf{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 \textbf{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} |