summaryrefslogtreecommitdiff
path: root/info/german/texbuch/texbuch.tex
diff options
context:
space:
mode:
Diffstat (limited to 'info/german/texbuch/texbuch.tex')
-rw-r--r--info/german/texbuch/texbuch.tex10230
1 files changed, 10230 insertions, 0 deletions
diff --git a/info/german/texbuch/texbuch.tex b/info/german/texbuch/texbuch.tex
new file mode 100644
index 0000000000..ef8f413cfe
--- /dev/null
+++ b/info/german/texbuch/texbuch.tex
@@ -0,0 +1,10230 @@
+\documentstyle[11pt,german,twoside,a4,makeidx]{report}
+\pagestyle{headings}
+\makeindex
+%
+% Neue Schriften
+%
+\newfont{\itg}{cmu10 scaled 1000}
+\newfont{\ninerm}{cmr9 scaled 1000}
+\newfont{\eightrm}{cmr8 scaled 1000}
+\newfont{\sevenrm}{cmr7 scaled 1000}
+\newfont{\fiverm}{cmr5 scaled 1000}
+\newfont{\grossfiverm}{cmr5 scaled 2000}
+\newfont{\bigtenrm}{cmr10 scaled\magstep1}
+\newfont{\Bigtenrm}{cmr10 scaled\magstep2}
+\newfont{\Mf}{cmex10 scaled 1000}
+\newfont{\manual}{manfnt scaled 1000}
+%
+% Ma\ss{}einheit f\"ur Bilder
+%
+\unitlength1cm
+%
+\begin{document}
+\title{Das kleine\\[1ex] {\Huge\bf \TeX Buch}}
+\author{Fritz Cremer}
+\date{5.7.1993}
+\maketitle
+\chapter*{Vorwort}
+\section*{Warum dieses Buch?}
+Ich habe mich entschlossen dieses Buch zu schreiben, weil in vielen Texten zum
+Programm \TeX\ das \TeX book angesprochen wird, es aber kaum ein vern\"unftiges
+Buch zu \TeX\ in deutscher Sprache gibt. Au\ss{}erdem wollte ich den Text in der
+DF\"U zur Verf\"ugung stellen. Daraus ergaben sich verschiedene Probleme. Zum
+einen mu\ss{}te ich die Urheberrechte ber\"uck\-sich\-tigen, die auf dem \TeX book
+liegen, zum anderen durfte der Text nicht zu lang werden. Ich habe mich daher
+f\"ur folgendes Vorgehen entschlossen. Ich habe das \TeX book nicht einfach
+linear \"ubersetzt, das w\"are auch fast nicht m\"oglich, da dieses Buch viel zu
+viele Wortspiele u.a.\ enth\"alt. Ich habe vielmehr das \TeX book Abschnitt f\"ur
+Abschnitt gelesen und in meinen eigenen Worten wiedergegeben. Dabei konnte ich viel
+k\"urzen. So enth\"alt dieser Text keine \"Ubungsaufgaben mehr. Ich habe die
+Aufgaben, soweit sie vorkamen mit in den Text eingearbeitet, so da\ss{} keine
+Information verloren ging.
+\section*{An wen richtet sich das Buch?}
+Dieser Text richtet sich an die Benutzer von \TeX\ und nicht so sehr
+an die \index{Makro!Design}
+Makrodesigner f\"ur \TeX, wenn auch dieses Kapitel keineswegs
+ausgenommen wurde. Ich habe mich nur entschlossen die Teile des Buches
+wegzulassen, die so speziell auf das Design von Makros ausgerichtet
+sind, da\ss{} sie normalerweise nicht von Interesse sein k\"onnen. So fehlt
+z.B.\ der Anhang `Dirty tricks', in dem un\"ublicher Gebrauch von Teilen von
+\TeX\ beschrieben wird.
+\section*{Copyright und \"Ahnliches}
+Dieser Text kann beliebig weitergegeben werden und auch in
+\index{File!Netze}Filenetzen
+vertrieben werden. Ich bitte sogar ausdr\"ucklich darum, da\ss{} dieses Buch
+m\"oglichst vielen Mitgliedern der DF\"U zu\-g\"ang\-lich gemacht wird. Die
+Rechte an diesem Text bleiben allerdings bei mir.
+\section*{Fehler}
+Dieser Text entstand im Laufe vieler Monate. Es bleibt nicht aus, da\ss{}
+im Verlaufe dieser Zeit bessere und weniger gute Abschnitte
+entstanden. Auch werden sich noch etliche Recht\-schreib\-feh\-ler in diesem
+Buch befinden. Verbesserungsvorschl\"age und Korrekturhinweise bitte ich
+mir zukommen zu lassen.
+
+\begin{center}
+\fbox{\fbox{\parbox{12cm}{
+Wem dieses Buch gef\"allt, der empfehle und kopiere es weiter,
+wems nicht gef\"allt, der schweige stille.
+}}}
+\end{center}
+
+\vspace*{2cm}
+\hspace{\fill}{\bf Fritz Cremer}, S\"udstr. 45, 52064 Aachen, Deutschland
+\tableofcontents
+\chapter{Einf\"uhrung}
+Wenn sie einmal ein Buch durchbl\"attern, dann werden sie feststellen,
+da\ss{} es verschiedene \index{Bindestrich}
+Bindestriche gibt, je nachdem, ob W\"orter durch
+Bindestriche verbunden werden (wie bei Tren-nung-en), ob
+\index{Seite!Bereich}Seitenbereiche angegeben werden (Seiten: 2--13), ob
+\index{Gedankenstrich}Gedankenstriche
+--- ge\-schrie\-ben werden sollen, oder ob in einer mathematischen
+\index{Formel!Minuszeichen}Formel ein \index{Minuszeichen}
+Minuszeichen auftaucht ($1-2$).
+
+Auch k\"onnte ihnen auffallen, da\ss{} manche Buchstaben wie {\em ein}
+Zeichen aussehen, so z.B.\ die Kombination von `f' und `i', die dann
+als `fi' erscheint. Die Kombination von Zeichen zu {\em einem} Zeichen
+hei\ss{}t \"ubrigens \index{Ligatur}
+{\em Ligatur}. Derartige Ligaturen, werden f\"ur viele
+Zeichenkombinationen benutzt, wie z.B.\ f\"ur `ff', `fl' oder `ff'.
+
+Aber es gibt noch weitere Merkw\"urdigkeiten. Sie finden z.B.\ auf der
+Tastatur ihres Com\-put\-ers keine Taste f\"ur ein Paar
+\index{Doppelt!Anfuehrungszeichen@Doppelt!Anf\"uhrungszeichen}doppelter
+\index{Anfuehrungszeichen@Anf\"uhrungszeichen}
+Anf\"uhrungszeichen. Das liegt daran, da\ss{} es es im \index{ASCII}
+ASCII-Zeichensatz
+keine derartigen Zeichen gibt. Dennoch tauchen in B\"uchern diese
+Zeichen ``auf''. In \TeX\ k\"onnen sie das erreichen, indem sie einfach
+zweimal ein einfaches Anf\"uhrungszeichen, bzw.\
+\index{Abfuehrungszeichen@Abf\"uhrungszeichen}``Abf\"uhrungszeichen''
+benutzen. Falls es auf ihrer Tastatur kein einfaches Anf\"uhrungszeichen
+gibt, k\"onnen sie \"ubrigens auch den Befehl \index{zzzlq@{\tt\char92 lq}}
+`\verb|\lq|' f\"ur das linke,
+bzw.\ `\verb|\rq|' f\"ur das rechte An\-f\"uhr\-ungs\-zei\-chen benutzen. Sie
+m\"ussen in diesem Fall nur ein `\verb|\|' hinter den Befehl schreiben,
+wenn dem `\verb|\lq|' oder `\verb|\rq|' ein \index{Leer!Zeichen}
+Leerzeichen folgt. Mit:
+\begin{verbatim*}
+\lq\lq Haken\rq\rq\
+\end{verbatim*}
+Erhalten sie:
+\begin{quote}
+\lq\lq Haken\rq\rq\
+\end{quote}
+Der Trick ist nat\"urlich, da\ss{} auch die beiden Anf\"uhrungszeichen zu
+einem Zeichen zusammen\-ge\-fa\ss{}t werden, genau wie bei dem `fi'. Da nur
+zwei Anf\"uhrungszeichen zusammengefa\ss{}t werden, ergibt die Kombination
+von drei Anf\"uhrungszeichen: ```. So kann man also ein einfaches
+Anf\"uhrungszeichen innerhalb von einem doppelten schreiben.
+
+\"Ubrigens, folgendes (`\thinspace``) erreichen sie nicht so einfach,
+dazu ist ein weiterer Befehl n\"otig, geben sie:
+\index{zzzthinspace@{\tt\char92 thinspace}}
+\begin{verbatim*}
+`\thinspace``
+\end{verbatim*}
+ein, um das gew\"unschte Resultat zu erhalten.
+
+Schlie\ss{}lich finden sich Zeichen, die {\em untereinandergeschoben}
+scheinen. So zu sehen, wenn ein `V' hinter einem `A' steht. Das sieht
+dann so: `VA' aus. Dieses Untereinanderschieben nennt man
+\index{Kerning}{\em Kerning}.
+
+Jetzt die gute Nachricht: Mit \TeX\ brauchen sie sich um derartige
+Kleinigkeiten nicht mehr zu k\"ummern; die verschiedenen
+\index{Bindestrich}Bindestriche,
+die \index{Ligatur}Ligaturen und auch das \index{Kerning}
+Kerning wird von \TeX\ v\"ollig selbst\"andig
+erledigt. Sie k\"onnen sich also ganz auf ihre eigentliche Arbeit, das
+Schreiben des Textes konzentrieren.
+\chapter{Bis zum ersten Text ...}
+\section{\TeX\ kontrollieren}
+Die Tastatur ihres Computers bietet viel weniger M\"oglichkeiten, als
+sie f\"ur ein \index{Schrift!Stueck@Schrift!St\"uck}
+Schriftst\"uck brauchen. Daher mu\ss{} ein Zeichen als
+sogenanntes \index{Escape}
+{\em Escape}zeichen definiert werden, mit dem sie dann
+Befehle, die die Form oder das Aussehen des Textes ver\"andern, oder die
+nur ein weiteres Zeichen zur Verf\"ugung stellen. In \TeX\ ist es zwar
+prinzipiell m\"oglich jedes Zeichen dazu zu verwenden, \"ublicherweise
+wird aber der \index{Gegenschraegstrich@Gegenschr\"agstrich}
+Gegenschr\"agstrich, `\verb|\|', dazu verwendet. Der Grund
+hierf\"ur ist einfach, dieses Zeichen kommt in normalen Texten sogut wie
+nie vor,
+
+\TeX\ versteht jede \index{Eingabe}
+Eingabe, die mit diesem \index{Gegenschraegstrich@Gegenschr\"agstrich}
+Gegenschr\"agstrich beginnt
+als eine \index{Kontrollsequenz} {\em Kon\-troll\-se\-quenz}. Die Eingabe von:
+\index{zzzinput@{\tt\char92 input}}
+\begin{verbatim*}
+\input neu
+\end{verbatim*}
+z.B.\ bedeutet, da\ss{} `\verb|\input|' eine \index{Kontrollsequenz}
+Kontrollsequenz ist, und
+`\verb|neu|' sein \index{Argument}
+Argument (Tats\"achlich veranla\ss{}t dieser Befehl \TeX\
+als n\"achstes den \index{File!Einlesen}
+File `\verb|neu.tex|' einzulesen und diesen zu be\-ar\-bei\-ten).
+
+In der Zeile:
+\begin{verbatim*}
+Neue Eintr\\"age
+\end{verbatim*}
+findet sich die \index{Kontrollsequenz}
+Kontrollsequenz `\verb|\\"|'. Diese sorgt daf\"ur, da\ss{}
+\"uber das folgende Zeichen zwei Strichelchen geschrieben werden, das
+Ergebnis sieht also so `\"a' aus.
+
+Im folgenden wird zwischen zwei Arten von \index{Kontrollsequenz}
+Kontrollsequenzen
+unterschieden. Zum einen die, bei denen hinter dem
+\index{Gegenschraegstrich@Gegenschr\"agstrich}Gegenschr\"agstrich
+eine Reihe von Buchstaben folgt (Buchstaben sind: `\verb|A...Z|' und
+`\verb|a...z|', aber nicht `\verb|0...9|'). Die obige Sequenz
+\index{zzzinput@{\tt\char92 input}}
+`\verb|\input|' geh\"ort z.B.\ zu dieser Kategorie; sie wird {\em
+Kontrollwort} genannt. Zum anderen die, bei denen hinter dem
+\index{Gegenschraegstrich@Gegenschr\"agstrich}
+Gegenschr\"agstrich nur ein Zeichen folgt, das {\em kein} Buchstabe ist.
+Zur letzten Kategorie geh\"ort auch das `\verb|\\"|'. Diese Sequenzen
+hei\ss{}en \index{Kontrollzeichen}{\em Kontrollzeichen}.
+
+Folgt einem Kontrollwort ein \index{Leer!Zeichen}
+Leerzeichen, dann wird es ignoriert.
+Dieses Leerzeichen dient quasi nur der Begrenzung des Kontrollwortes.
+Was nun aber, wenn sie ein Leerzeichen hinter einem Kontrollwort
+schreiben wollen? Da \TeX\ mehrere Leerzeichen immer zu einem
+zusammenfa\ss{}t, w\"are es falsch einfach zwei, statt des einen
+Leerzeichens zu schreiben. Statt dessen gibt es eine
+\index{Kontrollsequenz}Kontrollsequenz,
+die genau das gew\"unscht Ergebnis bereith\"alt:\footnote{Das Zeichen {\tt\char32}
+bezeichnet dabei ein Leerzeichen.}
+\begin{quote}
+{\tt\char92\char32}
+\end{quote}
+Da, wie schon eben gesagt, \TeX\ mehrere Leerzeichen immer zu einem
+zusammenfa\ss{}t, m\"u\ss{}ten sie, wollten sie drei Leerzeichen hinter einem
+Kontrollwort erzeugen schon: `\verb*|\ \ \ |' schrei\-ben, um das
+Gew\"unschte zu erhalten.
+
+\"Ubrigens, statt des \index{Leer!Zeichen}
+Leerzeichens kann auch ein Tabulatorzeichen, oder
+ein Zeilentrenner stehen, da \TeX\ letztere in Leerzeichen umwandelt.
+
+Sie fragen sich sicher schon, wieso man hinter einem Kontrollwort ein
+Leerzeichen schrei\-ben will? Nun, die Antwort ist ganz einfach: Um z.B.
+die Zeichenfolge `\TeX' zu erhalten, gibt es den Befehl:
+`\verb|\TeX|'. Wenn sie nun einen Satz wie:
+\begin{quote}
+\TeX\ gef\"allt mir.
+\end{quote}
+schreiben wollen, dann m\"ussen sie eingeben:
+\begin{verbatim*}
+\TeX\ gef\"allt mir.
+\end{verbatim*}
+W\"urden sie `\verb|\TeX|' nicht mit einem
+\index{Gegenschraegstrich@Gegenschr\"agstrich}Gegenschr\"agstrich
+abschlie\ss{}en, dann s\"ahe das Ergebnis so aus:
+\begin{quote}
+\TeX gef\"allt mir.
+\end{quote}
+Und das gefiele uns dann nicht mehr. Es darf allerdings ein
+Kontrollwort nicht in jedem Fall mit einem
+\index{Gegenschraegstrich@Gegenschr\"agstrich}Gegenschr\"agstrich beendet
+werden. Um z.B.\ `\TeX' zu erhalten, darf nicht:
+\begin{verbatim*}
+`\TeX\'
+\end{verbatim*}
+eingegeben werden, das Ergebnis w\"are:
+\begin{quote}
+`\TeX\'.
+\end{quote}
+Sie k\"onnen sich vermutlich schon denken, woher der
+\index{Fehler!Kontrollzeichen}Fehler stammt,
+`\verb|\'|' ist ein \index{Kontrollzeichen}Kontroll\-zei\-chen, was die gew\"unschte
+\index{Ausgabe}Ausgabe verhinderte.
+
+Derartige \index{Kontrollsequenz}
+Kontrollsequenzen gibt es einige in \TeX, so z.B.\ `\verb|\pi|'
+f\"ur den Buchstaben `$\pi$', `\verb|\Pi|' f\"ur `$\Pi$' und so weiter.
+Sie sehen hier schon eine wichtige Eigenschaft von \TeX. Die
+Kontrollsequenzen sind alle so gew\"ahlt, da\ss{} sie m\"oglichst {\em
+klingende} Namen haben. Dies gew\"ahrleistet, da\ss{} sie die wichtigsten
+schnell lernen k\"onnen.
+
+Die \index{Kontrollsequenz}
+Kontrollsequenzen werden weiterhin unterschieden in sogenannte:
+\index{Primitiv}
+{\em Primitive} und {\em zusammengesetzte} \index{Kontrollsequenz}
+Kontrollsequenzen.
+Primitive sind nicht aus anderen \index{Kontrollsequenz}
+Kontrollsequenzen zusammengesetzt. Zu
+dieser Kategorie geh\"oren \index{zzzinput@{\tt\char92 input}}
+`\verb|\input|' oder \index{zzzaccent@{\tt\char92
+accent}}`\verb|\accent|'.
+Wohingegen `\verb|\\"|' ein zusammengesetzte \index{Kontrollsequenz}
+Kontrollsequenz ist, die
+u.a.\ auf `\verb|\accent|' zur\"uckgreift. Sie werden sich fragen, warum
+man \"uberhaupt zusammengesetzte \index{Kontrollsequenz}
+Kontrollsequenzen zur Verf\"ugung stellt.
+Nun ganz einfach, die anderen sind einfach zu \index{Primitiv}
+{\bf primitiv}. Es w\"are
+zu m\"uhsam einen Text nur mit Primitiven zu schreiben, ausserdem kann
+man mit der \"Anderung {\em einer} zusammengesetzten
+\index{Kontrollsequenz}Kontrollsequenz das
+Aussehen im ganzen Text beeinflu\ss{}en. Wie man aus \TeX\
+Kontrollsequenzen neue zusammensetzt, und wie man die Sequenzen
+\"andert, lesen sie in einem sp\"ateren Kapitel.
+
+Insgesamt bietet ein nicht schon ver\"andertes \TeX\ ca.\ 300
+\index{Primitiv}Primitive
+und 600 zu\-sam\-men\-ge\-setz\-te \index{Kontrollsequenz}
+Kontrollsequenzen an. Erschrecken sie nicht
+vor der gro\ss{}en Zahl. Mit den meisten werden sie nie zu tun haben, und
+die, die sie brauchen haben gr\"o\ss{}tenteils selbsterkl\"arende Namen.
+
+Wie kann man nun unterscheiden, ob eine \TeX\ \index{Kontrollsequenz}
+Kontrollsequenz
+zusammengesetzt, oder \index{Primitiv}
+primitiv ist? Nun, man kann nat\"urlich in diesem
+Buch nachlesen, wo die Befehle erkl\"art werden, man kann aber auch
+\TeX\ veranlassen die Antwort zu geben. Dazu gibt es eine weitere
+Kontrollsequenz:
+\index{zzzshow@{\tt\char92 show}}
+\begin{verbatim*}
+\show
+\end{verbatim*}
+Wenn sie in einen \TeX\ File \index{zzzinput@{\tt\char92 input}}
+`\verb|\show\input|' schreiben, dann gibt
+\TeX\ auf dem \index{Bildschirm}Bildschirm aus:
+\begin{verbatim*}
+> \input=\input.
+\end{verbatim*}
+Sie erinnern sich daran, da\ss{} `\verb|\input|' eine \index{Primitiv}primitive
+\index{Kontrollsequenz}
+Kontrollsequenz ist. Anders hingegen die Reaktion, wenn sie auf
+\"ahnliche Art den Befehl: \index{zzzthinspace@{\tt\char92 thinspace}}
+`\verb|\thinspace|' untersuchen. Sie
+erhielten das Ergebnis:
+\index{zzzkern@{\tt\char92 kern}}
+\begin{verbatim}
+\> thinspace=macro:
+->\kern .16667em.
+\end{verbatim}
+Hierbei ist `\verb|\kern|' allerdings wieder ein \index{Primitiv}Primitiv.
+
+\section{Die Zeichens\"atze}
+\subsection{Die Schrifttypen}
+Mitunter wollen sie auf einen anderen Zeichensatz umschalten, z.B.
+etwas \index{Fettschrift}{\bf fett} schreiben, oder durch {\sl schr\"agstellen}
+hervorheben. Um dies zu erreichen m\"ussen sie einfach einige Befehle in
+den Text schreiben, die die Schrift umschalten. Mit der
+\index{Eingabe}Eingabe von:
+\begin{verbatim}
+z.B.\ etwas \bf fett \rm schreiben, oder durch \sl schr\"agstellen \rm her..
+\end{verbatim}
+erhalten sie obiges Ergebnis. \TeX\ arbeitet mit Zeichen, die zu
+\index{Gruppe!Von Zeichen}
+Gruppen von 256 Zeichen zusammengefa\ss{}t sind, die sogenannten
+Zeichens\"atze. \TeX\ bietet folgende Befehle um auf einen anderen
+Zeichensatz umzuschalten:
+
+\begin{quote}\index{Italic}\index{Schreibmaschinenschrift}
+\index{zzzit@{\tt\char92 it}}
+\begin{tabular}{ll}
+{\tt\char92 rm} schaltet auf die Schriftart \index{Roman}`Roman' & Roman \\
+{\tt\char92 sl} schaltet auf die geneigte Roman Schrift & {\sl Geneigt} \\
+{\tt\char92 it} schaltet auf die Schrift `Italic' & {\it Italic} \\
+{\tt\char92 tt} schaltet auf eine Schreibmaschinenschrift & {\tt Schreibmaschine} \\
+{\tt\char92 bf} schaltet auf fette Schrift um & {\bf Fett}
+\end{tabular}
+\end{quote}
+
+Es gibt einen Unterschied zwischen der geneigten und er
+Italic-Schrift. Der Unterschied liegt darin, da\ss{} es sich bei der
+geneigten Schrift um die Schriftart \index{Roman}`Roman' handelt, die einfach nur
+geneigt wurde. Die Schriftart `Italic' ist dagegen eine ganz andere
+Schrift. {\itg Am augenf\"alligsten wird das, wenn sie sich mal die
+ungeneigte Italic Schrift ansehen}\footnote{Wie soeben geschehen.}.
+Erst mit dem Fortschritt in der
+Erarbeitung von Zeichens\"atzen, wurde der Unterschied zwischen der
+geneigten und der Italic Schrift relevant. Fr\"uher wurde kein
+Unterschied zwischen Texten, die geneigt werden sollten und
+mathematischen Zeichen gemacht. Mittlerweile hat es sich eingeb\"urgert,
+Texte in der geneigten, mathematische \index{Formel!Schrift}
+Formeln aber in der Schrift
+`Italic' zu schreiben. Sie kennen die `Italic' Schrift vermutlich aus
+mathematischen B\"uchern, als Bezeichnung f\"ur Variablen.
+
+\TeX\ beginnt die Arbeit \"ublicherweise in der Schriftart \index{Roman}
+`Roman'. Der
+Grund hierf\"ur liegt darin, da\ss{} die Schriftart `Roman' speziell auf
+gute Lesbarkeit ausgelegt ist. Sie sollten sich angew\"ohnen, die
+Texthervorhebungen nur in geringem Ma\ss{}e zu benutzen. L\"angere Texte in
+einer anderen Schriftart, als \index{Roman}Roman, sind nicht gut lesbar.
+
+Nachdem sie auf eine andere Schriftart umgeschaltet haben, m\"ussen sie
+normalerweise erst wieder auf die Schriftart \index{Roman}
+`Roman' zur\"uckschalten,
+bevor sie weiter schreiben k\"onnen. Dies kann auch einfacher gel\"ost
+werden, wenn sie den Text, der hervorgehoben werden soll, zusammen mit
+dem Zeichensatzbefehl in geschweifte \index{Klammer!Geschweift}
+Klammern schreiben. Das obige
+Beispiel h\"atte man also auch schreiben k\"onnen, als:\footnote{Bei dieser
+Art der Schriftart\"anderung handelt es sich um ein Beispiel f\"ur die
+Gruppierung, die im n\"achsten Abschnitt vorgestellt wird.}
+\begin{verbatim}
+z.B.\ etwas {\bf fett} schreiben, oder durch {\sl schr\"agstellen} her..
+\end{verbatim}
+Die geneigten Schriften, also die geneigte \index{Roman}
+Roman Schrift und die Schrift \index{Italic}
+Italic, werfen ein kleines Problem auf. Betrachten sie z.B.
+den folgenden Satz, der aus geraden und geneigten Zeichen gemischt ist:
+\begin{quote}
+Ich sehe {\sl f\"unf} Indianer.
+\end{quote}
+Dadurch, da\ss{} das Wort `f\"unf' in einer geneigten Schrift dargestellt
+wird, erscheint der \index{Abstand}
+Abstand zwischen dem zweiten `f' des Wortes `f\"unf'
+und dem `I' von `Indianer' zu klein. F\"ur diesen Fall bietet \TeX\
+einen besonderen Befehl `\verb|\/|'. Mit diesem Befehl wird ein
+zus\"atzlicher \index{Zwischenraum}
+Zwischenraum beim Umschalten von einer geneigten Schrift
+auf eine gerade Schrift eingef\"ugt. Dieser Zwischenraum ist abh\"angig
+vom Buchstaben, also f\"ur ein `f' \index{Groesse!Zeichen@Gr\"o\ss{}e!Zeichen}
+gr\"o\ss{}er, als z.B.\ f\"ur ein `e'. Wird der obige Satz als:
+\begin{verbatim}
+Ich sehe {\sl f\"unf\/} Indianer.
+\end{verbatim}
+eingegeben, dann erscheint er so:
+\begin{quote}
+Ich sehe {\sl f\"unf\/} Indianer.
+\end{quote}
+Tats\"achlich gibt es f\"ur jedes Zeichen, also auch f\"ur die Zeichen der
+geraden Schriften eine sogenannte \index{Italic!Korrektur}
+{\em Italic Korrektur}, nur ist sie
+bei den meisten Zeichen gleich Null.
+
+Noch eine Nachbemerkung zu den verschiedenen Schriften. Fr\"uher galt es
+als guter \index{Stil!Schreib}Schriftstil, einen \index{Punkt}
+Punkt oder ein \index{Komma}Komma in derselben
+Schriftart zu schreiben, in der auch das Wort davor geschrieben war.
+Sp\"atestens bei einem `Italic' Semikolon sieht das aber ziemlich
+l\"acherlich aus. Es hat sich daher durchgesetzt, die
+\index{Satz!Zeichen}Satzzeichen in der
+normalen Schriftart zu schreiben.
+
+Schlie\ss{}lich gibt es bei \TeX\ noch einen Befehl f\"ur eine Schriftart,
+die es gar nicht gibt. \index{Font!Null}\index{zzznullfont@{\tt\char92 nullfont}}
+`\verb|\nullfont|' schaltet auf einen {\em
+leeren}\index{Leer!Zeichensatz} Zeichensatz um, der keine Zeichen enth\"alt. Dieser wird
+gebraucht, wenn man als \index{Argument}
+Argument einen Zeichensatz angeben mu\ss{}, aber
+gar keine Zeichen ausgeben will.
+
+\subsection{Die Schriftgr\"o\ss{}en}
+Schriften k\"onnen sich in der Gr\"o\ss{}e genauso voneinander unterscheiden,
+wie in der Form. Die Schrift, die sie hier lesen hat die Gr\"o\ss{}e von
+10pt\footnote{Das pt-Ma\ss{}system wird sp\"ater noch genauer vorgestellt.
+Hier reicht es zu wissen, da\ss{} die \index{Klammer!Hoehe@Klammer!H\"ohe}
+Klammern der Schrift 10pt hoch und
+der \index{Gedankenstrich}
+Gedankenstrich 10pt breit ist (\"Ubrigens nicht hier in der
+\index{Fussnote!Schriftgroesse@Fu\ss{}note!Schriftgr\"o\ss{}e}Fu\ss{}note,
+die Schrift ist kleiner)}.
+
+Jeder Zeichensatz in \TeX\ steht in Zusammenhang mit einem
+Kontrollwort. F\"ur die 10pt \index{Roman}Roman Schrift gilt z.B.\ der Befehl
+`\verb|\tenrm|', f\"ur die entsprechende 9pt Schrift `\verb|\ninerm|'.
+Die Kontrollworte f\"ur die entsprechenden geneigten Schriften hei\ss{}en
+`\verb|\tensl|' bzw.\ `\verb|\ninesl|'. Diese Kontrollworte sind nicht
+in \TeX\ {\em eingebaut}, sie sind keine \index{Primitiv}
+Primitive, sie dienen nur der
+besseren Ansprechbarkeit der Schriftgr\"o\ss{}en.
+
+Wenn verschiedengro\ss{}e Schriften zusammen gebraucht werden, dann
+orientiert sich \TeX\ an einer \index{Grundlinie}
+{\em Grundlinie}. Die \index{Eingabe}Eingabe von:
+\begin{verbatim}
+\tenrm kleiner \ninerm und kleiner
+\eightrm und kleiner \sevenrm und kleiner
+\sixrm und kleiner \fiverm und kleiner \tenrm
+\end{verbatim}
+ergibt im Text: \tenrm kleiner \ninerm und kleiner \eightrm und
+kleiner \sevenrm und kleiner \sixrm und kleiner \fiverm und
+kleiner \tenrm.
+
+Wir kennen jetzt zwei Befehle um auf die 10pt \index{Roman}Roman Schrift
+umzuschalten `\verb|\tenrm|' und \index{zzzrm@{\tt\char92 rm}}
+`\verb|\rm|'. Worin besteht der
+Unterschied? Nun, `\verb|\rm|' schaltet gar nicht auf die 10pt Schrift
+um, sondern in die derzeit aktuelle Gr\"o\ss{}e der Schriftart \index{Roman}
+Roman. Der
+Sinn dieses Befehls liegt darin, da\ss{} man ihn benutzen kann, ohne an
+die augenblicklich g\"ultige Gr\"o\ss{}e der Schrift denken zu m\"ussen.
+`\verb|\tenrm|' schaltet dagegen tats\"achlich auf die 10pt
+\index{Roman}Roman
+Schriftart um.
+
+Wie bringt man \TeX\ nun bei, welchen Zeichensatz man benutzen m\"ochte.
+Die Zeichens\"atze existieren ja als \index{File!Zeichensatz}
+Zeichensatzfiles in ihrem System.
+Nun, sie geben die \index{Definition}Definition:
+\index{zzzfont@{\tt\char92 font}}
+\begin{verbatim}
+\font\ninerm=cmr9
+\end{verbatim}
+ein, und ab sofort wei\ss{} \TeX\ was unter dem Kontrollwort zu verstehen
+ist, n\"amlich da\ss{} ab da der Zeichensatz zu verwenden ist, der in der
+Datei {\em cmr9.xxx} steht (um das `xxx' k\"ummern wir uns
+sp\"ater)\footnote{`cmr9' bedeutet \"ubrigens: {\em Computer modern
+Roman} mit 9pt}.
+
+Au\ss{}er den verschieden gro\ss{}en Zeichens\"atzen, kann man einen einzelnen
+Zeichensatz auch noch vergr\"o\ss{}ert oder verkleinert benutzen. Das
+definiert man:
+\index{zzzfont@{\tt\char92 font}}
+\begin{verbatim}
+\font\cs=<externer Zeichensatzname> at <gew\"unschte Gr\"o\ss{}e>
+\end{verbatim}
+Mit `\verb|\cs|' steht dann der vergr\"o\ss{}erte Zeichensatz zur Verf\"ugung,
+vorausgesetzt, er existiert in ihrem System. Mit:
+\begin{verbatim}
+\font\grossfiverm=cmr5 at 10pt
+\end{verbatim}
+erhalten sie z.B.\ die Schrift `cmr5' auf 10pt vergr\"o\ss{}ert, also in
+\index{Doppelt!Schrift}doppelter Gr\"o\ss{}e.
+
+Sie werden sich jetzt sicher fragen, wieso man denn dann \"uberhaupt
+noch eine 10pt Schrift (cmr10) braucht? Der Grund ist einfach, die
+beiden Schriften sehen unterschiedlich aus\footnote{Der Grund f\"ur das
+unterschiedliche Aussehen liegt einfach darin, da\ss{} z.B.\ in der Schrift
+cmr10 noch Striche von der St\"arke eins m\"oglich sind, bei der
+vergr\"o\ss{}erten cmr5 Schrift, w\"are hingegen ein Strich der St\"arke eins
+schon auf die St\"arke 2 verdoppelt worden.}. Sie sollten die 10pt
+Schrift immer dann verwenden, wenn sie davon ausgehen k\"onnen, da\ss{} ihr
+Text in Originalgr\"o\ss{}e gelesen werden wird, wenn ihr Text aber, z.B.
+auf fotographischem Wege, verkleinert werden soll, dann w\"ahlen sie die
+vergr\"o\ss{}erte 5pt Schrift. Um den Unterschied deutlich zu machen ein
+Beispiel:
+\begin{quote}
+Hier in 10pt {\grossfiverm und hier vergr\"o\ss{}ert}
+\end{quote}
+
+Es gibt noch eine andere M\"oglichkeit den Vergr\"o\ss{}erungsfaktor einer
+Schrift anzugeben. Mit der \index{Eingabe}Eingabe von:
+\index{zzzfont@{\tt\char92 font}}
+\begin{verbatim}
+\font\grossfiverm=cmr5 scaled 2000
+\end{verbatim}
+erreichen sie dasselbe Ergebnis wie mit der Angabe von `\verb|at
+10pt|', n\"amlich die \index{Doppelt!Schrift}
+Verdoppelung. Die Zahlenangabe hinter dem Wort
+`\verb|scaled|' gibt den Vergr\"o\ss{}erungsfaktor in \index{Promille}
+Promille an. Die Basis
+der Berechnung ist hier also 1000. 1500 w\"are die eineinhalbfache
+Vergr\"o\ss{}erung.
+
+Es hat sich bew\"ahrt Zeichens\"atze mit den
+\index{Potenz!Vergroesserung@Potenz!Vergr\"o\ss{}erung}Potenzen von $1.2$ zu
+vergr\"o\ss{}ern. Daher gibt es in \TeX\ auch \index{Kontrollsequenz}
+Kontrollsequenzen, die diese
+Vergr\"o\ss{}erungen einfach bereitstellen. Mit:
+\index{zzzfont@{\tt\char92 font}}\index{zzzmagstep@{\tt\char92 magstep}}
+\begin{verbatim}
+\font\bigtenrm=cmr10 scaled\magstep2
+\end{verbatim}
+wird die 10pt Schrift in $1.2 \times 1.2$-facher Vergr\"o\ss{}erung
+bereitgestellt. Die \index{Abkuerzung@Abk\"urzung}
+abk\"urzende \index{Kontrollsequenz}Kontrollsequenz hei\ss{}t also
+`\verb|\magstepn|', wobei `n' \"ublicherweise f\"ur: $0, 1, 2, 3, 4, 5$
+steht. Die Vergr\"o\ss{}erungen sehen dann so aus:\footnote{Es gibt auch noch
+die Vergr\"o\ss{}erungsstufe `{\tt\char92 magstephalf}', die eine Schrift um
+den Faktor: $\sqrt{1.2}$ vergr\"o\ss{}ert, also genau zwischen 0 und 1 liegt.}
+\begin{quote}
+Hier normal `\verb|\magstep0|'\\
+{\bigtenrm einmal um $1.2$ vergr\"o\ss{}ert `\verb|\magstep1|'}\\
+{\Bigtenrm und zweimal um $1.2$ vergr\"o\ss{}ert `\verb|\magstep2|'}
+\end{quote}
+
+\section{Gruppierungen}
+Mitunter ist es erw\"unscht, wenn ein Teil eines Textes, wie eine
+Einheit behandelt wird. Dazu stellt \TeX\ die Zeichen `\verb|{|' und
+`\verb|}|' bereit. Alles, was zwischen diesen Zeichen steht wird als
+\index{Einheit!Text}Einheit behandelt. Die beiden \index{Klammer!Gruppe}
+Klammern sind also \"ahnlich spezielle
+Zeichen, wie das `\verb|\|'.
+
+Die \index{Gruppe}Gruppen in \TeX\ haben eine \"ahnliche Aufgabe, wie die sogenannte
+\index{Block!Struktur}
+{\em Blockstruktur} bei Pro\-gram\-mier\-spra\-chen. \index{Definition}
+Definitionen, die
+innerhalb einer Gruppe getroffen wurden, gelten nur innerhalb der
+Gruppe, und verlieren ihre G\"ultigkeit, sobald die Gruppe endet. In der
+Sprache der Pro\-gram\-mier\-spra\-chen sind sie {\em lokal}.
+
+Im letzten Abschnitt wurde schon ein Beispiel f\"ur Gruppen geliefert,
+hier folgt ein weiteres. Wir haben schon gelernt, da\ss{} man bei dem
+\index{Logo}Logo
+`\TeX' unterscheiden mu\ss{}, welche \index{Kontrollsequenz}
+Kontrollsequenz man schreibt, je
+nachdem, ob ein \index{Leer!Zeichen}
+Leerzeichen folgen soll, oder nicht. Man kann dieses
+Problem auch l\"osen, indem man:
+\begin{verbatim}
+{\TeX}
+\end{verbatim}
+schreibt. Die zweite schlie\ss{}ende Klammer beendet die kleine Gruppe,
+und danach wird alles wieder normal behandelt, d.h.\ ein
+\index{Leer!Zeichen}Leerezeichen
+ist dann nicht mehr \index{Begrenzer!Kontrollsequenz}
+Begrenzer einer \index{Kontrollsequenz}Kontrollsequenz, sondern wieder
+ein ganz normales Leerzeichen. Auch:
+\begin{verbatim}
+\TeX{}
+\end{verbatim}
+h\"atte denselben Erfolg gebracht, da sich nun der
+\index{Kontrollsequenz}Kontrollsequenz
+`\verb|\TeX|' eine leere Gruppe anschlie\ss{}t.
+
+Als weiteres Beispiel, was uns dann weiter f\"uhren wird dient
+folgendes:
+\index{zzzcenterline@{\tt\char92 centerline}}
+\begin{verbatim}
+\centerline{Diese Information ist zentriert}
+\end{verbatim}
+Das Beispiel benutzt die \index{Kontrollsequenz}
+Kontrollsequenz `\verb|\centerline|'. Diese
+Kontrollsequenz \index{Zentrierung}
+zentriert das fol\-gen\-de Zeichen in einer eigenen Zeile.
+Die \index{Klammer!Gruppe}
+Gruppenklammern sind n\"otig, da sonst nur das `D' von `Diese'
+zentriert w\"urde, der Rest aber in die n\"achste Zeile geschrieben w\"urde,
+--- nicht im Sinne des Erfinders.
+
+Es ist nat\"urlich auch m\"oglich \index{Gruppe!Schachtelung}
+Gruppen ineinanderzuschachteln. Die \index{Eingabe}Eingabe von:
+\index{zzzit@{\tt\char92 it}}
+\begin{verbatim}
+\centerline{Diese Information ist {\it zentriert}}
+\end{verbatim}
+ergibt als Ergebnis:\medskip
+
+\index{Zentrierung}\index{zzzcenterline@{\tt\char92 centerline}}
+\centerline{Diese Information ist {\it zentriert}}\medskip
+
+Ich habe oben geschrieben, da\ss{} \index{Definition}
+Definitionen, die innerhalb von \index{Gruppe!Definitionen}Gruppen
+getroffen werden, nur innerhalb der Gruppe G\"ultigkeit haben. Das gilt
+auch f\"ur alle anderen Befehle innerhalb der Gruppe. Beim letzten
+Beispiel betraf die Umschaltung auf \index{Italic}
+Italic nur das Wort \index{Zentrierung}`zentriert'. Es
+gibt mitunter Situationen, wo man innerhalb einer Gruppe etwas
+ver\"andern m\"ochte und diese Ver\"anderung \"uber die \index{Gruppe!Grenze}
+Gruppengrenzen hinaus wirken soll. Das ist m\"oglich, indem man den Befehl
+\index{zzzglobal@{\tt\char92 global}}`\verb|\global|' vor den
+Befehl schreibt. H\"atten wir im letzten Beispiel:
+\index{zzzit@{\tt\char92 it}}
+\begin{verbatim}
+\centerline{Diese Information ist {\global\it zentriert}}
+\end{verbatim}
+geschrieben, dann w\"are auch aller nachfolgender Text in \index{Italic}
+Italic
+geschrieben worden, bis zu einem anderen, auf eine andere Schriftart
+umschaltenden Befehl. \index{zzzglobal@{\tt\char92 global}}
+`\verb|\global|' bewirkt, das der unmittelbar
+darauf folgende Befehl f\"ur alle existierenden Gruppen wirksam wird.
+
+Eine weitere M\"oglichkeit eine Gruppe zu begrenzen besteht mit den
+\index{Primitiv} Primitiven \index{zzzbegingroup@{\tt\char92 begingroup}}
+\index{zzzendgroup@{\tt\char92 endgroup}}
+`\verb|\begingroup|' und `\verb|\endgroup|'. Diese
+machen es leichter m\"oglich eine Gruppe in einer
+\index{Kontrollsequenz}Kontrollsequenz
+beginnen und in einer anderen enden zu lassen. Man mu\ss{} nur darauf
+achten, da\ss{} sie die \index{Gruppe!Ueberlappung@Gruppe!\"Uberlappung}
+Gruppen nicht \"uberlappen. Konstruktionen, wie:
+\index{zzzbegingroup@{\tt\char92 begingroup}}\index{zzzendgroup@{\tt\char92 endgroup}}
+\begin{verbatim}
+{ \begingroup } \endgroup
+\end{verbatim}
+sind unzul\"assig.
+
+\section{Die Arbeit mit \TeX}
+Sie wissen nun schon genug, um mit \TeX, vom Brief angefangen bis zum
+Buch alles schreiben zu k\"onnen (wirklich). Das Einzige, was noch
+fehlt, ist der eigentliche Umgang mit dem Programm \TeX\ selber. In
+diesem Abschnitt sollen ihnen einige Beispiele den Umgang mit dem
+Programm \TeX\ verdeutlichen und ihnen das notwendige R\"ustzeug zu
+eigenen Experimenten geben.
+
+\subsection{Der erste Text}
+Rufen sie \TeX\ auf\index{Betriebssystem}\footnote{Der Aufruf eines Programms ist von
+Betriebssystem zu Betriebssystem unterschiedlich, der Pro\-gramm\-name von
+\TeX\ lautet i.a.\ {\tt virtex}}. Es m\"u\ss{}te sich mit einer Meldung,
+nicht un\"ahnlich dieser:
+\begin{verbatim}
+This is TeX, Version 3.0 (preloaded format=plain 89.7.15)
+**
+\end{verbatim}
+melden. F\"ur den Anfang geben sie bitte
+\index{zzzrelax@{\tt\char92 relax}}
+`\verb|\relax|' ein, was \TeX\
+veranla\ss{}t nichts zu tun, \TeX\ m\"u\ss{}te sich nun mit {\em einem}
+\index{Stern!Prompt}
+Sternchen wiedermelden. Versuchen sie nun `\verb|Hallo?|', oder etwas
+\"ahnliches. Und zum Schlu\ss{} schreiben sie noch `\verb|\end|'.
+
+\TeX\ sollte nun mit einem `\verb|[1]|' antworten (Es wurde soeben die
+erste \index{Seite!Erste}
+Seite ihres ersten Textes ausgegeben. Der Inhalt steht in einer
+Datei mit dem Namen: {\tt texput.dvi}\footnote{{\tt dvi} hei\ss{}t {\em
+device independent}, also \index{Geraeteunabhaengig@Ger\"ateunabh\"angig}
+ger\"ateunabh\"angig. Fragen sie jemanden, der
+sich damit auskennt, wie man dieses Ergebnis ansehen, besser noch
+\index{Ausdruck}ausdrucken kann.}.
+
+\subsection{Nun die Eingabe aus einem File}
+Sie k\"onnen \TeX\ nat\"urlich {\em on line} benutzen, das ist aber nicht
+sehr effektiv. Besser ist es ihre Eingabe in einen File zu schreiben,
+sie k\"onnen dazu einen \index{Editor}
+Editor ihrer Wahl benutzen. Diesen File werden
+wir dann sp\"ater an \TeX\ \"ubergeben.
+
+Schreiben sie als erstes den folgenden, aus dem \TeX Book hinl\"anglich
+bekannten Text:
+\index{zzzcenterline@{\tt\char92 centerline}}\index{zzzeject@{\tt\char92 eject}}
+\index{zzzhrule@{\tt\char92 hrule}}\index{zzzvfill@{\tt\char92 vfill}}
+\index{zzzvskip@{\tt\char92 vskip}}
+\begin{verbatim}
+\hrule
+\vskip 1in
+\centerline{\bf A SHORT STORY}
+\vskip 8pt
+\centerline{\sl by A. U. Thor}
+\vskip .6cm
+Once upon the time, in a distant
+ galaxy called \\"O\\"o\c c,
+there lived a computer
+named R. J. Drofnats
+
+Mr.~Drofnats---or ``R. J.,'' as
+he preferred to be called---
+was happiest when he was at work
+typesetting beautiful documents.
+\vskip 1in
+\hrule
+\vfill\eject
+\end{verbatim}
+Schreiben sie den Text genauso, wie sie ihn hier sehen, ich beziehe
+mich im weiteren auf die Zeilen-num\-mern.
+
+Sehen wir uns den Text doch noch etwas an, bevor wir ihn an \TeX\
+\"ubergeben. In Zeile 1 und 17 steht jeweils der Befehl `\verb|\hrule|',
+der eine d\"unne \index{Linie!Quer}
+Querlinie mit der Breite einer \index{Seite!Querstrich}
+Seite zieht. Dann gibt
+es in den Zeilen 2, 4, 6 und 16 noch den Befehl \index{zzzvskip@{\tt\char92 vskip}}
+`\verb|\vskip|', der
+einen zus\"atzlichen vertikalen \index{Zwischenraum}
+Zwischenraum einf\"ugt. Die
+\index{Groesse!Zwischenraum@Gr\"o\ss{}e!Zwischenraum}Gr\"o\ss{}e des
+Zwischenraums steht unmittelbar hinter dem Befehl, aber um die
+\index{Einheit!Mass@Einheit!Ma\ss{}}
+Ma\ss{}einheiten k\"ummern wir uns sp\"ater. Weitere Befehle kennen sie ja
+schon, so z.B.\ den Befehl \index{zzzcenterline@{\tt\char92 centerline}}
+`\verb|\centerline|'. Auch die Befehle
+`\verb|\\"|' sollten ihnen schon bekannt vorkommen, es handelt sich um
+Umlautbefehle, so da\ss{} der Ausdruck: `\verb|\\"O\\"o\c c|' als: `\\"O\\"o\c
+c' erscheint.
+
+Bei genauerem Hinsehen fallen allerdings noch ein paar Kleinigkeiten
+auf: Zum einen taucht zwischen manchen W\"ortern, statt eines
+\index{Leer!Zeichen}
+Leerzeichens das Zeichen: `\verb|~|' auf. Dieses wird von \TeX\ wie
+ein Leerzeichen behandelt, nur da\ss{} dort die Zeile nicht umgebrochen
+werden darf. N\"utzlich z.B.\ bei \index{Initialen}
+Initialen. Weiterhin ist die leere
+Zeile 11 bemerkenswert. Mit einer derartigen Leerzeile wird \TeX\
+mitgeteilt, da\ss{} ein Abschnitt zu Ende ist, und danach ein
+\index{Neu!Abschnitt}neuer
+anf\"angt. Die \"ubliche Neuformatierung, die sie vielleicht von
+Textverarbeitungsprogrammen gew\"ohnt sind, entf\"allt.
+
+Am Schlu\ss{} unseres Textes stehen die Befehle:
+\index{zzzvfill@{\tt\char92 vfill}}`\verb|\vfill|' und
+\index{zzzeject@{\tt\char92 eject}}
+`\verb|\eject|'. Diese bewirken, da\ss{} die laufende
+\index{Seite!Laufende}Seite mit
+\index{Leer!Zeile}leeren
+Zeilen aufgef\"ullt wird (\verb|\vfill|) und dann ausgegeben wird
+(\verb|\eject|).
+
+Jetzt wird es Zeit \TeX\ wieder zu starten, aber nachdem es uns mit
+den beiden \index{Stern!Prompt}
+Sternchen begr\"u\ss{}t, geben wir jetzt nicht wieder
+\index{zzzrelax@{\tt\char92 relax}}
+`\verb|\relax|' ein, sondern `\verb|story|'\footnote{Ich gehe davon
+aus, da\ss{} sie ihren Text in einer Datei mit dem Namen {\tt story.tex}
+abgespeichert haben.}.
+
+Sie haben sich vielleicht schon gewundert, wieso \TeX\ bei der ersten
+Meldung zwei, sp\"ater aber nur ein Sternchen ausgibt. Der Grund hierf\"ur
+ist einfach. Die beiden Sternchen bedeuten, da\ss{} jede Eingabe, die
+nicht mit einem \index{Gegenschraegstrich@Gegenschr\"agstrich}
+Gegenschr\"agstrich oder einem \index{Kaufmannsund}Kaufmannsund (`\verb|&|')
+beginnt, als Filename verstanden wird und \TeX\ deshalb ein
+\index{zzzinput@{\tt\char92 input}} `\verb|\input|' vorher ausf\"uhrt (Sie
+h\"atten also auch `\verb|\input story|' schreiben k\"onnen; `\verb|\input|'
+beginnt mit einem \index{Gegenschraegstrich@Gegenschr\"agstrich}
+Gegenschr\"agstrich).\footnote{Wenn dem doppelten
+\index{Stern!Prompt!Doppelt}Sternchen ein\index{Kaufmannsund}
+Kaufmannsund folgt, dann nimmt \TeX\ an, da\ss{} es sich um die Angabe
+eines Formatfiles handelt. Wenn bei ihrem \TeX\ kein Formatfile
+mitgeladen wird, dann m\"u\ss{}te ihre Eingabe lauten: {\tt\char38 plain
+\char92 input story}.} Bei manchen Systemen ist es auch m\"oglich all
+diese Angaben sofort beim Aufruf von \TeX\ in die Kommandozeile zu
+schreiben. Der Aufruf s\"ahe dann ungef\"ahr so aus:\footnote{Bei manchen
+Betriebssystemen ist es dar\"uber hinaus notwendig das Argument in
+Anf\"uhrungszeichen zu schreiben.}
+\begin{verbatim}
+virtex &plain \input story
+\end{verbatim}
+Und \TeX\ w\"urde sofort mit seiner Arbeit beginnen.
+
+W\"ahrend der Bearbeitung von \TeX\ taucht jetzt die \index{Ausgabe}Ausgabe:
+\begin{verbatim}
+(story.tex [1])
+\end{verbatim}
+auf, und nachdem sie beim abschlie\ss{}end wieder auftretenden Sternchen
+wieder ein `\verb|\end|' eingegeben habe, k\"onnen sie den
+\index{Neu!File}neuen File
+`\verb|story.dvi|' wieder ausgeben lassen und sich das Ergebnis
+ansehen.
+\subsection{Fehler in der Eingabe}
+Damit ihnen sp\"ater, wenn es dann mal zu {\em echten} Fehlern kommt,
+jede Erfahrung im Umgang mit dieser Situation abgeht, jetzt mal einige
+Fehlersituationen.\footnote{\index{Knuth. D.}
+D. Knuth schreibt hierzu, da\ss{} man sich
+immer vor Augen halten soll, da\ss{} man mit Fehlern nicht etwa den
+Computer beleidigt, so da\ss{} er sp\"ater die Mitarbeit verweigert, Fehler
+sind dazu da gemacht zu werden um aus ihnen zu lernen.}
+\subsubsection{Die Sache mit der Textbreite}
+Starten sie \TeX\ und auf die Eingabeaufforderung (\verb|**|) geben
+sie ein:
+\index{zzzhsize@{\tt\char92 hsize}}\index{zzzinput@{\tt\char92 input}}
+\begin{verbatim}
+\hsize=4in \input story
+\end{verbatim}
+Die \index{Kontrollsequenz}
+Kontrollsequenz `\verb|\hsize|' regelt die bedruckbare Breite des
+Textes, normalerweise wird sie in {\em Plain} vordefiniert, hier aber
+auf die Breite von 4 Inch reduziert.\footnote{Ein Inch entspricht etwa
+2.54 cm.} Wenn jetzt wieder das Sternchen auftaucht, geben sie ein:
+\index{zzzhsize@{\tt\char92 hsize}}\index{zzzinput@{\tt\char92 input}}
+\begin{verbatim}
+\hsize=3in \input story
+\end{verbatim}
+und nachdem sie \TeX\ dar\"uber informiert hat, da\ss{} es die zweite
+\index{Seite!Zweite}Seite
+des Dokuments auch geschrieben hat (die erste Seite war ja 4 Inch
+breit, und wird nicht \"uberschrieben, sondern jede weitere Seite wird
+einfach angeh\"angt), geben sie der Reihe nach auch noch ein:
+\index{zzzhsize@{\tt\char92 hsize}}\index{zzzinput@{\tt\char92 input}}
+\begin{verbatim}
+\hsize=2.5in \input story
+\hsize=2in \input story
+\end
+\end{verbatim}
+
+\"Ubergehen sie zun\"achst einmal alle Meldungen, die \"uber ihren
+\index{Bildschirm}
+Bildschirm huschen; f\"uhren sie einfach erst mal alles so aus, wie hier
+beschrieben. Sie m\"ussen keine Angst haben, da\ss{} ihnen etwas entgeht.
+Alle Fehlermeldungen, die sie auf dem Bildschirm sehen, werden
+au\ss{}erdem noch in einem sogenannten \index{File!Transscript}
+Transscriptfile, oder \index{File!Log}Logfile
+gesichert, so da\ss{} sie sich dort sp\"ater in Ruhe ansehen
+k\"onnen.\footnote{Tats\"achlich ist die Fehlermeldung im Logfile sogar
+noch etwas ausf\"uhrlicher.}
+
+Schauen wir uns doch mal eine der Fehlermeldungen an, die sie erhalten
+haben d\"urften. Wenn sie nicht genau so aussehen, wie die hier
+beschriebenen, dann macht das nichts, die Struktur der Fehlermeldung
+ist die gleiche.\index{Box!Overfull}\index{zzzhbox@{\tt\char92 hbox}}
+\begin{verbatim}
+Overfull \hbox (0.98807pt too wide) in paragraph at lines 7--11
+\tenrm tant galaxy called []O^^?o^^Xc, there lived|
+Overfull \hbox (0.4325pt too wide) in paragraph at lines 7--11
+\tenrm a com-puter named R. J. Drof-nats. ||
+Overfull \hbox (5.32132pt too wide) in paragraph at lines 12--16
+\tenrm he pre-ferred to be called---was hap-||
+\end{verbatim}
+Jede \"ubervolle Box liegt an einer bestimmten Stelle im urspr\"unglichen
+File (beim erste Fall zwischen den Zeilen 7 und 11) und au\ss{}erdem l\"a\ss{}t
+sich ablesen, wieviel die Box zu gro\ss{} ist (im ersten Fall 0.98807pt).
+Die Fehlermeldung gibt auch noch einen Teil der Box aus, die zu lang
+ist; hier Zeichen im Zeichensatz {\em tenrm}. Die beiden
+\index{Klammer!Eckige}Klammern vor
+dem `O' bedeuten, da\ss{} hier etwas kompliziertes, wie eine
+\index{Absatz!Einrueckung@Absatz!Einr\"uckung}
+Absatzeinr\"uckung, oder wie in diesem Fall die Konstruktion von
+`\\"O\\"o\c c' vorliegt. Die Meldung gibt auch noch an, an welchen
+Stellen \TeX\ trennen wollte, bevor der Fehler auftrat. Beim zweiten
+Fehler z.B.\ wollte \TeX\ `Drof-nats' trennen. Der Trennalgorithmus von
+\TeX\ ist ausserordentlich gut, aber nat\"urlich nicht perfekt, so wurde
+z.B.\ nicht erkannt, da\ss{} `galaxy' h\"atte hinter dem `l' getrennt werden
+k\"onnen.\footnote{Man kann \TeX\ etwas auf die Spr\"unge helfen, indem
+man entweder an der entsprechenden Stelle `{\tt gal\char92 -axy}'
+schreibt, oder, wenn man es \index{Global!Trennung}
+global f\"ur den ganzen Text haben will, zu
+Beginn des Textes: \index{zzzhyphenation@{\tt\char92 hyphenation}}
+`{\tt\char92 hyphenation\char123 gal-axy\char125}'.}
+
+Jetzt aber zum Grund f\"ur die Fehlermeldungen. \TeX\ l\"a\ss{}t zwischen
+Worten variablen Wortabstand\index{Abstand!Worte}
+ zu. Betrachten sie die folgenden
+Zeilen:\medskip
+
+\hbox spread-5.5pt{Hier mal mit ganz kleinen Abst\"anden}
+
+\hbox spread+1.679895em{und hier mal mit ganz gro\ss{}en}\medskip
+
+Es ist deutlich, da\ss{} die Wortabst\"ande unterschiedlich sind. \TeX\
+berechnet nun f\"ur jede Zeile einen Wert, genannt \index{Badness}
+`\verb|badness|'.
+Dieser gibt an, wie gut oder schlecht die Wort in der Zeile verteilt
+sind. Dabei geht \TeX\ von einem Idealabstand\index{Abstand!Ideal}
+aus. Wird dieser unter-
+oder \"uberschritten, dann erh\"oht sich demgem\"a\ss{} der Wert von
+\verb|badness|. Normalerweise l\"a\ss{}t \TeX\ nur Zeilen mit einer badness
+von weniger als 200 ohne Fehlermeldung zu. Dieser Wert (200) steht in
+einer Variablen names `\verb|tolerance|'. Setzen sie diesen Wert doch
+einfach einmal h\"oher. Starten sie \TeX\ erneut und geben sie
+\index{zzzhsize@{\tt\char92 hsize}}\index{zzzinput@{\tt\char92 input}}
+\index{zzztolerance@{\tt\char92 tolerance}}
+\begin{verbatim}
+\hsize=2in \tolerance=1600 \input story
+\end{verbatim}
+ein. Es wird ihnen keine `\verb|Overfull hbox|' mehr gemeldet. Ok, ok,
+es gibt da noch ein paar Meldungen wegen `\verb|Underful hbox|'; das
+liegt daran, da\ss{} \TeX\ alle \index{Box!Underfull}Boxen meldet, die eine badness \"uber einem
+Wert haben, der in \index{zzzhbadness@{\tt\char92 hbadness}}
+`\verb|\hbadness|' steht. Der vordefinierte Wert
+f\"ur `\verb|\hbadness|' ist 1000.
+
+Auch den letzten Fehler k\"onnen wir noch beseitigen, indem der Befehl
+\index{zzzraggedright@{\tt\char92 raggedright}}
+`\verb|\raggedright|' mit\-an\-ge\-ge\-ben wird. Er veranla\ss{}t
+\TeX\ sich nicht mehr um den rechten \index{Rand!Ausgleich}
+Randausgleich zu k\"ummern. Bis zum
+rechten Rand wird mit \index{Leer!Zeichen}Leerzeichen aufgef\"ullt.
+
+Abschlie\ss{}ende Bemerkungen zum Thema. Man kann sich z.B.\ fragen, ob es
+besser ist, die {\tt tolerance} oder den Wert f\"ur {\tt hbadness}
+hochzusetzen. Tats\"achlich haben beide M\"oglichkeiten ihre Vor- und
+Nachteile. Wenn sie wirklich ihren Text noch korregieren wollen, dann
+w\"ahlen sie lieber die erste Alternative, \TeX\ gibt ihnen dann noch
+an, wieweit die Boxen das erlaubte Ma\ss{} \"uberschreiten, und sie k\"onnen
+darauf reagieren. Geht es ihnen darum einfach ihren Text m\"oglichst
+schnell und fehlerfrei zu setzen, dann w\"ahlen sie die zweite Methode.
+
+Es gibt aber auch noch eine Variante: \TeX\ meckert nicht jede zu voll
+geratene Box an. Wenn eine Box nur {\em etwas} zu gro\ss{} ist, erhalten
+sie keine Fehlermeldung und auch \TeX\ ignoriert das herausragen der
+Zeile. Der Wert, um den ein Text herausragen darf steht in
+\index{zzzhfuzz@{\tt\char92 hfuzz}}
+`\verb|\hfuzz|', und er ist \"ublicherweise mit 0.1pt vorbesetzt. Sie
+k\"onnen ihn aber auch \"andern, wie alle Werte in \TeX.
+\subsubsection{Und jetzt mal {\em richtige} Fehler}
+Im letzten Teil dieses Abschnitts wollen wir mal ein paar {\em
+richtige} Fehler begehen. \"Andern sie in ihrem File {\tt story.tex} die
+Zeile 3 in:
+\index{zzzcenterline@{\tt\char92 centerline}}\index{zzzERROR@{\tt\char92 ERROR}}
+\begin{verbatim}
+\centerline{\bf A SHORT \ERROR STORY}
+\end{verbatim}
+in der zweiten Zeile schreiben sie statt
+\index{zzzvskip@{\tt\char92 vskip}}`\verb|\vskip|' einfach
+\index{zzzvship@{\tt\char92 vship}}
+`\verb|\vship|'. Um das Ma\ss{} voll zu machen, schreiben sie statt des
+\index{File!Name}
+Filenamens {\tt story} auch noch {\tt sorry} in die Eingabe von \TeX.
+
+\TeX\ wird sie auffordern, einen andern Filenamen einzugeben, da er
+den von ihnen angegebenen nicht finden kann. Versuchen sie nur sich durch
+ein neues Dr\"ucken der Returntaste aus dieser Lage zu befreien,
+letztlich ist es doch besser, sie schreiben den richtigen Filenamen.
+\TeX\ wird dann mit der Arbeit beginnen und nach verh\"altnism\"a\ss{}ig
+kurzer Zeit mit der Fehlermeldung:
+\begin{verbatim}
+! Undefined control sequence.
+l.2 \vship
+ 1in
+?
+\end{verbatim}
+aufwarten. Die Fehlermeldung beginnt mit einem `\verb|!|' und der
+Angabe, worin der Fehler besteht. Es folgt die Angabe der
+Zeilennummer, und dem Text, soweit \TeX\ ihn bisher bearbeitet hat.
+Eine Zeile tiefer erscheint der Text, der als n\"achstes zu bearbeiten
+w\"are. Abgeschlossen wird das Ganze durch ein \index{Fragezeichen}
+Fragezeichen, was
+anzeigt, da\ss{} \TeX\ eine Eingabe von ihnen erwartet, wie es weiter
+gehen soll. Sie haben nat\"urlich keine Ahnung (und wenn sie schon
+welche haben, dann haben sie vergessen) wie es weitergehen soll.
+Tippen sie deshalb auch mal ein Fragezeichen, und \TeX\ wird ihnen
+folgenderma\ss{}en antworten:
+\begin{verbatim}
+Type <return> to proceed, S to scroll future error messages,
+R to run without stopping, Q to run quietly,
+I to insert something, E to edit your file,
+1 or ... or 9 to ignore the next 1 to 9 tokens of input,
+H for help, X to quit.
+\end{verbatim}
+Es handelt sich dabei um eine Menuauswahl, wobei sie jetzt nur noch
+entscheiden m\"ussen, wie sie reagieren wollen. Sie haben die folgenden
+M\"oglichkeiten:
+\begin{enumerate}
+\item Dr\"ucken sie einfach die Returntaste. \TeX\ versucht dann soweit
+es m\"oglich ist alleine aus den Schwierigkeiten heraus zu kommen.
+\item Dr\"ucken sie die Taste `S'. Sie wechseln damit in einen anderen
+\index{Modus!Fehler}
+Modus. Ab sofort h\"alt \TeX\ bei Fehlern nicht mehr an, die
+Fehlermeldungen sausen nur so \"uber den \index{Bildschirm}
+Bildschirm (eventuell) und sie
+k\"onnen sie nur noch sp\"ater im \index{File!Log}Logfile richtig lesen. \TeX\ verh\"alt
+sich also so, als w\"urden sie bei diesem und jedem weiteren Fehler
+immer wieder die Returntaste dr\"ucken.
+
+Denselben Effekt k\"onnen sie auch erreichen, wenn sie
+\index{zzzscrollmode@{\tt\char92 scrollmode}}
+`\verb|\scrollmode|'in ihren File als Befehl hineinschreiben.
+\item Dr\"ucken sie die Taste `R'. \TeX\ reagiert wie im letzten Fall,
+allerdings noch etwas rabiater. \TeX\ h\"alt jetzt nicht einmal mehr an,
+wenn ein falscher \index{File!Name}Filename eingegeben wurde.
+
+Mit dem Befehl \index{zzznonstopmode@{\tt\char92 nonstopmode}}
+`\verb|\nonstopmode|' im Text erreichen sie denselben Effekt.
+\item Die Taste `Q'. Auch hier wieder eine \"ahnliche Reaktion, wie bei
+`R', nur das dar\"uberhinaus auch noch alle Meldungen auf dem
+\index{Bildschirm}Bildschirm
+unterdr\"uckt werden.
+
+Hierf\"ur gibt es im Text den Befehl \index{zzzbatchmode@{\tt\char92 batchmode}}
+`\verb|\batchmode|'
+\item Mit `I' kann etwas in den Text eingef\"ugt werden. Schreiben sie
+dazu das, was sie einf\"ugen wollen unmittelbar hinter das `I'. \TeX\
+tut so, als st\"unde dieser so eingef\"ugte Text vor dem, den es noch
+lesen mu\ss{}. Das Return, das sie zur Beendigung der Eingabe eingeben, wird {\em
+nicht} als \index{Leer!Zeichen}Leerzeichen interpretiert.
+\item Wenn sie eine Nummer, die kleiner als 100 sein mu\ss{}, eingeben,
+dann ignoriert \TeX\ die ent\-sprech\-en\-de Anzahl von Buchstaben, bzw.
+\index{Kontrollsequenz}
+Kontrollsequenzen in ihrem Text. Damit sind die gemeint, die dem
+Fehler folgen!
+\item Mit `H' erhalten sie eine weitergehende Hilfe. \TeX\
+unterscheidet zwischen einer formalen und einer informellen
+Fehlermeldung. Normalerweise erhalten sie nur die formale, in den
+\index{File!Log}Logfile wird allerdings sofort auch die informelle geschrieben. Mit
+`H' erhalten sie die volle Fehlermeldung.
+\item Mit `X' verlassen sie \TeX\ an dieser Stelle. Dies bietet sich
+an, wenn es einfach schon zu viele Fehler geworden sind, oder wenn es
+zuviele Folgefehler gibt.
+\item Auch `E' verl\"a\ss{}t \TeX, bereitet aber den Computer auf eine
+Korrektur des \index{File!Eingabe}Eingabefiles vor. Dieses Feature wird nicht von allen
+Rechnern und \TeX\ Versionen unterst\"utzt.
+\end{enumerate}
+Ach ja, Ich hatte oben von den Befehlen geschrieben, mit denen die
+Modi auch im Text gesetzt werden k\"onnen. Zur\"uckgesetzt werden sie
+Modi durch den Befehl: \index{zzzerrorstopmode@{\tt\char92 errorstopmode}}
+`\verb|\errorstopmode|'.
+
+Wie begegnen wir nun unserer ersten Fehlermeldung? Schreiben sie doch
+einfach:
+\index{zzzvskip@{\tt\char92 vskip}}
+\begin{verbatim}
+I\vskip
+\end{verbatim}
+Die unbekannte \index{Kontrollsequenz}
+Kontrollsequenz \index{zzzvship@{\tt\char92 vship}}
+`\verb|\vship|' wird ignoriert, und
+statt dessen die gewollte eingef\"ugt (allerdings nicht in ihrer
+Textdatei, da m\"ussen sie sie sp\"ater erst noch wieder \"andern). Sie
+h\"atten auch `\verb|3|' eingeben k\"onnen, dann w\"are die Angabe
+`\verb|1in|' auch ignoriert worden. H\"atten sie einfach Return
+gedr\"uckt, st\"unde ein seltsames `1in' in ihrem Text.
+
+Nun zum n\"achsten Fehler. \TeX\ beantwortet ihn folgenderma\ss{}en:
+\index{zzzcenterline@{\tt\char92 centerline}}\index{zzzERROR@{\tt\char92 ERROR}}
+\index{zzzhss@{\tt\char92 hss}}\index{zzzline@{\tt\char92 line}}
+\begin{verbatim}
+! Undefined control sequence.
+<argument> \bf A SHORT \ERROR
+ STORY
+\centerline #1->\line {\hss #1
+ \hss }
+l.3 \centerline{\bf A SHORT \ERROR STORY}
+|null
+?
+\end{verbatim}
+Diese Fehlermeldung ist etwas komplizierter, da der Text:
+\index{zzzERROR@{\tt\char92 ERROR}}
+\begin{verbatim}
+\bf A SHORT \ERROR STORY
+\end{verbatim}
+als \index{Argument}
+Argument an den Befehl `\verb|\centerline|' \"ubergeben worden ist.
+Der Fehler tritt auf, bei der Bearbeitung von `\verb|\centerline|'.
+Dieser Befehl ist in {\em Plain} \TeX\ folgenderma\ss{}en definiert:
+\index{zzzdef@{\tt\char92 def}}\index{zzzhss@{\tt\char92 hss}}
+\index{zzzline@{\tt\char92 line}}
+\begin{verbatim}
+\def\centerline#1{\line{\hss#1\hss}}
+\end{verbatim}
+Das `\verb|#1|' steht dabei stellvertretend f\"ur das \"ubergebene
+\index{Argument}
+Argument.\footnote{Um die Bedeutung der Befehle: {\tt\char92 hss} und
+{\tt\char92 line} brauchen wir uns jetzt noch nicht zu k\"ummern.} Ich
+denke mit diesem Wissen braucht die Fehlermeldung nicht weiter erkl\"art
+zu werden. Die Verschachtelung sogenannter
+\index{Makro!Verschachtelung}Makros kann sehr tief sein.
+Sie brauchen sich aber nicht alle Verschachtelungen in der
+Fehlermeldung anzusehen, die ihnen meist sowieso nichts sagt, da sie
+die \index{Definition}Makrodefinitionen nicht kennen. Mit dem Befehl:
+\index{zzzerrorcontextlines@{\tt\char92 errorcontextlines}}
+\begin{verbatim}
+\errorcontextlines=...
+\end{verbatim}
+k\"onnen sie angeben, wieviele {\em Zwischen}zeilen sie angezeigt haben
+m\"ochten. Ist der Wert z.B.\ gleich 2, dann werden nur die obersten
+beiden Verschachtelungen angezeigt.
+\chapter{Die internen Zeichen}
+\section{Wie lie\ss{}t \TeX, was sie schreiben?}
+Es d\"urfte ihnen schon klar geworden sein, da\ss{} ihre Texteingabe nur
+ungef\"ahr etwas mit der \index{Ausgabe}
+Ausgabe zu tun hat. Zeilenumbr\"uche etc.\ werden
+von \TeX\ gesetzt. Au\ss{}erdem wird:
+\begin{itemize}
+\item Ein Return wie ein \index{Leer!Zeichen}Leerzeichen behandelt,
+\item Zwei Leerzeichen wie ein Leerzeichen behandelt und
+\item Eine leere Zeile beendet einen Absatz.
+\end{itemize}\index{Absatz}
+Wenn sie sich die drei \index{Punkt}
+Punkte genau ansehen, wird ihnen ein Fehler
+auffallen. Die Regeln wieder\-spre\-chen sich. Eine \index{Leer!Zeile}
+Leerzeile besteht aus
+zwei Returns hintereinander, die wie zwei Leerzeichen hintereinander
+zu einem Leerzeichen zusammengefasst werden m\"u\ss{}ten. Vielleicht
+interessieren sie sich irgendwann einmal f\"ur die {\em tats\"achlichen}
+Regeln, Hier zun\"achst ein kleiner Einblick, was mit ihrer Eingabe
+alles geschieht, bis sie zur \index{Ausgabe}Ausgabe geworden ist.
+
+Die 256 verschiedenen Zeichen, die innerhalb \TeX\ m\"oglich sind
+geh\"oren 16 verschiedenen \index{Kategorie!Zeichen}
+Ka\-te\-gori\-en an. Diese Kategorien sind:\medskip
+
+\index{Block!Anfang}\index{Block!Ende}\index{Hochstellung}
+\index{Satz!Zeichen}\index{Kommentar}\index{Spalte!Tabelle}\index{Ziffer}
+\begin{tabular}{|l|l|l|} \hline
+{\em Kategorie} & {\em Bedeutung} & {\em Standard} \\ \hline\hline
+0 & Befehlsanfang & {\tt\char92} \\ \hline
+1 & Blockanfang & {\tt\char123} \\ \hline
+2 & Blockende & {\tt\char125} \\ \hline
+3 & Math. Umschaltbefehl & {\tt\char36} \\ \hline
+4 & Tabellenspalte & {\tt\char38} \\ \hline
+5 & Zeilenende & Return (ASCII CR) \\ \hline
+6 & Makroargument & {\tt\char35} \\ \hline
+7 & Hochstellung & {\tt\char94} \\ \hline
+8 & Tiefstellung & {\tt\char95} \\ \hline
+9 & Ignorieren & ASCII NULL \\ \hline
+10 & Leerzeichen & {\tt\char32} \\ \hline
+11 & Buchstabe & {\tt A..Z} und {\tt a..z} \\ \hline
+12 & Sonstige Zeichen & Ziffern, Satzzeichen, etc. \\ \hline
+13 & Aktives Zeichen & {\tt\char126} Als Makroname verwendbar \\ \hline
+14 & Kommentarzeichen & {\tt\char37} Kommentaranfang \\ \hline
+15 & Ung\"ultiges Zeichen & ASCII DEL \\ \hline
+\end{tabular}\medskip\index{Aktiv!Zeichen}\index{Argument}\index{ASCII}
+
+In diesem Text sind schon mehrere Male Zeichen aufgetaucht, die nicht
+als normale Zeichen von \TeX\ verstanden werden. Nun haben wir alle
+diese Zeichen auf einem Blick (und es sind dann auch wirklich alle).
+Aus {\em Plain} \TeX\ heraus sind etliche dieser Zeichen, die man auch gerne
+drucken w\"urde, nicht so einfach druckbar, da sie eine andere Bedeutung
+haben. Es sind dies die Zeichen:
+\begin{verbatim}
+\ { } $ & # ^ _ % ~
+\end{verbatim}
+Einige davon lassen sich dennoch im Text ausgeben, nat\"urlich durch
+\index{Kontrollsequenz}Kontrollsequenzen:
+\begin{quote}
+`\verb|\&|' f\"ur \&, `\verb|\%|' f\"ur \%, `\verb|\&|' f\"ur \&, `\verb|\#|'
+f\"ur \# und `\verb|\_|' f\"ur \_.
+\end{quote}
+Innerhalb des mathematischen \index{Modus!Mathematisch}
+Modus k\"onnen au\ss{}erdem die
+\index{Kontrollsequenz}
+Kontrollsequenzen `\verb|\{|' und `\verb|\}|' f\"ur $\{$ und $\}$
+benutzt werden. Und schlie\ss{}lich gibt es nicht die \index{Akzent}
+Akzentbefehle:
+`\verb|\~|' und `\verb|\^|' z.B.\ f\"ur die Akzente \~e und \^a.
+
+Jede Eingabezeile wird von \TeX\ in sogenannte Token zerlegt. Diese
+Token bestehen aus Zeichen, Kontrollsequenzen, \index{Ziffer}
+Ziffern etc.\ So wird
+die Eingabe von: \index{zzzhskip@{\tt\char92 hskip}}
+`\verb|{\hskip 36 pt}|' zerlegt in:
+\[\{_1\quad\mbox{\fbox{hskip}}\quad 3_{12}\quad
+6_{12}\quad\mbox{\tt\char32}_10\quad p_{11}\quad t_{11}\quad \}_2\]
+Die Indizes deuten dabei die \index{Kategorie!Zeichen}
+Kategorie an, der das jeweilige Token
+angeh\"ort. \fbox{hskip} hat keinen Index, da eine
+\index{Kontrollsequenz}Kontrollsequenz
+keiner Kategorie angeh\"ort. Auch das \index{Leer!Zeichen}
+Leerzeichen hinter der
+Kontrollsequenz wird nicht behandelt, da es nur die Kontrollsequenz
+abschlie\ss{}t. Nach der Zerlegung in Token, erscheint \TeX\ ihre Eingabe,
+wie eine unheimlich lange Zeile von Token, es gibt also gar keine
+Abs\"atze und sonstiges mehr, nur noch Token.
+
+\index{Kontrollsequenz}
+Kontrollsequenzen sind also nur {\em ein} Token lang, so da\ss{} es
+\"uberhaupt nichts ausmacht, wie lang der Name der Kontrollsequenz ist.
+Die Kategorie, die einem Token zukommt, kann ge\"andert werden. Wenn sie
+z.B.\ INITEX starten, das Programm, mit dem die Formatdateien erstellt
+werden k\"onnen etc., dann gibt es f\"ur manche Kategorien noch gar keine
+Zeichen. Die Kategorie k\"onnen sie einem Zeichen zuweisen, resp.\ die
+Kategorie eines Zeichens andern, mit dem Befehl:
+\index{zzzcatcode@{\tt\char92 catcode}}
+\begin{verbatim}
+\catcode`\
+\end{verbatim}
+Hinter diesem Befehl m\"ussen sie dann das Zeichen tippen, dessen
+\index{Kategorie!Aendern@Kategorie!\"Andern}
+Kategorie sie bestimmen oder \"andern wollen.
+\begin{verbatim}
+\catcode`\a=14
+\end{verbatim}
+wuerde z.B.\ daf\"ur sorgen, da\ss{} \index{Kommentar!Einleitung}
+Kommentare mit einem `a' eingeleitet
+werden (nicht sehr sinnvoll).
+
+\index{Kontrollsequenz}
+Kontrollsequenzen werden ja als {\em ein} Token behandelt. Trotzdem
+bietet \TeX\ eine M\"oglichkeit eine Kontrollsequenz in ihre Zeichen zu
+zerlegen. Der entsprechende Befehl hei\ss{}t \index{zzzstring@{\tt\char92 string}}
+`\verb|\string|'. Mit der
+Eingabe von:
+\begin{verbatim}
+\string\TeX
+\end{verbatim}
+erhalten sie:
+\[ \mbox{\tt\char92}_{12}\quad \mbox{\tt T}_{12}\quad \mbox{\tt
+e}_{12}\quad \mbox{\tt X}_{12}\]
+
+Umgekehrt kann nat\"urlich auch aus beliebigen Token eine
+\index{Kontrollsequenz}
+Kontrollsequenz aufgebaut werden. Der zugeh\"orige Befehl lautet:
+\index{zzzcsname@{\tt\char92 csname}}\index{zzzendcsname@{\tt\char92 endcsname}}
+\begin{verbatim}
+\csname TeX\endcsname
+\end{verbatim}
+Hier werden die Token:
+\[ \mbox{\tt T}_{12}\quad \mbox{\tt e}_{12}\quad \mbox{\tt X}_{12}\]
+zu der \index{Kontrollsequenz}Kontrollsequenz: `\verb|\TeX|' zusammengef\"ugt.
+
+Leider gibt es eine Einschr\"ankung. Da zwischen
+`\verb|\csname|' und `\verb|\endcsname|' zwar beliebige Token, also
+auch wieder Kontrollsequenzen, stehen d\"urfen, aber diese m\"ussen sich
+alle zu Zeichen, und nicht zu \index{Primitiv}
+Primitiven aufl\"osen lassen. Somit ist
+die Eingabe von:
+\index{zzzcsname@{\tt\char92 csname}}\index{zzzendcsname@{\tt\char92 endcsname}}
+\begin{verbatim}
+\csname\TeX\endcsname
+\end{verbatim}
+falsch, da `\verb|\TeX|' auch auf das \index{Primitiv}
+Primitiv \index{zzzkern@{\tt\char92 kern}}`\verb|\kern|'
+zur\"uckgreift.
+
+Wenn wir schon bei den F\"ahigkeiten von \TeX\ sind etwas umzuwandeln.
+Nat\"urlich ist auch das \index{Escape}
+Escapezeichen `\verb|\|' nichts gottgegebenes
+in \TeX. Tats\"achlich steht in der Variablen
+\index{zzzescapechar@{\tt\char92 escapechar}}`\verb|\escapechar|' der
+Wert des Zeichens, das dann das Escapezeichen ausmacht.
+
+Und noch mehr F\"ahigkeiten zur Umwandlung:
+Es gibt noch die beiden Befehle: \index{zzznumber@{\tt\char92 number}}
+`\verb|\number|' und\index{zzzromannumber@{\tt\char92 romannumber}}
+`\verb|\romannumber|', welche beide eine Zahl als \index{Ziffer}Ziffernfolge
+ausgeben.
+\begin{verbatim}
+\romannumber24
+\end{verbatim}
+produziert z.B.\ `\verb|xxiv|'. `\verb|\number|' gibt den Wert einfach
+als Zahl aus. Hier ist es nat\"urlich nicht sinnvoll eine Zahl
+anzugeben, aber `\verb|\number|' arbeitet auch mit den
+\index{Register}Registern von
+\TeX, deren Inhalt man sich mit `\verb|\number|' ausgeben lassen kann.
+\section{Die Sache mit den Zeichen}
+Etwas weiter vorne konnten sie lesen, da\ss{} \TeX\ intern 256 Zeichen
+verarbeiten kann. Diese gro\ss{}e Menge von Zeichen kann allerdings auf
+den meisten Tastaturen nicht direkt eingegeben werden. Es stellt sich
+die Frage, wie man denn am besten vorgeht.
+Um z.B.\ das 37te Zeichen eines Zeichensatzes ansprechen zu k\"onnen,
+geben sie einfach:
+\begin{verbatim}
+\char37
+\end{verbatim}
+ein, also `\verb|\char|' gefolgt von der gew\"unschten Nummer. Auf diese
+Art lassen sich alle Zeichen ansprechen. So ergibt z.B.:
+\begin{verbatim}
+\char70 ritz
+\end{verbatim}
+meinen Vornamen: `\char70ritz'. Sie vermuten ganz richtig, da\ss{} das `F' das
+70. Zeichen im aktuell g\"ultigen Zeichensatz ist. Die Nummerierung der
+Zeichen h\"angt vom sogenannten \index{ASCII}
+`ASCII' Zeichensatz ab, nach dem sich
+\TeX\ orientiert. Diese Orientierung findet \"ubrigens {\em innerhalb}
+von \TeX\ statt, unabh\"angig davon, welchen Zeichensatz ihr Rechner
+benutzt.
+
+Innerhalb der Tabelle von Zeichen, die zur Verf\"ugung stehen, werden
+die Zeichen oft mit ihrem \index{Oktal}
+oktalen, oder \index{Hexadezimal}hexadezimalen Wert
+angesprochen. In \TeX\ k\"onnen diese Werte auch angegeben werden, wenn
+sie die \index{Dezimal!Wert}
+dezimalen nicht kennen oder ausrechnen wollen. Vor den \index{Oktal}
+oktalen
+Zahlen mu\ss{} ein (rechtes) H\"akchen `\verb|'|' stehen, vor den
+\index{Hexadezimal}hexadezimalen ein \index{Anfuehrungszeichen@Anf\"uhrungszeichen}
+Anf\"uhrungszeichen `\verb|\"|'. Die folgenden Angaben
+sind also \"aquivalent:
+\begin{verbatim}
+\char98 \char'142 \char\"62
+\end{verbatim}
+Tats\"achlich brauchen sie nicht einmal die Nummer des Zeichens zu
+kennen, dessen Wert sie angeben wollen. Das Token $`_{12}$ (linkes
+H\"akchen) liefert den Wert des unmittelbar folgenden Buchstaben oder
+der \index{Kontrollsequenz}
+Kontrollsequenz, die nur aus einem Buchstaben besteht (dann
+nat\"urlich den Wert dieses Buchstabens). Man kann also angeben:
+`\verb|\char`b|' oder `\verb|\char`\b|'.\footnote{Auf diese Art wird
+\"ubrigens das \index{Kommentar!Zeichen}
+Kommentarzeichen ausgegeben. Man definiert die zugeh\"orige
+\index{Kontrollsequenz}
+Kontrollsequenz als: {\tt\char92def\char92\char37\char123\char92
+char\char96\char92\char37\char125}. Etwas eleganter geht es aber auch
+mit dem Befehl: {\tt\char92chardef}.}
+
+Den `\verb|\char|' Befehl d\"urfen sie \"uberall benutzen um ein Zeichen
+anzusprechen, allerdings nicht innerhalb einer Kontrollsequenz. Wozu
+ist dieser Befehl denn nun eigentlich n\"utzlich? Nun, es gibt Zeichen,
+wie z.B.\ das Zeichen `\char0', welches im normalen Text nicht
+geschrieben werden kann. Da es aber das 0. Zeichen des Zeichensatzes
+ist, kann es einfach als `\verb|\char0|' angesprochen werden.
+
+Es gibt noch zwei weitere interessante M\"oglichkeiten ein Zeichen aus
+einem Zeichensatz an\-zu\-spre\-chen und zwar durch:
+\begin{verbatim}
+^^
+\end{verbatim}
+Wenn sie hinter diese beiden Zeichen ein weiteres Zeichen schreiben,
+dann reagiert \TeX\ folgenderma\ss{}en: Hat das folgende Zeichen einen
+inneren Wert zwischen 64 und 127, dann werden 64 subtrahiert, hat es
+einen Wert zwischen 0 und 63, dann werden 64 addiert. Um das obige
+Zeichen darzustellen h\"atte ich also auch:
+\begin{verbatim}
+^^@
+\end{verbatim}
+schreiben k\"onnen, da `@' den inneren Wert 64 hat. `\verb|^^@|' wird
+also als das 0. Zeichen gelesen.
+
+Folgt den beiden `\verb|^^|' eine {\em kleingeschriebene}
+\index{Hexadezimal}hexadezimale
+Zahl, dann wird das entsprechende Zeichen, dem diese hexadezimale Zahl
+entspricht ausgegeben. `\verb|^^7f|' ergibt also das 127. Zeichen.
+
+Die Realisation der Zeichenordnung innerhalb von \TeX\ erlaubt eine
+ungeheure Sprachunabh\"angigkeit. So ist es z.B.\ m\"oglich auch noch mit
+Tastaturen zu arbeiten, die Zeichen, wie `\char26' bereitstellen, doch
+hier verweise ich auf das \TeX Book, das diese M\"oglichkeit viel
+genauer beschreibt.
+\chapter{\TeX's Ausgabe}
+Dieses Kapitel besch\"aftigt sich mit dem, was \TeX\ in die {\tt dvi}
+\index{File!DVI}Files ausgibt. Dazu geh\"oren, neben den Zeichen, auch die
+\index{Einheit!Mass@Einheit!Ma\ss{}}Ma\ss{}einheiten,
+um Positionierungen durchf\"uhren zu k\"onnen.
+\section{\TeX's Roman Zeichens\"atze}
+Ich habe schon fr\"uher die m\"oglichen Zeichens\"atze angesprochen, die
+\TeX\ ausgeben kann. Hier nun ein etwas systematischerer Zugang.
+Zun\"achst einmal die Zeichen des Roman Zeichensatzes. Da sind zun\"achst
+folgende Zeichen m\"oglich:
+\begin{quote}\index{Satz!Zeichen}
+Die Buchstaben: {\tt A} bis {\tt Z} und {\tt a} bis {\tt z}\\
+die \index{Ziffer}Ziffern {\tt 0} bis {\tt 9}\\
+die Satzzeichen: {\tt : ; ! ? ( ) [ ] ` ' - * / . , @}
+\end{quote}
+Au\ss{}erdem gibt es die \index{Ligatur}Ligaturen:\medskip
+
+\begin{tabular}{*{4}{lcl@{$\qquad$}}}
+{\tt ff} & $\rightarrow$ & ff &
+{\tt ffi} & $\rightarrow$ & ffi &
+{\tt ``} & $\rightarrow$ & `` &
+$<$ & $\rightarrow$ & < \\
+{\tt fi} & $\rightarrow$ & fi &
+{\tt ffl} & $\rightarrow$ & ffl &
+{\tt ''} & $\rightarrow$ & '' &
+$>$ & $\rightarrow$ & > \\
+{\tt fl} & $\rightarrow$ & fl &
+{\tt --} & $\rightarrow$ & -- &
+{\tt ---} & $\rightarrow$ & --- & & &
+\end{tabular}\medskip
+
+Auch die Zeichen `+' und `=' sind m\"oglich, sollten aber besser im
+mathematischen \index{Modus!Mathematisch}
+Modus verwendet werden, der durch ein
+\index{Dollarzeichen}Dollarzeichen
+`\verb|$|' ein- bzw.\ ausgeleitet wird. Sie sehen dann besser aus. Das
+gleiche gilt f\"ur `-' und `/'.
+
+Weiterhin gibt es die reservierten Zeichen:
+\begin{verbatim}
+ $ # % &
+\end{verbatim}
+die aber durch die \index{Kontrollzeichen}Kontrollzeichen:
+\begin{verbatim}
+\$ \# \% \&
+\end{verbatim}
+erhalten werden k\"onnen. Au\ss{}erdem reserviert {\em Plain} \TeX\ noch die
+Zeichen:
+\begin{verbatim}
+\ { } ^ _ ~
+\end{verbatim}
+Schlie\ss{}lich bleiben im sichtbaren \index{ASCII}
+ASCII-Code noch vier Zeichen \"ubrig,
+die sie aber in normalem Text nicht verwenden sollten, resp.\ durch
+andere Zeichen(kombinationen) ersetzen sollten:
+\begin{verbatim}
+\" | < >
+\end{verbatim}
+\TeX\ bietet aber auch einiges, was sie in der normalen
+\index{ASCII}
+ASCII-Codierung nicht finden. An erster Stelle die \index{Akzent}
+Akzente:\medskip
+
+\begin{tabular}{ll}
+{\em Eingabe} & {\em Ausgabe} \\
+{\tt\char92\char96 o} & \`o \\
+{\tt\char92\char39 o} & \'o \\
+{\tt\char92\char94 o} & \^o \\
+{\tt\char92\char34 o} & \\"o \\
+{\tt\char92\char126 o} & \~o \\
+{\tt\char92\char61 o} & \=o \\
+{\tt\char92\char46 o} & \.o \\
+{\tt\char92 u o} & \u o \\
+{\tt\char92 v o} & \v o \\
+{\tt\char92 H o} & \H o \\
+{\tt\char92 t oo} & \t oo
+\end{tabular}\medskip
+
+Die Akzente lassen sich nat\"urlich auch auf andere Buchstaben, als das
+`o' setzen. Achten sie allerdings darauf, da\ss{} bei den letzten vier
+Beispielen ein \index{Zwischenraum}
+Zwischenraum zwischen dem \index{Kontrollzeichen}
+Kontrollzeichen und dem
+\index{Argument}
+Argument steht. Alternativ k\"onnen sie auch `\verb|\H{o}|' schreiben.
+
+Weiterhin kennt \TeX\ auch Akzente {\em unter} den Buchstaben:\medskip
+
+\begin{tabular}{ll}
+{\em Eingabe} & {\em Ausgabe} \\
+{\tt\char92 c o} & \c o \\
+{\tt\char92 d o} & \d o \\
+{\tt\char92 b o} & \b o
+\end{tabular}\medskip
+
+Dar\"uberhinaus kennt \TeX\ auch noch einige \index{Spezialzeichen}
+Spezialzeichen europ\"aischer
+\index{Schrift!Europaeisch@Schrift!Europ\"aisch}Schriften:\medskip
+
+\index{Kreis}\index{Lateinisch}\index{Polnisches L}
+\begin{tabular}{lll}
+{\em Eingabe} & {\em Ausgabe} & {\em Bezeichnung} \\
+{\tt\char92 oe, \char92 OE} & \oe, \OE & Franz\"osische \index{Ligatur}Ligatur \\
+{\tt\char92 ae, \char92 AE} & \ae, \AE & Lateinische, skandinavische
+\index{Ligatur}Ligatur \\
+{\tt\char92 aa, \char92 AA} & \aa, \AA & Skandinavisches A mit Kreis \\
+{\tt\char92 o, \char92 O} & \o, \O & Skandinavisches O mit Strich \\
+{\tt\char92 l, \char92 L} & \l, \L & Polnisches L mit Strich \\
+{\tt\char92 ss} & \ss & Deutsches Es-Zet
+\end{tabular}\medskip
+
+Die Roman \index{Schrift!Roman}
+Schrift enth\"alt au\ss{}erdem noch die Buchstaben `i' und `j'
+ohne den \index{Punkt}
+Punkt. So ergeben `\verb|\i|': \i\ und `\verb|\j|': \j. Der
+Grund hierf\"ur ist, da\ss{} der Punkt bei diesen Zeichen entfernt werden
+mu\ss{}, bevor ein anderer \index{Akzent}
+Akzent auf die Zeichen gesetzt werden kann.
+
+Die Schriften: `\verb|\sl|', `\verb|\it|' und `\verb|\bf|' haben die
+gleichen Zeichen. Nur der Zeichensatz `\verb|\tt|' verh\"alt sich etwas
+anders. Zum einen kennt dieser Zeichensatz keine \index{Ligatur}
+Ligaturen. Selbst
+{\tt ---} wird als {\tt ---} ausgegeben. Die \index{Akzent}Akzente:
+\index{zzzldots@{\tt\char92 ldots}}
+`\verb|\H|'$\ldots$`\verb|\L|' k\"onnen nicht benutzt werden, daf\"ur aber
+die Zeichen: {\tt \", |, <, >}.
+
+Schlie\ss{}lich gibt es noch vier Zeichen, die in allen Zeichens\"atzen
+gleich aussehen:\medskip
+
+\index{zzzdag@{\tt\char92 dag}}\index{zzzddag@{\tt\char92 ddag}}
+\begin{tabular}{ll}
+{\em Eingabe} & {\em Ausgabe} \\
+{\tt\char92 dag} & \dag \\
+{\tt\char92 ddag} & \ddag \\
+{\tt\char92 S} & \S \\
+{\tt\char92 P} & \P
+\end{tabular}\medskip
+
+Im Anhang wird noch genauer dargestellt, da\ss{} alle \index{Akzent}
+Akzente von \TeX\
+auf das \index{Primitiv}
+Primitiv: \index{zzzaccent@{\tt\char92 accent}}
+`\verb|\accent|' zugreifen. So ist z.B.\ `\verb|\'#1|'
+\"aquivalent zu: `\verb|{\accent19 #1}|'. Generell wird der
+\index{Akzent}Akzent mit
+einer Nummer angesprochen. Die Akzente werden immer richtig \"uber die
+nachfolgenden Zeichen gesetzt. So w\"urde ein Akzent \"uber einem `o'
+niedriger gesetzt, als \"uber einem `f', aber auch Akzente \"uber gar
+keinem Zeichen sind m\"oglich. Ahnen sie wie? `\verb|\'{}|' ergibt:
+\'{}.
+\section{Die Ma\ss{}einheiten}
+\subsection{Die eigentlichen Ma\ss{}einheiten}
+Im englischsprachigen Raum haben sich die {\em klassischen}
+Ma\ss{}einheiten \index{Point}
+`Point' und \index{Pica}`Pica' f\"ur Drucker durchgesetzt. Neben diesen
+kennt \TeX\ aber auch noch einige andere, um die Benutzung von \TeX\
+komfortabeler zu gestalten.\medskip
+
+\index{Cicero}\index{Didot}\index{Pica}\index{Zentimeter}
+\begin{tabular}{ll}
+{\em Abk\"urzung} & {\em Bedeutung} \\
+{\tt pt} & Point \\
+{\tt pc} & Pica (1pc=12pt) \\
+{\tt in} & Inch (1in=72.27pt) \\
+{\tt bp} & Big Point (72bp=1in) \\
+{\tt cm} & Zentimeter (2.54cm=1in) \\
+{\tt mm} & Millimeter (10mm=1cm) \\
+{\tt dd} & Didot Punkt (1157dd=1238pt) \\
+{\tt cc} & Cicero (1cc = 12dd) \\
+{\tt sp} & Skalierter Punkt (65536sp=1pt)
+\end{tabular}\medskip\index{Abkuerzung@Abk\"urzung}
+
+Die Ma\ss{}einheiten werden immer nach folgenden Regeln angegeben:
+\begin{quote}
+$<$optionales Vorzeichen$><$Nummer$><$Ma\ss{}einheit$>$, oder\\
+$<$optionales Vorzeichen$><$Ziffern$>.<$Ziffern$><$Ma\ss{}einheit$>$
+\end{quote}
+Dabei k\"onnen zwischen der Zahl und der Ma\ss{}einheit \index{Leer!Zeichen}
+Leerzeichen
+eingef\"ugt werden. Leerzeichen zwischen den \index{Ziffer}
+Ziffern der Zahl, oder den
+Buchstaben der Ma\ss{}einheit sind dagegen nicht erlaubt.
+
+Intern arbeitet \TeX\ mit dem {\tt sp}. Diese Ma\ss{}einheit ist so
+klein,\footnote{Die Wellenl\"ange des sichtbaren Lichtes inst ungef\"ahr
+100sp} da\ss{} auch trotz der Verwendung von \index{Integer!Arithmetik}
+Integerarithmetik keine
+erkennbaren \index{Fehler!Integerarithmetik}
+Fehler auftreten. Allerdings begrenzt sich dadurch die
+maximal angebbare \index{Groesse@Gr\"o\ss{}e}Gr\"o\ss{}e in \TeX\ auf $2^{30}$sp, was aber auch nicht
+weiter st\"ort, da diese Gr\"o\ss{}e einer Strecke von $5.7583$ Metern
+entspricht.
+
+Im weiteren werden des \"ofteren \index{Dimension!Angabe}
+Dimensionsangaben gebraucht. Statt
+dort immer eine explizite Angabe zu verwenden, wird die
+Abk\"urzung:\index{Abkuerzung@Abk\"urzung}
+$<$dimen$>$ verwendet, z.B.:
+\begin{quote}
+\verb|\hsize=|$<$dimen$>$
+\end{quote}
+\subsection{Ma\ss{}einheiten und Vergr\"o\ss{}erung}
+Zu Beginn eines Textes k\"onnen sie eine
+\index{Global!Vergroesserung@Global!Vergr\"o\ss{}erung}globale Vergr\"o\ss{}erung oder
+Verkleinerung angeben. Dies geschieht mit dem Befehl:
+\index{zzzmagnifikation@{\tt\char92 magnifikation}}
+\begin{verbatim}
+\magnifikation=1200
+\end{verbatim}
+Die Zahl am Ende des Befehls variiert nat\"urlich von Fall zu Fall. Bei
+der Zahlangabe handelt es sich um eine \index{Promille}
+Promilleangabe, so da\ss{} eine
+Angabe von 1000 zu keiner Ver\"anderung f\"uhrt. Der Befehl:
+\begin{verbatim}
+\magnifikation=2000
+\end{verbatim}
+\index{Doppelt!Vergroesserung@Doppelt!Vergr\"o\ss{}erung}
+verdoppelt die Gr\"o\ss{}e ihrer \index{Ausgabe}
+Ausgabe. Vergewissern sie sich allerdings {\em
+vorher}, ob die entsprechenden Zeichens\"atze auf ihrem System verf\"ugbar
+sind.
+
+Mit der Vergr\"o\ss{}erung oder Verkleinerung des Textes werden auch alle
+Ma\ss{}angaben ge\"andert, mit Ausnahme des {\tt sp}. Wenn sie in ihrem
+urspr\"unglichen Text eine L\"ucke von 2cm gelassen hatten, dann erhalten
+sie jetzt eine 4cm gro\ss{}e L\"ucke (entsprechend dem letzten Beispiel).
+Wenn sie das verhindern wollen, dann m\"ussen sie {\em vor} der
+Ma\ss{}einheit das Wort `\verb|true|' einf\"ugen. Haben sie obige L\"ucke mit:
+\index{zzzvskip@{\tt\char92 vskip}}
+\begin{verbatim}
+\vskip 2 true cm
+\end{verbatim}
+definiert, dann ist sie auch in der Vergr\"o\ss{}erung nur 2cm gro\ss{}. Der
+Grund f\"ur dieses Verhalten liegt darin, da\ss{} alle Ma\ss{}einheiten mit
+einer Grundgr\"o\ss{}e in \index{zzzmag@{\tt\char92 mag}}
+`\verb|\mag|' verrechnet werden. Diese Berechnung
+verhindern sie mit der Angabe von `\verb|true|'.
+\subsection{Relative Ma\ss{}einheiten}
+Jeder Zeichensatz verf\"ugt \"uber zwei relative Ma\ss{}einheiten:
+\begin{quote}
+{\tt em} ist die Breite eines \index{zzzquad@{\tt\char92 quad}}
+`\verb|\quad|' der entsprechenden
+Schrift\\
+{\tt ex} ist die \index{Hoehe!x@H\"ohe!x}
+H\"ohe des `x' in der entsprechenden Schrift.
+\end{quote}
+Die tats\"achlichen Ausma\ss{}e dieser Ma\ss{}einheiten ist von Zeichensatz zu
+Zeichensatz verschieden.
+\subsection{Abschlie\ss{}ende Bemerkungen}
+Ihnen ist vielleicht aufgefallen, da\ss{} die Ma\ss{}einheiten nicht mit einem
+\index{Gegenschraegstrich@Gegenschr\"agstrich}
+Gegenschr\"agstrich eingeleitet werden. Das liegt daran, da\ss{} \TeX\
+einige \index{Schluesselwort@Schl\"usselwort}
+Schl\"usselworte kennt. Die Ma\ss{}einheiten geh\"oren auch dazu. Hier
+eine vollst\"andige \index{Liste!Schluesselworte@Liste!Schl\"usselworte}
+Liste der Schl\"usselworte von \TeX:
+{\tt at}, {\tt bp}, {\tt by}, {\tt cc}, {\tt cm}, {\tt dd}, {\tt
+depth}, {\tt em}, {\tt ex}, {\tt fil}, {\tt height}, {\tt in}, {\tt l},
+{\tt minus}, {\tt mm}, {\tt mu}, {\tt pc}, {\tt plus},
+{\tt pt}, {\tt scaled}, {\tt sp}, {\tt spread}, {\tt to}, {\tt true},
+{\tt width}.
+\chapter{Interna des Textsatzes}
+In diesem Kapitel werden die wichtigsten Elemente des Textsatzes von
+\TeX\ dargestellt. F\"ur die normale Anwendung ist das Wissen um diese
+Zusammenh\"ange nicht unbedingt n\"otig, wenn sie also nur {\em normale}
+Texte mit \TeX\ schreiben wollen, k\"onnen sie dieses Kapitel
+\"uberspringen.
+\section{Boxen}
+Auch, wenn sich \TeX\ des modernen Hilfsmittel {\em Computer} bedient,
+beruht die Methode, mit der Texte gesetzt werden letztlich auf der
+guten alten \index{Satz!Kunst}
+Satzkunst, die sp\"atestens mit Guttenberg ihren Einzug in
+die sch\"onen K\"unste gefunden hat. Fr\"uher war es n\"otig einzelne Zeichen,
+die als erhabene Grate auf Bleikl\"otzchen vorgegeben waren, auf einer
+Schiene zusammenzusetzen, und diese Schienen dann ihrerseits wieder zu
+gr\"o\ss{}eren Komponenten zusammenzuf\"ugen. An dieser Idee hat \TeX\ nichts
+ge\"andert, nur da\ss{} statt der Bleikl\"otzchen nun sogenannte `Boxen'
+verwendet werden.\footnote{Nat\"urlich nur intern. Der {\em normale}
+Anwender bekommt davon nichts mit.} Es gibt zwei Arten von Boxen: die
+einen k\"onnen Zeichen enthalten, die anderen nicht, sind insofern also
+noch einfacher.
+\subsection{Die {\em Rule}boxen}
+Die Ruleboxen\footnote{Der Begriff kommt von der \"ublichen Verwendung
+dieser Boxen. Mit ihnen werden normalerweise \index{Linie}
+Linien gezogen.} sind
+eigentlich nur gef\"ullte Rechtecke. Je nachdem, ob sie breiter als
+hoch, oder umgekehrt sind, werden sie mit den Befehlen:
+\index{zzzhrule@{\tt\char92 hrule}}`\verb|\hrule|'
+oder \index{zzzvrule@{\tt\char92 vrule}}
+`\verb|\vrule|' angesprochen. \index{Quadrat}
+Quadratische Boxen dieser Art k\"onnen
+mit beiden Befehlen erzeugt werden. Der generelle Aufruf der Befehle
+lautet:
+\index{zzzxrule@{\tt\char92 xrule}}
+\begin{verbatim}
+\xrule width <dimen> height <dimen> depth <dimen>
+\end{verbatim}
+Zu den \index{Groesse!Einer Box@Gr\"o\ss{}e!Einer Box}
+Gr\"o\ss{}en `\verb|width|', `\verb|height|' und `\verb|depth|' komme
+ich im n\"achsten Abschnitt (Das `x' mu\ss{} nat\"urlich gegen `v' oder `h'
+ausgetauscht werden). Zu diesem Boxtyp abschlie\ss{}end ein Beispiel. Die
+\index{Eingabe}Eingabe von:
+\index{zzzhrule@{\tt\char92 hrule}}
+\begin{verbatim}
+\hrule width 10pt height 2pt
+\end{verbatim}
+ergibt: \vrule width 10pt height 2pt
+\subsection{Die Zeichenboxen}
+Jedes Zeichen, mit dem \TeX\ arbeitet, stellt sich f\"ur das Programm
+als eine Box dar, deren Abmessungen vom Zeichensatzdesigner festgelegt
+wurden.\footnote{Genauste Darstellung im \index{METAFONT}
+{\manual METAFONT}Book.} Bei
+den Abmessungen werden folgende Werte unterschieden: Breite (width),
+\index{Hoehe!Box@H\"ohe!Box}
+H\"ohe (height) und Tiefe (depth). Eine Box hat somit folgendes
+Aussehen:
+
+\begin{picture}(10,6)
+\put(1,1.5){\makebox(0,0){Referenzpunkt}} % Text
+\put(2.3,1.5){\vector(1,0){0.5}} % Zeiger
+\put(3,1.5){\circle*{0.1}} % Referenzpunkt
+\put(3,0.5){\line(1,0){3}} % untere Linie
+\put(3,0.5){\line(0,1){5}} % links senkrecht
+\put(6,0.5){\line(0,1){5}} % rechts senkrecht
+\put(3,5.5){\line(1,0){3}} % obere Linie
+\put(3,1.5){\line(1,0){3}} % Bezugslinie
+\put(4.5,1.7){\makebox(0,0){Basislinie}} % Text
+\put(4.5,0){\makebox(0,0){Breite}} % Text
+\put(7,1){\makebox(0,0){Tiefe}} % Text
+\put(7,3.5){\makebox(0,0){H\"ohe}} % Text
+\put(4.5,0.3){\vector(1,0){1.5}} % Breiten-
+\put(4.5,0.3){\vector(-1,0){1.5}} % Vector
+\put(6.2,1){\vector(0,1){0.5}} % Tiefen-
+\put(6.2,1){\vector(0,-1){0.5}} % Vektor
+\put(6.2,3.5){\vector(0,1){2}} % H\"ohen-
+\put(6.2,3.5){\vector(0,-1){2}} % Vektor
+\end{picture}
+
+Die Bedeutung der \index{Linie!Basis}
+Basislinie und des Referenzpunktes wird sofort
+deutlich. Wenn n\"amlich die Zeichen zu einer Zeile zusammengef\"ugt
+werden, dann befinden sich die Basislinien aller Zeichen auf einer
+H\"ohe.\footnote{Die \index{Leer!Zeichen}
+Leerzeichen sind {\em keine} Boxen, doch dazu im
+n\"achsten Abschnitt mehr.} Die Zeichen werden dabei zu einer
+\"ubergeordneten Box, einer sogenannten `{\tt hbox}' (horizontale Box)
+zusammengef\"ugt. Die einzelnen Zeilen, jetzt zusammengef\"ugt in ihren
+{\tt hboxen} werden dann \"ubereinandergef\"ugt, und zwar so, da\ss{} die
+Referenzpunkte der {\tt hboxen} jeweils auch wieder genau \"ubereinander
+liegen. \TeX\ w\"are nicht \TeX, wenn sich so etwas nicht auch {\em
+manuell} bewerkstelligen lie\ss{}e. Um eine {\em fertige} {\tt hbox} zu
+erhalten braucht man nur den richtigen Befehl und den darin
+enthaltenen Test. Die Sequenz:
+\index{zzzhbox@{\tt\char92 hbox}}
+\begin{verbatim}
+\hbox{Eine Zeile mit Text}
+\end{verbatim}
+ergibt eine vollst\"andige {\tt hbox}. Um deutlicher zu machen, wie
+\TeX\ das nun setzt, sollen die Boxen einmal mitgezeichnet
+werden:\medskip
+
+\thicklines
+\fbox{\fbox{E}\fbox{i}\fbox{n}\fbox{e}
+\fbox{Z}\fbox{e}\fbox{i}\fbox{l}\fbox{e} \fbox{m}\fbox{i}\fbox{t}
+\fbox{T}\fbox{e}\fbox{x}\fbox{t}}\medskip
+
+Der entsprechende Befehl f\"ur die \"ubereinandergesetzten {\tt hboxen}
+hei\ss{}t \"ubrigens {\tt vbox} (f\"ur vertikale Box, wie kaum anders zu
+erwarten war. Der entsprechende Befehl daf\"ur lautet:
+\index{zzzhbox@{\tt\char92 hbox}}
+\index{zzzvbox@{\tt\char92 vbox}}
+\begin{verbatim}
+\vbox{\hbox{Zwei Zeilen}\hbox{purer Text}}
+\end{verbatim}
+und das gesetzte Ergebnis sieht dann folgenderma\ss{}en aus:\medskip
+
+\fbox{\vbox{\hbox{\fbox{\fbox{Z}\fbox{w}\fbox{e}\fbox{i}
+\fbox{Z}\fbox{e}\fbox{i}\fbox{l}\fbox{e}\fbox{n}}}
+\hbox{\fbox{\fbox{p}\fbox{u}\fbox{r}\fbox{e}\fbox{r}
+\fbox{T}\fbox{e}\fbox{x}\fbox{t}}}}}\medskip
+
+Bei diesem zweiten Beispiel ist auch eine Teilbox erkennbar, die eine
+{\em echte} Tiefe besitzt. Sehen sie sich dazu bitte den Rahmen um das
+`p' des Wortes `purer' einmal genau an. Sie k\"onnen sehen, da\ss{} der
+Rahmen tiefer hinunterreicht, als die Rahmen der anderen Buchstaben.
+Auch die, je nach Buchstabe, unterschiedliche Breite der Boxen ist
+deutlich erkennbar.
+
+Normalerweise brauchen sie die Boxbefehl nie, sie erlauben aber
+absolute Kontrolle \"uber das Aussehen des Ergebnisses. Es sind z.B.
+auch negative \index{Dimension!Angabe}
+Dimensionsangaben f\"ur die Breite einer Box zul\"assig, so
+da\ss{} auch Buchstaben \"ubereinander gedruckt werden k\"onnen.
+
+Boxen k\"onnen auch in internen \index{Register!Box}
+Registern gespeichert werden. Die Angabe
+von:
+\index{zzzhbox@{\tt\char92 hbox}}\index{zzzkern@{\tt\char92 kern}}
+\index{zzzlower@{\tt\char92 lower}}
+\index{zzzsetbox@{\tt\char92 setbox}}
+\begin{verbatim}
+\setbox0=\hbox{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125em X}
+\end{verbatim}
+speichert das \TeX\ \index{Logo}Logo in der {\tt box0}, einem der internen
+\index{Register!Intern}
+Register von \TeX. Sie k\"onnen sich auch den Inhalt einer derartigen
+Box ansehen. Mit \index{zzzshowbox@{\tt\char92 showbox}}
+`\verb|\showbox0|' erhalten sie:
+\index{zzzendtt@{\tt\char92 endtt}}\index{zzzhbox@{\tt\char92 hbox}}
+\index{zzzkern@{\tt\char92 kern}}
+\begin{verbatim}
+\hbox(6.83331+2.15277)x18.6108
+.\tenrm T
+.\kern -1.66702
+.\hbox(6.83331+0.0)x6.80557, shifted 2.15277
+..\tenrm E
+.\kern -1.25
+.\tenrm X
+\end{verbatim}
+allerdings nur in ihrem \index{File!Log}
+Logfile. Die Angaben im Einzelnen. Zun\"achst
+sagt ihnen \TeX, da\ss{} es sich um eine Box mit der
+\index{Hoehe!Box@H\"ohe!Box}H\"ohe 6.83331pt, Tiefe
+2.15277pt und der Breite 18.6108pt handelt. In der folgenden Zeile
+zeigt der f\"uhrende \index{Punkt}
+Punkt an, da\ss{} sie sich sozusagen schon im Inneren
+der Box befinden. Der erste Inhalt ist das Zeichen `T' in
+`\verb|\tenrm|' als \index{Schrift!Art}
+Schriftart. Jetzt folgt ein negativer
+\index{Abstand}Abstand von
+-1.66702pt, das `E' wird etwas an das `T' heranger\"uckt. Gefolgt von
+einer weiteren Box, die 6.83331pt hoch ist, 0pt tief und 6.80557pt
+breit, au\ss{}erdem ist sie um 2.15277pt nach unten verschoben, was die
+{\tt shifted} Angabe aussagt. Der Inhalt dieser Box (angezeigt durch
+die {\em zwei} \index{Punkt}
+Punkte) ist das `E'. Den Rest k\"onnen sie sich jetzt
+sicher selber erkl\"aren. Eine derartige Aufschl\"usselung ist sicher nur
+zu \index{Diagnose}Diagnosezwecken sinnvoll.
+
+Jetzt kennen sie fast schon den ganzen Weg von ihrer \index{Eingabe}
+Eingabe bis zur \index{Ausgabe}
+Ausgabe durch \TeX. Sie beginnen mit Token, die intern in Boxen
+umgewandelt werden. Diese Boxen werden zu einer gr\"o\ss{}eren {\tt hbox}
+zusammengef\"ugt, die {\tt hboxen} zu einer, oder mehreren {\tt vbox}
+und diese wieder zu einer \index{Seite!Aus Boxen}
+Seite, die nat\"urlich auch wieder eine Box
+ist. Alles was ihnen noch zum Verst\"andnis fehlt ist das, was die Boxen
+zusammenh\"alt, der {\em Leim}, englisch: {\em Glue}.
+\section{Leim}
+\subsection{Eigenschaften von Leim}
+Neben den Boxen gibt es noch etwas in Texten, die mit \TeX\ gesetzt
+wurden, und das hei\ss{}t {\em Leim}\footnote{Dieser Leim d\"urfte Lesern
+der B\"ucher von \index{Kopka}H.\ Kopka bekannt sein, der Leim hei\ss{}t dort:
+\index{Elastische Masse@Elastische
+Ma\ss{}e}\index{Masse!Elastisch@Ma\ss{}e!Elastisch}{\em
+elastische Ma\ss{}e}. Die Wichtigkeit dieser elastischen Ma\ss{}e wird erst
+hier richtig klar.}. Die Zeilen dieses Textes haben z.B.\ einen
+derartigen \index{Zwischenraum}Zwischenraum, da\ss{} der \index{Abstand}
+Abstand der \index{Grundlinie}Grundlinien zweier Zeilen
+immer 12pt betr\"agt.
+
+Was macht nun diesen Leim aus? Er hat drei Eigenschaften: Eine {\em
+nat\"urliches} Ausma\ss{}, ein \index{Schrumpf!Mass@Schrumpf!Ma\ss{}}
+{\em Schrumpfma\ss{}} und ein {\em Streckma\ss{}}.
+Wenn z.B.\ kleinere Boxen zu einer gr\"o\ss{}eren horizontalen Box
+zusammengefa\ss{}t werden, dann wird zwischen den kleinen Boxen Leim
+eingef\"ugt. Um zu verstehen, wie das funktioniert, ein kleines
+Beispiel:
+
+\thinlines
+\begin{center}
+\begin{picture}(10.4,7)
+\put(0,2){\framebox(1,4){}} % erste Box
+\put(2.8,3.2){\framebox(1.2,1){}} % zweite Box
+\put(5.8,3){\framebox(.6,3){}} % dritte Box
+\put(8.8,2){\framebox(1.6,4){}} % vierte Box
+\put(0,4){\line(1,0){1}} % Bezugslinie
+\put(2.8,4){\line(1,0){1.2}} % Bezugslinie
+\put(5.8,4){\line(1,0){.6}} % Bezugslinie
+\put(8.8,4){\line(1,0){1.6}} % Bezugslinie
+\put(1,4){\dashbox{.1}(1.8,0){}} % Verbindungslinie
+\put(4,4){\dashbox{.1}(1.8,0){}} % Verbindungslinie
+\put(6.4,4){\dashbox{.1}(2.4,0){}} % Verbindungslinie
+\put(0,6.5){Breite 5}
+\put(2.8,6.5){Breite 6}
+\put(5.8,6.5){Breite 3}
+\put(8.8,6.5){Breite 8}
+\put(1.1,3.5){\makebox(0,0)[tl]{\parbox{1.8cm}{Platz 9\\Streck 3\\Schrumpf 1}}}
+\put(4.1,3.5){\makebox(0,0)[tl]{\parbox{1.8cm}{Platz 9\\Streck 6\\Schrumpf 2}}}
+\put(6.5,3.5){\makebox(0,0)[tl]{\parbox{1.8cm}{Platz 12\\Streck 0\\Schrumpf 0}}}
+\put(5.2,1){\makebox(0,0){Breite 52}} % Gesamtbreite
+\put(4,1){\vector(-1,0){4}} % Anzeiger
+\put(6.4,1){\vector(1,0){4}}
+\put(0,4){\circle*{.1}} % Bezugs-
+\put(2.8,4){\circle*{.1}} % punkte
+\put(5.8,4){\circle*{.1}}
+\put(8.8,4){\circle*{.1}}
+\end{picture}
+\end{center}
+
+Das erste Leimst\"uck hat z.B.\ eine nat\"urliche Breite von 9pt, eine
+\index{Schrumpf!Moeglichkeit@Schrumpf!M\"oglichkeit}
+Schrumpfm\"oglichkeit von 1pt und eine Streckm\"oglichkeit von 3pt. Die
+\index{Gesamt!Breite}
+Gesamtbreite der ganzen, gro\ss{}en \index{Box!Breite}
+Box ergibt sich normalerweise als die
+Breite der Einzelboxen, plus die nat\"urliche Breite des Leimes, also:
+\[5+9+6+9+3+12+8=52\]
+Angenommen, \TeX\ w\"urde aufgefordert diese Box auf eine Breite von
+58pt zu strecken (z.B.\ wegen der \index{Rechtsbuendig@Rechtsb\"undig}
+Rechtsb\"undigkeit), d.h.\ die Box um
+6pt zu strecken. Nun, es gibt insgesamt $3+6+0=9$pt als
+\index{Gesamt!Streckmoeglichkeit@Gesamt!Streckm\"oglichkeit}
+Gesamtstreckm\"oglichkeit. \TeX\ multipliziert nun jede
+Streckm\"oglichkeit mit $6/9$ um die neuen
+\index{Groesse!Leim@Gr\"o\ss{}e!Leim}Leimgr\"o\ss{}en zu errechnen.
+Damit ergibt sich f\"ur die erste L\"ucke: $9+(6/9)\times 3=11$pt und f\"ur
+die zweite L\"ucke: $9+(6/9)\times 6=13$pt. Die letzte L\"ucke ist nicht
+weiter streckbar, so da\ss{} sie $12$pt breit bleibt. Das
+\index{Gesamt!Bild}Gesamtbild sieht
+nun folgenderma\ss{}en aus:
+
+\begin{center}
+\begin{picture}(11.6,7)
+\put(0,2){\framebox(1,4){}} % erste Box
+\put(3.2,3.2){\framebox(1.2,1){}} % zweite Box
+\put(7,3){\framebox(.6,3){}} % dritte Box
+\put(10,2){\framebox(1.6,4){}} % vierte Box
+\put(0,4){\line(1,0){1}} % Bezugslinie
+\put(3.2,4){\line(1,0){1.2}} % Bezugslinie
+\put(7,4){\line(1,0){.6}} % Bezugslinie
+\put(10,4){\line(1,0){1.6}} % Bezugslinie
+\put(1,4){\dashbox{.1}(2.2,0){}} % Verbindungslinie
+\put(4.4,4){\dashbox{.1}(2.6,0){}} % Verbindungslinie
+\put(7.6,4){\dashbox{.1}(2.4,0){}} % Verbindungslinie
+\put(1.1,3.5){$9+2$}
+\put(4.5,3.5){$9+4$}
+\put(7.7,3.5){$12+0$}
+\put(5.8,1){\makebox(0,0){Breite 58}} % Gesamtbreite
+\put(4.6,1){\vector(-1,0){4.6}} % Anzeiger
+\put(7,1){\vector(1,0){4.6}}
+\put(0,4){\circle*{.1}} % Bezugs-
+\put(3.2,4){\circle*{.1}} % punkte
+\put(7,4){\circle*{.1}}
+\put(10,4){\circle*{.1}}
+\end{picture}
+\end{center}
+
+W\"are \TeX, umgekehrt angewiesen worden die Box nur 51pt breit zu
+machen, dann w\"urde sie erste L\"ucke um $1/3$, die zweite um $2/3$ ihrer
+\index{Schrumpf!Moeglichkeit@Schrumpf!M\"oglichkeit}
+Schrumpfm\"oglichkeit verkleinert.
+
+Egal wie, der Leim definiert wurde, so hat \TeX\ dennoch nicht die
+M\"oglichkeit eine Box beliebig weit zusammenzuschrumpfen. Im vorherigen
+Beispiel ist daher $49$pt die geringste Breite, die die horizontale
+Box annehmen kann. Hingegen kann der Leim beliebig weit gestreckt
+werden, wenn man ihm die entsprechenden Angaben beigibt.
+
+Es fragt sich nur, welche Angaben gibt man denn dem Leim? Nun, man
+sollte die Ma\ss{}e immer so w\"ahlen, da\ss{} der Text mit dem nat\"urlichen Ma\ss{}
+des Leimes am besten aussieht, und die maximale
+\index{Schrumpf!Mass@Schrumpf!Ma\ss{}}Schrumpf- bzw.
+\index{Masse!Streck@Ma\ss{}e!Streck}
+Streckma\ss{}e so, da\ss{} er gerade eben noch gut aussieht. Normalerweise
+brauchen sie sich allerdings nicht darum zu k\"ummern, da \TeX\ ihnen
+diese Arbeit abnimmt. Um z.B.\ die Abst\"ande zwischen Abs\"atzen zu
+bestimmen, gibt es in {\em Plain} \TeX\ den Befehl:
+\index{zzzsmallskip@{\tt\char92 smallskip}}`\verb|\smallskip|'.
+Dieser Befehl wird automatisch immer hinter einem \index{Absatz}
+Absatz eingef\"ugt,
+sie kennen also schon genug Beispiele f\"ur die Anwendung. Es ist immer
+besser einen derartigen Befehl einzusetzen, als den \index{Abstand}
+Abstand explizit
+anzugeben. Nur, wenn es unbedingt sein mu\ss{}, k\"onnen sie auf den Leim
+zur\"uckgreifen. Stellt sich die Frage, {\em wie} man den nun eine
+Leimangabe macht. \"Ublicherweise wird Leim in \TeX\ folgenderma\ss{}en
+spezifiziert:
+\begin{quote}
+$<$dimen$>$ {\tt plus} $<$dimen$>$ {\tt minus} $<$dimen$>$
+\end{quote}
+Die Angaben von {\tt plus} $<$dimen$>$ und {\tt minus} $<$dimen$>$
+sind optional, und werden als Null angenommen, wenn sie nicht
+angegeben werden. Die \index{Groesse!Leim@Gr\"o\ss{}e!Leim}
+Gr\"o\ss{}e, die hinter {\tt plus} steht repr\"asentiert
+sie Streckbarkeit, die hinter {\tt minus} die
+\index{Schrumpf!Schrumpfbarkeit}Schrumpfbarkeit. Die
+nat\"urliche Gr\"o\ss{}e {\em mu\ss{}} angegeben werden, auch wenn sie Null ist.
+Der Befehl \index{zzzmedskip@{\tt\char92 medskip}}
+`\verb|\medskip|' wird z.B.\ in {\em Plain} \TeX\ folgenderma\ss{}en
+definiert:
+\index{zzzvskip@{\tt\char92 vskip}}
+\begin{verbatim}
+\vskip6pt plus2pt minus2pt
+\end{verbatim}
+Auch \index{Horizontal!Platz}horizontaler Platz wird entsprechend definiert. Der Befehl
+\index{zzzenskip@{\tt\char92 enskip}}
+`\verb|\enskip|' wird z.B.\ definiert als:\index{zzzhskip@{\tt\char92 hskip}}
+\index{zzzrelax@{\tt\char92 relax}}
+\begin{verbatim}
+\hskip.5em\relax
+\end{verbatim}
+Es wird also ein halbes `em' Platz gelassen, allerdings ohne die
+M\"oglichkeit der \index{Schrumpfung}Schrumpfung oder Streckung. Der Befehl
+\index{zzzrelax@{\tt\char92 relax}}`\verb|\relax|'
+hinter der Angabe sorgt daf\"ur, da\ss{} der Befehl auch dann richtig
+arbeitet, wenn im Text hinter dem Befehl eine `plus' oder `minus'
+steht.
+
+Eine wichtige Eigenschaft des Leimes ist, da\ss{} er auch {\em unendlich}
+weit gestreckt werden kann. Nehmen sie z.B.\ an, im letzten Beispiel
+w\"are der zweite Leimabschnitt unendlich weit streckbar. Dann w\"urde nur
+der zweite \index{Zwischenraum}
+Zwischenraum gestreckt, w\"arend die andern unver\"andert
+bleiben w\"urden.
+
+Das wird erst interessant, wenn sie daran denken, da\ss{}
+der Befehl \index{zzzcenterline@{\tt\char92 centerline}}
+`\verb|\centerline|' nichts anderes ist, als
+eine \index{Box!Hbox}hbox von der Breite \index{zzzhsize@{\tt\char92 hsize}}
+`\verb|\hsize|', deren Text von zwei
+unendlich streckbaren Leimst\"ucken eingerahmt ist. Auch in der kleinen
+Geschichte, die wir in einem fr\"uheren Kapitel kennengelernt haben
+wurde derartiger Leim benutzt. Die Geschichte endete mit den Befehlen:
+\index{zzzvfill@{\tt\char92 vfill}}
+`\verb|\vfill|' und \index{zzzeject@{\tt\char92 eject}}
+`\verb|\eject|'. `\verb|\eject|' sorgt nur f\"ur die
+\index{Ausgabe}
+Ausgabe des Textes an den \index{Ausgabe!File}
+Ausgabefile, `\verb|\vfill|' hingegen
+bedeutet: F\"uge vertikalen \index{Zwischenraum}
+Zwischenraum mit der nat\"urlichen L\"ange 0
+ein, der aber unendlich weit streckbar ist. Mit anderen Worten, f\"ulle
+die restliche \index{Seite!Auffuellen@Seite!Auff\"ullen}
+Seite mit \index{Leer!Raum}Leerraum auf.
+
+Es gibt nun in \TeX\ verschiedene Arten von {\em Unendlichkeit}, die
+sich voneinander unterscheiden. Bei der vertikalen Streckung gibt es
+die Befehle: \index{zzzvfil@{\tt\char92 vfil}}
+`\verb|\vfil|' und `\verb|\vfill|', wobei der zweite
+wesentlich st\"arker wirkt. Wenn `\verb|\vfil|' alleine benutzt wird,
+dann wird es soweit, wie n\"otig gestreckt. Tritt es allerdings zusammen
+mit `\verb|\vfill|' auf, dann wird es nicht gestreckt, sondern es wird
+da gestreckt, wo `\verb|\vfill|' steht. Denken sie sich das einfach
+so, als h\"atte `\verb|\vfil|' eine Streckf\"ahigkeit von einem Kilometer,
+und `\verb|\vfill|' von einer Million Kilometer.
+
+Analog gibt es auch noch die Befehl
+\index{zzzhfil@{\tt\char92 hfil}}`\verb|\hfil|' und
+\index{zzzhfill@{\tt\char92 hfill}}`\verb|\hfill|'
+und die Befehle \index{zzzhss@{\tt\char92 hss}}
+`\verb|\hss|' und \index{zzzvss@{\tt\char92 vss}}
+`\verb|\vss|', die sowohl Streckung,
+als auch unendliche \index{Schrumpfung}Schrumpfung zulassen.
+
+In diesen Zusammenhang geh\"ort auch noch der Befehl
+\index{zzzhfilneg@{\tt\char92 hfilneg}}`\verb|\hfilneg|',
+bzw.\ \index{zzzvfilneg@{\tt\char92 vfilneg}}
+`\verb|\vfilneg|'. Diese Befehle heben die Streckbarkeit von
+\index{zzzhfil@{\tt\char92 hfil}}
+`\verb|\hfil|' und `\verb|\vfil|' auf. Den Grund f\"ur einen derartigen
+Befehl werden wir erst sp\"ater kennenlernen.
+
+Um derartige unendlich streckbare \index{Masse!Streck@Ma\ss{}e!Streck}
+Ma\ss{}e erstelle zu k\"onnen, k\"onnen sie
+auf die \index{Primitiv}
+Primitive `\verb|fil|', `\verb|fill|' oder `\verb|filll|'
+zur\"uckgreifen. Die Befehle `\verb|\vfil|', `\verb|\vfill|',
+`\verb|\vss|' und `\verb|\vfilneg|' werden z.B.\ definiert als:
+\index{zzzvskip@{\tt\char92 vskip}}
+\begin{verbatim}
+\vskip 0pt plus 1fil
+\vskip 0pt plus 1fill
+\vskip 0pt plus 1fil minus 1fil
+\vskip 0pt plus -1fil
+\end{verbatim}
+Die dritte Alternative: `\verb|filll|' sollten sie nicht benutzen,
+auch {\em Plain} \TeX\ macht keinen Gebrauch davon. Sie ist f\"ur absolute
+Notf\"alle vorbehalten.
+\subsection{Verwendung des Leims durch \TeX}
+Wie wird der Leim von {\em Plain} \TeX\ verwendet? Es gibt einige
+interessante Anwendungen. \TeX\ f\"ugt z.B.\ hinter einem Satz einen
+etwas \index{Groesse!Zwischenraum@Gr\"o\ss{}e!Zwischenraum}
+gr\"o\ss{}eren \index{Zwischenraum}Zwischenraum ein, als zwischen normalen Worten.
+Au\ss{}erdem wird die Streckbarkeit des Zwischenraums an diesen Stellen
+erh\"oht. Betrachten wir folgenden Satz:\footnote{Originalbeispiel aus
+dem \TeX Book.}
+\begin{verbatim}
+``Oh, oh!'' cried Baby Sally. Dick and Jane laughed.
+\end{verbatim}
+In nat\"urlicher Breite sieht der Satz so aus:\medskip
+
+``Oh, oh!'' cried Baby Sally. Dick and Jane laughed.\medskip
+
+Was aber passiert, wenn man ihn um 5pt, 10pt, 15pt oder mehr
+auseinanderzieht? Sehen wir es uns an:\medskip
+
+\hbox spread 5pt{``Oh, oh!'' cried Baby Sally. Dick and Jane laughed.}
+
+\hbox spread 10pt{``Oh, oh!'' cried Baby Sally. Dick and Jane laughed.}
+
+\hbox spread 15pt{``Oh, oh!'' cried Baby Sally. Dick and Jane laughed.}
+
+\hbox spread 20pt{``Oh, oh!'' cried Baby Sally. Dick and Jane laughed.}\medskip
+
+Der Leim hinter dem \index{Komma}Komma wird um das $1\frac{1}{4}$fache des Normalen
+gestreckt. Hinter dem \index{Punkt}
+Punkt und hinter dem `\verb|!''|' sogar um das
+dreifache. Zwischen zusammengeh\"origen Zeichen ist kein Leim, so da\ss{}
+die einzelnen Worte ihr Aussehen behalten. Wie siehts nun aus, wenn
+dieser Satz auf das Minimum zusammengestaucht wird?\medskip
+
+{\hfuzz 1000pt
+\hbox to 0pt{``Oh, oh!'' cried Baby Sally. Dick and Jane laughed.}}
+\medskip
+
+Der \index{Zwischenraum}Zwischenraum nach dem \index{Komma}
+Komma wird nur 80\% dessen, der Zwischenraum
+nach dem \index{Punkt}
+Punkt, bzw.\ dem Ausrufezeichen sogar nur ein Drittel dessen
+kleiner, wie der normale Zwischenraum zwischen den Worten.
+
+F\"ur den Normalfall ist das auch so in Ordnung, was aber, wenn ein
+\index{Punkt}
+Punkt \"uberhaupt nicht ein Wortende markiert? Dazu gibt es mehrere
+M\"oglichkeiten:
+\begin{enumerate}
+\item Wenn sie drei \index{Punkt}
+Punkte schreiben wollen, um die Fortsetzung eines
+Satzes anzuzeigen $\ldots$, dann sollten sie statt der drei Punkte
+lieber die Sequenz \index{zzzldots@{\tt\char92 ldots}}
+`\verb|$\ldots$|' schreiben. Damit schalten sie
+kurzfristig in den mathematischen \index{Modus!Mathematisch}
+Modus um und geben dort mit dem
+Befehl `\verb|\ldots|' die gew\"unschten Punkte an. \"Ubrigens sieht diese
+Version auch besser aus. Drei Punkte ergeben n\"amlich normalerweise, ohne
+die Umschaltung in den mathematischen Modus: `...'.
+\item \index{Punkt}Punkte hinter \index{Abkuerzung@Abk\"urzung}
+Abk\"urzungen beenden \"ublicherweise auch keinen
+Satz. Hier gibt es zwei M\"oglichkeiten. Entweder, sie ersetzen das
+\index{Leer!Zeichen}
+Leerzeichen hinter dem \index{Punkt}
+Punkt durch die Tilde: `\verb|~|', oder sie
+setzen ein Kontrollleerzeichen: `\verb*+\ +', je nachdem, ob sie eine
+Trennung an dieser Stelle zulassen wollen oder nicht. Die Tilde wird
+durch ein Leerzeichen ersetzt, an dem aber kein Zeilenumbruch
+stattfinden kann.
+\item Sie k\"onnen sich diese \"Uberlegungen sparen, wenn der
+\index{Punkt}Punkt hinter
+einem \index{Grossbuchstaben@Gro\ss{}buchstaben}
+Gro\ss{}buchstaben steht. \TeX\ nimmt dann sowieso an, da\ss{} es sich
+um eine \index{Abkuerzung@Abk\"urzung}
+Abk\"urzung handelt und behandelt den \index{Punkt}Punkt nicht wie einen
+\index{Satz!Ende}Satz-Ende-Punkt.
+\end{enumerate}
+Letztlich k\"onnen sie alle \"Uberlegungen zu \index{Zwischenraum}
+Zwischenr\"aumen vergessen,
+wenn sie zu Beginn ihres Textes den Befehl:
+\index{zzzfrenchspacing@{\tt\char92 frenchspacing}}`\verb|\frenchspacing|'
+schreiben. Mit diesem Befehl bewirken sie, da\ss{} alle Zwischenr\"aume
+gleich gro\ss{} sind, egal, wie und wo sie stehen. Unser Beispiel s\"ahe
+damit folgenderma\ss{}en aus:\medskip
+
+{\frenchspacing
+``Oh, oh!'' cried Baby Sally. Dick and Jane laughed.}\medskip
+
+Mit `\verb|\nonfrenchspacing|' wird wieder zur\"uckgeschaltet.
+Angenommen, wir h\"atten den Befehl gegeben, normal mit
+\index{Zwischenraum}Zwischenraum
+umzugehen, dann k\"onnten wir uns den Leim ansehen, indem wir den Satz
+in eine Box schreiben und diese dann ansehen:
+\index{zzzglue@{\tt\char92 glue}}\index{zzzkern@{\tt\char92 kern}}
+\begin{verbatim}
+.\tenrm \ (ligature ``)
+.\tenrm O
+.\tenrm h
+.\tenrm ,
+.\glue 3.33333 plus 2.08331 minus 0.88889
+.\tenrm o
+.\tenrm h
+.\tenrm !
+.\tenrm \" (ligature '')
+.\glue 4.44444 plus 4.99997 minus 0.37036
+.\tenrm c
+.\tenrm r
+.\tenrm i
+.\tenrm e
+.\tenrm d
+.\glue 3.33333 plus 1.66666 minus 1.11111
+.\tenrm B
+.\tenrm a
+.\tenrm b
+.\kern-0.27779
+.\tenrm y
+.\glue 3.33333 plus 1.66666 minus 1.11111
+.\tenrm S
+.\tenrm a
+.\tenrm l
+.\tenrm l
+.\tenrm y
+.\kern-0.83334
+.\tenrm .
+.\glue 4.44444 plus 4.99997 minus 0.37036
+\end{verbatim}
+Normalerweise hat der Leim bei der \index{Schrift!Art}
+Schriftart `\verb|\tenrm|' die
+Werte: 3.33333pt plus 1.66666 pt minus 1.11111 pt, aber achten sie
+darauf, wie sich bei der \index{Interpunktion}
+Interpunktion der Leim \"andert. Sie k\"onnen an
+diesem Beispiel noch mehr sehen. Zum einen wandelt \TeX\ die beiden
+`\verb|``|' in eine \index{Ligatur}
+Ligatur (also {\em ein} Zeichen) und ausserdem
+werden noch einige `\verb|\kern|' Befehle eingef\"ugt. `\verb|\kern|'
+verh\"at sich \"ahnlich wie Leim, nur das er weder streck- noch
+\index{Schrumpf!Schrumpfbarkeit}
+schrumpfbar ist und es wird hinter einem `\verb|\kern|' Befehl {\em
+nie} ein Zeilenumbruch durchgef\"uhrt, es sei denn es folgt unmittelbar
+ein Leimbefehl.
+\subsection{Die genauen Regeln f\"ur den Leim}
+Ihnen d\"urfte eventuell schon aufgefallen sein, da\ss{} die oben
+beschriebenen Regeln nicht {\em hunderprozentig} richtig sind. So
+w\"urden die obigen Regeln nicht erkl\"aren, wieso das Ausrufezeichen
+richtig behandelt wird, obwohl noch die beiden
+\index{Anfuehrungszeichen@Anf\"uhrungszeichen}Anf\"uhrungsstriche
+folgen.
+
+Es gibt einen weiteren wichtigen Wert, den \index{Zwischenraum!Faktor}
+Zwischenraumfaktor ($f$).
+Dieser ist \"ublicherweise $1000$. Wenn der Faktor gr\"o\ss{}er als $2000$
+wird, wird der \index{Zwischenraum}
+Zwischenraum folgenderma\ss{}en berechnet: Addiere zum
+normalen Zwischenraum den sog. Extrazwischenraum\footnote{Zu jedem
+Zeichensatz sind die folgenden Angaben vorgegeben: Normaler
+Zwischenraum, normaler Streckwert, normaler \index{Schrumpf!Wert}
+Schrumpfwert und eben
+dieser Extrazwischenraum. F\"ur {\tt cmr10} sind die Werte: 3.33333pt,
+1.66666pt, 1.11111pt und 1.11111pt} und multipliziere den Streckwert
+mit $f/1000$, den Schrumpfwert mit $1000/f$.
+
+Es gibt nun f\"ur sie einfache M\"oglichkeiten den normalen Zwischenraum
+zu \"uberschreiben. Mit den Befehlen: \index{zzzspaceskip@{\tt\char92 spaceskip}}
+`\verb|\spaceskip|' und `\verb|\xspaceskip|' wird folgenderma\ss{}en verfahren:
+Ist der
+Zwischenraumfaktor ($f$) gr\"o\ss{}er als 2000, dann wird entweder der
+Leimwert von \index{zzzxspaceskip@{\tt\char92 xspaceskip}}
+`\verb|\xspaceskip|' genommen, wenn dieser ungleich Null
+ist, oder der von `\verb|\spaceskip|', wobei die Streck- und
+\index{Schrumpf!Komponenten}
+Schrumpfkomponenten mit $f/1000$ bzw.\ $1000/f$ multipliziert werden.
+Das \index{zzzraggedright@{\tt\char92 raggedright}}
+`\verb|\raggedright|' Makro z.B.\ benutzt die beiden Befehle, um
+jedes Strecken oder \index{Schrumpfung}Schrumpfen zu verhindern.
+
+Wenn eine \index{Horizontal!Liste}horizontale \index{Liste!Horizontal}
+Liste begonnen wird, wird der \index{Zwischenraum!Faktor}
+Zwischenraumfaktor
+auf 1000 gesetzt. Ebenso nach jedem \index{Nichtbuchstaben}
+Nichtbuchstaben oder einer
+mathematischen Formel. Jedes andere Zeichen, was an die Liste angef\"ugt
+wird, hat einen eigenen Zwischenraumfaktor, der dann den alten Wert
+ersetzt. Dabei gibt es allerdings noch zwei Regeln:
+\begin{enumerate}
+\item Ist der Faktor des Zeichens 0, dann wird der alte Wert
+beibehalten,
+\item Ist der Wert von $1000$ verschieden, und es gilt z.B.: $f<1000<g$
+($g$ der Faktor des Zeichens), dann erh\"alt $f$ den Wert $1000$. Mit
+andern Worten, $f$ {\em \"uberspringt} nicht die $1000$er Grenze.
+\end{enumerate}
+Der gr\"o\ss{}tm\"ogliche Zwischenraumfaktor ist $32767$, und damit gr\"o\ss{}er,
+als jemals n\"otig.
+
+Wenn {\tt INITEX} seine Arbeit aufnimmt, haben alle Zeichen den
+Zwischenraumfaktor 1000, au\ss{}er den
+\index{Grossbuchstaben@Gro\ss{}buchstaben}Gro\ss{}buchstaben, die den Wert 999
+haben.\footnote{Erraten sie, warum \index{Punkt}
+Punkte hinter Gro\ss{}buchstaben anders
+behandelt werden?} {\em Plain} \TeX\ \"andert nun einige Werte mit dem
+\index{Primitiv}\index{zzzcatcode@{\tt\char92 catcode}}
+Primitiv: \index{zzzsfcode@{\tt\char92 sfcode}}
+`\verb|\sfcode|', der \"ahnlich dem `\verb|\catcode|' Befehl
+arbeitet.
+\begin{verbatim}
+\sfcode`)=0 \sfcode`.=3000
+\end{verbatim}
+\"andert den Faktor f\"ur die schlie\ss{}ende \index{Klammer!Platz um}
+Klammer so, da\ss{} er ignoriert
+wird, f\"ur den \index{Punkt}
+Punkt so, da\ss{} zus\"atzlicher \index{Zwischenraum}Zwischenraum eingef\"ugt wird.
+
+Bei \index{Ligatur}Ligaturen berechnet sich der
+\index{Zwischenraum!Faktor}Zwischenraumfaktor aus den
+Einzelkomponenten, aus denen die Ligatur besteht.
+
+Nun zu einem Beispiel, wie \TeX\ {\em wirklich} eine Zeile
+zusammensetzt: Die nat\"urliche Breite einer \index{Box!Breite}
+Box setzt sich zusammen aus
+allen Zeichenboxbreiten plus den nat\"urlichen Breiten der Leimst\"ucke.
+Ist die nat\"urliche Breite gleich der gew\"unschten Breite, passiert
+nichts. Ist hingegen die gew\"unschte Breite kleiner oder gr\"o\ss{}err, als
+die nat\"urliche Breite, dann wird ein Faktor berechnet, mit dem jeder
+\index{Schrumpf!Faktor}
+Schrumpf- bzw.\ Streckfaktor der Leimst\"ucke multipliziert wird. Das
+Ergebnis ist eine Box, die genau die gew\"unschte Breite hat.
+
+Um einer \index{Box!Hbox}{\tt hbox} eine feste Breite zu geben benutzt man den Befehl:
+\index{zzzhbox@{\tt\char92 hbox}}
+\begin{verbatim}
+\hbox to <dimen>{ ... }
+\end{verbatim}
+\index{zzzcenterline@{\tt\char92 centerline}}
+Das Makro `\verb|\centerline|' beginnt z.B.: `\verb|\hbox to\hsize|'.
+\"Ahnlich arbeitet die Angabe von:
+\index{zzzhbox@{\tt\char92 hbox}}
+\begin{verbatim}
+\hbox spread <dimen>{ ... }
+\end{verbatim}
+Die angegebene \index{Dimension}
+Dimension besagt, um wieviel gr\"o\ss{}er, als die nat\"urliche
+Breite ($<$dimen$> > 0$), bzw.\ um wieviel kleiner als die nat\"urliche
+\index{Groesse!Natuerliche@Gr\"o\ss{}e!Nat\"urliche}
+Gr\"o\ss{}e ($<$dimen$> < 0$) die {\tt hbox} werden soll.
+\section{Die Feinheiten einer vertikalen Box}\index{Box!Vbox}
+Die \index{Grundlinie}
+Grundlinie einer horizontalen Box ist gleich der gemeinsamen
+Grundlinie aller Elemente, soweit diese nicht angehoben oder abgesenkt
+wurden. Die \index{Hoehe!Box@H\"ohe!Box}
+H\"ohe einer derartigen Box ist gleich der H\"ohe des h\"ochsten
+Elements, die Tiefe gleich der tiefsten Einzeltiefe. Somit kann eine
+horizontale Box nur positive H\"ohe und Tiefe haben, wohl aber eine
+negative Breite.
+
+Wenn nun horizontale Boxen zu einer vertikalen Box zusammengef\"ugt
+werden sollen, dann funktioniert das \"ahnlich, wie bei den horizontalen
+Boxen, mit einem Unterschied. Die horizontalen Boxen sollen sich nicht
+ber\"uhren. Dazu gibt es drei Werte, die vorher festgelegt werden
+m\"ussen:
+\index{zzzbaselineskip@{\tt\char92 baselineskip}}
+\index{zzzlineskip@{\tt\char92 lineskip}}
+\index{zzzlineskiplimit@{\tt\char92 lineskiplimit}}
+\begin{verbatim}
+\baselineskip=<Leim>
+\lineskip=<Leim>
+\lineskiplimit=<dimen>
+\end{verbatim}\index{Baseline!Skip}
+Wird nun eine neue horizonatale \index{Box!In Liste}Box an eine vertikale
+\index{Liste!Vertikal}Liste angef\"ugt,
+dann wird der \index{Abstand!Zeilen}
+Zeilenabstand so berechnet, da\ss{} der Abstand der
+Basislinie der neuen \index{Box!Basislinie}
+Box, von der Basislinie der letzten Box genau den
+\index{zzzbaselineskip@{\tt\char92 baselineskip}}
+Wert von `\verb|\baselineskip|' hat. Ist das Ergebnis so, da\ss{} die
+Zeilen mit dieser L\"osung zu nahe aneinanderliegen, genauer, n\"aher als
+der Wert in `\verb|\lineskiplimit|', dann wird statt dessen der Wert
+\index{zzzlineskip@{\tt\char92 lineskip}}`\verb|\lineskip|' benutzt.
+
+Als Ausnahme von dieser Regel dienen nur die Befehle:
+\index{zzzvskip@{\tt\char92 vskip}}`\verb|\vskip|'
+und \index{zzzkern@{\tt\char92 kern}}
+`\verb|\kern|', und alle daraus zusammengesetzten Befehle. Hiermit
+ist es m\"oglich einen anderen, als den normalen \index{Abstand!Zeilen}
+Zeilenabstand zu
+erzeugen. Z.B.\ der Befehl
+\index{zzzsmallskip@{\tt\char92 smallskip}}`\verb|\smallskip|' arbeitet so. Eine
+weitere Ausnahme besteht darin, da\ss{} hinter
+\index{zzzxrule@{\tt\char92 xrule}}`\verb|\xrule|'-Befehlen
+kein \index{Zwischenraum!Zeile}
+Zeilenzwischenraum eingef\"ugt wird. Sie k\"onnen den \index{Zwischenraum}
+Zwischenraum
+aber auch mit dem Befehl: \index{zzznointerlineskip@{\tt\char92 nointerlineskip}}
+`\verb|\nointerlineskip|' selber verhindern.
+
+Als Regel sollte sie sich folgendes angew\"ohnen: Wenn ihr Text \"uber
+mehrere Zeilen geht, dann sollte \index{zzzbaselineskip@{\tt\char92 baselineskip}}
+`\verb|\baselineskip|' {\em keine}
+\index{Schrumpf!Angabe}
+Schrumpf- oder Streckangaben enthalten, um so das Aussehen der
+\index{Seite!Aussehen}Seiten
+gleichm\"a\ss{}iger zu gestalten. Bei Texten, die nur \"uber eine Seite gehen,
+ist dagegen die Angabe dieser Werte sinvoll, um eine bessere
+Ausnutzung der Seite zu erhalten.
+
+Zur Berechnung des \index{Zwischenraum!Zeile}
+Zeilenzwischenraums greift \TeX\ \"ubrigens auf ein
+\index{Primitiv}
+Primitiv mit Namen:
+\index{zzzprevdepth@{\tt\char92 prevdepth}}
+`\verb|\prevdepth|' zur\"uck. Normalerweise die
+Tiefe der letzten horizontalen \index{Box!Tiefe}
+Box, die angef\"ugt wurde. Der Wert wird
+allerdings auf $-1000$ gesetzt, am Anfang einer neuen vertikalen
+\index{Liste!Vertikal}Liste, oder nach einem
+\index{zzzrule@{\tt\char92 rule}}`\verb|\rule|'-Befehl. Sie k\"onnen den Wert aber
+auch {\em von Hand} \"andern, wenn sie es wollen.
+
+Schlie\ss{}lich noch die exakten Regeln, nach denen eine neue horizontale
+Box an eine vertikale Box angeh\"angt wird: Angenommen die neu Box hat
+eine \index{Hoehe!Box@H\"ohe!Box}
+H\"ohe von $h$, und der Wert von `\verb|\prevdepth|' ist $p$.
+Weiterhin sollen sein:
+\index{zzzbaselineskip@{\tt\char92 baselineskip}}
+\index{zzzlineskiplimit@{\tt\char92 lineskiplimit}}
+\begin{verbatim}
+\baselineskip=b plus y minus z
+\lineskiplimit=l
+\end{verbatim}
+Wenn $p\le -1000$pt wird kein \index{Zwischenraum!Zeile}
+Zeilenzwischenraum eingef\"ugt. Ist
+andererseits: $b-p-h\ge l$ dann wird der \index{Zwischenraum}
+Zwischenraum $(b-p-h)
+\mbox{ plus } x \mbox{ minus } y)$ eingef\"ugt, ansonsten {\tt\char92
+lineskip}.
+
+F\"ur die vertikalen Boxen gelten dieselben Befehle, wie f\"ur die
+horizontalen Boxen, mit dem Unterschied, da\ss{} der Befehl: `\verb|\vbox|'
+\index{zzzvbox@{\tt\char92 vbox}}
+verwendet wird. Es sind nat\"urlich auch die Befehle: `\verb|\vbox to
+...|' und `\verb|\vbox spread ...|' erlaubt.
+
+Der tiefste vorkommende Referenzpunkt innerhalb einer vertikalen
+\index{Box!Referenzpunkt}Box
+wird als Referenzpunkt f\"ur die ganze vertikale Box genommen.
+Normalerweise werden vertikale Boxen so untereinander gesetzt, da\ss{}
+ihre Referenzpunkte senkrecht untereinander liegen, mit den Befehlen:
+\index{zzzmoveleft@{\tt\char92 moveleft}}
+\index{zzzmoveright@{\tt\char92 moveright}}
+\begin{verbatim}
+\moveright<dimen><box>
+\moveleft<dimen><box>
+\end{verbatim}
+k\"onnen sie aber auch nach rechts oder links verschoben werden. Dies
+entspricht den Befehlen
+\index{zzzraise@{\tt\char92 raise}}
+`\verb|\raise|' und \index{zzzlower@{\tt\char92 lower}}
+`\verb|\lower|' in
+horizontalen Boxen.
+\section{Sonderf\"alle}
+Neben dem Befehl f\"ur eine vertikale \index{Box!Vbox}
+{\tt vbox} gibt es auch den
+Befehl: \index{zzzvtop@{\tt\char92 vtop}}
+`\verb|\vtop|'. Dieser erzeugt auch eine vertikale Box, und
+die zugeh\"origen Befehle arbeiten komplett analog zu denen f\"ur
+\index{zzzvbox@{\tt\char92 vbox}}
+`\verb|\vbox|'. Der Unterschied besteht darin, da\ss{} die Basislinie der
+{\em obersten} enthaltenen horizontalen Box als Referenzpunkt genommen
+wird. Damit sind Konstruktionen wie die folgende m\"oglich:
+\index{zzzhbox@{\tt\char92 hbox}}
+\begin{verbatim}
+\hbox{Hier sind \vtop{\hbox{zwei Zeilen}\hbox{mit Text}}}
+\end{verbatim}
+Das ergibt:\medskip
+
+\hbox{Hier sind \vtop{\hbox{zwei Zeilen}\hbox{mit Text}}}\medskip
+
+Ein weiteres Element bei der Arbeit mit vertikalen Boxen stellt der
+Befehl \index{zzzstrut@{\tt\char92 strut}}
+`\verb|\strut|' dar. Mit ihm wird eine Box der
+\index{Hoehe!Box@H\"ohe!Box}H\"ohe 8.5pt, der
+Tiefe 3.5pt und der Breite Null bereitgestellt. Sie k\"onnen diesen
+Befehl benutzen, um immer korrekte Abst\"ande zu erzwingen. Schauen sie
+sich z.B.\ im Anhang das `\verb|\footnote|' Makro an, das daf\"ur sorgt,
+da\ss{} mehrere \index{Fussnote!Absetzen@Fu\ss{}note!Absetzen}
+Fu\ss{}noten auch voneinander abgesetzt werden.
+
+Letztlich sind noch die Befehle \index{zzzrlap@{\tt\char92 rlap}}
+`\verb|\rlap|' und
+\index{zzzllap@{\tt\char92 llap}}`\verb|\llap|'
+interessant. Sie sorgen daf\"ur, da\ss{} der Text, auf den sich die Befehle
+beziehen folgenderma\ss{}en verh\"alt. Das Makro `\verb|\rlap|' gibt den
+zugeh\"origen Text aus, nimmt aber keinen Platz weg. Genauer, es wird
+eine Box der Breite Null erzeugt, an den sich der zugeh\"orige Text
+anschlie\ss{}t. Man kann das auch so verstehen, als w\"urde der Text
+ausgegeben, und dann um die Breite des Textes zur\"uckgegangen. Somit
+ist das Zeichen: `$\neq$' auch produzierbar mit dem Befehl:
+`\verb|\rlap=/|'. Analog arbeitet der Befehl `\verb|\llap|' nur, da\ss{}
+hier der Text sozusagen {\em nach links} ausgegeben wird. Das obige
+Zeichen lie\ss{}e sich also auch mit. `\verb|/\llap=|' erzeugen.
+\chapter{Zusammensetzung der Seiten}
+\section{Modi}
+\TeX\ kennt sechs verschiedene
+Bearbeitungsmodi:\index{Horizontal!Modus}
+\begin{itemize}
+\item Den {\em vertikalen Modus}, in dem die \"ausserste vertikale
+\index{Liste!Vertikal}Liste
+bearbeitet wird, die zur \index{Ausgabe}Ausgabe der Seiten f\"uhrt.
+\item Den {\em internen vertikalen Modus} zum Aufbau von
+`\verb|\vbox|'en.\index{zzzvbox@{\tt\char92 vbox}}
+\item Den {\em horizontalen Modus} um aus Zeilen Paragraphen
+aufzubauen.
+\item Den {\em eingeschr\"ankten horizontalen Modus} zum Aufbau von
+\index{zzzhbox@{\tt\char92 hbox}}`\verb|\hbox|'en.
+\item Den {\em mathematischen Modus} mit dem mathematische Formeln in
+eine horizontale \index{Liste!Horizontal}Liste eingef\"ugt werden.
+\item Den {\em abgesetzten mathematischen Modus}, mit dem Formeln in
+eine eigene Zeile gesetzt werden, die den momentanen Paragraphen
+unterbricht.
+\end{itemize}\index{Formel!abgesetzte}
+Normalerweise braucht sie der Modus, in dem \TeX\ sich gerade befindet
+nicht zu interessieren, h\"ochstens bei der \index{Fehler!Suche}
+Fehlersuche kann es
+hilfreich sein die verschiedenen Modi zu kennen. Grunds\"atzlich reicht
+es zu wissen, da\ss{} es die drei Grundtypen: vertikaler, horizontaler und
+mathematischer \index{Modus!Mathematisch}
+Modus gibt. Manche Befehle haben, je nach momentanem
+Modus unterschiedliche Wirkung. Der Befehl \index{zzzkern@{\tt\char92 kern}}
+`\verb|\kern|' bewirkt
+z.B.\ einen vertikalen resp.\ horizontalen \index{Zwischenraum}
+Zwischenraum, je nach
+Modus, in dem er angetroffen wird.
+
+Betrachten wir mal wieder unser Lieblingsbeispiel: die kleine Story.
+Zu Bearbeitungsbeginn befindet sich \TeX\ immer im vertikalen Modus.
+Die \index{Abstand!Anweisung}
+Abstandsanweisung, sowie der \index{Horizontal!Strich}
+horizontale Strich, werden einfach an
+die vertikale \index{Liste!Horizontal}
+Liste angef\"ugt. Auch die \index{Box!Centerline}
+Box, die von \index{zzzcenterline@{\tt\char92 centerline}}
+`\verb|\centerline|' erzeugt wird, wird einfach an die Liste
+angeh\"angt, sie erfordert aber etwas mehr Vorarbeit. Die Box, die `{\tt
+A SHORT STORY}' enth\"alt wird im eingeschr\"ankten horizontalen Modus
+erstellt. Die beiden folgenden Paragraphen werden dann im normalen
+horizontalen Modus erstellt.
+
+Wenn sich \TeX\ im vertikalen Modus befindet, sorgt jeder auftretende
+Buchstabe f\"ur ein Umschalten in den horizontalen Modus. Das gilt aber
+auch f\"ur die Befehle: `\verb|\char|', \index{zzzaccent@{\tt\char92 accent}}
+`\verb|\accent|',\index{zzzhskip@{\tt\char92 hskip}}
+`\verb|\hskip|', `\verb*|\ |' und
+\index{zzzvrule@{\tt\char92 vrule}}`\verb|\vrule|' oder die Umschaltung
+in den mathematischen Modus (\$). Ausserdem l\"a\ss{}t sich mit den
+Befehlen: \index{zzzindent@{\tt\char92 indent}}
+`\verb|\indent|' oder \index{zzznoindent@{\tt\char92 noindent}}
+`\verb|\noindent|' in den horizontalen
+Modus umschalten. Diese Befehle werden zu Beginn eines Paragraphen
+gebraucht um eine \index{Einrueckung@Einr\"uckung}
+Einr\"uckung der Gr\"o\ss{}e \index{zzzparindent@{\tt\char92 parindent}}
+`\verb|\parindent|' zu
+bewirken, oder eben nicht.
+
+Der horiontale Modus wird beendet durch:
+\index{zzzpar@{\tt\char92 par}}
+\begin{enumerate}
+\item Zwei \index{Leer!Zeile}Leerzeilen,
+\item den Befehl: `\verb|\par|'
+\item einen inkompatibelen Befehl wie z.B.:\
+\index{zzzvskip@{\tt\char92 vskip}}`\verb|\vskip|', der im
+horizontalen Modus keinen Sinn erg\"abe.
+\end{enumerate}
+
+Der mathematische Modus wird durch ein \index{Dollarzeichen}
+Dollarzeichen (\$) eingeleitet
+und solange beibehalten, bis wieder ein schlie\ss{}endes Dollarzeichen
+gefunden wird. Die Dollarzeichen wirken also wie eine
+\index{Klammer!Dollarzeichen als}Klammer.
+
+Mit einem doppelten \index{Dollarzeichen!Doppelt}
+Dollarzeichen wird in den
+abgesetzten\index{Formel!abgesetzte}
+mathematischen Modus geschaltet (\$\$). Der laufende Paragraph wird
+unterbrochen, die mathematische Formel in einer eigenen Zeile gesetzt
+und nach dem schlie\ss{}enden doppelten Dollarzeichen wird der Paragraph
+wieder fortgesetzt. So ergibt:
+\index{zzzapprox@{\tt\char92 approx}}
+\begin{verbatim}
+Die Nummer $$\pi \approx 3.1415926536$$ ist wichtig.
+\end{verbatim}
+Die Nummer $$\pi \approx 3.1415926536$$ ist wichtig.
+
+Im vertikalen Modus werden \index{Leer!Zeichen}
+Leerzeichen und -zeilen ignoriert. Eine
+Ausnahme bildet nur das kontrollierte Leerzeichen (`\verb*|\ |'), das
+einen neuen Paragraphen einleitet, nachdem zuvor die
+\index{Einrueckung@Einr\"uckung}Einr\"uckung
+vorgenommen wurde.
+
+Um einen Text zu beenden sollte man am besten den Befehl:
+\index{zzzbye@{\tt\char92 bye}}`\verb|\bye|'
+verwenden, der eine \index{Abkuerzung@Abk\"urzung}
+Abk\"urzung f\"ur die Befehlsfolge: \index{zzzvfill@{\tt\char92 vfill}}
+`\verb|\vfill|'
+(auff\"ullen der letzten Seite mit Leerplatz),
+\index{zzzeject@{\tt\char92 eject}}`\verb|\eject|'
+(\index{Ausgabe}Ausgabe
+der Seite) und `\verb|\end|' (Beendigung der Arbeit von \TeX)
+darstellt.
+
+Der interne vertikale Modus unterscheidet sich nur geringf\"ugig vom
+normalen vertikalen Modus und der eingeschr\"ankte
+\index{Horizontal!Modus}horizontale Modus
+noch weniger vom normalen horizontalen Modus. Dennoch gibt es kleine
+Unterschiede, da die Zielsetzung ein wenig anders ist.
+
+\TeX\ schaltet h\"aufig zwischen den Modi hin und her. Dabei ist der
+\"ausserste Modus immer der vertikale Modus. Wird er unterbrochen, dann
+wird nach der Unterbrechung der vertikale Modus wiederaufgenommen.
+Alle Modi k\"onnen getestet werden, wenn man folgenden \index{File!Test}
+File eingibt:
+\index{zzznoindent@{\tt\char92 noindent}}
+\index{zzzshowlists@{\tt\char92 showlists}}
+\index{zzztracingcommands@{\tt\char92 tracingcommands}}
+\index{zzzvbox@{\tt\char92 vbox}}
+\begin{verbatim}
+\tracingcommands=1
+\hbox{
+$
+\vbox{
+\noindent$$
+x\showlists
+$$}$}\bye
+\end{verbatim}
+Der erste Befehl in diesem File bewirkt, da\ss{} alle weiteren Aktionen
+genauer mitprotokolliert werden. Der Logfile zu dieser Datei sieht
+damit folgenderma\ss{}en aus:
+\index{Display!Mode}
+\index{zzzvbox@{\tt\char92 vbox}}
+\begin{verbatim}
+{vertical mode: \hbox}
+{restricted horizontal mode: blank space}
+{math shift character $}
+{math mode: blank space}
+{\vbox}
+{internal vertical mode: blank space}
+{\noindent}
+{horizontal mode: math shift character $}
+{display math mode: blank space}
+{the letter x}
+\end{verbatim}
+Versuchen sie diese \index{Ausgabe}
+Ausgabe selber zu verstehen, so schwierig, wie es
+auf den ersten Blick aussieht ist es gar nicht. Denken sie nur daran,
+da\ss{} \TeX\ die \index{Markierung!Zeilenende}
+Zeilenendemarkierung in ein \index{Leer!Zeichen}
+Leerzeichen umwandelt. Der\index{zzzshowlists@{\tt\char92 showlists}}
+Befehl `\verb|\showlists|' soll hier zun\"achst ignoriert werden.
+
+\section{Wie macht \TeX\ aus Zeilen Paragraphen?}
+\subsection{Das Vorgehen und Sonderf\"alle}
+Grunds\"atzlich werden Zeilenumbr\"uche innerhalb eines Paragraphen immer
+f\"ur den ganzen Paragraphen berechnet. Die Vorgehensweise ist dabei
+so, da\ss{} die Umbr\"uche gesucht werden, bei denen die \index{Badness}
+{\em badness} f\"ur
+den ganzen Paragraphen am geringsten ist. \TeX\ kann nat\"urlich nicht
+f\"ur {\em psychologisch} schlechte Umbr\"uche verantwortlich gemacht
+werden. In ganz schlimmen F\"allen\footnote{Ich erinnere hier immer
+wieder gerne an das Beispiel aus der {\em Context} Dokumentation: Man
+sollte Urinstinkt nicht zu: Urin -- stinkt trennen.} mu\ss{} man wohl per
+Hand nachhelfen. Es gibt aber f\"ur viele F\"alle eine einfache
+M\"oglichkeit Zeilenumbr\"uche zu verhindern: Die Tilde (`\verb|~|').
+
+Die Tilde ersetzt ein \index{Leer!Zeichen}
+Leerzeichen, \TeX\ setzt an die Stelle auch ein
+Leerzeichen, bricht aber an dieser Stelle die Zeile nicht um. Man
+sollte die Tilde z.B.\ in folgenden F\"allen
+benutzen:\index{Kapitel!Nummer}
+
+1. \index{Referenz}Referenzen in Texten:
+\begin{verbatim}
+Kapitel~1 Satz~12
+Anhang~A Figur~13
+\end{verbatim}
+
+2. Zwischen Vornamen und zwischen den Teilen von
+Nachnamen:\index{Gogh}\index{Knuth. D.}
+\begin{verbatim}
+Donald~E. Knuth
+Vincent van~Gogh
+Fritz~der~Gro\ss{}e
+\end{verbatim}
+
+3. Zwischen mathematischen Symbolen und ihren Bezeichnern:
+\begin{verbatim}
+Breite~$b$ H\"ohe~$h$
+\end{verbatim}
+
+4. Zwischen Symbolen in Serie:
+\index{zzzldots@{\tt\char92 ldots}}
+\begin{verbatim}
+1,~2 oder~3
+1,~2 $\ldots$~$n$
+\end{verbatim}
+Auch \index{Box!Hbox}\index{zzzhbox@{\tt\char92 hbox}}
+`\verb|\hboxen|' werden von \TeX\ nicht gebrochen. Wenn sie z.B.\
+einen Seitenbereich angeben wollen, dann schreiben sie am besten:
+`\verb|Seiten \hbox{1--3}|'. Seien sie aber bitte mit dieser Variante
+vorsichtig. Es ist z.B.\ besser `\verb|Kapitel~12|', als
+`\verb|\hbox{Kapitel 12}|' zu schreiben, da im ersten Falle das
+\index{Leer!Zeichen}
+Leerzeichen noch gestreckt oder geschrumpft werden kann und au\ss{}erdem
+das Wort `\verb|Kapitel|' noch getrennt werden kann.
+
+Einen Zeilenumbruch an einer bestimmten Stelle erzwingen
+sie mit dem Befehl \index{zzzbreak@{\tt\char92 break}}`\verb|\break|'.
+Er\hfil kann\hfil allerdings\hfil dazu\hfil f\"uhren,\break da\ss{} ihre
+Zeile etwas in die L\"ange gezogen wird. Wenn sie wollen, da\ss{} \TeX\
+zun\"achst die Zeile mit \index{Leer!Platz}
+leerem Platz auff\"ullt,\hfil\break dann
+benutzen sie den Befehl \index{zzzhfil@{\tt\char92 hfil}}
+`\verb|\hfil\break|' um genau das zu erreichen.
+
+Mitunter, besonders in Gedichten wollen sie vielleicht, da\ss{} die Zeilen
+immer da umgebrochen werden, wo sie auch in der \index{Eingabe!Umbruch}
+Eingabe umgebrochen
+sind. Sie k\"onnen das erreichen, indem sie hinter jede Zeile ein
+\index{zzzpar@{\tt\char92 par}}
+`\verb|\par|' schreiben, einfacher ist es allerdings, wenn sie
+innerhalb einer \index{Gruppe}
+Gruppe den Befehl \index{zzzobeylines@{\tt\char92 obeylines}}
+`\verb|\obeylines|' benutzen. Auch
+hier wieder ein Beispiel aus dem Original:
+\index{zzzsmallskip@{\tt\char92 smallskip}}
+\begin{verbatim}
+{\obeylines\smallskip
+Roses are red,
+\quad Violets are blue;
+Rhymes can be typeset
+\quad With boxes and glue.
+\smallskip}
+\end{verbatim}
+\subsection{Wie gehts genau?}
+\subsubsection{Die horizontale Liste}
+Wie macht \TeX\ es denn nun, wenn es einen Paragraphen in Zeilen
+bricht? Zun\"achst ist ein Paragraph f\"ur \TeX\ nur eine lange Reihe von
+W\"ortern. Genauer gesagt nicht aus W\"ortern, sondern aus einer Reihe von
+Elementen, die folgendes sein k\"onnen:
+\begin{enumerate}\index{Box}
+\item Ein Box (Also ein Zeichen, eine \index{Ligatur}
+Ligatur, eine Linie, eine hbox
+oder eine vbox).
+\item Eine m\"ogliche Trennung (wird gleich erkl\"art).
+\item Ein ``WasDenn'' (kommt sp\"ater).
+\item Vertikales Material (von \index{zzzmark@{\tt\char92 mark}}
+`\verb|\mark|', \index{zzzvadjust@{\tt\char92 vadjust}}`\verb|\vadjust|' oder
+\index{zzzinsert@{\tt\char92 insert}}`\verb|\insert|').
+\item Etwas \index{Leim}\index{zzzleaders@{\tt\char92 leaders}}
+Leim (oder `\verb|\leaders|', wie auch sp\"ater noch erkl\"art
+wird).
+\item Ein Kern (so was wie Leim, der aber nicht gestreckt oder
+geschrumpft werden kann).
+\item Strafpunkte (die anzeigen, ob hier ein Zeilenumbruch g\"unstig
+oder ung\"unstig ist).
+\item Ein Zeichen, da\ss{} den Beginn oder das Ende des mathematischen
+Modus anzeigt.
+\end{enumerate}
+Die letzten vier M\"oglichkeiten hei\ss{}en \"ubrigens {\em entfernbar}, da
+sie bei einem Zeilenumbruch ver\"andert werden k\"onnen, oder sogar ganz
+wegfallen.
+\subsubsection{Die m\"ogliche Trennung}
+Immer, wenn ein Wort auf eine besondere Art getrennt werden soll, dann
+gibt es in \TeX\ die M\"oglichkeit diese Trennung gesondert anzugeben.
+Besonders in der deutschen Sprache ist diese M\"oglichkeit wichtig, da
+im Deutschen h\"ochst seltsame Trennregeln existieren. Aber auch bei
+ungew\"ohnlichen Trennungen (z.B.\ Trennung von `st'), kann dieser
+Befehl benutzt werden. Die allgemeine Form lautet dabei
+folgenderma\ss{}en:
+\index{zzzdiscretionary@{\tt\char92 discretionary}}
+\begin{verbatim}
+\discretionary{<Vor-Bruch Text>}{<Nach-Bruch Text>}{<Nicht-Bruch Text>}
+\end{verbatim}
+Im Deutschen wird z.B.\ jedes `ck' in `k-k' getrennt. Sollte es einmal
+wichtig werden, dann schreiben sie doch einfach:
+\begin{verbatim}
+dr\"u\discretionary{k-}{k}{ck}en
+\end{verbatim}
+wenn sie das Wort `dr\"ucken' richtig trennen wollen. So kompliziert
+braucht es aber nur in solchen Sonderf\"allen zu sein. F\"ur die m\"ogliche
+Trennung:
+\begin{verbatim}
+\discretionary{-}{}{}
+\end{verbatim}
+gibt es auch die \index{Abkuerzung@Abk\"urzung}Abk\"urzung: `\verb|\-|'
+\TeX\ macht \"ubrigens eigentlich genau das Gleiche, wenn es Worte trennen
+will. Es werden einfach in ein Wort derartige m\"ogliche Trennungen
+eingef\"ugt. Aus dem Wort `\verb|Trennung|' wird z.B.\ `\verb|Tren\-nung|'.
+\subsubsection{Die Berechnung der Trennungen}
+Zun\"achst versucht \TeX\ einen Paragraphen {\em ohne} Trennungen zu
+setzen. Die dabei auftretenden Streckungen und Stauchungen m\"ussen
+dabei unter dem Wert von
+\index{zzzpretolerance@{\tt\char92 pretolerance}}
+`\verb|\pretolerance|' bleiben. Erst im
+zweiten Durchlauf, sollte er denn n\"otig sein, werden W\"orter getrennt
+und dann m\"ussen die Werte von \index{Badness}
+badness unter `\verb|\tolerance|'\index{zzztolerance@{\tt\char92 tolerance}}
+bleiben. Voreingestellt sind \"ubrigens:
+\begin{verbatim}
+\pretolerance=100
+\tolerance=200
+\end{verbatim}
+
+Zun\"achst einmal: Wo darf \"uberhaupt getrennt werden? Es darf an den
+folgenden Stellen im Text getrennt werden:
+\begin{enumerate}
+\item Bei \index{Leim}Leim, sofern dieser Leim nicht unmittelbar hinter einem
+entfernbaren Element steht und er nicht in einer mathematischen Formel
+auftritt. Gebrochen wird am linken
+\index{Rand!Leimstueck@Rand!Leimst\"uck}Rand des Leimst\"ucks.
+\item Bei Kern, vorausgesetzt, da\ss{} diesem Kern etwas Leim folgt und er
+nicht in einer mathematischen Formel steht.
+\item An einem Mathe-Ende-Zeichen, dem sofort Leim folgt.
+\item Bei Strafpunkten, die eventuell automatisch eingef\"ugt wurden.
+\item Bei einer m\"oglichen Trennung.
+\end{enumerate}
+Zu jeder m\"oglichen Trennung geh\"ort eine {\em \"asthetische
+\index{Strafe!Aesthetische@Strafe!\"Asthetische}Strafe}. In
+den F\"allen: 1,~2 und~3 ist die Strafe 0, im vierten Fall ist die
+Strafe exakt angegeben, im f\"unften Fall ist es etwas komplizierter.
+Ist der Text vor der Trennung nicht-leer, dann wird der Wert von
+\index{zzzhyphenpenalty@{\tt\char92 hyphenpenalty}}
+`\verb|\hyphenpenalty|' (voreingestellt mit 50), ist er leer der Wert
+von \index{zzzexhyphenpenalty@{\tt\char92 exhyphenpenalty}}
+`\verb|\exhyphenpenalty|' (voreingestellt mit 50) verwendet.
+
+Wenn sie explizit an einer Stelle in ihrem Text angeben:
+\index{zzzpenalty@{\tt\char92 penalty}}
+`\verb|\penalty 100|', dann kann dort zwar noch gebrochen werden, es
+tritt aber eine Strafe von 100 auf\footnote{\index{Penalty}Penalty=Strafpunkte}.
+Wenn sie hingegen `\verb|\penalty-100|' schreiben, dann geben sie damit an,
+da\ss{} an dieser Stelle besonders gut gebrochen werden kann, da {\em
+negative} Strafpunkte die Trennung f\"ordern. Eine Strafe von $10000$ ist
+z.B. so hoch, da\ss{} \TeX\ hier nie eine Zeile umbrechen wird, eine
+Strafe von $-10000$ so niedrig, da\ss{} \TeX\ hier immer die Zeile
+umbrechen wird. Der Befehl \index{zzznobreak@{\tt\char92 nobreak}}
+`\verb|\nobreak|' ist nur eine
+\index{Abkuerzung@Abk\"urzung}Abk\"urzung
+f\"ur `\verb|\penalty 10000|' und die Tilde wird einfach als:
+`\verb*|\nobreak\ |' realsiert.
+
+Nach dem Zeilenumbruch werden alle entfernbaren Elemente entfernt und
+zwar bis zum ersten nicht-entfernbaren Element, oder bis zum n\"achsten
+Zeilenumbruch.
+
+Die genaue Berechnung der \index{Badness}
+badness einer Zeile braucht hier nicht zu
+interessieren, sie ist ungef\"ahr das Hundertfache der dritten
+\index{Potenz!Badnessberechnung}Potenz
+der Streckung oder \index{Schrumpf!Berechnung}
+Schrumpfung der Zeile. Wenn eine Zeile z.B.\ 10pt
+zu Streckung zur Verf\"ugung hat, die Zeile tats\"achlich um 9pt gestreckt
+werden mu\ss{}, um auf das notwendige Ma\ss{} zu kommen, dann ist die badness:
+\index{zzzapprox@{\tt\char92 approx}}
+$100\times (9/10)^3\approx 73$.
+
+Zeilen werden nun entsprechend ihrer badness klassifiziert. Ist die
+badness kleiner als 13, dann gilt die Zeile als {\em anst\"andig}, liegt
+sie zwischen 13 und 99, dann hei\ss{}t sie {\em dicht}, wenn sie
+geschrumpft wurde, {\em lose}, wenn sie gestreckt wurde. Ist die
+badness gr\"o\ss{}er als 100, dann hei\ss{}t die Zeile {\em sehr dicht} oder
+{\em sehr lose}. Zwei Zeilen sind optisch inkompatibel, wenn mehr als
+ein Bereich \"ubersprungen wird, wenn z.B.\ eine anst\"andige Zeile vor
+einer sehr losen kommt.
+
+\TeX\ berechnet nun f\"ur eine Folge von Zeilenumbr\"uchen die
+\index{Minuspunkte}Minuspunkte
+des Paragraphen, indem es die Minuspunkte aller Zeilen aufaddiert. Die
+Minuspunkte einer Zeile ergeben sich dabei nach folgender
+\index{Formel!Fuer Minuspunkte@Formel!F\"ur Minuspunkte}Formel
+(dabei ist: $d$ die \index{Minuspunkte}
+Minuspunkte, $p$ die Strafpunkte, $b$ die badness,
+$l$ die sogenannte \index{Strafe!Zeile}
+Zeilenstrafe, die von \TeX\ \"ublicherweise mit 10
+voreingestellt ist \index{zzzlinepenalty@{\tt\char92 linepenalty}}
+(`\verb|\linepenalty|'). Sie kann erh\"oht werden,
+wenn man erreichen will, da\ss{} die Paragraphen mit m\"oglichst geringer
+Zeilenzahl gesetzt werden sollen):
+\index{zzzleq@{\tt\char92 leq}}
+\[
+d=\left\{\begin{array}{ll}
+(l+b)^2+p^2 & \mbox{wenn\quad} 0\leq p <10000 \\
+(l+b)^2-p^2 & \mbox{wenn\quad} -10000 < p < 0 \\
+(l+b)^2 & \mbox{wenn\quad} p \leq -10000 \end{array} \right. \]
+Sind zwei aufeinanderfolgende Zeilen optisch inkompatibel, dann wird
+au\ss{}erdem noch der Wert von \index{zzzadjdemerits@{\tt\char92 adjdemerits}}
+`\verb|\adjdemerits|' hinzugef\"ugt, enden
+zwei aufeinanderfolgende Zeilen mit einer Trennung, dann wird der Wert
+von \index{zzzdoublehyphendemerits@{\tt\char92 doublehyphendemerits}}
+`\verb|\doublehyphendemerits|' addiert und endet die vorletzte
+Zeile eines Paragraphen mit einer Trennung, dann wird noch
+\index{zzzfinalhyphendemerits@{\tt\char92 finalhyphendemerits}}
+`\verb|\finalhyphendemerits|' addiert. Dabei sind die folgenden Werte
+voreingestellt:
+\index{zzzadjdemerits@{\tt\char92 adjdemerits}}
+\index{zzzdoublehyphendemerits@{\tt\char92 doublehyphendemerits}}
+\begin{verbatim}
+\adjdemerits=10000
+\doublehyphendemerits=10000
+\finalhyphendemerits=5000
+\end{verbatim}
+Die genaue Berechnung der einzelnen Durchl\"aufe l\"a\ss{}t sich
+verfolgen, wenn
+\index{zzztracingparagraphs@{\tt\char92 tracingparagraphs}}
+`\verb|\tracingparagraphs=1|' gesetzt wird,
+dessen Erkl\"arung aber hier zu weit f\"uhren w\"urde.
+
+\subsubsection{Die letzte Zeile}
+{\parfillskip=0pt Bisher d\"urfte noch nicht klar sein, wieso die letzte
+Zeile eines Paragraphen k\"urzer sein kann, als die letzten. Die L\"osung
+ist aber ganz einfach: Bevor \TeX\ anf\"angt die besten Zeilenumbr\"uche
+zu suchen unternimmt es noch zwei wichtige Dinge: (1) Steht am Ende
+eines Paragraphen ein St\"uck \index{Leim}
+Leim, so wird dieser entfernt. (2) Werden
+drei Befehle an den Paragraphen angeh\"angt: (a)
+\index{zzzpenalty@{\tt\char92 penalty}}
+`\verb|\penalty10000|',
+was einen Zeilenumbruch vor den letzten Befehlen verhindert, (b)
+\index{zzzparfillskip@{\tt\char92 parfillskip}}
+`\verb|\hskip\parfillskip|', was den \index{Leer!Platz}
+leeren Platz am Ende der Zeile
+bewirkt, `\verb|\parfillskip|' ist dabei \"ublicherweise als {\tt 0pt
+plus 1fil} definiert und (c) der Befehl `\verb|\penalty-10000|', was
+den letzten Zeilenumbruch bewirkt. Mit dem Wert f\"ur
+`\verb|\parfillskip|' kann \"ubrigens auch gespielt werden. Diese
+\index{Absatz}Absatz
+wurde mit dem Wert {\tt 0pt} gesetzt, so da\ss{} am Ende des Abschnitts
+kein Platz gelassen wird. Das ist allerdings nur bei l\"angeren
+Abschnitten problemlos m\"oglich.}
+
+\subsubsection{Lange Paragraphen}
+Was tun, wenn ein Paragraph {\em wirklich} lang wird? \TeX\ h\"alt immer
+den ganzen Paragraphen im \index{Speicher!Paragraph}
+Speicher, und daher kann es vorkommen, da\ss{}
+lange Paragraphen den \index{Speicher!Platz}
+Speicherplatz, der zur Verf\"ugung steht,
+sprengen. Man kann das umgehen, indem man in einen Paragraphen die
+Befehlsfolge:
+\index{zzznoindent@{\tt\char92 noindent}}
+\index{zzzparfillskip@{\tt\char92 parfillskip}}
+\index{zzzparskip@{\tt\char92 parskip}}
+\begin{verbatim}
+{\parfillskip0pt\par\parskip0pt\noindent}
+\end{verbatim}
+einf\"ugt. Auf die Art wird der Paragraph in kleinere Paragraphen
+unterteilt, ohne da\ss{} der Leser es merkt.
+\subsection{Feinheiten und Tricks}
+\subsubsection{Einr\"uckungen und Flattersatz}
+\begin{quote}
+Bei dem Satz eines Paragraphen werden au\ss{}er den \"ublichen
+Gr\"o\ss{}en auch noch die Werte von \index{zzzrightskip@{\tt\char92 rightskip}}
+`\verb|\rightskip|' und
+\index{zzzleftskip@{\tt\char92 leftskip}}
+`\verb|\leftskip|' ber\"ucksichtigt. Es handelt sich dabei um
+\index{Leim}Leimst\"ucke, die vor, bzw.\ nach jeder Zeile eingef\"ugt werden.
+Normalerweise sind die Werte einfach Null, aber z.B.\ das Makro
+\index{zzznarrower@{\tt\char92 narrower}}
+`\verb|\narrower|' erh\"oht die beiden Werte auf den Wert von
+\index{zzzparindent@{\tt\char92 parindent}}
+`\verb|\parindent|', so da\ss{} alle Zeilen rechts und links einger\"uckt
+werden. Dieser Absatz wurde mit dem Makro gesetzt.
+\end{quote}\index{Absatz}
+
+{\raggedright Auch das Makro `\verb|\raggedright|' wird mit
+`\verb|\rightskip|' realisiert, aber nicht einfach mit:}
+\index{zzzraggedright@{\tt\char92 raggedright}}
+\index{zzzrightskip@{\tt\char92 rightskip}}
+\begin{verbatim}
+\rightskip 0pt plus 1fil
+\end{verbatim}
+{\raggedright wie man vielleicht annehmen k\"onnte, da diese L\"osung dazu
+f\"uhren w\"urde, da\ss{} auch ganz kurze Zeilen noch f\"ur \TeX\ akzeptabel
+w\"aren. Statt dessen sollte man die Wortabst\"ande konstant w\"ahlen und
+\index{zzzrightskip@{\tt\char92 rightskip}}
+`\verb|\rightskip|' zwar hoch, aber auch nicht {\em zu} hoch setzen.}
+
+\subsubsection{Totale Kontrolle}
+\parshape 16
+0pc 26pc
+0pc 26pc
+0pc 24.69pc
+0pc 23.51pc
+0pc 22.73pc
+0pc 22.20pc
+0pc 21.85pc
+0pc 21.65pc
+0pc 21.58pc
+0pc 21.65pc
+0pc 21.85pc
+0pc 22.20pc
+0pc 22.73pc
+0pc 23.51pc
+0pc 24.69pc
+0pc 29pc
+Es gibt schlie\ss{}lich noch eine {\em sehr} eindrucksvolle M\"oglichkeit
+die L\"ange von Zeilen im Text zu beeinflu\ss{}en. Den Befehl
+\index{zzzparshape@{\tt\char92 parshape}}
+`\verb|\parshape|'. Ihm folgen zun\"achst eine einfache Zahl, und dann
+Paare von Werte, die die folgende Bedeutung haben: Die erste Zahl
+gibt an, auf wieviele Zeilen sich der Befehl bezieht (in diesem
+Paragraphen sind es 16 Zeilen). Bei den folgenden Wertepaaren gibt der
+erste Wert an, wieviel die Zeile vom linken
+\index{Rand!Einrueckung@Rand!Einr\"uckung}Rand her einger\"uckt werden
+soll, und der zweite Wert, wie lang die jeweilige Zeile sein soll. In
+diesem Paragraphen mu\ss{}ten also 16 Wertepaare angegeben werden. Ist der
+Paragraph k\"urzer, als die angegebene Anzahl von Zeilen, dann werden
+die \"uberfl\"u\ss{}igen Angaben einfach ignoriert, ist er l\"anger, dann gilt
+die Angabe f\"ur die letzte Zeile. Haben sie einen Paragraphen
+geschrieben, und wissen nicht, ob ihre Angaben nicht eventuell mit in
+den n\"achsten Abschnitt hineinragen, dann k\"onnen sie die letzte Angabe
+einfach dadurch unwirksam machen, da\ss{} sie `\verb|\parshape 0|'
+eingeben. So schalten sie wieder auf die urspr\"unglichen Werte von
+Zeilenl\"ange. Eine wichtige \index{Abkuerzung@Abk\"urzung}
+Abk\"urzung f\"ur den Befehl `\verb|\parshape|'
+stellt \TeX\ mit den Befehlen \index{zzzhangindent@{\tt\char92 hangindent}}
+`\verb|\hangindent|' und
+\index{zzzhangafter@{\tt\char92 hangafter}}
+`\verb|\hangafter|' bereit. Diese werden viel \"ofters gebraucht, als
+der eigentliche Befehl `\verb|\parshape|', der nur in wirklich
+seltenen F\"allen zur Anwendung kommt.
+
+\hangafter=-3
+\hangindent=\parindent
+\noindent Mit den Befehlen \index{zzzhangindent@{\tt\char92 hangindent}}
+`\verb|\hangindent|' und
+\index{zzzhangafter@{\tt\char92 hangafter}}
+`\verb|\hangafter|' k\"onnen an den vier {\em Ecken} eines
+\index{Absatz}Absatzes
+rechteckige Fl\"achen freigelassen werden. `\verb|\hangafter|' dient
+dabei der Angabe, wieviele Zeilen von der
+\index{Einrueckung@Einr\"uckung}Einr\"uckung betroffen sind,
+und zwar sind die Zeilen $n+1$, $n+2 \ldots$ betroffen, wenn $n$ ein
+positiver Wert von `\verb|\hangafter|' ist, ist $n$ negativ, dann sind
+die Zeilen $1$, $2$, $|n|$ betroffen. Mit `\verb|\hangindent|' wird
+nun angegeben, wie gro\ss{} die Einr\"uckung ist. Bei positivem Wert, wird
+links, andernfalls rechts einger\"uckt. Dieser Paragraph wurde mit:
+\index{zzzhangafter@{\tt\char92 hangafter}}
+\index{zzzhangindent@{\tt\char92 hangindent}}
+\index{zzzparindent@{\tt\char92 parindent}}
+\begin{verbatim}
+\hangafter=-3
+\hangindent=\parindent
+\end{verbatim}
+gesetzt.
+Die beiden Befehle werden \"ubrigens f\"ur die Makros `\verb|\item|' und
+`\verb|\itemitem|' benutzt, die f\"ur \index{Aufzaehlung@Aufz\"ahlung}
+Aufz\"ahlungen zust\"andig sind. Wenn
+sie z.B. schreiben:\index{Ebene!Aufzaehlung@Ebene!Aufz\"ahlung}
+\begin{verbatim}
+\item{1.} Dies ist die erste Aufz\"ahlungsebene
+\itemitem{(a)} Hier nun die Unterebene,
+\itemitem{(b)} und ein weiterer Eintrag in die Unterebene
+\item{2.} Und zum Schlu\ss{} noch ein Eintrag in der h\"oheren Eintragebene,
+um das Ganze etwas interessanter zu gestalten.
+\end{verbatim}
+dann erhalten sie:
+
+\begin{enumerate}
+\item Dies ist die erste Aufz\"ahlungsebene
+\begin{enumerate}
+\item Hier nun die Unterebene,
+\item und ein weiterer Eintrag in die Unterebene
+\end{enumerate}
+\item Und zum Schlu\ss{} noch ein Eintrag in der h\"oheren Eintragebene,
+um das Ganze etwas interessanter zu gestalten.
+\end{enumerate}
+
+Die Werte von \index{zzzparshape@{\tt\char92 parshape}}
+`\verb|\parshape|', \index{zzzhangindent@{\tt\char92 hangindent}}
+`\verb|\hangindent|' und
+\index{zzzhangafter@{\tt\char92 hangafter}}
+`\verb|\hangafter|' werden \"ubrigens am Ende eines Paragraphen
+zur\"uckgesetzt.
+\subsubsection{Die H\"ohe von Paragraphen}
+Eine \index{Formel!abgesetzte}
+abgesetzte Formel in einem Paragraphen nimmt den Platz von drei
+Zeilen ein. Wenn ihr Paragraph also vier Zeilen vor und zwei Zeilen
+nach der Formel hat, dann ist der gesamte Paragraph $4+3+2=9$ Zeilen
+hoch. Intern wird die Anzahl der Zeilen, die schon bearbeitet wurden
+in der Variablen \index{zzzprefgraf@{\tt\char92 prefgraf}}
+`\verb|\prefgraf|' festgehalten. Dies k\"onnen sie dazu
+ausnutzen, da\ss{} sie den Wert bei h\"oheren Formeln \"andern. Ist ihre
+Formel z.B.\ sehr hoch, dann k\"onnten sie in dem vorigen Beispiel vor
+den beiden letzten Zeilen den Wert von `\verb|\prefgraf|' auf 8
+setzen, so da\ss{} \TeX\ denkt, es h\"atte insgesamt einen Paragraphen mit
+10 Zeilen gesetzt.
+
+Ein weiteres Mittel gibt es um die H\"ohe von Paragraphen zu
+beeinflu\ss{}en. Dazu verwenden sie den Befehl
+\index{zzzlooseness@{\tt\char92 looseness}}
+`\verb|\looseness|'. Setzen sie diesen Wert
+z.B.\ auf 1, dann macht \TeX\ den Paragraphen um eine Zeile l\"anger,
+als es ihn normalerweise machen w\"urde. Mit negativen Werten kann ein
+Paragraph auch k\"urzer gemacht werden. Der Wert von `\verb|\looseness|'
+wird auch am Ende des Paragraphen zur\"uckgesetzt.
+
+\subsection{Der Satz von Paragraphen}
+Schlie\ss{}lich, wenn alle Berechnungen zum Zeilenumbruch beendet sind,
+m\"ussen die Zeilen noch in die vertikale Liste der Seite geschrieben
+werden. Dabei geht \TeX\ folgenderma\ss{}en vor: Unmittelbar vor dem
+Paragraphen wird ein spezielles \index{Leim}Leimst\"uck in die vertikale Liste
+eingef\"ugt. Den \index{Abstand!Paragraphen}
+Abstand zweier aufeinanderfolgender Paragraphen:
+\index{zzzparskip@{\tt\char92 parskip}}
+`\verb|\parskip|'. Plain \TeX\ setzt diesen Abstand auf:
+\begin{verbatim}
+\parskip=0pt plus 1pt
+\end{verbatim}
+Danach folgen die einzelnen Zeilen, die schon umgebrochen wurden.
+Zwischen die Zeilen werden ggf.\ noch besondere Strafpunkte
+geschrieben, die sp\"ater f\"ur den Seitenumbruch gebraucht werden.
+Insbesondere wird zwischen die ersten beiden Zeilen und unmittelbar
+vor die letzte Zeile eine besondere \index{Strafe!Zeile}
+Strafe geschrieben, um
+\index{Schusterjunge}``Schusterjungen'' und \index{Hurenkind}
+``Hurenkinder'' zu vermeiden\footnote{Mit Schusterjungen und Hurenkindern
+bezeichnen die Drucker einzelne Zeilen eines Abschnittes, die durch Seitenumbruch
+vom Rest des Abschnittes getrennt wurde.}. Normalerweise wird zwischen die Zeilen
+der Wert von \index{zzzinterlinepenalty@{\tt\char92 interlinepenalty}}
+`\verb|\interlinepenalty|'
+geschrieben, handelt es sich um den \index{Zwischenraum}
+Zwischenraum zwischen erster und
+zweiter Zeile, dann wird der Wert von \index{zzzclubpenalty@{\tt\char92 clubpenalty}}
+`\verb|\clubpenalty|' addiert.
+Handelt es sich um den \index{Zwischenraum}
+Zwischenraum vor der letzten Zeile, dann wird
+\index{zzzwidowpenalty@{\tt\char92 widowpenalty}}
+`\verb|\widowpenalty|' eingef\"ugt, wenn keine \index{Formel!abgesetzte}
+abgesetzte Formel davor
+stand, sonst \index{zzzdisplaywidowpenalty@{\tt\char92 displaywidowpenalty}}
+`\verb|\displaywidowpenalty|'. Fand in der letzten Zeile
+eine Trennung statt, dann wird auch noch
+\index{zzzbrokenpenalty@{\tt\char92 brokenpenalty}}
+`\verb|\brokenpenalty|'
+addiert. Die Werte werden in Plain \TeX\ folgenderma\ss{}en gesetzt:
+\index{zzzdisplaywidowpenalty@{\tt\char92 displaywidowpenalty}}
+\index{zzzinterlinepenalty@{\tt\char92 interlinepenalty}}
+\begin{verbatim}
+\interlinepenalty=0
+\clubpenalty=150
+\widowpenalty=150
+\displaywidowpenalty=50
+\brokenpenalty=100
+\end{verbatim}
+
+Neben den \index{Horizontal!Linie}
+horizontalen Linien kann man auch aus einem Paragraphen
+heraus andere Dinge in die vertikale Liste schreiben. Dazu dienen die
+Befehl \index{zzzinsert@{\tt\char92 insert}}
+`\verb|\insert|', \index{zzzmark@{\tt\char92 mark}}
+`\verb|\mark|' und \index{zzzvadjust@{\tt\char92 vadjust}}`\verb|\vadjust|'. Die
+ersten beiden werden sp\"ater beschrieben, der dritte f\"ugt das
+\index{Argument}Argument
+des Befehls unmittelbar nach der Zeile, in der der Befehl steht, in
+die vertikale Liste ein. \index{zzzvadjust@{\tt\char92 vadjust}}
+\vadjust{\kern2pt}Hier habe ich z.B.\ mit dem
+Befehl `\verb|\vadjust{\kern2pt}|' einen zus\"atzlichen
+\index{Zwischenraum}Zwischenraum in
+den Paragraphen eingef\"ugt.
+\subsection{Die restlichen Befehle}
+\subsubsection{Ausf\"uhrungen f\"ur jeden Paragraphen}
+Der Befehl
+\index{zzzeverypar@{\tt\char92 everypar}}`\verb|\everypar|' gestattet es einen Befehl zu Beginn {\em
+jedes} Paragraphen auszuf\"uhren. In der einfachsten Form sieht der
+Befehl folgenderma\ss{}en aus: `\verb|\everypar{A}|'. Jedem Paragraphen
+w\"urde nun ein `A' vorangestellt. Nicht sehr sinnvoll, aber denken sie
+einmal daran, wie in der \LaTeX\ Umgebung `itemize' die
+\index{Aufzaehlung!Markierung@Aufz\"ahlung!Markierung}
+\index{Markierung!Aufzaehlung@Markierung!Aufz\"ahlung}
+Aufz\"ahlungsmarkierung realisiert wird.
+\subsubsection{Leere Zeilen}
+Einen leeren Paragraphen erhalten sie mit der Befehlsfolge
+\index{zzznoindent@{\tt\char92 noindent}}
+`\verb|\noindent\par|', wenn `\verb|\everypar|' leer ist. Es wird dann
+nur \index{zzzparskip@{\tt\char92 parskip}}
+`\verb|\parskip|' in die vertikale Liste eingef\"ugt.
+\subsubsection{Das letzte Hilfsmittel}
+Wenn \"uberhaupt nichts mehr geht, und sie sich vor lauter
+\index{Fehler!Meldung}
+Fehlermeldungen nicht mehr retten k\"onnen, dann benutzen sie den Befehl
+\index{zzzemergencystretch@{\tt\char92 emergencystretch}}
+`\verb|\emergencystretch|'. Dieser Befehl l\"a\ss{}t auch ungew\"ohnlich gro\ss{}e
+Streckungen zu. Ihr Text wird dann allerdings nicht mehr so gut
+aussehen.
+\section{Wie macht \TeX\ aus Paragraphen Seiten?}
+\subsection{Der Normalfall}
+Sie k\"onnen es \TeX\ einfach machen die besten Stellen f\"ur den
+Seitenumbruch zu finden, wenn sie viele abgesetze Formeln in ihrem
+Text verwenden, oder wenn sie oft die Befehl
+\index{zzzsmallskip@{\tt\char92 smallskip}}`\verb|\smallskip|',
+\index{zzzmedskip@{\tt\char92 medskip}}
+`\verb|\medskip|' oder \index{zzzbigskip@{\tt\char92 bigskip}}
+`\verb|\bigskip|' verwenden. Haben die diese
+M\"oglichkeit nicht, und sie sind mit dem Umbruchalgorithmus von \TeX\
+nicht einverstanden, dann k\"onnen sie auch jederzeit selbst einen
+Seitenumbruch bewirken, indem sie die Befehle
+\index{zzzeject@{\tt\char92 eject}}\index{zzzvfill@{\tt\char92 vfill}}
+`\verb|\vfill\eject|'
+verwenden. Die Verwendung von `\verb|\eject|' alleine ist nicht
+unbedingt zu empfehlen, dann dann die Zeilen der Seite auf das
+erforderliche Ma\ss{} auseinandergezogen w\"urden. Der Seitenumbruch
+geschieht sehr \"ahnlich, dem Zeilenumbruch, der im letzten Paragraphen
+besprochen wurde. Aus \index{Speicher!Platz}
+Speicherplatzgr\"unden wird allerdings nur {\em
+lokal} optimiert. Es wird also nicht der gesamte Text im Speicher
+gelassen, bevor die besten Stellen f\"ur den Seitenumbruch gesucht
+werden.
+\subsection{Die gehts genau?}
+Die Inhalte einer Seite, werden zun\"achst auch einfach als Liste, hier
+aber als vertikale Liste repr\"asentiert. In dieser Liste k\"onnen
+folgende Elemente auftreten:
+\begin{enumerate}\index{Box}\index{Einfuegung@Einf\"ugung}
+\item Eine Box (hier eine hbox, eine vbox oder eine rulebox).
+\item Ein ``WasDenn'' (kommt wieder sp\"ater).
+\item Eine Markierung (wird auch sp\"ater erkl\"art).
+\item Eine Einf\"ugung (auch das erst sp\"ater).
+\item Etwas \index{Leim}Leim (oder \index{zzzleaders@{\tt\char92 leaders}}`\verb|\leaders|').
+\item Ein Kern.
+\item Eine Strafe.
+\end{enumerate}
+Die drei letzten Elemente sind dabei wieder {\em entfernbare}
+Elemente, entsprechend den Ausf\"uhrungen im letzen Abschnitt. Es kann
+ebenfalls nicht an beliebiger Stelle eine Seitenumbruch erfolgen, das
+geht nur an:
+\begin{enumerate}
+\item Bei einem \index{Leim}Leimst\"uck, vorausgesetzt, da\ss{} dem Leim ein
+nicht-entfernbares Element unmittelbar vorangeht.
+\item Bei einem Kern, vorausgesetzt, dem Kern folgt sofort etwas Leim.
+\item Bei Strafpunkten.
+\end{enumerate}
+Die Regeln f\"ur Strafpunkte entsprechen dabei wieder denen f\"ur den
+Zeilenumbruch. Im letzten Abschnitt wurde ja auch schon erl\"autert, an
+welchen Stellen einer vertikalen Liste Strafpunkte auftreten k\"onnen.
+
+Den Befehlen `\verb|\small-|', `\verb|\med-|' und \index{zzzbigskip@{\tt\char92 bigskip}}
+`\verb|\bigskip|' in
+der \index{Horizontal!Liste}horizontalen Liste entsprechen jetzt die Befehle:
+\index{zzzsmallbreak@{\tt\char92 smallbreak}}
+`\verb|\smallbreak|', \index{zzzmedbreak@{\tt\char92 medbreak}}
+`\verb|\medbreak|' und \index{zzzbigbreak@{\tt\char92 bigbreak}}
+`\verb|\bigbreak|', mit
+denen $-50$, $-100$ oder $-200$ Strafpunkte vergeben werden k\"onnen, um
+anzuzeigen, da\ss{} ein Seitenumbruch an einer bestimmten Stelle besonders
+gut oder schlecht zu machen ist. Au\ss{}erdem gibt es noch den Befehl
+\index{zzzgoodbreak@{\tt\char92 goodbreak}}
+`\verb|\goodbreak|', der eine \index{Abkuerzung@Abk\"urzung}
+Abk\"urzung f\"ur die Befehle\index{zzzpar@{\tt\char92 par}}
+\index{zzzpenalty@{\tt\char92 penalty}}
+`\verb|\par\penalty-200|' darstellt. Dieser Befehl sollte am Ende
+eines Paragraphen verwendet werden, wenn dort ein Seitenumbruch
+erw\"unscht ist, ohne da\ss{} sofort mit dem drastischen Befehl
+\index{zzzeject@{\tt\char92 eject}}
+`\verb|\eject|' gearbeitet werden soll. Schlie\ss{}lich gibt es noch den
+Befehl \index{zzzfilbreak@{\tt\char92 filbreak}}
+`\verb|\filbreak|'. Dieser Befehl schlie\ss{}t die Seite ab und
+f\"ullt sie mit \index{Leer!Raum}
+Leerraum auf, wenn das vertikale Material bis zum
+n\"achsten `\verb|\filbreak|' nicht mehr auf die Seite pa\ss{}t.
+
+Das Analog zum Befehl `\verb|\raggedright|' hei\ss{}t
+\index{zzzraggedbottom@{\tt\char92 raggedbottom}}
+`\verb|\raggedbottom|' und dieser Befehl bewirkt, da\ss{} die Seiten nicht
+mehr gleichm\"a\ss{}ig aufgef\"ullt werden, sondern der \index{Abstand!Zeilen}
+Zeilenabstand immer
+konstant bleibt.
+
+Zur Berechnung des Seitenumbruchs kommt es nun folgenderma\ss{}en. Zu
+Beginn kennt \TeX\ die Gr\"o\ss{}en \index{zzzvsize@{\tt\char92 vsize}}
+`\verb|\vsize|', sowie
+\index{zzzmaxdepth@{\tt\char92 maxdepth}}
+`\verb|\maxdepth|'. Aus diesen Werten berechnet sich \TeX\ das {\em
+Ziel} der Berechnung: \index{zzzpagegoal@{\tt\char92 pagegoal}}
+`\verb|\pagegoal|'.\footnote{Zus\"atzlich wird noch
+der Wert von {\tt\char92 topskip} ausgewertet, der angibt, wieviel am
+oberen \index{Rand!Oben}
+Rand der Seite freigelassen werden soll.} Die aktuelle
+\index{Hoehe!Seite@H\"ohe!Seite}H\"ohe der
+Seite wird in
+\index{zzzpagetotal@{\tt\char92 pagetotal}}
+`\verb|\pagetotal|' gespeichert. Nun wird Zeile an Zeile
+in die Seite geschrieben, bis die Seite voll ist, also
+\index{zzzpagegoal@{\tt\char92 pagegoal}}
+`\verb|\pagegoal|' gleich `\verb|\pagetotal|' ist. Das passiert
+nat\"urlich nur im Idealfall. W\"urde die Seite mit der letzten vertikalen
+\index{Box!Vbox}
+Box, die eingef\"ugt werden soll zu voll, dann wird sie sozusagen in
+eine Warteposition gestellt, dann wird versucht noch
+\index{Einfuegung@Einf\"ugung}Einf\"ugungen auf
+der Seite unterzubringen\footnote{Kommt gleich.} bevor sie dann
+ausgegeben wird; genauer an die Outputroutine \"ubergeben wird.
+Seitenzahlen und \"ahnliches wird erst {\em nach} Fertigstellung der
+Seite hinzugef\"ugt.
+\subsection{Einf\"ugungen}
+\subsubsection{Illustrationen}
+\index{Fussnote@Fu\ss{}note}Fu\ss{}noten und Illustrationen werden in \TeX\ als Einf\"ugungen
+realisiert. Der Rest des Kapitels besch\"af\-tigt sich mit der Frage, wie
+diese Einf\"ugungen mit dem Seitenumbruchalgorithmus kooperieren.
+Zun\"achst besch\"aftigen wir uns dabei mit den komplizierteren Befehlen,
+die Plain \TeX\ zur Verf\"ugung stellt, sp\"ater sehen wir uns dann an,
+wie die eigentliche Organisation vonstatten geht.
+\subsubsection{Normale Einf\"ugungen}
+Die einfachste Art etwas in einen Text einzuf\"ugen besteht in dem
+Anweisungspaar:
+\index{zzzendinsert@{\tt\char92 endinsert}}
+\index{zzztopinsert@{\tt\char92 topinsert}}
+\begin{verbatim}
+\topinsert <vertikales Material> \endinsert
+\end{verbatim}
+Das `vertikale Material' ist dabei das, was eingef\"ugt werden soll.
+\TeX\ versucht dieses Material am Anfang der laufenden Seite
+unterzubringen. Ist dort kein Platz, dann wird es an den Anfang der
+n\"achsten Seite geschrieben. Man kann z.B.\ folgendes schreiben:
+\index{zzzendinsert@{\tt\char92 endinsert}}\index{zzzhsize@{\tt\char92 hsize}}
+\index{zzznoindent@{\tt\char92 noindent}}
+\index{zzztopinsert@{\tt\char92 topinsert}}
+\index{zzzvskip@{\tt\char92 vskip}}
+\begin{verbatim}
+\topinsert\vskip2in\hsize=3in\noindent
+{\bf Figur 3} Dies ist die Unterschrift unter der dritten Figur meines
+Textes. Ich habe vor dem Text 2 Inch Platz gelassen, damit ich dort
+sp\"ater meine Illustration einkleben kann \endinsert
+\end{verbatim}
+\TeX\ f\"ugt hinter dem eingef\"ugten Material automatisch einen
+\index{zzzbigskip@{\tt\char92 bigskip}}`\verb|\bigskip|' ein.
+
+Analog funktioniert der Befehl
+\index{zzzpageinsert@{\tt\char92 pageinsert}}
+`\verb|\pageinsert|', nur da\ss{} das
+vertikale Material, das dem Befehl folgt auf eine eigene Seite
+geschrieben wird, \"ublicherweise auf die n\"achste Seite. und schlie\ss{}lich
+gibt es noch den Befehl \index{zzzmidinsert@{\tt\char92 midinsert}}
+`\verb|\midinsert|', der versucht das Material
+an der Stelle des Auftretens unterzubringen. Dann ist der Effekt wie:
+\index{zzzbigbreak@{\tt\char92 bigbreak}}\index{zzzbigskip@{\tt\char92 bigskip}}
+\index{zzzvbox@{\tt\char92 vbox}}
+\begin{verbatim}
+\bigskip\vbox{<vertikales Material>}\bigbreak
+\end{verbatim}
+ist nicht genug Platz vorhanden, dann wird das Material wie bei
+\index{zzztopinsert@{\tt\char92 topinsert}}`\verb|\topinsert|' behandelt.
+
+Benutzen sie die Befehl nicht innerhalb von horizontalen Boxen,
+sondern nur an Stellen, an denen sich \TeX\ im vertikalen Modus
+befindet.
+
+Wenn sie viele der obigen Befehl hintereinander benutzen, kann es
+passieren, da\ss{} \TeX\ die Inhalte der Befehl auf viele folgende Seiten
+verteilen mu\ss{}. Die Einf\"ugungen behalten dabei aber ihre vorgegebene
+Reihenfolge. Wenn sie verhindern wollen, da\ss{} Einf\"ugungen in ein
+sp\"ateres Kapitel \"ubernommen werden, dann benutzen sie die Befehlsfolge
+\index{zzzsupereject@{\tt\char92 supereject}}\index{zzzvfill@{\tt\char92 vfill}}
+`\verb|\vfill\supereject|'. Damit werden alle noch vorhandenen
+Einf\"ugungen, nach \index{Leer!Raum}
+Leerraum ausgegeben, bevor neuer Text gesetzt wird.
+
+\subsubsection{Fu\ss{}noten}
+Neben der M\"oglichkeit mit `\verb|\topinsert|' etwas an den Anfang
+einer Seite zu schreiben, wird mit dem Befehl `\verb|\footnote|' etwas
+ans Ende einer Seite geschrieben. Au\ss{}erdem kann dieser Befehl auch
+innerhalb eines Paragraphen benutzt werden. Fu\ss{}noten werden mit zwei
+\index{Argument}Argumenten aufgerufen, das erste Argument stellt dabei die
+\index{Markierung!Fussnote@Markierung!Fu\ss{}note}
+Fu\ss{}notenmarkierung, das zweite den Fu\ss{}notentext dar.\footnote{In
+diesem Text wird das Fu\ss{}notenmakro von \LaTeX\ benutzt. In {\em Plain} \TeX\
+sieht die Sache etwas anders aus. Zwischen den Fu\ss{}noten wird kein
+zus\"atzlicher \index{Zwischenraum}
+Zwischenraum eingef\"ugt, und die Fu\ss{}noten werden auch in
+normaler \index{Groesse!Schrift@Gr\"o\ss{}e!Schrift}
+\index{Schrift!Groesse@Schrift!Gr\"o\ss{}e}
+Schriftgr\"o\ss{}e gesetzt. Die Fu\ss{}notenmarkierung wird in einen
+\index{Zwischenraum}
+Zwischenraum der Gr\"o\ss{}e {\tt\char92 textindent} gesetzt. Das Makro
+{\tt\char92 textindent} arbeitet \"ahnlich, wie {\tt\char92 item},
+allerdings ohne eine h\"angende \index{Einrueckung@Einr\"uckung}Einr\"uckung.}
+
+Fu\ss{}noten k\"onnen umgebrochen werden und auf der folgenden Seite
+weitergef\"uhrt werden. Dies wird allerdings soweit m\"oglich vermieden.
+Einf\"ugungen k\"onnen nicht innerhalb von Einf\"ugungen verwendet werden.
+Es ist also nicht m\"oglich innerhalb eines
+\index{zzztopinsert@{\tt\char92 topinsert}}`\verb|\topinsert|'s eine
+Fu\ss{}note zu benutzen. Sollten sie es doch einmal brauchen, dann k\"onnen
+sie den Befehl \index{zzzvfootnote@{\tt\char92 vfootnote}}
+`\verb|\vfootnote|' verwenden. Er ist dazu da im
+vertikalen Modus eine Fu\ss{}note zu schreiben, und sie m\"ussen dann die
+Fu\ss{}notenmarkierung in der Einf\"ugung per Hand anbringen, und den
+`\verb|\vfootnote|' Befehl irgendwo auf die Seite schreiben, auf der
+die Einf\"ugung sp\"ater erscheinen wird. Sie merken schon, nicht ganz
+elegant, aber das sind Fu\ss{}noten sowieso nicht.
+
+Bevor wir uns nun mit den Feinheiten von Einf\"ugungen besch\"aftigen
+k\"onnen m\"ussen wir lernen, was \TeX\ unter einem \index{Register}
+{\em Register}
+versteht.
+\subsection{Register}
+\subsubsection{Einfache Register}
+\TeX\ kennt ein Konstrukt, da\ss{} sich Register nennt und das in anderen
+Programmiersprachen wohl am ehesten den Variablen gleichkommt. Es gibt
+verschiedene Registertypen, und von jedem Registertyp 256 Register.
+Die einfachen Registertypen sind das Zahlenregister, das
+\index{Dimension!Register}
+Dimensionsregister, das Skipregister und das Muskipregister. Die
+Zahlregister hei\ss{}en \index{zzzcount@{\tt\char92 count}}
+`\verb|\count0|' $\ldots$ `\verb|\count255|', die
+Dimensionsregister \index{zzzdimen@{\tt\char92 dimen}}
+`\verb|\dimen0|' $\ldots$ `\verb|\dimen255|'. Der
+Zahlbereich der Zahlregister reicht von $-2^{31}$ bis $2^{31}$. Die
+Dimensionsregister k\"onnen jeden g\"ultigen \index{Dimension}
+Dimensionswert annehmen, die
+Skip- und Muskipregister jeden g\"ultigen Wert f\"ur \index{Leim}Leim. Die
+\index{Zuweisung}Zuweisung erfolgt als:
+\index{zzzcount@{\tt\char92 count}}\index{zzzdimen@{\tt\char92 dimen}}
+\index{zzzmuskip@{\tt\char92 muskip}}\index{zzzskip@{\tt\char92 skip}}
+\begin{verbatim}
+\count<number> = <number>
+\dimen<number> = <dimen>
+\skip<number> = <glue>
+\muskip<number> = <muglue>
+\end{verbatim}
+Mit diesen Register k\"onnen sie auch rechnen. \index{Addition}Addition und
+\index{Subtraktion}Subtraktion
+erfolgen mit dem gleichen Befehl:
+\index{zzzadvance@{\tt\char92 advance}}\index{zzzcount@{\tt\char92 count}}
+\index{zzzmuskip@{\tt\char92 muskip}}
+\begin{verbatim}
+\advance\count<number> by <number>
+\advance\dimen<number> by <dimen>
+\advance\skip<number> by <glue>
+\advance\muskip<number> by <muglue>
+\end{verbatim}
+Die Anweisung: \index{zzzhsize@{\tt\char92 hsize}}
+`\verb|\dimen8=\hsize \advance\dimen8 by 1in|' bewirkt
+z.B., da\ss{} der Inhalt des 9ten \index{Dimension!Register}
+Dimensionsregister eine L\"ange enth\"alt,
+die um ein Inch gr\"o\ss{}er ist, als die augenblickliche Textbreite.
+
+{\em Unendliche} \index{Masse!Unendlich@Ma\ss{}e!Unendlich}
+Ma\ss{}e verdr\"angen endliche Ma\ss{}e. Nach den Anweisungen:
+\begin{verbatim}
+\skip2 = 0pt plus 2fill minus 3fill
+\advance\skip2 by 4pt plus 1fil minus 2filll
+\end{verbatim}
+Hat das Register den Wert:
+\begin{verbatim}
+4pt plus 2fill minus 2filll
+\end{verbatim}
+
+Auch die \index{Division}
+Division und \index{Multiplikation!Register}
+Multiplikation von Registern ist m\"oglich,
+allerdings nur ganzzahligen Werten. Bei den Zahlregistern ist die
+Sache einfach. Bei den anderen Registern werden alle Angaben mit der
+entsprechenden Zahl multipliziert, bzw.\ dividiert.
+\index{zzzmultiply@{\tt\char92 multiply}}
+`\verb|\multiply\count2 by 2|' \index{Doppelt!Register}
+verdoppelt beispielsweise den Inhalt
+des 3ten Zahlregisters, \index{zzzdivide@{\tt\char92 divide}}
+`\verb|\divide\skip2 by 2|' halbiert alle
+Werte im 3ten Skipregister. Da es sich nur um ganzzahlige
+Rechenoperationen handelt, wird bei der Division etwaiger Rest
+vernachl\"assigt. Das Vorzeichen des Ergebnisses bei der Division h\"angt
+von den Vorzeichen der Operanden ab. Bei ungleichen Vorzeichen ist das
+Ergebnis negativ, sonst positiv.\footnote{Vermeiden sie die Division
+durch Null und \index{Multiplikation!Overflow}
+Multiplikationen, die die Kapazit\"at des Registers
+\"uberschreiten.}
+
+Sie k\"onnen Register \"uberall da verwenden, wo sie auch explizite
+Angaben verwenden d\"urfen. Die Angabe von \index{zzzdimen@{\tt\char92 dimen}}
+\index{zzzhskip@{\tt\char92 hskip}}`\verb|\hskip\dimen2|' ist
+ebenso erlaubt, wie die Angabe von \index{zzzadvance@{\tt\char92 advance}}
+`\verb|\advance\count10|
+\verb|by| \verb|\count10|'.
+
+\index{Dimension!Register}
+Dimensionsregister k\"onnen auch als Zahlregister, und Skipregister
+k\"onnen ihrerseits sowohl als Dimensions- oder auch als Zahlregister
+verwendet werden. Bei der Verwendung eines Skipregisters als
+Dimensionsregister, wird etwaige Angaben f\"ur
+\index{Schrumpf!Schrumpfung}Schrumpfung oder
+Streckung ignoriert, bei der Verwendung eines Dimensionsregisters
+wird als \index{Einheit!Scaled Point}Einheit der {\it sp} (Scaled Point) verwendet.
+
+Normalerweise haben Register ihren Wert nur innerhalb der
+\index{Gruppe!Registerwert}Gruppe, in
+der sie benutzt werden,\footnote{Daraus ergibt sich, da\ss{} \TeX\
+wesentlich mehr Register hat, als oben angegeben.} es ist aber m\"oglich
+Register auch f\"ur alle Gruppen zu \"andern, indem man den Befehl
+\index{zzzglobal@{\tt\char92 global}}
+`\verb|\global|' voranstellt. Die Anweisungen:
+\index{zzzadvance@{\tt\char92 advance}}\index{zzzcount@{\tt\char92 count}}
+\begin{verbatim}
+\count1=10 \count2=20 \count3=30
+{\count1=20 \global\advance\count1 by 12 \global\count2=2 \count2=4}
+\end{verbatim}
+haben zur Folge, da\ss{} die Register folgende Werte haben:
+\begin{verbatim}
+\count1 : 32
+\count2 : 2
+\count3 : 30
+\end{verbatim}
+\index{zzzcount@{\tt\char92 count}}
+Die ersten zehn Zahlregister (`\verb|\count0|' $\ldots$
+`\verb|\count9|') sind reserviert und sollten nicht benutzt werden.
+Die Inhalte dieser Register werden bei der \index{Ausgabe!Auf dem
+Bildschirm} Ausgabe auf dem Bildschirm
+ausgegeben und durch \index{Dezimal!Punkt}\index{Punkt}
+Dezimalpunkte getrennt. F\"uhrende \index{Leer!Register}leere Register
+werden dabei nicht ausgegeben. {\em Plain} \TeX\ benutzt nur das erste
+Zahlregister f\"ur die Seitenzahl, weshalb sie auch meist nur die
+Ausgabe: `\verb|[0] [1] [2] ...|' sehen. W\"are z.B.\ `\verb|\count5=3|'
+und `\verb|\count7=4|' dann w\"are die Ausgabe: `\verb|[3.0.4]|'.
+
+Es ist in \TeX\ einfach m\"oglich symbolische Namen f\"ur Register zu
+vergeben. Dazu gibt es z.B. den Befehl \index{zzzcountdef@{\tt\char92 countdef}}
+`\verb|\countdef|'. Nach der
+Anweisung:
+\index{zzzchapno@{\tt\char92 chapno}}
+\begin{verbatim}
+\countdef\chapno=28
+\end{verbatim}
+kann der Befehl `\verb|\chapno|' als \index{Abkuerzung@Abk\"urzung}
+Abk\"urzung f\"ur `\verb|\count28|'
+verwendet werden. Analog arbeiten die Befehle:
+\index{zzzdimendef@{\tt\char92 dimendef}}`\verb|\dimendef|',
+\index{zzzskipdef@{\tt\char92 skipdef}}
+`\verb|\skipdef|' und \index{zzzmuskipdef@{\tt\char92 muskipdef}}
+`\verb|\muskipdef|'
+\subsubsection{Boxregister}\index{Box!Register}
+Neben den numerischen Registern kennt \TeX\ auch noch die sogenannten
+Boxregister (`\verb|\box0|' $\ldots$ `\verb|\box255|'). In diesen
+Boxregistern kann eine beliebige hbox, vbox oder Rulebox gespeichert
+werden. Die Anweisung:
+\index{zzzhbox@{\tt\char92 hbox}}
+\index{zzzsetbox@{\tt\char92 setbox}}
+\begin{verbatim}
+\setbox0=\hbox{A}
+\end{verbatim}
+hat zur Folge, da\ss{} das erste Boxregister (`\verb|\box0|') den
+Buchstaben `A' zum Inhalt hat. Die Abmessungen des Inhalts eines
+derartigen Registers k\"onnen abgerufen werden. Mit den Befehlen:
+\index{zzzdp@{\tt\char92 dp}}\index{zzzht@{\tt\char92 ht}}
+\index{zzzwd@{\tt\char92 wd}}
+\begin{verbatim}
+\wd<nummer>
+\ht<nummer>
+\dp<nummer>
+\end{verbatim}
+werden die Breite, \index{Hoehe!Box@H\"ohe!Box}H\"ohe und Tiefe der entsprechenden
+\index{Box!Masse@Box!Ma\ss{}e}Box angesprochen.
+
+Einen wichtigen Unterschied zwischen Boxregistern und numerischen
+Registern gibt es: Boxregister werden beim Gebrauch geleert. Die
+Anweisung \index{zzzraise@{\tt\char92 raise}}
+`\verb|\raise\2pt\box3|' in einer \index{Horizontal!Liste}
+horizontalen Liste bewirkt
+erstens, da\ss{} der Inhalt der 4ten Box, um 2pt noch oben verschoben, in
+die Liste aufgenommen wird, zweitens ist aber auch die 4te Box nach
+dieser Anweisung leer. Wenn sie den Inhalt dieser Box nocheinmal
+verwenden wollen, benutzen sie den Befehl \index{zzzcopy@{\tt\char92 copy}}
+`\verb|\copy|', satt des
+Befehls \index{zzzbox@{\tt\char92 box}}`\verb|\box|'. Im obigen Beispiel w\"are dann die Anweisung
+\index{zzzraise@{\tt\char92 raise}}`\verb|\raise2pt\copy3|' richtig gewesen.
+
+Eine weitere Anweisung, die mit \index{Box!Register}
+Boxregistern durchgef\"uhrt werden kann
+ist das `{\em Unboxen}'. Damit k\"onnen sie eine \index{Ebene!Boxen}
+Ebene von Boxen aufheben. Die Anweisungen:
+\index{zzzsetbox@{\tt\char92 setbox}}
+\begin{verbatim}
+\setbox3=\hbox{A} \setbox3=\hbox{\box3 B}
+\setbox4=\hbox{A} \setbox4=\hbox{\unhbox4 B}
+\end{verbatim}
+bewirken, da\ss{} in `\verb|\box3|' `\verb|\hbox{\hbox{A} B}|' steht, und
+in `\verb|\box4|' `\verb|\hbox{AB}|'. Analog arbeitet der Befehl
+\index{zzzunvbox@{\tt\char92 unvbox}}
+`\verb|\unvbox|' f\"ur vertikale Boxen. Der Vorteil dieses Befehls liegt
+auf der Hand: Weniger \index{Speicher!Bedarf}
+Speicherbenutzung und schnellere Bearbeitung.
+Ebenso gibt es die Befehle
+\index{zzzunhcopy@{\tt\char92 unhcopy}}\index{zzzunvcopy@{\tt\char92 unvcopy}}
+`\verb|\unhcopy|' und `\verb|\unvcopy|',
+deren Verwendung eigentlich sofort klar sein d\"urfte. Interessant ist
+nur noch das Verhalten von \index{Leim}Leim beim Unboxen. Nach
+\index{zzzsetbox@{\tt\char92 setbox}}
+\begin{verbatim}
+\setbox5=\hbox{A \hbox{B C}}
+\setbox6=\hbox to 1.05\wd5{\unhcopy5}
+\end{verbatim}
+ist `\verb|\box6|' um 5 \index{Prozent}
+Prozent breiter, als `\verb|\box5|', es wird
+aber nur zwischen dem `A' und dem `B' gestreckt, die {\em innere} Box
+bleibt unber\"uhrt.
+
+Es gibt einen Unterschied zwischen einem leeren Boxregister und einem
+Boxregister, das eine leere Box enth\"alt. Enth\"alt ein Register eine
+leere hbox (`\verb|\hbox{}|'), dann k\"onnen auf dieses Register nur die
+Befehl \index{zzzunhbox@{\tt\char92 unhbox}}\index{zzzunhcopy@{\tt\char92 unhcopy}}
+`\verb|\unhbox|' und `\verb|\unhcopy|' angewendet werden. die
+vertikalen \"Aquivalente sind nicht mehr zul\"a\ss{}ig. Bei einer
+\index{Leer!Box}leeren Box
+durfen alle Befehle verwendet werden.
+
+\subsubsection{Allgemeine Registerbefehle}
+Wenn sie sich unschl\"ussig sind, wie \TeX\ mit Registern arbeitet, dann
+k\"onnen sie verschiedene `\verb|\show|'-Befehle benutzen.
+\index{zzzcount@{\tt\char92 count}}\index{zzzdimen@{\tt\char92 dimen}}
+\index{zzzshowthe@{\tt\char92 showthe}}
+\begin{verbatim}
+\showthe\count1 \showthe\dimen2 \showthe\skip3
+\end{verbatim}
+gibt z.B.\ die Inhalte des 2ten Zahl-, 3ten \index{Dimension!Register}
+Dimensions- und 4ten
+Skipregisters aus. Mit dem Befehl \index{zzzshowbox@{\tt\char92 showbox}}
+`\verb|\showbox4|' k\"onnen sie sich den Inhalt
+des 5ten Boxregisters ansehen.\footnote{Die Ausgabe erfolgt \"ubrigens
+nur in den \index{File!Log}Logfile, es sei denn, sie setzen {\tt\char92
+tracingonline=1}.}
+
+Wenn viele Leute an einem \index{Makro!Paket}
+Makropaket f\"ur \TeX\ arbeiten, w\"are es
+fatal, wenn verschiedene Menschen dasselbe Register f\"ur
+unterschiedliche Zwecke benutzen wollen. \TeX\ stellt deshalb den
+Befehl \index{zzznewcount@{\tt\char92 newcount}}
+`\verb|\newcount|' bereit, um ein noch unbenutztes Register
+ansprechen zu k\"onnen. Sie k\"onnen einfach mit
+\index{zzzmeinzaehler@{\tt\char92 meinzaehler}}
+\begin{verbatim}
+\newcount\meinzaehler
+\end{verbatim}
+ein \index{Neu!Zahlregister}
+neues Zahlregister bereitstellen lassen, da\ss{} dann mit
+`\verb|\meinzaehler|' angesprochen werden kann. Analog gibt es auch
+die Befehle:
+\index{zzznewbox@{\tt\char92 newbox}}
+\index{zzznewdimen@{\tt\char92 newdimen}}
+\index{zzznewmuskip@{\tt\char92 newmuskip}}
+\index{zzznewskip@{\tt\char92 newskip}}
+\begin{verbatim}
+\newdimen
+\newskip
+\newmuskip
+\newbox
+\end{verbatim}
+Au\ss{}erdem stellt {\em Plain} \TeX\ auch noch die Befehle:
+\index{zzznewfam@{\tt\char92 newfam}}\index{zzznewinsert@{\tt\char92 newinsert}}
+\index{zzznewread@{\tt\char92 newread}}\index{zzznewtoks@{\tt\char92 newtoks}}
+\index{zzznewwrite@{\tt\char92 newwrite}}
+\begin{verbatim}
+\newtoks
+\newread
+\newwrite
+\newfam
+\newinsert
+\end{verbatim}
+bereit, deren Bedeutung sp\"ater erkl\"art wird.
+
+Wenn sie den Inhalt eines numerischen Registers in den Text \"ubernehmen
+wollen, benutzen sie den Befehl \index{zzzthe@{\tt\char92 the}}
+`\verb|\the|'. Mit
+`\verb|\the\meinzaehler|' wird der augenblickliche Inhalt des
+Zahlregisters `\verb|\meinzaehler|' in den Text \"ubernommen.
+
+F\"ur lokalen Gebrauch hat es sich durchgesetzt die Register
+\index{zzzcount@{\tt\char92 count}}\index{zzzdimen@{\tt\char92 dimen}}
+`\verb|\count255|', `\verb|\dimen255|' usw.\ zu benutzen. Dabei
+sollten sie allerdings nicht das Register \index{Box!255}
+`\verb|\box255|' benutzen,
+da es eine besondere Bedeutung hat. Die Register $0\ldots9$ haben auch
+spezielle Bedeutungen und werden auch nicht von den
+\index{zzznew@{\tt\char92 new}}`\verb|\new|$\ldots$' Befehlen zur\"uckgegeben.
+
+\subsection{Die Details der Einf\"ugung}
+Es gibt 255 \index{Klasse!Einfuegung@Klasse!Einf\"ugung}
+Klassen von Einf\"ugungen. \index{zzzinsert@{\tt\char92 insert}}
+`\verb|\insert0|' $\ldots$
+`\verb|\insert255|'. Jede Einf\"ugung korrespondiert mit einigen der
+entsprechenden bekannten \index{Register!Korrespondierende}
+Registern. `\verb|\insert100|' korrespondiert
+mit \index{zzzcount@{\tt\char92 count}}\index{zzzdimen@{\tt\char92 dimen}}
+`\verb|\count100|', `\verb|\dimen100|', `\verb|\skip100|' und
+`\verb|\box100|'. {\em Plain} \TeX\ stellt Befehle zur Verf\"ugung, diese
+Register sofort zu reservieren. Mit dem Befehl
+\index{zzzfootins@{\tt\char92 footins}}\index{zzznewinsert@{\tt\char92 newinsert}}
+\begin{verbatim}
+\newinsert\footins
+\end{verbatim}
+Wird z.B.\ die Einf\"ugungsnummer f\"ur \index{Fussnote@Fu\ss{}note}Fu\ss{}noten festegelegt. Mit
+\index{zzzcount@{\tt\char92 count}}
+`\verb|\count\footins|' kann jetzt das entsprechende Zahlregister
+angesprochen werden. Tats\"achlich sind die \index{Klasse!Nummer}
+Klassennummern
+festgelegt,\footnote{Fu\ss{}noten sind Klasse 254, Topeinf\"ugungen die
+Klasse 253} aber im weiteren braucht uns das zun\"achst nicht zu st\"oren.
+Nehmen wir einfach an es ginge um die Einf\"ugung $n$. Dann gilt f\"ur
+diese Klasse von Einf\"ugung:
+
+\begin{quote}
+\begin{tabular}{lp{10cm}}
+{\tt\char92 box}$n$ & Enth\"alt das Material, das bei der Ausgabe
+eingef\"ugt werden soll.\\
+{\tt\char92 count}$n$ & Enth\"alt den Vergr\"o\ss{}erungsfaktor, der f\"ur den
+Seitenumbruch gebraucht wird.\\
+{\tt\char92 dimen}$n$ & Enth\"alt die maximale Einf\"ugungsgr\"o\ss{}e pro
+Seite.\\
+{\tt\char92 skip}$n$ & Enth\"alt den Platz, der auf einer Seite
+zus\"atzlich bereitgestellt werden soll.
+\end{tabular}
+\end{quote}\index{Ausgabe}
+
+Wenn die Einf\"ugung einfach nur ihre normale
+\index{Hoehe!Einfuegung@H\"ohe!Einf\"ugung}H\"ohe hat, kann der
+\index{Groesse!Faktor@Gr\"o\ss{}e!Faktor}
+Vergr\"o\ss{}erungsfaktor auf 1000 gesetzt werden, auf dem er normalerweise
+auch steht. Eine 10pt \index{Fussnote!Platzbedarf@Fu\ss{}note!Platzbedarf}
+Fu\ss{}note braucht auch 10pt Platz. Es kann nun
+aber sein, da\ss{} diese Fu\ss{}note in zwei
+\index{Spalte!Fussnote@Spalte!Fu\ss{}note}Spalten gesetzt werden soll, dann
+braucht sie in der H\"ohe nur den halben Platz. In diesem Falle w\"are
+\index{zzzcount@{\tt\char92 count}}
+`\verb|\count|$n$' auf 500 zu setzen. Der Vergr\"o\ss{}erungsfaktor wird
+also gebraucht um auch in schwierigen F\"allen die Seitenberechnung
+richtig durchf\"uhren zu k\"onnen.
+
+Die erste Fu\ss{}note auf einer Seite braucht etwas mehr Platz, als sie
+selber einnimmt, da wir ja die Fu\ss{}noten etwas vom \"ubrigen Text
+absetzen wollen und auch noch eine \index{Horizontal!Linie}
+horizontale Linie einf\"ugen wollen.
+Dieser Extraplatz steht in dem entsprechenden Skipregister. {\em Plain}
+\TeX\ setzt z.B.
+\index{zzzbigskipamount@{\tt\char92 bigskipamount}}
+\index{zzzfootins@{\tt\char92 footins}}
+\index{zzzskip@{\tt\char92 skip}}
+\begin{verbatim}
+\skip\footins=\bigskipamount
+\end{verbatim}
+Damit wird der notwendige Platz bereitgestellt.
+
+Mitunter ist es w\"unschenswert den maximalen Platz f\"ur Einf\"ugungen zu
+begrenzen. Z.B.\ will niemand eine ganze Seite voller Fu\ss{}noten lesen.
+Der Maximale Paltz, den alle Einf\"ugungen einer
+\index{Klasse!Einfuegung@Klasse!Einf\"ugung}Klasse einnehmen d\"urfen
+steht im entsprechenden \index{Dimension!Register}
+Dimensionsregister. F\"ur Fu\ss{}noten etwa,
+definiert {\em Plain} \TeX:
+\index{zzzdimen@{\tt\char92 dimen}}\index{zzzfootins@{\tt\char92 footins}}
+\begin{verbatim}
+\dimen\footins=8 in
+\end{verbatim}
+Somit k\"onnen maximal 8 Inch einer Seite mit Fu\ss{}noten aufgef\"ullt
+werden, der Rest wird auf weitere Seiten \"ubernommen.
+
+Zur Zerlegung einer Einf\"ugung gibt es einen Befehl:
+\index{zzzvsplit@{\tt\char92 vsplit}}`\verb|\vsplit|'.
+Mit der Anweisung
+\index{zzzsetbox@{\tt\char92 setbox}}
+\begin{verbatim}
+\setbox200=\vsplit100 to 50pt
+\end{verbatim}
+geht \TeX\ folgenderma\ss{}en um: Zun\"achst wird der Anfang des Inhaltes
+von \index{Box!Register}
+Box100 nach Box200 kopiert, bis die Box200 die geforderte
+\index{Hoehe!Box@H\"ohe!Box}H\"ohe von
+50pt hat.\footnote{Hierbei werden dieselben Regeln wirksam, wie beim
+Seitenumbruch.} Danach wird aus der Box100 alles entfernt, was jetzt
+in der Box200 steht. So wird auch verfahren, wenn eine Einf\"ugung \"uber
+mehr als eine Seite verteilt werden soll.
+\chapter{Mathematische Formeln}
+\section{Eingabe einfacher Formeln}
+\subsection{Zeichen im mathematischen Modus}
+Mathematische Formeln werden in \TeX\ mit zwei \index{Dollarzeichen}
+Dollarzeichen (\$)
+\index{Klammer!Mathematische Formeln}
+eingeklammert. Alles was zwischen diesen Klammern steht wird als
+mathematische Formel verstanden. \TeX\ verf\"ahrt dabei so, da\ss{}
+komplexere Formeln aus einfacheren Formeln modular zusammengesetzt
+werden.
+
+Innerhalb des mathematischen Modus von \TeX\ verh\"alt sich \TeX\
+anders, als im Textmodus. Die normalen Zeichen (`A'$\ldots$`Z' und
+`a'$\ldots$`z') werden in \index{Italic}\index{Schrift!Italic}
+Italicschrift gesetzt. Die \index{Punkt}Punkte. \index{Komma}Kommata
+u.\"a.\ werden normal in \index{Roman}Roman gesetzt, aber z.B.\ das
+\index{Minuszeichen}Minuszeichen
+sieht anders aus, als der einfache \index{Bindestrich}
+Bindestrich. \index{Leer!Zeichen}Leerzeichen werden im
+mathematischen Modus g\"anzlich ignoriert, statt dessen verwendet \TeX\
+eigene Abst\"ande f\"ur die Formeln. Die \index{Funktion!Des Leerzeichens}
+Funktion des Leerzeichens als
+Beendigung einer \index{Kontrollsequenz}
+Kontrollsequenz bleibt allerdings erhalten. Die in
+der \index{Mathematik}Mathematik oft gebrauchten \index{Griechische Buchstaben}
+griechischen Buchstaben stehen sowohl
+als Klein, wie auch als \index{Grossbuchstaben@Gro\ss{}buchstaben}
+Gro\ss{}buchstaben zur Verf\"ugung. Die Eingabe von \index{zzzalpha@{\tt\char92
+alpha}}\index{zzzbeta@{\tt\char92 beta}}\index{zzzdelta@{\tt\char92 delta}}
+`\verb|$$\alpha,| \verb|\beta,| \index{zzzgamma@{\tt\char92 gamma}}
+\verb|\gamma,| \verb|\delta$$|' ergibt:
+\[\alpha, \beta, \gamma, \delta\]
+Und durch eine kleine \"Anderung wird mit `\verb|$\Gamma$|': $\Gamma$.
+Einige griechische Buchstaben stehen sogar in verschiedenen
+Ausf\"uhrungen bereit.
+
+\index{zzzepsilon@{\tt\char92 epsilon}}\index{zzzphi@{\tt\char92 phi}}
+\index{zzzrho@{\tt\char92 rho}}\index{zzztheta@{\tt\char92 theta}}
+`\verb|$\phi,\theta,\epsilon,\rho$|' ergibt: $\phi,\theta,\epsilon,\rho$
+
+\index{zzzvarepsilon@{\tt\char92 varepsilon}}\index{zzzvarphi@{\tt\char92 varphi}}
+\index{zzzvarrho@{\tt\char92 varrho}}\index{zzzvartheta@{\tt\char92 vartheta}}
+`\verb|$\varphi,\vartheta,\varepsilon,\varrho$|' ergibt:
+$\varphi,\vartheta,\varepsilon,\varrho$
+
+Dar\"uber hinaus gibt es noch viele Zeichen, die meist nur in der
+\index{Mathematik}
+Mathematik verwendet werden, wie \index{zzzapprox@{\tt\char92 approx}}
+`$\approx$' (`\verb|\approx|') oder
+`$\mapsto$' \index{zzzmapsto@{\tt\char92 mapsto}}(`\verb|\mapsto|').
+
+\subsection{Potenzen und Indizes}
+Nun soll etwas $^{\mbox{\tiny hochgestellt}}$ oder $_{\mbox{\tiny
+tiefgestellt}}$ werden. In \TeX\ verwendet man dazu die Zeichen
+`\verb|^|' und `\verb|_|'. Im einfachsten Fall, wenn nur ein Zeichen
+hoch- bzw.\ tiefgestellt werden soll, sieht das folgenderma\ss{}en aus:
+
+\medskip\begin{tabular}{ll}
+{\em Eingabe} & {\em Ausgabe}\\
+{\tt\char36 x\char94 2\char36} & $x^2$\\
+{\tt\char36 x\char95 2\char36} & $x_2$\\
+{\tt\char36 2\char94 x\char36} & $2^x$\\
+{\tt\char36 x\char94 2y \char94 2\char36} & $x^2y^2$\\
+{\tt\char36 x\ \char94\ 2y\ \char94\ 2\char36} & $x ^ 2y ^ 2$\\
+{\tt\char36 \char95 2F\char94 3\char36} & $_2F_3$
+\end{tabular}\medskip
+
+Wenn mehrere Zeichen hoch- bzw.\ tiefgestellt werden sollen, dann
+m\"ussen diese Zeichen zu einer \index{Gruppe!Hoch- Tiefstellung}
+Gruppe zusammengefa\ss{}t werden:
+
+\medskip\begin{tabular}{ll}
+{\tt\char36 x\char94\char123 2y\char125\char26} & $x^{2y}$\\
+{\tt\char36 2\char94\char123 2\char94 x\char125\char36} & $2^{2^x}$\\
+{\tt\char36 y\char95\char123 x\char94 2\char125\char36} & $y_{x^2}$\\
+\end{tabular}\medskip
+
+Wie es auch bei {\em guten} \index{Mathematik}
+Mathematikern der Fall ist, sind
+Kombinationen, wie `\verb|x^y^z|' oder `\verb|x_y_z|'
+verboten.\footnote{Der Grund liegt in der Nichteindeutigkeit der
+Schreibweise. $9^{9^9}$ kann sowohl als $9^{(9^9)}$ verstanden werden,
+als auch als ${(9^9)}^9 = 9^{81}$} Verwenden sie {\em immer}
+\index{Klammer!Gruppe}
+Gruppenklammern, um ihre Intention deutlich zu machen, also z.B.\
+`\verb|{x_y}_z|' oder `\verb|x^{y^z}|'. Aus \"ahnlichem Grunde ist es
+auch schlechter \index{Stil!Index}
+Stil `\verb|_2F_3|' zu schreiben. Setzen sie den
+ersten Index besser an eine \index{Leer!Gruppe}leere \index{Gruppe!Leere}
+Gruppe: `\verb|{}_2F_3|'.
+
+Die Reihenfolge der Indizierung und Potenzierung eines Zeichens ist
+egal, wie sie bei den folgenden Beispielen sehen k\"onnen:
+
+\medskip\begin{tabular}{ll}
+{\tt\char36 x\char94 2\char95 3\char36} & $x^2_3$\\
+{\tt\char36 x\char95 3\char94 2\char36} & $x_3^2$\\
+{\tt\char36 x\char94\char123 31415\char125\char95\char123 92\char125
++\char92 pi\char36} & $x^{314151}_{92}+\pi$\\
+{\tt\char36 x\char95\char123 y\char94 a\char95b\char125\char94\char123
+z\char95 c\char94 d\char125\char36} & $x_{y^a_b}^{z_c^d}$
+\end{tabular}\medskip
+
+Das die normalen Zeichen in \index{Italic}
+Italic ausgegeben werden, werden Indizes
+etwas an das Zeichen heranger\"uckt, der Index steht also nicht genau
+unter der Potenz. Will man diesen Effekt vermeiden, mu\ss{} man wieder
+eine \index{Leer!Gruppe}leere Gruppe verwenden:
+
+\medskip\begin{tabular}{ll}
+{\tt\char36 P\char95 2\char94 2\char36} & $P_2^2$\\
+{\tt\char36 P\char123\char125\char95 2\char94 2\char36} & $P{}_2^2$
+\end{tabular}\medskip
+
+Sehr oft wird als hochgestelltes Zeichen in der \index{Mathematik}
+Mathematik ein
+einfacher Strich benutzt. \TeX\ stellt hierf\"ur den Befehl
+\index{zzzprime@{\tt\char92 prime}}`\verb|\prime|' zur Verf\"ugung.
+
+\medskip\begin{tabular}{ll}
+{\tt\char36 y\char95 1\char94\char92 prime\char36} & $y_1^\prime$\\
+{\tt\char36 y\char95 2\char94\char123\char92 prime\char92
+prime\char125\char36} & $y_2^{\prime\prime}$\\
+{\tt\char36 y\char95 2\char94\char123\char92 prime\char92
+prime\char92 prime\char125\char36} & $y_2^{\prime\prime\prime}$\\
+\end{tabular}\medskip
+
+\subsection{Wurzeln und \"Ahnliches}
+In \TeX\ gibt es einige Zeichen, die sich in ihrer
+\index{Groesse!Automatisch@Gr\"o\ss{}e!Automatisch}Gr\"o\ss{}e automatisch
+den Erfordernissen anpassen. Dazu geh\"oren das Wurzelzeichen
+\index{zzzsqrt@{\tt\char92 sqrt}}\index{zzzunderline@{\tt\char92 underline}}
+(`\verb|\sqrt|'), die Unterstreichung (`\verb|\underline|') und die
+\index{Ueberstreichung@\"Uberstreichung}
+\"Uberstreichung \index{zzzoverline@{\tt\char92 overline}}
+(`\verb|\overline|'). Die Eingaben von
+\index{zzzalpha@{\tt\char92 alpha}}
+\index{zzzsqrt@{\tt\char92 sqrt}}
+\index{zzzunderline@{\tt\char92 underline}}
+\begin{verbatim}
+$\sqrt2$
+$\sqrt{x+2}$
+$\underline4$
+$\overline{x+y}$
+$\overline x+\overline y$
+$x^{\underline n}$
+$x^{\overline{n+m}}$
+$\sqrt{x^3+\sqrt\alpha}$
+\end{verbatim}
+ergeben der Reihe nach:
+
+$\sqrt2$, $\sqrt{x+2}$, $\underline4$, $\overline{x+y}$,
+$\overline x+\overline y$, $x^{\underline n}$, $x^{\overline{n+m}}$,
+$\sqrt{x^3+\sqrt\alpha}$
+
+Auch andere, als die zweite Wurzeln, lassen sich in \TeX\ realisieren:
+\index{zzzroot@{\tt\char92 root}}
+
+\medskip\begin{tabular}{ll}
+{\tt\char36\char92 root\ 3\ \char92 of\ 2\char36} & $\root 3 \of 2$\\
+{\tt\char36\char92 root\ n\ \char92 of\ \char123 x\char94 n+y\char94
+n\char125\char36} & $\root n \of {x^n+y^n}$\\
+{\tt\char36\char92 root\ n+1\ \char92 of a\char36} & $\root n+1 \of a$
+\end{tabular}\medskip
+
+Wurzeln, \"Uber- und Unterstreichungen passen sich nicht nur der L\"ange
+des \index{Argument}Arguments an, sondern auch der
+\index{Hoehe!Argument@H\"ohe!Argument}H\"ohe. Deutlich wird das am
+Unterschied zwischen \index{zzzoverline@{\tt\char92 overline}}
+`\verb|\overline l|' ($\overline l$) und
+`\verb|\overline m|' ($\overline m$). Oder auch der Folge: $\sqrt
+a+\sqrt d+\sqrt y$. Wenn sie diese unterschiedlichen H\"ohen vermeiden
+wollen, dann gibt es den Befehl \index{zzzmathstrut@{\tt\char92 mathstrut}}
+`\verb|\mathstrut|', der dem\index{zzzstrut@{\tt\char92 strut}}
+`\verb|\strut|' Befehl weitgehend entspricht, nur f\"ur den
+mathematischen Modus. Die Eingabe von
+\index{zzzsqrt@{\tt\char92 sqrt}}
+\begin{verbatim}
+$\sqrt{\mathstrut a}+\sqrt{\mathstrut d}+\sqrt{\mathstrut y}$
+\end{verbatim}
+ergibt: $\sqrt{\mathstrut a}+\sqrt{\mathstrut d}+\sqrt{\mathstrut y}$
+
+\subsection{Die Zeichen im mathematischen Modus}
+Ich habe oben schon angedeutet, da\ss{} im mathematischen Modus manche
+Zeichen anders ausgegeben werden, als im Textmodus. Hier nun ein etwas
+systematischerer \"Uberblick, welche Zeichen sich wie \"andern.
+
+Die normalen Buchstaben (`A' bis `Z' und `a' bis `z') werden in
+\index{Italic}Italic
+gesetzt, da damit \"ublicherweise Variablen bezeichnet werden.
+\[A\ldots Z\mbox{\quad und\quad}a\ldots z\]
+F\"ur den Buchstaben `l' gibt es sogar zwei Zeichen, da in
+\index{Schrift!Hand}
+handschriftlichen Texten das `l' oft mit der `1' verwechselt wird. Der
+zugeh\"orige Befehl hei\ss{}t \index{zzzell@{\tt\char92 ell}}
+`\verb|\ell|' und er ergibt $\ell$.
+
+Die 18 Zeichen
+\begin{verbatim}
+0 1 2 3 4 5 6 7 8 9 ! ? . | / ` @ \"
+\end{verbatim}
+sind einfache Symbole, f\"ur sie wird kein extra Platz bereitgestellt.
+Man achte allerdings auf den Unterschied zwischen der Null ($0$) und
+dem kleinen oder gro\ss{}en `O'.
+
+Die drei Zeichen `\verb|-|', `\verb|+|' und `\verb|*|' hei\ss{}en bin\"are
+\index{Operator!Binaer@Operator!Bin\"ar}
+Operatoren, da sie sich \"ublicherweise auf zwei Teile einer Formel
+beziehen. Sie werden mit etwas zus\"atzlichem \index{Zwischenraum}
+Zwischenraum gesetzt:
+
+\medskip\begin{tabular}{ll}
+{\em Eingabe} & {\em Ausgabe}\\
+{\tt\char36 x+y-z\char35} & $x+y-z$\\
+{\tt\char36 x+y*z\char36} & $x+y*z$\\
+{\tt\char36 x*y/z\char36} & $x*y/z$
+\end{tabular}\medskip
+
+Beachten sie auch, da\ss{} der \index{Bindestrich}
+Bindestrich, im Textmodus `-', zum
+\index{Minuszeichen}
+Minuszeichen ($-$) wird, und das \index{Stern!Textmodus}
+Sternchen, im Textmodus `*' tiefer
+gesetzt wird ($*$). Beim \index{Schraegstrich@Schr\"agstrich}
+Schr\"agstrich wird {\em kein} zus\"atzlicher
+Platz gelassen, auch wenn meist zwei Teile durcheinander geteilt
+werden.
+
+\TeX\ stellt noch mehr zweiseitige \index{Operator!Zweiseitig}
+Operatoren bereit:
+
+\index{zzzbullet@{\tt\char92 bullet}}\index{zzzcap@{\tt\char92 cap}}
+\index{zzzcirc@{\tt\char92 circ}}\index{zzzvee@{\tt\char92 vee}}
+\index{zzzwedge@{\tt\char92 wedge}}
+\medskip\begin{tabular}{ll}
+{\tt\char36 c\char92 times y\char92 cdot z\char36} & $x\times y\cdot
+z$\\
+{\tt\char36 x\char92 circ y\char92 bullet z\char36} & $x\circ y\bullet
+z$\\
+{\tt\char36 x\char92 cup y\char92 cap z\char36} & $x\cup y\cap z$\\
+{\tt\char36 x\char92 sqcup y\char92 sqcap z\char36} & $x\sqcup y\sqcap z$\\
+{\tt\char36 x\char92 vee y\char92 wedge z\char36} & $x\vee y\wedge
+z$\\
+{\tt\char36 x\char92 mp y\char92 pm z\char36} & $x\mp y\pm z$
+\end{tabular}\medskip
+
+In manchen F\"allen wird auch bei einem zweiseitigen
+\index{Operator!Zweiseitig}Operator {\em kein}
+zus\"atzlicher \index{Zwischenraum}Zwischenraum eingef\"ugt:
+\begin{enumerate}
+\item Wenn nur auf einer Seite des Operators etwas steht:
+
+\medskip\begin{tabular}{ll}
+{\tt\char36 x=+1\char36} & $x=+1$\\
+{\tt\char36 3.142-\char36} & $3.142-$\\
+{\tt\char36(D*)\char36} & $(D*)$
+\end{tabular}\medskip
+
+\item Bei Indizes und \index{Potenz}Potenzen
+\index{zzzbullet@{\tt\char92 bullet}}\index{zzzcap@{\tt\char92 cap}}
+\index{zzzmapsto@{\tt\char92 mapsto}}
+
+\medskip\begin{tabular}{ll}
+{\tt\char36 K\char95 n\char94 +,K\char95 n\char94 -\char36} &
+$K_n^+,K_n^-$\\
+{\tt\char36 z\char94 *\char95\char123 ij\char125\char36} &
+$z^*_{ij}$\\
+{\tt\char36 g\char94\char92 circ\ \char92 mapsto\ g\char94\char92
+bullet\char36} & $g^\circ \mapsto g^\bullet$\\
+{\tt\char36 f\char94 *(x)\ \char92 cap\ f\char95 *(y)\char36} &
+$f^*(x) \cap f_*(y)$
+\end{tabular}\medskip
+\end{enumerate}
+
+Neben den einfachen zweiseitigen Operatoren stellt \TeX\ auch noch
+\index{Operator!Relation}\index{Relation}
+Relationsoperatoren bereit, die {\em etwas} anders gesetzt werden. Die
+einfachsten Relationsoperatoren sind `\verb|=|', `\verb|<|', `\verb|>|'
+und `\verb|:|', wie die folgenden Beispiele aber zeigen, nicht die
+einzigen.
+
+\medskip\begin{tabular}{ll}
+{\tt\char36x=y\char62 z\char36} & $x=y>z$\\
+{\tt\char36 x:=y\char36} & $x:=y$\\
+{\tt\char36 x\char92 le y\char92 ne z\char36} & $x\le y\ne z$\\
+{\tt\char36 x\char92 sim y\char92 simeq z\char36} & $x\sim y\simeq
+z$\\
+{\tt\char36 x\char92 equiv y\char92 not\char92 equiv z\char36}&
+$x\equiv y\not\equiv z$\\
+{\tt\char36 x\char92 subset y\char92 subseteq z\char36} & $x\subset
+y\subseteq z$
+\end{tabular}\medskip
+
+Die \index{Interpunktion!Zeichen}
+Interpunktionszeichen \index{Komma}
+Komma (,) und Semikolon (;) werden mit etwas
+zus\"atzlichem Platz {\em hinter} dem Zeichen, aber nicht {\em vor} dem
+Zeichen gesetzt
+
+\medskip\begin{tabular}{ll}
+{\tt\char36 f(x,y;z)\char36} & $f(x,y;z)$
+\end{tabular}\medskip
+
+Der \index{Punkt}Punkt wird als normales Zeichen behandelt, anders, als der
+\index{Doppelt!Punkt}Doppelpunkt. Soll dieser als normales Zeichen gesetzt werden, dann kann
+das mit dem Befehl \index{zzzcolon@{\tt\char92 colon}}`\verb|\colon|' geschehen.
+
+\medskip\begin{tabular}{ll}
+{\tt\char36 f:A\char92 to\ B\char36} & $f:A\to B$\\
+{\tt\char36 f\char92 colon A\char92 to\ B\char36} & $f\colon A\to B$
+\end{tabular}\medskip
+
+Wenn das \index{Komma}
+Komma als einfaches Symbol gesetzt werden soll, schreiben sie
+es in geschweifte \index{Klammer!Geschweifte}
+Klammern. Alles, was in geschweiften Klammern steht
+wird als einfaches Symbol betrachtet.
+
+\medskip\begin{tabular}{lll}
+{\tt\char36 12,345x\char36} & $12,345x$ & (falsch) \\
+{\tt\char36 12\char123 ,\char125 345x\char36} & $12{,}345x$ & (richtig)
+\end{tabular}\medskip
+
+Nun gibt es nur noch einige Tasten zu besprechen. Die Zeichen
+`\verb|(|' und `\verb|[|' werden `\"Offner' genannt, die Zeichen
+`\verb|)|' und `\verb|]|' \index{Schliesser@Schlie\ss{}er}
+`Schlie\ss{}er'. Das Zeichen `\verb|'|' kennen
+wir ja schon, und es bleiben nur noch die reservierten Zeichen:
+\begin{verbatim}
+\ $ % # & ~ { } _ ^
+\end{verbatim}
+
+Die besonderen Zeichen f\"ur Hoch- und Tiefstellung, sowie einige der
+anderen mathematischen Befehle, wie \index{zzzapprox@{\tt\char92 approx}}
+`\verb|\approx|' oder
+\index{zzzalpha@{\tt\char92 alpha}}
+`\verb|\alpha|' k\"onnen nicht in normalem Text verwendet werden. \TeX\
+benutzt diese Zeichen, um einen m\"oglichen \index{Fehler!Mathematische
+Modus}Fehler ihrerseits finden zu
+k\"onnen. Wird ein derartiges Zeichen oder ein solcher Befehl au\ss{}erhalb
+des mathematischen Modus angetroffen, geht \TeX\ davon aus, da\ss{} die
+ein `\verb|$|' vergessen haben, oder eins zuviel geschrieben haben.
+
+\subsection{Die mathematischen Akzente}\index{Akzent!Mathematische}
+\TeX\ stellt neben den oben beschriebenen Zeichen auch noch eine Reihe
+von Akzenten bereit, die auch nur im mathematischen Modus ansprechbar
+sind. Hier eine vollst\"andige Liste:
+
+\index{zzzacute@{\tt\char92 acute}}\index{zzzbar@{\tt\char92 bar}}
+\index{zzzbreve@{\tt\char92 breve}}\index{zzzcheck@{\tt\char92 check}}
+\index{zzzddot@{\tt\char92 ddot}}\index{zzzdot@{\tt\char92 dot}}
+\index{zzzgrave@{\tt\char92 grave}}\index{zzzhat@{\tt\char92 hat}}
+\index{zzztilde@{\tt\char92 tilde}}\index{zzzvec@{\tt\char92 vec}}
+\medskip\begin{tabular}{ll}
+{\tt\char36\char92 hat a\char36} & $\hat a$\\
+{\tt\char36\char92 check a\char36} & $\check a$\\
+{\tt\char36\char92 tilde a\char36} & $\tilde a$\\
+{\tt\char36\char92 acute a\char36} & $\acute a$\\
+{\tt\char36\char92 grave a\char36} & $\grave a$\\
+{\tt\char36\char92 dot a\char36} & $\dot a$\\
+{\tt\char36\char92 ddot\char36} & $\ddot a$\\
+{\tt\char36\char92 breve\char36} & $\breve a$\\
+{\tt\char36\char92 bar\char36} & $\bar a$\\
+{\tt\char36\char92 vec\char36} & $\vec a$
+\end{tabular}\medskip
+
+Die Akzente lassen sich nat\"urlich auch auf andere Buchstaben als das
+`a' setzen. Die ersten neun Akzente sind auch im Textmodus verwendbar,
+haben dort allerdings eine andere \index{Kontrollsequenz}Kontrollsequenz.
+Wenn sie einen der Buchstaben mit einem bestimmten Akzent
+\"ofters brauchen, emfiehlt sich eine \index{Definition}
+Definition zu Beginn des Textes
+\index{zzzdef@{\tt\char92 def}}\index{zzzhat@{\tt\char92 hat}}
+\begin{verbatim}
+\def\Ahat{{\hat A}}
+\def\chat{{\hat c}}
+\end{verbatim}
+Die Buchstaben `i' und `j' stehen im mathematischen Modus auch ohne
+\index{Punkt}
+Punkt,mit den Befehlen \index{zzzimath@{\tt\char92 imath}}
+`\verb|\imath|' und `\verb|\jmath|', zur Verf\"ugung.
+Diese eignen sich besser zur Akzentuierung.
+
+Auch \index{Doppelt!Akzent}doppelte \index{Akzent!Doppelter}
+Akzente, jeder \index{Mathematik}Mathematiker h\"atte seine helle Freude,
+lassen sich in \TeX\ realsieren, es bedarf allerdings etwas M\"uhe. Das
+Symbol \index{zzzhat@{\tt\char92 hat}}
+`$\skew6\hat{\hat A}$' l\"a\ss{}t sich z.B. mit dem Befehl
+\index{zzzskew@{\tt\char92 skew}}
+`\verb|\skew6\hat\Ahat|' erreichen. Die `6' wurde durch probieren
+gefunden, mit dieser Angabe wird der Akzent nach rechts oder links
+verschoben. `5' h\"atte den Akzent etwas zu weit nach links gesetzt, `7'
+etwas zu weit nach rechts. Der entscheidende Befehl hei\ss{}t
+`\verb|\skew|'.
+
+Abschlie\ss{}ende kennt \TeX\ noch zwei \index{Akzent!wachsende}
+Akzente, die mit dem \index{Argument}Argument
+mitwachsen (zumindest in gewissem Ma\ss{}e). Es sind dies die Akzente
+\index{zzzwidehat@{\tt\char92 widehat}}\index{zzzwidetilde@{\tt\char92 widetilde}}
+`\verb|\widehat|' und `\verb|\widetilde|'
+
+\medskip\begin{tabular}{ll}
+{\tt\char36\char92 widehat x\char36} & $\widehat x$\\
+{\tt\char36\char92 widetilde x\char36} & $\widetilde x$\\
+{\tt\char36\char92 widehat\char123 xy\char125\char36} &
+$\widehat{xy}$\\
+{\tt\char36\char92 widetilde\char123 xy\char125\char36} &
+$\widetilde{xy}$\\
+{\tt\char36\char92 widehat\char123 xyz\char125\char36} &
+$\widehat{xyz}$\\
+{\tt\char36\char92 widetilde\char123 xyz\char125\char36} &
+$\widetilde{xyz}$
+\end{tabular}\medskip
+
+\section{Weitere Konstruktionselemente}
+\subsection{Gestapelte Formeln}
+Die beliebtesten Formeln aller \index{Mathematik}
+Mathematiker sind die \index{Bruch}Br\"uche und
+verwandte Formeln. Die Konstruktion von
+\[\frac{1}{2}\mbox{\quad oder\quad}
+\frac{n+1}{3}\mbox{\quad oder\quad}
+\left(\begin{array}{c}n+1\\3\end{array}\right)\mbox{\quad oder\quad}
+\sum_{n=1}^3 Z^2_n\]
+sind in \TeX\ m\"oglich durch die Befehle
+\index{zzzchoose@{\tt\char92 choose}}
+\index{zzzover@{\tt\char92 over}}
+\index{zzzsum@{\tt\char92 sum}}
+\begin{verbatim}
+$$1\over2$$
+$$n+1\over3$$
+$$n+1\choose3$$
+$$\sum_{n=1}^3 Z_n^2$$
+\end{verbatim}
+\subsubsection{Br\"uche}\index{Bruch}
+Br\"uche werden in \TeX\ durch den Befehl `\verb|\over|' realisiert. Er
+bezieht sich auf {\em alles} was vor resp. nach ihm steht, es sei denn
+sie gruppieren die gew\"unschten Zeichen.
+
+\index{Display!Stil}
+\medskip\begin{tabular}{ll}
+{\tt\char36\char36 x+y\char94 2\char92 over k+1\char36\char36} &
+$\displaystyle{\frac{x+y^2}{k+1}}$\\
+{\tt\char36\char36\char123 x+y\char94 2\char92 over k\char125
++1\char36\char36} & $\displaystyle{\frac{x+y^2}{k}+1}$\\
+{\tt\char36\char36 x+\char123 y\char94 2\char92 over k\char125
++1\char36\char36} & $\displaystyle{x+\frac{y^2}{k}+1}$\\
+{\tt\char36\char36 x+\char123 y\char94 2\char92 over
+k+1\char125\char36\char36} & $\displaystyle{x+\frac{y^2}{k+1}}$\\
+{\tt\char36\char36 x+y\char94\char123 2\char92 over
+k+1\char125\char36\char36} & $\displaystyle{x+y^{\frac{2}{k+1}}}$\\
+\end{tabular}\medskip
+
+Bei \index{Bruch}\index{Mehrfachbrueche@Mehrfachbr\"uche}
+Mehrfachbr\"uchen m\"ussen sie sogar geschweifte
+\index{Klammer!Bei Bruechen@Klammer!Bei Br\"uchen}Klammern setzen
+
+\medskip\begin{tabular}{ll}
+{\tt\char36\char36\char123 a\char92 over b\char125\char92 over
+2\char36\char36} & $\displaystyle{\frac{\frac{a}{b}}{2}}$\\
+{\tt\char36\char36 a\char92 over\char123 b\char92 over
+2\char125\char36\char36} & $\displaystyle{\frac{a}{\frac{b}{2}}}$
+\end{tabular}\medskip
+
+Bei derartigen \index{Bruch}\index{Mehrfachbrueche@Mehrfachbr\"uche}
+Mehrfachbr\"uchen empfiehlt sich aber sowieso die
+Verwendung des \index{Schraegstrich@Schr\"agstrich}
+Schr\"agstriches. Die obigen Br\"uche s\"ahen dann wie
+$\frac{a/b}{2}$ und $\frac{a}{b/2}$ aus. Denken sie nur daran, da\ss{} bei
+Br\"uchen mit \index{Schraegstrich@Schr\"agstrich}
+Schr\"agstrichen etwas andere Regeln gelten. Sie m\"ussen
+eventuell ein paar Klammern mehr schreiben.
+\subsection{Die verschiedenen Stile}
+Bei den Beispielen d\"urften ihnen schon aufgefallen sein, da\ss{} \TeX\ die
+Zeichen im mathematischen Modus in unterschiedlichen
+\index{Groesse!Von Zeichen@Gr\"o\ss{}e!Von Zeichen}Gr\"o\ss{}en und Stilen
+setzt. Es gibt acht verschiedene Stile in \TeX\ eine Formel zu setzen:
+
+\index{Display!Stil}\index{Ebene!Hoch- Tiefstellung}\index{Skript!Stil}
+\medskip\begin{tabular}{ll}
+Display Stil & F\"ur abgesetzte Formeln\\
+Text Stil & F\"ur Formeln im Text\\
+Skript Stil & F\"ur Hoch- bzw.\ Tiefstellungen\\
+Skriptskript Stil & F\"ur die zweite Ebene von Hoch- bzw.\
+Tiefstellungen
+\end{tabular}\medskip\index{Formel!abgesetzte}
+
+Au\ss{}erdem gibt es noch zu jedem Stil einen ``geklammerten'' Stil, der
+sich nicht wesentlich unterscheidet von dem Originalstil, nur da\ss{} die
+\index{Exponent}
+Exponenten nicht so hoch gesetzt werden. Im weiteren werden die Stile
+durch:
+\[D, D', T, T', S, S', SS, SS'\]
+abgek\"urzt. Wird eine Formel in einfachen \index{Dollarzeichen}
+Dollarzeichen eingeschlossen,
+dann erscheint sie in Textstil, ist sie in doppelten
+\index{Dollarzeichen!Doppelt}Dollarzeichen
+eingeschlossen, erscheint sie im \index{Display!Stil}
+Displaystil. Aus der Stilart folgt
+die Gr\"o\ss{}e, in der die Formel, oder die Unterformel, gesetzt wird.
+
+Es gibt keinen $SSS$-Stil. Dieser w\"are nicht mehr lesbar. Die
+Zusammenh\"ange der Stilarten ergeben sich wie folgt:
+
+\index{Hochstellung}
+\medskip\begin{tabular}{lll}
+{\em Die Formel} & {\em Hochstellung} & {\em Tiefstellung} \\
+$D,T$ & $S$ & $S'$\\
+$D',T'$ & $S'$ & $S'$\\
+$S,SS$ & $SS$ & $SS'$\\
+$S',SS'$ & $SS'$ & $SS'$
+\end{tabular}\medskip
+
+Wenn z.B.\ die Formel `\verb|x^{a_b}|' im $D$-Stil gesetzt werden
+soll, dann wird das `\verb|a|' in $S$ und das `\verb|b|' in $SS'$
+gesetzt. Das Ergebnis ist: $\displaystyle{x^{a_b}}$.
+
+Der Hauptunterschied zwischen \index{Display!Stil}
+Displaystil und Textstil zeigt sich bei
+\index{Bruch}Br\"uchen. Die Zusammenh\"ange zeigt die folgende Tabelle:
+
+\index{Bruch}\index{Nenner}
+\medskip\begin{tabular}{lll}
+ & \multicolumn{2}{c}{\em Bruch} \\
+{\em Formel} & {\em Nenner} & {\em Z\"ahler} \\
+$D$ & $T$ & $T'$\\
+$D'$ & $T'$ & $T'$\\
+$T$ & $S$ & $S'$\\
+$T'$ & $S'$ & $S'$\\
+$S,SS$ & $SS$ & $SS'$\\
+$S',SS'$ & $SS'$, & $SS'$
+\end{tabular}\medskip
+
+Am deutlichsten immer noch im Beispiel. Der \index{Bruch}
+Bruch `einhalb' erscheint
+im Text als: $\frac{1}{2}$ und in der abgesetzten
+Formel\index{Formel!abgesetzte}
+als:\[\frac{1}{2}\]
+
+\"Ubrigens, auch die Befehle \index{zzzoverline@{\tt\char92 overline}}
+`\verb|\overline|' und \index{zzzsqrt@{\tt\char92 sqrt}}`\verb|\sqrt|'
+\"andern den $D$-Stil in den $D'$-Stil. Die Stilarten sind nat\"urlich
+nicht gottgegeben. Sie k\"onnen sie mit den Befehlen
+\index{zzzdisplaystyle@{\tt\char92 displaystyle}}
+\index{zzzscriptstyle@{\tt\char92 scriptstyle}}
+\index{zzztextstyle@{\tt\char92 textstyle}}
+\begin{verbatim}
+\displaystyle
+\textstyle
+\scriptstyle
+\scriptscriptstyle
+\end{verbatim}
+jederzeit selber frei w\"ahlen. Dazu zun\"achst ein etwas {\em dummes}
+Beispiel: Die Eingabe von
+\begin{verbatim}
+$$n+\scriptstyle n+\scriptscriptstyle n$$
+\end{verbatim}
+erzeugt \[n+\scriptstyle n+\scriptscriptstyle n\]
+Man sieht aber schon, da\ss{} auch das \index{Pluszeichen}
+Pluszeichen mit verkleinert wird.
+Etwas besser geeignet um die Unterschiede zu zeigen ist das folgende
+Beispiel.\footnote{Der Befehl {\tt\char92 strut} wird benutzt, um die
+Z\"ahler etwas gr\"o\ss{}er zu machen. In einem sp\"ateren Kapitel besch\"aftigen
+wir uns noch mehr mit dem {\em sch\"onen} Satz von Formeln.} Die Eingabe
+von
+\index{zzzdisplaystyle@{\tt\char92 displaystyle}}
+\index{zzzover@{\tt\char92 over}}
+\index{zzzstrut@{\tt\char92 strut}}
+\begin{verbatim}
+$$a_0+{1\over\displaystyle a_1+
+ {\strut 1\over\displaystyle a_2+
+ {\strut 1\over\displaystyle a_3+
+ {\strut 1\over a_4}}}}$$
+\end{verbatim}
+erzeugt
+\[a_0+{1\over\displaystyle a_1+
+ {\strut 1\over\displaystyle a_2+
+ {\strut 1\over\displaystyle a_3+
+ {\strut 1\over a_4}}}}\]
+Ohne die Befehle `\verb|\displaystyle|' und `\verb|\strut|' sa\"ahe das
+Ergebnis
+\[a_0+{1\over a_1+
+ {1\over a_2+
+ {1\over a_3+
+ {1\over a_4}}}}\]
+aus. Die \index{Nenner}
+Nenner werden automatisch \index{Zentrierung}
+zentriert. Will man das verhindern,
+dann sollte man den Befehl
+\index{zzzhfill@{\tt\char92 hfill}}`\verb|\hfill|' benutzen. Damit sieht unser
+\index{Bruch}Serienbruch so
+\[a_0+{1\hfill\over\displaystyle a_1+
+ {\strut 1\hfill\over\displaystyle a_2+
+ {\strut 1\hfill\over\displaystyle a_3+
+ {\strut 1\hfill\over a_4}}}}\]
+aus.
+\subsection{Weitere Befehle zur Stapelung}
+Neben dem Befehl
+\index{zzzover@{\tt\char92 over}}
+`\verb|\over|' zur Bildung von Br\"uchen existiert in
+\TeX\ auch noch der Befehl \index{zzzatop@{\tt\char92 atop}}
+`\verb|\atop|', der einen \index{Bruch}
+`Bruch' ohne Bruchstrich ausgibt.
+
+\medskip\begin{tabular}{ll}
+{\tt\char36\char36x\char92 atop y+2\char36\char36} &
+$\displaystyle{x\atop y+2}$\\
+\end{tabular}\medskip
+
+Weiterhin existiert der Befehl \index{zzzchoose@{\tt\char92 choose}}
+`\verb|\choose|'\footnote{Die
+\index{Binomealkoeffizienten}
+Binomealkoeffizienten werden meist in der \index{Statistik}
+Statistik gebraucht, um die
+Anzahl der M\"oglichkeiten einer Wahl auszudr\"ucken.} der einen
+Binomealkoeffizienten ausgibt.
+
+\medskip\begin{tabular}{ll}
+{\tt\char36\char36 n\char92 choose k\char36\char36} &
+$\displaystyle{n\choose k}$\\
+\end{tabular}\medskip
+
+Auch Mischungen dieser Befehle sind erlaubt, vorausgesetzt, sie halten
+sich an die Regeln f\"ur Gruppierungen innerhalb von Formeln.
+\[{n\choose k}\over 2\]
+\[n\choose{k\over2}\]
+
+Es gibt noch einen Befehl, der zum Satz von Br\"uchen herangezogen
+werden kann, bei dem allerdings die St\"arke des \index{Bruch}Bruchstrichs extra
+angegeben werden mu\ss{}. Der Befehl hei\ss{}t \index{zzzabove@{\tt\char92 above}}
+`\verb|\above|' und wird z.B.\
+folgenderma\ss{}en angewendet
+\index{zzzdisplaystyle@{\tt\char92 displaystyle}}
+\begin{verbatim}
+$$\displaystyle{a\over b}\above1pt\displaystyle{c\over d}$$
+\end{verbatim}
+Das Ergebnis sieht dann so aus:
+\[\displaystyle{a\over b}\above1pt\displaystyle{c\over d}\]
+
+\subsection{Summen und Integrale}
+Summen und Integrale werden im \index{Stil!Text}
+Textstil und im \index{Display!Stil}
+\index{Stil!Display}Displaystil in
+unterschiedlichen Gr\"o\ss{}en gesetzt, sie hei\ss{}en auch {\em gro\ss{}e}
+Symbole.\footnote{Es gibt au\ss{}er diesen beiden noch einige andere, die
+aber hier nicht weiter besprochen werden.}
+
+\medskip\begin{tabular}{llll}
+{\tt\char36\char92 sum x\char95 n\char36} & ergibt & $\sum x_n$ &
+($T$-Stil)\\
+{\tt\char36\char36\char92 sum x\char95 n\char36\char36} & ergibt &
+$\displaystyle{\sum x_n}$ & ($D$-Stil)
+\end{tabular}\medskip
+
+Bei den \index{Summe!Zeichen}Summationszeichen werden meist Grenzen angegeben
+\[\sum_{n=1}^m x_n\]
+Die Grenzen werden in \index{Formel!abgesetzte}
+abgesetzten Formeln \"uber und unter das
+\index{Summe!Zeichen}
+Summensymbol gesetzt. in Textformeln werden sie neben das Symbol
+gesetzt: $\sum_{n=1}^m x_n$. Bei Integralen werden die
+Integrationsgrenzen immer neben das Integrationszeichen gesetzt.
+
+\index{zzzinfty@{\tt\char92 infty}}\index{zzzint@{\tt\char92 int}}
+\medskip\begin{tabular}{ll}
+$\int_{-\infty}^{+\infty}$ & Im $T$-Stil\\
+$\displaystyle{\int_{-\infty}^{+\infty}}$ & Im $D$-Stil
+\end{tabular}\medskip
+
+Mit \verb|\limits| und \verb|\nolimits| l\"\ss{}t sich das Setzen der Grenzen
+aber auch ganz individuell gestalten.\index{zzzlimits@{\tt\char92 limits}}
+\index{zzznolimits@{\tt\char92 nolimits}}
+Die Eingabe von:
+\index{zzzsum@{\tt\char92 sum}}
+\begin{verbatim}
+$\sum\limits_{n=1}^m x_n
+\end{verbatim}
+erzeugt in Textformeln: $\sum\limits_{n=1}^m x_n$ und die Eingabe von:
+\index{zzzint@{\tt\char92 int}}\index{zzzlimits@{\tt\char92 limits}}
+\begin{verbatim}
+$$\int\limits_{-\infty}^{+\infty}$$
+\end{verbatim}
+erzeugt: \[\int\limits_{-\infty}^{+\infty}\]
+Andererseits ergibt
+\index{zzznolimits@{\tt\char92 nolimits}}
+\index{zzzsum@{\tt\char92 sum}}
+\begin{verbatim}
+$$\sum\nolimits_{n=1}^3 x_n$$
+\end{verbatim}
+\[\sum\nolimits_{n=1}^3 x_n\]
+Mit dem Befehl \index{Display!Limits}
+\index{zzzdisplaylimits@{\tt\char92 displaylimits}}
+`\verb|\displaylimits|' werden die Grenzen {\em jedes}
+gro\ss{}en Symbols nur noch im $D$-Stil ober- resp.\ unterhalb des Symbols
+gesetzt, sonst immer dahinter.
+\subsubsection{Mehrzeilige Grenzen}
+Bei \index{Mathematik}
+Mathematikern kommt es auch vor, da\ss{} die Angabe der Grenzen sich
+\"uber mehrere Zeilen erstreckt. Auch das ist in \TeX\ m\"oglich. Die
+Formel:\index{zzzatop@{\tt\char92 atop}}
+\[\sum_{\scriptstyle0\le i\le m\atop\scriptstyle0<j<n}P(i,j)\]
+wurde z.B. mit der Befehlsfolge
+\index{zzzsum@{\tt\char92 sum}}
+\begin{verbatim}
+$$\sum_{\scriptstyle0\le i\le m\atop\scriptstyle0<j<n}P(i,j)$$
+\end{verbatim}
+erzeugt.
+\subsection{Gr\"o\ss{}enanpassung von Symbolen}
+Manche mathematischen Formeln sind ecklig lang. \TeX\ bietet daher
+die M\"oglichkeit manche Symbole in ihrer Gr\"o\ss{}e anzupassen. Die Eingabe
+von
+\index{zzzsqrt@{\tt\char92 sqrt}}
+\begin{verbatim}
+$$\sqrt{1+\sqrt{1+\sqrt{1+
+ \sqrt{1+\sqrt{1+\sqrt{1+\sqrt{1+x}}}}}}}$$
+\end{verbatim}
+erzeugt z.B.:
+$$\sqrt{1+\sqrt{1+\sqrt{1+
+ \sqrt{1+\sqrt{1+\sqrt{1+\sqrt{1+x}}}}}}}$$
+Die drei gr\"o\ss{}ten Wurzelzeichen sind dabei untereinander identisch, bis
+auf die Tatsache, da\ss{} der Aufstrich des Wurzelzeichens durch
+unterschiedlich lange `\verb+|+' verl\"angert wurde. Die anderen Wurzeln
+sind eigene Zeichen. Analog ist eine Gr\"o\ss{}enanpassung von
+\index{Klammer!Groessenanpassung@Klammer!Gr\"o\ss{}enanpassung}Klammern
+m\"oglich.
+\index{zzzBiggl@{\tt\char92 Biggl}}\index{zzzbiggl@{\tt\char92 biggl}}
+\index{zzzbiggr@{\tt\char92 biggr}}\index{zzzBigl@{\tt\char92 Bigl}}
+\index{zzzbigl@{\tt\char92 bigl}}\index{zzzbigr@{\tt\char92 bigr}}
+\[
+\displaystyle
+\left(\vbox to 27pt{}\left(\vbox to 24pt{}\left(\vbox to 21pt{}
+\Biggl(\biggl(\Bigl(\bigl(({\scriptstyle({\scriptscriptstyle(\hskip3pt
+)})})\bigr)\Bigr)\biggr)\Biggr)\right)\right)\right)
+\left\{\vbox to 27pt{}\left\{\vbox to 24pt{}\left\{\vbox to 21pt{}
+\Biggl\{\biggl\{\Bigl\{\bigl\{\{{\scriptstyle\{{\scriptscriptstyle\{\hskip3pt
+\}}\}}\}\bigr\}\Bigr\}\biggr\}\Biggr\}\right\}\right\}\right\}
+\]
+Klammern sind in Formeln sehr wichtig, deshalb bietet \TeX\ eine ganze
+Reihe von ihnen an:
+
+\index{Klammer}\index{Doppelt!Strich}\index{Doppelt!Pfeil}\index{Pfeil}
+\index{Gegenschraegstrich@Gegenschr\"agstrich}\index{Schraegstrich@Schr\"agstrich}
+\index{zzzbackslash@{\tt\char92 backslash}}
+\index{zzzdownarrow@{\tt\char92 downarrow}}
+\index{zzzlangle@{\tt\char92 langle}}\index{zzzlceil@{\tt\char92 lceil}}
+\index{zzzlfloor@{\tt\char92 lfloor}}\index{zzzrangle@{\tt\char92 rangle}}
+\index{zzzrceil@{\tt\char92 rceil}}\index{zzzrfloor@{\tt\char92 rfloor}}
+\index{zzzuparrow@{\tt\char92 uparrow}}
+\index{zzzupdownarrow@{\tt\char92 updownarrow}}
+\medskip\begin{tabular}{lll}
+{\em Eingabe} & {\em Bedeutung} & {\em Ausgabe}\\
+{\tt (} & linke Klammer & $($ \\
+{\tt )} & rechte Klammer & $)$\\
+{\tt\char91\ oder \char92 lbrack} & linke eckige Klammer & $[$\\
+{\tt\char93\ oder \char92 rbrack} & rechte eckige Klammer & $]$\\
+{\tt\char92\char123\ oder \char92 lbrace} & linke geschweifte Klammer & $\{$\\
+{\tt\char92\char125\ oder \char92 rbrace} & rechte geschweifte Klammer & $\}$\\
+{\tt\char92 lfloor} & linke Bodenklammer & $\lfloor$\\
+{\tt\char92 rfloor} & rechte Bodenklammer & $\rfloor$\\
+{\tt\char92 lceil} & linke Deckenklammer & $\lceil$\\
+{\tt\char92 rceil} & rechte Deckenklammer & $\rceil$\\
+{\tt\char92 langle} & linke einfach eckige Klammer & $\langle$\\
+{\tt\char92 rangle} & rechte einfach eckige Klammer & $\rangle$\\
+{\tt /} & Schr\"agstrich & $/$\\
+{\tt\char92 backslash} & Gegenschr\"agstrich & $\backslash$\\
+{\tt\char124\ oder \char92 vert} & Gerader Strich & $|$\\
+{\tt\char92\char124\ oder \char92 Vert} & Doppelter gerader Strich & $\|$\\
+{\tt\char92 uparrow} & Pfeil nach oben & $\uparrow$\\
+{\tt\char92 downarrow} & Pfeil nach unten & $\downarrow$\\
+{\tt\char92 Uparrow} & Doppelpfeil nach oben & $\Uparrow$\\
+{\tt\char92 Downarrow} & Doppelpfeil nach unten & $\Downarrow$\\
+{\tt\char92 updownarrow} & Pfeil nach oben und unten & $\updownarrow$\\
+{\tt\char92 Updownarrow} & Doppelpfeil nach oben und unten & $\Updownarrow$
+\end{tabular}\medskip
+
+Um eine gr\"o\ss{}ere Fassung der gezeigten Symbole zu erreichen mu\ss{} ihnen
+nur der Befehl \index{zzzbig@{\tt\char92 big}}\index{zzzbigl@{\tt\char92 bigl}}
+`\verb|\bigl|' (f\"ur linke Klammersymbole) bzw.\
+\index{zzzbigr@{\tt\char92 bigr}}
+`\verb|\bigr|' (f\"ur rechte) vorangestellt werden. Die Eingabe von
+\begin{verbatim}
+$\bigl(x-s(x)\bigr)\bigl(y-s(y)\bigr)$
+\end{verbatim}
+erzeugt: $\bigl(x-s(x)\bigr)\bigl(y-s(y)\bigr)$, die Eingabe von
+\index{zzzlfloor@{\tt\char92 lfloor}}\index{zzzrfloor@{\tt\char92 rfloor}}
+\index{zzzsqrt@{\tt\char92 sqrt}}
+\begin{verbatim}
+$\bigl\lfloor\sqrt A\bigr\rfloor$
+\end{verbatim}
+erzeugt: $\bigl\lfloor\sqrt A\bigr\rfloor$.
+
+Sehen wir uns doch einmal die verschiedenen Symbol im Vergleich an:
+Zun\"achst die normalen mit den \index{zzzbig@{\tt\char92 big}}
+ge`\verb|\big|'ten:
+\index{zzzbackslash@{\tt\char92 backslash}}
+\index{zzzbigl@{\tt\char92 bigl}}
+\index{zzzbigm@{\tt\char92 bigm}}
+\index{zzzdownarrow@{\tt\char92 downarrow}}
+\index{zzzlangle@{\tt\char92 langle}}
+\index{zzzlceil@{\tt\char92 lceil}}
+\index{zzzlfloor@{\tt\char92 lfloor}}
+\index{zzzrangle@{\tt\char92 rangle}}
+\index{zzzrceil@{\tt\char92 rceil}}
+\index{zzzrfloor@{\tt\char92 rfloor}}
+\index{zzzVert@{\tt\char92 Vert}}
+\[\begin{array}{l}
+(\,)\,[\,]\,\{\,\}\,\lfloor\,\rfloor\,\lceil\,\rceil\,\langle\,\rangle
+\,/\,\backslash\,\vert\,\Vert\,\uparrow\,\Uparrow\,\downarrow\,\Downarrow
+\,\updownarrow\,\Updownarrow\\
+\bigl(\,\bigr)\,\bigl[\,\bigr]\,\bigl\{\,\bigr\}\,\bigl\lfloor
+\,\bigr\rfloor\,\bigl\lceil\,\bigr\rceil\,\bigl\langle\,\bigr\rangle
+\,\big/\,\big\backslash\,\big\vert\,\big\Vert\,\bigm\uparrow\,\bigm\Uparrow
+\,\bigm\downarrow\,\bigm\Downarrow\,\bigm\updownarrow\,\bigm\Updownarrow
+\end{array}\]
+Jetzt k\"onnen sie auch noch `\verb|\Big|'x sagen (das `x' steht f\"ur `l'
+oder `r'):\index{zzzBigl@{\tt\char92 Bigl}}
+\[\Bigl(\,\Bigr)\,\Bigl[\,\Bigr]\,\Bigl\{\,\Bigr\}\,\Bigl\lfloor
+\,\Bigr\rfloor\,\Bigl\lceil\,\Bigr\rceil\,\Bigl\langle\,\Bigr\rangle
+\,\Big/\,\Big\backslash\,\Big\vert\,\Big\Vert\,\Bigm\uparrow\,\Bigm\Uparrow
+\,\Bigm\downarrow\,\Bigm\Downarrow\,\Bigm\updownarrow\,\Bigm\Updownarrow\]
+Wenn ihnen das noch nicht gen\"ugt, gibt es die Befehle
+\index{zzzbigg@{\tt\char92 bigg}}
+\index{zzzbiggl@{\tt\char92 biggl}}
+\index{zzzbiggm@{\tt\char92 biggm}}
+\index{zzzbiggr@{\tt\char92 biggr}}
+`\verb|\bigg|'x
+\[\biggl(\,\biggr)\,\biggl[\,\biggr]\,\biggl\{\,\biggr\}\,\biggl\lfloor
+\,\biggr\rfloor\,\biggl\lceil\,\biggr\rceil\,\biggl\langle\,\biggr\rangle
+\,\bigg/\,\bigg\backslash\,\bigg\vert\,\bigg\Vert\,\biggm\uparrow
+\,\biggm\Uparrow\,\biggm\downarrow\,\biggm\Downarrow\,\biggm\updownarrow
+\,\biggm\Updownarrow\]
+Und zu guter Letzt noch `\verb|\Bigg|'x
+\index{zzzBiggl@{\tt\char92 Biggl}}
+\index{zzzBiggm@{\tt\char92 Biggm}}
+\[\Biggl(\,\Biggr)\,\Biggl[\,\Biggr]\,\Biggl\{\,\Biggr\}\,\Biggl\lfloor
+\,\Biggr\rfloor\,\Biggl\lceil\,\Biggr\rceil\,\Biggl\langle\,\Biggr\rangle
+\,\Bigg/\,\Bigg\backslash\,\Bigg\vert\,\Bigg\Vert\,\Biggm\uparrow
+\,\Biggm\Uparrow\,\Biggm\downarrow\,\Biggm\Downarrow\,\Biggm\updownarrow
+\,\Biggm\Updownarrow\]
+Neben den `l' und `r' Formen dieser Befehle bietet \TeX\ auch noch
+eine `m' Variante an, also z.B.\ \index{zzzbigm@{\tt\char92 bigm}}
+`\verb|\bigm|' oder `\verb|\Biggm|'.
+Bei dieser Befehlsform wird das entsprechend folgende Symbol nicht wie
+eine Klammer, \"offnend oder schlie\ss{}end, gesetzt, sondern wie eine
+\index{Relation}
+Relation. Welches Ergebnis am besten aussieht h\"angt vom Einzelfall ab.
+Als Beispiel diene hier die Eingabe von
+\index{zzzbigl@{\tt\char92 bigl}}
+\index{zzzbigm@{\tt\char92 bigm}}
+\index{zzzbigr@{\tt\char92 bigr}}
+\begin{verbatim}
+$$\bigl(x\in A(n)\bigm|\||x\in B(n)\bigr)$$
+\end{verbatim}
+was
+\[\bigl(x\in A(n)\bigm|\||x\in B(n)\bigr)\]
+erzeugt. Au\ss{}erdem gibt es noch die M\"oglichkeit die Befehl {\em ohne}
+Links-, oder Rechtsangabe zu benutzen. Dann wird das Symbol wie eine
+normale Variable gesetzt. Dies empfiehlt sich meist nur beim Schr\"ag-
+oder \index{Gegenschraegstrich@Gegenschr\"agstrich}Gegenschr\"agstrich.
+\index{zzzover@{\tt\char92 over}}
+\begin{verbatim}
+$${a+1\over b}\bigg/{c+1\over d}$$
+\end{verbatim}
+ergibt
+$${a+1\over b}\bigg/{c+1\over d}$$
+\subsubsection{Die Rechts-Links-Befehle}
+\TeX\ bietet noch eine einfache M\"oglichkeit die
+\index{Klammer!Groessenanpassung@Klammer!Gr\"o\ss{}enanpassung}
+Klammersymbole der
+Gr\"o\ss{}e der Formel anzupassen. Die Befehl \index{zzzleft@{\tt\char92 left}}
+`\verb|\left|' und\index{zzzrightarrow@{\tt\char92 rightarrow}}
+`\verb|\right|' gefolgt von einem Klammersymbol sorgen selbst\"andig f\"ur
+die richtige Gr\"o\ss{}e des Klammersymbols. Die Eingabe von
+\index{zzzleft@{\tt\char92 left}}
+\begin{verbatim}
+$$1+\left(1\over1-x^2\right)^3$$
+\end{verbatim}
+ergibt in der \index{Ausgabe}Ausgabe
+$$1+\left(1\over1-x^2\right)^3$$
+In einer einfachen Formel, wie \index{zzzleft@{\tt\char92 left}}
+`\verb|$\left(x\right)$|', werden nur
+die einfachen Klammersymbole gew\"ahlt und die Ausgabe ist
+$\left(x\right)$. Die Befehle `\verb|\left|' und `\verb|\right|'
+m\"ussen immer in einer Gruppe stehen. Konstruktionen wie
+\begin{verbatim}
+$$\left( ... { ... \right) ... }$$
+\end{verbatim}
+sind nicht erlaubt. Die Befehle stellen allerdings {\em ihrerseits}
+selber eine Gruppierung dar, wie das obige Beispiel zeigt. Das `$1+$'
+wird nicht in den \index{Bruch}
+Bruch einbezogen. Daraus folgt auch, da\ss{} immer zu
+jedem `\verb|\left|'-Befehl ein entsprechender `\verb|\right|'-Befehl
+geschrieben werden mu\ss{}. Die Klammersymbole m\"ussen allerdings nicht
+zueinander passen, wie das folgende Beispiel zeigt.
+\index{zzzatop@{\tt\char92 atop}}\index{zzzleft@{\tt\char92 left}}
+\begin{verbatim}
+$$\left(1+n\atop 1-n\right[$$
+\end{verbatim}
+ist erlaubt und ergibt
+$$\left(1+n\atop 1-n\right[$$
+Jetzt fragt man sich, wieso man \"uberhaupt noch die Einzelbefehle f\"ur
+die Gr\"o\ss{}e der Klammersymbole benutzen soll, wenn doch \TeX\ das so
+sch\"on selber kann. Nun, es k\"onnen drei Situationen auftreten, wo die
+Links-Rechts-Befehle eben doch nicht so hundertprozentig
+passen.\index{Klammer!Groessenwahl, manuell@Klammer!Gr\"o\ss{}enwahl,
+manuell}\index{Eingabe!Groesse@Eingabe!Gr\"o\ss{}e}
+\begin{enumerate}
+\item Manchmal w\"ahlt \TeX\ eine Klammer, die f\"ur diese Situation zu
+klein ist. Wenn man z.B.
+\index{zzzleft@{\tt\char92 left}}\index{zzzrightarrow@{\tt\char92 rightarrow}}
+\begin{verbatim}
+$\left|\left|x\right|+\left|y\right|\right|$
+\end{verbatim}
+eingibt, dann ist das Ergebnis
+$\left|\left|x\right|+\left|y\right|\right|$, obwohl man durch
+explizite Eingabe der Gr\"o\ss{}en, das wesentlich bessere Ergebnis
+\index{zzzbigl@{\tt\char92 bigl}}\index{zzzbigr@{\tt\char92 bigr}}
+$\bigl|\left|x\right|+\left|y\right|\bigr|$ bevorzugen w\"urde.
+\item Andererseits kann es aber auch vorkommen, da\ss{} \TeX\ zu gro\ss{}e
+Symbole aussucht. Dies passiert z.B.\ bei gro\ss{}en Symbolen. Vergleichen
+sie einmal
+\index{zzzleft@{\tt\char92 left}}
+\index{zzzsum@{\tt\char92 sum}}
+\begin{verbatim}
+$$\left(\sum_{k=1}^n A_k\right)$$
+\end{verbatim}
+mit\index{zzzbiggl@{\tt\char92 biggl}}\index{zzzbiggr@{\tt\char92 biggr}}
+\begin{verbatim}
+$$\biggl(\sum_{k=1}^n A_k\biggr)$$
+\end{verbatim}
+Und nun die Ausgabe
+$$\left(\sum_{k=1}^n A_k\right)\qquad\biggl(\sum_{k=1}^n A_k\biggr)$$
+\item Schlie\ss{}lich kann es vorkommen, da\ss{} sie eine Formel \"uber mehr als
+eine Zeile schreiben m\"ussen. Sie werden dann Probleme bekommen die
+zusammengeh\"origen Befehle innerhalb einer Gruppe zu realisieren. Auch
+in diesem Fall m\"ussen sie die Gr\"o\ss{}enanpassung selber vornehmen.
+\end{enumerate}\index{Ausgabe}
+Es gibt \"ubrigens f\"ur die Links-Rechts-Befehle auch eine
+\index{Leer!Klammer}{\em leere}
+\index{Klammer!Leere}Klammer, die bei Anwendungen, wie
+$$|x|=\left\{\begin{array}{ll}
+x & \mbox{f\"ur\quad}x\ge0\\
+-x & \mbox{f\"ur\quad}x<0\end{array}\right.$$
+n\"otig ist. Zu jedem `\verb|\left|'-Befehl mu\ss{} ja auch der passende
+\index{zzzrightarrow@{\tt\char92 rightarrow}}
+`\verb|\right|'-Befehl geschrieben werden. Man gibt hier bei dem
+`\verb|\right|'-Befehl statt eines Klammersymbols einen \index{Punkt}
+Punkt an. Im
+obigen Beispiel stand am Ende einfach
+\begin{verbatim}
+...x<0\right.$$
+\end{verbatim}
+Manchen sie sich keine Sorgen \"uber die zweizeilige Formel, wie so
+etwas geht wird auch noch besprochen. Die {\em leere} Klammer ist
+\"ubrigens nicht leer, statt dessen wird von \TeX\ noch der
+\index{Zwischenraum}
+Zwischenraum, der in der Variablen \index{Delimiterspace}
+\index{zzznulldelimiterspace@{\tt\char92 nulldelimiterspace}}
+`\verb|\nulldelimiterspace|' steht,
+eingef\"ugt (Voreingestellt ist 1.2pt).
+\subsubsection{Teilklammern}\index{Klammer!Teilklammern}
+Weiter oben wurden einige Symbole gezeigt, die aus Teilzeichen
+zusammengesetzt waren. Diese Teilzeichen kann man nat\"urlich auch
+einzeln verwenden. Mit den Befehlen
+\index{zzzarrowvert@{\tt\char92 arrowvert}}
+\index{zzzbracevert@{\tt\char92 bracevert}}
+\begin{verbatim}
+\arrowvert
+\Arrowvert
+\bracevert
+\end{verbatim}
+werden einfache, bzw. \index{Doppelt!Strich}
+doppelte senkrechte Striche gezogen, mit den
+Befehlen
+\index{zzzlgroup@{\tt\char92 lgroup}}
+\index{zzzlmoustache@{\tt\char92 lmoustache}}
+\index{zzzrgroup@{\tt\char92 rgroup}}
+\index{zzzrmoustache@{\tt\char92 rmoustache}}
+\begin{verbatim}
+\lgroup
+\rgroup
+\lmoustache
+\rmoustache
+\end{verbatim}
+werden Teile der geschweiften Klammer benutzt. Die Klammern sehen
+folgenderma\ss{}en aus
+\index{zzzarrowvert@{\tt\char92 arrowvert}}
+\index{zzzbracevert@{\tt\char92 bracevert}}
+\index{zzzlgroup@{\tt\char92 lgroup}}
+$$\Big\arrowvert\ldots\Big\Arrowvert\ldots\Big\bracevert
+\ldots\Big\lgroup\ldots\Big\rgroup\ldots\Big\lmoustache
+\ldots\Big\rmoustache$$
+Diese Klammern sind nur als ziemlich gro\ss{}e Symbole (gr\"o\ss{}er als Big)
+verf\"ugbar.
+
+Mitunter m\"ochten sie selber irgendwelche Symbole definieren, und in
+unterschiedlichen Situationen benutzen. Daf\"ur bietet \TeX\ den Befehl
+\index{zzzmathchoice@{\tt\char92 mathchoice}}
+\begin{verbatim}
+\mathchoice{<Teil>}{<Teil>}{<Teil>}{<Teil>}
+\end{verbatim}
+Die `\verb|<Teil>|'e sind dabei Teilformeln, die folgenderma\ss{}en
+benutzt werden: Die erste Teilformel wird benutzt wenn der Stil $D$
+oder $D'$ \index{Aktiv!Stil}
+aktiv ist, die zweite, wenn der Stil $T$ oder $T'$ aktiv
+ist, wie es weitergeht k\"onnen sie sich denken. Beachten sie im Anhang
+auch den Befehle \index{zzzmathpalette@{\tt\char92 mathpalette}}
+`\verb|\mathpalette|', der in diesem Zusammenhang
+interessant ist.
+\subsection{Die Achse einer Formel}\index{Achse einer Formel}
+Wenn sie sich einmal eine Formel mit Klammern genau ansehen, dann
+werden sie feststellen, da\ss{} die Klammern bez\"uglich einer unsichtbaren
+\index{Achse!einer Formel}
+Achse \index{Zentrierung}
+zentriert sind. Diese Achse hei\ss{}t `Achse der Formel' und liegt
+bei Textformeln so: $\hskip 2em\over$. Z.B.\ jeder \index{Bruch}
+Bruchstrich liegt
+auf dieser Achse. Mitunter ist es notwendig eine vertikale
+\index{Box!Vcenter}Box auf
+dieser Achse zu \index{Zentrierung}
+zentrieren.\footnote{Bei dem $|x|=\{\ldots$ Beispiel
+von eben war das z.B.\ n\"otig} \TeX\ bietet nat\"urlich auch hierf\"ur
+einfache Befehle. Geben sie einfach
+\index{zzzvcenter@{\tt\char92 vcenter}}
+\begin{verbatim}
+\vcenter{<vertikales Material>}
+\end{verbatim}
+ein. Das vertikale Material schreiben sie so, als handele es sich um
+eine \index{zzzvbox@{\tt\char92 vbox}}
+\verb|\vbox|. Den Rest erledigt \TeX. Auch solche Konstruktionen
+wie `\verb|\vcenter to...|' oder `\verb|\vcenter spread...|' sind
+m\"oglich. \"Ubrigens, auch alle anderen \index{Box!Konstruktion}Boxkonstruktionen, inklusive
+\index{zzzraise@{\tt\char92 raise}}
+`\verb|\raise|' oder \index{zzzlower@{\tt\char92 lower}}
+`\verb|\lower|' sind im mathematischen Modus
+m\"oglich und erlaubt.
+\section{Die Interna}
+Dieser Abschnitt ist zum eigentlichen Verst\"andnis von \TeX\ im
+mathematischen Modus nicht notwendig, er besch\"aftigt sich mit den
+Interna der Zeichenauswahl in mathematischen Formeln.
+\subsection{Familien}
+Jedes Zeichen, das im mathematischen Modus ausgegeben wird, geh\"ort zu
+einer von sechzehn Familien, die ihrerseits aus drei Zeichens\"atzen
+bestehen. Mit den Befehlen \index{Font!Wahl}
+\index{zzztextfont@{\tt\char92 textfont}}`\verb|\textfont|',
+\index{zzzscriptfont@{\tt\char92 scriptfont}}`\verb|\scriptfont|'
+und `\verb|scriptscriptfont|' w\"ahlen dabei jeweils eine dieser
+Zeichens\"atze. Die Familie 0 wird in {\em Plain} \TeX\ f\"ur die
+\index{Roman}Roman
+Zeichens\"atze verwendet und die \index{Zuweisung}Zuweisungen lauten
+\begin{verbatim}
+\textfont0=\tenrm
+\scriptfont0=\sevenrm
+\scriptscriptfont0=\fiverm
+\end{verbatim}
+Wird kein Zeichensatz angegeben, verwendet \TeX\
+\index{Font!Null}\index{zzznullfont@{\tt\char92 nullfont}}
+`\verb|\nullfont|'.\footnote{Haben sie sich nicht schon gefragt, wof\"ur
+dieser Zeichensatz ben\"otigt wird?} Die \index{Schrift!Familie}
+Schriftfamilie wird erst {\em
+nach} Abarbeitung der Formel ausgewertet. Angenommen, sie haben auf
+ihrem Rechner eine \index{Helevetica}\index{Schrift!Helevetica}
+Heleveticaschrift zur Verf\"ugung, dann erhalten sie
+nach der Anweisung
+\index{zzzhelevetica@{\tt\char92 helevetica}}
+\index{zzztextfont@{\tt\char92 textfont}}
+\begin{verbatim}
+$\textfont0=\tenrm 9 \textfont0=\helevetica 9$
+\end{verbatim}
+zwei Neuen in der Schriftart Helevetica, da diese Anweisung am Ende
+der Formel g\"ultig ist. Anders sieht es aus, wenn sie
+\index{zzzhelevetica@{\tt\char92 helevetica}}
+\index{zzztextfont@{\tt\char92 textfont}}
+\begin{verbatim}
+$\textfont0=\tenrm 9\hbox{$9\textfont0=\helevetica$}$
+\end{verbatim}
+eingeben, dann erhalten sie die erste Neun in `tenrm' und die zweite
+in `helevetica'.
+\subsection{Zeichenklassen}
+Zu jedem mathematischen Zeichen gibt es einen Code zwischen $0$ und
+$4096$, der sich aus der Positionsnummer innerhalb des Zeichensatzes
+plus dem $256$fachen der \index{Familie!Nummer}
+Familiennummer ergibt. Am einfachsten wird
+das \index{Hexadezimal}hexadezimal notiert. Die Kodierung `\verb|24A|' bedeutet, da\ss{} es
+sich um das {\tt 2A}te Zeichen in der Familie {\tt 2} handelt. Au\ss{}er
+der Familienzugeh\"origkeit und der Position innerhalb eines
+Zeichensatzes gibt es aber auch noch eine Klassifizierung der Zeichen.
+
+\index{Interpunktion}\index{Schliesser@Schlie\ss{}er}
+\medskip\begin{tabular}{lll}
+{\em Klasse} & {\em Bedeutung} & {\em Beispiel} \\
+0 & Normal & $/$\\
+1 & Gro\ss{}es Symbol & $\sum$\\
+2 & Bin\"arer Operator & $+$\\
+3 & Relation & $=$\\
+4 & `\"Offner' & $($\\
+5 & `Schlie\ss{}er' & $)$\\
+6 & Interpunktion & $,$\\
+7 & Variable Familie & $x$
+\end{tabular}\medskip
+
+Die Klassen $0$ bis $6$ besagen, welchem Sprachteil das Zeichen
+zugeh\"ort, die Klasse $7$ wird sofort besprochen. Die Klassenkodierung
+wird mit $4096$ multipliziert der Zeichenkodierung zuaddiert, so da\ss{}
+sich eine vierstellige \index{Hexadezimal}hexadezimale Zahl ergibt. {\tt 1350} bedeutet:
+Klasse {\tt 1} (Gro\ss{}es Symbol), in der \index{Familie}
+Familie {\tt 3}, und dort das
+Zeichen {\tt 50} (Alle Zahlangeben hexadezimal).
+
+Die Klasse $7$ erlaubt es Zeichen in verschiedenen Familien
+aufzutauchen. Normalerweise verhalten sich Zeichen der Klasse $7$ wie
+die der Klasse $0$, es sein denn die \index{Integer!Variable}
+Integervariable \index{zzzfam@{\tt\char92 fam}}`\verb|\fam|' hat
+einen g\"ultigen Familienwert ($0\ldots15$). Normalerweise wird der Wert
+auf $-1$ gesetzt, kann aber ge\"andert werden. {\em Plain} \TeX\ benutzt diese
+M\"oglichkeit f\"ur den Befehl \index{zzzrm@{\tt\char92 rm}}
+`\verb|\rm|'. Er ist eine
+\index{Abkuerzung@Abk\"urzung}
+Abk\"urzung f\"ur die
+Befehle `\verb|\fam=0|' und `\verb|\tenrm|'. Die Familie aller Zeichen
+(haben normalerweise die Klasse $7$) wird also $0$ und die
+\index{Schrift!Familie}Schrift
+{\tt tenrm} wird als voreingestellte \index{Schrift!Voreingestellt}
+Schrift verwendet. Mit diesem
+Befehl ist es dann m\"oglich innerhalb mathematischer Formeln normalen
+Text zu setzen.
+\subsection{Mathcode}
+Von einer Tabelle mit $256$ ``mathcode''-Werten h\"angt die Interpretation
+der Zeichen im mathematischen Modus ab. Der zu einem Zeichen geh\"orige Wert kann
+mit dem Befehl \index{zzzmathcode@{\tt\char92 mathcode}}
+`\verb|\mathcode|' ge\"andert werden.\footnote{Entspricht
+soweit dem Befehl {\tt\char92 catcode}, der schon behandelt wurde.}
+Der Befehl
+\begin{verbatim}
+\mathcode`<=\"313C
+\end{verbatim}
+bedeutet, da\ss{} dem Zeichen `\verb|<|' der Code `\verb|313C|' zukommt,
+also $3$te \index{Klasse!Zeichencode}
+Klasse in der $1$ten Familie und dort Zeichen Nummer
+`\verb|3C|'. Der Buchstabe `b' wird z.B.\ mit `\verb|7162|' kodiert.
+Es gibt noch den `mathcode' `\verb|8000|', der zur Folge hat, da\ss{} das
+Zeichen wie ein \index{Aktiv!Zeichen}
+aktives Zeichen (catcode=13) behandelt wird.
+
+Analog zu dem Befehl `\verb|\char|' gibt es auch einen Befehl um jedes
+mathematische Zeichen ansprechen zu k\"onnen, und der hei\ss{}t, wie nicht
+anders zu erwarten war, \index{zzzmathchar@{\tt\char92 mathchar}}
+`\verb|\mathchar|'. Die \index{Definition}
+Definition des
+\index{Summe!Zeichen}Summenzeichens w\"are also m\"oglich mit der Befehlsfolge
+\index{zzzdef@{\tt\char92 def}}
+\index{zzzsum@{\tt\char92 sum}}
+\begin{verbatim}
+\def\sum=\mathchar\"1350
+\end{verbatim}
+(Klasse 1, gro\ss{}es Symbol; Familie 3, Zeichen 50) Aber es gibt auch
+noch eine bessere M\"oglichkeit, denn genau, wie es den Befehl
+\index{zzzchardef@{\tt\char92 chardef}}
+`\verb|\chardef|' gibt, gibt es auch den Befehl
+\index{zzzmathchardef@{\tt\char92 mathchardef}}`\verb|\mathchardef|'
+und damit reduziert sich die Aufgabe zu
+\index{zzzsum@{\tt\char92 sum}}
+\begin{verbatim}
+\mathchardef\sum=\"1350
+\end{verbatim}
+
+\TeX\ kann auch einer ganzen Teilformel eine \index{Klasse!Einer
+Teilformel}Klasse zukommen lassen.
+Dazu dienen die Befehle
+\index{zzzmathbin@{\tt\char92 mathbin}}\index{zzzmathclose@{\tt\char92 mathclose}}
+\index{zzzmathop@{\tt\char92 mathop}}\index{zzzmathopen@{\tt\char92 mathopen}}
+\index{zzzmathord@{\tt\char92 mathord}}\index{zzzmathpunkt@{\tt\char92 mathpunkt}}
+\index{zzzmathrel@{\tt\char92 mathrel}}
+\begin{verbatim}
+\mathord
+\mathop
+\mathbin
+\mathrel
+\mathopen
+\mathclose
+\mathpunkt
+\end{verbatim}
+Sie beziehen sich immer auf das Zeichen, oder die gruppierte
+Teilformel, die dahinter steht. Die Anweisung
+\begin{verbatim}
+$G\mathbin:H$
+\end{verbatim}
+sorgt daf\"ur, da\ss{} der \index{Doppelt!Punkt}
+Doppelpunkt wie ein Zeichen eines bin\"aren
+\index{Operator!Binaer@Operator!Bin\"ar}
+Operators verwendet wird. Der Befehl `\verb|\mathord|' ist eigentlich
+\"uberfl\"u\ss{}ig, da alles in \index{Klammer!In Formel}Klammern wie ein normales Symbol verwendet
+wird. Die beiden folgenden Anweisungen sind also gleichwertig
+\index{zzzmathord@{\tt\char92 mathord}}
+\begin{verbatim}
+$1\mathord,2345$
+$1{,}2345$
+\end{verbatim}
+Es gibt noch eine achte Klassifizierung: \index{zzzmathinner@{\tt\char92 mathinner}}
+`\verb|\mathinner|', die f\"ur
+spezielle Zwecke gebraucht wird. \index{Bruch}Br\"uche und
+Rechts-Links-Konstruktionen werden als {\em inner} bezeichnet, und mit
+etwas zus\"atzlichem \index{Leer!Raum}
+Leerraum umgeben. Normalerweise werden Teilformeln
+als normales Symbol angesehen.
+\subsection{Delcode}\index{Klammer!Code}
+Klammern werden noch weiter spezifiziert, sie haben neben dem {\tt
+catcode} und dem {\tt mathcode} auch noch einen sechstelligen,
+\index{Hexadezimal}hexadezimalen {\tt delcode}.\footnote{Vom englischen \index{Delimiter}
+{\em Delimiter}.}
+Die ersten drei \index{Ziffer}
+Ziffern geben dabei das {\em kleine}, die zweiten drei
+Ziffern das {\em gro\ss{}e} Symbol an. Die Anweisung
+\index{zzzdelcode@{\tt\char92 delcode}}
+\begin{verbatim}
+\delcode`(=\"028300 \delcode`.=0
+\end{verbatim}
+besagt, da\ss{} f\"ur die \"offnende Klammer als kleines Symbol das {\tt 28}te
+Zeichen aus der \index{Familie}
+Familie {\tt0} in Frage kommt, und die gro\ss{}e Variante
+in Familie {\tt3} an der Position {\tt0} zu finden ist. Im Falle des
+\index{Punkt}
+Punktes wird keine gro\ss{}e und keine kleine Variante angegeben, so da\ss{}
+es auch zu keiner \index{Ausgabe}
+Ausgabe kommt.\footnote{Erinnern sie sich an die
+Bedeutung des Punktes in Zusammenhang mit Klammern?} Eine Klammer kann
+auch direkt mit dem Befehle \index{Delimiter!Befehl}
+\index{zzzdelimiter@{\tt\char92 delimiter}}
+`\verb|\delimiter|' angegeben werden. Der
+zugeh\"orige Zahlwert mu\ss{} nur kleiner als `\verb|\"7FFFFFF|' sein. Die
+Angabe enth\"alt sofort auch die \index{Klasse!Angabe}Klassenangabe.
+\index{zzzdef@{\tt\char92 def}}\index{zzzdelimiter@{\tt\char92 delimiter}}
+\begin{verbatim}
+\def\langle{\delimiter\"426830A}
+\end{verbatim}
+Bedeutet, da\ss{} \index{zzzlangle@{\tt\char92 langle}}
+`\verb|\langle|' ein \"offnendes Symbol ist, dessen kleine
+Variante bei `\verb|268|' zu finden ist, und die gro\ss{}e Variante bei
+`\verb|30A|'. Tritt der `\verb|\delimiter|' Befehl nach einem
+\index{zzzleft@{\tt\char92 left}}\index{zzzrightarrow@{\tt\char92 rightarrow}}
+`\verb|\left|' oder einem `\verb|\right|' Befehl auf, dann wird die
+Klassenangabe ignoriert, in anderem Kontext werden die letzten drei
+Stellen gestrichen und die ersten vier \index{Ziffer}Ziffern wie bei einer
+\index{zzzmathchar@{\tt\char92 mathchar}}
+`\verb|\mathchar|' Angabe verwendet. Die folgenden Angaben sind also
+\"aquivalent
+\index{zzzlangle@{\tt\char92 langle}}
+\begin{verbatim}
+$\langle x$
+$\mathchar\"4268 x$
+\end{verbatim}
+\subsubsection{Andere \"ahnliche Befehle}
+Wie auch der `\verb|\delimiter|' Befehl arbeiten die Befehle
+\index{zzzradical@{\tt\char92 radical}}
+`\verb|\radical|' und \index{zzzmathaccent@{\tt\char92 mathaccent}}
+`\verb|\mathaccent|', die dazu dienen
+Wurzelzeichen, bzw.\ mathematische \index{Akzent!mathematische}
+Akzente zu definieren. Die
+Kodierung ist auch hier wieder dieselbe, wie schon in den vorherigen
+Beispielen.
+\subsection{Familienzugeh\"origkeit nach {\em Plain} \TeX}
+{\em Plain} \TeX\ setzt die \index{Familie!Plain TeX@Familie!{\it
+Plain} \TeX}Familien normalerweise wie folgt: Familie $1$
+f\"ur die \index{Schrift!Italic}\index{Italic}
+Italic-Schriften, Familie $2$ f\"ur normale mathematische
+Symbole, Familie $3$ f\"ur gro\ss{}e Symbole. Die Familien $2$ und $3$ sind
+meist mit den Zeichens\"atzen `\verb|cmsy|' und `\verb|cmex|' verbunden,
+die noch weitere Informationen zum Satz beinhalten.
+\subsection{Elemente einer mathematischen Liste}
+Sie k\"onnen sich vermutlich schon denken, da\ss{} auch mathematische Formeln
+von \TeX\ zun\"achst wie eine lange Liste von Elementen angesehen wird,
+wie es auch schon bei der \index{Horizontal!Liste}
+horizontalen und der vertikalen Liste der
+Fall war. In einer mathematischen Liste k\"onnen nun folgende Elemente
+auftreten.\index{Bruch}\index{Display!Stil}
+\begin{enumerate}
+\item Ein Atom (Siehe unten)
+\item Horizontales Material (Ein Strich, eine Trennung, eine Strafe
+oder ein ``WasDenn'')
+\item Vertikales Material
+\item Etwas \index{Leim}Leim
+\item Ein Kern
+\item Ein \index{Stil!Wechsel}
+Stilwechsel (von den Befehlen {\tt\char92 displaystyle} o.\"a.)
+\item Ein Bruch o.\"a.
+\item Ein B\"undel (meist eine Teilformel, die z.B. in Klammern gesetzt
+ist)
+\item Eine Mathe-Auswahl von {\tt\char92 mathchoise}
+\end{enumerate}\index{Atom}
+\subsection{Atome}
+Das wichtigste Element in einer mathematischen Liste ist das sog.\
+Atom. Es besteht aus einem {\em K\"orper}, einer \index{Hochstellung}
+{\em Hochstellung} und
+einer {\em Tiefstellung}. Wenn sie z.B.\ eingeben
+\index{zzzoverline@{\tt\char92 overline}}
+\begin{verbatim}
+(x_i+y)^{\overline{n+1}}
+\end{verbatim}
+dann erhalten sie eine Folge von f\"unf Atomen: $($, $x_i$, $+$, $y$ und
+$)^{\overline{n+1}}$. Die K\"orper dieser Atome sind: $($, $x$, $+$, $y$
+und $)$, ihre \index{Hochstellung}Hochstellungen sind leer, bis auf die
+Hochstellung des
+letzten Atoms, die aus $\overline{n+1}$ besteht, ihre Tiefstellungen
+sind auch leer, bis auf die des zweiten Atoms, welche aus $i$ besteht.
+Es gibt verschiedene Atomtypen.
+
+\index{Box!Vbox}\index{Interpunktion!Atom}\index{Punct}
+\index{zzzhat@{\tt\char92 hat}}\index{zzzoverline@{\tt\char92 overline}}
+\medskip\begin{tabular}{ll}
+Ord & Ein einfaches Atom wie $x$\\
+Op & Ein gro\ss{}es Atom wie $\sum$\\
+Bin & Ein bin\"ares Atom wie $+$\\
+Rel & Eine Relation wie $=$\\
+Open & Ein \"offnendes Atom wie $($\\
+Close & Ein schlie\ss{}endes Atom wie $)$\\
+Punct & Ein Interpunktionsatom wie $,$\\
+Inner & Ein inneres Atom wie $\frac{1}{2}$\\
+Over & Eine \"uberstrichenes Atom wie $\overline{x}$\\
+Under & Ein unterstrichenes Atom wie $\underline{x}$\\
+Acc & Ein Akzentatom wie $\hat a$\\
+Rad & Ein Wurzelatom wie $\sqrt{2}$\\
+Vcent & Eine vertikale Box, von {\tt\char92 vcenter}
+\end{tabular}\medskip\index{Atom!Typen}
+
+Der K\"orper, die \index{Hochstellung}
+Hochstellung und die Tiefstellung eines Atoms hei\ss{}en
+{\em Felder}. F\"ur diese Felder gibt es vier M\"oglichkeiten, ein Feld
+enth\"alt\index{Box}
+\begin{enumerate}
+\item nichts
+\item ein mathematisches Symbol
+\item eine Box
+\item eine mathematische Liste
+\end{enumerate}
+Den genauen Aufbau dieser Atome k\"onnen sie sich mit
+\index{zzzshowlists@{\tt\char92 showlists}}`\verb|\showlists|'
+ansehen. Manche Atome haben \"ubrigens weitere Informationen, so sind
+z.B.\ alle `Op' Atome mit der zus\"atzlichen Information \"uber
+\index{zzzlimits@{\tt\char92 limits}}\index{zzznolimits@{\tt\char92 nolimits}}
+`\verb|\limits|' oder `\verb|\nolimits|' versehen.
+\section{Sch\"one Aussichten}
+Es sind nun schon fast alle M\"oglichkeiten von \TeX\ besprochen, eine
+Formel zu setzen, wenn man allerdings mit der Zeit etwas \"Ubung darin
+bekommen hat, zu erkennen, wie eine Formel aussieht, wenn man sie
+schreibt, dann kommt der Wunsch auf Formeln nicht nur einfach zu
+setzen, sondern ihr Aussehen noch positiv zu beeinflu\ss{}en. Hier nun
+einige Regeln daf\"ur.
+\subsection{Interpunktion}
+Punkt und \index{Komma}Kommata sollten in Textformeln nicht zwischen die
+`\verb|$|'s geschrieben werden, wenn sie nicht zur Formel geh\"oren.
+Eine Textformel
+\begin{verbatim}
+f\"ur $x=a, b$, oder $c$
+\end{verbatim}
+schreibt man besser als
+\begin{verbatim}
+f\"ur $x=a$, $b$, oder~$c$
+\end{verbatim}
+Der Grund hierf\"ur liegt darin, da\ss{} {\em in} einer Formel die Abst\"ande
+hinter Interpunktionszeichen anders gesetzt werden, als im Text, man
+erhielte also unterschiedlich breite \index{Leer!Raum}
+Leerr\"aume, was h\"ochst unsch\"on
+aussieht. Au\ss{}erdem bricht \TeX\ eine Formel hinter einem
+Interpunktionszeichen nur {\em sehr} ungerne um, was aber in diesem
+Fall gerade w\"unschenswert w\"are.\footnote{Der Grund f\"ur das Verhalten
+von \TeX\ liegt darin, da\ss{} man ja \"ublicherweise nicht eine Formel wie
+$f(a,b)$ in $f(a,$ und $b)$ getrennt haben m\"ochte.}
+
+Innerhalb einer \index{Formel!abgesetzte}
+abgesetzten Formel sieht die Sache etwas anders aus.
+Hier sollte das Interpunktionszeichen {\em in} die Formel geschrieben
+werden. Der Grund wird sofort klar, wenn man sich die beiden folgenden
+Beispiele ansieht.
+\begin{verbatim}
+$$f(a,b).$$
+\end{verbatim}
+ergibt das gew\"unschte
+$$f(a,b).$$
+wohingegen
+\begin{verbatim}
+$$f(a,b)$$.
+\end{verbatim}
+etwas seltsam aussieht:
+$$f(a,b)$$.
+Achten sie darauf, wo der \index{Punkt}Punkt hingekommen ist.
+\subsubsection{Mehr Platz}
+Man kann Textformeln auch dadurch hervorheben, da\ss{} man ihnen etwas
+mehr Platz verschaftt. \TeX\ bietet diese M\"oglichkeit mit dem Befehl
+\index{zzzmathsurround@{\tt\char92 mathsurround}}
+`\verb|\mathsurround|'. Die Textformel
+\begin{verbatim}
+$x=a$, $b$, oder $c$
+\end{verbatim}
+sieht mit den Vorgaben f\"ur `\verb|\mathsurround|' f\"ur ein, bzw.\ zwei
+pt folgenderma\ss{}en aus
+
+{\mathsurround=1pt$x=1$, $b$, oder $c$}
+
+{\mathsurround=2pt$x=1$, $b$, oder $c$}
+
+Normalerweise wird der Wert auf 0pt gesetzt.
+\subsection{Buchstaben in Nicht-Italic}
+\subsubsection{Generelles}
+Normalerweise werden Buchstaben in Formeln immer in der
+\index{Schrift!Art}\index{Schrift!Italic}Schriftart
+\index{Italic}Italic gesetzt. Bei \index{Funktion!Namen}
+Funktionsnamen o.\"a.\ ist dies aber st\"orend. \TeX\
+bietet daher einige Befehle, die die entsprechenden Funktionsnamen in
+der \index{Schrift!Roman}\index{Schrift!Art}
+Schriftart \index{Roman}Roman ausgeben.
+\index{zzzarccos@{\tt\char92 arccos}}
+\index{zzzarcsin@{\tt\char92 arcsin}}
+\index{zzzarctan@{\tt\char92 arctan}}
+\index{zzzarg@{\tt\char92 arg}}
+\index{zzzcos@{\tt\char92 cos}}
+\index{zzzcosh@{\tt\char92 cosh}}
+\index{zzzcot@{\tt\char92 cot}}
+\index{zzzcoth@{\tt\char92 coth}}
+\index{zzzcsc@{\tt\char92 csc}}
+\index{zzzdeg@{\tt\char92 deg}}
+\index{zzzdet@{\tt\char92 det}}
+\index{zzzdim@{\tt\char92 dim}}
+\index{zzzexp@{\tt\char92 exp}}
+\index{zzzgcd@{\tt\char92 gcd}}
+\index{zzzhom@{\tt\char92 hom}}
+\index{zzzinf@{\tt\char92 inf}}
+\index{zzzker@{\tt\char92 ker}}
+\index{zzzlim@{\tt\char92 lim}}
+\index{zzzliminf@{\tt\char92 liminf}}
+\index{zzzlog@{\tt\char92 log}}
+\index{zzzmax@{\tt\char92 max}}
+\index{zzzmin@{\tt\char92 min}}
+\index{zzzsec@{\tt\char92 sec}}
+\index{zzzsin@{\tt\char92 sin}}
+\index{zzzsinh@{\tt\char92 sinh}}
+\index{zzzsup@{\tt\char92 sup}}
+\index{zzztan@{\tt\char92 tan}}
+\index{zzztanh@{\tt\char92 tanh}}
+\index{zzzlimsup@{\tt\char92 limsup}}
+\begin{verbatim}
+\arccos \cos \csc \exp \ker \limsup \min \sinh
+\arcsin \cosh \deg \gcd \lg \ln \Pr \sup
+\arctan \cot \det \hom \lim \log \sec \tan
+\arg \coth \dim \inf \liminf \max \sin \tanh
+\end{verbatim}
+Hier einige Beispiele, die auch zeigen, da\ss{} immer der richtige
+\index{Leer!Raum}Leerraum um die Funktionsnamen gesetzt wird.
+
+\index{zzzover@{\tt\char92 over}}
+\medskip\begin{tabular}{ll}
+{\em Eingabe} & {\em Ausgabe}\\
+{\tt\char36\char92 sin2\char92 theta=2\char92 sin\char92 theta\char92
+cos\char92 theta\char36} & $\sin2\theta=2\sin\theta\cos\theta$\\
+{\tt\char36 O(n\char92 log n\char92 log \char92 log n)\char36} &
+$O(n\log n\log\log n)$\\
+{\tt\char36\char92 Pr(X\char62 x)=\char92 exp(-x/\char92 mu)\char36} &
+$\Pr(X>x)=\exp(-x/\mu)$\\
+{\tt\char36\char36\char92 max\char95\char123 1\char92 le n\char92 le
+m\char125\char92 log\char95 2P\char95 n\char36\char36} &
+$\displaystyle{\max_{1\le n\le m}\log_2P_n}$\\
+{\tt\char36\char36\char92 lim\char95\char123 x\char92
+to0\char125\char123\char92 sin x\char92 over x\char125
+=1\char36\char36} & $\displaystyle{\lim_{x\to0}{\sin x\over x}=1}$
+\end{tabular}\medskip
+
+Wie man am Beispiel des \index{zzzmax@{\tt\char92 max}}
+`\verb|\max|'-Operators sieht werden manche
+dieser \index{Kontrollsequenz}Kontrollsequenzen als gro\ss{}e Symbole behandelt.
+
+Mitunter reichen diese Befehle nicht aus. Sollten sie nur ab und zu
+einen anderen Befehle benutzen m\"ussen, dann sollten sie es per Hand
+machen, tritt die Situation allerdings h\"aufiger auf, dann sollten sie
+sich einen entsprechenden Befehl schaffen. Hier zun\"achst die
+M\"oglichkeit als solche Text in Formeln in einer anderen
+\index{Schrift!Art}Schriftart zu setzen.
+
+Am einfachsten erreichen sie das gew\"unschte Ziel, wenn sie den Befehl
+\index{zzzrm@{\tt\char92 rm}}`\verb|\rm|' verwenden. Die Eingaben von
+\index{zzzsqrt@{\tt\char92 sqrt}}
+\begin{verbatim}
+$$\sqrt{{\rm Var}(X)}$$
+$$x_{\rm max}-x_{\rm min}$$
+\end{verbatim}
+f\"uhren zu dem Ergebnis
+$$\sqrt{{\rm Var}(X)}$$
+und
+$$x_{\rm max}-x_{\rm min}$$
+Denken sie allerdings daran, da\ss{} sie \index{Leer!Zeichen}
+Leerzeichen in derartigen Texten
+mit der \index{Kontrollsequenz}
+Kontrollsequenz `\verb*|\ |' schreiben, da sie sonst ignoriert
+w\"urden. Es geht auch mit dem Befehle \index{Box!Hbox}
+`\verb|\hbox|', aber Achtung, es k\"onnen \index{Fehler!Bei Hbox}Fehler auftreten.
+\index{Groesse!Schrift@Gr\"o\ss{}e!Schrift}\index{Schrift!Groesse@Schrift!Gr\"o\ss{}e}
+\index{Schrift!Art}
+\begin{enumerate}
+\item Wenn sie den {\tt\char92 hbox} Befehl verwenden, wird die
+Schriftgr\"o\ss{}e nicht ge\"andert. Die \index{Eingabe}Eingabe von {\tt\char36
+x\char95\char123\char92 hbox\char123 min\char125\char125\char36}
+ergibt die \index{Ausgabe}Ausgabe: $x_{\hbox{min}}$.
+\item Es ist nicht unbedingt sichergestellt, da\ss{} sie auch wirklich die
+Schriftart erreichen, die sie haben wollen. Der Text in der
+{\tt\char92 hbox} wird in der Schrift gesetzt, die au\ss{}erhalb der
+Formel g\"ultig ist. Wenn sie also z.B.\ die Schriftart \index{Boldface}Boldface
+benutzen, dann w\"urde auch ihr Text in Boldface gesetzt.
+\end{enumerate}
+\subsubsection{Moduln}
+F\"ur Modulnangaben existieren zwei \index{Kontrollsequenz}
+Kontrollsequenzen. Einmal der Befehl
+\index{zzzbmod@{\tt\char92 bmod}}`\verb|\bmod|', der wie ein bin\"arer
+\index{Operator!Binaer@Operator!Bin\"ar}Operator gesetzt wird und
+innerhalb von Formeln verwendet werden sollte, und andererseits der
+Befehl \index{zzzpmod@{\tt\char92 pmod}}
+`\verb|\pmod|', der am Ende von Formeln verwendet werden
+sollte, der wie eine \index{Klammer!Bei Moduln}
+Klammer gesetzt wird. Der Befehl `\verb|\pmod|'
+setzt \"ubrigens eigene Klammern, die Eingabe von
+\begin{verbatim}
+$$x\equiv y+1\pmod{m^2}$$
+\end{verbatim}
+ergibt
+$$x\equiv y+1\pmod{m^2}$$
+\subsubsection{\"Andern der Schriftart}
+\"Anderungen der Schriftart durch die normalen Befehle wirkt sich nur
+auf die normalen Buchstaben, die \index{Griechische Buchstaben}
+griechischen \index{Grossbuchstaben@Gro\ss{}buchstaben}Gro\ss{}buchstaben und die
+\index{Akzent!mathematische}
+Akzente aus. Die \index{Dollarzeichen}
+Dollarzeichen, die eine Formel umschlie\ss{}en wirken
+dabei wie eine \index{Gruppe!Formel}
+Gruppenklammer, so da\ss{} die Schriftart\"anderung lokal bleibt.
+
+\index{zzzphi@{\tt\char92 phi}}
+{\tt\char36\char92 bf a+b=\char92 Phi\char95 m\char36} ergibt $\bf
+a+b=\Phi_m$
+
+Neben den \"ublichen Umschaltbefehlen existiert im mathematischen Modus
+auch Befehl
+\index{zzzcal@{\tt\char92 cal}}`\verb|\cal|', der \index{Kalligraphie}
+kalligraphische Buchstaben erzeugt,
+allerdings {\em nur} \index{Grossbuchstaben@Gro\ss{}buchstaben}
+Gro\ss{}buchstaben. Die Angabe von `\verb|$\cal A$|'
+ergibt $\cal A$.
+
+Ein weiterer Befehl ist \index{zzzmit@{\tt\char92 mit}}
+`\verb|\mit|', der f\"ur \index{Italic}``mathematisches
+Italic'' steht. Mit diesem Befehle werden auch die griechischen
+\index{Grossbuchstaben@Gro\ss{}buchstaben}
+Gro\ss{}buchstaben in \index{Italic}Italic ausgegeben. Auf die normalen Buchstaben hat
+dieser Befehl keinen Einflu\ss{}, genau, wie der Befehl
+\index{zzzrm@{\tt\char92 rm}}`\verb|\rm|' auf
+die griechischen Gro\ss{}buchstaben keinen Einflu\ss{} hat. Worin besteht nun
+der Unterschied zwischen mathematischem Italic und normalem Italic, am
+besten zeigt das ein Beispiel
+
+\medskip\begin{tabular}{ll}
+{\tt\char36 Dies\char92\ ist\char92\ mathematisches\char92\
+Italic\char36} & $Dies\ ist\ mathematisches\ Italic$\\
+{\tt\char123\char92 it Das ist Text Italic\char125} & {\it Das ist
+Text Italic}
+\end{tabular}\medskip
+
+Die mathematischen Buchstaben sind etwas breiter und sie werden mit
+anderem \index{Leer!Raum}Leerraum gesetzt.
+\subsection{Platz zwischen Formeln}
+Mitunter sollen, vor allem in \index{Formel!abgesetzte}
+abgesetzten Formeln, mehr als eine
+Formel gesetzt werden, die voneinander durch etwas Platz getrennt
+werden sollen. Der normale \index{Abstand!In Formeln}
+Abstand hilft hier nicht weiter. Der
+Formelsatz
+$$F_n=F_{n-1}+F_{n-2},n\ge2$$
+ist nicht gerade das, was man erwarten w\"urde. Grunds\"atzlich ist es
+empfehlenswert derartige Formeln durch Text zu trennen, also
+$$F_n=F_{n-1}+F_{n-2},{\rm\ wenn\ }n\ge2$$
+es geht aber auch mit \index{Zwischenraum}
+Zwischenraum, wenn man sie einer der beiden
+Befehle \index{zzzquad@{\tt\char92 quad}}
+`\verb|\quad|' oder \index{zzzqquad@{\tt\char92 qquad}}
+`\verb|\qquad|' bedient. Der Befehl
+`\verb|\quad|' schafft etwas den Platz eines em, der andere Befehl
+etwa das \index{Doppelt!Platz}doppelte. Die Formel
+\begin{verbatim}
+$$F_n=F_{n-1}+F_{n-2},\qquad n\ge2$$
+\end{verbatim}
+sieht dann so aus
+$$F_n=F_{n-1}+F_{n-2},\qquad n\ge2$$
+Derartigen Platz m\"ussen sie immer explizit mit solchen Befehlen
+angeben.
+\subsection{Platz {\em in} Formeln}
+Meist ist die Positionierung von Formelteilen in einer Formel
+hinreichend gut. Es kann aber vorkommen, da\ss{} die Vorgabe von \TeX\
+doch nicht ganz den Erwartungen entspricht. Es w\"are unsinnig mit den
+Befehlen `\verb|\quad|', \index{zzzqquad@{\tt\char92 qquad}}
+`\verb|\qquad|' oder `\verb*|\ |' Platz zu
+schaffen, da diese Befehle viel zu gro\ss{}e \index{Zwischenraum}
+Zwischenr\"aume schaffen. In
+Formeln werden von \TeX\ drei verschiedene Abst\"ande benutzt. Ein
+gro\ss{}er \index{Abstand!Gleichheitszeichen}
+Abstand wird rechts und links von Gleichheitszeichen verwendet
+($2=3-1$), mittleren \index{Abstand!Binaere Zeichen@Abstand!Bin\"are Zeichen}
+Abstand w\"ahlt \TeX\ vor und hinter bin\"aren
+Zeichen, wie dem \index{Minuszeichen}
+Minuszeichen, der kleinste Abstand ist noch kleiner,
+er macht gerade den Unterschied zwischen `${\rm loglog}$' und `${\rm
+log\, log}$' aus.
+
+Sie k\"onnen diese \index{Zwischenraum}
+Zwischenr\"aume auch selber in Formeln schreiben, wenn
+sie die Befehle
+
+\medskip\begin{tabular}{ll}
+{\tt\char92 ,} & Kleiner Zwischenraum ($1/6$ eines quad)\\
+{\tt\char92\char62} & Mittlerer Zwischenraum ($2/9$ eines quad)\\
+{\tt\char92 ;} & Gro\ss{}er Zwischenraum ($5/18$ eines quad)\\
+{\tt\char92 !} & negativer kleiner Zwischenraum
+\end{tabular}\medskip
+
+Die Gr\"o\ss{}enangaben sind nur im Normalfall richtig, da die Abst\"ande in
+\index{Muglue}{\em muglue} definiert sind. Die Bezeichnung \index{Leim}
+{\em glue}=Leim, kennen
+wir bereits, die Vorsilbe {\em mu} bedeutet `mathematic units'. $18$
+mu machen ein em aus, je nach aktueller Schriftart \"andern sich also
+auch die Abst\"ande. Die \index{Definition}
+Definition der Abst\"ande lautet
+\index{zzzmedmuskip@{\tt\char92 medmuskip}}
+\index{zzzthickmuskip@{\tt\char92 thickmuskip}}
+\index{zzzthinmuskip@{\tt\char92 thinmuskip}}
+\begin{verbatim}
+\thinmuskip = 3mu
+\medmuskip = 4mu plus 2mu minus 4mu
+\thickmuskip = 5mu plus 5mu
+\end{verbatim}
+Sie k\"onnen den Platz, den sie in eine Formel zus\"atzlich hineinbringen
+wollen auch sofort in \index{Muglue}muglue angeben, dazu dient der Befehl
+\index{zzzmuskip@{\tt\char92 muskip}}
+`\verb|\muskip|', der wie der {\tt hskip} Befehl arbeitet, allerdings
+verlangt er als \index{Argument!Bei Muskip}Argument {\em immer} mu's.
+\subsubsection{Beispiele der Anwendung}
+Als erstes Beispiel dient der $dx$ Ausdruck am Ende eines
+\index{Integral}Integrals.
+Normalerweise w\"urde er zu nahe an den Inhalt des Integrals gesetzt.
+
+\index{zzzinfty@{\tt\char92 infty}}\index{zzzint@{\tt\char92 int}}
+\medskip\begin{tabular}{ll}
+{\tt\char26\char92 int\char95 0\char94\char92 infty f(x)\char92
+,dx\char36} & $\int_0^\infty f(x)\,dx$\\
+{\tt\char36 x\char92 ,dy/dx\char36} & $x\,dx/dy$
+\end{tabular}\medskip
+
+Im letzten Beispiel ist der Befehl vor dem $dy$ nat\"urlich \"uberfl\"u\ss{}ig.
+Auch \index{Einheit!Mass@Einheit!Ma\ss{}}
+Einheiten sollten derartig abgesetzt werden
+
+\medskip\begin{tabular}{ll}
+{\tt\char36 55\char92 rm\char92 ,km/h\char36} & $55\rm\, km/h$\\
+{\tt\char36 g=9,8\char92 rm\char92 ,m/sec\char94 2\char36} &
+$g=9,8\rm\, m/sec^2$
+\end{tabular}\medskip
+
+Auch hinter \index{Fakultaet@Fakult\"at}
+Fakult\"atszeichen, hinter denen noch etwas folgt, sollten
+sie etwas zus\"atzlichen \index{Zwischenraum}Zwischenraum setzen
+
+\medskip\begin{tabular}{ll}
+{\tt\char36 3!\char92 ,4!\char92 ,5!\char36} & $3!\,4!\,5!$
+\end{tabular}\medskip
+
+Weitere Beispiele sehen sie nun
+\index{zzzbigl@{\tt\char92 bigl}}\index{zzzbigr@{\tt\char92 bigr}}
+\index{zzzint@{\tt\char92 int}}
+
+\medskip\begin{tabular}{ll}
+{\tt\char36\char92 sqrt2\char92 ,x\char36} & $\sqrt2\,x$\\
+{\tt\char36\char92 sqrt\char123\char92 ,\char92 log x\char125\char36}
+& $\sqrt{\,\log x}$\\
+{\tt\char36 O\char92 bigl(1/\char92 sqrt\ n\char92 ,\char92
+bigr)\char36} & $O\bigl(1/\sqrt n\,\bigr)$\\
+{\tt\char36\char91\char92 ,0,1)\char36} & $[\,0,1)$\\
+{\tt\char36\char36\char92 int\char92 !\char92 !\char92 !\char92
+int\char95 D dx\char92 ,dy\char36\char36} &
+$\displaystyle{\int\!\!\!\int_D dx\,dy}$
+\end{tabular}\medskip
+
+In der folgenden Tabelle werden alle \index{Zwischenraum}
+Zwischenr\"aume erkl\"art, die \TeX\
+automatisch zwischen \index{Atom!Einer Formel}
+Formelatomen setzt. Dabei stellen $0$, $1$, $2$
+und~$3$ keinen, kleinen, mittleren und gro\ss{}en Zwischenraum dar. Die
+Angaben stehen in Klammern, wenn der Zwischenraum nur im
+\index{Display!Stil}Display- und
+im Textstil gesetzt wird und sonst nicht. Wenn ein Stern in der
+Tabelle auftaucht, dann ist damit eine Situation gemeint, die nie
+auftreten kann.
+
+\medskip\begin{scriptsize}
+\begin{tabular}{lc}
+ & Rechtes Atom \\
+\begin{tabular}{ll}
+ & \strut \\
+ & \strut Ord \\
+ & \strut Op \\
+ & \strut Bin \\
+Linkes & \strut Rel \\
+Atom & \strut Open \\
+ & \strut Close \\
+ & \strut Punct \\
+ & \strut Inner
+\end{tabular} & \fbox{
+\begin{tabular}{cccccccc}
+Ord & Op & Bin & Rel & Open & Close & Punct & Inner \\
+0 & 1 & (2) & (3) & 0 & 0 & 0 & (1) \\
+1 & 1 & $*$ & (3) & 0 & 0 & 0 & (1) \\
+(2) & (2) & $*$ & $*$ & (2) & $*$ & $*$ & (2) \\
+(3) & (3) & $*$ & 0 & (3) & 0 & 0 & (3) \\
+0 & 0 & $*$ & 0 & 0 & 0 & 0 & 0 \\
+0 & 1 & (2) & (3) & 0 & 0 & 0 & (1) \\
+(1) & (1) & $*$ & (1) & (1) & (1) & (1) & (1) \\
+(1) & 1 & (2) & (3) & (1) & 0 & (1) & (1)
+\end{tabular}}
+\end{tabular}
+\end{scriptsize}\medskip
+
+Die Regeln von \TeX\ sind manchmal etwas \index{Fehler!Der Regeln}
+fehlerhaft, besonders, wenn
+`\verb+|+' und `\verb+\|+' in einer Formel auftreten, da die Zeichen
+$|$ und $\|$ als normale Symbole und nicht als \index{Klammer!Fehler}
+Klammern aufgefa\ss{}t werden.
+
+\medskip\begin{tabular}{ll}
+{\em Eingabe} & {\em Ausgabe}\\
+{\tt\char36\char124 -x\char124=\char124 +x\char124\char36} &
+$|-x|=|+x|$\\
+{\tt\char36\char92 left\char124 -x\char92 right\char124 =\char92
+left\char124 +x\char92 right\char124\char36} &
+$\left|-x\right|=\left|+x\right|$\\
+\end{tabular}\medskip
+
+\subsection{Punkte}
+\index{Mathematik}
+Mathematiker brauchen \"ofters Punkte in ihren Formeln, um weitergehende
+Folgen von Elementen anzuzeigen. Die Eingabe von `\verb|$x...y$|'
+f\"uhrt zu dem unsch\"onen Ergebnis $x...y$. \TeX\ bietet statt dessen die
+Befehle \index{zzzldots@{\tt\char92 ldots}}
+`\verb|\ldots|' und \index{zzzcdots@{\tt\char92 cdots}}
+`\verb|\cdots|' an, die drei Punkte auf
+der \index{Linie!Basis}
+Basislinie, resp.\ etwas dar\"uber setzen. Der erste Fall bietet
+sich bei Elementen an, die durch \index{Komma}Kommata getrennt sind, z.B.\
+$x_1,\ldots,x_n$, der zweite Befehl dient der Darstellung von
+Elementen, die per Operation verkn\"upft sind, wie $x_1+\cdots+x_n$. Sie
+sollten allerdings daran denken, da\ss{} diese Befehle nicht gen\"ugend
+\index{Leer!Raum}
+Leerraum lassen, speziell am Ende einer Formel, oder vor Klammern. Um
+das korrekte Ergebnis
+$$(1-x)^{-1}=1+x+x^2+\cdots\,.$$
+zu erhalten, mu\ss{} man
+\index{zzzcdots@{\tt\char92 cdots}}
+\begin{verbatim}
+$$(1-x)^{-1}=1+x+x^2+\cdots\,.$$
+\end{verbatim}
+eingeben. Da dieser Fall oft vorkommt, bietet \TeX\ f\"ur die
+Befehlsfolge \index{zzzldots@{\tt\char92 ldots}}
+`\verb|\ldots\,|' die einfache \index{Abkuerzung@Abk\"urzung}
+Abk\"urzung \index{zzzdots@{\tt\char92 dots}}`\verb|\dots|'
+an.
+
+\subsection{Zeilenumbr\"uche}
+Auch mathematische Formeln k\"onnen in Zeilen umgebrochen werden. \TeX\
+trennt dabei nur nach einer \index{Relation}
+Relation oder einem bin\"aren Symbol,
+solange diese nicht in einer Gruppe oder einem \index{Bruch}
+Bruch stehen. Die Formel
+\begin{verbatim}
+$f(x,y) = x^2-y^2 = (x+y)(x-y)$
+\end{verbatim}
+wird vorzugsweise bei den \index{Gleichheitszeichen}
+Gleichheitszeichen umgebrochen, wenn das
+nicht geht, eventuell auch noch nach dem Plus- bzw.\
+\index{Minuszeichen}Minuszeichen. Wenn
+man erreichen will, da\ss{} {\em nur} bei den Gleichheitszeichen
+umgebrochen werden kann, dann mu\ss{} man die Formel als
+\begin{verbatim}
+$f(x,y) = {x^2-y^2} = {(x+y)(x-y)}$
+\end{verbatim}
+schreiben. Man kann in Formeln einen \"ahnlichen Befehl wie den
+`\verb|\-|' Befehl benutzen, er lautet `\verb|\*|', allerdings
+schreibt \TeX\ im Trennungsfall keinen \index{Bindestrich}
+Bindestrich, sondern ein
+\index{Multiplikation!Symbol}\index{zzztimes@{\tt\char92 times}}
+Multiplikationssymbol ($\times$). Ebenso kann man, au\ss{}erhalb einer
+Gruppierung, auch den Befehl \index{zzzallowbreak@{\tt\char92 allowbreak}}
+`\verb|\allowbreak|' verwenden, um \TeX\
+einen Hinweis zu geben, wo am besten umgebrochen wird.
+
+Die \index{Strafe!Zeile!Formel}
+Strafen f\"ur Zeilenumbr\"uche in Formeln sind
+
+\medskip\begin{tabular}{llp{8cm}}
+{\em Befehl} & {\em Strafe} & {\em Bedeutung} \\
+{\tt\char92 relpenalty} & 500 & Umbruch nach einem Rel-Atom\\
+{\tt\char92 binoppenalty} & 700 & Umbruch nach einem Bin-Atom\\
+\end{tabular}\medskip\index{Atom}
+
+Sie k\"onnen auch jederzeit in einer Formel die Strafe mit dem Befehl
+\index{zzzpenalty@{\tt\char92 penalty}}
+`\verb|\penalty<Nummer>|' selber angeben. Auch der Befehl
+\index{zzznobreak@{\tt\char92 nobreak}}`\verb|\nobreak|' ist erlaubt.
+
+\subsection{Geschweifte Klammern}\index{Klammer!Geschweifte}
+Geschweifte Klammern werden in der \index{Mathematik}
+Mathematik z.B.\ ben\"otigt, um
+Mengen darzustellen. Bei einfachen Mengendarstellungen ist das auch
+problemlos m\"oglich, denken sie nur daran, da\ss{} sie die geschweiften
+Klammern mit den Befehlen `\verb|\{|' und `\verb|\}|' schreiben. Somit
+ergibt `\verb|$\{a,b,c\}$|' das gew\"unschte Resultat $\{a,b,c\}$. Etwas
+anders sieht es aus, wenn die Mengendarstellungen komplizierter
+werden. Um die korrekte Abst\"ande in der Angabe
+$$\{\,x\mid x>5\,\}$$
+zu erreichen, m\"ussen sie
+\begin{verbatim}
+$$\{\,x\mid x>5\,\}$$
+\end{verbatim}
+eingeben. Noch etwas schwieriger wird die Sache, wenn die Klammern
+gr\"o\ss{}er werden. Die \index{Ausgabe}Ausgabe
+\index{zzzbigl@{\tt\char92 bigl}}\index{zzzbigm@{\tt\char92 bigm}}
+\index{zzzbigr@{\tt\char92 bigr}}
+$$\bigl\{\,\bigl(x,f(x)\bigr)\bigm|x\in D\,\bigr\}$$
+wurde mit der Anweisung
+\begin{verbatim}
+$$\bigl\{\,\bigl(x,f(x)\bigr)\bigm|x\in D\,\bigr\}$$
+\end{verbatim}
+erreicht.
+
+Ein anderes Beispiel, in dem geschweifte Klammern ben\"otigt werden ist
+die Auswahl aus verschiedenen Alternativen. Mit
+\index{zzzcases@{\tt\char92 cases}}
+\begin{verbatim}
+$$|x|=\cases{x,&wenn$x\ge0$;\cr -x,&anderenfalls.\cr}$$
+\end{verbatim}
+erreichen sie das Ergebnis
+$$|x|=\cases{x,&wenn$x\ge0$;\cr -x,&anderenfalls.\cr}$$
+Sie sehen hier erstmals die Verwendung des
+`\verb|&|'-Zeichens.\footnote{Dieses Zeichen wird in
+\index{Tabelle!Zeichen}Tabellen
+verwendet. Da es sich hier um etwas \"ahnliches handelt, ist die
+Verwendung dieses Zeichens hier notwendig. Auch die andern, in einer
+Tabelle erlaubten Befehle sind hier erlaubt.} Mit dem Zeichen werden
+zwei Spalten hinter der \"offnenden geschweiften Klammer, die von dem
+Befehl automatisch eingesetzt wird, getrennt. Alles {\em vor} diesem
+Zeichen wird automatisch in `\verb|$|' gesetzt, steht also im
+mathematischen Modus. Alles hinter diesem Zeichen wird als normaler
+Text behandelt. Die Zeilen, die schlie\ss{}lich die Auswahl erst
+ausmachen, werden durch den Befehl `\verb|\cr|' getrennt. Es sind
+\"ubrigens beliebig viele Zeilen m\"oglich.
+
+Schlie\ss{}lich gibt es noch geschweifte \index{Klammer!Geschweifte, unter
+Formeln}Klammern \"uber, bzw.\ unter
+Formeln. Diese werden mit den Befehlen
+\index{zzzoverbrace@{\tt\char92 overbrace}}`\verb|\overbrace|' und
+\index{zzzunderbrace@{\tt\char92 underbrace}}
+`\verb|\underbrace|' erreicht. Da diese Befehle wie gro\ss{}e Symbole
+behandelt werden, ist es m\"oglich noch {\em Grenzen} anzugeben.
+\index{zzzcdots@{\tt\char92 cdots}}\index{zzzoverbrace@{\tt\char92 overbrace}}
+\begin{verbatim}
+$$\overbrace{x+\cdots+x}^{k\rm\;mal}$$
+$$\underbrace{x+y+z}_{>\,0}$$
+\end{verbatim}
+ergeben
+$$\overbrace{x+\cdots+x}^{k\rm\;mal}$$
+$$\underbrace{x+y+z}_{>\,0}$$
+
+\subsection{Matrizen}
+Eine weitere Anwendung, die einer Tabelle sehr \"ahnlich ist, sind die
+Matrizen. Da auch sie \"ofter vorkommen, bietet \TeX\ einige Befehle zur
+Konstruktion dieser Matrizen. Die \index{Matrix}Matrix
+\index{zzzmatrix@{\tt\char92 matrix}}
+\index{zzzlambda@{\tt\char92 lambda}}
+$$A=\left(\matrix{x-\lambda&1&0\cr
+ 0&x-\lambda&1\cr
+ 0&0&x-\lambda\cr}\right)$$
+wurde mit
+\begin{verbatim}
+$$A=\left(\matrix{x-\lambda&1&0\cr
+ 0&x-\lambda&1\cr
+ 0&0&x-\lambda\cr}\right)$$
+\end{verbatim}
+gesetzt. Es werden wieder die `\verb|&|' Zeichen ben\"otigt, um die
+\index{Spalte!Tabelle}
+Spalten, und die `\verb|\cr|' Befehle ben\"otigt, um die Zeilen zu
+trennen. \TeX\ setzt die Matrize nicht automatisch in
+\index{Klammer!Matrix}Klammern, da
+aber Matrizen meist in runde Klammern gesetzt werden, gibt es den
+Befehl \index{zzzpmatrix@{\tt\char92 pmatrix}}
+`\verb|\pmatrix|', der dann die Klammern automatisch setzt.
+
+Die einzelnen Eintr\"age der \index{Matrix}
+Matrix werden normalerweise \index{Zentrierung}zentriert, und
+durch ein quad getrennt, man kann die Ausrichtung aber durch
+\index{zzzhfill@{\tt\char92 hfill}}
+`\verb|\hfill|' Befehle \"andern. Die Eintr\"age werden einzeln gesetzt,
+man sollte also nicht versuchen zwei Eintr\"age in eine Gruppenklammer
+zu setzen.
+
+Vielfach werden Matrizen nicht ganz ausgeschrieben. Neben den
+\index{Punkt}
+Punktbefehlen, die weiter oben beschrieben wurden, gibt es noch die
+Befehle \index{zzzvdots@{\tt\char92 vdots}}
+`\verb|\vdots|' f\"ur vertikale und `\verb|\ddots|' f\"ur
+diagonale \index{Punkt}Punkte.\index{zzzddots@{\tt\char92 ddots}}
+$$A=\pmatrix{a_{11}&a_{12}&\ldots&a_{1n}\cr
+ a_{21}&a_{22}&\ldots&a_{2n}\cr
+ \vdots&\vdots&\ddots&\vdots\cr
+ a_{m1}&a_{m2}&\ldots&a_{mn}\cr}$$
+erreicht man durch
+\begin{verbatim}
+$$A=\pmatrix{a_{11}&a_{12}&\ldots&a_{1n}\cr
+ a_{21}&a_{22}&\ldots&a_{2n}\cr
+ \vdots&\vdots&\ddots&\vdots\cr
+ a_{m1}&a_{m2}&\ldots&a_{mn}\cr}$$
+\end{verbatim}
+
+Neben den normalen Matrizen kennt \TeX\ noch eine Sonderform, bei der
+Zeilen und \index{Spalte!Matrix}Spalten der \index{Matrix}
+Matrix beschriftet werden. Der entsprechende
+Befehl hei\ss{}t \index{zzzbordermatrix@{\tt\char92 bordermatrix}}
+`\verb|\bordermatrix|' und sieht in der Anwendung
+folgenderma\ss{}en aus.
+$$M=\bordermatrix{&C&I&C'\cr C&1&0&0\cr I&b&1-b&0\cr C'&0&a&1-a\cr}$$
+wird realisiert durch
+\begin{verbatim}
+$$M=\bordermatrix{&C&I&C'\cr C&1&0&0\cr I&b&1-b&0\cr C'&0&a&1-a\cr}$$
+\end{verbatim}
+Jeweils die erste Zeile und die erste \index{Spalte!Matrix}
+Spalte der \index{Matrix}
+Matrix werden dann
+nicht \index{Klammer!Bordermatrix}
+geklammert. Beachten sie, da\ss{} der erste Spalteneintrag der
+ersten Zeile leer ist, was durchaus erlaubt ist, und das die Klammern
+wieder automatisch gesetzt wurden.
+
+Wenn sie in einer Textformel Matrizen schreiben wollen, dann sollten
+sie sie anders konstruieren, da die \index{Matrix}
+Matrixbefehle zu gro\ss{}e Matrizen\index{zzzchoose@{\tt\char92 choose}}
+erzeugen. $1\,0\choose0\,1$ erzeugt man z.B.\ mit
+\begin{verbatim}
+$1\,0\choose0\,1$|
+\end{verbatim}
+und eine \index{Matrix}Matrix wie
+\index{zzzatop@{\tt\char92 atop}}\index{zzzbigl@{\tt\char92 bigl}}
+\index{zzzbigr@{\tt\char92 bigr}}
+$\bigl({a\atop l}{b\atop m}{c\atop n}\bigr)$ erzeugt man durch die
+Befehle
+\begin{verbatim}
+$\bigl({a\atop l}{b\atop m}{c\atop n}\bigr)$
+\end{verbatim}
+\subsection{Vertikaler Leerraum}
+Wir haben schon einige Befehle kennengelernt, die es erlauben die
+\index{Hoehe!Formel@H\"ohe!Formel}H\"ohe
+einer Formel so zu ver\"andern, da\ss{} sie anders als normal gesetzt wird.
+Dazu geh\"oren die Befehle
+\index{zzzstrut@{\tt\char92 strut}}
+`\verb|\strut|' und \index{zzzmathstrut@{\tt\char92 mathstrut}}
+`\verb|\mathstrut|'. Es
+gibt aber noch andere M\"oglichkeiten. Als erstes den Befehl
+\index{zzzphantom@{\tt\char92 phantom}}
+\begin{verbatim}
+\phantom{<Teilformel>}
+\end{verbatim}
+\TeX\ belegt bei Benutzung dieses Befehls zwar den Platz, den die
+Teilformel einnehmen w\"urde, gibt die Formel selber aber nicht aus. Die
+Angabe von `\verb|\phantom{0}2|' w\"urde als Ergebnis nur die Zwei
+liefern, aber den Platz von der Null und der Zwei beanspruchen. Wenn
+sie also z.B.\ ein Symbol in der
+\index{Groesse!Summenzeichen@Gr\"o\ss{}e!Summenzeichen}
+Gr\"o\ss{}e eines \index{Summe!Zeichen}Summenzeichens selber
+sp\"ater per Hand einf\"ugen wollen, dann schreiben sie
+\index{zzzmathop@{\tt\char92 mathop}}
+\index{zzzphantom@{\tt\char92 phantom}}
+\index{zzzsum@{\tt\char92 sum}}
+\begin{verbatim}
+\mathop{\phantom\sum}
+\end{verbatim}
+Der `\verb|\mathop|' Befehl sorgt daf\"ur, das der Platz wie f\"ur ein
+gro\ss{}es Symbol gesetzt wird.
+
+Weiterhin gibt es die beiden \index{Subbefehl}
+Subbefehle \index{zzzhphantom@{\tt\char92 hphantom}}`\verb|\hphantom|' und
+\index{zzzvphantom@{\tt\char92 vphantom}}
+`\verb|\vphantom|'. Bei der ersten Variante wird die Breite der
+nachfolgenden Teilformel freigehalten, \index{Hoehe!Formel@H\"ohe!Formel}
+H\"ohe und Tiefe sind aber Null,
+bei der zweiten Alternative, wird die H\"ohe und die Tiefe der
+Teilformel freigehalten, die Breite aber ist Null. Der
+\index{zzzmathstrut@{\tt\char92 mathstrut}}
+`\verb|\mathstrut|' Befehl wird einfach mit
+\begin{verbatim}
+\vphantom(
+\end{verbatim}
+erzeugt.
+
+{\em Plain} \TeX\ kennt noch den Befehl
+\index{zzzsmash@{\tt\char92 smash}}`\verb|\smash{<Teilformel>}|', der
+zwar die Teilformel ganz normal ausgibt, aber die H\"ohe und die Tiefe
+der \index{Ausgabe}
+Ausgabe auf Null setzt. Somit ist es m\"oglich jeder Ausgabe jede
+beliebige H\"ohe und Tiefe zu geben. Mit
+\index{zzzliminf@{\tt\char92 liminf}}\index{zzzlimsup@{\tt\char92 limsup}}
+\index{zzzmathop@{\tt\char92 mathop}}
+\index{zzzsmash@{\tt\char92 smash}}
+\index{zzzvphantom@{\tt\char92 vphantom}}
+\begin{verbatim}
+\mathop{\smash\limsup\vphantom\liminf}
+\end{verbatim}
+wird das gro\ss{}e Symbol `$\limsup$' ausgegeben, allerdings mit den
+H\"ohenabmessungen von `$\liminf$', also mit der Tiefe Null.
+
+Mit den \index{Box!Befehle}
+Boxbefehlen \index{zzzraise@{\tt\char92 raise}}
+`\verb|\raise|' und \index{zzzlower@{\tt\char92 lower}}
+`\verb|\lower|' k\"onnen
+Teilformeln auch noch h\"oher oder tiefergestellt werden. Mit der
+Eingabe
+\index{zzzscriptstyle@{\tt\char92 scriptstyle}}
+\begin{verbatim}
+$2^{\raise1pt\hbox{$\scriptstyle n$}}$
+\end{verbatim}
+erreicht man, da\ss{} der \index{Exponent}Exponent um ein pt h\"oher gesetzt wird, als
+normal, also $2^{\raise1pt\hbox{$\scriptstyle n$}}$ statt $2^n$. Der
+Befehl `\verb|\scriptstyle|' ist n\"otig, da normlerweise in einer hbox
+die \index{Schrift!Art}
+Schriftart gew\"ahlt wird, die die mathematische Umgebung umgibt.
+
+\subsection{Spezielle Befehle f\"ur besondere Aufgaben}
+\subsubsection{\tt\char92 nonscript}
+Folgt dem Befehl \index{zzznonscript@{\tt\char92 nonscript}}
+`\verb|\nonscript|' unmittelbar etwas \index{Leim}
+Leim, oder ein
+Kern, dann wird dieser nicht entsprechend dem Script- oder
+\index{Stil!Scriptscript}
+Scriptscriptstil ausgegeben, sondern in der f\"ur den Text- oder
+\index{Display!Stil}
+Displaystil vorgegebenen Gr\"o\ss{}e. Der Befehl `\verb|\nonscript\;|'
+erzeugt also genau den \index{Zwischenraum}
+Zwischenraum, der in obiger Tabelle mit $(3)$
+angegeben ist.
+\subsubsection{\tt\char92 every...}
+Mit den beiden Befehlen \index{zzzeverymath@{\tt\char92 everymath}}
+`\verb|\everymath|' und
+\index{zzzeverydisplay@{\tt\char92 everydisplay}}`\verb|\everydisplay|'
+kann jeder mathematishcen Umgebung, Textformel, bzw.\
+\index{Formel!abgesetzte}abgesetzte
+Formel eine Befehlsgruppe \"ubergeben werden. Die Befehle entsprechen
+somit dem Befehl \index{zzzeverypar@{\tt\char92 everypar}}
+`\verb|\everypar|' f\"ur Abs\"atze.
+\section{Abgesetzte Formeln}
+\subsection{Einzeilige Formeln}
+Wie abgesetzt Formeln aufgerufen werden, d\"urfte bis hier schon klar
+sein, auch, wie man normalen Text in eine derartige Formel schreibt.
+Wir haben auch schon gesehen, wie man mehr als eine Formel in eine
+derartige Zeile schreibt. Hier jetzt noch einmal ein zusammenfassendes
+Beispiel. Die Eingabe von
+\index{zzzqquad@{\tt\char92 qquad}}
+\begin{verbatim}
+$$X_n=X_k\qquad\hbox{wenn, und nur wenn}\qquad
+ Y_n=Y_k\quad\hbox{und}\quad Z_n=Z_k$$
+\end{verbatim}
+erzeugt
+$$X_n=X_k\qquad\hbox{wenn, und nur wenn}\qquad
+ Y_n=Y_k\quad\hbox{und}\quad Z_n=Z_k$$
+Achten sie auf die unterschiedlichen \index{Zwischenraum}
+Zwischenr\"aume, bei dem {\em wenn,
+und nur wenn} und dem {\em und}. Wenn sie \index{Box!Hbox}
+hboxen in mathematischen
+Formeln verwenden, k\"onnen sie sich auch noch f\"ur eine andere Art des
+\index{Leer!Raum}
+Leerraums entscheiden. Beenden sie ihren Text in der hbox einfach mit
+einem \index{Leer!Zeichen}
+Leerzeichen, das erscheint dann in der Formel. Mit der Eingabe
+von
+\begin{verbatim}
+$$... \hbox{f\"ur alle }n\ge0$$
+\end{verbatim}
+bekommen sie
+$$\ldots\hbox{f\"ur alle }n\ge0$$
+
+Sie haben sich sicher schon gefragt, wie man in \TeX\ denn derartige
+abgesetzte Formeln nummerieren kann. Die L\"osung des Problems liegt in
+dem Befehl \index{zzzeqno@{\tt\char92 eqno}}`\verb|\eqno|'. Er wird
+\begin{verbatim}
+$$<Formel 1>\eqno<Formel 2>$$
+\end{verbatim}
+angewendet, und alles hinter dem Befehl wird als Formelnummer
+verwendet. Mit der Eingabe von
+\begin{verbatim}
+$$x^2-y^2=(x+y)(x-y)\eqno(15)$$
+\end{verbatim}
+erhalten sie
+$$x^2-y^2=(x+y)(x-y)\eqno(15)$$
+\"Ahnlich arbeitet der Befehl \index{zzzleqno@{\tt\char92 leqno}}
+`\verb|\leqno|', nur da\ss{} dann die
+Formelnummer links von der Formel erscheint, sie mu\ss{} trotzdem als {\em
+zweites} \index{Argument!Bei Formelnummern}Argument angegeben werden.
+\begin{verbatim}
+$$x^2-y^2=(x+y)(x-y)\leqno(16)$$
+\end{verbatim}
+erscheint also als
+$$x^2-y^2=(x+y)(x-y)\leqno(16)$$
+An den Beispielen k\"onnen sie auch sehen, da\ss{} die Formel unabh\"angig von
+den Formelnummern \index{Zentrierung}
+zentriert wird. Nur wenn die Formel so lang w\"are,
+da\ss{} sie bei der \index{Zentrierung}
+Zentrierung mit der Nummer in Ber\"uhrung k\"ame, w\"urde
+sie etwas zur Seite gesetzt. Wenn sie dann immer noch nicht pa\ss{}t, dann
+k\"onnen sie noch einen der folgenden Tricks verwenden. Setzen sie die
+Formelnummer in einen \index{zzzrlap@{\tt\char92 rlap}}
+`\verb|\rlap|' oder einen \index{zzzllap@{\tt\char92 llap}}
+`\verb|\llap|' Befehl,
+sie erscheint dann in einer eigenen Zeile.\footnote{Welchen der beiden
+Befehle sie verwenden m\"ussen ergibt sich daraus, nach welcher Seite
+die Formelnummer \"uberlappen mu\ss{}.}
+\index{zzzeqno@{\tt\char92 eqno}}
+\begin{verbatim}
+$$x^2-y^2=(x+y)(x-y)\eqno\llap{(17)}$$
+\end{verbatim}
+Erzeugt
+$$x^2-y^2=(x+y)(x-y)\eqno\llap{(17)}$$
+\subsection{Mehrzeilige Formeln}
+F\"ur mehrzeilige Formeln stellt \TeX\ einige n\"utzliche Befehle bereit.
+Der erste Befehl dieser Art ist der Befehl
+\index{zzzeqalign@{\tt\char92 eqalign}}`\verb|\eqalign|', der es
+mit einer \"ahnlichen Konstruktion wie schon bei
+\index{zzzmatrix@{\tt\char92 matrix}}
+`\verb|\matrix|' und
+\index{zzzcases@{\tt\char92 cases}}
+`\verb|\cases|' erlaubt, mehrere Formeln zu setzen. Der
+grunds\"atzliche Aufbau ist
+\index{zzzeqalign@{\tt\char92 eqalign}}
+\begin{verbatim}
+\eqalign{<linke Seite 1> & <rechte Seite 1> \cr
+ <linke Seite 2> & <rechte Seite 2> \cr
+ .
+ .
+ <linke Seite n> & <rechte Seite n>\cr}
+\end{verbatim}
+Dabei wird die linke Seite immer \index{Rechtsbuendig@Rechtsb\"undig}
+rechtsb\"undig, die rechte immer
+\index{Linksbuendig@Linksb\"undig}
+linksb\"undig gesetzt, so da\ss{} beide Teile eine gemeinsame Formel
+ergeben. Da h\"aufig \index{Gleichung}Gleichungen gesetzt werden m\"ussen, bietet sich
+dieses Befehlsformat an. Man kann z.B.\ das \index{Gleichheitszeichen}
+Gleichheitszeichen immer
+als erstes Zeichen der rechten Seite w\"ahlen, und erreicht damit, da\ss{}
+die Gleichheitszeichen genau \"ubereinander stehen.
+\index{zzzcdots@{\tt\char92 cdots}}\index{zzzeqalign@{\tt\char92 eqalign}}
+\begin{verbatim}
+$$\eqalign{X_1+\cdots+X_n&=m,\cr
+ Y_1+\cdots+Y_m&=n.\cr}$$
+\end{verbatim}
+Ergibt somit
+\begin{eqnarray*}
+X_1+\cdots+X_n & = & m,\\
+Y_1+\cdots+Y_m & = & n.
+\end{eqnarray*}
+Der Befehl erzeugt eine \index{Box!Gleichungen}Box, die vertikal
+\index{Zentrierung}zentriert wird, es k\"onnen
+also auch mehrere \index{Gleichung}
+Gleichungsketten nebeneinander dargestellt werden.
+\index{zzzalpha@{\tt\char92 alpha}}\index{zzzbeta@{\tt\char92 beta}}
+$$
+\left\{\begin{array}{r@{=}l}
+\displaystyle{\alpha} & \displaystyle{f(z)}\\
+\displaystyle{\beta} & \displaystyle{f(z^2)}\\
+\displaystyle{\gamma} & \displaystyle{f(z^3)}\end{array}
+\right\}\qquad\left\{
+\begin{array}{r@{=}l}
+\displaystyle{x} & \displaystyle{\alpha^2-\beta}\\
+\displaystyle{y} & \displaystyle{2\gamma}\end{array}\right\}.$$
+wurde mit
+\index{zzzeqalign@{\tt\char92 eqalign}}
+\begin{verbatim}
+$$\left\{\eqalign{
+\alpha&=f(z)\cr \beta&=f(z^2)\cr \gamma&=f(z^3)\cr}
+\right\}\qquad\left\{
+\eqalign{x&=\alpha^2-\beta\cr y&=2\gamma\cr}\right\}.$$
+\end{verbatim}
+erzeugt.
+
+Bei derartigen Folgen von \index{Gleichung}Gleichungen, aber auch bei anderen
+Konstruktionen, bei denen mehrere Formeln untereinander stehen, ist es
+mitunter w\"unschenswert die Zeilen zu gruppieren. Um etwas zus\"atzlichen
+Platz zwischen zwei Formeln zu erhalten, kann hinter einem `\verb|\cr|'
+der Befehl
+\index{zzznoalign@{\tt\char92 noalign}}
+\index{zzzvskip@{\tt\char92 vskip}}
+\begin{verbatim}
+\noalign{\vskip3pt}
+\end{verbatim}
+geschrieben werden, um 3pt mehr Platz zu erhalten. Statt 3pt kann
+nat\"urlich jede \index{Leim}
+Leimangabe stehen, die gerade gebraucht
+wird.\footnote{Es kann mit diesem Befehl alles m\"ogliche zwischen zwei
+Zeilen geschrieben werden, wie gleich in einem weiteren Beispiel zu
+sehen ist.}
+
+Um Zeilen in einer mehrzeiligen Umgebung nummerieren zu k\"onnen gibt es
+die zwei verwandten Befehle \index{zzzeqalignno@{\tt\char92 eqalignno}}
+`\verb|\eqalignno|' und \index{zzzleqalignno@{\tt\char92 leqalignno}}
+`\verb|\leqalignno|', wobei der
+zweite wieder nur die Formelnummer auf der linken Seite ausgibt. Wenn
+einzelne Zeilen nicht nummeriert werden sollen, dann braucht auch das
+`\verb|&|' nicht geschrieben zu werden. Die Eingabe von
+\index{zzzeqalignno@{\tt\char92 eqalignno}}
+\begin{verbatim}
+$$\eqalignno{(x+y)(x-y)&=x^2-xy+yx-y^2\cr
+ &=x^2-y^2;&(7.1)\cr
+ (x+y)^2&=x^2+2xy+y^2.&(7.2)\cr}$$
+\end{verbatim}
+ergibt
+\begin{eqnarray}
+(x+y)(x-y)&=&x^2-xy+yx-y^2\nonumber\\
+ &=&x^2-y^2;\\
+ (x+y)^2&=&x^2+2xy+y^2.\end{eqnarray}
+was auch zeigt, da\ss{} durchaus auch einzelne Teile der Formel ganz
+\index{Leer!Formel}leer
+bleiben k\"onnen.
+
+Es gibt noch einen wichtigen Unterschied zwischen den Befehlen, die
+eine Formelzeile ausgeben, und denen, die das nicht tun. Mit dem
+`\verb|\eqalignno|' Befehl werden Zeilen ausgegeben, die \"uber eine
+ganze Zeile gehen, mit dem
+\index{zzzeqalign@{\tt\char92 eqalign}}`\verb|\eqalign|' Befehl werden Boxen
+erzeugt, die nur ihre nat\"urliche Breite haben, und die vertikal
+\index{Zentrierung}
+zentriert werden. Daraus ergeben sich einige Konsequenzen:
+\begin{enumerate}
+\item Der {\tt\char92 eqalignno} Befehl kann nur {\em einmal} in einer
+Formel verwendet werden, der {\tt\char92 eqalign} Befehl, wie oben
+gezeigt, mehrfach.
+\item Die Zeilen, die aus einem {\tt\char92 eqalign} Befehl erzeugt
+wurden k\"onnen nicht zwischen zwei \index{Seite!Umbruch}
+Seiten umgebrochen werden, da dieser
+Befehl ja eine Box erzeugt. Der {\tt\char92 eqalignno} Befehl erzeugt
+dagegen einzelne Zeilen, die sehr wohl auf zwei Seiten aufgeteilt
+werden k\"onnen.
+\item Weiterhin k\"onnen die Zeilen, die mit dem
+\index{zzzeqalignno@{\tt\char92 eqalignno}}`\verb|\eqalignno|'
+Befehl angeordnet werden, durch Text unterbrochen werden, {\em ohne}
+da\ss{} die Ausrichtung dabei verloren geht. Eine Anordnung, wie
+\begin{eqnarray}
+x&=&y+z\\ \noalign{\hbox{und}}
+y^2+z^2&=&x^2\end{eqnarray}
+wird mit einem \index{zzznoalign@{\tt\char92 noalign}}
+`\verb|\noalign{\hbox{und}}|'
+hinter dem ersten `\verb|\cr|' erzeugt.
+\end{enumerate}
+
+Eine weitere M\"oglichkeit mehrere Zeilen untereinander zu schreiben,
+besteht in dem Befehl \index{zzzdisplaylines@{\tt\char92 displaylines}}
+`\verb|\displaylines|'. Das generelle Format
+dieses Befehls lautet
+\begin{verbatim}
+$$\displaylines{<erste Zeile>\cr
+ <zweite Zeile>\cr
+ .
+ .
+ <letzte Zeile>\cr}$$
+\end{verbatim}
+Die einzelnen Zeilen werden durch ein \index{zzzhfil@{\tt\char92 hfil}}
+`\verb|\hfil|'
+\index{Zentrierung}zentriert, was
+also durch ein \index{zzzhfill@{\tt\char92 hfill}}
+`\verb|\hfill|' \"uberschrieben werden kann. Mit
+\index{zzzdisplaylines@{\tt\char92 displaylines}}\index{zzzllap@{\tt\char92 llap}}
+\begin{verbatim}
+$$\displaylines{\hfill x\equiv x;\hfill\llap{(1)}\cr
+ \hfill\hbox{wenn}\quad x\equiv y\quad\hbox{dann}\quad
+ y\equiv x;\hfill\llap{(2)}\cr
+ \hfill\hbox{wenn}\quad x\equiv y\quad\hbox{und}\quad
+ y\equiv z\quad\hbox{dann}\quad
+ x\equiv z.\hfill\llap{(3)}\cr}$$
+\end{verbatim}
+erhalten sie
+$$\displaylines{\hfill x\equiv x;\hfill\llap{(1)}\cr
+ \hfill\hbox{wenn}\quad x\equiv y\quad\hbox{dann}\quad
+ y\equiv x;\hfill\llap{(2)}\cr
+ \hfill\hbox{wenn}\quad x\equiv y\quad\hbox{und}\quad
+ y\equiv z\quad\hbox{dann}\quad
+ x\equiv z.\hfill\llap{(3)}\cr}$$
+
+Sie haben sicher schon bemerkt, da\ss{} der Abstand zwischen zwei und mehr
+Zeilen \index{Groesse!Zeilenabstand@Gr\"o\ss{}e!Zeilenabstand}
+gr\"o\ss{}er ist, als der Abstand der Zeilen im Text. Dies geschieht
+zum Zwecke der besseren Lesbarkeit. Der Befehl, der diese `\"Offnung'
+der Zeilen bewirkt, wird automatisch nach jedem der Mehrzeilenbefehle
+eingef\"ugt, er lautet \index{zzzjot@{\tt\char92 jot}}
+\index{zzzopenup@{\tt\char92 openup}}
+`\verb|\openup1\jot|'. Wenn sie nicht mit \TeX's
+Befehlen arbeiten wollen, sondern die Anordnung mit dem
+\index{zzzhalign@{\tt\char92 halign}}`\verb|\halign|'
+Befehl selber bewerkstelligen wollen, dann sollten sie den
+\index{Oeffnungsbefehl@\"Offnungsbefehl}
+\"Offnungsbefehl selber einf\"ugen. Aber beachten sie dabei folgendes. Die
+`\"Offnung' der Zeilen wirkt nur innerhalb der
+\index{Gruppe!Oeffnung@Gruppe!\"Offnung}Gruppe, die durch die
+`\verb|$$|' erzeugt wird, dadurch gibt es einen kleinen
+\index{Nebeneffekt}Nebeneffekt.
+Die letzte Formelzeile steht ja wieder vor einer Textzeile, und da ist
+der \index{Abstand!Hinter Formeln}
+Abstand wieder der normale, sie m\"ussen also am Ende der
+Formelzeilen {\em per Hand} noch etwas zus\"atzlichen Abstand einf\"ugen.
+\subsection{Lange Formeln}
+Alle Regeln, die sie bisher \"uber Formelsatz gelernt haben, n\"utzen
+ihnen nichts, wenn sie eine Formel haben, die einfach l\"anger ist, als
+eine Zeile. \index{Knuth. D.}
+D.~Knuth empfiehlt in solch einem Falle die Verwendung des
+`\verb|eqalign|' Befehls. Man kann dabei eine lange Formel z.B. so
+setzen
+\begin{eqnarray*}
+\sigma(2^{34}-1,2^{35},1)&=&-3+(2^{34}-1)/2^{35}+2^{35}\!/(2^{34}-1)\\
+ & &{}+7/2^{35}(2^{34}-1)-\sigma(2^{35},2^{34}-1,1).\end{eqnarray*}
+Diese Formel wurde mit
+\index{zzzeqalign@{\tt\char92 eqalign}}
+\index{zzzqquad@{\tt\char92 qquad}}
+\index{zzzsigma@{\tt\char92 sigma}}
+\begin{verbatim}
+$$\eqalign{\sigma(2^{34}-1,2^{35},1)
+ &=-3+(2^{34}-1)/2^{35}+2^{35}\!/(2^{34}-1)\cr
+ &\qquad+7/2^{35}(2^{34}-1)-\sigma(2^{35},2^{34}-1,1).\cr}$$
+\end{verbatim}
+erzeugt. \TeX\ kennt selber {\em keine} Regeln, f\"ur den Umbruch einer
+derartigen Formel, dazu mu\ss{} man den Inhalt der Formel nicht nur
+kennen, sondern sie auch verstehen, um den besten Platz f\"ur den
+Umbruch zu erkennen. Statt dessen stehen hier einige kleine Regeln,
+die ihnen die \index{Umbruch von Formeln}
+Entscheidung etwas erleichtern sollen.
+\begin{enumerate}
+\item Brechen sie eine lange Formel {\em vor} einem bin\"aren Symbol,
+oder einem \index{Relation}
+Relationssymbol um, also anders, als in Textformeln.
+\item R\"ucken sie den zweiten Zeil der Formel etwas ein. Sie k\"onnen
+auch den ersten Teil der Formel mit einem {\tt\char92 hfill} ganz nach
+links, den zweiten mit einem weiteren {\tt\char92 hfill} ganz nach
+rechts schieben.
+\end{enumerate}
+
+Achten sie zum Abschlu\ss{} darauf, da\ss{} sie keine
+\index{zzzleft@{\tt\char92 left}}
+`\verb|\left|',
+`\verb|\right|' Konstruktionen \"uber mehrere Zeilen verwenden. Bei
+einer langen Formel m\"ussen sie die Gr\"o\ss{}enwahl der
+\index{Klammer!Groessenanpassung@Klammer!Gr\"o\ss{}enanpassung}Klammer schon selber
+vornehmen.
+\chapter{Definitionen oder Makros}
+\section{Generelles}
+Wenn sie einen Text schreiben, der oft dieselbe Folge von Zeichen
+enth\"alt, dann k\"onnen sie sich mit \TeX\ die Arbeit erleichtern.
+Angenommen, sie schreiben einen mathematischen Text, der oft den
+Vektor `$(x_1,\ldots,x_n)$' enth\"alt. Dann k\"onnen sie mit der Anweisung
+\index{zzzdef@{\tt\char92 def}}
+\index{zzzxvek@{\tt\char92 xvek}}
+\begin{verbatim}
+\def\xvek{(x_1,\ldots,x_n)}
+\end{verbatim}
+einen \index{Neu!Befehl}
+neuen Befehl `\verb|\xvek|' bereitstellen, der ab sofort als
+\index{Abkuerzung@Abk\"urzung}
+Abk\"urzung f\"ur `\verb|(x_1,\ldots,x_n)|' steht. Eine komplizierte
+\index{Formel!Abkuerzung@Formel!Abk\"urzung}Formel, wie
+\index{zzzbigl@{\tt\char92 bigl}}\index{zzzbigr@{\tt\char92 bigr}}
+$$\sum_{(x_1,\ldots,x_n)\ne(0,\ldots,0)}
+\bigl(f(x_1,\ldots,x_n)+g(x_1,\ldots,x_n)\bigr)$$
+kann dann mit der einfachen Anweisung
+\index{zzzsum@{\tt\char92 sum}}
+\index{zzzxvek@{\tt\char92 xvek}}
+\begin{verbatim}
+$$\sum_{\xvek\ne(0,\ldots,0)} \bigl(f\xvek+g\xvek\bigr)$$
+\end{verbatim}
+geschrieben werden. Derartige \index{Abkuerzung@Abk\"urzung}
+Abk\"urzungen bieten sich nat\"urlich nur
+an, wenn eine Zeichenfolge wirklich \"ofters vorkommt. Sie bietet dann
+aber auch eine gewisse Gew\"ahr gegen \index{Fehler!Schreibfehler}
+Tippfehler, die auch nicht zu vernachl\"a\ss{}igen ist.
+
+\TeX\ expandiert ihre neu geschaffene \index{Kontrollsequenz}
+Kontrollsequenz, bis nichts mehr
+zu expandieren ist, sprich nur noch \index{Primitiv}
+Primitive \"ubrigbleiben. Der Befehl
+\index{zzzxvek@{\tt\char92 xvek}}
+\begin{verbatim}
+\xvek
+\end{verbatim}
+wird zun\"achst zu
+\index{zzzldots@{\tt\char92 ldots}}
+\begin{verbatim}
+(x_1,\ldots,x_n)
+\end{verbatim}
+expandiert, und dieser Ausdruck dann zu
+\index{zzzldotp@{\tt\char92 ldotp}}
+\index{zzzmathinner@{\tt\char92 mathinner}}
+\begin{verbatim}
+(x_1,\mathinner{ldotp\ldotp\ldotp},x_n)
+\end{verbatim}
+da auch \index{zzzldots@{\tt\char92 ldots}}
+`\verb|\ldots|' ein Makro\footnote{Statt des Begriffs
+`Definition' hat sich auch der Begriff `Makro' durchgesetzt, da quasi
+eine mikroskopisch kleine Anweisung einen makroskopischen Effekt haben
+kann.} ist. Die jetzt noch verbliebenen \index{Kontrollsequenz}
+Kontrollsequenzen sind keine
+Makros mehr, werden also auch nicht weiter expandiert.
+
+Es empfiehlt sich eine eigene \index{Bibliothek}
+Bibliothek solcher Makrodefinitionen
+anzulegen, in denen alle Definitionen gespeichert werden, die sie
+\"ofters brauchen. Achten sie aber darauf, da\ss{} die Bibliothek nicht {\em
+zu} gro\ss{} wird, da sie f\"ur jeden Text mit
+\index{zzzinput@{\tt\char92 input}}
+\begin{verbatim}
+\input makro
+\end{verbatim} eingelesen werden mu\ss{},\footnote{Ich gehe hier davon aus,
+da\ss{} sie alle Makros in einer Datei {\tt makro.tex} gespeichert haben,
+w\"ahlen sie einen anderen Dateinamen, dann lautet auch der Name hinter
+dem {\tt\char92 input} Befehl anders.} was jedesmal etwas Zeit dauert.
+
+Definitionen dieser Art sind nat\"urlich auch au\ss{}erhalb des
+mathematischen Modus erlaubt, und sie haben auch dort dieselbe Syntax.
+Eine Definition hat {\em immer} den folgenden Aufbau
+\index{Ersatztext}\index{zzzdef@{\tt\char92 def}}
+\begin{verbatim}
+\def\<name>{<Ersatztext>}
+\end{verbatim}
+sie wird also immer mit der \index{Kontrollsequenz}
+Kontrollsequenz `\verb|\def|' eingeleitet,
+der dann der Name der neu zu definierenden Kontrollsequenz, inklusive
+\index{Gegenschraegstrich@Gegenschr\"agstrich}
+Gegenschr\"agstrich, folgt. Zum Schlu\ss{} dann in geschweiften
+\index{Klammer!In Definition}Klammern der
+Text, der aus der Kontrollsequenz expandiert werden soll. {\em
+Achtung}, die geschweiften Klammern haben hier ausnahmsweise einmal
+{\em nicht} die Wirkung einer Gruppierungsklammer. Wenn sie erreichen
+wollen, da\ss{} eine Kontrollsequenz zu `\verb|{\bf x}|' expandiert werden
+soll, dann mu\ss{} die Definition
+\index{zzzdef@{\tt\char92 def}}
+\begin{verbatim}
+\def\bfx{{\bf x}}
+\end{verbatim}
+lauten. Anderenfalls w\"urde der gesamte nachfolgende Text
+\index{Schrift!Fett}\index{Fettschrift}fett gesetzt.
+\section{Parameterisierte Definitionen}
+Angenommen, sie wollten au\ss{}er `$(x_1,\ldots,x_n)$' auch \"ofters
+\"ahnliche Konstruktionen, nur mit anderen Buchstaben, also z.B.\
+`$(y_1,\ldots,y_n)$', schreiben. Sie m\"ussen daf\"ur nicht jeweils eine
+Extradefinition schreiben, \TeX\ bietet die M\"oglichkeit Makros auch
+mit Parametern zu definieren und aufzurufen. Die Definition
+\index{zzzdef@{\tt\char92 def}}
+\index{zzzvektor@{\tt\char92 vektor}}
+\begin{verbatim}
+\def\vektor#1{(#1_1,\ldots,#1_n)}
+\end{verbatim}
+erwartet bei Aufruf ein \index{Argument!Einer Definition}
+Argument, da\ss{} dan an die entsprechende Stelle
+gesetzt wird. Der Aufruf `\verb|\vektor x|' erzeugt
+`$(x_1,\ldots,x_n)$', der Aufruf `\verb|\vektor y|' erzeugt
+`$(y_1,\ldots,y_n)$'. Auch mehrere Parameter sind m\"oglich. Wenn z.B.\
+der h\"ochste Wert der Vektoren nicht immer $n$ sein soll, dann
+empfiehlt sich die Definition
+\index{zzzdef@{\tt\char92 def}}
+\index{zzzvektorn@{\tt\char92 vektorn}}
+\begin{verbatim}
+\def\vektorn#1{(#1_1,\ldots,#1_#2))}
+\end{verbatim}
+Der Aufruf `\verb|\vektorn am|' erzeugt dann `$(a_1,\ldots,a_m)$'. Sie
+k\"onnen bis zu neun Argumente an ein Makro \"ubergeben (\verb|#1| bis
+\verb|#9|). Die Reihenfolge des Auftretens im \index{Ersatztext}
+Ersatztext ist dabei
+beliebig, nicht aber hinter der Angabe des Namens. Sie k\"onnen z.B.\
+kein `\verb|#5|' benutzen, wenn sie nicht vorher alle Parameterzeichen
+bis `\verb|#4|' verwendet haben.\footnote{Ab hier d\"urfte auch klar
+sein, wieso das Zeichen {\tt\char35} normalerweise verboten ist.}
+
+Wenn sie eine \index{Kontrollsequenz}
+Kontrollsequenz mehrfach definieren, dann ist immer nur
+die letzte Definition g\"ultig. Die Anweisungen
+\index{zzzdef@{\tt\char92 def}}
+\begin{verbatim}
+\def\a{Hallo} \def\a{wie geht's}
+\end{verbatim}
+bewirkt, da\ss{} bei Aufruf von `\verb|\a|' `wie geht's' ausgegeben wird.
+Allerdings lassen sich Definitionen lokal, in einer Gruppe, \"andern,
+ohne, da\ss{} die urspr\"ungliche Bedeutung verloren geht.
+
+Sie k\"onnen sich entscheiden, ob sie die Definition mit
+\index{Leer!Zeichen}Leerzeichen
+\"ubersichtlicher machen wollen, oder nicht. Die Definitionen
+\index{zzzdef@{\tt\char92 def}}
+\begin{verbatim}
+\def\a #1 #2{#1 oder #2}
+\def\a#1#2{#1 oder #2}
+\end{verbatim}
+sind gleichwertig. Auch im Aufruf ist es gleichg\"ultig, ob sie
+`\verb|\a A B|' oder `\verb|\aAB|' verwenden, Das Ergebnis ist immer
+`A oder B'.
+
+Normalerweise folgt einem Parameterzeichen nur eine \index{Ziffer}
+Ziffer zwischen 1
+und 9, man kann aber durch weitere Zeichen erreichen, da\ss{} auch gr\"o\ss{}ere
+\index{Argument!Einer Definition}
+Argumente leicht \"ubergeben werden k\"onnen.\footnote{Von dieser
+M\"oglichkeit sollte man nur sehr sparsam Gebrauch machen, und nur, wenn
+einem die Definition eines Makros {\em immer} klar ist.} Die
+Definition
+\index{zzzdef@{\tt\char92 def}}
+\begin{verbatim}
+\def\cs #1. #2\par{...}
+\end{verbatim}
+definiert einen neuen Befehl mit zwei \index{Argument!Mehrere
+Definitionsargumente}Argumenten, wobei das erste
+Argument durch das Vorkommen eines \index{Punkt}
+Punktes, gefolgt von einem
+\index{Leer!Zeichen}Leerzeichen, hier ist das
+Leerzeichen wichtig, das zweite Argument von
+dem Befehl \index{zzzpar@{\tt\char92 par}}
+`\verb|\par|' beendet wird. Diese Beender, gelten auch beim
+Aufruf. Wenn man diesen Befehl mit
+\begin{verbatim}
+\cs Sie schulden \$5.00 DM. Zahlen Sie sie.\par
+\end{verbatim}
+aufruft, dann wird `{\em Sie schulden \$5.00 DM}' zum ersten Argument;
+der erste \index{Punkt}Punkt wird nicht als \index{Begrenzer!Makroargument}
+Begrenzer erkannt, da ihm keine
+\index{Leer!Stelle}
+Leerstelle folgt, das zweite Argument ist dann `{\em Zahlen Sie sie.}'
+Weiterhin wird auch dann ein Argument weiter angenommen, wenn bei
+Auftreten eines Argumentbegrenzers noch geschweifte Klammern ge\"offnet
+sind. H\"atte man obigen Befehl mit
+\index{zzzdef@{\tt\char92 def}}
+\begin{verbatim}
+\def\cs #1.#2\par{...}
+\end{verbatim}
+definiert, dann m\"u\ss{}te der Aufruf
+\index{zzzpar@{\tt\char92 par}}
+\begin{verbatim}
+\cs Sie schulden {\$5.00} DM. Zahlen Sie sie.\par
+\end{verbatim}
+lauten, um das gew\"unschte Ergebnis zu erhalten. Man kann sich diese
+Form der Parameterbegrenzung zunutze machen, um z.B.\ mathematische
+Theoreme {\em sch\"on} zu setzen.
+
+\proclaim Theorem 1. \TeX\ hat gro\ss{}e Makrof\"ahigkeiten.\par
+
+Tats\"achlich kennt {\em Plain} \TeX\ einen Befehl
+\index{zzzproclaim@{\tt\char92 proclaim}}
+`\verb|\proclaim|', mit dem
+die Beispielzeile gesetzt wurde. Er ist folgenderma\ss{}en definiert
+\index{zzzdef@{\tt\char92 def}}\index{zzzenspace@{\tt\char92 enspace}}
+\index{zzzmedbreak@{\tt\char92 medbreak}}\index{zzznoindent@{\tt\char92 noindent}}
+\index{zzzpar@{\tt\char92 par}}
+\begin{verbatim}
+\def\proclaim #1. #2\par{\medbreak
+ \noindent{\bf#1.\enspace}{\sl#2}\par\medbreak}
+\end{verbatim}
+Wenn sie diese Definition \"andern, was sie ohne weiteres durch eine
+\index{Neu!Definition}
+Neudefinition zu Beginn ihres Textes tun k\"onnen, \"andern sie damit das
+Aussehen {\em aller} Theoreme in ihrem gesamten Text.
+\subsection{Die Regeln der Parameterisierung}
+Jede Makrodefinition hat die folgende Form\index{Ersatztext}
+\begin{verbatim}
+\def<Kontrollsequenz><Parameterliste>{<Ersatztext>}
+\end{verbatim}
+Wobei die Parameterliste keine geschweiften
+\index{Klammer!Parameterliste}Klammern enthalten darf,
+au\ss{}erdem das \index{Spezialzeichen}
+Spezialzeichen `\verb|#|' von \index{Ziffer}Ziffern 1 bis (maximal) 9
+gefolgt wird, die der Reihe nach auftreten m\"ussen; der Ersatztext
+enth\"alt nur paarweise geschweifte Klammern und die entsprechenden
+Parameterzeichen `\verb|#|' haben nur Ziffern als n\"achstes Zeichen, es
+sei denn, ihnen folgt ein weiteres `\verb|#|', was das einfache
+Zeichen `\verb|#|' darstellt. Zur weiteren Betrachtung dient ein
+Beispiel einer Definition, die zu nichts anderem gut ist, als uns die
+Regeln, nach denen \TeX\ vorgeht zu verdeutlichen.
+\index{zzzdef@{\tt\char92 def}}
+\begin{verbatim}
+\def\cs AB#1#2C$#3\$ {#3{ab#1}#1 c##\x #2}
+\end{verbatim}
+Diese Definition hat eine Parameterliste, bestehend aus neun Token
+\begin{verbatim}
+A, B, #1, #2, C, $, #3, \$, Leerzeichen
+\end{verbatim}
+und einen \index{Ersatztext}Ersatztext, bestehend aus zw\"olf Token
+\begin{verbatim}
+#3, {, a, b, #1, }, #1, Leerzeichen, c, # \x, #2
+\end{verbatim}
+Beim Aufruf erwartet \TeX\ zun\"achst die beiden Zeichen `\verb|AB|'.
+Falls diese beim Aufruf nicht mit angegeben werden, erhalten sie eine
+\index{Fehler!Meldung}
+Fehlermeldung, die besagt, da\ss{} der Aufruf des Makros nicht mit seiner
+Definition \"ubereinstimmt. Dann folgen die Argumente 1 und 2, $\ldots$
+
+Woran merkt \TeX\ nun, da\ss{} ein Parameter beendet ist? Es gibt zwei
+F\"alle, einmal kann ein Parameter noch von einem \index{Begrenzer!Makro}
+Parameterbegrenzer
+gefolgt werden, oder es folgt ein n\"achster Parameter. Schlie\ss{}lich wird
+das Ende der Parameterliste erreicht, wenn die ge\"offnete, geschweifte
+\index{Klammer!Vor Ersatztext}Klammer den Beginn des
+\index{Ersatztext}Ersatztextes anzeigt. Der Aufruf
+\index{zzzLook@{\tt\char92 Look}}
+\begin{verbatim}
+\cs AB {\Look}C${And\$ }{look}\$ 5.
+\end{verbatim}
+bewirkt nun folgendes. Das erste \index{Argument!Einer Definition}
+Argument ist `\verb|\Look|', von dem
+zuvor die Klammern entfernt wurden. Das zweite Argument bleibt
+\index{Leer!Argument}leer,
+da das `\verb|$C|' sofort folgt. Das dritte Argument bekommt den {\em
+Inhalt} `\verb|{And\$ }{look}|', da das erste Auftreten von `\verb|\$|'
+in einer geschweiften Klammer steht. Auch die Klammern um das gesamte
+Argument werden {\em nicht} entfernt, da dann die beiden inneren
+Klammern alleine \"ubrigblieben, was auch wieder zu einer nicht
+richtigen Verteilung der geschweiften Klammern f\"uhren w\"urde. Die
+\index{Ausgabe}Ausgabe dieses Aufrufs w\"are
+\index{zzzLook@{\tt\char92 Look}}
+\begin{verbatim*}
+{And\$ }{look}{ab\Look}\Look c#\x5.
+\end{verbatim*}
+Das \index{Leer!Zeichen}
+Leerzeichen wird nicht entfernt, auch wenn es hinter dem
+Kontrollwort `\verb|\Look|' steht, da \TeX\ Leerzeichen hinter
+Kontrollworten sozusagen nur auf den ersten Rutsch entfernt, aber
+nicht bei der \index{Expansion}Expansion von Makros.
+
+Noch einen Spezialfall. Wenn sie als letztes Zeichen vor der \"offnenden
+Klammer, die den \index{Ersatztext}
+Ersatztext einleitet ein `\verb|#|' schreiben, dann
+verh\"alt sich \TeX\ so, als st\"unde die \"offnende Klammer beim Aufruf vor
+dem Argument. Wenn sie also
+\index{zzzdef@{\tt\char92 def}}
+\begin{verbatim}
+\def\a#1#{\hbox to #1}
+\end{verbatim}
+definieren, dann ergibt der Aufruf `\verb|\a3pt{x}|' als Ergebnis
+\begin{verbatim}
+\hbox to 3pt{x}
+\end{verbatim}
+und nicht nur
+\begin{verbatim}
+\hbox to 3
+\end{verbatim}
+wie man zun\"achst erwarten w\"urde. Was \TeX\ genau macht, wenn es die
+Parameter einer Makrodefinition auswertet kann man sich nat\"urlich auch
+anzeigen lassen, es geht, wie nicht anders zu erwarten mit dem Befehl
+`\verb|\tracingmacros=1|'.\index{zzztracingmacros@{\tt\char92 tracingmacros}}
+
+Jeder Mensch macht \index{Fehler!Schreibfehler}
+Fehler. Der h\"aufigste, in Zusammenhang mit
+Makrodefinitionen und Makroaufrufen d\"urfte eine fehlende schlie\ss{}ende
+\index{Klammer!Makro}Klammer bei der \index{Argument!Uebergabe@Argument!\"Ubergabe}
+Argument\"ubergabe an eine \index{Kontrollsequenz}Kontrollsequenz sein. \TeX\
+tritt dem entgegen, indem es bei dem ersten Auftreten des Befehls
+\index{zzzpar@{\tt\char92 par}}
+`\verb|\par|' das weitere Einlesen eines Arguments beendet, es sei
+denn, sie haben \TeX\ ausdr\"ucklich angewiesen `\verb|\par|' zu
+akzeptieren. Dies geschieht, indem sie den Befehl \index{zzzlong@{\tt\char92 long}}
+`\verb|\long|' vor
+das \index{zzzdef@{\tt\char92 def}}
+`\verb|\def|' schreiben. Mit der Anweisung
+\begin{verbatim}
+\long\def\bftext{{\bf #1}}
+\end{verbatim}
+k\"onnen sie auch mehrere Paragraphen \index{Schrift!Fett}
+\index{Fettschrift}fett ausgeben
+lassen.\footnote{Allerdings verbrauchen sie mit dieser Methode {\em
+sehr} viel \index{Speicher!Bedarf}
+Speicher --- es gibt bessere L\"osungen.} Etwas schwieriger
+sieht die Sache aus, wenn sie die schlie\ss{}ende Klammer des
+\index{Ersatztext}Ersatztextes
+vergessen haben. Hier w\"are eine Begrenzung durch
+\index{zzzpar@{\tt\char92 par}}
+`\verb|\par|' nicht
+w\"unschenswert, da dieser Befehl in Ersatztexten oft gebraucht wird. Es
+gibt aber dennoch eine M\"oglichkeit sich wenigstens etwas abzusichern.
+Wenn sie der \index{zzzdef@{\tt\char92 def}}
+`\verb|\def|' Anweisung ein \index{zzzouter@{\tt\char92 outer}}
+`\verb|\outer|' voranstellen,
+dann kann die neudefinierte \index{Kontrollsequenz}
+Kontrollsequenz nur in der \"aussersten
+vertikalen Liste verwendet werden. Sie kann also nicht in einer
+Tabelle stehen, noch kann sie in einem \index{Ersatztext}
+Ersatztext auftauchen o.\"a.
+\TeX\ hat es in diesem Fall leichter einen \index{Fehler!Suche}
+Fehler zu finden.
+
+Schlie\ss{}lich kann einer \index{zzzdef@{\tt\char92 def}}
+`\verb|\def|' Anweisung noch ein
+\index{zzzglobal@{\tt\char92 global}}
+`\verb|\global|' vorangestellt werden. Der Effekt ist wie man ihn
+erwarten w\"urde. Da diese Situation oft auftritt, gibt es aber auch die
+\index{Abkuerzung@Abk\"urzung}Abk\"urzung \index{zzzgdef@{\tt\char92 gdef}}
+`\verb|\gdef|', die das gleiche bewirkt.
+\section{Ein weiterer Zuweisungsbefehl}
+Bisher haben wir schon einige Befehle kennengelernt, die einer
+\index{Kontrollsequenz}Kontrollsequenz etwas zuweisen. Z.B.\
+\index{zzzfont@{\tt\char92 font}}`\verb|\font|',
+\index{zzzchardef@{\tt\char92 chardef}}\index{zzzcountdef@{\tt\char92 countdef}}
+`\verb|\chardef|', `\verb|\countdef|' oder \index{zzzdef@{\tt\char92 def}}
+`\verb|\def|'. Dar\"uber
+hinaus gibt es noch den Befehl \index{zzzlet@{\tt\char92 let}}
+`\verb|\let|', der einer
+Kontrollsequenz eine Reihe von Token zuweist. Mit der Anweisung
+\index{zzzdef@{\tt\char92 def}}\index{zzzlet@{\tt\char92 let}}
+\begin{verbatim}
+\let\a=\def
+\end{verbatim}
+k\"onnte man erreichen, da\ss{} \index{Neu!Definition}
+Neudefinitionen nicht mehr mit `\verb|\def|'
+eingeleitet werden brauchen, sondern statt dessen mit dem Befehl
+`\verb|\a|'. Ist das \index{Argument}Argument der `\verb|\let|' Anweisung ein
+einzelnes Zeichen, dann verh\"alt sich der neu geschaffene Befehl wie
+dieses Zeichen, allerdings mit ein paar Ausnahmen. Wenn man z.B.\ mit
+\index{zzzzero@{\tt\char92 zero}}
+`\verb|\let\zero=0|' den Befehl `\verb|\zero|' schafft, dann kann
+dieser dennoch nicht in numerischen Konstanten verwendet werden, da
+dort nur \index{Ziffer}
+Ziffern erlaubt sind, und `\verb|\zero|' {\em kein} Makro
+ist, das expandiert wird. Letztlich gibt es auch noch den Befehl
+\index{zzzfuturelet@{\tt\char92 futurelet}}
+\begin{verbatim}
+\futurelet\cs=<Token1><Token2>
+\end{verbatim}
+was sich genauso verh\"alt, wie die Anweisung
+\index{zzzlet@{\tt\char92 let}}
+\begin{verbatim}
+\let\cs=<Token2><Token1><Token2>
+\end{verbatim}
+\section{Die Entscheidungsbefehle}
+\TeX\ bietet eine Reihe von Befehlen, mit denen das Verhalten von
+\TeX\ gesteuert werden kann, d.h.\ da\ss{} je nach Ausgangssituation
+unterschiedliche Ergebnisse herauskommen. Diese M\"oglichkeit findet
+nat\"urlich auch besonders in Makros eine Anwendung. Der generelle
+Aufbau dieser \index{Bedingung}Bedingungspr\"ufungen ist
+\index{zzzelse@{\tt\char92 else}}\index{zzzfi@{\tt\char92 fi}}
+\begin{verbatim}
+\if<Bedingung><Wahrtext>\else<Falschtext>\fi
+\end{verbatim}
+Wenn bei Erreichen dieser Anweisung die Bedingung {\em wahr} ist, dann
+wird der {\tt Wahrtext} ausgef\"uhrt, andernfalls der {\tt Falschtext}.
+Der Befehl\index{Seite!Rechts-Links}
+\index{zzzcount@{\tt\char92 count}}\index{zzzelse@{\tt\char92 else}}
+\index{zzzfi@{\tt\char92 fi}}\index{zzzifodd@{\tt\char92 ifodd}}
+\index{zzzlinkeseite@{\tt\char92 linkeseite}}
+\index{zzzrechteseite@{\tt\char92 rechteseite}}
+\begin{verbatim}
+\ifodd\count0 \rechteseite \else \linkeseite \fi
+\end{verbatim}
+sorgt daf\"ur, da\ss{} je nach \index{Seite!Zahl}
+Seitenzahl, die bei \TeX\ \"ublicherweise im
+Z\"ahlregister $0$ steht, entweder die \index{Kontrollsequenz}
+Kontrollsequenz f\"ur rechte, oder
+linke Seiten ausgef\"uhrt wird. Achten sie bei numerischen Vergleichen
+in den Abfragen darauf, da\ss{} die numerischen Konstanten immer richtig
+abgeschlossen werden. Bei der Anweisung
+\index{zzzifnum@{\tt\char92 ifnum}}
+\begin{verbatim}
+\ifnum\zaehler=0...
+\end{verbatim}
+sollten sie hinter der $0$ ein Leerzeichen schreiben, um
+sicherzustellen, da\ss{} die Konstante richtig erkannt wird, auch wenn der
+nachfolgende Text auch wieder mit \index{Ziffer}Ziffern anf\"angt.
+
+Hier nun eine vollst\"andige Liste der
+Vergleichsbefehle.\index{Box!If}\index{Dimension!If}\index{Gleichheit!If}
+\index{Horizontal!Modus}
+\begin{enumerate}
+\item \index{zzzifnum@{\tt\char92 ifnum}}
+`\verb|\ifnum<Nummer1><Relation><Nummer2>|'\\Vergleicht zwei
+Zahlen miteinander. Als \index{Relation}
+Relation sind dabei nur die Vergleiche
+`\verb|<|', `\verb|=|' und `\verb|>|' zugelassen.
+\item \index{zzzifdim@{\tt\char92 ifdim}}
+`\verb|\ifdim<Dimension1><Relation><Dimension2>|'\\Genau wie der
+letzte Befehl, nur da\ss{} zwei Dimensionen vergliechen werden.
+\item \index{zzzifodd@{\tt\char92 ifodd}}
+`\verb|\ifodd<Zahl>|'\\Testet, ob die \"ubergebene Zahl ungerade
+ist.
+\item \index{zzzifvmode@{\tt\char92 ifvmode}}
+`\verb|\ifvmode|'\\Testet, ob sich \TeX\ gerade im vertikalen,
+oder im internen vertikalen Modus befindet.
+\item \index{zzzifhmode@{\tt\char92 ifhmode}}
+`\verb|\ifhmode|'\\Testet, ob sich \TeX\ gerade im horizontalen,
+bzw.\ im eingeschr\"ankten horizontalen Modus befindet.
+\item \index{zzzifmmode@{\tt\char92 ifmmode}}
+`\verb|\ifmmode|'\\Testet, ob sich \TeX\ im mathematischen Modus
+befindet.
+\item `\verb|\if<Token1><Token2>|'\\Die beiden \"ubergebenen Token
+werden miteinander auf Gleichheit vergleichen. Allerdings nicht
+uneingeschr\"ankt. Tats\"achlich werden die \"ubergebenen Token expandiert,
+falls das erforderlich ist, und beim ersten nichtexpandierbaren
+Zeichen wird der Zeichencode getestet.
+\item \index{zzzifcat@{\tt\char92 ifcat}}
+`\verb|\ifcat<Token1><Token2>|'\\Arbeitet wie der letzte Befehl,
+nur da\ss{} jetzt nicht die Zeichencodes vergleichen werden, sondern die
+\index{Kategorie!Vergleich}Kategoriecodes.
+\item \index{zzzifx@{\tt\char92 ifx}}
+`\verb|\ifx<Token1><Token2>|'\\Jetzt wird der Vergleich
+ausgef\"uhrt, {\em ohne} da\ss{} die Token zuvor expandiert werden. Handelt
+es sich um Zeichen, dan wird Zeichen- und Kategoriecode verglichen,
+sind es beides Makros, dann wird ihr Status verglichen.
+\item \index{zzzifhbox@{\tt\char92 ifhbox}}\index{zzzifvbox@{\tt\char92 ifvbox}}
+\index{zzzifvoid@{\tt\char92 ifvoid}}
+`\verb|\ifvoid<Nummer> \ifhbox<Nummer> \ifvbox<Nummer>|'\\ Die
+\"ubergebene Nummer ist eine Zahl zwischen $0$ und $255$, und die
+\index{Bedingung}
+Bedingung ist wahr, wenn das entsprechende Boxregister
+\index{Leer!Register}leer ist, bzw.
+eine hbox oder vbox enth\"alt.
+\item \index{zzzifeof@{\tt\char92 ifeof}}
+`\verb|\ifeof|'\\Testet auf Fileende.\index{File!Test auf Ende}
+\item \index{zzziffalse@{\tt\char92 iffalse}}\index{zzziftrue@{\tt\char92 iftrue}}
+`\verb|\iftrue \iffalse|'\\Sind immer wahr, bzw.\ immer falsch.
+\end{enumerate}
+Schlie\ss{}lich gibt es noch einen Befehl, der den einfachen
+Vergleichsbefehlen verwandt ist.
+\index{zzzelse@{\tt\char92 else}}\index{zzzfi@{\tt\char92 fi}}
+\index{zzzifcase@{\tt\char92 ifcase}}
+\begin{verbatim}
+\ifcase<Nummer><Text Fall 0>\or
+ <Text Fall 1>\or
+ ...
+ <Text Fall n>\else
+ <Text in allen anderen Situationen>\fi
+\end{verbatim}
+Wenn die \"ubergebene Nummer den Wert $0$ hat wird der erste Text
+ausgef\"uhrt, ist der Wert $1$, dann der zweite, usf. Pa\ss{}t keiner der
+angegebene F\"alle zu der Zahl, dann wird der Text hinter dem
+`\verb|\else|' ausgef\"uhrt.
+
+Das Auftreten von `\verb|\if|' und dem beendenden
+\index{zzzfi@{\tt\char92 fi}}`\verb|\fi|' ist
+{\em immer} paarweise, allerdings ist es unabh\"angig von
+\index{Klammer!Gruppe}Gruppierungsklammern.\footnote{Achtung, hier
+gibt es die M\"oglichkeit einige echte Sauereien zu programmieren!}
+
+Wenn man eine eigene Bedingung erst schaffen will, dann gibt es noch
+den Befehl \index{zzznewif@{\tt\char92 newif}}`\verb|\newif|'. Mit
+\index{zzzifabc@{\tt\char92 ifabc}}
+\begin{verbatim}
+\newif\ifabc
+\end{verbatim}
+werden die Befehl `\verb|\ifabc|', \index{zzzabctrue@{\tt\char92 abctrue}}
+`\verb|\abctrue|' und
+\index{zzzabcfalse@{\tt\char92 abcfalse}}
+`\verb|\abcfalse|' geschaffen. Mit dem ersten kann die Bedingung
+abgefragt werden, mit den beiden anderen kann die Bedingung gesetzt
+werden.
+
+F\"ur die \index{Uebergabe@\"Ubergabe}
+\"Ubergabe von Token an eine Definition oder einen Vergleich
+kennt \TeX\ noch $256$ Tokenregister, die
+\index{zzztoks@{\tt\char92 toks}}`\verb|\toks0|' bis
+`\verb|\toks255|' hei\ss{}en. Die \index{Zuweisung}
+Zuweisung an ein Tokenregister erfolgt mit
+\begin{verbatim}
+\toks<Nummer>={Token} oder
+\toks<Nummer>=\toks<Nummer}
+\end{verbatim}
+Es gibt nat\"urlich auch hier wieder einen \index{zzznewtoks@{\tt\char92 newtoks}}
+`\verb|\newtoks|' Befehl, der
+entsprechend den anderen \index{zzznew@{\tt\char92 new}}
+`\verb|\new|' Befehlen arbeitet.
+\section{Expansionen}
+Wenn \TeX\ einen Text abarbeitet, dann wird Token nach Token
+eingelesen. Ist eines dieser Token ein Makro, dann wird dieses erst
+expandiert, bevor \TeX\ seine Arbeit fortsetzt.\footnote{Als Ausnahme
+gibt es nat\"urlich Befehle, wie {\tt\char92 def} oder
+\index{zzzifx@{\tt\char92 ifx}}{\tt\char92
+ifx}.} Es gibt unterschiedliche \index{Kontrollsequenz}
+Kontrollsequenzen, die expandiert
+werden m\"ussen.\index{Bedingung}\index{Bildschirm}\index{Ersatztext}
+\begin{enumerate}
+\item {\em Makros} Wenn ein Makro expandiert wird, dann sucht \TeX\
+ggf.\ erst nach Argumenten und ersetzt dann die
+\index{Kontrollsequenz}
+Kontrollsequenz durch
+den angegebenen Ersatztext.
+\item {\em Vergleiche} \TeX\ entscheidet, ob die Bedingung zutrifft,
+oder nicht und ersetzt dann die Bedingung durch den der Bedingung
+entsprechenden Text.
+\item \index{zzznumber@{\tt\char92 number}}
+`\verb|\number<Nummer>|' Die Nummer, die hinter dem
+`\verb|\number|' Befehl steht wird in eine \index{Ziffer}
+Ziffernfolge expandiert, je
+nach Wert der Nummer noch mit einem f\"uhrenden \index{Minuszeichen}
+Minuszeichen.
+\item \index{zzzromannumeral@{\tt\char92 romannumeral}}
+`\verb|\romannumeral<Nummer>|' Komplett analog zum vorherigen
+Befehl, nur da\ss{} jetzt die Zahl in r\"omische Zahlzeichen expandiert
+wird.
+\item \index{zzzstring@{\tt\char92 string}}
+`\verb|\string<Token>|' Steht hinter dem Befehl eine
+\index{Kontrollsequenz}
+Kontrollsequenz, dann wird der Befehl zu der Zeichenkette expandiert,
+aus der die Kontrollsequenz besteht (inkl. dem f\"uhrenden Zeichen,
+entsprechend \index{Escape}\index{zzzescapechar@{\tt\char92 escapechar}}
+`\verb|\escapechar|'). Handelt es sich nur um ein
+einfaches Zeichen, dann wird dieses Zeichen als Ergebnis der Expansion
+ausgegeben.
+\item \index{zzzjobname@{\tt\char92 jobname}}
+`\verb|\jobname|' Dieser Befehl wird zu dem augenblicklichen
+Arbeitsnamen expandiert. Wenn \TeX\ z.B.\ in die \index{Ausgabe!File}
+Ausgabefiles
+{\em Papier.dvi} und {\em Papier.log} schreibt, dann wird
+`\verb|\jobname|' zu {\em Papier} expandiert.
+\item \index{zzzfontname@{\tt\char92 fontname}}
+`\verb|\fontname|' wird zu dem angegebenen \index{Font!Name}Fontnamen expandiert.
+Die Angabe von\\`\verb|\fontname\tenrm|'\\w\"urde z.B.\ im
+Normalfall die Expansion {\em cmr10} zur Folge haben.
+\item \index{zzzmeaning@{\tt\char92 meaning}}
+`\verb|\meaning<Token>|' gibt das aus, was auf dem Bildschirm
+mit der Anweisung\\\index{zzzlet@{\tt\char92 let}}
+`\verb|\let\test=<Token>|'\\und\\\index{zzzshow@{\tt\char92 show}}
+`\verb|\show\test|'\\
+ausgegeben w\"urde. Wenn es sich um den Buchstaben `A' handelt,
+w\"are das Ergebnis: `{\em The letter A}'
+\item \index{zzzcsname@{\tt\char92 csname}}
+\index{zzzendcsname@{\tt\char92 endcsname}}
+`\verb|\csname|'$\ldots$`\verb|\endcsname|' Dieses Befehlspaar
+ist das Gegenteil des \index{zzzstring@{\tt\char92 string}}
+`\verb|\string|' Befehls. Alle Token zwischen
+den beiden Befehlen werden solange expandiert, bis nur noch Buchstaben
+\"ubrig sind. Diese werden dann als \index{Kontrollsequenz}
+Kontrollsequenz interpretiert.
+\item \index{zzzexpandafter@{\tt\char92 expandafter}}
+`\verb|\expandafter<Token>|' \TeX\ lie\ss{}t bei diesem Befehl das
+Token, das unmittlebar hinter dem Befehl steht ein und expandiert es
+nicht. Das folgende Token wird expandiert und schlie\ss{}lich das nicht
+expandierte wieder davor geschrieben.
+\item \index{zzznoexpand@{\tt\char92 noexpand}}
+`\verb|\noexpand<Token>|' Die Expansion ist das Token selber,
+das aber behandelt wird, wie der Befehl
+\index{zzzrelax@{\tt\char92 relax}}`\verb|\relax|'.
+\item \index{zzzbotmark@{\tt\char92 botmark}}
+\index{zzzfirstmark@{\tt\char92 firstmark}}
+\index{zzzsplitbotmark@{\tt\char92 splitbotmark}}
+\index{zzzsplitfirstmark@{\tt\char92 splitfirstmark}}
+\index{zzztopmark@{\tt\char92 topmark}}
+`\verb|\topmark, \firstmark, \botmark, \splitfirstmark,
+\splitbotmark|'\\Die Expansionen sind der Inhalt des entsprechenden
+\index{Markregister}Markregisters, wie noch besprochen wird.
+\item \index{zzzinput@{\tt\char92 input}}
+`\verb|\input<Filename>|' Die Expansion ist
+\index{Leer!Expansion}leer, aber \TeX\
+bereitet sich darauf vor aus den angegebenen File zu lesen.
+\item \index{zzzendinput@{\tt\char92 endinput}}
+`\verb|\endinput|' Die Expansion ist wieder leer, aber \TeX\
+beendet die \index{Eingabe!Vom File}
+Eingabe vom augenblicklichen File, sobald die aktuelle
+Zeile bearbeitet wurde.
+\item \index{zzzthe@{\tt\char92 the}}
+`\verb|\the<Interne Gr\"o\ss{}e>|' Der `\verb|\the|' Befehl gibt eine
+Reihe von Token aus, die dem Wert der internen Gr\"o\ss{}e entsprechen. Die
+Anweisung `\verb|\the\skip5|' k\"onnte z.B.\ {\em 5.0pt plus 2.0fil}
+sein. Der `\verb|\the|' Befehl hat viele Unterarten, die jetzt
+zusammen vorgestellt werden sollen.
+\index{Horizontal!Modus}
+\begin{enumerate}\index{Delcode}\index{Dimension}
+\item `\verb|\the<Parameter>|' Wobei \index{Parameter!Intern}
+Parameter eines der internen
+Parameter von \TeX\ ist. Dies k\"onnen\\ \index{Parameter!Ganzzahl}
+Ganzzahlparameter
+(`\verb|\the\widowpeanlty|'),\\ \index{Parameter!Dimension}
+Dimensionsparameter\index{zzzparindent@{\tt\char92 parindent}}
+(`\verb|\the\parindent|')\\ \index{Leim}
+\index{Parameter!Leim}Leimparameter \index{zzzleftskip@{\tt\char92 leftskip}}
+(`\verb|\the\leftskip|') oder\\
+\index{Muglue}\index{Parameter!Muglue}
+Muglueparameter\index{zzzthinmuskip@{\tt\char92 thinmuskip}}
+(`\verb|\the\thinmuskip|') sein.
+\item `\verb|\the<register>|' womit die Inhalte der Zahl-,
+Dimensions-, Leim- und Mugluregister ausgegeben werden k\"onnen.
+\item `\verb|\the<Codename><8-Bit Zahl>|' Hierbei steht
+\index{zzzcatcode@{\tt\char92 catcode}}
+`\verb|<Codename>|' f\"ur\\`\verb|\catcode|',\\
+\index{zzzmathcode@{\tt\char92 mathcode}}`\verb|\mathcode|',\\
+\index{zzzlccode@{\tt\char92 lccode}}
+\index{zzzuccode@{\tt\char92 uccode}}
+`\verb|\lccode|',\\`\verb|\uccode|',\\
+\index{zzzsfcode@{\tt\char92 sfcode}}`\verb|\sfcode|', oder\\
+\index{zzzdelcode@{\tt\char92 delcode}}
+`\verb|\delcode|'.\\Die Anweisung `\verb|\the\mathcode`/|' gibt den
+augenblich g\"ultigen mathematischen Codewert des Schr\"ag\-strichs aus.
+\item `\verb|\the<Spezialregister>|' Als Spezialregister kommen dabei
+die folgenden in Frage:\\\index{zzzdeadcycles@{\tt\char92 deadcycles}}
+\index{zzzinsertpenalties@{\tt\char92 insertpenalties}}
+\index{zzzprevgraf@{\tt\char92 prevgraf}}
+`\verb|\prevgraf, \deadcycles,
+\insertpenalties|',\\ \index{zzzbadness@{\tt\char92 badness}}
+\index{zzzinputlineno@{\tt\char92 inputlineno}}
+\index{zzzparshape@{\tt\char92 parshape}}
+\verb|\inputlineno, \badness, \parshape|'\\oder
+eine der Dimensionen\\
+\index{zzzpagegoal@{\tt\char92 pagegoal}}
+\index{zzzpagestretch@{\tt\char92 pagestretch}}
+\index{zzzpagetotal@{\tt\char92 pagetotal}}
+`\verb|\pagetotal, \pagegoal, \pagestretch,
+\pagefilstretch|'\\\index{zzzpagedepth@{\tt\char92 pagedepth}}
+\index{zzzpagefilllstretch@{\tt\char92 pagefillstretch}}
+\index{zzzpagefillstretch@{\tt\char92 pagefillstretch}}
+\index{zzzpagefilstretch@{\tt\char92 pagefilstretch}}
+\index{zzzpageshrink@{\tt\char92 pageshrink}}
+`\verb|\pagefillstretch, \pagefilllstretch,
+\pageshrink, \pagedepth|'\\Im horizontalen Modus kann au\ss{}erdem noch
+die Dimension \index{zzzspacefactor@{\tt\char92 spacefactor}}
+`\verb|\spacefactor|' und im vertikalen Modus die
+Dimension \index{zzzprevdepth@{\tt\char92 prevdepth}}
+`\verb|\prevdepth|' ausgegeben werden.
+\item `\verb|\the\fontdim<Parameternummer><Font>|' Jeder
+\index{Font!Parameter}Font
+(Zeichensatz) hat seine eigenen \index{Parameter!Zeichensatz}
+Parameter. Der sechste Parameter ist
+der Wert von `em'. Mit\\`\verb|\the\fontdim6\tenrm|'\\erhielte man
+z.B.\ {\em 10.0pt}.
+\item `\verb|\the\hyphenchar<Font> \the\skewchar<Font>|'
+\index{zzzskewchar@{\tt\char92 skewchar}}
+\"ubergibt das
+entsprechende Zeichen, das f\"ur diesen Font definiert wurde.
+\item `\verb|\the\lastpenalty \the\lastkern \the\lastskip|' ergibt die
+letzte Strafe, den letzten Kern oder den letzten \index{Zwischenraum}
+Zwischenraum,
+vorausgesetzt, da\ss{} das letzte Element der aktuellen Liste auch genau
+das entsprechende Element war.
+\item `\verb|\the<Definiertes Zeichen>|' gibt den ganzzahligen Wert
+einer \index{Kontrollsequenz}
+Kontrollsequenz zu\-r\"uck, die mit einem der `\verb|\...def|'
+Befehle zuvor gesetzt wurde.
+\end{enumerate}\index{Badness}
+Normalerweise produziert der `\verb|\the|' Befehl eine Zeichenkette
+aus \index{ASCII}ASCII-Zeichen. Nur in einigen F\"allen gilt das nicht.
+\begin{enumerate}
+\item `\verb|\the<Font>|' w\"ahlt den angegebenen Font aus.
+\index{zzzfont@{\tt\char92 font}}
+`\verb|\the\font|' w\"ahlt z.B.\ den augenblicklichen Font.
+\item `\verb|\the<Tokenvariable>|' \"ubergibt eine Kopie des Inhalts des
+Tokenregisters.
+\end{enumerate}
+Neben dem `\verb|\the|' Befehl existiert auch noch der
+\index{zzzshowthe@{\tt\char92 showthe}}`\verb|\showthe|'
+Befehl, der absolut analog arbeitet, nur da\ss{} die \index{Ausgabe!Auf
+dem Bildschirm}Ausgabe auf dem Bildschirm erfolgt.
+\end{enumerate}
+\subsection{Wann wird nicht expandiert}
+Es gibt Situationen, in denen eine \index{Kontrollsequenz}
+Kontrollsequenz oder ein Makro
+nicht expandiert wird. Hier nun eine vollst\"andige Liste all dieser
+Situationen. Manche \index{Primitiv}
+Primitive, die hier angesprochen werden sind noch
+unbekannt, sie werden sp\"ater
+besprochen.\index{Dollarzeichen}\index{Ersatztext}
+\begin{enumerate}
+\item Wenn ein Token w\"ahrend des Versuchs einen Fehler zu beheben,
+gel\"oscht wird.
+\item Wenn ein Token in einer Vergleichsanweisung steht, die aufgrund
+der Bedingung nicht ausgef\"uhrt wird.
+\item Wenn \TeX\ die Argumente eines Makros liest.
+\item Wenn \TeX\ eine \index{Kontrollsequenz}
+Kontrollsequenz einliest, die mit einem der
+\index{zzzlet@{\tt\char92 let}}
+`\verb|\let|' oder einem der \index{zzzdef@{\tt\char92 def}}
+`\verb|\def|' Befehle definiert werden soll.
+\item Wenn \TeX\ Argumente f\"ur einen der Befehle
+\index{zzzafterassignment@{\tt\char92 afterassignment}}
+\index{zzzaftergroup@{\tt\char92 aftergroup}}
+\index{zzzexpandafter@{\tt\char92 expandafter}}
+\index{zzzfuturelet@{\tt\char92 futurelet}}
+\index{zzzifx@{\tt\char92 ifx}}
+\index{zzzlet@{\tt\char92 let}}
+\index{zzzmeaning@{\tt\char92 meaning}}
+\index{zzznoexpand@{\tt\char92 noexpand}}
+\index{zzzshow@{\tt\char92 show}}
+\index{zzzstring@{\tt\char92 string}}\\
+`\verb|\expandafter|',\\
+`\verb|\noexpand|',\\
+`\verb|\string|',\\
+`\verb|\meaning|',\\
+`\verb|\let|',\\
+`\verb|\futurelet|',\\
+`\verb|\ifx|',\\
+`\verb|\show|',\\
+`\verb|\afterassignment|',\\
+`\verb|\aftergroup|'\\einliest.
+\item Beim Einlesen einer \index{Parameter!Definition}
+Parameterliste der \index{zzzdef@{\tt\char92 def}}`\verb|\def|' Befehle.
+\item Beim Einlesen eines Ersatztextes, oder beim Einlesen einer
+Tokenliste, dies geschieht z.B. bei der Bearbeitung von
+\index{zzzlowercase@{\tt\char92 lowercase}}`\verb|\lowercase|'.
+\item Beim Einlesen des Vorspanns einer Tabelle.
+\item Wenn ein Dollarzeichen eingelesen wurde.
+\item Wenn ein `\verb|`|' einen numerischen Wert einleitet.
+\end{enumerate}
+Wenn sie erreichen wollen, da\ss{} in einer Makrodefinition der
+\index{Ersatztext}Ersatztext
+nach den obigen Regeln expandiert werden soll, dann verwenden sie den
+Befehl \index{zzzedef@{\tt\char92 edef}}
+`\verb|\edef|', statt des normalen `\verb|\def|' Befehls, oder
+den Befehl \index{zzzxdef@{\tt\char92 xdef}}
+`\verb|\xdef|', der wie der `\verb|\edef|' Befehl arbeitet,
+nur \index{Global!Definition}global. Mit der Anweisung
+\begin{verbatim}
+\def\doppelt#1{#1#1}
+\edef\a{\doppelt{xy}}
+\end{verbatim}
+w\"urden sie erreichen, da\ss{} bei Aufruf von `\verb|\a|' {\em xyxy}
+ausgegeben w\"urde. Mit \index{zzznoexpand@{\tt\char92 noexpand}}
+`\verb|\noexpand|' wird die
+Expandierung des folgenden Tokens unterbunden. So k\"onnen auch in einer
+expandierenden Definition Teile vor der Expansion gesch\"utzt werden.
+
+Bei den Befehlen
+\index{zzzerrmessage@{\tt\char92 errmessage}}\index{zzzmark@{\tt\char92 mark}}
+\index{zzzmessage@{\tt\char92 message}}
+\index{zzzspecial@{\tt\char92 special}}
+\index{zzzwrite@{\tt\char92 write}}
+\begin{verbatim}
+\mark{...}
+\message{...}
+\errmessage{...}
+\special{...}
+\write{...}
+\end{verbatim}
+wird der \"ubergebene Text expandiert, genau wie bei einer
+\index{zzzedef@{\tt\char92 edef}}`\verb|\edef|'
+Definition. Allerdings braucht das \index{Parameter!Zeichen}
+Parameterzeichen `\verb|#|' {\em
+nicht} doppelt verwendet werden, um es einmal zu erhalten, es gen\"ugt,
+im Gegensatz zur Verwendung in Makros, die einmalige Verwendung.
+\subsection{Fileeingabe}
+Neben der M\"oglichkeit mit dem \index{zzzinput@{\tt\char92 input}}
+`\verb|\input|' Befehl weitere Files
+einzulesen kann \TeX\ gleichzeitig bis zu $16$ Files zur Eingabe
+verwalten. Um einen derartigen File bereitzustellen, sollten sie ihn
+mit
+\index{zzzopenin@{\tt\char92 openin}}
+\begin{verbatim}
+\openin<Nummer>=<Filename>
+\end{verbatim}
+\"offnen. Die Nummern liegen hierbei wieder zwischen $0$ und $15$, wobei
+es auch wieder einen \index{zzznewread@{\tt\char92 newread}}
+`\verb|\newread|' Befehl gibt, der absolut analog
+zu den entsprechenden Befehlen arbeitet.\footnote{Normalerweise wird
+von den meisten Implementationen das {\tt .tex} automatisch angeh\"angt,
+wenn keine spezielle \index{Extension}
+Extension angegeben ist.} Wird der File nicht
+gefunden, oder kann aus einem anderen Grunde nicht gelesen werden,
+dann gibt \TeX\ {\em keine} \index{Fehler!Meldung}
+Fehlermeldung aus. Sie m\"ussen mit
+\index{zzzifeof@{\tt\char92 ifeof}}
+`\verb|\ifeof|' selber pr\"ufen, ob die Eingabe durch den File m\"oglich
+ist. Nach dem Einlesen, sollten sie den File mit
+\index{zzzclosein@{\tt\char92 closein}}
+\begin{verbatim}
+\closein<Nummer>
+\end{verbatim}
+wieder schlie\ss{}en. Eine Eingabe aus dem File erhalten sie nun mit der
+Anweisung
+\index{zzzread@{\tt\char92 read}}
+\begin{verbatim}
+\read<Nummer>to<Kontrollsequenz>
+\end{verbatim}
+Dabei wird die n\"achste Zeile des Files eingelesen, oder mehr, falls
+sich sonst unpaarige geschweifte \index{Klammer!Unpaarig}
+Klammern ergeben w\"urden, und in der
+\index{Kontrollsequenz}
+Kontrollsequenz gespeichert. Diese Definition der Kontrollsequenz ist
+lokal, solange dem `\verb|\read|' kein \index{zzzglobal@{\tt\char92 global}}
+`\verb|\global|' vorangestellt
+wird. Mit Zahlen au\ss{}erhalb den Zul\"assigen, kann ein Dialog mit dem
+Benutzer gef\"uhrt werden.
+\index{zzzmessage@{\tt\char92 message}}\index{zzzmyname@{\tt\char92 myname}}
+\index{zzzread@{\tt\char92 read}}
+\begin{verbatim}
+\message{Tippen sie ihren Namen}
+\read16 to \myname
+\message{Hallo, \myname}
+\end{verbatim}
+fordert den Benutzer auf seinen Namen einzugeben, und gibt diesen
+danach, hinter dem Wort `Hallo' wieder aus.
+\subsection{Schleifen}
+\TeX\ bietet auch die M\"oglichkeit Schleifen zu programmieren. Mit der
+Anweisung
+\index{zzzloop@{\tt\char92 loop}}\index{zzzrepeat@{\tt\char92 repeat}}
+\begin{verbatim}
+\loop <Teil 1> \if... <Teil 2> \repeat
+\end{verbatim}
+wird folgendes bewirkt. Zun\"achst wird der erste Teil abgearbeitet, und
+dann die \index{Bedingung}
+Bedingung vom `\verb|\if|' getestet.\footnote{Dies ist die
+einzige Variante, bei der {\tt\char92 if} {\em ohne} passendes
+{\tt\char92 fi} auftritt.} Wenn die Bedingung wahr ist, wird der
+zweite Teil ausgef\"uhrt und dann die ganze Schleife wiederholt. Ist die
+Bedingung falsch, dann wird der zweite Teil nicht mehr ausgef\"uhrt und
+die Schleife sofort verlassen.\footnote{Das \TeX book liefert an
+dieser Stelle einige bemerkenswerte Beispiele, wie man \TeX\ als
+\index{Taschenrechner}
+Taschenrechner, oder zur Berechnung von \index{Primzahlen}
+Primzahlen einsetzen kann, ich
+habe mir die \"Ubernahme erspart :-)}
+\chapter{Weitere Boxbefehle}\index{Box!Befehle}
+In diesem Kapitel sollen die letzten, noch unbesprochenen Boxbefehle
+erl\"autert werden. Es stellt insofern nur eine Erg\"anzung der schon
+bekannten Befehle dar.
+\section{Die Strichboxen}
+Um eine Strichbox, genauer eine rechteckige, geschw\"arzte Fl\"ache zu
+erzeugen, benutzen sie im vertikalen Modus den Befehl `\verb|\hbox|'
+und im \index{Horizontal!Modus}
+horizontalen Modus den Befehl \index{zzzvbox@{\tt\char92 vbox}}
+`\verb|\vbox|', inklusive der
+\index{Dimension!Angabe}Dimensionsangaben, also z.B.
+\index{zzzvrule@{\tt\char92 vrule}}
+\begin{verbatim}
+\vrule height4pt width3pt depth2pt
+\end{verbatim}
+in einem Paragraphen, und sie erhalten `\vrule height4pt width3pt
+depth2pt' als Ergebnis. Wenn eine der Dimensionen
+\index{Doppelt!Dimensionsangabe}doppelt angegeben
+wird, gilt die zweite Angabe, wird einer der Dimensionen ausgelassen,
+dann gelten folgende Standardwerte:
+
+\medskip\begin{tabular}{lcc}
+ & {\tt\char92 hrule} & {\tt\char92 vrule} \\
+Breite & $*$ & 0.4pt\\
+H\"ohe & 0.4pt & $*$\\
+Tiefe & 0.0pt & $*$
+\end{tabular}\medskip
+
+Der `$*$' bedeutet, da\ss{} sich die Rulebox an der \index{Dimension}
+Dimension der kleinsten umschlie\ss{}enden Box orientiert.\medskip
+
+\hrule\medskip
+
+Wenn sie z.B.\ einfach \index{zzzhrule@{\tt\char92 hrule}}
+`\verb|\hrule|' schreiben, dann erhalten sie
+obiges Ergebnis, da die kleinste umschlie\ss{}ende Box die Seite selber
+ist. Mit
+\index{zzzhrule@{\tt\char92 hrule}}
+\index{zzzvskip@{\tt\char92 vskip}}
+\begin{verbatim}
+\hrule width5cm height1pt \vskip1pt \hrule width6cm
+\end{verbatim}
+erhalten sie das Ergebnis {\em unter} diesem Abschnitt. Zwischen
+Ruleboxen wird {\em kein} zus\"atzlicher \index{Zwischenraum}
+Zwischenraum eingef\"ugt. Die
+Zeilen sind genau ein pt voneinander entfernt.\medskip
+
+\hrule width5cm height1pt \vskip1pt \hrule width6cm\medskip
+
+Sie m\"ussen sich schon an die Vorgabe halten, im vertikalen Modus nur
+horizontale Boxen zu erzeugen (`\verb|\hrule|') und im
+\index{Horizontal!Modus}horizontalen
+Modus nur vertikale \index{zzzvrule@{\tt\char92 vrule}}
+(`\verb|\vrule|'). Auch wenn die
+\index{Dimension!Angabe}Dimensionsangaben
+\"ubereinstimmen und deshalb sich die Boxen durch nichts unterscheiden,
+passiert folgendes. Wenn sie im vertikalen Modus den Befehl
+`\verb|\vrule|' verwenden, beginnt \TeX\ einen \index{Neu!Paragraphen}
+neuen Paragraphen.
+Verwenden sie \index{zzzhrule@{\tt\char92 hrule}}
+`\verb|\hrule|' im horizontalen Modus, dann beendet
+\TeX\ den augenblicklichen Paragraphen und geht in den vertikalen
+Modus \"uber.
+
+Negative Angaben bei einer Rulebox sind zul\"a\ss{}ig und sinnvoll. Die Box
+`\vrule width3cm depth-2pt' hat beispielsweise eine Tiefe von $-2$pt.
+Allerdings mu\ss{} die Breite positiv sein und auch die Summe von
+\index{Hoehe!Box@H\"ohe!Box}H\"ohe und
+Tiefe mu\ss{} positiv sein, damit \"uberhaupt eine Box gezeichnet wird.
+\section{Boxtypen}
+Es gibt verschiedene Typen von Boxen: (1) Jedes Zeichen stellt f\"ur sich
+eine Box dar. (2) Die Befehle `\verb|\hrule|' und `\verb|\vrule|'
+erzeugen Boxen und (3) lassen sich Boxen auch explizit angeben
+\index{zzzbox@{\tt\char92 box}}\index{zzzcopy@{\tt\char92 copy}}
+\index{zzzlastbox@{\tt\char92 lastbox}}
+\index{zzzvbox@{\tt\char92 vbox}}
+\index{zzzvsplit@{\tt\char92 vsplit}}
+\index{zzzvtop@{\tt\char92 vtop}}
+\begin{verbatim}
+\hbox<Box Spez.>{<Horizontales Material>}
+\vbox<Box Spez.>{<Vertikales Material>}
+\vtop<Box Spez.>{<Vertikales Material>}
+\box<Registernummer>
+\copy<Registernummer>
+\vsplit<Registernummer> to <Dimension>
+\lastbox
+\end{verbatim}
+Die `\verb|<Box. Spez.>|' sind dabei die Angaben \index{Dimension!Box}
+`\verb|to <Dimension>|'
+oder `\verb|spread <Dimension>|', sie k\"onnen nat\"urlich
+auch wegfallen. Der letzte Befehl ist bisher noch unbekannt. Au\ss{}er man
+befindet sich im normalen vertikalen Modus, enth\"alt `\verb|\lastbox|'
+immer dann eine Box, wenn das letzte Element der aktuellen Liste eine
+Box war, sonst, und auch im mathematischen Modus ist sie leer.
+
+Der \index{zzzunskip@{\tt\char92 unskip}}
+`\verb|\unskip|' Befehl \"ahnelt dem `\verb|\lastbox|' Befehl, au\ss{}er
+da\ss{} er sich auf \index{Leim}
+Leim und nicht auf Boxen bezieht. Im vertikalen Modus
+erbringt der Befehl `\verb|\unskip|' nicht die gew\"unschte Wirkung,
+also die Entfernung des letzten Leimst\"uckes, aber mit
+\index{zzzlastskip@{\tt\char92 lastskip}}
+\index{zzzvskip@{\tt\char92 vskip}}
+\begin{verbatim}
+\vskip-\lastskip
+\end{verbatim}
+kann derselbe Effekt erreicht werden.
+
+In den zusammenfassenden Kapiteln am Ende dieses Buches wird unter
+einer Box immer eine der explizit angegebenen verstanden, da
+Zeichen(boxen) und Ruleboxen so speziell sind, da\ss{} sie nicht wie die
+anderen Boxen behandelt werden.
+\section{Leaders}
+Was sie in dieser Zeile sehen \xleaders\hbox to 6pt{$\hss\cdot\hss$}\hfil\
+wird Leader genannt.\footnote{Vom englischen {\em lead} f\"ur leiten, da
+sie die Augen entlang einer Zeile leiten sollen.} Leader sind der
+\"ubergeordnete Begriff f\"ur \index{Leim}Leim. Leim f\"ullt einen
+\index{Zwischenraum}Zwischenraum mit
+\index{Leer!Zeichen}
+Leerzeichen, bei Leadern kann der \index{Fuellbuchstabe@F\"ullbuchstabe}
+F\"ullbuchstabe angegeben werden. Der Befehl f\"ur Leader lautet
+\index{zzzhskip@{\tt\char92 hskip}}\index{zzzleaders@{\tt\char92 leaders}}
+\begin{verbatim}
+\leaders<Box oder Rule>\hskip<Leim>
+\end{verbatim}
+Der Effekt ist genauso, als h\"atten sie nur `\verb|\hskip<Leim>|'
+angegeben, mit der Ausnahme, da\ss{} der \index{Zwischenraum}
+Zwischenraum mit Kopien der Box
+gef\"ullt wird. Die Eingabe von
+\index{zzzalpha@{\tt\char92 alpha}}\index{zzzdef@{\tt\char92 def}}
+\index{zzzhfill@{\tt\char92 hfill}}\index{zzzhss@{\tt\char92 hss}}
+\index{zzzleaderfill@{\tt\char92 leaderfill}}
+\index{zzzline@{\tt\char92 line}}
+\begin{verbatim}
+\def\leaderfill{\leaders\hbox to 1em{\hss.\hss}\hfill}
+\line{$\alpha$\leaderfill $\omega$}
+\line{Anfang\leaderfill Ende}
+\end{verbatim}
+ergibt
+
+$$\vbox{
+\def\leaderfill{\leaders\hbox to 1em{\hss.\hss}\hfill}
+\hbox to \hsize{$\alpha$\leaderfill $\omega$}
+\hbox to \hsize{Anfang\leaderfill Ende}}$$
+
+Die Angabe von `\verb|\hbox to 1em{\hss .\hss}|' erzeugt eine Box mit
+einem em Breite, in dessen Mitte ein \index{Punkt}
+Punkt steht. Mit diesen Boxen
+wird dann die Zeile aufgef\"ullt. Der Grund daf\"ur, da\ss{} die Punkte genau
+\"ubereinander liegen ist darin zu suchen, da\ss{} der Leaderbefehl
+sozusagen nur einen kleinen Ausschnitt von einer ganzen Reihe von
+Kopien dieser Box zeigt. Dies erm\"oglicht die Justierung der einzelnen
+Boxen auch \"ubereinander. Leider hat dieses Verfahren auch einen
+kleinen Nachteil. Vor dem ersten und hinter dem letzten \index{Punkt}
+Punkt kann ein
+etwas zu gro\ss{}er \index{Zwischenraum}
+Zwischenraum stehen. Insbesondere, wenn ein Leader
+alleine auftaucht, kann das etwas st\"orend sein. Dazu gibt es die
+Befehle \index{zzzcleaders@{\tt\char92 cleaders}}
+`\verb|\cleaders|' und `\verb|xleadres|'. Mit dem ersten
+Befehl werden die Boxen insgesamt in dem Freiraum \index{Zentrierung}
+zentriert, mit dem
+zweiten werden die Boxen einzeln auf die passende L\"ange gezogen.
+
+Statt einer Box kann auch eine Rulebox angegeben werden, evtl.\ mit
+Angaben \"uber die \index{Hoehe!Rulebox@H\"ohe!Rulebox}
+H\"ohe, Breite und Tiefe. Hier macht dann auch eine
+`\verb|\hbox|' im \index{Horizontal!Modus}
+horizontalen Modus Sinn, da so eine \index{Horizontal!Linie}horizontale
+Linie ausgegeben werden kann. H\"atten wir die vorige Definition als:
+\index{zzzdef@{\tt\char92 def}}\index{zzzhfill@{\tt\char92 hfill}}
+\index{zzzhrule@{\tt\char92 hrule}}\index{zzzleaderfill@{\tt\char92 leaderfill}}
+\index{zzzleaders@{\tt\char92 leaders}}
+\begin{verbatim}
+\def\leaderfill{\leaders\hbox to 1em{\hrule}\hfill}
+\end{verbatim}
+geschrieben, dann w\"are das Ergebnis
+
+$\alpha$\hrulefill $\omega$
+
+Anfang\hrulefill Ende
+
+gewesen.
+
+Leaders k\"onnen nat\"urlich genauso im vertikalen Modus verwendet werden,
+wobei, wie auch im horizontalen Modus kein \index{Zwischenraum}
+Zwischenraum zwischen den
+einzelnen Boxen gelassen wird. Wenn sie Boxen angeben, die eine
+negative Breite, oder eine negative \index{Gesamt!Hoehe@Gesamt!H\"ohe}
+Gesamth\"ohe (H\"ohe plus Tiefe)
+haben, ignoriert \TeX\ die Angabe und verwendet einfach \index{Leim}Leim.
+
+\subsection{Anwendungen}
+\subsubsection{Liegende geschweifte Klammern}\index{Klammer!Leader}
+Mit den Befehlen
+\index{zzzupbracefill@{\tt\char92 upbracefill}}
+`\verb|\upbracefill|' und \index{zzzdownbracefill@{\tt\char92 downbracefill}}
+`\verb|\downbracefill|'
+k\"onnen ganze Textteile durch eine geschweifte Klammer \"uberzogen, oder
+unterstrichen werden. Die vier Symbole `{\Mf\char122}',
+`{\Mf\char123}', {\Mf\char124}' und `{\Mf\char125}' werden dabei durch
+Ruleleader verbunden.
+$$\vbox{\kern4pt
+\hbox to 100pt{\downbracefill}\hbox to 50pt{\upbracefill}}$$
+\subsubsection{Pfeile}
+Auch Pfeile lassen sich nat\"urlich auf diese Art verl\"angern. W\"urde man
+eine Verl\"angerung eines Pfeilsymbols mit \index{Minuszeichen}
+Minuszeichen oder
+\index{Gleichheitszeichen}Gleichheitszeichen versuchen, dann w\"urden die einzelnen Zeichen durch
+kleine \index{Leer!Stelle}Leerstellen getrennt. Statt dessen dient der Befehl
+\index{zzzrightarrowfill@{\tt\char92 rightarrowfill}}
+\begin{verbatim}
+\hbox to 100pt{\rightarrowfill}
+\end{verbatim}
+zu dem Ergebnis `\hbox to 100pt{\rightarrowfill}'
+\subsubsection{Vertikale Anwendung}
+Um auch die Anwendung vertikaler Leader einmal zu zeigen dient diese
+Textur\index{zzzcleaders@{\tt\char92 cleaders}}
+$$\hbox to 2.5in{\cleaders
+ \vbox to .5in{\cleaders\hbox{\TeX}\vfil}\hfil}$$
+Sie wurde mit
+\index{zzzvbox@{\tt\char92 vbox}}
+\index{zzzvfil@{\tt\char92 vfil}}
+\begin{verbatim}
+$$\hbox to 2.5in{\cleaders
+ \vbox to .5in{\cleaders\hbox{\TeX}\vfil}\hfil}$$
+\end{verbatim}
+erzeugt.
+\section{WasDenn}
+Schon oft wurden sie erw\"ahnt, hier nun endlich soll gekl\"art werden,
+worum es sich dabei handelt. Es handelt sich dabei um eine M\"oglichkeit
+Eigenschaften von \TeX\ zu \"andern, ohne dabei den Sourcecode von \TeX\
+selber allzu sehr zu modifizieren. Von dieser M\"oglichkeit sollte
+allerdings nicht allzuviel Gebrauch gemacht werden, um die
+Kompatibilit\"at der Texte nicht zu gef\"ahrden. In allen \TeX\
+Implementationen sind allerdings mindestens zwei `WasDenn' mit
+eingebaut\index{File!Ausgabe}
+\begin{enumerate}
+\item Die Fileausgabe.
+\item Der {\tt\char92 special} Befehl.
+\end{enumerate}
+\subsection{Fileausgabe}\index{Ausgabe!File}
+Die M\"oglichkeit der Fileausgabe erlaubt die Verwendung der Ausgabe
+durch andere Programme, inklusive \TeX\ selber. Sie wird z.B.\ f\"ur
+\index{Inhaltsverzeichnis}
+Inhaltsverzeichnisse und \"ahnliche Anwendungen gebraucht. Analog zur
+\index{Eingabe!Vom File}Fileeingabe gibt es die Befehle
+\index{zzzcloseout@{\tt\char92 closeout}}\index{zzznewwrite@{\tt\char92 newwrite}}
+\index{zzzopenout@{\tt\char92 openout}}
+\index{zzzwrite@{\tt\char92 write}}
+\begin{verbatim}
+\openout<Nummer>=<Filename>
+\closeout<Nummer>
+\write<Nummer>{<Tokenliste>}
+\newwrite
+\end{verbatim}
+Ist die Nummer gr\"o\ss{}er als 15 oder kleiner als Null, dann wird wieder
+in den Logfile, bzw.\ auf dem \index{Bildschirm}
+Bildschirmen ausgegeben. Es gibt aber
+einen wesentlichen Unterschied, zu den entsprechenden Eingabebefehlen.
+Die Ausgabe erfolgt nicht beim Auftreten des Befehls, sondern bei dem
+Auftreten des WasDenn bei der eigentlichen Ausgabe der
+\index{Seite!Ausgabe}Seite an den
+\index{File!DVI}
+Dvi-File. Eine sofortige Ausgabe kann durch unmittlebares voranstellen
+des Befehls \index{zzzimmediate@{\tt\char92 immediate}}
+`\verb|\immediate|' vor dem Schreibbefehl erreicht werden.
+Die Anweisung
+\index{zzzwrite@{\tt\char92 write}}
+\begin{verbatim}
+\immediate\write16{Auf Wiedersehen!}
+\end{verbatim}
+Bewirkt die Ausgabe von `Auf Wiedersehen!' auf dem \index{Bildschirm}
+Bildschirm,
+\"ahnlich, wie auch der \index{zzzmessage@{\tt\char92 message}}
+`\verb|\message|' Befehl, allerdings wird mit
+dem `\verb|\write|' Befehl immer eine eigene Zeile ausgegeben.
+\subsection{Der {\tt\char92 special} Befehl}
+Der Befehl \index{zzzspecial@{\tt\char92 special}}
+`\verb|\special|' erlaubt es eine (expandierte) Tokenliste
+in den Dvi-File zu schreiben. Au\ss{}erdem wird im Dvi-File auch vermerkt,
+an welcher Stelle im Originalfile der Befehl stand. Diese expandierte
+Tokenliste kann dann z.B.\ durch ein Ausgabeprogramm ausgewertet
+werden. Bislang gibt es {\em keine} Standardisierung f\"ur die
+{\tt\char92 special} Befehle.
+\chapter{Tabellen und Ausrichtungen}
+Die so oft vorkommenden Tabellen k\"onnen in \TeX\ auf zwei verschiedene
+Arten gesetzt werden. Zum einen kennt \TeX\ eine Tabelle, und dann das
+Werkzeug der \index{Horizontal!Ausrichtung}
+horizontalen Ausrichtung. Zun\"achst die Tabellen.
+\section{Tabellen}
+\subsection{Gleiche Spaltenbreite}
+Mit der Anweisung \index{zzzcolumns@{\tt\char92 columns}}
+\index{zzzsettabs@{\tt\char92 settabs}}
+`\verb|\settabs n \columns|' wird die laufende Zeile
+in $n$ Spalten gebrochen. Jede der so geschaffenen Spalten ist gleich
+breit.\footnote{Einen entsprechenden Befehl gibt es in \LaTeX\ nicht!}
+Die einzelnen Zeilen dieser Tabelle werden dann mit:
+\begin{verbatim}
+\+ <Text 1> & <Text 2> & .... \cr
+\end{verbatim}
+eingegeben. Die Eingabe von
+\index{zzzcolumns@{\tt\char92 columns}}
+\index{zzzsettabs@{\tt\char92 settabs}}
+\begin{verbatim}
+\settabs 4 \columns
+\+&&Text in der dritten Spalte\cr
+\+&Text in der zweiten Spalte\cr
+\+\it Text in der ersten Spalte&&&und in der vierten Spalte\cr
+\end{verbatim}
+hat folgende Wirkung:
+
+\medskip\noindent\begin{tabular}{*{4}{p{30mm}}}
+ & & Text 3. Spalte & \\
+ & Text 2. Spalte & & \\
+\multicolumn{2}{l}{\it Text in der 1. Spalte} & & und 4. Spalte
+\end{tabular}\medskip
+
+Dieses Beispiel zeigt einige wichtige Eigenschaften der
+Tabulatorbefehle von \TeX.
+\begin{enumerate}
+\item Die {\tt\char38} entsprechen den Tabulatorstopps einer normalen
+Schreibmaschine.
+\item Der Unterschied besteht darin, da\ss{} es {\em immer} genausoviele
+Tabstopps in einer Zeile gibt, wie es {\tt\char38} Zeichen gibt,
+besonders gut an der untersten Zeile zu sehen.
+\item Jede Zeile wird mit einem `\verb|\cr|' beendet. Dies kann auch
+geschehen, wenn noch nicht alle Spalten mit {\tt\char38} getrennt
+sind. Es kann also weniger als die angegebene Anzahl von Spalten geben.
+\item Leerzeichen hinter `\verb|&|' und `\verb|\+|' werden ignoriert.
+\item Jeder \index{Spalte!Eintrag}Spalteneintrag stellt eine eigene
+\index{Gruppe!Tabelleneintrag}Gruppe dar. Das ist
+besonders an der ersten Spalte der letzten Zeile zu sehen, bei der f\"ur
+die lokale \index{Schrift!Umschaltung}
+Schriftumschaltung {\em keine} Gruppenklammern verwendet
+werden brauchten.
+\end{enumerate}
+
+Normalerweise bleiben die Spalten, die sie mit
+\index{zzzsettabs@{\tt\char92 settabs}}`\verb|\settabs|'
+eingerichtet haben bestehen, auch wenn sie danach wieder normalen Text
+schreiben, der in normale Paragraphen umgebrochen wird. Sie k\"onnen die
+Tabulatoren nat\"urlich auch innerhalb einer \index{Gruppe!Tabelle}Gruppe definieren, dann
+gelten sie nur dort. Eine Globalisierung durch \index{zzzglobal@{\tt\char92 global}}
+`\verb|\global|' ist
+{\em nicht} zul\"a\ss{}ig.
+
+Normalerweise werden Tabellen zwischen Paragraphen gesetzt. Es ist
+aber auch sinnvoll sie in \index{Box!Vbox}
+\verb|vbox|en zu gebrauchen. Damit sind z.B.\
+Tabellen in \index{Formel!abgesetzte}abgesetzten Formeln m\"oglich. Mit
+\index{zzzcolumns@{\tt\char92 columns}}
+\index{zzzsettabs@{\tt\char92 settabs}}
+\index{zzzvbox@{\tt\char92 vbox}}
+\begin{verbatim}
+$$\vbox{\settabs 3 \columns
+ \+Dies ist&ein seltsames&Beispiel\cr
+ \+mit einem&drei Spalten&Format.\cr}$$
+\end{verbatim}
+erhalten sie
+
+$$\begin{array}{p{4cm}@{\qquad}p{4cm}@{\qquad}p{4cm}}
+Dies ist&ein seltsames&Beispiel\\
+mit einem&drei Spalten&Format.\\
+\end{array}$$
+
+\subsection{Unterschiedliche Spaltenbreite}
+Es ist nat\"urlich nicht immer w\"unschenswert, da\ss{} die Spalten alle
+dieselbe Breite haben. F\"ur diesen Fall mu\ss{} der Tabulatorbefehl etwas
+abge\"andert werden. Dazu dient eine \index{Muster!Zeile}
+{\em Musterzeile}, die unmittelbar
+hinter den `\verb|\settabs|' Befehl geschrieben wird und auch mit
+`\verb|\cr|' abgeschlossen wird.
+\index{zzzindent@{\tt\char92 indent}}
+\begin{verbatim}
+\settabs\+\indent&Horizontale Liste\quad&\cr % sample line
+\+&Horizontale Liste&Kapitel 14\cr
+\+&Vertikale Liste&Kapitel 15\cr
+\+&Math. Liste&Kapitel 17\cr
+\end{verbatim}
+Ist ein Beispiel f\"ur eine derartige Liste. Die \index{Muster!Zeile}
+Musterzeile wird dabei
+{\em nicht} ausgegeben, so da\ss{} das Ergebnis so aussieht
+
+\medskip\begin{tabular}{ll}
+Horizontale Liste&Kapitel 14\\
+Vertikale Liste&Kapitel 15\\
+Math. Liste&Kapitel 17
+\end{tabular}\medskip
+
+Bei der Konstruktion einer l\"angeren Tabelle mit dieser Methode mu\ss{}
+man darauf achten, da\ss{} man den jeweils l\"angsten Spalteneintrag in die
+\index{Muster!Zeile}Musterzeile schreibt.
+
+Mit \index{Einfuegung!Fuellmaterial@Einf\"ugung!F\"ullmaterial}
+Einf\"ugung von \index{zzzhfill@{\tt\char92 hfill}}
+`\verb|\hfill|' an geeigneten Stellen kann der Text
+auch andere Ausrichtungen, als die \index{Linksbuendig@Linksb\"undig}
+Linksb\"undigkeit erhalten. In {\em Plain}
+\TeX\ wird definiert, da\ss{} jeder Spalteneintrag in eine \index{Box!Hbox}
+Hbox mit der
+Breite einer Spalte geschrieben wird, gefolgt von dem Befehl
+\index{zzzhss@{\tt\char92 hss}}
+`\verb|\hss|'. \index{zzzhfill@{\tt\char92 hfill}}
+`\verb|\hfill|' ist der m\"achtigere Befehl, so da\ss{} damit
+die Wirkung von `\verb|\hss|' unterbunden werden kann. Eine einfache
+\index{Zentrierung}
+Zentrierung ist allerdings mit einem vorgestellten `\verb|\hss|'
+m\"oglich, das nachgestellte wird ja automatisch eingef\"ugt. Dies geht
+allerdings nur in den ersten Spalten. In der letzten Spalte wird der
+Text in eine Hbox geschrieben, die die nat\"urliche Breite des Textes
+hat.
+
+Eine sehr gute Anwendungsm\"oglichkeit dieser variablen Tabulatorstops
+bietet die Dokumentation von Programmsourcen. Stellen sie sich vor,
+sie sollten folgendes Computerprogramm in der vorgestellten Weise
+setzen.
+
+\medskip\begin{tabbing}
+\qquad\= {\bf if}\= $\quad n<r\quad$\= {\bf then}\= $\quad n=n+1$\\
+\> \> \> {\bf else} \> {\bf begin} $print;\quad n:=0;$\\
+\> \> \> \> {\bf end;}\\
+\> {\bf while} $p>0$ {\bf do} \> \> \> \\
+\> \> {\bf begin} $\quad q:=link(p);\quad free(p);\quad p:=q;$ \> \> \\
+\> \> {\bf end;} \> \> \\
+\end{tabbing}\medskip
+
+Es w\"are ziemlich m\"uhsam f\"ur jeder der vorkommenden Tabulatorpositionen
+einen Tabulatorstop zu setzen. Es ist nun zwar so, da\ss{} man durch
+einf\"ugen eines weiteren `\verb|&|' jederzeit eine
+\index{Neu!Spaltenposition}neue Position f\"ur
+eine Spalte setzen kann, aber auch diese Methode w\"are noch ziemlich
+un\"ubersichtlich. Es gibt einen noch einfacheren Weg das obige Ergebnis
+zu erreichen. Die gesetzten Tabulatorpositionen k\"onnen mit dem Befehl
+\index{zzzcleartabs@{\tt\char92 cleartabs}}
+`\verb|\cleartabs|' auch alle wieder gel\"oscht werden, um dann neue zu
+setzen. Somit konnte das obige Programm einfach mit
+\index{zzzvbox@{\tt\char92 vbox}}
+\begin{verbatim}
+$$\vbox{\+\bf if $n<r$ \cleartabs&\bf then $n=n+1$\cr
+\+&\bf else & {\bf begin} ${\it print}$; $n:=0$;\cr
+\+&&{\bf end};\cr
+\+\cleartabs {\bf while} $p>0$ {\bf do}\cr
+\+\quad&{\bf begin} $q:=link(p)$; $free(p)$; $p:=q$;\cr
+\+&\{\bf end};\cr
+\end{verbatim}
+gesetzt werden.
+
+Es d\"urfen keine `\verb|\+|' Zeilen geschachtelt werden. Sie k\"onnen
+also sozusagen keine Tabellen innerhalb von Tabellen definieren. Da
+diese Tabellen in \index{Box!Tabellen}
+Boxen gleicher Breite aufgebaut werden, k\"onnen sie
+mit der Befehlsfolge \index{zzzshowbox@{\tt\char92 showbox}}
+`\verb|\showbox\tabs|' genau ausgeben lassen, was
+bei der Konstruktion von Tabellen geschieht.
+
+\section{Ausrichtungen}
+Es gibt noch eine weitere M\"oglichkeit in \TeX\ Tabellen zu setzen. Sie
+basiert auf der Idee einer \index{Schablone} Schablone. Mit der Eingabe
+von
+\index{zzzhalign@{\tt\char92 halign}}\index{zzzindent@{\tt\char92 indent}}
+\begin{verbatim}
+\halign{\indent#\hfil&\quad#\hfil\cr
+Horizontale Liste&Kapitel 14\\
+Vertikale Liste&Kapitel 15\\
+Math. Liste&Kapitel 17\cr}
+\end{verbatim}
+erh\"alt man dasselbe Ergebnis, wie schon zuvor mit dem `\verb|\+|'
+Befehl, n\"amlich:
+
+\medskip\begin{tabular}{ll}
+Horizontale Liste&Kapitel 14\\
+Vertikale Liste&Kapitel 15\\
+Math. Liste&Kapitel 17
+\end{tabular}\medskip
+
+Dieses Beispiel zeigt aber doch im wesentlichen, wie der
+\index{zzzhalign@{\tt\char92 halign}}
+`\verb|\halign|' Befehl funktioniert.\footnote{halign kommt von
+`horizontal alignment', was soviel beeutet, wie
+\index{Horizontal!Ausrichtung}`horizontale
+Ausrichtung'.} Die erste Zeile, nicht im physikalischen Sinne, sondern
+der Text bis zum ersten `\verb|\cr|', stellt die \index{Schablone}
+Schablone f\"ur die
+weiteren Aktivit\"aten dar. Dieses Beispiel enth\"alt zwei
+\index{Muster!Eintrag}Mustereintr\"age
+in der Schablone, n\"amlich
+
+\medskip{\tt\char92 indent\char35\char92 hfil} und {\tt\char92
+quad\char35\char92 hfil}\medskip
+
+Jeder dieser \index{Muster!Eintrag}Mustereintr\"age enth\"alt genau ein `\verb|#|' Zeichen, an
+der sp\"ater der Text der Spalte eingef\"ugt wird. In der ersten Zeile
+wird so der Eintrag
+\index{zzzhfil@{\tt\char92 hfil}}\index{zzzindent@{\tt\char92 indent}}
+\begin{verbatim}
+\indent Horizontale Liste \hfil
+\end{verbatim}
+eingetragen. Nun zur Frage, was denn das `\verb|\hfil|' in dem Eintrag
+soll. Nun. Im \index{zzzhalign@{\tt\char92 halign}}
+`\verb|\halign|' Befehl werden zun\"achst {\em alle}
+Spalten eingelesen, und \TeX\ setzt dann die Breite der Spalten nach
+dem breitesten vorkommenden Eintrag. Da ein aktueller Eintrag ggf.\
+schmaler ist, als der breiteste, mu\ss{} mit einem `\verb|\hfil|' der
+restliche Platz aufgef\"ullt werden, um keine \index{Fehler!Meldung}
+Fehlermeldung zu erhalten.
+
+Es gibt einige Unterschiede zwischen dem
+\index{zzzhalign@{\tt\char92 halign}}`\verb|\halign|' Befehl und
+dem `\verb|\+|'~Befehl.
+\index{Eingabe!Tabellen}\index{Horizontal!Ausrichtung}
+\begin{enumerate}
+\item Beim dem Befehl zur horizontalen Ausrichtung wird die Breite der
+Spalten nach dem breitesten Eintrag automatisch berechnet.
+\item Jeder `\verb|\halign|' Befehl berechnet seine Spaltenbreiten f\"ur
+sich. Wenn sie in zwei verschiedenen Tabellen die selbe Ausrichtung
+haben wollen, dann m\"ussen sie sich schon einiger Tricks bedienen.
+\item Gro\ss{}e Tabellen lassen sich schlecht mit `\verb|\halign|'
+erstellen, da die ganze Tabelle im \index{Speicher!Tabelle}
+Speicher gehalten werden mu\ss{} und es
+deshalb zu Problemen kommen kann.
+\item Der `\verb|\halign|' Befehl ist wesentlich schneller, als der
+`\verb|\+|'~Befehl, da es sich um eine eingebaute Funktion von \TeX\
+und nicht um ein Makro handelt.
+\item Man kann sich die Eingabe vereinfachen. Statt der obigen Eingabe
+w\"are z.B.
+
+\medskip
+{\tt\char92 halign\char123\char92 indent\char35\ Liste\char92
+hfil\char38\char92 quad Kapitel \char35\char92 cr}\\{\tt
+Horizontale\char38 14\char92 cr Vertikale\char38 15\char92 cr
+Math.\char38 17\char92 cr\char125}\medskip
+
+auch m\"oglich gewesen. Man sollte sich allerdings nicht {\em zu} viel
+M\"uhe mit der \index{Optimierung}Optimierung geben (man h\"atte die `1' der
+\index{Kapitel!Nummer}Kapitelnummer
+noch mit in die \index{Schablone}
+Schablone \"ubernehmen k\"onnen), da die Zeit, die man
+daf\"ur aufwenden mu\ss{} in keinem Verh\"altnis zum Erfolg steht.
+\item Wenn die Spaltenbreiten h\"aufig wechseln, so wie in dem
+Programmbeispiel, sollte man lieber mit dem `\verb|\+|' Befehl
+arbeiten.
+\end{enumerate}
+\subsection{Beispiel zur Anwendung}
+Der wichtigste Punkt bei der Erstellung von Tabellen mit dem
+\index{zzzhalign@{\tt\char92 halign}}
+`\verb|\halign|' Befehl besteht in der g\"unstigen Konstruktion der
+\index{Schablone}
+Schablone. Hier sollte man ruhig etwas Zeit investieren, die sich
+sp\"ater erst auszahlt. Wenn sie z.B.\ die folgende Tabelle setzen
+wollen
+
+\medskip\begin{tabular}{rccl}
+{\em Name} & {\em Geschlecht} & {\em Alter} & {\em Schul-} \\
+ & & & {\em bildung} \\[1ex]
+\bf Karl & \em m\"annlich & 20 & Hauptschule\\
+\bf Tina & \em weiblich & 22 & Abitur\\
+\bf Otto & \em m\"annlich & 21 & Mittl. Reife\\
+\bf Jupp & \em m\"annlich & 20 & Abitur
+\end{tabular}\medskip
+
+Dann w\"unscht man sich nat\"urlich eine einfache \index{Eingabe!Tabellen}
+Eingabe. Die zweite Zeile sollte am besten mit
+\begin{verbatim}
+Tina & weiblich & 22 & Abitur\cr
+\end{verbatim}
+eingegeben werden k\"onnen. Die oberste Zeile mu\ss{} nat\"urlich gesondert
+behandelt werden, aber es soll m\"oglich sein, da\ss{} die rechte
+Ausrichtung der ersten Spalte\index{Spalte!Tabelle!Ausrichtung},
+die linke der letzten und die
+\index{Zentrierung}
+Zentrierung der mittleren Spalten automatisch vorgenommen wird. Ebenso
+w\"are es w\"unschenswert, wenn die \index{Schrift!Umschaltung}
+Schriftumschaltung in der ersten und
+der zweiten Spalte automatisch erfolgen w\"urde. Dies ist tats\"achlich
+m\"oglich mit folgender \index{Schablone}Schablone
+\index{zzzhalign@{\tt\char92 halign}}\index{zzhfil@{\tt\char92 hfil}}
+\begin{verbatim}
+\halign{\hfil\bf#&\quad\hfil\it#\hfil&\quad\hfil#\hfil&\quad#\hfil\cr
+\end{verbatim}
+Jetzt brauchen sie nur noch die Zeilen, entsprechend der `Tina'-Zeile
+einzugeben, und sie erhalten das gew\"unschte Ergebnis. In der
+Titelzeile ist allerdings bei jedem Eintrag die Angabe der
+\index{Schrift!Form}Schriftform
+notwendig, um die Vorgaben zu \"uberschreiben.
+
+Die Tabelle kann \"ubrigens mit dem Befehl \index{zzzopenup@{\tt\char92 openup}}
+`\verb|\openup|' etwas
+auseinandergezogen werden. Mit der Angabe `\verb|\openup2pt|' entsteht
+
+\medskip\begin{tabular}{rccl}
+{\em Name} & {\em Geschlecht} & {\em Alter} & {\em Schul-} \\[2pt]
+ & & & {\em bildung} \\[1ex]
+\bf Karl & \em m\"annlich & 20 & Hauptschule\\[2pt]
+\bf Tina & \em weiblich & 22 & Abitur\\[2pt]
+\bf Otto & \em m\"annlich & 21 & Mittl. Reife\\[2pt]
+\bf Jupp & \em m\"annlich & 20 & Abitur
+\end{tabular}\medskip
+
+Der zus\"atzliche \index{Zwischenraum}
+Zwischenraum zwischen der Titelzeile und dem Rest der
+Tabelle wurde mit der Angabe von
+\index{zzznoalign@{\tt\char92 noalign}}
+\index{zzzsmallskip@{\tt\char92 smallskip}}
+\begin{verbatim}
+\noalign{\smallskip}
+\end{verbatim}
+erreicht. Grunds\"atzlich ist es immer m\"oglich mit diesem Befehl
+vertikale Elemente in eine Tabelle einzuf\"ugen, die nicht zu der
+Tabelle selber geh\"oren. Von dieser M\"oglichkeit kann man Gebrauch
+machen, wenn man etwas zwischen zwei Zeilen schreiben m\"ochte. Mit der
+Eingabe von
+\index{zzzhalign@{\tt\char92 halign}}\index{zzzhfil@{\tt\char92 hfil}}
+\index{zzznoalign@{\tt\char92 noalign}}
+\begin{verbatim}
+\halign{#\hfil&\quad#\hfil\cr
+Erste & Spalte \cr\noalign{Dazwischen}
+Zweite & Spalte\cr}
+\end{verbatim}
+erhalten sie z.B.
+
+\medskip\begin{tabular}{ll}
+\qquad Erste & Zeile \\
+Dazwischen\\
+\qquad Zweite & Zeile
+\end{tabular}\medskip
+
+\subsection{Weitere Befehle}
+Es ist auch m\"oglich, da\ss{} sie \TeX\ entscheiden lassen, wieviel Platz
+zwischen die \index{Spalte!Tabelle}
+Tabellenspalten gesetzt werden soll. Sie k\"onnen also auf
+den \index{zzzquad@{\tt\char92 quad}}
+`\verb|\quad|' Befehl zwischen den Spalten verzichten. Statt
+dessen geben sie an, wieviel {\tt tabskipglue} zwischen den Spalten
+verwendet werden soll. Wenn sie also statt der obigen
+\index{Schablone}Schablone\index{zzzhalign@{\tt\char92 halign}}
+\index{zzzhfil@{\tt\char92 hfil}}
+\index{zzztabskip@{\tt\char92 tabskip}}
+\begin{verbatim}
+\tabskip=1em plus 2em minus.5em
+\halign{\hfil\bf#&\hfil\it#\hfil&\hfil#\hfil&#\hfil\cr
+\end{verbatim}
+schreiben, dann erhalten sie trotzdem die Tabelle in der Form, wie sie
+sie schon gesehen haben, als
+
+\medskip\begin{tabular}{rccl}
+{\em Name} & {\em Geschlecht} & {\em Alter} & {\em Schul-} \\[2pt]
+ & & & {\em bildung} \\[1ex]
+\bf Karl & \em m\"annlich & 20 & Hauptschule\\[2pt]
+\bf Tina & \em weiblich & 22 & Abitur\\[2pt]
+\bf Otto & \em m\"annlich & 21 & Mittl. Reife\\[2pt]
+\bf Jupp & \em m\"annlich & 20 & Abitur
+\end{tabular}\medskip
+
+Der \index{Leim}
+Tabskip-Leim wird auch vor sie erste und hinter die letzte Spalte
+gesetzt, so da\ss{} sie mit
+\index{zzzhalign@{\tt\char92 halign}}
+\begin{verbatim}
+\halign to... \halign spread
+\end{verbatim}
+genauso verfahren k\"onnen, wie bei den entsprechenden Boxbefehlen.
+
+Die Befehlsfolge
+\index{zzzhsize@{\tt\char92 hsize}}`\verb|\halign| \verb|to| \verb|\hsize|' wird
+allerdings nur dann richtig verstanden, wenn der Tabskip-Leim auch die
+n\"otige F\"ahigkeit zur Streckung besitzt. Falls dies nicht der Fall ist
+wird eine \index{Fehler!Meldung}Fehlermeldung auf dem \index{Bildschirm}
+Bildschirm und im \index{File!Log}Logfile ausgegeben.
+Das geschieht auch, wenn ein Eintrag so gro\ss{} oder klein ist, da\ss{} die
+angegebene \index{Groesse!Leim@Gr\"o\ss{}e!Leim}
+Gr\"o\ss{}e des Leims nicht ausreicht um eine passende Spalte
+daraus zu machen.
+
+Die Werte f\"ur den Tabskip-Leim k\"onnen auch in der \index{Schablone}
+Schablone ge\"andert
+werden. Es m\"ussen also nicht f\"ur alle Spalten die gleichen Werte
+verwendet werden. Damit k\"onnen sie einzelne Spalten von den anderen
+absetzen.
+
+\TeX\ \"ubernimmt die \index{Schablone}
+Schablone $1:1$, d.h.\ da\ss{} nichts in der Schablone
+expandiert wird. Die einzigen Befehle, die \TeX\ innerhalb der
+Schablone erkennt sind
+\index{zzzspan@{\tt\char92 span}}
+\index{zzztabskip@{\tt\char92 tabskip}}
+\begin{verbatim}
+& # \cr \span \tabskip
+\end{verbatim}
+Der Befehl `\verb|\span|' sorgt daf\"ur, da\ss{} das n\"achste Token in der
+Schablone {\em doch} expandiert wird.\footnote{{\em Innerhalb} der
+Tabelle hat der Befehl eine andere Wirkung, die sp\"ater erkl\"art wird.}
+Dies f\"uhrt zu einem besonderen Verhalten aller `\verb|\if|' Befehle
+innerhalb von Tabellen. Verwenden sie diese Befehle besser nicht
+innerhalb von Tabellen, wenn sie Probleme vermeiden wollen.
+
+Es kann vorkommen, da\ss{} alle Spalten, bis auf eine oder zwei eine
+\"ahnliche Form haben, so da\ss{} sich entsprechende \index{Muster!Fuer
+Schablone@Muster!F\"ur Schablone}Muster in der \index{Schablone}Schablone
+empfehlen. F\"ur die Eintr\"age, die dieser Form nicht entsprechen, gibt
+es den Befehl \index{zzzomit@{\tt\char92 omit}}
+`\verb|\omit|'. Wenn er als erstes im Eintrag steht,
+wird das Muster aus der Schablone durch ein einfaches `\verb|#|'
+ersetzt.
+
+\subsection{Besondere Tabellen}
+\subsubsection{Dezimalpunkte}
+Wie geht man vor, wenn man eine Tabelle schreiben will, die z.B.\
+Geldwerte enthalten soll, bei denen nat\"urlich der Dezimalpunkt
+\"ubereinander stehen soll. Man kann nat\"urlich aus jeder Zahl drei
+\index{Spalte!Zahlen}
+Spalten machen, und die \index{Zwischenraum}
+Zwischenr\"aume so setzen, da\ss{} die mittlere
+Spalte den Dezimalpunkt enth\"alt und trotzdem noch gut aussieht. Es
+gibt aber auch eine andere M\"oglichkeit. Der Trick besteht darin, da\ss{}
+alle \index{Ziffer}
+Ziffernzeichen dieselbe Breite haben. Man kann nun ein Zeichen,
+das sonst nicht gebraucht wird zu einem \index{Aktiv!Zeichen}
+aktiven Zeichen machen und
+durch dieses Zeichen einen \index{Leer!Raum}
+Leerraum ausgeben lassen, der genau der
+Breite eines \index{Ziffer}
+Ziffernzeichens entspricht. Wenn man mit der Befehlsfolge
+\index{zzzactive@{\tt\char92 active}}\index{zzzcatcode@{\tt\char92 catcode}}
+\index{zzzdef@{\tt\char92 def}}\index{zzzdigitwidth@{\tt\char92 digitwidth}}
+\index{zzzkern@{\tt\char92 kern}}\index{zzznewdimen@{\tt\char92 newdimen}}
+\index{zzzsetbox@{\tt\char92 setbox}}
+\begin{verbatim}
+\newdimen\digitwidth
+\setbox0=\hbox{\rm0}
+\digitwidth=\wd0
+\catcode`?=\active
+\def?{\kern\digitwidth}
+\end{verbatim}
+Das Zeichen `\verb|?|' zu einem aktiven Zeichen gemacht hat, dann kann
+man die Zahlen $123.45$ und $6.789$ als `\verb|123.45?|' und
+`\verb|??6.789|' in dem Eintrag eingeben, und sie werden beide genau
+mit dem Dezimalpunkt \"ubereinander gesetzt.
+
+\subsubsection{Lange Tabellen}
+Was ist mit Tabellen, wie dieser
+
+\index{zzzcal@{\tt\char92 cal}}
+\medskip\begin{tabular}{r@{$=$}*{15}{c}}
+$n$ & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 &
+$\ldots$ \\
+${\cal G}(n)$ & 1 & 2 & 4 & 3 & 6 & 7 & 8 & 16 & 18 & 25 & 32 & 11 &
+64 & 31 & $\ldots$
+\end{tabular}\medskip
+
+Mit Sicherheit w\"are es h\"ochst m\"uhsam f\"ur diese Tabelle eine
+\index{Schablone}Schablone
+zu schreiben, insbesondere, da die Tabelle nur zwei Zeilen hat. Es
+gibt aber einen einfacheren Weg. Wenn sie an einer Stelle der
+Schablone ein \index{Kaufmannsund}\index{Doppelt!Kaufmannsund}
+doppeltes `\verb|&|' schreiben, dann setzt \TeX\ die
+folgenden Eintr\"age bis zum `\verb|\cr|' beliebig oft fort.
+\index{zzzcdots@{\tt\char92 cdots}}
+
+\medskip
+$t_1\,${\tt\char38}$\,t_2\,${\tt\char38}$\,t_3\,${\tt\char38\char38}
+$\,t_4\,${\tt\char38}$\,t_5\,${\tt\char92 cr}
+\ wird verstanden als \
+$t_1\,${\tt\char38}$\,t_2\,${\tt\char38}$\,t_3\,${\tt\char38}$\,t_4\,$
+{\tt\char38}$\,t_5\,${\tt\char38}$\,t_4\,${\tt\char38}$\,t_5\,$
+{\tt\char38}$\,t_4\,${\tt\char38}$\,\,\cdots\,$
+
+und
+
+{\tt\char38}$t_1\,${\tt\char38}$\,t_2\,${\tt\char38}$\,t_3\,${\tt\char38}
+$\,t_4\,${\tt\char38}$\,t_5\,${\tt\char92 cr}
+\ wird verstanden als \
+$t_1\,${\tt\char38}$\,t_2\,${\tt\char38}$\,t_3\,${\tt\char38}$\,t_4\,$
+{\tt\char38}$\,t_5\,${\tt\char38}$\,t_1\,${\tt\char38}$\,t_2\,$
+{\tt\char38}$\,t_3\,${\tt\char38}$\,\,\cdots\,.$\medskip
+
+Der evtl.\ gesetzte Tabskip-Leim wird in die Kopie \"ubernommen. Somit
+l\"a\ss{}t sich die \index{Schablone}Schablone der obigen Tabelle als
+\index{zzzhfil@{\tt\char92 hfil}}
+\begin{verbatim}
+$\hfil#$ =&&\ \hfil#\hfil\cr
+\end{verbatim}
+schreiben.
+
+\subsection{Breite Eintr\"age}
+Mitunter ist es n\"otig, da\ss{} sich ein Eintrag einer Tabelle \"uber mehr
+als eine Spalte erstreckt. F\"ur diesen Fall bieten sich zwei
+M\"oglichkeiten an.
+\subsubsection{Verstecken der Breite}
+In {\em Plain} \TeX\ wird der Befehl
+\index{zzzhidewidth@{\tt\char92 hidewidth}}`\verb|\hidewidth|' als
+\index{zzzhskip@{\tt\char92 hskip}}
+\begin{verbatim}
+\hskip-1000pt plus 1fill
+\end{verbatim}
+definiert. Er hat also eine extreme negative, nat\"urliche Breite, kann
+aber beliebig gestreckt werden. Wenn sie diesen Befehl rechts hinter
+einen Spalteneintrag schreiben, erscheint es f\"ur \TeX, als habe er
+keine Breite, und der Eintrag ragt rechts \"uber seine
+\index{Box!Tabellen}Box hinaus.
+Analog arbeitet der Befehl, wenn er links vor einen Eintrag
+geschrieben wird. Sp\"ater wird noch eine n\"utzliche Eigenschaft dieses
+Befehls gezeigt, wenn er rechts {\em und} links vom Eintrag steht.
+\subsubsection{Eintr\"age \"uber mehrere Spalten}
+Statt der obigen Methode k\"onnen sie auch den Befehl
+\index{zzzspan@{\tt\char92 span}}
+`\verb|\span|' anstelle des `\verb|&|' verwenden.\footnote{Hier hat
+dieser Befehl eine {\em ganz} andere Wirkung, als in der
+\index{Schablone}Schablone!}
+\TeX\ behandelt die Eintr\"age vor und hinter diesem Befehl genauso, als
+wenn dort ein `\verb|&|' st\"unde, schreibt sie aber anschlie\ss{}end in
+eine Box, die sich \"uber die Breite zweier Eintr\"age erstreckt.
+
+Sie k\"onnen den Befehl zusammen mit \index{zzzomit@{\tt\char92 omit}}
+`\verb|\omit|' verwenden, um
+eventuell auftretende automatische Eintr\"age zu unterbinden.
+Schlie\ss{}lich gibt es noch den Befehl
+\index{zzzmultispan@{\tt\char92 multispan}}`\verb|\multispan|', dem eine
+Nummer folgen mu\ss{}, die angibt, wieviele \index{Spalte!Zusammenfassen}
+Spalten zusammengefa\ss{}t werden
+sollen. Sollen mehr als $9$ Spalten zusammengefa\ss{}t werden, mu\ss{} die
+Zahl in geschweiften \index{Klammer!Omit}Klammern angegeben werden.
+
+Sie k\"onnen sich die Wirkung der Befehle noch einmal am folgenden
+Beispiel verdeutlichen.
+
+\medskip\begin{tabular}{ccc}
+Eins & Zwei & Drei \\
+\multicolumn{2}{c}{Eins-Zwei} & Drei\\
+Eins &\multicolumn{2}{c}{Zwei-Drei}\\
+\multicolumn{3}{c}{Eins-Zwei-Drei}
+\end{tabular}\medskip
+
+wurde mit
+\index{zzzhalign@{\tt\char92 halign}}\index{zzzhfil@{\tt\char92 hfil}}
+\index{zzzmultispan@{\tt\char92 multispan}}
+\index{zzzspan@{\tt\char92 span}}
+\index{zzztabskip@{\tt\char92 tabskip}}
+\index{zzzvbox@{\tt\char92 vbox}}
+\begin{verbatim}
+$$\tabskip=3em
+\vbox{\halign{&\hfil#\hfil\cr
+Eins&Zwei&Drei\cr
+Eins-\span Zwei&Drei\cr
+Eins&Zwei-\span Drei\cr
+\multispan3 Eins-Zwei-Drei\cr}}$$
+\end{verbatim}
+erzeugt.
+\subsection{Gerahmte Tabellen}
+\index{Knuth. D.}
+D.~Knuth spricht davon, da\ss{} die Erstellung von gerahmten Tabellen mit
+zum Schwierigsten geh\"ort, was in \TeX\ realisiert werden kann.
+Tats\"achlich ergeben sich {\em einige} Schwierigkeiten, wenn man sich
+genauer mit diesem Thema besch\"aftigt.\footnote{Die Schwierigkeiten
+sind so gro\ss{}, da\ss{} ich jedem nur empfehlen kann, nur im \"aussersten
+Notfall {\em nicht} die Tabular-Umgebung von \LaTeX\ zu benutzen.}
+
+Zun\"achst m\"ussen sie den \index{Zwischenraum}
+Zwischenraum zwischen den Zeilen ausschalten,
+und den n\"otigen \index{Abstand!Zeilen}
+Zeilenabstand durch `Struts' in der \index{Schablone}Schablone
+aufbauen, da sonst die senkrechten \index{Linie!Senkrecht}
+Linien nicht aneinander sto\ss{}en
+w\"urden. Dies geschieht mit dem Befehl
+\index{zzzoffinterlineskip@{\tt\char92 offinterlineskip}}
+`\verb|\offinterlineskip|'. Die
+H\"ohe der senkrechte Linie braucht nicht spezifiziert zu werden, da
+\TeX\ die Boxh\"ohe vorgibt und sich der unspezifizierte Befehl an die
+umgebende Box anpa\ss{}t. Allerdings mu\ss{} jeder senkrechte Strich in eine
+eigene Spalte geschrieben werden. Im \TeX Book findet sich folgendes
+Beispiel
+\index{zzzhalign@{\tt\char92 halign}}
+\index{zzzhfil@{\tt\char92 hfil}}
+\index{zzzhrule@{\tt\char92 hrule}}
+\index{zzzmultispan@{\tt\char92 multispan}}
+\index{zzzoffinterlineskip@{\tt\char92 offinterlineskip}}
+\index{zzzstrut@{\tt\char92 strut}}
+\index{zzzvbox@{\tt\char92 vbox}}
+\index{zzzvrule@{\tt\char92 vrule}}
+\begin{verbatim}
+\vbox{\offinterlineskip
+\hrule
+\halign{&\vrule#&
+ \strut\quad\hfil#\quad\cr
+\multispan5\hrulefill\cr
+height2pt&\omit&&\omit&\cr
+&Year\hfil&&World Population&\cr
+height2pt&\omit&&\omit&\cr
+\multispan5\hrulefill\cr
+height2pt&\omit&&\omit&\cr
+&8000\BC&&5,000,000&\cr
+&50\AD&&200,000,000&\cr
+&1650\AD&&500,000,000&\cr
+&1850\AD&&1,000,000,000&\cr
+&1945\AD&&2,300,000,000&\cr
+&1980\AD&&4,400,000,000&\cr
+height2pt&\omit&&\omit&\cr}
+\hrule}
+\end{verbatim}
+An diesem Beispiel k\"onnen sie sehen, wie vergleichsweise k\"ummerlich
+die Befehle f\"ur gerahmte Tabellen in {\em Plain} \TeX\ tats\"achlich ist, denn
+das Ergebnis ist gerade mal
+
+\medskip\begin{tabular}{|r|r|}\hline
+Year\hfil & World Population \\ \hline
+8000 B.C. & 5,000,000\\
+50 A.D. & 200,000,000\\
+1650 A.D. & 500,000,000\\
+1850 A.D. & 1,000,000,000\\
+1945 A.D. & 2,300,000,000\\
+1980 A.D. & 4,400,000,000\\ \hline
+\end{tabular}\medskip
+
+Etwas verwirrend k\"onnten noch die Zeilen
+\index{zzzomit@{\tt\char92 omit}}
+\begin{verbatim}
+height2pt&\omit&&\omit&\cr
+\end{verbatim}
+sein. Sie bewirken, da\ss{} auch der Anschlu\ss{} zu den waagerechten Zeilen
+geschafft wird.
+\subsection{Hilfen bei Tabellen}
+Wenn bei der Konstruktion einer Tabelle etwas schief geht, empfiehlt
+sich folgendes Vorgehen. F\"ugen sie an einer Stelle, an der sie den
+\index{Fehler!Behebung}
+Fehler vermuten eine unbekannte \index{Kontrollsequenz}
+Kontrollsequenz ein, ich benutze f\"ur
+diese Zwecke immer `\verb|\fritz|'. Dann k\"onnen sie mit dem Befehl
+\index{zzzshowlists@{\tt\char92 showlists}}
+`\verb|\showlists|' eine genauer Information dar\"uber bekommen, was
+\TeX\ an dieser Stelle gerade macht.
+
+Eine weitere Hilfe interessiert wohl mehr die \index{Makro!Design}
+Makrodesigner. Jede
+Zeile eines Alignments {\em mu\ss{}} mit dem Befehl `\verb|\cr|'
+abgeschlossen werden. Sie k\"onnen durch das Primitv
+\index{zzzcrcr@{\tt\char92 crcr}}`\verb|\crcr|' dem
+Fall vorbeugen, da\ss{} ein Anwender diesen `\verb|\cr|' Befehl vergi\ss{}t.
+Die Wirkung dieses Befehls ist folgende. Steht er unmittelbar hinter
+einem `\verb|\cr|', dann wirkt er gar nicht, steht er woanders, dann
+wirkt er wie ein `\verb|\cr|' Befehl.
+
+Wenn ihnen selber die andauernde Tipperei der `\verb|\cr|' Befehle
+zuviel wird, dann gibt es noch eine M\"oglichkeit. Schlie\ss{}en sie ihre
+Tabelle in eine eigene Gruppe ein und stellen sie dann innerhalb der
+Gruppe der Tabelle die Befehle
+\index{zzzlet@{\tt\char92 let}}\index{zzzobeylines@{\tt\char92 obeylines}}
+\begin{verbatim}
+\let\par=\cr
+\obeylines
+\end{verbatim}
+voran. Durch den `\verb|\obeylines|' Befehl wird jede Zeile wie ein
+eigener \index{Absatz}
+Absatz behandelt. Das automatisch eingef\"ugte
+\index{zzzpar@{\tt\char92 par}}`\verb|\par|'
+wird als `\verb|\cr|' interpretiert. Diese Vorgehensweise empfiehlt
+sich aber nur bei l\"angeren Tabellen, die sie aber sowieso mit
+`\verb|\+|' ausf\"uhren sollten. Dort funktioniert dieser Trick aber
+leider nicht.
+
+\chapter{Ausgaberoutinen}\index{Ausgabe!Routine}
+In einem vorhergehenden Kapitel haben sie schon gesehen, wie \TeX\ aus
+der langen Reihe von Token zun\"achst Paragraphen und dann Seiten macht.
+Diese Seiten bestehen zun\"achst allerdings nur aus dem eigentlichen
+\index{Seite!Text}Seitentext und den \index{Einfuegung@Einf\"ugung}
+Einf\"ugungen, z.B.\ \index{Fussnote@Fu\ss{}note}Fu\ss{}noten. Was noch fehlt sind
+die \index{Kopf!Zeile}Kopf- und \index{Fusszeile@Fu\ss{}note}
+Fu\ss{}zeilen.\footnote{Man beachte den Unterschied zwischen
+Fu\ss{}noten und Fu\ss{}zeilen. In letzteren stehen \"ublicherweise die
+\index{Seite!Nummer}
+Seitennummern o.\"a.} Diese Erg\"anzungen werden von einer sogenannten
+Outputroutine noch zu der Seite hinzugef\"ugt.
+\section{Die Outputroutine von {\em Plain} \TeX}
+Normalerweise ist eine \index{Seite!Masse@Seite!Ma\ss{}e}
+Seite von {\em Plain} \TeX\ $8\frac{1}{2}$ Inch breit und 11
+Inch hoch, dazu ein \index{Rand!Bei Plain@Rand!Bei {\it Plain}}
+Rand von einem Inch an allen vier Seiten. Diese
+Werte k\"onnen nat\"urlich ver\"andert werden. Dazu dienen die Befehle
+\index{zzzhsize@{\tt\char92 hsize}}
+`\verb|\hsize|' und \index{zzzvsize@{\tt\char92 vsize}}
+`\verb|\vsize|'. {\em Plain} \TeX\ setzt
+`\verb|\hsize=6.5in|' und erh\"alt damit eine \index{Seite!Breite}
+Seitenbreite von
+$8\frac{1}{2}$ Inch (denken sie an die beiden \index{Raender@R\"ander}R\"ander von einem Inch
+und `\verb|\vsize=8.9in|'. Nicht, wie erwartet `\verb|9in|', da {\em Plain}
+\TeX\ keinen Platz f\"ur die \index{Seite!Nummer}Seitennummer reserviert.
+
+Sie sollten diese beiden Werte nicht zu oft \"andern. Am besten nur ganz
+zu Beginn eines Textes, oder wenn sie sicher sind, da\ss{} \TeX\ alle
+Seiten ausgegeben hat.
+
+Sie k\"onnen dar\"uber hinaus auch noch die gesamte Seite auf dem Papier
+verschieben und zwar mit den Befehlen \index{zzzhoffset@{\tt\char92 hoffset}}
+`\verb|\hoffset|' und\index{zzzvoffset@{\tt\char92 voffset}}
+`\verb|\voffset|'. Die Angabe
+\begin{verbatim}
+\hoffset=.5in \voffset=-1in
+\end{verbatim}
+verschiebt ihre Seite um ein halbes Inch nach rechts und ein Inch nach
+oben. Sie sollten aber auf die physikalischen Grenzen ihres Mediums,
+meist Papiers, achten, da \TeX\ daf\"ur keine Kontrolle bereitstellt.
+
+Die einfachste Art die Outputroutine von {\em Plain} \TeX\ zu \"andern besteht
+in der Angabe von
+\index{zzznopagenumbers@{\tt\char92 nopagenumbers}}
+\begin{verbatim}
+\nopagenumbers
+\end{verbatim}
+Mit diesem Befehl verhindern sie die \index{Ausgabe!Seitennummern}
+Ausgabe von \index{Seite!Nummer}Seitennummern, was
+vor allem bei kurzen Texten recht hilfreich sein d\"urfte. Dies ist aber
+nur ein Spezialfall. Generell k\"onnen die \index{Kopf!Zeile}Kopf- und die
+\index{Fusszeile@Fu\ss{}note}Fu\ss{}zeile einer
+Seite mit den Befehlen
+\index{zzzfootline@{\tt\char92 footline}}\index{zzzheadline@{\tt\char92 headline}}
+\begin{verbatim}
+\headline={<Kopfzeile>}
+\footline={<Fusszeile>}
+\end{verbatim}
+gesetzt werden. Mit \index{zzzhrulefill@{\tt\char92 hrulefill}}
+`\verb|\headline={\hrulefill}|' w\"urde z.B.\ vor
+jede Seite ein waagerechter Strich gezogen. Die generelle Idee ist es,
+da\ss{} die Outputroutine von {\em Plain} \TeX\ vor die Seite ein
+\index{zzzline@{\tt\char92 line}}
+\index{zzzthe@{\tt\char92 the}}
+\begin{verbatim}
+\line{\the\headline}
+\end{verbatim}
+und hinter die Seite ein
+\index{zzzfootline@{\tt\char92 footline}}
+\begin{verbatim}
+\line{\the\footline}
+\end{verbatim}
+schreibt, wobei die \index{Kopf!Zeile}Kopf- bzw.\ \index{Fusszeile@Fu\ss{}note}
+Fu\ss{}zeile etwas von der eigentlichen
+Seite abgesetzt wird. Das Makro \index{zzznopagenumbers@{\tt\char92 nopagenumbers}}
+`\verb|\nopagenumbers|' ist also
+einfach eine \index{Abkuerzung@Abk\"urzung}Abk\"urzung f\"ur
+\index{zzzfootline@{\tt\char92 footline}}\index{zzzhfil@{\tt\char92 hfil}}
+\begin{verbatim}
+\footline={\hfil}
+\end{verbatim}
+Normalerweise ist
+\index{zzzfolio@{\tt\char92 folio}}\index{zzzhss@{\tt\char92 hss}}
+`\verb|\footline={\hss\tenrm\folio\hss}|' definiert,
+wobei `\verb|\folio|' die \index{Seite!Nummer}
+Seitennummer ausgibt. Die Umschaltung auf
+die \index{Schrift!Umschaltung}
+Schrift ist notwendig, da sonst immer die aktuelle Schrift
+verwendet w\"urde, was nicht immer w\"unschenswert ist. Das Makro leistet
+aber noch mehr. Wenn die \index{Seite!Zahl}
+Seitenzahl negativ ist, wird sie in r\"omischen
+\index{Ziffer}
+Ziffern ausgegeben, ist sie positiv, dann wird sie in normalen
+\index{Lateinisch!Ziffern}
+lateinischen Ziffern ausgegeben. Die Definition lautet:
+\index{zzzelse@{\tt\char92 else}}\index{zzzfi@{\tt\char92 fi}}
+\index{zzzifnum@{\tt\char92 ifnum}}\index{zzznumber@{\tt\char92 number}}
+\index{zzzpageno@{\tt\char92 pageno}}
+\index{zzzromannumeral@{\tt\char92 romannumeral}}
+\begin{verbatim}
+\ifnum\pageno<0 \romannumeral-\pageno \else\number\pageno \fi
+\end{verbatim}
+
+Hier nun mal ein Beispiel einer \index{Seite!Nummer}
+Seitennummerierung aus dem \TeX book,
+bei dem die Seitennummern in der \index{Kopf!Zeile}Kopfzeile ausgegeben werden, und zwar
+bei ungeraden und geraden \index{Seite!Rechts-Links}
+Seiten unterschiedlich.
+\index{zzzbaselineskip@{\tt\char92 baselineskip}}
+\index{zzzdef@{\tt\char92 def}}
+\index{zzzelse@{\tt\char92 else}}
+\index{zzzfi@{\tt\char92 fi}}
+\index{zzzfolio@{\tt\char92 folio}}
+\index{zzzheadline@{\tt\char92 headline}}
+\index{zzzhfil@{\tt\char92 hfil}}
+\index{zzzifodd@{\tt\char92 ifodd}}
+\index{zzznopagenumbers@{\tt\char92 nopagenumbers}}
+\index{zzzpageno@{\tt\char92 pageno}}
+\index{zzzvoffset@{\tt\char92 voffset}}
+\begin{verbatim}
+\nopagenumbers % suppress footlines
+\headline={\ifodd\pageno\rightheadline \else\leftheadline\fi}
+\def\rightheadline{\tenrm\hfil RIGHT RUNNING HEAD\hfil\folio}
+\def\leftheadline{\tenrm\folio\hfil LEFT RUNNING HEAD\hfil}
+\voffset=2\baselineskip
+\end{verbatim}\index{Baseline!Skip}
+Mit ``Running Head''\footnote{Laufender \index{Kopf!Laufender}
+Kopf.} werden in englischen
+B\"uchern Kopfzeilen bezeichnet, die auf mehreren Seiten erscheinen. Die
+Angabe von `\verb|\voffset|' ist n\"otig, damit auch weiterhin ein
+\index{Abstand!Kopfzeile}
+Abstand zur eigentlichen Seiten bestehen bleibt.
+
+Wenn sie \index{zzzvsize@{\tt\char92 vsize}}
+`\verb|\vsize|' nicht \"andern, dann wird sich auch die
+Position der \index{Kopf!Zeile}Kopf- bzw.\ \index{Fusszeile@Fu\ss{}note}
+Fu\ss{}zeilen nicht \"andern. Wenn sie z.B.\ den
+Befehl
+\index{zzzraggedbottom@{\tt\char92 raggedbottom}}
+`\verb|\raggedbottom|' verwenden, so da\ss{} nicht mehr alle Seiten
+die gleiche \index{Hoehe!Seite@H\"ohe!Seite}
+H\"ohe haben, dann \"andert sich dennoch die Position der Fu\ss{}zeile nicht!
+\section{Die Interna der Outputroutinen}
+Beim Aufruf einer \index{Ausgabe!Routine}
+Ausgaberoutine ist in der \index{Box!255}Box255 immer die aktuelle,
+zur Ausgabe bereite Seite gespeichert. Der Befehl
+\index{zzzoutput@{\tt\char92 output}}`\verb|\output|'
+wird wie ein normaler Befehl, so wie
+\index{zzzeverypar@{\tt\char92 everypar}}`\verb|\everypar|' o.\"a.\
+bearbeitet, mit der Ausnahme, da\ss{} immer eine Gruppierungsklammer um
+den Befehl geschrieben wird. Dies dient der Vermeidung von
+Seiteneffekten. Die Ausgaberoutinen \"andern z.B.\ oft den Baselineskip,
+wobei die \"Anderung nat\"urlich nicht in den weiteren Text flie\ss{}en soll.
+
+Wenn keine spezielle Outputroutine installiert wird
+\index{zzzoutput@{\tt\char92 output}}
+(`\verb|\output={...}|'), dann verwendet \TeX\ seine eigene, minimale
+Ausgaberoutine
+\index{zzzshipout@{\tt\char92 shipout}}
+\begin{verbatim}
+\output={\shipout\box255}
+\end{verbatim}
+Der Befehl `\verb|\shipout|' schreibt das \index{Argument!Bei Shipout}
+Argument in den derzeit
+g\"ultigen \index{File!DVI}Dvi-File, zeigt den Inhalt der Zahlregister 0 bis 9 an und
+f\"uhrt die anstehenden
+\index{zzzwrite@{\tt\char92 write}}
+`\verb|\write|'-Befehle aus. Genauere
+Informationen k\"onnen auch hier wieder mit dem Befehl
+\index{zzztracingoutput@{\tt\char92 tracingoutput}}
+`\verb|\tracingoutput|' erhalten werden, wenn der Wert dieser
+Variablen gr\"o\ss{}er als Null ist. Achten sie darauf, da\ss{} alle Makros
+w\"ahrend eines Shipout genau definiert sind, da sie zu der dann
+g\"ultigen Version expandiert werden.
+
+Neben dem 255ten \index{Box!255}Boxregister k\"onnen auch noch andere Registerwerte
+Einflu\ss{} auf die Ausgaberoutine haben und von dieser ausgewertet
+werden. \TeX\ verwendet z.B. die Werte
+\index{zzzinsertpenalties@{\tt\char92 insertpenalties}}
+\index{zzzoutput@{\tt\char92 output}}
+\index{zzzoutputpenalty@{\tt\char92 outputpenalty}}
+\begin{verbatim}
+\insertpenalties
+\outputpenalty
+\end{verbatim}
+in folgender Weise. Der erste Wert enth\"alt die Anzahl der
+\index{Einfuegung!Anzahl@Einf\"ugung!Anzahl}Einf\"ugungen,
+die noch zur\"uckgehalten werden, der zweite Wert ist gleich den
+Strafpunkten dieses \index{Seite!Umbruch}
+Seitenumbruchs. Die Ausgaberoutine von {\em Plain}
+\TeX\ erkennt z.B.\ ein
+\index{zzzsupereject@{\tt\char92 supereject}}
+`\verb|\supereject|' um alle noch ausstehenden
+Einf\"ugungen an den Dvi-File auszugeben. Dies geschieht, indem der
+zweite Wert auf $-20000$ gesetzt wird und der zweite Wert ausgewertet
+wird um zu entscheiden, wieviele Einf\"ugungen noch vorhanden sind.
+
+Die voreingestellte Ausgaberoutine von {\em Plain} \TeX, die einfach
+alles ausgibt hat nat\"urlich auch ein Pendant, eine Ausgaberoutine, die
+nichts ausgibt. Diese ist definiert als
+\index{zzzoutput@{\tt\char92 output}}
+\index{zzzoutputpenalty@{\tt\char92 outputpenalty}}
+\index{zzzpenalty@{\tt\char92 penalty}}
+\index{zzzunvbox@{\tt\char92 unvbox}}
+\begin{verbatim}
+\output={\unvbox255 \penalty=\outputpenalty}
+\end{verbatim}
+Mit dem ersten Befehl wird die Seite wieder zur\"uckgegeben, mit dem
+zweiten wieder die richtige Anzahl an Strafpunkten gesetzt. Jetzt
+versucht \TeX\ wieder einen \index{Seite!Umbruch}
+Seitenumbruch zu finden. Da sich nichts
+ge\"andert hat, wird auch wieder derselbe Seitenumbruch gefunden,
+allerdings viel schneller, als beim ersten Mal, da z.B.\ die
+Paragraphen nicht umgebrochen werden brauchen. Somit befindet sich
+\TeX\ in einer Endlosschleife.\index{Schleife!Endlos}
+
+Um derartige Endlosschleifen zu verhindern gibt es in \TeX\ einen
+Mechanismus. Bei jedem Aufruf einer Ausgaberoutine wird der Zahler
+\index{zzzdeadcycles@{\tt\char92 deadcycles}}
+`\verb|\deadcycles|' um eins erh\"oht und erst bei einer tats\"achlichen
+Ausgabe wieder auf Null zur\"uckgestellt. Wenn der Wert dieser Variablen
+gleich oder gr\"o\ss{}er als
+\index{zzzmaxdeadcycles@{\tt\char92 maxdeadcycles}}
+`\verb|\maxdeadcycles|' wird, dann wird die
+voreingestellte Ausgaberoutine aufgerufen.
+
+Nach dem Aufruf einer Ausgaberoutine mu\ss{} die \index{Box!255}Box255
+\index{Leer!Box}leer sein, da
+\TeX\ dort die \index{Neu!Seite}\index{Seite!Neu}
+neue Seite aufbauen will. Sollte das Register nicht
+leer sein, dann geht \TeX\ davon aus, da\ss{} sie das Register
+\index{Fehler!Box255}fehlerhaft
+benutzen und zerst\"ort den Inhalt.
+\section{Beispiele f\"ur Outputroutinen}
+\subsection{Die Routine von {\em Plain} \TeX}
+Die Ausgaberoutine von {\em Plain} \TeX\ ist definiert als
+\index{zzzoutput@{\tt\char92 output}}
+\index{zzzplainoutput@{\tt\char92 plainoutput}}
+\begin{verbatim}
+\output={\plainoutput}
+\end{verbatim}
+hierbei ist `\verb|\plainoutput|' eine \index{Abkuerzung@Abk\"urzung}
+Abk\"urzung f\"ur
+\index{zzzadvancepageno@{\tt\char92 advancepageno}}
+\index{zzzelse@{\tt\char92 else}}
+\index{zzzfi@{\tt\char92 fi}}
+\index{zzzifnum@{\tt\char92 ifnum}}
+\index{zzzmakefootline@{\tt\char92 makefootline}}
+\index{zzzmakeheadline@{\tt\char92 makeheadline}}
+\index{zzzoutputpenalty@{\tt\char92 outputpenalty}}
+\index{zzzpagebody@{\tt\char92 pagebody}}
+\index{zzzshipout@{\tt\char92 shipout}}
+\index{zzzvbox@{\tt\char92 vbox}}
+\begin{verbatim}
+\shipout\vbox{\makeheadline
+ \pagebody
+ \makefootline}
+\advancepageno
+\ifnum\outputpenalty>-20000 \else\dosupereject\fi
+\end{verbatim}
+Wie im \TeX book sollte dieses ``Programm'' Zeile f\"ur Zeile betrachtet
+werden, um einen Einblick in die Wirkungsweise dieser Ausgaberoutine
+zu gewinnen.
+
+Zun\"achst das Makro `\verb|\makeheadline|'. Dieses Makro erzeugt eine
+Box der H\"ohe und Tiefe Null, das die \index{Kopf!Zeile}
+Kopfzeile enth\"alt. Definiert ist
+es folgenderma\ss{}en
+\index{zzzheadline@{\tt\char92 headline}}
+\index{zzzline@{\tt\char92 line}}
+\index{zzznointerlineskip@{\tt\char92 nointerlineskip}}
+\index{zzzthe@{\tt\char92 the}}
+\index{zzzvbox@{\tt\char92 vbox}}
+\index{zzzvskip@{\tt\char92 vskip}}
+\index{zzzvss@{\tt\char92 vss}}
+\begin{verbatim}
+\vbox to 0pt{\vskip-22.5pt
+ \line{\vbox to8.5pt{}\the\headline}\vss}
+\nointerlineskip
+\end{verbatim}
+Der seltsame Wert von $-22.5$pt sorgt daf\"ur, da\ss{} die
+\index{Linie!Referenz}Referenzlinie der
+\index{Kopf!Zeile}
+Kopfzeile genau $24$pt oberhalb der Referenzlinie der obersten
+Textzeile der Seite liegt. Sie setzt sich zusammen aus
+$$\mbox{topskip} - \mbox{H\"ohe eines Strut} -
+2\mbox{Baselineskip}$$\index{Baseline!Skip}
+das ist
+$$10\mbox{pt}-8.5\mbox{pt}-24\mbox{pt}$$
+
+Das Makro \index{zzzpagebody@{\tt\char92 pagebody}}
+`\verb|\pagebody|' ist eine \index{Abkuerzung@Abk\"urzung}Abk\"urzung f\"ur
+\index{zzzboxmaxdepth@{\tt\char92 boxmaxdepth}}
+\index{zzzmaxdepth@{\tt\char92 maxdepth}}
+\index{zzzpagecontents@{\tt\char92 pagecontents}}
+\index{zzzvbox@{\tt\char92 vbox}}
+\index{zzzvsize@{\tt\char92 vsize}}
+\begin{verbatim}
+\vbox to\vsize{\boxmaxdepth=\maxdepth \pagecontents}
+\end{verbatim}
+Der Wert von `\verb|\boxmaxdepth|' wird auf `\verb|\maxdepth|'
+gesetzt, wobei die Routine annimmt, da\ss{} \TeX\ die \index{Box!255}
+Box255 f\"ur die Seite
+verwendet hat. Das Makro `\verb|\pagecontents|' f\"ugt nun die Seite,
+inkl.\ aller \index{Einfuegung@Einf\"ugung}
+Einf\"ugungen am Anfang und am Ende ein. Es ist definiert als
+\index{zzzdimen@{\tt\char92 dimen}}
+\index{zzzdp@{\tt\char92 dp}}
+\index{zzzelse@{\tt\char92 else}}
+\index{zzzfi@{\tt\char92 fi}}
+\index{zzzfootins@{\tt\char92 footins}}
+\index{zzzfootnoterule@{\tt\char92 footnoterule}}
+\index{zzzifraggedbottom@{\tt\char92 ifraggedbottom}}
+\index{zzzifvoid@{\tt\char92 ifvoid}}
+\index{zzzkern@{\tt\char92 kern}}
+\index{zzzunvbox@{\tt\char92 unvbox}}
+\index{zzzvfil@{\tt\char92 vfil}}
+\index{zzzvskip@{\tt\char92 vskip}}
+\begin{verbatim}
+\ifvoid\topins \else\unvbox\topins\fi
+\dimen0=\dp255 \unvbox255
+\ifvoid\footins\else % footnote info is present
+ \vskip\skip\footins
+ \footnoterule
+ \unvbox\footins\fi
+\ifraggedbottom \kern-\dimen0 \vfil \fi
+\end{verbatim}
+\index{zzztopins@{\tt\char92 topins}}
+`\verb|\topins|' und `\verb|\footins|' sind die \index{Klasse!Nummer}
+Klassennummern f\"ur die
+\index{Kopf!Einfuegung@Kopf!Einf\"ugung}
+Kopf- und Fu\ss{}einf\"ugungen. Sollten auch noch andere Einf\"ugungsklassen
+verwendet werden, ist diese Routine entsprechend abzu\"andern. Mit
+`\verb|\footnoterule|' wird ein waagerechter Strich zur Abgrenzung des
+Textes von den \index{Fussnote!Abgrenzung@Fu\ss{}note!Abgrenzung}
+Fu\ss{}noten ausgegeben. In der letzten Zeile wird
+zus\"atzlicher \index{Leim}
+Leim eingef\"ugt, falls die Seiten unterschiedliche L\"ange
+haben sollen, um den
+\index{zzztopskip@{\tt\char92 topskip}}`\verb|\topskip|' nicht \"uberzustrapazieren.
+
+Im \index{Hauptprogramm}
+``Hauptprogramm'' folgt nun der Aufruf von
+\index{zzzmakefootline@{\tt\char92 makefootline}}
+`\verb|\makefootline|'.
+Dieser Aufruf setzt die \index{Fusszeile@Fu\ss{}note}Fu\ss{}zeile der Seite
+\index{zzzbaselineskip@{\tt\char92 baselineskip}}
+\index{zzzfootline@{\tt\char92 footline}}
+\index{zzzline@{\tt\char92 line}}
+\index{zzzthe@{\tt\char92 the}}
+\begin{verbatim}
+\baselineskip=24pt
+\line{\the\footline}
+\end{verbatim}\index{Baseline!Skip}
+
+Das Makro \index{zzzadvancepageno@{\tt\char92 advancepageno}}
+`\verb|\advancepageno|' erh\"oht nun die
+\index{Seite!Nummer!Erhoehen@Seite!Nummer!Erh\"ohen}Seitenzahl, falls
+diese positiv ist, anderenfalls wird sie erniedrigt.\footnote{Daher
+erfolgt die Nummerierung der {\em negativen} Seiten richtig, also: i,
+ii, iii, iv, $\ldots$} Definiert ist dieses Makro als
+\index{zzzadvance@{\tt\char92 advance}}
+\index{zzzelse@{\tt\char92 else}}
+\index{zzzfi@{\tt\char92 fi}}
+\index{zzzglobal@{\tt\char92 global}}
+\index{zzzifnum@{\tt\char92 ifnum}}
+\index{zzzpageno@{\tt\char92 pageno}}
+\begin{verbatim}
+\ifnum\pageno<0 \global\advance\pageno by-1
+\else \global\advance\pageno by 1 \fi
+\end{verbatim}
+
+Schlie\ss{}lich werden {\em alle} \index{Einfuegung@Einf\"ugung}
+Einf\"ugungen ausgegeben, wenn nur die
+Strafpunkte den entsprechenden Wert haben. Die Definition sieht
+folgenderma\ss{}en aus
+\index{zzzfi@{\tt\char92 fi}}
+\index{zzzifnum@{\tt\char92 ifnum}}
+\index{zzzinsertpenalties@{\tt\char92 insertpenalties}}
+\index{zzzkern@{\tt\char92 kern}}
+\index{zzzline@{\tt\char92 line}}
+\index{zzznobreak@{\tt\char92 nobreak}}
+\index{zzzsupereject@{\tt\char92 supereject}}
+\index{zzztopskip@{\tt\char92 topskip}}
+\index{zzzvfill@{\tt\char92 vfill}}
+\begin{verbatim}
+\ifnum\insertpenalties>0
+ \line{} \kern-\topskip \nobreak
+ \vfill\supereject\fi
+\end{verbatim}
+Der Kernbefehl l\"oscht einen evtl. vorhandenen Topskip, der zwischen
+den Einf\"ugungen nur st\"orend w\"are.
+\subsection{Zweispaltige Ausgabe}
+Der Trick bei einer zweispaltigen Ausgabe besteht darin, da\ss{} man \TeX\
+einfach sagt, da\ss{} die Seite nur noch halb so breit sein darf, und dann
+die Ausgaberoutine nur jede zweite Seite etwas ausgeben l\"a\ss{}t. Insofern
+stellt also jede einzelne \index{Spalte!Seite}
+Spalte eine eigenst\"andige Seite mit eigenene
+Einf\"ugungen und allen anderen Einzelheiten dar. Nur die
+\index{Kopf!Zeile}Kopf- und
+\index{Fusszeile@Fu\ss{}note}Fu\ss{}zeile teilt sie mit der
+\index{Nachbarspalte}Nachbarspalte.
+
+Die Spalten sollen z.B.\ 3.2 Inch breit sein, der \index{Zwischenraum}
+Zwischenraum soll
+0.1 Inch betragen. F\"ur die \index{Kopf!Zeile}
+Kopf- und Fu\ss{}zeile brauchen wir nun eine
+neue Gr\"o\ss{}e
+\index{zzzdef@{\tt\char92 def}}
+\index{zzzfullhsize@{\tt\char92 fullhsize}}
+\index{zzzfullline@{\tt\char92 fullline}}
+\index{zzzhsize@{\tt\char92 hsize}}
+\index{zzznewdimen@{\tt\char92 newdimen}}
+\begin{verbatim}
+\newdimen\fullhsize
+\fullhsize=6.5in \hsize=3.2in
+\def\fullline{\hbox to\fullhsize}
+\end{verbatim}
+Die Makros \index{zzzmakeheadline@{\tt\char92 makeheadline}}
+`\verb|\makeheadline|' und \index{zzzmakefootline@{\tt\char92 makefootline}}
+`\verb|\makefootline|' sollten
+nun `\verb|\fullline|' statt \index{zzzline@{\tt\char92 line}}
+`\verb|\line|' benutzen.
+
+Die Ausgaberoutine unterscheidet nun einen neuen Kontrollwert
+`\verb|\lr|', der die Werte `L' oder `R' annehmen kann. Bekommt die
+Routine eine {\em linke} Spalte, dann wird diese einfach in einem
+\index{Register}
+Register gespeichert, bekommt die Routine eine rechte Spalte, dann
+wird sie zusammen mit der linken ausgegeben und die
+\index{Seite!Nummer}Seitennummer
+erh\"oht. Die Definition sieht folgenderma\ss{}en aus
+\index{zzzadvancepageno@{\tt\char92 advancepageno}}
+\index{zzzbox@{\tt\char92 box}}
+\index{zzzcolumnbox@{\tt\char92 columnbox}}
+\index{zzzdef@{\tt\char92 def}}
+\index{zzzdoubleformat@{\tt\char92 doubleformat}}
+\index{zzzelse@{\tt\char92 else}}
+\index{zzzfi@{\tt\char92 fi}}
+\index{zzzfullline@{\tt\char92 fullline}}
+\index{zzzglobal@{\tt\char92 global}}
+\index{zzzhfil@{\tt\char92 hfil}}
+\index{zzzifnum@{\tt\char92 ifnum}}
+\index{zzzleftline@{\tt\char92 leftline}}
+\index{zzzlet@{\tt\char92 let}}
+\index{zzzmakefootline@{\tt\char92 makefootline}}
+\index{zzzmakeheadline@{\tt\char92 makeheadline}}
+\index{zzznewbox@{\tt\char92 newbox}}
+\index{zzzoutput@{\tt\char92 output}}
+\index{zzzoutputpenalty@{\tt\char92 outputpenalty}}
+\index{zzzpagebody@{\tt\char92 pagebody}}
+\index{zzzsetbox@{\tt\char92 setbox}}
+\index{zzzshipout@{\tt\char92 shipout}}
+\index{zzzvbox@{\tt\char92 vbox}}
+\begin{verbatim}
+\let\lr=L \newbox\leftcolumn
+\output={\if L\lr
+ \global\setbox\leftcolumn=\columnbox \global\let\lr=R
+ \else \doubleformat \global\let\lr=L\fi
+ \ifnum\outputpenalty>-20000 \else\dosupereject\fi}
+\def\doubleformat{\shipout\vbox{\makeheadline
+ \fullline{\box\leftcolumn\hfil\columnbox}
+ \makefootline}
+ \advancepageno}
+\def\columnbox{\leftline{\pagebody}}
+\end{verbatim}
+Das `\verb|\columnbox|' Makro stellt sicher, da\ss{} die Seite auch in
+eine Spalte pa\ss{}t. Es k\"onnte ja sein, da\ss{} im Originaltext
+\index{zzzhsize@{\tt\char92 hsize}}`\verb|\hsize|'
+ge\"andert wurde. Es kann nun passieren, da\ss{} ein Text mit einer
+gef\"ullten linken, aber leeren rechten Spalte endet. Dieser Text w\"urde
+bei der obigen Routine nicht ausgegeben. Hier hilft die Anweisung
+\index{zzzeject@{\tt\char92 eject}}
+\index{zzzfi@{\tt\char92 fi}}
+\index{zzznull@{\tt\char92 null}}
+\index{zzzsupereject@{\tt\char92 supereject}}
+\index{zzzvfill@{\tt\char92 vfill}}
+\begin{verbatim}
+\supereject
+\if R\lr \null\vfill\eject\fi
+\end{verbatim}
+\subsection{Markierungen}
+Bei der Erstellung eines Textes gibt es die unterschiedlichsten
+Anforderungen, die eine \index{Kopf!Zeile}
+Kopfzeile erf\"ullen mu\ss{}. Denken sie alleine
+einmal an den Unterschied zwischen einem Buch, in dessen Kopfzeile die
+aktuelle \index{Kapitel!Ueberschrift@Kapitel!\"Uberschrift}
+Kapitel\"uberschrift steht, gegen\"uber einem W\"orterbuch, bei dem
+auf der linken \index{Seite!Woerterbuch@Seite!W\"orterbuch}
+Seite die ersten Buchstaben des ersten Eintrags der
+Seite stehen sollen, auf der rechten Seite aber die
+\index{Anfangsbuchstaben}Anfangsbuchstaben
+des letzten Eintrags der Seite. Die besondere Art von \TeX\ Seiten an
+eine Ausgaberoutine zu \"ubergeben macht es nahezu unm\"oglich im
+Vorhinein festzustellen, an welcher Stelle \TeX\ sich befinden wird,
+wenn es eine Seite umbricht.
+
+\TeX\ bietet nun die M\"oglichkeit innerhalb des Textes {\em
+Markierungen} anzubringen. Generell funktioniert das so, da\ss{} sie
+innerhalb eines Textes
+\index{zzzmark@{\tt\char92 mark}}
+\begin{verbatim}
+\mark{<Markierungstext>}
+\end{verbatim}
+schreiben, wobei der `\verb|<Markierungstext>|' expandiert wird, wie
+bei einer \index{zzzedef@{\tt\char92 edef}}
+`\verb|\edef|' Definition. \TeX\ schreibt diese Markierung
+in die vertikale Liste, wie schon fr\"uher erw\"ahnt.
+
+Fr\"uher haben wir uns auch schon vorgestellt, da\ss{} der Text f\"ur \TeX\
+eine lange Liste von Token ist. Stellen sie sich nun weiter vor diese
+lange Liste wird in \index{Seite!Markierung}
+Seiten gebrochen und an eine Ausgaberoutine
+\"ubergeben. Dann werden vorher drei \index{Register}Register gesetzt
+\begin{enumerate}
+\item {\tt\char92 botmark} Ist der Markierungstext, der am weitesten
+unten auf der gerade bearbeiteten Seite gefunden wurde.
+\item {\tt\char92 firstmark} Ist der Markierungstext, der am weitesten
+oben auf der gerade bearbeiteten Seite gefunden wurde.
+\item {\tt\char92 topmark} Hat den Inhalt von {\tt\char92 botmark},
+{\em bevor} die aktuelle Seite angefangen wurde.
+\end{enumerate}
+Angenommen sie haben einen Text geschrieben mit vier Markierungen und
+der Text wird so gebrochen, da\ss{} Markierung \index{zzzalpha@{\tt\char92
+alpha}}$\alpha$ auf Seite 2,\index{zzzbeta@{\tt\char92 beta}}
+Markierung $\beta$ und $\gamma$ auf Seite 4 und Markierung $\delta$
+auf Seite 5 steht. Dann sie die \index{Register}Register im Verlaufe der Abarbeitung
+folgenderma\ss{}en gesetzt.
+
+\medskip\begin{tabular}{cccc}
+Auf Seite & {\tt\char92 topmark} ist & {\tt\char92 firstmark} ist &
+{\tt\char92 botmark} ist \\[.5ex]
+1 & leer & leer & leer \\
+2 & leer & $\alpha$ & $\alpha$ \\
+3 & $\alpha$ & $\alpha$ & $\alpha$ \\
+4 & $\alpha$ & $\beta$ & $\gamma$ \\
+5 & $\gamma$ & $\delta$ & $\delta$ \\
+6 & $\delta$ & $\delta$ & $\delta$
+\end{tabular}\medskip
+
+Im vertikalen Modus werden Markierungen einfach an der Stelle, an der
+sie auftreten eingef\"ugt, im \index{Horizontal!Modus}
+horizontalen Modus werden sie an das Ende
+des Paragraphen angeh\"angt. Im internen vertikalen Modus und im
+beschr\"ankten horizontalen Modus k\"onnen Markierungen verschwinden und
+sollten deshalb dort nicht verwendet werden. Der
+\index{zzzvsplit@{\tt\char92 vsplit}}`\verb|\vsplit|'
+Befehl behandelt die Markierungen \"ubrigens entsprechend, allerdings
+mit einem Unterschied. Die obere bzw.\ untere Markierung wird nun in
+\index{zzzsplitbotmark@{\tt\char92 splitbotmark}}
+\index{zzzsplitfirstmark@{\tt\char92 splitfirstmark}}
+\begin{verbatim}
+\splitfirstmark
+\splitbotmark
+\end{verbatim}
+gefunden.
+
+Eine Outputroutine kann nun die Markierungen nutzen um die
+entsprechend gew\"unschte \index{Kopf!Zeile}
+Kopfzeile zu erstellen. Bei W\"orterb\"uchern
+gen\"ugt die Verwendung von\index{zzzfirstmark@{\tt\char92 firstmark}}
+`\verb|\firstmark|' bzw.\ \index{zzzbotmark@{\tt\char92 botmark}}
+`\verb|\botmark|'
+v\"ollig, um den Anforderungen gen\"uge zu tun. Anders sieht das bei
+B\"uchern aus, die andere \index{Kopf!Zeile}
+Kopfzeilen erfordern. Hier ist es meist
+erw\"unscht, da\ss{} in der Kopfzeile {\em das} \index{Kapitel!Kopfzeile}
+Kapitel benannt werden soll,
+welches zu Beginn einer Seite g\"ultig ist. Sollte auf der Seite ein
+\index{Neu!Kapitel}
+neues Kapitel beginnen, dann soll dessen \index{Kopf!Zeile}
+Kopfzeile erst auf der
+n\"achsten Seite stehen.
+
+Angenommen in einem Buch beginnt auf einer Seite ein
+\index{Neu!Abschnitt}neuer Abschnitt,
+z.B.\ der `Abschnitt 3. Neues aus \TeX Land'. Dieser Abschnitt soll
+mit dem Befehl
+\index{zzzbeginsection@{\tt\char92 beginsection}}
+\begin{verbatim}
+\beginsection 3. Neues aus \TeX Land
+\end{verbatim}
+eingeleitet werden. Wie ist dann der Befehl `\verb|\beginsection|' am
+besten zu definieren? Hier eine M\"oglichkeit
+\index{zzzbeginsection@{\tt\char92 beginsection}}
+\index{zzzdef@{\tt\char92 def}}
+\index{zzzleftline@{\tt\char92 leftline}}
+\index{zzzmark@{\tt\char92 mark}}
+\index{zzznobreak@{\tt\char92 nobreak}}
+\index{zzznoindent@{\tt\char92 noindent}}
+\index{zzzsectionbreak@{\tt\char92 sectionbreak}}
+\index{zzzsectionfont@{\tt\char92 sectionfont}}
+\index{zzzsmallskip@{\tt\char92 smallskip}}
+\begin{verbatim}
+\def\beginsection #1. #2.
+ {\sectionbreak
+ \leftline{\sectionfont #1. #2}
+ \mark{#1}
+ \nobreak\smallskip\noindent}
+\end{verbatim}
+Der `\verb|\sectionbreak|' Befehl soll daf\"ur sorgen, da\ss{} entweder ein
+gen\"ugend gro\ss{}er \index{Zwischenraum}
+Zwischenraum zum vorherigen Abschnitt gelassen wird,
+oder da\ss{} die letzte \index{Seite!Letzte}
+Seite aufgef\"ullt wird und eine neue Seite begonnen
+wird. Eine m\"ogliche Realisation w\"are
+\index{zzzpenalty@{\tt\char92 penalty}}
+\index{zzzvskip@{\tt\char92 vskip}}
+\begin{verbatim}
+\penalty-200 \vskip18pt plus4pt minus6pt
+\end{verbatim}
+Der letzte Befehl sorgt daf\"ur, da\ss{} der erste Paragraph des Textes
+nicht einger\"uckt wird, uns interessiert hier aber die Markierung. Die
+hier vorgestellte L\"osung erf\"ullt aber nicht die Erwartungen. Das
+Ergebnis ist n\"amlich folgenderma\ss{}en.
+\index{zzzfirstmark@{\tt\char92 firstmark}}`\verb|\firstmark|' wird `3.'
+sein und \index{zzztopmark@{\tt\char92 topmark}}
+`\verb|\topmark|' `2.' unabh\"angig davon, ob der
+\index{Absatz}Absatz auf
+der Seite beginnt oder nicht. Die L\"osung best\"unde darin die Markierung
+{\em vor} den Befehl zu Beginn des Absatzes zu setzen
+\index{zzzsectionbreak@{\tt\char92 sectionbreak}}
+(`\verb|\sectionbreak|'), statt an die Stelle, an der er jetzt steht.
+Dann w\"urde `\verb|\topmark|' immer den Absatz bezeichnen, der an
+Beginn der Seite noch g\"ultig ist.
+
+Es gibt aber noch eine bessere L\"osung. Diese sorgt daf\"ur, da\ss{} sich
+`\verb|\topmark|' immer auf den Anfang der \index{Seite!Anfang}Seite, und
+\index{zzzbotmark@{\tt\char92 botmark}}
+`\verb|\botmark|' immer auf das Ende der \index{Seite!Ende}
+Seite bezieht. Damit ist eine
+noch genauere \index{Kopf!Gestaltung}
+Kopfgestaltung, z.B.\ bezogen auf rechte und linke
+\index{Seite!Rechts-Links}
+Seiten m\"oglich. Eine Definition k\"onnte folgenderma\ss{}en aussehen
+\index{zzzbeginsection@{\tt\char92 beginsection}}
+\index{zzzcurrentsection@{\tt\char92 currentsection}}
+\index{zzzdef@{\tt\char92 def}}
+\index{zzzelse@{\tt\char92 else}}
+\index{zzzleftline@{\tt\char92 leftline}}
+\index{zzzmark@{\tt\char92 mark}}
+\index{zzznobreak@{\tt\char92 nobreak}}
+\index{zzznoexpand@{\tt\char92 noexpand}}
+\index{zzznoindent@{\tt\char92 noindent}}
+\index{zzzsectionbreak@{\tt\char92 sectionbreak}}
+\index{zzzsectionfont@{\tt\char92 sectionfont}}
+\index{zzzsmallskip@{\tt\char92 smallskip}}
+\begin{verbatim}
+\def\beginsection #1. #2.
+ {\mark{\currentsection \noexpand\else #1}
+ \sectionbreak
+ \leftline{\sectionfont #1. #2}
+ \mark{#1\noexpand\else #1} \def\currentsection{#1}
+ \nobreak\smallskip\noindent}
+\def\currentsection{} % the current section number
+\end{verbatim}
+Die Idee hier ist folgende: Es werden zwei Markierungen gesetzt, eine
+vor und eine hinter dem \index{Absatz!Abstand}
+Absatzabstand. Au\ss{}erdem bestehen die
+Markierungen aus dem Text `\verb|2.\else 3.|' f\"ur
+\index{zzztopmark@{\tt\char92 topmark}}`\verb|\topmark|'
+und `\verb|3.\else 3.|' f\"ur \index{zzzbotmark@{\tt\char92 botmark}}
+`\verb|\botmark|'. Die linke Komponente
+von `\verb|\botmark|' ist somit f\"ur den unteren
+\index{Seite!Rand!Unten}
+Seitenrand, die rechte
+Komponente von `\verb|\topmark|' f\"ur den oberen \index{Seite!Rand!Oben}
+Seitenrand zust\"andig.
+
+Im obigen Beispiel wurde zwischen zwei Markierungskomponenten mittels
+einer `\verb|if|' Abfrage ausgew\"ahlt. V\"ollig analog kann nat\"urlich
+auch ein Markierungstext aus
+\begin{verbatim}
+a1 \or a2 \or a3 \or ...
+\end{verbatim}
+bestehen und dann aus mehreren Alternativen ausgew\"ahlt werden.
+\chapter{Umgang mit Fehlern}
+In einem fr\"uheren Kapitel haben sie schon gesehen, wie \TeX\ darauf
+reagiert, wenn eine unbekannte \index{Kontrollsequenz}
+Kontrollsequenz auftaucht, meist ein
+Fehler in der Schreibweise. \TeX\ kennt aber wesentlich mehr Fehler,
+die sie aber vermutlich nie alle kennenlernen werden, da manche dieser
+Fehler nur schwer zu produzieren sind. In diesem Kapitel werden nun
+einige weitere Fehlersituationen behandelt.
+\section{Schreibfehler}
+Normalerweise treten Fehler als Schreibfehler auf. Was passiert z.B.\
+wenn man eine \index{Einheit!Mass@Einheit!Ma\ss{}}
+\index{Masse!Einheit@Ma\ss{}e!Einheit}
+Ma\ss{}einheit falsch schreibt? Gehen wir man davon aus, da\ss{}
+sie statt
+\index{zzzhsize@{\tt\char92 hsize}}
+`\verb|\hsize=4in|' `\verb|\hsize=4im|' geschrieben h\"atten.
+Die Fehlermeldung, die sie erhalten wird dann ungef\"ahr so aussehen
+\index{zzzinput@{\tt\char92 input}}
+\begin{verbatim}
+! Illegal unit of measure (pt inserted).
+<to be read again>
+ i
+<to be read again>
+ m
+<*> \hsize=4im
+ \input story
+?
+\end{verbatim}
+Sie sehen, ich verwende wieder das Beispiel von fr\"uher. Ein einfaches
+Return w\"urde hier daf\"ur sorgen, da\ss{} die Buchstaben `i' und `m' einen
+neuen Paragraphen ausmachen w\"urden, besser w\"are es eine `2'
+einzugeben, um die Buchstaben zu l\"oschen. Danach w\"urde \TeX\ anhalten
+um ihnen die Gelegenheit zu geben das weitere Vorgehen zu \"uberdenken.
+Die zugeh\"orige Meldung s\"ahe folgenderma\ss{}en aus
+\index{zzzinput@{\tt\char92 input}}
+\begin{verbatim}
+<recently read> m
+|indent
+<*> \hsize=4im
+ \input story
+?
+\end{verbatim}
+O.k.\ das `i' und das `m' sind nun weg. W\"urden sie jetzt versuchen
+\TeX\ mit einem einfachen Return zur Weiterarbeit zu veranlassen, dann
+w\"urde \TeX\ versuchen den ganzen Text in einer Breite von 4pt zu
+setzen. Die Anzahl von Fehlermeldungen wg.\ \"ubervollen \index{Box!Hbox}
+{\tt hbox}en k\"onnen
+sie sich sicher selber vorstellen. Besser ist es die gew\"unschte Breite
+erneut einzuf\"ugen.
+\index{zzzhsize@{\tt\char92 hsize}}
+\begin{verbatim}
+I\hsize=4in
+\end{verbatim}
+
+Normalerweise versucht \TeX\ selber Fehler zu beseitigen. Das
+geschieht dadurch, da\ss{} Texte eingef\"ugt werden, die offensichtlich
+ausgelassen wurden, oder aber Textteile entfernt werden, die
+offensichtliche fehlen. Auch hierzu ein Beispiel
+\begin{verbatim}
+! Missing $ inserted.
+<inserted text>
+ $
+<to be read again>
+ ^
+l.11 Die Tatsache 32768=2^
+ {15} ist hier uninteressant
+? H
+I've inserted a begin-math/end-math symbol since I think
+you left one out. Proceed, with fingers crossed.
+\end{verbatim}
+Der Unterschied zum obigen Beispiel liegt darin, da\ss{} hier der
+eingef\"ugte Text (`\verb|$|') noch nicht wirklich eingef\"ugt wurde. Sie
+haben also die Chance den \index{Einfuegung!Text@Einf\"ugung!Text}
+Einf\"ugungstext zu entfernen, bevor \TeX\ ihn
+tats\"achlich zu sehen bekommt.
+
+Wie sollte man in einem solchen Falle vorgehen. Die Sequenz `32768=2'
+ist schon gesetzt, und sie haben keine Chance den falschen Leerraum um
+das \index{Gleichheitszeichen}Gleichheitszeichen nachtr\"aglich zu \"andern. Ihr Ziel sollte sein
+den Rest des Textes m\"oglichst fehlerfrei bearbeitet zu bekommen, um
+eventuell auftretende weitere Fehler noch gemeldet zu bekommen.
+
+Ein Return w\"urde den Rest des Paragraphen in \index{Italic}
+\index{Schrift!Italic}Italic-Schrift setzen,
+was mit Sicherheit nicht w\"unschenswert ist. Es gibt zwei Alternativen
+zu reagieren
+\begin{enumerate}
+\item Mit `6' l\"oschen sie das `\verb|$^{15}|' und f\"ugen dann mit
+`\verb|I$^{15}$|' den richtigen Text ein, oder
+\item sie geben `2' ein und erhalten $\ldots215$, und der Rest des
+Absatzes wird richtig gesetzt.
+\end{enumerate}\index{Absatz}
+
+\section{Schlimme Fehler}
+Richtig \"argerlich sind allerdings die Fehler, die z.B. in Zeile 10
+eines \index{Absatz}
+Absatzes verursacht werden, aber erst in Zeile 73 desselben
+Absatzes bemerkt werden.\footnote{Meistens handelt es sich um eine
+fehlende Gruppenklammer, es ist also ein \index{Editor}
+Editor empfehlenswert, der
+zueinander passende Klammerpaare findet.} Derartige Fehler haben meist
+Folgefehler, dennoch ist es meist m\"oglich in einem Lauf von \TeX\ alle
+Fehler zu finden, wenn man nur auf die Fehlermeldungen entsprechend
+reagiert. Am schlimmsten sind aber Fehler, bei denen kein
+Schreibfehler vorliegt, sondern ein Bedeutungsfehler. Wenn sie z.B.\
+mit
+\index{zzzdef@{\tt\char92 def}}
+\begin{verbatim}
+\def\box{...}
+\end{verbatim}
+eine Definition einrichten und so alle Boxbefehle von \TeX\ unsinnig
+werden lassen, dann wird es schwer diesen Fehler zu beheben. Am besten
+lesen sie dieses Buch von Anfang bis Ende und vermeiden solche Fehler.
+
+Auch bei der \index{Makro!Definition}
+Makrodefinition k\"onnen solche Fehler auftreten. Das \TeX
+Book stellt einen solchen Fehler dar. Die Definition lautet
+\index{zzzadvance@{\tt\char92 advance}}
+\index{zzzdef@{\tt\char92 def}}
+\index{zzzfirstnumber@{\tt\char92 firstnumber}}
+\index{zzznewcount@{\tt\char92 newcount}}
+\index{zzznextnumber@{\tt\char92 nextnumber}}
+\index{zzznobreak@{\tt\char92 nobreak}}
+\index{zzznumber@{\tt\char92 number}}
+\index{zzzserialnumber@{\tt\char92 serialnumber}}
+\begin{verbatim}
+\newcount\serialnumber
+\def\firstnumber{\serialnumber=0 }
+\def\nextnumber{\advance \serialnumber by 1
+ \number\serialnumber)\nobreak\hskip.2em }
+\end{verbatim}
+Mit dem Aufruf von
+\begin{verbatim}
+\firstnumber
+\nextnumber xx, \nextnumber yy, and \nextnumber zz
+\end{verbatim}
+w\"urde \TeX\ dann folgendes setzen: 1)\hskip.2em xx, 2)\hskip.2em yy
+und 3)\hskip.2em zz. Ein anderer Benutzer k\"onnte nun folgende
+Fehlermeldung erhalten
+\index{zzznextnumber@{\tt\char92 nextnumber}}
+\begin{verbatim}
+! Missing number, treated as zero.
+<to be read again>
+ c
+l.107 \nextnumber minusc
+ ule chances of error
+?
+\end{verbatim}
+Der Fehler l\"age darin, da\ss{} das Wort `\verb|minus|' ein
+\index{Schluesselwort@Schl\"usselwort}Schl\"usselwort
+von \TeX\ ist und nat\"urlich eine Zahl erwartet w\"urde. Der Fehler kann
+einfach dadurch behoben werden, da\ss{} die \index{Makro!Definition}
+Makrodefinition mit einem\index{zzzrelax@{\tt\char92 relax}}
+`\verb|\relax|' abgeschlossen wird.
+\section{Fehler, die nicht zur Unterbrechung f\"uhren}
+Auch wenn ihr Text vollst\"andig und ohne Fehlermeldung \"ubersetzt wird,
+kann es noch zu Fehlern kommen. Eine M\"oglichkeit ist die, da\ss{} ein von
+ihnen verwendeter Zeichensatz nicht zur Verf\"ugung steht und von ihrem
+Dvi-Treiber durch einen anderen ersetzt wird. Dieser Ersatzzeichensatz
+kann allerdings ziemlich schlecht aussehen und ihren Anspr\"uchen nicht
+gen\"ugen. In diesem Falle m\"ussen sie schon per Hand zur Fehlerkorrektur
+greifen, da kann ihnen \TeX\ nicht weiterhelfen.\footnote{Am besten
+besorgen sie sich den ben\"otigten Zeichensatz.}
+
+\section{Der Uralttrick}
+Wenn sie wirklich einmal nicht mehr weiter wissen und absolut nicht
+darauf kommen, wieso \TeX\ an einer Stelle einen Fehler macht, dann
+gehen sie folgenderma\ss{}en vor. K\"urzen sie den Text solange, bis er
+praktisch nur noch aus dem Fehler besteht. Sie haben eine wesentliche
+bessere Chance den Fehler zu finden.
+
+Sehr beliebt sind in diesem Zusammenhang auch fehlende
+\index{Leer!Zeichen}Leerzeichen.
+Denken sie daran, da\ss{} \TeX\ in zwei F\"allen Leereichen als Trenner
+lie\ss{}t und nicht ausgibt
+\begin{enumerate}
+\item Hinter \index{Kontrollsequenz}Kontrollsequenzen, und
+\item hinter Ma\ss{}angaben f\"ur \TeX\ \index{Primitiv}Primitive.
+\end{enumerate}
+Die Suche nach derartigen Fehlern gestaltet sich besonders bei der
+Verwendung von \index{Makro!Fehler, bei}
+Makros besonders schwierig. Setzen sie ggf.
+\index{zzztracingcommands@{\tt\char92 tracingcommands}}
+\begin{verbatim}
+\tracingcommands=1
+\end{verbatim}
+um hinter das Problem zu kommen.
+\section{Fatale Fehler}
+In manchen F\"allen wei\ss{} auch das gute, alte \TeX\ nicht mehr weiter.
+Z.B.\ im \index{zzzbatchmode@{\tt\char92 batchmode}}
+`\verb|\batchmode|' wenn \TeX\ eine \index{Eingabe!Tastatur}
+Eingabe
+von der Tastatur ben\"otigt. \TeX\ macht dann einen \index{Nothalt}
+Nothalt, bevor es
+f\"ur immer den Geist aufgibt. Hier eine Auswahl der Fehlermeldungen,
+die sie u.U.\ zu sehen bekommen.\index{File!Format}
+\begin{verbatim}
+Fatal format file error; I'm stymied.
+\end{verbatim}
+Der geladene Formatfile kann nicht benutzt werden, da er f\"ur eine
+andere Version von \TeX\ hergestellt wurde.
+\begin{verbatim}
+That makes 100 errors; please try again.
+\end{verbatim}
+\TeX\ hat hundert Fehler gefunden, seit der letzte Paragraph beendet
+wurde. Vermutlich befindet es sich in einer
+Endlosschleife.\index{Schleife!Endlos}
+\begin{verbatim}
+Interwoven alignment preambles are not allowed.
+\end{verbatim}
+Wenn sie diese Meldung erhalten, dann werden sie auch verstehen, was
+sie bedeutet, und sie werden sie nicht lieben.
+\begin{verbatim}
+I can't go on meeting you like this.
+\end{verbatim}
+Wegen eines fr\"uheren Fehlers kann \TeX\ nicht weiter arbeiten, sie
+m\"ussen erst den vorigen Fehler beheben.
+\begin{verbatim}
+This can't happen.
+\end{verbatim}
+Irgendetwas ist mit ihrem \TeX\ nicht in Ordnung.
+\section{Speicherprobleme}
+Mitunter kann auch folgende Meldung auftreten
+\begin{verbatim}
+TeX capacity exceeded, sorry.
+\end{verbatim}
+Dies ist immer dann der Fall, wenn f\"ur irgendein Teil von \TeX\ mehr
+Speicher ben\"otigt wird, als auf ihrem Rechner vorhanden ist.
+Zus\"atzlich wird auch angegeben, um welche Art von Speicher es sich
+handelt. Es gibt vierzehn M\"oglichkeiten:
+
+\index{Box}\index{Einfuegung!Fehler@Einf\"ugung!Fehler}\index{File!Name}
+\index{Font!Daten}
+\medskip\begin{tabular}{lp{8cm}}
+{\em Meldung} & {\em Gegenstand der Bearbeitung}\\[.5ex]
+{\tt number of strings} & Namen der \index{Kontrollsequenz}
+Kontrollsequenzen und der Files\\
+{\tt pool size} & Die Zeichen in derartigen Namen\\
+{\tt main memory size} & Boxen, \index{Leim}Leim, Umbruchpunkte, Tokenlisten,
+Zeichen, etc.\\
+{\tt hash size} & Namen der Kontrollsequenzen\\
+{\tt font memory} & Zeichensatzdaten\\
+{\tt exception dictionary} & Trennungsausnahmen\\
+{\tt input stack size} & Parallele Eingabedateien\\
+{\tt semantic nest size} & Bearbeitung einer unfertigen Liste\\
+{\tt parameter stack size} & Makroparameter\\
+{\tt buffer size} & Zeichen in einer Eingabezeile\\
+{\tt save size} & Werte, die nach einem Gruppenende wieder hergestellt
+werden m\"ussen\\
+{\tt text input levels} & Inputfiles und Einf\"ugungen\\
+{\tt grouping levels} & Unvollst\"andige Gruppen\\
+{\tt pattern memory} & Trennungsmuster
+\end{tabular}\medskip
+
+Mit \index{zzztracingstats@{\tt\char92 tracingstats}}
+`\verb|\tracingstats=1|' k\"onnen nat\"urlich wieder alle
+Speicherverwendungen angesehen werden. Bei jedem Shipout wird dann der
+Speicherbedarf angegeben, und zwar in der Form `xxx\&xxxx'. Dabei
+meint die Zahl vor dem \index{Kaufmannsund}
+Kaufmannsund wieviele (Speicher)worte f\"ur gro\ss{}e
+Dinge, wie Boxen etc.\ verwendet wurden, und die zweite Zahl wieviele
+f\"ur kleine Dinge, wie Zeichen oder Token verwendet wurden.
+
+Was macht man nun, wenn ein derartiger Fehler aufgetreten ist, und man
+sonst keine M\"oglichkeit hat f\"ur mehr Speicher zu sorgen. Es gibt zwei
+M\"oglichkeiten. Zum einen k\"onnen sie nach gro\ss{}en Paragraphen,
+\index{Tabelle!Grosse@Tabelle!Gro\ss{}e}Tabellen
+oder Makrodefinitionen suchen und diese verkleinern.\footnote{Tricks
+dazu stehen in diesem Text ja reichlich.} Sie k\"onnen aber auch \TeX\
+anders konfigurieren. Sie m\"ussten dann f\"ur die Speicherart, bei der
+das Problem auftrat, mehr physikalischen Speicher bereitstellen, den
+sie bei anderen Arten, die evtl.\ nicht so ausgelastet sind,
+einschr\"anken.
+
+Meist handelt es sich aber um einen Fehler in einer Definition, der
+leicht zu beheben ist. Bei der Definition von
+\index{zzzdef@{\tt\char92 def}}\index{zzzrekurs@{\tt\char92 rekurs}}
+\begin{verbatim}
+\def\rekurs{(\rekurs)}
+\end{verbatim}
+erhalten sie in k\"urzester Zeit die Fehlermeldung
+\index{zzzrecurse@{\tt\char92 recurse}}
+\begin{verbatim}
+! TeX capacity exceeded, sorry [input stack size=80].
+\recurse ->(\recurse
+ )
+\recurse ->(\recurse
+ )
+...
+\end{verbatim}
+was nicht weiter verwundern d\"urfte.
+\section{Eine letzte Hilfe}
+Wenn ihnen sonst nichts mehr einf\"allt, um einen bestimmten Fehler zu
+beheben, dann k\"onnen sie immer noch ein
+\index{zzzpausing@{\tt\char92 pausing}}
+`\verb|\pausing=1|' einf\"ugen,
+was \TeX\ dazu veranla\ss{}t die Zeilen von der Tastatur und nicht mehr
+vom \index{Eingabe!Vom File}Eingabefile einzulesen. Sie k\"onnen dann einen der vielen
+`\verb|\show...|' Befehle einf\"ugen, oder sonst Befehle eingeben, die
+ihnen vielleicht weiterhelfen.
+
+Einen kleinen Wehrmutstropfen zum Schlu\ss{}. Die ganzen Tracingbefehle
+sind leider nicht auf allen \TeX\ Implementationen verf\"ugbar.
+
+\begin{appendix}
+\chapter{Die Plain \TeX\ Befehle}
+\section{Die Konventionen}
+\subsection{Spezielle Buchstaben}
+F\"ur besonderen Gebrauch sind die Zeichen
+\begin{verbatim}
+\ { } $ & # % ^ _ ~
+\end{verbatim}
+bestimmt.
+\subsection{Die Schriftarten}
+\begin{tabular}{cccc}
+\verb|\rm roman| & \verb|{\sl geneigt}| & \verb|{\bf fett}| &
+\verb|{\it Italic\/} Schrift|\\
+roman & {\sl geneigt} & {\bf fett} & {\it Italic\/} Schrift
+\end{tabular}
+\subsection{Sonderzeichen}
+\begin{tabular}{cccccccccc}
+\verb|``| & \verb|''| & \verb|--| & \verb|---| & \verb|?`| &
+\verb|!`| & \verb|\$| & \verb|\#| & \verb|\&| & \verb|\%|\\
+`` & '' & -- & --- & ?` &
+!` & \$ & \# & \& & \%\\
+\verb|\ae| & \verb|\AE| & \verb|\oe| & \verb|\OE| & \verb|\aa| &
+\verb|\AA| & \verb|\ss| & \verb|\o| & \verb|\O| & \verb|\`a|\\
+\ae & \AE & \oe & \OE & \aa &
+\AA & \ss & \o & \O & \`a\\
+\verb|\'e| & \verb|\^o| & \verb|\\"u| & \verb|\=y| & \verb|\~n| &
+\verb|\.p| & \verb|\u\i| & \verb|\v s| & \verb|\H\j| & \verb|\t\i u|\\
+\'e & \^o & \\"u & \=y & \~n &
+\.p & \u\i & \v s & \H\j & \t\i u\\
+\verb|\b k| & \verb|\c c| & \verb|\d h| & \verb|\l| & \verb|\L| &
+\verb|\dag| & \verb|\ddag| & \verb|\S| & \verb|\P| & \\
+\b k & \c c & \d h & \l & \L &
+\dag & \ddag & \S & \P & \\
+\end{tabular}\medskip
+
+Und au\ss{}erdem noch die Zeichen
+
+\medskip\begin{tabular}{ccccc}
+\verb|{\it\$| & \verb|\&}| & \verb|\copyright| & \verb|\TeX| &
+\verb|\dots|\\
+{\it\$} & {\it\&} & \copyright & \TeX & \dots\\
+\end{tabular}
+\subsection{Zeilenumbruchbefehle}
+Die {\em normalen} Befehle
+\begin{verbatim}
+\break \nobreak \allowbreak \hbox{Nicht umbrechbar}
+\end{verbatim}
+und die speziellen Befehle
+\begin{verbatim}
+dis\-cre\-tion\-ary Tren\-nung
+Erlaubte\slash Trennung
+\end{verbatim}
+\subsection{Horizontale Abst\"ande}
+\subsubsection{Mit erlaubtem Zeilenumbruch}
+\begin{tabular}{ll}
+\verb*|\ | & Normaler Wortabstand\\
+\verb|\enskip| & So\enskip viel\\
+\verb|\quad| & So\quad viel\\
+\verb|\qquad| & So\qquad viel\\
+\verb|\hskip| & Angebbarer Platz
+\end{tabular}
+\subsubsection{Ohne Erlaubnis zum Zeilenumbruch}
+\begin{tabular}{ll}
+\verb|~| & Normaler Wortabstand\\
+\verb|\enspace| & So\enspace viel\\
+\verb|\thinspace| & So\thinspace viel\\
+\verb|\negthinspace| & So\negthinspace viel\\
+\verb|\kern| & Angebbarer Platz
+\end{tabular}
+\subsection{Vertikale Abst\"ande}
+\verb|\smallskip| \vbox{\hrule width 2cm\smallskip\hrule width2cm}\quad
+\verb|\medskip| \vbox{\hrule width 2cm\medskip\hrule width2cm}\quad
+\verb|\bigskip| \vbox{\hrule width 2cm\bigskip\hrule width2cm}
+\subsection{Seitenumbruch}
+Seitenumbruchkontrolle ohne vertikalen Platz erlauben die Befehle
+\begin{verbatim}
+\eject \supereject \nobreak \goodbreak \filbreak
+\end{verbatim}
+Mit vertikalem Platz verwendet man
+\begin{verbatim}
+\smallbreak \medbreak \bigbreak
+\end{verbatim}
+\subsection{Tabellenbefehle}
+Zum einen gibt es die Tabellenbefehle
+\begin{verbatim}
+\settabs \columns \+ \cr
+\end{verbatim}
+und au\ss{}erdem die etwas generelleren Befehle
+\begin{verbatim}
+\halign \valign \omit \span \multispan
+\end{verbatim}
+Zum Auff\"ullen der Zwischenr\"aume in Tabellen dienen die Befehle
+\begin{verbatim}
+\hrulefill \dotfill
+\leftarrowfill \rightarrowfill
+\upbracefill \downbracefill
+\end{verbatim}
+\section{Die Makros von {\tt\bf plain.tex}}
+Die Makros aus dem File {\tt plain.tex} sollen ab hier erkl\"art werden.
+Tritt dabei ein Befehl auf, der bisher noch nicht behandelt wurde,
+dann wird er auch f\"ur normale Anwender erkl\"art, ansonsten richtet sich
+die Beschreibung eher an die Designer von Makros.\footnote{Ich habe
+die Kommentare im Source in englischer Sprache gehalten, die Bedeutung
+sollte aber sowieso klar sein.}
+\subsection{Die Kodetabellen}
+Zun\"achst m\"ussen die Kategoriekodes mancher Zeichen ge\"andert werden,
+damit \"uberhaupt weitere Definitionen m\"oglich sind. Die ersten Zeilen
+lauten daher
+\begin{verbatim}
+\catcode`\{=1 % left brace is begin-group character
+\catcode`\}=2 % right brace is end-group character
+\catcode`\$=3 % dollar sign is math shift
+\catcode`\&=4 % ampersand is alignment tab
+\catcode`\#=6 % hash mark is macro parameter character
+\catcode`\^=7 \catcode`\^^K=7 % circumflex and uparrow for superscripts
+\catcode`\_=8 \catcode`\^^A=8 % underline and downarrow for subscripts
+\catcode`\^^I=10 % ASCII tab is treated as a blank space
+\chardef\active=13 \catcode`\~=\active % tilde is active
+\catcode`\^^L=\active \outer\def^^L{\par} % ASCII form-feed is \outer\par
+
+\message{Preloading the plain format: codes,}
+\end{verbatim}\index{ASCII}
+Die Zuweisungen f\"ur `\verb|^^K|' und `\verb|^^A|' dienen f\"ur die
+Verwendung von anderen Tastaturen. Alle Zeichen au\ss{}er den Buchstaben
+erhalten die Kategorie {\em anders}~(12), die Buchstaben die
+Kategorie~11. Weiterhin werden die folgenden Zeichenkodes gesetzt
+\begin{verbatim}
+\catcode `\\ =0 \catcode`\ =10 \catcode `\%=14
+\catcode`\^^@=9 \catcode`\^^M=5 \catcode`\^^?=15
+\end{verbatim}
+Der `\verb|\message|' Befehl gibt eine Meldung \"uber den Stand der
+Dinge bis zu diesem Zeitpunkt auf dem \index{Bildschirm}
+Bildschirm aus.\footnote{Diese
+Meldungen erscheinen {\em immer} bei der Bearbeitung mit INITEX.} Wenn
+sie au\ss{}er den Befehlen von {\tt plain.tex} weitere Befehle einbinden
+wollen, dann schreiben sie nach der Aufforderung von INITEX einfach
+`\verb|&plain meine|', wenn sie ihre Definitionen in einer Datei mit
+dem Namen {\tt meine.tex} geschrieben haben. Die {\em Plain} \TeX\
+Befehle werden dann auf dem schnelleren, vorkompilierten Wege
+eingelesen und ihre Definitionen angef\"ugt.
+
+Schlie\ss{}lich wird das `\verb|@|' Zeichen vor\"ubergehend zu einem
+normalen Zeichen gemacht. Auf diese Art ist es m\"oglich, da\ss{} {\em
+Plain} \TeX\ seine eigenen Befehle kennt, die sie als Anwender nicht
+so einfach benutzen k\"onnen. Sp\"ater wird diesem Zeichen wieder eine
+andere Kategorie zugewiesen. Jetzt kommen die Tabellen der
+mathematischen Zeichen
+\begin{verbatim}
+\mathcode`\^^@=\"2201 \mathcode`\^^A=\"3223 \mathcode`\^^B=\"010B
+\mathcode`\^^C=\"010C \mathcode`\^^D=\"225E \mathcode`\^^E=\"023A
+\mathcode`\^^F=\"3232 \mathcode`\^^G=\"0119 \mathcode`\^^H=\"0115
+\mathcode`\^^I=\"010D \mathcode`\^^J=\"010E \mathcode`\^^K=\"3222
+\mathcode`\^^L=\"2206 \mathcode`\^^M=\"2208 \mathcode`\^^N=\"0231
+\mathcode`\^^O=\"0140 \mathcode`\^^P=\"321A \mathcode`\^^Q=\"321B
+\mathcode`\^^R=\"225C \mathcode`\^^S=\"225B \mathcode`\^^T=\"0238
+\mathcode`\^^U=\"0239 \mathcode`\^^V=\"220A \mathcode`\^^W=\"3224
+\mathcode`\^^X=\"3220 \mathcode`\^^Y=\"3221 \mathcode`\^^Z=\"8000
+\mathcode`\^^[=\"2205 \mathcode`\^^\=\"3214 \mathcode`\^^]=\"3215
+\mathcode`\^^^=\"3211 \mathcode`\^^_=\"225F \mathcode`\^^?=\"1273
+\mathcode`\ =\"8000 \mathcode`\!=\"5021 \mathcode`\'=\"8000
+\mathcode`\(=\"4028 \mathcode`\)=\"5029 \mathcode`\*=\"2203
+\mathcode`\+=\"202B \mathcode`\,=\"613B \mathcode`\-=\"2200
+\mathcode`\.=\"013A \mathcode`\/=\"013D \mathcode`\:=\"303A
+\mathcode`\;=\"603B \mathcode`\<=\"313C \mathcode`\==\"303D
+\mathcode`\>=\"313E \mathcode`\?=\"503F \mathcode`\[=\"405B
+\mathcode`\\=\"026E \mathcode`\]=\"505D \mathcode`\_=\"8000
+\mathcode`\{=\"4266 \mathcode`\|=\"026A \mathcode`\}=\"5267
+\end{verbatim}
+Es folgen die Setzungen f\"ur\index{Delcode}
+\begin{verbatim}
+\uccode \lccode
+\sfcode \delcode
+\end{verbatim}
+Abschlie\ss{}end noch einige Definitionen
+\begin{verbatim}
+\chardef\@ne=1 \chardef\tw@=2 \chardef\thr@@=3
+\chardef\sixt@@n=16 \chardef\@cclv=255
+\mathchardef\@cclvi=256 \mathchardef\@m=1000
+\mathchardef\@M=10000 \mathchardef\@MM=20000
+\end{verbatim}
+Diese Definitionen sorgen daf\"ur, da\ss{} \TeX\ bei manchen Anwendungen
+schneller l\"auft und weniger Speicher ben\"otigt. In diesem Anhang werden
+aber dennoch immer die Zahlkonstanten verwendet, da so die Programme
+besser lesbar sind.
+\subsection{Die Register}
+Der zweite Teil von {\tt plain.tex} besch\"aftigt sich mit der
+\index{Alloziierung!Register}
+Alloziierung von Registern, so da\ss{} sp\"ater die einzelnen Makros
+miteinander arbeiten k\"onnen, ohne sich gegenseitig die Register
+umzubelegen. Hier die zugeh\"origen Regeln
+\begin{enumerate}
+\item Die Register mit den Nummern~0 bis~9 sind immer f\"ur den
+tempor\"aren Gebrauch frei. Jedes Makro beendet seine Benutzung eines
+dieser Register nach seiner Benutzung.\footnote{Die Z\"ahlregister
+{\tt\char92 count0} bis {\tt\char92 count9} sind allerdings schon von
+\TeX\ vorbelegt. Diese Reservierung gilt also nur f\"ur alle anderen
+Register.}
+\item Die Register {\tt\char92 count255}, {\tt\char92 dimen255} und
+{\tt\char92 skip255} stehen auch nur f\"ur den tempor\"aren Gebrauch zur
+Verf\"ugung.
+\item Alle Zuweisungen zu ungeraden Registern sollten lokal, alle zu
+geraden Registern sollten global sein.\footnote{Damit verhindert man,
+da\ss{} zuviele Register am Ende einer Gruppe wieder hergestellt werden
+m\"ussen.}
+\item Register d\"urfen nat\"urlich innerhalb einer Gruppe frei belegt
+werden, wenn sichergestellt ist, da\ss{} sie am Ende der Gruppe wieder
+hergestellt werden k\"onnen und wenn keine anderen Makros globale
+Zuweisungen auf dieses Register vornehmen.
+\item Register, die von vielen Makros, oder f\"ur eine l\"angere Zeit
+beansprucht werden, sollten mit den {\tt\char92 new...} Befehle
+alloziiert werden.
+\end{enumerate}
+Einige \index{Abkuerzung@Abk\"urzung}Abk\"urzungen dienen dem besseren Zugriff auf die
+Temporalregister
+\begin{verbatim}
+\countdef\count@=255 \toksdef\toks@=0 \skipdef\skip@=0
+\dimendef\dimen@=0 \dimendef\dimen@i=1 \dimendef\dimen@ii=2
+\end{verbatim}
+Es folgen nun einige Zuweisungen zu Registern, mit denen sp\"ater
+festgehalten wird, welche Zahl denn nun mit einem {\tt\char92 new}
+Befehl alloziiert wurde. Diese Zahl kann auch von einem alloziierenden
+Makro verwendet werden.
+\begin{verbatim}
+\count10=22 % this counter allocates \count registers 23, 24, 25, ...
+\count11=9 % this counter allocates \dimen registers 10, 11, 12, ...
+\count12=9 % this counter allocates \skip registers 10, 11, 12, ...
+\count13=9 % this counter allocates \muskip registers 10, 11, 12, ...
+\count14=9 % this counter allocates \box registers 10, 11, 12, ...
+\count15=9 % this counter allocates \toks registers 10, 11, 12, ...
+\count16=-1 % this counter allocates input streams 0, 1, 2, ...
+\count17=-1 % this counter allocates output streams 0, 1, 2, ...
+\count18=3 % this counter allocates math families 4, 5, 6, ...
+\count19=0 % this counter allocates language codes 1, 2, 3, ...
+\count20=255 % this counter allocates insertions 254, 253, 252, ...
+\countdef\insc@unt=20 % nickname for the insertion counter
+\countdef\allocationnumber=21 % the most recent allocation
+\countdef\m@ne=22 \m@ne=-1 % a handy constant
+\def\wlog{\immediate\write-1} % this will write on log file (only)
+\end{verbatim}
+\begin{verbatim}
+\outer\def\newcount{\alloc@0\count\countdef\insc@unt}
+\outer\def\newdimen{\alloc@1\dimen\dimendef\insc@unt}
+\outer\def\newskip{\alloc@2\skip\skipdef\insc@unt}
+\outer\def\newmuskip{\alloc@3\muskip\muskipdef\@cclvi}
+\outer\def\newbox{\alloc@4\box\chardef\insc@unt}
+\let\newtoks=\relax % this allows plain.tex to be read in twice
+\outer\def\newhelp#1#2{\newtoks#1#1=\expandafter{\csname#2\endcsname}}
+\outer\def\newtoks{\alloc@5\toks\toksdef\@cclvi}
+\outer\def\newread{\alloc@6\read\chardef\sixt@@n}
+\outer\def\newwrite{\alloc@7\write\chardef\sixt@@n}
+\outer\def\newfam{\alloc@8\fam\chardef\sixt@@n}
+\outer\def\newlanguage{\alloc@9\language\chardef\@cclvi}
+\end{verbatim}
+\begin{verbatim}
+\def\alloc@#1#2#3#4#5{\global\advance\count1#1 by 1
+ \ch@ck#1#4#2% make sure there's still room
+ \allocationnumber=\count1#1 \global#3#5=\allocationnumber
+ \wlog{\string#5=\string#2\the\allocationnumber}}
+\end{verbatim}
+\begin{verbatim}
+\outer\def\newinsert#1{\global\advance\insc@unt by-1
+ \ch@ck0\insc@unt\count \ch@ck1\insc@unt\dimen
+ \ch@ck2\insc@unt\skip \ch@ck4\insc@unt\box
+ \allocationnumber=\insc@unt
+ \global\chardef#1=\allocationnumber
+ \wlog{\string#1=\string\insert\the\allocationnumber}}
+\end{verbatim}
+\begin{verbatim}
+\def\ch@ck#1#2#3{\ifnum\count1#1<#2%
+ \else\errmessage{No room for a new #3}\fi}
+\end{verbatim}
+Das Makro `\verb|\alloc@|' erledigt hier die meiste Arbeit, inkl.\ der
+Meldung in den Logfile etc. Au\ss{}erdem wurde ein Befehl `\verb|\newhelp|'
+eingef\"uhrt, der es erlaubt relativ einfach eigene Hilfstexte zu
+bearbeiten. Mit der Folge
+\begin{verbatim}
+\newhelp\helpout{Hilfstext}
+\errhelp=\helpout
+\end{verbatim}
+vor dem Aufruf von `\verb|\errmessage|' wird dieser Text verf\"ugbar
+gemacht.\footnote{Dies d\"urfte aber wirklich {\em nur} Makrodesigner
+interessieren.}
+
+Nun werden die wichtigen Konstanten \index{Alloziierung!Konstanten}
+alloziiert.
+\begin{verbatim}
+\newdimen\maxdimen \maxdimen=16383.99999pt
+\newskip\hideskip \hideskip=-1000pt plus1fill
+\newskip\centering \centering=0pt plus 1000pt minus 1000pt
+\newdimen\p@ \p@=1pt % this saves macro space and time
+\newdimen\z@ \z@=0pt % likewis
+\newskip\z@skip \z@skip=0pt plus0pt minus0pt
+\newbox\voidb@x % permanently void box register
+\end{verbatim}
+Die Kontrollsequenz `\verb|\maxdimen|' steht f\"ur die gr\"o\ss{}te zur
+Verf\"ugung stehende Dimension. Die Befehle `\verb|\hideskip|' und
+`\verb|\centering|' sollten niemals ge\"andert werden, von ihnen wird
+sp\"ater noch zu lesen sein. Die konstanten Zuweisungen dienen wieder
+einmal der Optimierung.
+
+Abschlie\ss{}end noch einige andere Alloziierungen
+\begin{verbatim}
+\outer\def\newif#1{\count@=\escapechar \escapechar=-1\parbreak%
+ \expandafter\expandafter\expandafter\parbreak%
+ \edef\@if#1{true}{\let\noexpand#1=\noexpand\iftrue}%\parbreak%
+ \expandafter\expandafter\expandafter\parbreak%
+ \edef\@if#1{false}{\let\noexpand#1=\noexpand\iffalse}%\parbreak%
+ \@if#1{false}\escapechar=\count@} % the condition starts out false
+\def\@if#1#2{\csname\expandafter\if@\string#1#2\endcsname}\parbreak%
+{\uccode`1=`i \uccode`2=`f \uppercase{\gdef\if@12{}}} % `if' is required
+\end{verbatim}
+\subsection{Parameter}
+INITEX setzt die meisten Parameter auf Null, leert alle Box- und
+sonstigen Register, es gibt aber auch einige Ausnahmen
+
+\medskip\begin{tabular}{ll}
+{\em Parameter} & {\em voreingestellter Wert}\\[.5ex]
+\verb|\mag| & 1000\\
+\verb|\tolerance| & 10000\\
+\verb|\maxdeadcycles| & 25\\
+\verb|\hangafter| & 1\\
+\verb|\escapechar| & \verb|`\\|\\
+\verb|\endlinechar| & \verb|`\^^M|
+\end{tabular}\medskip
+
+Dar\"uber hinaus setzt {\em Plain} \TeX\ noch weitere Werte
+\begin{verbatim}
+\pretolerance=100 \tolerance=200 \hbadness=1000 \vbadness=1000
+\linepenalty=10 \hyphenpenalty=50 \exhyphenpenalty=50
+\binoppenalty=700 \relpenalty=500
+\clubpenalty=150 \widowpenalty=150 \displaywidowpenalty=50
+\brokenpenalty=100 \predisplaypenalty=10000
+\doublehyphendemerits=10000 \finalhyphendemerits=5000 \adjdemerits=10000
+\tracinglostchars=1 \uchyph=1 \delimiterfactor=901
+\defaulthyphenchar=`\- \defaultskewchar=-1 \newlinechar=-1
+\showboxbreadth=5 \showboxdepth=3 \errorcontextlines=5
+\end{verbatim}\index{Badness}
+\begin{verbatim}
+\hfuzz=0.1pt \vfuzz=0.1pt \overfullrule=5pt
+\hsize=6.5in \vsize=8.9in \parindent=20pt
+\maxdepth=4pt \splitmaxdepth=\maxdimen \boxmaxdepth=\maxdimen
+\delimitershortfall=5pt \nulldelimiterspace=1.2pt \scriptspace=0.5pt
+\end{verbatim}
+\begin{verbatim}
+\parskip=0pt plus 1pt
+\abovedisplayskip=12pt plus 3pt minus 9pt
+\abovedisplayshortskip=0pt plus 3pt
+\belowdisplayskip=12pt plus 3pt minus 9pt
+\belowdisplayshortskip=7pt plus 3pt minus 4pt
+\topskip=10pt \splittopskip=10pt
+\parfillskip=0pt plus 1fil
+\end{verbatim}
+\begin{verbatim}
+\thinmuskip=3mu
+\medmuskip=4mu plus 2mu minus 4mu
+\thickmuskip=5mu plus 5mu
+\end{verbatim}
+Einige Parameter werden erst zur Laufzeit initialisiert. Die Parameter
+\begin{verbatim}
+\time \day \month \year
+\end{verbatim}
+werden erst zu Beginn einer Bearbeitung gesetzt. Der Parameter
+`\verb|\outputpenalty|' wird von der Ausgaberoutine gesetzt. Die
+Parameter
+\begin{verbatim}
+\predisplaysize \displaywidth \displayindet
+\end{verbatim}
+erhalten ihre Werte, unmittelbar bevor eine \index{Formel!abgesetzte}
+abgesetzte Formel erstellt
+wird, und die Parameter
+\begin{verbatim}
+\looseness=0
+\hangindent=0pt
+\hangafter=1
+\parshape=0
+\end{verbatim}
+werden am Ende jedes Paragraphen gesetzt, wenn \TeX\ in den vertikalen
+Modus \"ubergeht. Auch die Parameter
+\begin{verbatim}
+\baselineskip \lineskip \lineskiplimit
+\end{verbatim}\index{Baseline!Skip}
+werden erst durch ein Makro initialisiert, das erst sp\"ater vorgestellt
+wird.
+
+Jetzt kommen einige ``Pseudoparameter'', sie verhalten sich genauso,
+wie die Parameter von \TeX, geh\"oren aber eher zum Sprachumfang von
+{\em Plain} \TeX, als zu den Primitiven.
+\begin{verbatim}
+\newskip\smallskipamount % the amount of a \smallskip
+ \smallskipamount=3pt plus1pt minus1pt
+\newskip\medskipamount % the amount of a \medskip
+ \medskipamount=6pt plus2pt minus2pt
+\newskip\bigskipamount % the amount of a \bigskip
+ \bigskipamount=12pt plus4pt minus4pt
+\newskip\normalbaselineskip % normal value of \baselineskip
+ \normalbaselineskip=12pt
+\newskip\normallineskip % normal value of \lineskip
+ \normallineskip=1pt
+\newdimen\normallineskiplimit % normal value of \lineskiplimit
+ \normallineskiplimit=0pt
+\newdimen\jot % unit of measure for opening up displays
+ \jot=3pt
+\newcount\interdisplaylinepenalty % interline penalty in \displaylines
+ \interdisplaylinepenalty=100
+\newcount\interfootnotelinepenalty % interline penalty in footnotes
+ \interfootnotelinepenalty=100
+\end{verbatim}
+\subsection{Fontinformationen}
+Hier kommen nun die Befehle, die \TeX\ braucht um sich in den ganzen
+Zeichens\"atzen zurechtfinden zu k\"onnen. Zun\"achst das {\tt magstep}
+Makro
+\begin{verbatim}
+\def\magstephalf{1095 }
+\def\magstep#1{\ifcase#1 1000\or
+ 1200\or 1440\or 1728\or 2074\or 2488\fi\relax}
+\end{verbatim}
+Bemerkenswert ist vielleicht, da\ss{} eine Zahl zur\"uck gegeben wird und
+nicht mit dem Multiplikationsbefehl gearbeitet wird. Der Grund daf\"ur
+liegt darin, da\ss{} der Multiplikationsbefehl eine Zuweisung bedeutet,
+und Zuweisungen werden innerhalb von Makros nicht ausgef\"uhrt.
+
+Jetzt kommen die Zeichens\"atze, die schon einmal vorab geladen werden
+sollen.
+\begin{verbatim}
+\font\tenrm=cmr10 \font\preloaded=cmr9 \font\preloaded=cmr8
+\font\sevenrm=cmr7 \font\preloaded=cmr6 \font\fiverm=cmr5
+\end{verbatim}
+\begin{verbatim}
+\font\teni=cmmi10 \font\preloaded=cmmi9 \font\preloaded=cmmi8
+\font\seveni=cmmi7 \font\preloaded=cmmi6 \font\fivei=cmmi5
+\end{verbatim}
+\begin{verbatim}
+\font\tensy=cmsy10 \font\preloaded=cmsy9 \font\preloaded=cmsy8
+\font\sevensy=cmsy7 \font\preloaded=cmsy6 \font\fivesy=cmsy5
+\end{verbatim}
+\begin{verbatim}
+\font\tenex=cmex10
+\end{verbatim}
+\begin{verbatim}
+\font\tenbf=cmbx10 \font\preloaded=cmbx9 \font\preloaded=cmbx8
+\font\sevenbf=cmbx7 \font\preloaded=cmbx6 \font\fivebf=cmbx5
+\end{verbatim}
+\begin{verbatim}
+\font\tensl=cmsl10 \font\preloaded=cmsl9 \font\preloaded=cmsl8
+\font\tentt=cmtt10 \font\preloaded=cmtt9 \font\preloaded=cmtt8
+\font\tenit=cmti10 \font\preloaded=cmti9 \font\preloaded=cmti8
+\font\preloaded=cmss10 \font\preloaded=cmssq8
+\font\preloaded=cmssi10 \font\preloaded=cmssqi8
+\end{verbatim}
+\begin{verbatim}
+\font\preloaded=cmr7 scaled \magstep4 % for titles
+\font\preloaded=cmtt10 scaled \magstep2
+\font\preloaded=cmssbx10 scaled \magstep2
+\end{verbatim}
+\begin{verbatim}
+% Additional \preloaded fonts can be specified here.
+% (And those that were \preloaded above can be eliminated.)
+\let\preloaded=\undefined % preloaded fonts must be declared anew later.
+\end{verbatim}
+Mit dem `\verb|\preloaded|' Befehl werden die Zeichens\"atze nicht {\em
+tatsaechlich} verfuegbar gemacht. Der Befehl bleibt undefiniert. Der
+Grund daf\"ur liegt darin, da\ss{} {\em Plain} \TeX\ ein Standardformat ist,
+das nicht zu viele Zeichens\"atze enthalten soll. Dennoch werden die
+Zeichensatzinformationen hier in \TeX's Speicher geladen und nicht
+erst beim Aufruf mit `\verb|\font|'. Das spart sp\"ater eine Menge Zeit.
+
+Die meisten Zeichens\"atze haben ihre eigenen Werte f\"ur `\verb|\/|',
+Trennungszeichen u.a. Mathematische Zeichen- und Symbols\"atze haben das
+oft nicht, sie m\"ussen erst definiert werden, das geschieht hier.
+\begin{verbatim}
+\skewchar\teni='177 \skewchar\seveni='177 \skewchar\fivei='177
+\skewchar\tensy='60 \skewchar\sevensy='60 \skewchar\fivesy='60
+\end{verbatim}
+Nachdem nun die Zeichens\"atze geladen sind, m\"ussen sie noch in
+Familien, f\"ur den Gebrauch in mathematischen Sequenzen eingeordnet
+werden, und es fehlen noch die \index{Abkuerzung@Abk\"urzung}
+Abk\"urzungen, wie `\verb|\it|' oder
+`\verb|\rm|'
+\begin{verbatim}
+\textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm
+\def\rm{\fam0 \tenrm}
+\textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei
+\def\mit{\fam1 } \def\oldstyle{\fam1 \teni}
+\textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy
+\def\cal{\fam2 }
+\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
+\end{verbatim}
+\begin{verbatim}
+\newfam\itfam \def\it{\fam\itfam\tenit} \textfont\itfam=\tenit
+\newfam\slfam \def\sl{\fam\slfam\tensl} \textfont\slfam=\tensl
+\newfam\bffam \def\bf{\fam\bffam\tenbf} \textfont\bffam=\tenbf
+ \scriptfont\bffam=\sevenbf \scriptscriptfont\bffam=\fivebf
+\newfam\ttfam \def\tt{\fam\ttfam\tentt} \textfont\ttfam=\tentt
+\end{verbatim}
+\subsection{Textmakros}
+Hier kommen nun die ersten Makros, zun\"achst die, die nichts mit dem
+mathematischen Zeichensatz zu tun haben.
+\begin{verbatim}
+\def\frenchspacing{\sfcode`\.=1000 \sfcode`\?=1000 \sfcode`\!=1000
+ \sfcode`\:=1000 \sfcode`\;=1000 \sfcode`\,=1000 }
+\def\nonfrenchspacing{\sfcode`\.=3000 \sfcode`\?=3000 \sfcode`\!=3000
+ \sfcode`\:=2000 \sfcode`\;=1500 \sfcode`\,=1250 }
+\def\normalbaselines{\lineskip=\normallineskip
+ \baselineskip=\normalbaselineskip \lineskiplimit=\normallineskiplimit}
+\end{verbatim}\index{Baseline!Normal}
+Die nun folgenden Makros sind zwar einfach, aber sie werden oft
+eingesetzt. Zun\"achst werden `\verb|<TAB>|' und `\verb|<RETURN>|' so
+umdefiniert, da\ss{} sie als normales Leerzeichen verstanden werden. Dann
+kommen Makros, f\"ur Leute, die sich schwer tun
+\index{Anfuehrungszeichen@Anf\"uhrungszeichen}Anf\"uhrungszeichen und
+eckige Klammern zu schreiben. Die Definitionen von `\verb|\endgraf|'
+und `\verb|\endline|' sind n\"otig, da es oft sinnvoll ist `\verb|\par|'
+und `\verb|\cr|' selber umzudefinieren. Der Rest erkl\"art sich von
+selber.
+\begin{verbatim}
+\def\^^I{\ } \def\^^M{\ }
+\def\lq{`} \def\rq{'} \def\lbrack{[} \def\rbrack{]}
+\let\endgraf=\par \let\endline=\cr
+\def\space{ } \def\empty{} \def\null{\hbox{}}
+\let\bgroup={ \let\egroup=}
+\end{verbatim}
+Nun folgt die Definition des trickreichen Makros `\verb|\obeylines|'
+und `\verb|\obeyspaces|'
+\begin{verbatim}
+\def\obeyspaces{\catcode`\ =\active}
+{\obeyspaces\global\let =\space}
+{\catcode`\^^M=\active % these lines must end with `%'
+ \gdef\obeylines{\catcode`\^^M=\active \let^^M=\par}%
+ \global\let^^M=\par} % this is in case ^^M appears in a \write
+\end{verbatim}
+Die Definition benutzt `\verb|\let|' anstelle von `\verb|\def|' um
+sp\"ater mehr Flexibilit\"at zu erreichen.\footnote{Beispiele dazu
+im Kapitel \"uber Tabellen.}
+Jetzt folgen die {\em Schleifen}makros.
+\begin{verbatim}
+\def\loop#1\repeat{\def\body{#1}\iterate}
+\def\iterate{\body \let\next=\iterate \else\let\next=\relax\fi \next}
+\let\repeat=\fi % this makes \loop...\if...\repeat skippable
+\end{verbatim}
+Nun kommen die Definitionen f\"ur Leerr\"aume. Neben den bekannten
+Befehlen mit ihren Eigenschaften werden hier auch `\verb|\hglue\<Leim>|'
+und `\verb|\vglue\<Leim>|' definiert, die einen Zwischenraum schaffen,
+der {\em nie} entfernt wird.
+
+Die Makros `\verb|\nointerlineskip|' und `\verb|\offinterlineskip|'
+bewirken beide, da\ss{} zwischen den n\"achsten Zeilen kein
+\index{Abstand!Zeilen}Zeilenabstand
+eingef\"ugt wird. Der zweite Befehl ist dabei der weitergehende. Er
+bewirkt, da\ss{} zwar Zwischenraum da ist, dieser aber die Ausdehnung Null
+hat. Der erste Befehl wirkt nur auf die n\"achste Zeile.
+\begin{verbatim}
+\def\enskip{\hskip.5em\relax} \def\enspace{\kern.5em }
+\def\quad{\hskip1em\relax} \def\qquad{\hskip2em\relax}
+\def\thinspace{\kern .16667em } \def\negthinspace{\kern-.16667em }
+\end{verbatim}
+\begin{verbatim}
+\def\hglue{\afterassignment\hgl@\skip@=}
+\def\hgl@{\leavevmode \count@=\spacefactor \vrule width0pt
+ \nobreak\hskip\skip@ \spacefactor=\count@}
+\def\vglue{\afterassignment\vgl@\skip@=}
+\def\vgl@{\par \dimen@=\prevdepth \hrule height0pt
+ \nobreak\vskip\skip@ \prevdepth=\dimen@}
+\def\topglue{\nointerlineskip \vglue-\topskip \vglue} % for top of page
+\end{verbatim}
+\begin{verbatim}
+\def\nointerlineskip{\prevdepth=-1000pt }
+\def\offinterlineskip{\baselineskip=-1000pt
+ \lineskip=0pt \lineskiplimit=\maxdimen}
+\end{verbatim}\index{Baseline!Skip}
+\begin{verbatim}
+\def\smallskip{\vskip\smallskipamount}
+\def\medskip{\vskip\medskipamount}
+\def\bigskip{\vskip\bigskipamount}
+\end{verbatim}
+Nun kommen die Befehle zum Zeilenumbruch u.a.
+\begin{verbatim}
+\def\break{\penalty-10000 } \def\nobreak{\penalty10000 }
+\def\allowbreak{\penalty0 }
+\def~{\penalty10000\ }
+\def\slash{/\penalty\exhyphenpenalty}
+\end{verbatim}
+\begin{verbatim}
+\def\filbreak{\par\vfil\penalty-200\vfilneg}
+\def\goodbreak{\par\penalty-500 }
+\def\eject{\par\penalty-10000 }
+\def\supereject{\par\penalty-20000 }
+\end{verbatim}
+\begin{verbatim}
+\def\removelastskip{\ifdim\lastskip=0pt \else\vskip-\lastskip\fi}
+\def\smallbreak{\par \ifdim\lastskip<\smallskipamount
+ \removelastskip \penalty-50 \smallskip \fi}
+\def\medbreak{\par \ifdim\lastskip<\medskipamount
+ \removelastskip \penalty-100 \medskip \fi}
+\def\bigbreak{\par \ifdim\lastskip<\bigskipamount
+ \removelastskip \penalty-200 \bigskip \fi}
+\end{verbatim}
+Als n\"achstes die Boxbefehle\index{Box!Befehle}
+\begin{verbatim}
+\def\line{\hbox to\hsize}
+\def\leftline#1{\line{#1\hss}} \def\rightline#1{\line{\hss#1}}
+\def\centerline#1{\line{\hss#1\hss}}
+\end{verbatim}
+\begin{verbatim}
+\def\llap#1{\hbox to 0pt{\hss#1}} \def\rlap#1{\hbox to 0pt{#1\hss}}
+\end{verbatim}
+\begin{verbatim}
+\def\m@th{\mathsurround=0pt }
+\def\underbar#1{$\setbox0=\hbox{#1} \dp0=0pt
+ \m@th \underline{\box0}$}
+\end{verbatim}
+Beachten sie, da\ss{} \TeX\ in den mathematischen Modus umschaltet, um
+eine Unterstreichung vorzunehmen. Dieser Gebrauch vom mathematischen
+Modus kommt noch mehrmals vor.
+
+Zun\"achst aber mal der `\verb|\strut|' Befehl in allen vorkommenden
+Feinheiten
+\begin{verbatim}
+\newbox\strutbox
+\setbox\strutbox=\hbox{\vrule height8.5pt depth3.5pt width0pt}
+\def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi}
+\end{verbatim}
+Der `\verb|\relax|' Befehl wird hier verwendet, um Seiteneffekte zu
+vermeiden.
+
+Und noch einige Tabellenbefehle
+\begin{verbatim}
+\def\ialign{\everycr={}\tabskip=0pt \halign} % initialized \halign
+\def\hidewidth{\hskip\hideskip}
+\end{verbatim}
+\begin{verbatim}
+\newcount\mscount
+\def\multispan#1{\omit \mscount=#1 \loop\ifnum\mscount>1 \sp@n\repeat}
+\def\sp@n{\span\omit \advance\mscount by -1 }
+\end{verbatim}
+Die nun folgenden Befehle betreffen alle den Tabellenaufbau. Am besten
+sehen sie sich die Wirkung mit `\verb|\tracingall|' an einem einfachen
+Beispiel an.
+\begin{verbatim}
+\newif\ifus@ \newif\if@cr
+\newbox\tabs \newbox\tabsyet \newbox\tabsdone
+\end{verbatim}
+\begin{verbatim}
+\def\cleartabs{\global\setbox\tabsyet=\null \setbox\tabs=\null}
+\def\settabs{\setbox\tabs=\null \futurelet\next\sett@b}
+\let\+=\relax % in case this file is being read in twice
+\def\sett@b{\ifx\next\+ \let\next=\relax % turn off \outerness
+ \def\next{\afterassignment\s@tt@b\let\next}%
+ \else\let\next=\s@tcols\fi\next}
+\def\s@tt@b{\let\next=\relax \us@false\m@ketabbox}
+\outer\def\+{\tabalign} \def\tabalign{\us@true \m@ketabbox}
+\def\s@tcols#1\columns{\count@=#1 \dimen@=\hsize
+ \loop \ifnum\count@>0 \@nother \repeat}
+\def\@nother{\dimen@ii=\dimen@ \divide\dimen@ii by\count@
+ \setbox\tabs=\hbox{\hbox to\dimen@ii{}\unhbox\tabs}%
+ \advance\dimen@ by-\dimen@ii \advance\count@ by -1 }
+\end{verbatim}
+\begin{verbatim}
+\def\m@ketabbox{\begingroup
+ \global\setbox\tabsyet=\copy\tabs \global\setbox\tabsdone=\null
+ \def\cr{\@crtrue\crcr\egroup\egroup
+ \ifus@ \unvbox0 \lastbox\fi \endgroup
+ \setbox\tabs=\hbox{\unhbox\tabsyet\unhbox\tabsdone}}%
+ \setbox0=\vbox\bgroup\@crfalse \ialign\bgroup&\t@bbox##\t@bb@x\crcr}
+\end{verbatim}
+\begin{verbatim}
+\def\t@bbox{\setbox0=\hbox\bgroup}
+\def\t@bb@x{\if@cr\egroup % now \box0 holds the column
+ \else\hss\egroup \global\setbox\tabsyet=\hbox{\unhbox\tabsyet
+ \global\setbox1=\lastbox}% now \box1 holds its size
+ \ifvoid1 \global\setbox1=\hbox to\wd0{}%
+ \else\setbox0=\hbox to\wd1{\unhbox0}\fi
+ \global\setbox\tabsdone=\hbox{\box1\unhbox\tabsdone}\fi
+ \box0}
+\end{verbatim}
+Es folgen die Makros f\"ur die
+Aufz\"ahlungen\index{Aufzaehlung!Makros@Aufz\"ahlung!Makros}
+\begin{verbatim}
+\def\hang{\hangindent\parindent}
+\def\item{\par\hang\textindent}
+\def\itemitem{\par\indent \hangindent2\parindent \textindent}
+\def\textindent#1{\indent\llap{#1\enspace}\ignorespaces}
+\def\narrower{\advance\leftskip by\parindent
+ \advance\rightskip by\parindent}
+\end{verbatim}
+Das folgende Makro dient dazu einen neuen Abschnitt in einem Dokument
+einzuleiten. Es beginnt eine neue Seite, wenn die letzte nahezu voll
+ist, dann wird ein `\verb|\bigskip|' eingef\"ugt, und der
+Abschnittstitel in einer eigenen Zeile in Fettschrift ausgegeben.
+Dieser Titel erscheint auch bei der Ausgabe auf dem \index{Bildschirm}
+Bildschirm.
+Au\ss{}erdem wird bei dem ersten Paragraphen keine Einr\"uckung vorgenommen.
+\begin{verbatim}
+\outer\def\beginsection#1\par{\vskip0pt plus.3\vsize\penalty-250
+ \vskip0pt plus-.3\vsize\bigskip\vskip\parskip
+ \message{#1}\leftline{\bf#1}\nobreak\smallskip\noindent}
+\end{verbatim}
+Zum Setzen von Lemmata, S\"atzen u.a.\ dient das folgende Makro
+\begin{verbatim}
+\outer\def\proclaim #1. #2\par{\medbreak
+ \noindent{\bf#1.\enspace}{\sl#2\par}%
+ \ifdim\lastskip<\medskipamount \removelastskip\penalty55\medskip\fi}
+\end{verbatim}
+Hier nun die Definition der Makros f\"ur den Flattersatz. Das zweite
+Makro dient f\"ur die Ausgabe in der Teletyperschrift, da dort die
+Wortabst\"ande gr\"o\ss{}er sind.
+\begin{verbatim}
+\def\raggedright{\rightskip=0pt plus2em
+ \spaceskip=.3333em \xspaceskip=.5em\relax}
+\def\ttraggedright{\tt\rightskip=0pt plus2em\relax}
+\end{verbatim}
+Schlie\ss{}lich die \index{Akzent!Definition}
+Akzente, die ja auch via Makro realisiert werden.
+\begin{verbatim}
+\chardef\%=`\% \chardef\&=`\& \chardef\#=`\# \chardef\$=`\$
+\chardef\ss=\"19
+\chardef\ae=\"1A \chardef\oe=\"1B \chardef\o=\"1C
+\chardef\AE=\"1D \chardef\OE=\"1E \chardef\O=\"1F
+\chardef\i=\"10 \chardef\j=\"11 % dotless letters
+\def\aa{\accent'27a} \def\l{\char'40l}
+\end{verbatim}
+\begin{verbatim}
+\def\leavevmode{\unhbox\voidb@x} % begins a paragraph, if necessary
+\def\_{\leavevmode \kern.06em \vbox{\hrule width0.3em}}
+\def\L{\leavevmode\setbox0=\hbox{L}\hbox to\wd0{\hss\char'40L}}
+\def\AA{\leavevmode\setbox0=\hbox{h}\dimen@=\ht0
+ \advance\dimen@ by-1ex
+ \rlap{\raise.67\dimen@\hbox{\char'27}}A}
+\end{verbatim}
+\begin{verbatim}
+\def\mathhexbox#1#2#3{\leavevmode
+ \hbox{$\m@th \mathchar\"#1#2#3$}}
+\def\dag{\mathhexbox279} \def\ddag{\mathhexbox27A}
+\def\S{\mathhexbox278} \def\P{\mathhexbox27B}
+\end{verbatim}
+\begin{verbatim}
+\def\oalign#1{\leavevmode\vtop{\baselineskip0pt \lineskip.25ex
+ \ialign{##\crcr#1\crcr}}} % put characters over each other
+\def\ooalign{\lineskiplimit-\maxdimen \oalign}
+\def\d#1{\oalign{#1\crcr\hidewidth.\hidewidth}}
+\def\b#1{\oalign{#1\crcr\hidewidth
+ \vbox to.2ex{\hbox{\char'26}\vss}\hidewidth}}
+\def\c#1{\setbox0=\hbox{#1}\ifdim\ht0=1ex \accent'30 #1%
+ \else{\ooalign{\hidewidth\char'30\hidewidth\crcr\unhbox0}}\fi}
+\def\copyright{{\ooalign
+ {\hfil\raise.07ex\hbox{c}\hfil\crcr\mathhexbox20D}}}
+\end{verbatim}\index{Baseline!Skip}
+\begin{verbatim}
+\def\dots{\relax\ifmmode\ldots\else$\m@th \ldots\,$\fi}
+\def\TeX{T\kern-.1667em \lower.5ex\hbox{E}\kern-.125em X}
+\end{verbatim}
+\begin{verbatim}
+\def\`#1{{\accent\"12 #1}} \def\'#1{{\accent\"13 #1}}
+\def\v#1{{\accent\"14 #1}} \def\u#1{{\accent\"15 #1}}
+\def\=#1{{\accent\"16 #1}} \def\^#1{{\accent\"5E #1}}
+\def\.#1{{\accent\"5F #1}} \def\H#1{{\accent\"7D #1}}
+\def\~#1{{\accent\"7E #1}} \def\\"#1{{\accent\"7F #1}}
+\def\t#1{{\edef\next{\the\font}\the\textfont1\accent\"7F\next#1}}
+\end{verbatim}
+Einige spezielle Befehle f\"ur die gl\"ucklichen Menschen, die eine
+bessere Tastatur haben, als Normalsterbliche.
+\begin{verbatim}
+\let\^^_=\v \let\^^S=\u \let\^^D=\^
+\end{verbatim}
+Jetzt jede Menge M\"oglichkeiten Zwischenraum aufzuf\"ullen.
+\begin{verbatim}
+\def\hrulefill{\leaders\hrule\hfill}
+\def\dotfill{\cleaders\hbox{$\m@th \mkern1.5mu . \mkern1.5mu$}\hfill}
+\def\rightarrowfill{$\m@th \mathord- \mkern-6mu
+ \cleaders\hbox{$\mkern-2mu \mathord- \mkern-2mu$}\hfill
+ \mkern-6mu \mathord\rightarrow$}
+\def\leftarrowfill
+ {$\m@th \mathord\leftarrow \mkern-6mu
+ \cleaders\hbox{$\mkern-2mu \mathord- \mkern-2mu$}\hfill
+ \mkern-6mu \mathord-$}
+\end{verbatim}
+\begin{verbatim}
+\mathchardef\braceld=\"37A \mathchardef\bracerd=\"37B
+\mathchardef\bracelu=\"37C \mathchardef\braceru=\"37D
+\def\upbracefill{$\m@th
+ \bracelu\leaders\vrule\hfill\bracerd
+ \braceld\leaders\vrule\hfill\braceru$}
+\def\downbracefill{$\m@th
+ \braceld\leaders\vrule\hfill\braceru
+ \bracelu\leaders\vrule\hfill\bracerd$}
+\end{verbatim}
+Die Befehle `\verb|\upbracefill|' und `\verb|\downbracefill|' f\"urfen
+nur innerhalb einer \index{Box!Hbox}`\verb|\hbox|' auftreten, oder in einer Tabelle.
+Nun kommt noch die Definition von `\verb|\bye|'
+\begin{verbatim}
+\outer\def\bye{\par\vfill\supereject\end} % the recommended way to stop
+\end{verbatim}
+\subsection{Makros f\"ur die Mathematik}
+Viele der in diesem Abschnitt vertretenen Makros dienen nur der
+Darstellung von Sonderzeichen, sie werden hier nicht gesondert
+aufgef\"uhrt. Zun\"achst einmal einige einfache Makros, f\"ur Leute, die
+kein `\verb|_|' oder `\verb|^|' auf ihrer Tastatur haben gibt es die
+Befehle `\verb|\sp|' und `\verb|\sb|'. Dann kommen noch die Makros f\"ur
+die Zwischenr\"aume, und andere Kleinigkeiten
+\begin{verbatim}
+\let\sp=^ \let\sb=_ {\catcode`\_=\active \global\let_=\_}
+\def\,{\mskip\thinmuskip} \def\!{\mskip-\thinmuskip}
+\def\>{\mskip\medmuskip} \def\;{\mskip\thickmuskip}
+\def\*{\discretionary{\thinspace\the\textfont2\char2}{}{}}
+{\catcode`\^^Z=\active \gdef^^Z{\not=}} % ^^Z is like \ne in math
+\end{verbatim}
+\begin{verbatim}
+{\catcode`\'=\active \gdef'{^\bgroup\prim@s}}
+\def\prim@s{\prime\futurelet\next\pr@m@s}
+\def\pr@m@s{\ifx'\next\let\nxt\pr@@@s
+ \else\ifx^\next\let\nxt\pr@@@t
+ \else\let\nxt\egroup\fi\fi \nxt}
+\def\pr@@@s#1{\prim@s} \def\pr@@@t#1#2{#2\egroup}
+\end{verbatim}
+Jetzt kommen die Definitionen f\"ur griechische Buchstaben. Um die
+Geschichte nicht allzu lang werden zu lassen werden Folgen von
+Befehlen durch drei Punkte angezeigt.
+\begin{verbatim}
+\mathchardef\alpha=\"010B ... \mathchardef\omega=\"0121
+\mathchardef\Gamma=\"7000 ... \mathchardef\Omega=\"700A
+\mathchardef\aleph=\"0240 ... \mathchardef\spadesuit=\"027F
+\def\hbar{{\mathchar'26\mkern-9muh}}
+\def\surd{{\mathchar\"1270}}
+\def\angle{{\vbox{\ialign{$\m@th\scriptstyle##$\crcr
+ \not\mathrel{\mkern14mu}\crcr \noalign{\nointerlineskip}
+ \mkern2.5mu\leaders\hrule height.34pt\hfill\mkern2.5mu\crcr}}}}
+\end{verbatim}
+Nun die gro\ss{}en Symbole
+\begin{verbatim}
+\mathchardef\smallint=\"1273
+\mathchardef\sum=\"1350 ... \mathchardef\biguplus=\"1355
+\mathchardef\intop=\"1352 \def\int{\intop\nolimits}
+\mathchardef\ointop=\"1348 \def\oint{\ointop\nolimits}
+\end{verbatim}
+Auch nichts verwunderliches bei den bin\"aren Operatoren
+\begin{verbatim}
+\mathchardef\pm=\"2206 ... \mathchardef\amalg=\"2271
+\end{verbatim}
+Auch die Relationen werden einfach linear definiert, mit Ausnahme der
+Relationen, die aus verschiedenen Zeichen zusammengesetzt sind. Dazu
+geh\"ort `\verb|\mapsto|' und `\verb|\longmapsto|'
+\begin{verbatim}
+\mathchardef\leq=\"3214 ... \mathchardef\perp=\"323F
+\def\joinrel{\mathrel{\mkern-3mu}}
+\def\relbar{\mathrel{\smash-}} \def\Relbar{\mathrel=}
+\def\longrightarrow{\relbar\joinrel\rightarrow}
+\def\Longrightarrow{\Relbar\joinrel\Rightarrow}
+\def\longleftarrow{\leftarrow\joinrel\relbar}
+\def\Longleftarrow{\Leftarrow\joinrel\Relbar}
+\def\longleftrightarrow{\leftarrow\joinrel\rightarrow}
+\def\Longleftrightarrow{\Leftarrow\joinrel\Rightarrow}
+\mathchardef\mapstochar=\"322F \def\mapsto{\mapstochar\rightarrow}
+\def\longmapsto{\mapstochar\longrightarrow}
+\mathchardef\lhook=\"312C \def\hookrightarrow{\lhook\joinrel\rightarrow}
+\mathchardef\rhook=\"312D \def\hookleftarrow{\leftarrow\joinrel\rhook}
+\end{verbatim}
+\begin{verbatim}
+\def\neq{\not=} \def\models{\mathrel|\joinrel=}
+\def\bowtie{\mathrel\triangleright\joinrel\mathrel\triangleleft}
+\end{verbatim}
+Nach der Definition von `\verb|\ldotp|' und `\verb|\cdotp|' ist die
+weitere Definition von den im mathematischen Modus gebr\"auchlichen
+Punkten keine Schwierigkeit mehr.
+\begin{verbatim}
+\mathchardef\ldotp=\"613A\mathchardef\cdotp=\"6201\mathchardef\colon=\"603A
+\def\ldots{\mathinner{\ldotp\ldotp\ldotp}}
+\def\cdots{\mathinner{\cdotp\cdotp\cdotp}}
+\def\vdots{\vbox{\baselineskip=4pt \lineskiplimit=0pt
+ \kern6pt \hbox{.}\hbox{.}\hbox{.}}}
+\def\ddots{\mathinner{\mkern1mu\raise7pt\vbox{\kern7pt\hbox{.}}\mkern2mu
+ \raise4pt\hbox{.}\mkern2mu\raise1pt\hbox{.}\mkern1mu}}
+\end{verbatim}\index{Baseline!Skip}
+Die meisten mathematischen \index{Akzent!mathematische}
+Akzente werden mit `\verb|\mathaccent|'
+realisiert, die mit variabler Breite m\"ussen einzeln bereitgestellt
+werden
+\begin{verbatim}
+\def\acute{\mathaccent\"7013 } ... \def\ddot{\mathaccent\"707F }
+\def\widetilde{\mathaccent\"0365 } \def\widehat{\mathaccent\"0362 }
+\def\overrightarrow#1{\vbox{\ialign{##\crcr
+ \rightarrowfill\crcr\noalign{\kern-1pt\nointerlineskip}
+ $\hfil\displaystyle{#1}\hfil$\crcr}}}
+\def\overleftarrow#1{\vbox{\ialign{##\crcr
+ \leftarrowfill\crcr\noalign{\kern-1pt\nointerlineskip}
+ $\hfil\displaystyle{#1}\hfil$\crcr}}}
+\def\overbrace#1{\mathop{\vbox{\ialign{##\crcr\noalign{\kern3pt}
+ \downbracefill\crcr\noalign{\kern3pt\nointerlineskip}
+ $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits}
+\def\underbrace#1{\mathop{\vtop{\ialign{##\crcr
+ $\hfil\displaystyle{#1}\hfil$\crcr \noalign{\kern3pt\nointerlineskip}
+ \upbracefill\crcr\noalign{\kern3pt}}}}\limits}
+\def\skew#1#2#3{{#2{#3\mkern#1mu}\mkern-#1mu}{}}
+\end{verbatim}
+Nun die 24 \index{Klammer}Klammern, die in der Gr\"o\ss{}e variabel sind
+\begin{verbatim}
+\def\langle{\delimiter\"426830A } \def\rangle{\delimiter\"526930B }
+\def\lbrace{\delimiter\"4266308 } \def\rbrace{\delimiter\"5267309 }
+\def\lceil{\delimiter\"4264306 } \def\rceil{\delimiter\"5265307 }
+\def\lfloor{\delimiter\"4262304 } \def\rfloor{\delimiter\"5263305 }
+\def\lgroup{\delimiter\"400033A } \def\rgroup{\delimiter\"500033B }
+\def\lmoustache{\delimiter\"4000340 } \def\rmoustache{\delimiter\"5000341 }
+\def\uparrow{\delimiter\"3222378 } \def\Uparrow{\delimiter\"322A37E }
+\def\downarrow{\delimiter\"3223379 } \def\Downarrow{\delimiter\"322B37F }
+\def\updownarrow{\delimiter\"326C33F } \def\arrowvert{\delimiter\"033C000 }
+\def\Updownarrow{\delimiter\"326D377 } \def\Arrowvert{\delimiter\"033D000 }
+\def\vert{\delimiter\"026A30C } \def\Vert{\delimiter\"026B30D }
+\def\backslash{\delimiter\"026E30F } \def\bracevert{\delimiter\"033E000 }
+\end{verbatim}
+Jetzt k\"onnen auch die `\verb|\big...|' Befehle bereitgestellt werden
+\begin{verbatim}
+\def\bigl{\mathopen\big} \def\bigm{\mathrel\big} \def\bigr{\mathclose\big}
+\def\Bigl{\mathopen\Big} \def\Bigm{\mathrel\Big} \def\Bigr{\mathclose\Big}
+\def\biggl{\mathopen\bigg} \def\Biggl{\mathopen\Bigg}
+\def\biggm{\mathrel\bigg} \def\Biggm{\mathrel\Bigg}
+\def\biggr{\mathclose\bigg} \def\Biggr{\mathclose\Bigg}
+\def\big#1{{\hbox{$\left#1\vbox to 8.5pt{}\right.\n@space$}}}
+\def\Big#1{{\hbox{$\left#1\vbox to 11.5pt{}\right.\n@space$}}}
+\def\bigg#1{{\hbox{$\left#1\vbox to 14.5pt{}\right.\n@space$}}}
+\def\Bigg#1{{\hbox{$\left#1\vbox to 17.5pt{}\right.\n@space$}}}
+\def\n@space{\nulldelimiterspace=0pt \m@th}
+\end{verbatim}
+Und jetzt noch ein paar \index{Abkuerzung@Abk\"urzung}
+Abk\"urzungen, die sich auf
+\index{Klammer!Abkuerzungen@Klammer!Abk\"urzung}Klammern beziehen
+\begin{verbatim}
+\def\choose{\atopwithdelims()}
+\def\brack{\atopwithdelims[]}
+\def\brace{\atopwithdelims\{\}}
+\def\sqrt{\radical\"270370 }
+\end{verbatim}
+Nun wird es wieder etwas interessanter. Der `\verb|\mathpalette|'
+Befehl reagiert unterschiedlich, je nach Stil, in dem er aufgerufen
+wird. Er ist ma\ss{}geblich f\"ur weitere Befehle. Diese Definition kann
+auch als Muster daf\"ur dienen, wie andere Definitionen auf die
+verschiedenen Stile reagieren kann.
+\begin{verbatim}
+\def\mathpalette#1#2{\mathchoice{#1\displaystyle{#2}}
+ {#1\textstyle{#2}}{#1\scriptstyle{#2}}{#1\scriptscriptstyle{#2}}}
+\end{verbatim}
+\begin{verbatim}
+\newbox\rootbox
+\def\root#1\of{\setbox\rootbox=
+ \hbox{$\m@th \scriptscriptstyle{#1}$}
+ \mathpalette\r@@t}
+\def\r@@t#1#2{\setbox0=\hbox{$\m@th #1\sqrt{#2}$}
+ \dimen@=\ht0 \advance\dimen@ by-\dp0
+ \mkern5mu \raise.6\dimen@\copy\rootbox \mkern-10mu \box0}
+\end{verbatim}
+\begin{verbatim}
+\newif\ifv@ \newif\ifh@
+\def\vphantom{\v@true\h@false\ph@nt}
+\def\hphantom{\v@false\h@true\ph@nt}
+\def\phantom{\v@true\h@true\ph@nt}
+\def\ph@nt{\ifmmode\def\next{\mathpalette\mathph@nt}%
+ \else\let\next=\makeph@nt\fi \next}
+\def\makeph@nt#1{\setbox0=\hbox{#1}\finph@nt}
+\def\mathph@nt#1#2{\setbox0=\hbox{$\m@th#1{#2}$}\finph@nt}
+\def\finph@nt{\setbox2=\null \ifv@ \ht2=\ht0 \dp2=\dp0 \fi
+ \ifh@ \wd2=\wd0 \fi \box2 }
+\def\mathstrut{\vphantom(}
+\end{verbatim}
+\begin{verbatim}
+\def\smash{\relax % \relax, in case this comes first in \halign
+ \ifmmode\def\next{\mathpalette\mathsm@sh}\else\let\next\makesm@sh
+ \fi \next}
+\def\makesm@sh#1{\setbox0=\hbox{#1}\finsm@sh}
+\def\mathsm@sh#1#2{\setbox0=\hbox{$\m@th#1{#2}$}\finsm@sh}
+\def\finsm@sh{\ht0=0pt \dp0=0pt \box0 }
+\end{verbatim}
+\begin{verbatim}
+\def\cong{\mathrel{\mathpalette\@vereq\sim}} % \sim over =
+\def\@vereq#1#2{\lower.5pt\vbox{\baselineskip0pt \lineskip-.5pt
+ \ialign{$\m@th#1\hfil##\hfil$\crcr#2\crcr=\crcr}}}
+\def\notin{\mathrel{\mathpalette\c@ncel\in}}
+\def\c@ncel#1#2{\ooalign{$\hfil#1\mkern1mu/\hfil$\crcr$#1#2$}}
+\def\rightleftharpoons{\mathrel{\mathpalette\rlh@{}}}
+\def\rlh@#1{\vcenter{\hbox{\ooalign{\raise2pt
+ \hbox{$#1\rightharpoonup$}\crcr $#1\leftharpoondown$}}}}
+\def\buildrel#1\over#2{\mathrel{\mathop{\kern0pt #2}\limits^{#1}}}
+\def\doteq{\buildrel\textstyle.\over=}
+\end{verbatim}\index{Baseline!Skip}
+Hier einige Definitionen f\"ur alternative Namen
+\begin{verbatim}
+\let\ne=\neq \let\le=\leq \let\ge=\geq
+\let\{=\lbrace \let\|=\Vert \let\}=\rbrace
+\let\to=\rightarrow \let\gets=\leftarrow \let\owns=\ni
+\let\land=\wedge \let\lor=\vee \let\lnot=\neg
+\def\iff{\;\Longleftrightarrow\;}
+\end{verbatim}
+Die meisten Funktionsnamen, die in der Schriftart Roman gesetzt werden
+sind schon bekannt, hier folgen nur einige, die noch nicht vorgestellt
+wurden
+\begin{verbatim}
+\def\arccos{\mathop{\rm arccos}\nolimits}
+ ... \def\tanh{\mathop{\rm tanh}\nolimits}
+\def\det{\mathop{\rm det}} ... \def\sup{\mathop{\rm sup}}
+\def\liminf{\mathop{\rm lim\,inf}} \def\limsup{\mathop{\rm lim\,sup}}
+\end{verbatim}
+\begin{verbatim}
+\def\bmod{\mskip-\medmuskip \mkern5mu
+ \mathbin{\rm mod} \penalty900 \mkern5mu \mskip-\medmuskip}
+\def\pmod#1{\allowbreak \mkern18mu ({\rm mod}\,\,#1)}
+\end{verbatim}
+Die Definitionen von `\verb|\matrix|' und `\verb|\bordermatrix|'
+werden hier bereitgestellt.
+\begin{verbatim}
+\def\matrix#1{\null\,\vcenter{\normalbaselines\m@th
+ \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr
+ \mathstrut\crcr\noalign{\kern-\baselineskip}
+ #1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}\,}
+\end{verbatim}\index{Baseline!Normal}
+\begin{verbatim}
+\newdimen\p@renwd \setbox0=\hbox{\tenex B} \p@renwd=\wd0
+\def\bordermatrix#1{\begingroup \m@th
+ \setbox0=\vbox{\def\cr{\crcr\noalign{\kern2pt\global\let\cr=\endline}}
+ \ialign{$##$\hfil\kern2pt\kern\p@renwd&\thinspace\hfil$##$\hfil
+ &&\quad\hfil$##$\hfil\crcr
+ \omit\strut\hfil\crcr\noalign{\kern-\baselineskip}
+ #1\crcr\omit\strut\cr}}
+ \setbox2=\vbox{\unvcopy0 \global\setbox1=\lastbox}
+ \setbox2=\hbox{\unhbox1 \unskip \global\setbox1=\lastbox}
+ \setbox2=\hbox{$\kern\wd1\kern-\p@renwd \left( \kern-\wd1
+ \global\setbox1=\vbox{\box1\kern2pt}
+ \vcenter{\kern-\ht1 \unvbox0 \kern-\baselineskip} \,\right)$}
+ \null\;\vbox{\kern\ht1\box2}\endgroup}
+\end{verbatim}\index{Baseline!Skip}
+Die n\"achsten Definitionen sind wieder etwas einfacher
+\begin{verbatim}
+\def\cases#1{\left\{\,\vcenter{\normalbaselines\m@th
+ \ialign{$##\hfil$&\quad##\hfil\crcr#1\crcr}}\right.}
+\def\pmatrix#1{\left( \matrix{#1} \right)}
+\end{verbatim}
+Zum guten Schlu\ss{} noch die Makros f\"ur die \index{Formel!abgesetzte}
+abgesetzten Formeln
+\begin{verbatim}
+\def\openup{\afterassignment\@penup\dimen@=}
+\def\@penup{\advance\lineskip\dimen@
+ \advance\baselineskip\dimen@ \advance\lineskiplimit\dimen@}
+\def\eqalign#1{\null\,\vcenter{\openup1\jot \m@th
+ \ialign{\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil
+ \crcr#1\crcr}}\,}
+\end{verbatim}
+\begin{verbatim}
+\newif\ifdt@p
+\def\displ@y{\global\dt@ptrue \openup1\jot \m@th
+ \everycr{\noalign{\ifdt@p \global\dt@pfalse
+ \vskip-\lineskiplimit \vskip\normallineskiplimit
+ \else \penalty\interdisplaylinepenalty \fi}}}
+\def\@lign{\tabskip=0pt\everycr={}} % restore inside \displ@y
+\def\displaylines#1{\displ@y
+ \halign{\hbox to\displaywidth{$\hfil\@lign\displaystyle##\hfil$}\crcr
+ #1\crcr}}
+\end{verbatim}
+\begin{verbatim}
+\def\eqalignno#1{\displ@y \tabskip=\centering
+ \halign to\displaywidth{\hfil$\@lign\displaystyle{##}$\tabskip=0pt
+ &$\@lign\displaystyle{{}##}$\hfil\tabskip=\centering
+ &\llap{$\@lign##$}\tabskip=0pt\crcr
+ #1\crcr}}
+\def\leqalignno#1{\displ@y \tabskip=\centering
+ \halign to\displaywidth{\hfil$\@lign\displaystyle{##}$\tabskip=0pt
+ &$\@lign\displaystyle{{}##}$\hfil\tabskip=\centering
+ &\kern-\displaywidth\rlap{$\@lign##$}\tabskip=\displaywidth\crcr
+ #1\crcr}}
+\end{verbatim}
+Der Wert von `\verb|\lineskiplimt|' wird dabei als
+`\verb|\normallineskiplimit|' angenommen, nur ver\"an\-dert durch die
+``\"Offnung''.
+
+\subsection{Makros f\"ur die Ausgaberoutine}
+Zuerst werden einige Dinge bzgl.\ Seitennummern, Kopf- und Fu\ss{}zeilen
+geregelt
+\begin{verbatim}
+\countdef\pageno=0 \pageno=1 % first page is number 1
+\newtoks\headline \headline={\hfil} % headline is normally blank
+\newtoks\footline \footline={\hss\tenrm\folio\hss}
+ % footline is normally a centered page number in font \tenrm
+\def\folio{\ifnum\pageno<0 \romannumeral-\pageno \else\number\pageno \fi}
+\def\nopagenumbers{\footline={\hfil}} % blank out the footline
+\def\advancepageno{\ifnum\pageno<0 \global\advance\pageno by -1
+ \else\global\advance\pageno by 1 \fi} % increase |pageno|
+\end{verbatim}
+\begin{verbatim}
+\newif\ifr@ggedbottom
+\def\raggedbottom{\topskip10pt plus60pt \r@ggedbottomtrue}
+\def\normalbottom{\topskip10pt \r@ggedbottomfalse} % undoes \raggedbottom
+\end{verbatim}
+Das Fu\ss{}noten Makro benutzt
+`\verb|\futurelet|' und `\verb|\aftergroup|', damit die Fu\ss{}note nicht
+als Argument an ein anderes Makro \"ubergeben werden mu\ss{}.
+\begin{verbatim}
+\newinsert\footins
+\def\footnote#1{\let\@sf=\empty % parameter #2 (the text) is read later
+ \ifhmode\edef\@sf{\spacefactor=\the\spacefactor}\/\fi
+ #1\@sf\vfootnote{#1}}
+\def\vfootnote#1{\insert\footins\bgroup
+ \interlinepenalty=\interfootnotelinepenalty
+ \splittopskip=\ht\strutbox % top baseline for broken footnotes
+ \splitmaxdepth=\dp\strutbox \floatingpenalty=20000
+ \leftskip=0pt \rightskip=0pt \spaceskip=0pt \xspaceskip=0pt
+ \textindent{#1}\footstrut\futurelet\next\fo@t}
+\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t
+ \else\let\next\f@t\fi \next}
+\def\f@@t{\bgroup\aftergroup\@foot\let\next}
+\def\f@t#1{#1\@foot}
+\def\@foot{\strut\egroup}
+\def\footstrut{\vbox to\splittopskip{}}
+\skip\footins=\bigskipamount % space added when footnote is present
+\count\footins=1000 % footnote magnification factor (1 to 1)
+\dimen\footins=8in % maximum footnotes per page
+\end{verbatim}
+Hier steht nun, wie {\em flie\ss{}ende} Einf\"ugungen realisiert werden
+\begin{verbatim}
+\newinsert\topins \newif\ifp@ge \newif\if@mid
+\def\topinsert{\@midfalse\p@gefalse\@ins}
+\def\midinsert{\@midtrue\@ins}
+\def\pageinsert{\@midfalse\p@getrue\@ins}
+\skip\topins=0pt % no space added when a topinsert is present
+\count\topins=1000 % magnification factor (1 to 1)
+\dimen\topins=\maxdimen % no limit per page
+\def\@ins{\par\begingroup\setbox0=\vbox\bgroup} % start a \vbox
+\def\endinsert{\egroup % finish the \vbox
+ \if@mid \dimen@=\ht0 \advance\dimen@ by\dp\z@ \advance\dimen@ by12\p@
+ \advance\dimen@ by\pagetotal \advance\dimen@ by-\pageshrink
+ \ifdim\dimen@>\pagegoal \@midfalse\p@gefalse\fi\fi
+ \if@mid \bigskip \box0 \bigbreak
+ \else\insert\topins{\penalty100 % floating insertion
+ \splittopskip=0pt \splitmaxdepth=\maxdimen \floatingpenalty=0
+ \ifp@ge \dimen@=\dp0
+ \vbox to\vsize{\unvbox0 \kern-\dimen@} % depth is zero
+ \else \box0 \nobreak\bigskip\fi}\fi\endgroup}
+\end{verbatim}
+Hier die vollst\"andige Ausgaberoutine
+\begin{verbatim}
+\output={\plainoutput}
+\def\plainoutput{\shipout\vbox{\makeheadline\pagebody\makefootline}%
+ \advancepageno
+ \ifnum\outputpenalty>-20000 \else\dosupereject\fi}
+\def\pagebody{\vbox to\vsize{\boxmaxdepth=\maxdepth \pagecontents}}
+\def\makeheadline{\vbox to 0pt{\vskip-22.5pt
+ \line{\vbox to8.5pt{}\the\headline}\vss}\nointerlineskip}
+\def\makefootline{\baselineskip=24pt \line{\the\footline}}
+\def\dosupereject{\ifnum\insertpenalties>0 % something is being held over
+ \line{}\kern-\topskip\nobreak\vfill\supereject\fi}
+\end{verbatim}\index{Baseline!Skip}
+\begin{verbatim}
+\def\pagecontents{\ifvoid\topins\else\unvbox\topins\fi
+ \dimen@=\dp255 \unvbox255
+ \ifvoid\footins\else % footnote info is present
+ \vskip\skip\footins \footnoterule \unvbox\footins\fi
+ \ifr@ggedbottom \kern-\dimen@ \vfil \fi}
+\def\footnoterule{\kern-3pt
+ \hrule width 2truein \kern 2.6pt} % the \hrule is .4pt high
+\end{verbatim}
+\subsection{Trennung und dergleichen}
+Der letzte Teil von {\tt plain.tex} lie\ss{}t die Trennungsmuster aus dem
+File {\tt hyphen.tex} und auch die Ausnahmen
+\begin{verbatim}
+\lefthyphenmin=2 \righthyphenmin=3 % disallow x- or -xx breaks
+\input hyphen % the hyphenation patterns and exceptions
+\end{verbatim}
+\begin{verbatim}
+\def\magnification{\afterassignment\m@g\count@}
+\def\m@g{\mag=\count@
+ \hsize6.5truein\vsize8.9truein\dimen\footins8truein}
+\end{verbatim}
+\begin{verbatim}
+\def\tracingall{\tracingonline=1 \tracingcommands=2 \tracingstats=2
+ \tracingpages=1 \tracingoutput=1 \tracinglostchars=1
+ \tracingmacros=2 \tracingparagraphs=1 \tracingrestores=1
+ \showboxbreadth=\maxdimen \showboxdepth=\maxdimen \errorstopmode}
+\end{verbatim}
+\begin{verbatim}
+\def\showhyphens#1{\setbox0=\vbox{\parfillskip0pt \hsize=\maxdimen \tenrm
+ \pretolerance=-1 \tolerance=-1 \hbadness=0 \showboxdepth=0 \ #1}}
+\end{verbatim}\index{Badness}
+\begin{verbatim}
+\normalbaselines\rm % select roman font
+\nonfrenchspacing % punctuation affects the spacing
+\catcode`@=12 % at signs are no longer letters
+\end{verbatim}\index{Baseline!Normal}
+\begin{verbatim}
+\def\fmtname{plain}\def\fmtversion{3.0} % identifies the current format
+\end{verbatim}
+\chapter{Trennungen}
+Es ist sicher besser ein Wort zu trennen, als die \index{Zwischenraum}
+Zwischenr\"aume
+zwischen einzelnen W\"ortern zu weit zu strecken. Computer sind
+normalerweise nicht sehr gut bei der Trennung von Worten. Als die
+ersten automatischen Trennungen in Zeitungen auftauchten, machten auch
+schnell die ersten Witze die Runde.\footnote{Im Gegensatz zu den
+englischen Beispielen aus dem \TeX book erinnere ich hier an die
+unvergessenen Beispiele aus der CONTEXT-Dokumentation, wie Klo-ster,
+oder noch besser Urin-stinkt. Im weiteren werde ich mich aber an die
+Originalbeispiele halten.}
+
+Woher die Schwierigkeiten kommen d\"urfte klar sein. So wird z.B.\ das
+Wort `record' einmal als `re-cord' und einmal als `rec-ord' getrennt,
+je nachdem, wie es verwendet wird. Auch das englische Wort f\"ur
+Trennung: `hy-phen-a-tion' ist nicht ganz einfach zu trennen, so wird
+bei dem \"ahnlichen Wort `con-cat-e-na-tion' das `n' mit zu dem `a'
+gezogen, im Gegensatz zu dem ersten Beispiel.
+
+Eine gute L\"osung f\"ur das Trennungproblem fand \index{Liang}
+Frank~M. Liang zwischen
+1980 und 1982 und \TeX\ \"ubernahm die Methode. Diese Methode findet zu
+fast allen W\"ortern die legitimen Trennstellen, macht nur selten
+\index{Fehler!Bei Trennungen}Fehler, ist schnell, verbraucht nur wenig
+\index{Speicherplatz!Trennung}Speicherplatz und ist
+flexibel genug um schnell auf andere Sprachen angewendet zu werden,
+ja, sie kann sogar simultan auf zwei Sprachen angewendet werden.
+
+Um ein Wort zu trennen schaut \TeX\ zuerst in ein
+\index{Register!Ausnahme}Ausnahmenregister,
+um das Wort eventuell dort zu finden. Wenn das Wort dort nicht
+vorkommt, dann sucht \TeX\ nach \index{Muster!Trennung}
+Mustern in dem Wort, und das ist der
+Kernpunkt der Methode von \index{Liang}Liang. Hier nun die Vorgehensweise am
+Beispiel des Wortes \index{zzzhyphenation@{\tt\char92 hyphenation}}
+`hyphenation', vorausgesetzt, \TeX\ arbeitet mit
+den englischen Trennmustern.
+
+Zun\"achst wird dem Wort ein Zeichen vor- und eins nachgestellt, die als
+\index{Markierung!Trennung}Markierung dienen sollen.
+\index{zzzhyphenation@{\tt\char92 hyphenation}}
+\begin{verbatim}
+.hyphenation.
+\end{verbatim}
+Hier bei wurde das `\verb|.|' als Markierung verwendet. Dieses Wort
+hat die {\em Unter}w\"orter
+\begin{verbatim}
+. h y p h e n a t i o n .
+\end{verbatim}
+der L\"ange eins, und die Unterw\"orter der L\"ange zwei
+\begin{verbatim}
+.h hy yp ph he en na at ti io on n.
+\end{verbatim}
+und schlie\ss{}lich die der L\"ange drei
+\begin{verbatim}
+.hy hyp yph phe hen ena nat ati tio ion on.
+\end{verbatim}
+und so weiter. Jedes Unterwort der L\"ange $k$ definiert $k+1$ kleine
+Zahlwerte, die die F\"ahigkeit zur Trennung zwischen zwei Buchstaben
+ausdr\"ucken. In den folgenden Beispielen werden diese Wert als Indizes
+angegeben.
+\newcommand{\ti}[1]{${}_#1$}
+
+`\ti0 h\ti0 e\ti2 n\ti0' meint z.B., da\ss{} bei dem Unterwort `\verb|hen|'
+alle Werte Nul sind mit der Ausnahme zwischen den Buchstaben `\verb|e|'
+und `\verb|n|', deren Wert zwei ist. Die Werte sind alle Null, es sei
+denn \TeX\ findet in seiner \index{Muster!Trennung}
+Musterbibliotek ein Muster. Bei unserem
+Beispiel werden die folgenden Muster gefunden
+
+\noindent
+\ti0 h\ti0 y\ti3 p\ti0 h\ti0\\
+\ti0 h\ti0 e\ti2 n\ti0\\
+\ti0 h\ti0 e\ti0 n\ti0 a\ti4\\
+\ti0 h\ti0 e\ti0 n\ti5 a\ti0 t\ti0\\
+\ti1 n\ti0 a\ti0\\
+\ti0 n\ti2 a\ti0 t\ti0\\
+\ti1 t\ti0 i\ti0 o\ti0\\
+\ti2 i\ti0 o\ti0\\
+\ti0 o\ti2 n\ti0
+
+\TeX\ berechnet nun das Maximum an Werten, das zwischen zwei
+Buchstaben vorkommt. Zwischen `\verb|e|' und `\verb|n|' treten z.B.\
+vier signifikante Werte auf. Das Ergebnis dieser Berechnung ist
+
+.\ti0 h\ti0 y\ti3 p\ti0 h\ti0 e\ti2 n\ti5 a\ti4 t\ti2 i\ti0 o\ti2 n\ti0 .
+
+Jetzt kommt der letzte Schritt. Eine Trennung ist akzeptabel an einer
+Stelle, an der ein ungerader Wert berechnet wurde. Somit ergeben sich
+zwei m\"ogliche Trennungen: `\verb|hy-phen-ation|'. Das Wort
+`\verb|concatenation|' ergibt die Muster
+
+\noindent
+\ti0 o\ti2 n\ti0\\
+\ti0 o\ti0 n\ti1 c\ti0\\
+\ti1 c\ti0 a\ti0\\
+\ti1 n\ti0 a\ti0\\
+\ti0 n\ti2 a\ti0 t\ti0\\
+\ti1 t\ti0 i\ti0 o\ti0\\
+\ti2 i\ti0 o\ti0\\
+\ti0 o\ti2 n\ti0
+
+und das Ergebnis
+
+\ti0 c\ti0 o\ti2 n\ti1 c\ti0 a\ti0 t\ti0 e\ti1 n\ti2 a\ti1 t\ti2 i\ti0
+o\ti2 n\ti0
+
+und damit die m\"oglichen Trennungen `\verb|con-cate-na-tion|'. Weitere
+Worte, wie das Beispiel aus dem \TeX book
+\index{Supercalifragilisticexpialidocious}
+`supercalifragilisticexpialidocious' erspare ich mir an dieser Stelle.
+
+{\em Plain} \TeX\ l\"adt 4447 \index{Muster!Trennung}
+Muster in seinen Speicher. Angefangen mit
+`\ti0 .\ti0 a\ti0 c\ti0 h\ti4' bis `\ti4 z\ti1 z\ti2' und
+`\ti0 z\ti4 z\ti0 y\ti0'. Die Werte zwischen den Buchstaben haben
+dabei die Werte 0 bis 5. Ein gro\ss{}er ungerader Wert, wie 5 f\"ordert
+nat\"urlich eine Trennung an dieser Stelle, ein gro\ss{}er gerader Wert,
+wie 4 verhindert praktisch eine Trennung an dieser Stelle.
+
+\index{Liang}Liang fand diese Muster, indem er ein spezielles W\"orterbuch
+bearbeitete und auch solche Ausnahmen wie `Af-ghan-i-stan' mit
+aufnahm. Diese Trennmuster reichen aus f\"ur nahezu alle vorkommenden
+Trennungen, solange es sich um englischsprachige W\"orter handelt. F\"ur
+andere Sprachen mu\ss{} nat\"urlich eine eigene \index{Bibliothek}
+Bibliothek von W\"ortern
+gefunden werden. Normalerweise findet diese Methode nur g\"ultige
+Trennungen, es werden aber nicht unbedingt alle m\"oglichen Trennungen
+gefunden, wie man auch an den obigen Beispielen sehen kann.
+
+In seltenen F\"allen kann es nat\"urlich vorkommen, da\ss{} \TeX\ ein Wort
+nicht richtig trennt. Dann haben sie noch die M\"oglichkeit die Trennung
+explizit anzugeben. Sie schaffen damit einen weiteren Ausnahmeeintrag,
+der oben schon angesprochen wurde. Das \TeX book wurde mit den
+Ausnahmen
+\index{zzzhyphenation@{\tt\char92 hyphenation}}
+\begin{verbatim}
+\hyphenation{man-u-script man-u-scripts ap-pen-dix}
+\end{verbatim}
+geschrieben, um auch die Worte `manuscript', `manuscripts' und
+`appendix' richtig zu trennen. Sie sehen, da\ss{} auch der Plural des
+Wortes angegeben ist. Das h\"angt damit zusammen, da\ss{} das Wort
+vollst\"andig in der Ausnahmeliste gefunden werden mu\ss{}. Es handelt sich
+also tats\"achlich um zwei Eintr\"age.
+
+Wenn sie alle Trennungen sehen wollen, die \TeX\ bei einem Text
+findet, dann k\"onnen sie mit der Eingabe
+\index{zzzshowhyphens@{\tt\char92 showhyphens}}
+\begin{verbatim}
+\showhyphens{Text}
+\end{verbatim}
+eine \index{Box!Hbox}
+hbox ausgeben lassen, die alle W\"orter des Textes in getrennter
+Form enth\"alt. Diese Box ist allerdings immer zu klein, so da\ss{} sie
+immer eine \index{Fehler!Meldung}
+Fehlermeldung erhalten werden, k\"ummern sie sich nicht darum.
+
+Um ein Wort in die Ausnahmeliste aufzunehmen mu\ss{} der Befehl
+\index{zzzhyphenation@{\tt\char92 hyphenation}}
+\begin{verbatim}
+\hyphenation{<Worte>}
+\end{verbatim}
+am besten zu Beginn des Textes angegeben werden. `\verb|<Worte>|' ist
+dabei eine Liste von Worten, die durch \index{Leer!Zeichen}
+Leerzeichen getrent sind. Diese
+Worte enthalten das Zeichen `\verb|-|' als Trennzeichen an den
+Stellen, an denen es getrennt werden darf. \TeX\ wandelt alle Worte
+zun\"achst in \index{Kleinbuchstabe}
+Kleinbuchstaben um, bevor die \index{Gleichheit!Von
+Buchstaben}Gleichheit mit einem
+aufgefundenen Wort gepr\"uft wird. Trennungen werden nicht nach dem
+ersten Buchstaben und vor dem letzten Buchstaben akzeptiert. Ein
+Trennungseintrag kann auch keine Trennung enthalten, dann wird \TeX\
+das Wort \"uberhaupt nicht mehr trennen.
+
+Die Eintr\"age in die Ausnahmeliste sind \index{Global!Trennung}
+global, sie verschwinden nicht
+am Ende einer Gruppe. Wir ein Wort mehrfach angegeben, dann gilt immer
+die letzte Angabe.
+
+V\"ollig analog funktioniert die Angabe der \index{Muster!Trennung}
+Trennmuster, allerdings mit
+einem schwerwiegenden Unterschied. Der Befehl
+\index{zzzpatterns@{\tt\char92 patterns}}
+\begin{verbatim}
+\patterns{<Muster>}
+\end{verbatim}
+darf nur f\"ur INITEX auftreten. Beim Lauf von \TeX\ k\"onnen die Muster
+nicht mehr ge\"andert werden.
+\end{appendix}
+% \begin{theindex}
+\printindex
+% \end{theindex}
+\end{document}