Dokumentation zum TEX-Makropaket

— ZSB III —

für das Zentrale Schreibbüro Mathematik der FernUniversität in Hagen zum Setzen von Aufgaben und Lösungen ^{∗}

Andreas Schrell Windhövel 2 D-5600 Wuppertal 2 Federal Republic of Germany

           E-Mail: Andreas.Schrell@FernUni-Hagen.de

Ausdruck vom 12. Juli 1993

Zusammenfassung

Die Makros dienen dem Setzen von mathematischen Aufgabenstellungen und deren Lösungen. Sie sind für die FernUniversität in Hagen entwickelt worden, können aber auch anderweitig Verwendung finden. Viele Makros und Hilfsmittel werden bereitgestellt, um den Satz mathematischer Formeln zu vereinfachen und zu beschleunigen.

∗Diese Datei hat die Versionsnummer v3.2f, letzte Änderung vom 93/06/16, Dokumentation vom 93/06/16.

Inhaltsverzeichnis

1 Beschreibung der Befehle 3 1.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Voraussetzungen und Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.4 Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.4.1 Einbinden in das Dokument . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.4.2 Die ZSB-Stil-Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.4.3 Grundeinstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.4.4 Aufgabenteile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.4.5 Umrahmungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.4.6 Klammern setzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.4.7 Mengenzeichen setzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.4.8 Zusätzliche Zeichen und Operatoren . . . . . . . . . . . . . . . . . . . . . . 8 1.4.9 Weitere Befehle und Abkürzungen . . . . . . . . . . . . . . . . . . . . . . . 10 1.4.10 Der Satz von Matrizen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.5 Gleichungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.6 Deutsche Texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.7 Die Dokumentarten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

1.7.1 Einsendeaufgaben (EA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.7.2 Lösungen zu Einsendeaufgaben (LE) . . . . . . . . . . . . . . . . . . . . . . 16 1.7.3 Aufgaben zu Studientagen (STA) . . . . . . . . . . . . . . . . . . . . . . . . 16 1.7.4 Lösungen zu Studientagen (STL) . . . . . . . . . . . . . . . . . . . . . . . . 16 1.7.5 Aufgaben zu Klausuren (KL) . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.7.6 Lösungen zu Klausuren (KLL) . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.7.7 Aufgaben zu Nachklausuren (NKL) . . . . . . . . . . . . . . . . . . . . . . . 17 1.7.8 Lösungen zu Nachklausuren (NKLL) . . . . . . . . . . . . . . . . . . . . . . 17 1.7.9 Defizit-Einsendeaufgaben (DE) . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.7.10 Lösungen zu Defizit-Aufgaben(LDE) . . . . . . . . . . . . . . . . . . . . . . 17

1.8 Veränderung der Standardtexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2 Interne Beschreibung der Makros 19 2.1 Die Dokumentation-Treiberdatei (ZSB.DRV) . . . . . . . . . . . . . . . . . . . . . 19 2.2 Die grundlegende Style-Datei (ZSB.STY) . . . . . . . . . . . . . . . . . . . . . . . 20

2.2.1 Zusätzliche Zeichen und Kleinkram . . . . . . . . . . . . . . . . . . . . . . . 23 2.3 Die Steuerdateien für unterschiedliche ”Zettel“ . . . . . . . . . . . . . . . . . . . . 29 2.4 Spezielle ”Zettel“-Makros (ZSBX.STY) . . . . . . . . . . . . . . . . . . . . . . . . 31

1 Beschreibung der Befehle

1.1 Einleitung

Die ziemlich veraltete, unstrukturierte und vor allem undokumentierte LaTEX-Situation im Zentralen Schreibbüro Mathematik hat mich dazu veranlaßt, ein wenig Ordnung in die LaTEX-Styles zu bringen. Dabei ist das vorliegende Material zum Setzen von Aufgaben und Lösungen mittels LaTEX (einschließlich dieser Dokumentation) entstanden. Die Makros dürfen und sollen gern auch an anderen Stellen der Uni benutzt werden. Die einzige Bedingung ist, daß Fehlerhinweise an mich gerichtet werden und die Dateien nicht verändert werden. Am besten ist es, sich mit jeglichen Wünschen und Fehlerhinweisen an mich zu wenden, damit auch andere Stellen von den Erweiterungen profitieren können. Im übrigen hoffe ich, durch dieses Projekt das Aussehen von Einsendeaufgaben und Musterlösungen etwas zu vereinheitlichen und den Wartungsaufwand möglichst gering zu halten. Besonders in der letzten Zeit haben sich die Wünsche zu Sonderzeichen so stark gehäuft, daß die Schreibkräfte eigentlich mit der Makroerstellung schon ausgelastet wären.

1.2 Installation

Die ZSB-Makros sind ab Version 3.1 mit der DOC-Option dokumentiert. Sie bestehen im Original aus den vier Dateien INSTALL.ZSB, ZSB.CMD, ZSB.DOC und ZSBDOC.DOC, wobei letztere nur die Anwendungsbeschreibung enthält. ZSB.DOC enthält alle Makros und deren Beschreibung. Die Style-Dateien, die LaTEX benötigt, werden mit dem DocStrip-Programm und TEX erstellt. Man startet einfach LaTEX mit INSTALL.ZSB als Eingabe. Da nicht jeder die DOC-Stil-Option besitzt, liegen alle erforderlichen Dateien bei. Mit dem Befehl

⟨Quell-Laufwerk⟩:\batch\zsbcopy ⟨Quell-Laufwerk⟩: ⟨Ziel-Laufwerk⟩:

werden die notwendigen Dateien auf die Festplatte geladen. Mit

zsbinst ⟨Laufwerk⟩: ⟨Kuerzel⟩ ⟨LaTEX-Aufruf ⟩

erzeugt man alle zum Arbeiten notwendigen Dateien. Die Installation sorgt selbst für die Positionierung in den richtigen Verzeichnissen. ⟨Kuerzel⟩ steht dann für EM bzw. PC im Befehl. ⟨Laufwerk⟩ ist das Laufwerk, auf das man ZSB kopiert hat. ⟨LaTEX-Aufruf ⟩ ist der Befehl, mit dem man auf ihrem System einen LaTEX-Lauf startet. Nun kann man noch, wenn man möchte, die Dokumentation mittels

zsbdoc ⟨Laufwerk⟩: ⟨LaTEX-Aufruf ⟩

erstellen lassen. Hierbei wird nachgefragt, ob man eine up-to-date TEX-Version (3.0, schnell, viel Speicher) und die DC-Fonts besitzt. Folgender Ordner sollte bereits auf dem ⟨Ziel-Laufwerk⟩ existieren:

\emtex\texinput

bzw.

\pctex\texinput

Der Zugriffspfad muß den Ordner ⟨Laufwerk⟩:\batch beinhalten. Es folgt ein Beispiel

a:\batch\zsbcopy a: c:
zsbinst c: em tex
zsbdoc c: tex

1.3 Voraussetzungen und Dateien

Das von LaTEX zu benutzende Paket besteht aus den folgenden Dateien:

ZSB.STY  ZSBX.STY
GERMAN.STY GERMAN3.STY
EA.STY  LE.STY
STA.STY  STL.STY
KL.STY  KLL.STY
NKL.STY  NKLL.STY
DE.STY  LDE.STY

Die Dateien EA.STY … LDE.STY enthalten Einstellungen, die für die verschiedenen Anwendungen (Einsendeaufgaben, Lösungen, Klausuren, Studientage etc.) unterschiedlich sind. Alle nicht in dieser Tabelle aufgeführten Dateien dienen der Dokumentation und Installation. Je nach Zeichensatzfamilie (DC- bzw. CM-Fonts) müssen unterschiedliche GERMAN-Dateien eingebunden werden, entweder GERMAN.STY oder GERMAN3.STY. Zur Vereinfachung der Lesbarkeit werden diese im folgenden mit GERMAN(3).STY bezeichnet.

Die Hilfsdateien ZSBX.STY und GERMAN(3).STY werden intern aufgerufen. Bei den Dateien GERMAN(3).STY handelt es sich um Makros, die von DANTE, der Deutschsprachigen Anwendervereinigung TEX e. V., bereitgestellt werden. Abhängig davon, ob CM- oder DC-Fonts verwendet werden, wird automatisch die passende GERMAN(3).STY-Datei geladen. In der ZSBX.STY-Datei stehen die Befehle und Einstellungen, die speziell für Aufgebenzettel notwendig sind. Dadurch kann die ZSB.STY-Datei auch für andere Dokumente benutzt werden. ZSBX.STY wird nur zusammen mit EA.STY … LDE.STY geladen. Die Makros wurden unter LaTEX 2.09 und TEX 3.14 ausgiebig getestet.

1.4 Anwendung

1.4.1 Einbinden in das Dokument

Um die Makros in einem LaTEX-Dokument nutzen zu können, muß die Startzeile nach folgendem Muster aufgebaut sein:

\documentstyle[12pt,zsb,le]{article}
\documentstyle[11pt,zsb,le]{article}
\documentstyle[zsb,le]{article}
\documentstyle[zsb,stl]{article}
\documentstyle[zsb,fleqn,ea]{article}

Durch zsb wird automatisch auch GERMAN(3).STY geladen. Die Optionen ea … lde wird intern ZSBX.STY eingelesen. Diese Optionen (ea … lde) entscheiden vornehmlich darüber, welche Art von Dokument erstellt werden soll. Jeder der möglichen Optionen ist ein eigener Abschnitt gewidmet. Falls nur die Makros in ein völlig anderes Dokument eingebunden werden sollen, gibt man nur zsb an. Um aber schon einmal einen Gesamteindruck zu vermitteln, sieht eine lauffähige Eingabe so aus:

\documentstyle[12pt,zsb,ea]{article}
\KursKuerzel{NM I}
\Termin{1.4.1991}
\begin{document}
\Kurs{Numerische Mathematik I, SS 1991}
\Aufgabe 1
Dieses ist ein Test
\begin{teile}
\item \Punkte{50} Hier sieht man Teil a)

\item \Punkte{30} und hier Teil b)
\end{teile}
\Aufgabe {2\Punkte{10}}
Eine neue Aufgabe...
\end{document}

Zunächst sollen jedoch die Befehle vorgestellt werden, die durch ZSB bereitgestellt werden, und damit in allen Dokumentarten zur Verfügung stehen.

1.4.2 Die ZSB-Stil-Option

Egal ob man Aufgaben oder Lösungen erstellen möchte, immer ist in den eckigen Klammern beim \documentstyle-Befehl die Option ZSB anzugeben. Dadurch werden Befehle bereitgestellt, die Sonderzeichen zur Verfügung stellen, oder auch Makros, die von anderen Optionen intern benutzt werden. Weiterhin gibt es Abkürzungen für sonst recht umständliche Eingaben. In dieser Dokumenation erscheinen am Rand zur Verbesserung der Übersichtlichkeit die Befehle, die gerade erklärt werden.

1.4.3 Grundeinstellungen

Durch verschiedene Grundeinstellungen wird der Zeilen- und Seitenumbruch von TEX beeinflußt. Zu diesen Vorgaben gehören z. B. (nur für Insider interessant)

\sloppy \frenchspacing \raggedbottom \hbadness=7000
\clubpenalty 10000 \widowpenalty 10000
\def\baselinestretch{1.2} \def\arraystretch{1.2}

Für Interessierte ist ja alles recht ausführlich mit der DOC-Option dokumentiert.

1.4.4 Aufgabenteile

teile Aufgabenteile können jetzt automatisch mit den Standardbezeichnungen numeriert werden. Dazu dient das neue Environment

\begin{teile}
\item ...
\item ...
\end{teile}

Ein verschachtelter Aufruf, wie zum Beispiel

\begin{teile}
  \item L"osen Sie diese Aufgabe
  \item Die folgenden beiden Aufgaben
    \begin{teile}
      \item erstens
      \item zweitens
    \end{teile}
  \item und sogar
    \begin{teile}
      \item noch eine dritte Wertigkeit
            ist m"oglich
        \begin{teile}
          \item einmal
          \item zweimal
        \end{teile}
    \end{teile}
\end{teile}

ergibt die Ausgabe

a) Lösen Sie diese Aufgabe b) Die folgenden beiden Aufgaben

(i) erstens

(ii) zweitens

c) und sogar

(i) noch eine dritte Wertigkeit ist möglich

1. einmal 2. zweimal

1.4.5 Umrahmungen

\rahmen Wichtige Textteile kann man mit dem Befehl

\rahmen{Ein umrahmter Absatz, ...
Breite wird automatisch an die Satzbreite angepa"st.
Und ein weiterer Absatz.}

setzen. Das ergibt

Ein umrahmter Absatz, der über mehrere Zeilen gehen kann. Die Breite wird automatisch an die Satzbreite angepaßt. Und ein weiterer Absatz.

\matherahmen Für mathematische Formeln benutzt man

\matherahmen{\int_0^1\sin x\,dx}

um

∫_{0}^{1} sin x dx

zu erhalten. Wieder erfolgt die Anpassung an die Satzbreite des Dokuments.

1.4.6 Klammern setzen

\left Die erste Erweiterung von TEXs Mathematikmakros bezieht sich auf das Setzen von sich ver- \right größernden Klammern. Die \left und \right Befehle sind zwar sehr schön, doch führen sie nicht

dazu, daß ineinander verschachtelte Klammern ihre Größe steigern. Die Eingabe

\[ \left(x-\left(x+{1\over2}\right)\right) \]

ergibt

(x − (x + \frac{1}{2})) .

TEX bietet die Möglichkeit, die Größe der Klammern automatisch zu beeinflussen. Mit ZSB erhält man dann aus

\[ \left(x-\left(x+{1\over2}\right)\right) \]

die bessere Ausgabe

(x − (x + \frac{1}{2})) .

\rundkl Da diese Befehle recht häufig benutzt werden (sollten), gibt es einige Abkürzungen, um verschie-

\spitzkl
\eckkl
\mengkl
\betrag
\norm

dene Klammern zu setzen:

Zeichen Befehl

                              (. . .)  \rundkl{...}
                              ⟨. . .⟩  \spitzkl{...}
                              [. . .]  \eckkl{...}
                              {. . .}  \mengkl{...}
                              |. . .|  \betrag{...}
                              ∥ . . . ∥  \norm{...}

Die Formel von oben kann man also auch so eingeben:

\[ \rundkl{x-\rundkl{x+{1\over2}}}. \]

" Für die wichtigsten wachsenden Klammerpaare ( ), [ ], { } und ⟨ ⟩ gibt es besonders griffige Abkürzungen. Die Eingabe

\[ "\{ x + "[ "(1\over x")^2\cdot y"] "\} \]

erzeugt (man beachte, daß die Klammern {} wie immer als \{\} eingegeben werden müssen)

\{x + [(\frac{1}{x})^{2} · y]\}

als Ausgabe. Diese zuletzt vorgestellten Kürzel sind über interne Befehle des GERMAN(3).STY realisiert worden. Ich kann deren Funktion daher nur für die beiliegenden GERMAN(3).STY Versionen garantieren. Das ZSB-Paket wird aber immer die aktuellen Versionen enthalten und darauf abgestimmt sein.

\overparent Mit den Makros \overparent und \underparent kann man ähnlich wie mit \overbrace und

\underparent \underbrace horizontale Klammern setzen. Es werden runde Klammern benutzt:

\[ \overparent{ABC},\quad \overparent{A\times X^2},\quad
   \underparent{AxBy} \]

ergibt

\overbrace{ABC}, \overbrace{A × X^{2}}, \underbrace{AxBy} .

Statt \overparent kann man auch \widebow schreiben.

1.4.7 Mengenzeichen setzen

\IB In der Mathematik sind die Mengenzeichen für reelle oder natürliche Zahlen sehr beliebt. Die neu

\IN
\IR

bereitgestellten haben den Vorteil, daß sie sich automatisch sowohl der Grundschrift als auch der Formelwertigkeit (Exponenten) anpassen. Dabei kommt es möglicherweise bei Benutzung ohne das ”new font selection scheme“ (NFSS) zu einer Font-Warnung, die man ignorieren kann (muß). Es stehen die folgenden Zeichen im Sans-Serif-Modus zur Verfügung:

\IB IB_{IB_{IB}} \II II_{II_{II}}  \IP IP_{IP_{IP}}
\IC CI_{CI_{CI}} \IK IK_{IK_{IK}} \IQ Q I _{Q I _{Q I}}
\ID ID_{ID_{ID}} \IL IL_{IL_{IL}}  \IR IR_{IR_{IR}}
\IE IE_{IE_{IE}} \IM IM_{IM_{IM}} \IT TTT T_{T T}
\IF IF_{IF_{IF}} \IN IN_{IN_{IN}} \IZ ZZZ Z_{Z Z}
\IH IH_{IH_{IH}} \IO O I _{O I _{O I}}  \OE Œ_{Œ_{Œ}}

\Mengenzeichen oder im Roman-Font nach Absetzen des Befehls \Mengenzeichen{rm}:

\IB IB_{IB_{IB}} \II II_{II_{II}}  \IP IP_{IP_{IP}}
\IC C I_{C I_{C I}}  \IK IK_{IK_{IK}} \IQ Q I _{Q I _{Q I}}
\ID ID_{ID_{ID}} \IL IL_{IL_{IL}}  \IR IR_{IR_{IR}}
\IE IE_{IE_{IE}} \IM IM_{IM_{IM}} \IT TT_{T T_{T T}}
\IF IF_{IF_{IF}} \IN IN_{IN_{IN}} \IZ ZZ_{Z Z_{Z Z}}
\IH IH_{IH_{IH}} \IO O I _{O I _{O I}}  \OE Œ_{Œ_{Œ}}

Wenn das NFSS zur Verfügung steht, bleiben die Warnmeldungen aus, sofern die entsprechenden Fonts vorhanden sind. In einer Formel sieht die Anwendung so aus

\IN^\IZ_{\IT_\IR} ergibt IN_{T T_{IR}}^{Z Z},

wenngleich das kein sehr sinnvolles Beispiel ist.

1.4.8 Zusätzliche Zeichen und Operatoren

Es werden einige zusätzliche Zeichen zur Verfügung gestellt, die hier nur aufgelistet werden sollen:

Befehl  Beispiel Erläuterung
\gdw  ⇔  mit viel Platz
\folgt  ⇒  mit viel Platz
\lfolgt  ⇐  mit viel Platz

\dachbin{...}         ˆ+  für + − ∗ etc.
\dachrel{...}         ˆ≈  für = ≈ etc.
\seigleich            =^{!}
\defgleich            =^{def}
\entspricht           ˆ=
\punktgleich          ≐
\dpunktgleich         \begin{matrix}. \\ = \\ . \end{matrix}
\dLeftrightarrow      \begin{matrix}. \\ ⇔ \\ . \end{matrix}
\dLongleftrightarrow  \begin{matrix}. \\ ⟺ \\ . \end{matrix}

\paranorm{...}  !x + 1! nicht wachsend
\teilt  a | b  Teiler-Operator

\teiltn  a /| b
\bigcap               ⋂  normal
\bigcup               ⋃

\bigsqcap             ⊓  etwas zu klein

\bigsqcup             ⨆
\bbigsqcap            ⊓  angepaßt
\bbigsqcup            ⊔
\bbigcap              ∩
\bbigcup              ∪

\integral Der Befehl
\integral_0^1 x\,dx  ergibt  ∫_{0}^{1} x dx,

die Integralgrenzen werden also über und unter das Integralzeichen gesetzt.

Außerden stehen einige Funktionen und besondere Buchstaben zur Verfügung:

Befehl  Beispiel  Erläuterung
f(x)=\const  f(x) = const  (kein Operator)
\Real(a+\i b)  Re(a + ib)  Realteil
\Imag(a+\i b)  Im(a + ib)  Imaginärteil
a+\i b  a + ib  Imaginäre Einheit
f(x)=\e^x  f(x) = e^{x}  Eulersche Zahl
f(x)=\int x^2\d x  f(x) = ∫ x^{2} dx  Integration
U=27.5\E{kV}  U = 27.5 kV  Physikalische
F=13\E{m^2}  F = 13 m^{2}  Einheiten
a=3\C{-13}  a = 3 · 10^{−13}  10er Potenzen
M = \{x\gilt x\ne0\} M = {x : x ≠ 0} : mit etwas Platz
\obda o. B. d. A. Abkürzungen im Text
\Obda  O. B. d. A.

Mit offensichtlicher Bedeutung gibt es weiterhin die Operatoren:

                 \arcsinh  \arccosh  \arctanh  \arccoth  \sinc
                 \card     \sign     \codim    \Kern     \Bild
                 \Rang     \Mat      \kgV      \ggT      \Fix
                 \lub      \rang     \arsinh   \grad     \Grad
                 \Res      \ld       \Eig      \Spur     \Sp
                 \Aut      \ord      \Hom      \End      \Id
                 \id       \diag     \cond     \arccot   \arctg
                 \res      \Mer      \ctg

\newmop Es gibt ein einfaches Interface, mit dem man sich eigene Operatoren definieren kann, deren Befehlsname mit der Ausgabe übereinstimmt. Operatoren, die Grenzen besitzen (Indices darüber und darunter, z. B. \lim im \displaystyle werden mit

\newmop{...}
\newmop{Auto}  % als Beispiel

(new math operator) erzeugt. Dieser Befehl sollte im allgemeinen vor \begin{document} stehen. Danach steht der Befehl \Auto zur Verfügung. Ein eventuell vorhandener Befehl gleichen Namens ist dann nicht mehr zugänglich. Man erhält in diesem Fall jedoch eine Warnung. Ein Anwendungsbeispiel:

\Auto_{n\to\infty} M = 1

erzeugt

Auto_{n→∞} M = 1.

\newmopnl Benutzt man hingegen zum Erzeugen

\newmopnl{Pferd}

(nl steht für \nolimits), so erhält man bei ähnlicher Anwendung

\Pferd_2 x = 1

die Ausgabe

Pferd_{2} x = 1.

Zu beachten ist, daß bei Formeln im Text ($...$ bzw. \(...\)) die Grenzen von Operatoren ohnehin standardmäßig neben ihnen stehen.

\Text Um in Formeln Textteile mit Abstand einzufügen, gibt es den Befehl \Text{...}:

\[ f(x) = \sin x \Text{und} g(x) = \cos x \]

ergibt zum Beispiel

f(x) = sin x und g(x) = cos x.

1.4.9 Weitere Befehle und Abkürzungen

\vek Wem der Vektorpfeil a⃗ (mit \vec a erzeugt) zu klein ist, der kann \vek a benutzen, was dann \overrightarrow{a}

ergibt. \fini Mit dem Befehl \fini kann man z. B. einen Beweis so beenden. □ \finid Und mit dem Befehl \finid so. △

Beide stehen direkt hinter dem Satzzeichen am Schluß eines Absatzes. Eine Leerzeile wird nicht mehr automatisch angefügt.

\disp Für Schreibfaule gibt es zwei Abkürzungen für \displaystyle, nämlich \disp und \dps.

\dps

Die so beliebten Makros \leerz, \lz für Leerzeilen, das Makro \nz für einen Absatz (warum nicht einfach eine Leerzeile in die Eingabe setzen??) und der Befehl \fuss{...} für Fußnoten sind alle erhalten geblieben. Man kann auch weiterhin Randnotizen mit \marg{...} in einer kleineren Schrift setzen.

\ourel Manchmal sind mehrfache Zeilen über oder unter Relationen zu setzen. Hierfür gibt es einen Mechanismus der Form: … \ourel{drüber}{Relation}{drunter} …

\Ourel bzw. wenn man die Grundschriftgröße beibehalten möchte:

… \Ourel{drüber}{Relation}{drunter} … In den drüber- und drunter-Klammern dürfen mehrere Zeilen durch \\ getrennt stehen. Einige Beispiele verdeutlichen dies:

A ⟶_{\begin{matrix}x∈IR \\ x↦10 \end{matrix}}^{\begin{matrix}n→∞ \\ n≠10 \\ n∈IN \end{matrix}} ( \begin{matrix}1 & 2 \\ 4 & 2 \end{matrix} )

erzeugt durch

\[ A \ourel{ n\to\infty \\ n\ne10 \\ n\in\IN }
           { \longrightarrow }
           { x\in\IR \\ x\mapsto 10 }
   \pmatrix{1 & 2 \\ 4 & 2 } \]

Oder ein weiteres Beispiel:

A \overrightarrow{\begin{matrix}a ∈ IN \\ a ≠ b \end{matrix}} X

wurde eingegeben als:

\[ A\Ourel{}{\Rightarrow}{ a\in\IN \\ a\ne b } X \]

Wichtig ist, daß leere Klammern nicht weggelassen werden dürfen. \Frei Oft werden handgezeichnete Bilder nachträglich in die Aufgaben eingeklebt. Mit dem Befehl

\Frei{10cm} (oder etwas ähnlichem) wird genügend Platz für ein 10 cm großes Bild plus Textabstand gelassen.

1.4.10 Der Satz von Matrizen

\matrix Für den flinken Satz von Matrizen stehen die Befehle \matrix, \pmatrix, \Matrix und \Pmatrix

\pmatrix
\Matrix
\Pmatrix

zur Verfügung. Als Zeilenendezeichen kann nun auch \\, oder \\[...] benutzt werden. Die Befehle mit großem Anfangsbuchstaben setzen alle Matrizen-Einträge im \displaystyle:

 [ \pmatrix{ 1\over2 & 1 & 35x \\
             2\over5 &-2 & 10 \\
             1 & 0 & 0 } \]

liefert

( \begin{matrix}\frac{1}{2} & 1 & 35x \\ \frac{2}{5} & −2 & 10 \\ 1 & 0 & 0 \end{matrix} )

und

\[ \Pmatrix{ 1\over2 & 1 & 35x \\
             2\over5 &-2 & 10 \\
             1 & 0 & 0 } \]

erzeugt

( \begin{matrix}\frac{1}{2} & 1 & 35x \\ \frac{2}{5} & −2 & 10 \\ 1 & 0 & 0 \end{matrix} ).

\Bruch Damit einfache Brüche nicht so riesig wirken und vielleicht etwas hübscher aussehen, kann man den Befehl \Bruch{}{} benutzen. So wird aus

\[ \Pmatrix{ \Bruch12 & 1 & 35x \\
             -\Bruch2{15} &-2 & 10 \\
             1 & 0 & \Bruch a2 } \]

die Matrix

( \begin{matrix}^{1}/_{2} & 1 & 35x \\ −^{2}/_{15} & −2 & 10 \\ 1 & 0 & ^{a}/_{2} \end{matrix} ).

Auch Spaltenvektoren kann man gut mit \pmatrix setzen. Sie wirken dann nicht so riesig wie mit der array-Umgebung:

\pmatrix\{1\\2\\3\\4\} ergibt ( \begin{matrix}1 \\ 2 \\ 3 \\ 4 \end{matrix} ).

\Nullol In vielen Fällen möchte man einen Matrizenteil mit Nullwerten durch eine große Null andeuten.

\Nullor
\Nullul
\Nullur

Auch hierzu sind einige Makros vorgesehen. Sie werden abhängig davon benutzt, in welcher Ecke der Matrix die große Null stehen soll:

( \begin{matrix}1 & & & & 0 \\ & ^{.} & ^{.} & . \\ 0 & & & & 1 \end{matrix} )

bzw.

( \begin{matrix}0 & & & & 1 \\ & . & ^{.} & ^{.} \\ 1 & & & & 0 \end{matrix})

erhält man mittels

\[ \pmatrix{1       &        & \Nullor \\
                    & \ddots &         \\
            \Nullul &        & 1} \]

bzw.

\[ \pmatrix{\Nullol &        & 1 \\
                    & \rdots &         \\
            1       &        & \Nullur} \]

\rdots Man beachte hierbei \rdots (raising dots), auch ein ZSB-Makro. Nun soll es aber auch besonders faule Leute geben. Speziell für diese sind einige Makros gedacht die das Setzen von Standardmatrizen oder sehr umfangreichen einheitlichen Matrizen erleichtern sollen.

\NULLMAT Mit drei Befehlen kann man einfache Matrizen erstellen:

\EINSMAT
\IDMAT

\[ \NULLMAT23 \cdot \EINSMAT32 \ne \IDMAT2 \]

Als Ausgabe:

( \begin{matrix}0 & 0 & 0 \\ 0 & 0 & 0 \end{matrix} ) · ( \begin{matrix}1 & 1 \\ 1 & 1 \\ 1 & 1 \end{matrix} ) ≠ ( \begin{matrix}1 & 0 \\ 0 & 1 \end{matrix} )

\ALLMAT Diese drei Makros basieren auf dem Befehl \ALLMAT{z}{s}[r]{i}, der als Parameter die Zei-

\AMz
\AMs

lenanzahl, Spaltenanzahl und den Inhalt erhält. Der optionale Parameter in eckigen Klammern dient dazu, Rechnungen anzugeben, die vor dem Setzen des eigentlichen Eintrags ausgeführt werden. Denkbar sind z. B. Umrechnungen der Indizes 1 … n → 0 … n−1. Damit sind riesige Matrizen, die Einträge enthalten, die von ihrer Position abhängig sind, einfach zu programmieren:

\[ \ALLMAT{6}{8}{a_{\the\AMz\the\AMs}
                \ifnum\AMz=\AMs ^2 \fi} \]

mit dem Ergebnis

( \begin{matrix}a_{11}^{2} & a_{12} & a_{13} & a_{14} & a_{15} & a_{16} & a_{17} & a_{18} \\ a_{21} & a_{22}^{2} & a_{23} & a_{24} & a_{25} & a_{26} & a_{27} & a_{28} \\ a_{31} & a_{32} & a_{33}^{2} & a_{34} & a_{35} & a_{36} & a_{37} & a_{38} \\ a_{41} & a_{42} & a_{43} & a_{44}^{2} & a_{45} & a_{46} & a_{47} & a_{48} \\ a_{51} & a_{52} & a_{53} & a_{54} & a_{55}^{2} & a_{56} & a_{57} & a_{58} \\ a_{61} & a_{62} & a_{63} & a_{64} & a_{65} & a_{66}^{2} & a_{67} & a_{68} \end{matrix} ) .

Dabei geben die Zahlenregister \AMz und \AMs die aktuelle Zeile bzw. Spalte in der Matrix an. Mit \the kann man ihren Wert als Zahl benutzen. Rechnungen immer im optionalen Argument

\ALLMATL angeben, sonst werden falsche Einträge gesetzt. Die Befehle \ALLMATL{[} und \ALLMATR{]} dienen

\ALLMATR

zur Änderung der Klammerform bei den … MAT-Befehlen. \lra Einige Pfeilmakros für Kommutative Diagramme sind enthalten. Damit kann man folgendermaßen

\lla
\lua
\lda

arbeiten:

\[ \matrix{\IN^2 & \lra & \IN^2 \\
           \lua  &      & \lda \\
           \IN   & \lla & \IN} \]

IN^{2} ⟶ IN^{2}

↑  ↓

IN ⟵ IN

\LRA oder etwas schwieriger

\LLA
\LUA
\LDA

\[ \matrix{\IN^2 & \LRA{f}{}  & \IN^2 \\
      \LUA{h}{}  &            & \LDA{}{h^{-1}} \\
           \IN   & \LLA{\ast}{g} & \IN} \]

IN^{2} \underrightarrow{f} IN^{2}

h↑  ↓h^{−1}

IN ∗ ; ⟵ ; g IN

1.5 Gleichungen

\cases Der \cases-Befehl akzeptiert nun ebenfalls \\. So ergibt die Eingabe

\\
\begin{equation}
  f(x) := \cases{ 0 & f"ur $x=1$, \\
  \disp{1\over x-1} & sonst. }
\end{equation}

die folgende Formel:

f(x) := \{ \begin{matrix}0 & für x = 1, \\ \frac{1}{x − 1} & sonst. \end{matrix}  (1)

Wie man im letzten Beispiel sehen konnte, werden Formeln mit einfachen Ziffern numeriert. Zwischen zwei Aufgaben kann man den Zähler mit

\setcounter{equation}{0}

\nextfnum zurückstellen. Möchte man Gleichungsbezeichnungen der Form (∗) benutzen, so erreicht man das mittels

 \nextfnum{*}, \nextfnum{**}

o. ä. am Ende der Formelzeile. Ein Beispiel:

\begin{eqnarray}
  f(x) &=& \sin x\nextfnum{*} \\
  g(x) &=& \cos x\nextfnum{**}
\end{eqnarray}

führt zu

f(x) = sin x  (∗)
g(x) = cos x.  (∗∗)

\withnumber Wenn man in einem eqnarray* nur wenige Zeilen mit einer Numerierung versehen möchte, steht der Befehl \withnumber entsprechend \nonumber zur Vefügung. Er wird auch wie \nonumber benutzt:

\begin{eqnarray*}
\sin \alpha &=& a/c \\
\cos \alpha &=& b/c \\
\tan \alpha &=& a/b \withnumber \\
\cot \alpha &=& b/a
\end{eqnarray*}

ergibt dann die folgende Ausgabe

sin α = a/c
cos α = b/c
tan α = a/b  (4)
cot α = b/a.

multieqn Ab und zu kommt es vor, daß mehrer Gleichungen nebeneinander gesetzt werden sollen. Passend zum eqnarray*-Environment gibt es dafür die neue multieqn-Umgebung. Zwischen den Formelzeilen ist ein Seitenumbruch möglich, den man mit \\* (wie auch im eqnarray) verhindern kann. Zwischen den Formelspalten wird mit variablem Leerraum aufgefüllt. Ein umfangreiches Beispiel soll alles verdeutlichen. Formelnummern werden übrigens nicht unterstützt. Die Anzahl der Formelspalten ist beliebig.

\begin{multieqn}
  a^m \cdot a^n &=& a^{m+n},  & a^m:a^n &=& a^{m-n},
    & a^n\cdot b^n &=& (ab)^n, \\
  a^n:b^n &=& "(a\over b")^n, & (a^m)^n &=& a^{mn},  \\
  \sqrt[n]a \cdot \sqrt[n]b &=& \sqrt[n]{ab}, &
    \sqrt[n]a : \sqrt[n]b   &=& \sqrt[n]{a\over b}, &
    "(\sqrt[n]a")^m &=& \sqrt[n]{a^m}, \\
  a^{-n} &=& {1\over a^n}, &
    a^{1\over n} &=& \sqrt[n]a, &
    a^{m\over n} &=& \sqrt[n]{a^m}.
\end{multieqn}

Als Ausgabe erhält man damit das Feld

a^{m} · a^{n} = a^{m+n},  a^{m} : a^{n} = a^{m−n},  a^{n} · b^{n} = (ab)^{n},
a^{n} : b^{n} = (\frac{a}{b})^{n} ,  (a^{m})^{n} = a^{mn},

n \sqrt{a} · ^{n} \sqrt{b} = ^{n} \sqrt{ab},  ^{n} \sqrt{a} : ^{n} \sqrt{b} = ^{n} \sqrt{\frac{a}{b}},  ( ^{n} \sqrt{a})^{m} = ^{n} \sqrt{a^{m}},

a^{−n} = \frac{1}{a^{n}} ,  a^{\frac{1}{n}} = ^{n} \sqrt{a},  a^{\frac{m}{n}} = ^{n} \sqrt{a^{m}}.

LGS Mit dem LGS-Environment können auf einfache Weise Lineare Gleichungssysteme komponentenweise angeordnet werden. Dabei wird dafür gesorgt, daß die Abstände in den Formeln dem üblichen Mathematiksatz entsprechen. Mit einem optionalen Parameter kann die horizontale Ausrichtung der Einträge beeinflußt werden. Dabei sind die Angaben [l], [c] und [r] (voreingestellt) erlaubt. Wie immer ein Beispiel:

\[ \begin{LGS}[c]
   10x_1 &+& x_2 & &      &-&   x_4 &=& 0 \\
     x_1 & &     &-& 5x_3 &+&   x_4 &=& 100 \\
         &-& x_2 &+&  x_3 &-& 10x_4 &=& 5
   \end{LGS} \]

erzeugt die Ausgabe

10x_{1} + x_{2}  − x_{4} = 0
x_{1}  − 5x_{3} + x_{4} = 100
− x_{2} + x_{3} − 10x_{4} = 5

und

\[ \begin{LGS}
   10x_1 &+& x_2 & &      &-&   x_4 &=& 0 \\
     x_1 & &     &-& 5x_3 &+&   x_4 &=& 100 \\
         &-& x_2 &+&  x_3 &-& 10x_4 &=& 5
   \end{LGS} \]

die Ausgabe

10x_{1} + x_{2}  − x_{4} = 0
x_{1}  − 5x_{3} + x_{4} = 100
− x_{2} + x_{3} − 10x_{4} = 5.

In dieser Umgebung findet kein Seitenumbruch statt. Man beachte auch, daß sie nur innerhalb des Mathematiksatzes benutzt werden darf.

Sehr nützlich ist das lgs-Environment (Kleinbuchstaben) beim Setzen von Polynomdivisionen. Man nehme

\[ \begin{lgs}
   (&t^3&+&t^2&+&t&+&1&) : (t+1) = t^2+1. \\
    &t^3&+&t^2\\ \cline{2-4}
    &   & &0  &+&t&+&1 \\
    &   & &   & &t&+&1 \\ \cline{6-8}
    &   & &   & & & &0
   \end{lgs} \]

als Eingabe, und man erhält:

(t^{3} + t^{2} + t + 1) : (t + 1) = t^{2} + 1.
t^{3} + t^{2}
0 + t + 1
(t + 1) / 0

Der Unteschied zum LGS-Environment ist der Unterschied im Zeilenabstand.

1.6 Deutsche Texte

Deutsche Texte, also Umlaute und ähnliche nationalen Sonderzeichen sollten eigentlich inzwischen von den TEX-Implementationen direkt unterstützt werden. Dazu gibt es inzwischen TEX-3.0, NFSS (siehe vorn) und die DC-Fonts. Mit einer speziellen GERMAN.STY-Version (GERMAN3.STY) werden deutsche Umlaute für die DC-Fonts zugänglich gemacht. ZSB muß zur Zeit auf verschiedenen Konfigurationen laufen. Das ist zum einen der PC-TEX-Bereich bzw. die EM-TEX-Implementation, das sind TEX-3.0 bzw. 2.X-Versionen, und das sind CM-Font- bzw. DC-Font-Umgebungen. Die Makros sind im wesentlichen so programmiert, daß sie unter diesen Konfigurationen funktionieren. Dazu gehört die selbständige Auswahl der geeigneten Version des GERMAN.STY. Dazu dienen die Dateien GERMAN.STY und GERMAN3.STY. Wenn die DC-Fonts TEX zugänglich gemacht sind, werden sie unterstützt.

1.7 Die Dokumentarten

Es sind verschiedene Dokumentarten implementiert. Sie werden durch die in Klammern angegebene Option ausgewählt. Ihre Besonderheiten und Standardbezeichnungen werden im folgenden erläutert.

1.7.1 Einsendeaufgaben (EA)

\Punkte Bei allen Optionen für Aufgaben stehen die Befehle

\Punkt
\Punkte{}
\Punkt

zur Verfügung. Sie dienen dazu, am Rand die erreichbaren Punkte des Aufgabenteils anzugeben. Ihre Verwendung wurde im Eingangsbeispiel auf Seite 4 gezeigt. Dort erkennt man auch, wie Punkte zu ganzen Aufgaben, bzw. Punkte zu Aufgabenteilen plaziert werden müssen! Wenn man \Punkt{1} angibt, erkennt TEX automatisch, daß es jetzt ”Punkt“ und nicht ”Punkte“ heißen muß. Der Befehl \Punkt dient wieder der Kompatibilität zu früheren Versionen. Die Position der Befehle ist folgendermaßen: Punkte zu ganzen Aufgaben stehen in der geschweiften Klammer der Aufgabennummer beim \Aufgabe-Befehl. Punkte zu Aufgabenteilen stehen direkt hinter den \item-Befehlen. Hält man sich nicht an diese Vorschriften, kann die Ausgabe etwas seltsam werden. Hier noch einige Beispiele:

\Aufgabe {1\Punkte{3}} % Punkte zur gesamten Aufgabe
\Aufgabe 3.4\Punkte{3} % geht auch. Leerzeichen begrenzen das Argument
\begin{teile}
\item \Punkte{2} Hier steht Text...
\item \Punkte{3} wieder Text...
\end{teile}

Dokumentation zu den ZSB-Makros, v3.2f, 93/06/16 16

Nun zu den Standardtexten. Ein Beispielkopf:

Numerische Mathematik I (1271), SS 1991

Kurseinheit 7: Lösungsvorschläge zu den Einsendeaufgaben

In den folgenden Tabellen gelten die Zuordnungen:

Parameter beim \Kurs-Befehl

ErsteZeile ZweiteZeile (falls definiert) DritteZeile (falls definiert)

Nun zur Tabelle für die Einsendeaufgaben:

ErsteZeile  Kurseinheit ⟨KursEinheit⟩
ZweiteZeile Einsendeaufgaben
DritteZeile Einsendetermin: ⟨Termin⟩
Kopf links Einsendeaufgaben
Kopf rechts ⟨KursKuerzel⟩ EA ⟨KursEinheit⟩ / ⟨Seite⟩
Aufgaben  Aufgabe ⟨Nummer⟩

1.7.2 Lösungen zu Einsendeaufgaben (LE) Die Standardtexte:

ErsteZeile  Kurseinheit ⟨KursEinheit⟩
ZweiteZeile Lösungsvorschläge zu den Einsendeaufgaben
Kopf links Lösungsvorschläge
Kopf rechts ⟨KursKuerzel⟩ LE ⟨KursEinheit⟩ / ⟨Seite⟩
Aufgaben  zu Aufgabe ⟨Nummer⟩

1.7.3 Aufgaben zu Studientagen (STA) Die Standardtexte

ErsteZeile  Studientage am ⟨Termin⟩
ZweiteZeile Aufgaben zu den Studientagen
Kopf links Aufgaben zu den Studientagen
Kopf rechts ⟨KursKuerzel⟩ STA / ⟨Seite⟩
Aufgaben  Aufgabe ⟨Nummer⟩

1.7.4 Lösungen zu Studientagen (STL) Die Standardtexte

ErsteZeile  Studientage am ⟨Termin⟩
ZweiteZeile Lösungsvorschläge zu den Aufgaben
Kopf links Lösungsvorschläge zu den Studientagen
Kopf rechts ⟨KursKuerzel⟩ STL / ⟨Seite⟩
Aufgaben  zu Aufgabe ⟨Nummer⟩

1.7.5 Aufgaben zu Klausuren (KL) Die Standardtexte

ErsteZeile  Klausur am ⟨Termin⟩
ZweiteZeile Aufgabenstellungen
Kopf links Klausuraufgaben
Kopf rechts ⟨KursKuerzel⟩ KL / ⟨Seite⟩
Aufgaben  Aufgabe ⟨Nummer⟩

1.7.6 Lösungen zu Klausuren (KLL) Die Standardtexte

ErsteZeile  Klausur am ⟨Termin⟩
ZweiteZeile Lösungsvorschläge zu den Aufgaben
Kopf links Lösungsvorschläge zur Klausur
Kopf rechts ⟨KursKuerzel⟩ KLL / ⟨Seite⟩
Aufgaben  zu Aufgabe ⟨Nummer⟩

1.7.7 Aufgaben zu Nachklausuren (NKL) Die Standardtexte

ErsteZeile  Nachklausur am ⟨Termin⟩
ZweiteZeile Aufgabenstellungen
Kopf links Nachklausur-Aufgaben
Kopf rechts ⟨KursKuerzel⟩ NKL / ⟨Seite⟩
Aufgaben  Aufgabe ⟨Nummer⟩

1.7.8 Lösungen zu Nachklausuren (NKLL) Die Standardtexte

ErsteZeile  Nachklausur am ⟨Termin⟩
ZweiteZeile Lösungsvorschläge zu den Aufgaben
Kopf links Lösungsvorschläge zur Nachklausur
Kopf rechts ⟨KursKuerzel⟩ NKLL / ⟨Seite⟩
Aufgaben  zu Aufgabe ⟨Nummer⟩

1.7.9 Defizit-Einsendeaufgaben (DE) Die Standardtexte

ErsteZeile  Defizit-Einsendeaufgaben
ZweiteZeile Einsendetermin: ⟨Termin⟩
Kopf links Defizit-Einsendeaufgaben
Kopf rechts ⟨KursKuerzel⟩ DE / ⟨Seite⟩
Aufgaben  Aufgabe ⟨Nummer⟩

1.7.10 Lösungen zu Defizit-Aufgaben(LDE) Die Standardtexte

ErsteZeile  Lösungsvorschläge zu den Defizit-Aufgaben
Kopf links Lösungsvorschläge
Kopf rechts ⟨KursKuerzel⟩ LDE / ⟨Seite⟩
Aufgaben  zu Aufgabe ⟨Nummer⟩

1.8 Veränderung der Standardtexte

Um die Kürzel und Standardtexte definieren oder ändern zu können, bieten die ZSB-Makros eine Reihe von Befehlen. Sie sollten alle in der Präambel, also zwischen \documentstyle... und \begin{document} stehen. Ihre Bedeutung ist offensichtlich, und aus dem Eingangsbeispiel geht ihre Benutzung hervor.

\KursKuerzel{}
\KursEinheit{}
\Termin{}
\KopfZeile{}     % Nur der Text (Kopf links)
\ArtKuerzel{}
\AufgabenText{}
\ErsteZeile{}
\ZweiteZeile{}
\DritteZeile{}
\Kodierung{}     % Versandcode Fusszeile
\Jahr{}          % beim Copyright
\LAsonder
\nurkasten
\LBreite

Die beiden letzten Befehle dienen zum Erstellen von Sonderformen des Kopfes für die Lineare Algebra. Er sieht dann ganz anders aus. Mit \LBreite wird die Satzbreite der Lösungen bei einem Aufgabenzettel eingestellt. Das kann benutzt werden, falls Punkte nicht am Rand gesetzt werden sollen. Die Papierbreite wird dann besser ausgenutzt.

2 Interne Beschreibung der Makros

2.1 Die Dokumentation-Treiberdatei (ZSB.DRV)

Um die Dokumentation zu den ZSB-Makros auszudrucken, ist eine Treiberdatei notwendig. Bei der Installation wird diese automatisch erstellt. Hier folgen nun die Definitionen dafür:

1 ⟨∗driver⟩

 2 \typeout{*************************************}
 3 \typeout{* Dokumentation zu den ZSB - Makros *}
 4 \typeout{*************************************}
 5 \makeatletter \@input{zsb.inf} \makeatother
 6 \newread\zsbi
 7 \ifx\UPTeX\undefined  % Datei zsb.inf nicht vorhanden
 8 \typein[\UPTeX]{^^J Ist Ihre TeX-Installation up-to-date? (j/n): }
 9 \if n\UPTeX
10 \def\DCfonts{n}
11 \else
12 \typein[\DCfonts]{^^J K"onnen sogar DC-Fonts benutzt werden? (j/n): }
13 \fi
14 \typein[\MitBesch]{^^JWollen Sie auch eine ausf\string"uhrliche
15  Beschreibung der Makros? (j/n)}
16 \immediate\openout\zsbi=zsb.inf
17 \immediate\write\zsbi{\string\def\string\UPTeX\string{\UPTeX\string}}
18 \immediate\write\zsbi{\string\def\string\DCfonts\string{\DCfonts\string}}
19 \immediate\write\zsbi{\string\def\string\MitBesch\string{\MitBesch\string}}
20 \immediate\closeout\zsbi
21 \fi
22 \if n\DCfonts
23 \typeout{CM-Fonts werden benutzt.}
24 \documentstyle[german,doc,docpatch,zsb,a4wide,array,longtable]{article}
25 \else
26 \typeout{DC-Fonts werden benutzt.}
27 \documentstyle[dclfont,german3,doc,docpatch,zsb,a4wide,array,longtable]{article}
28 \fi
29 \setlongtables
30 \extrarowheight=2pt
31 \doublerulesep=-\arrayrulewidth
32 \renewcommand{\baselinestretch}{1.0}
33 \renewcommand{\arraystretch}{1.0}
34 \setlength{\parindent}{0pt}
35 \setlength\parskip{3pt plus 1pt minus 1pt}
36 \addtolength{\textheight}{3cm}
37 \addtolength{\topmargin}{-13mm}
38 \addtolength{\oddsidemargin}{1.5cm}
39 \setlength\marginparwidth{4cm}
40 \setlength{\marginparpush}{0pt}
41 \pagestyle{myheadings}
42 \def\AltMacroFont{\small\tt}
43 \settowidth\MacroIndent{\rm\scriptsize 000\ }
44 \makeatletter\@beginparpenalty=2000\makeatother
45 \raggedbottom
46 \if n\UPTeX\DisableCrossrefs
47 \else\EnableCrossrefs\fi
48 \RecordChanges
49 \CodelineIndex
50 \if n\UPTeX\OnlyDescription\fi
51 \begin{document}
52 \DocInput{ZSB.DOC}
53 \end{document}

54 ⟨/driver⟩

2.2 Die grundlegende Style-Datei (ZSB.STY)

Um jegliche Probleme bei einem zweiten Einlesen der Datei zu verhindern, wird sichergestellt, daß sie nur einmal eingelesen werden kann:

55 ⟨∗style⟩

 56 \@ifundefined{ALLMAT}{}{\endinput}

Anschließend wird die obligatorische Lademeldung ausgegeben.

 57 \typeout{^^J
 58 Dokument Stil Option 'zsb', Version \fileversion\space
 59 vom \filedate.^^J
 60 FernUniversit\string"at Hagen,^^J
 61 Zentrales Schreibb\string"uro Mathematik, Andreas Schrell.^^J}

Einige Abkürzungen haben sich in der FernUni eingebürgert und sollen daher weiterhin zur Verfügung stehen. Eigentlich sind die meisten überflüssig oder umständlich. Nun ja, sie bleiben drin. Ihre Bedeutung ist offensichtlich.

 62 \def\leerz{\par
 63 \vspace{\baselinestretch\baselineskip}}
 64 \let\lz=\leerz
 65 \def\nz{\par}
 66 \let\fuss=\footnote
 67 \def\doppelindex#1#2{{#1\atop #2}}

68 ⟨/style⟩

Einige Einstellungen für den Satz sollen gleich hier festgelegt werden. Zuerst soll sich TEX nicht allzuviel Mühe mit dem Zeilenumbruch geben. Oft ergeben sich Probleme durch lange Text-Formeln. Nur sehr schlechte Zeilenumbrüche werden angezeigt. Dies geschieht aber in der zsbx.sty-Datei, denn es soll auf ”Zettel“ beschränkt werden.

69 ⟨∗zsbx⟩

 70 \tolerance=9999
 71 \hbadness=7000

Da kein Buch entstehen soll, und damit die Seiten nicht zu sehr auseinandergerissen werden, wird der untere Textrand variabel gehalten:

 72 \raggedbottom

Um einen etwas lockeren Satz zu erreichen, wird das Absatzaussehen neu festgelegt und die Zeilenabstände erhöht.

 73 \setlength{\parindent}{0pt} \setlength{\parskip}{7pt}
 74 \renewcommand{\baselinestretch}{1.2}
 75 \renewcommand{\arraystretch}{1.2}

76 ⟨/zsbx⟩

Schusterjungen und Hurenkinder werden strikt verboten. Das sollte immer geschehen, daher sind wir jetzt wieder in zsb.sty.

77 ⟨∗style⟩

 78 \clubpenalty=10000 \widowpenalty=10000

Vor Absätze erzeugenden Environments soll möglichst kein Umbruch erfolgen, zwischen Items ist es durchaus möglich:

 79 \@beginparpenalty=1000
 80 \@itempenalty=-100

Es sind Vorkehrungen zu treffen, daß mathematische Formeln, die auch im Text manchmal recht hoch werden, nicht aneinanderstoßen. Zuletzt wird noch (wir sind in Deutschland) der Leerraum hinter Punkten dem normalen Wortzwischenraum angepaßt. Dann hat man auch keine Probleme mehr mit Abkürzungen.

 81 \setlength{\normallineskip}{3pt} \setlength{\normallineskiplimit}{3pt}
 82 \normalbaselines
 83 \frenchspacing

\rahmen Manchmal sollen Definitionen, Merksätze etc. in einen Linienrahmen eingeschlossen werden. Die folgende Definition berücksichtigt die aktuelle Satzbreite, verhindert einen Umbruch vor dem Rahmen und paßt die inneren Abstände an.

 84 \long\def\rahmen#1{\par\addpenalty{10000}\addvspace{6pt}
 85 \hbox{\hglue\@totalleftmargin
 86 \hbox to \linewidth{\advance\linewidth by -8mm
 87 \hss\fboxsep=-\fboxrule
 88 \fbox{\hglue4mm\parbox{\linewidth}{\vglue3mm\relax
 89 #1\vglue4mm}\hglue4mm}\hss}}\par
 90 \addvspace{6pt}}

\matherahmen Ein entsprechendes Makro existiert auch für Formeln. Es wird das \rahmen-Makro benutzt.

 91 \def\matherahmen#1{\rahmen{\abovedisplayskip=0pt
 92 \belowdisplayskip=0pt
 93 \topsep=0pt\partopsep=0pt
 94 \[#1\]}}

\teile Aufgaben sind oft unterteilt. Um dieses zu vereinfachen, habe ich die Standardeinteilung mit

Tiefe Numerierung
1.  a) b) c)
2.  (i) (ii) (iii)
3.  1. 2. 3.

als neues Environment realisiert. Die Realisierung entspricht dem enumerate-Environment.

 95 \newcount\@teilnumdepth \@teilnumdepth = 0
 96 \@definecounter{teilnumi}
 97 \@definecounter{teilnumii}
 98 \@definecounter{teilnumiii}

Das Aussehen der Label wird definiert:

 99 \def\theteilnumi{\alph{teilnumi}}
100 \def\p@enumi{\theteilnumi\theteilnumi)}
101 \def\labelteilnumi{\theteilnumi)}
102 \def\theteilnumii{\roman{teilnumii}}
103 \def\p@enumii{(\theteilnumii\theteilnumii)}
104 \def\labelteilnumii{(\theteilnumii)}
105 \def\theteilnumiii{\arabic{teilnumiii}}
106 \def\p@enumiii{\theteilnumiii\theteilnumiii.}
107 \def\labelteilnumiii{\theteilnumiii.}

Nun kommt das eigentliche Environment. Die Einzüge werden so groß gewählt, daß die kleinen römischen Ziffern besser hineinpassen als zum Beispiel bei itemize.

108 \def\teile{\ifnum \@teilnumdepth >2 \@toodeep\else
109 \advance\@teilnumdepth \@ne
110 \edef\@teilnumctr{teilnum\romannumeral\the\@teilnumdepth}%
111 \list{\csname label\@teilnumctr\endcsname}%
112 {\usecounter{\@teilnumctr}\leftmargin=8mm\labelsep=1mm
113 \labelwidth=7mm \def\makelabel##1{{##1}\hss}}\fi}

Am Schluß ist nur die Liste zu beenden.

114 \let\endteile=\endlist

\marg Oft sollen Marginalien in einer kleineren Schrift als der restliche Text erscheinen. Dazu gibt es eine Abkürzung.

115 \long\def\marg#1{\marginpar{\footnotesize #1}}

\mathsf \Mathsf Oft werden Mengenzeichen für Zahlenmengen mit doppeltem Anstrich geschrieben. Hierfür stehen einige Makros bereit, die sowohl unter dem normalen LaTEX, mit NFSS als auch mit DC-Fonts funktionieren sollen. Zuerst benötigen wir ein Token zum Test auf DC-Fonts.

116 \def\DCfamily{dcr}

Das folgende Makro liefert passende Fontgrößen auch in Boxen. Das wird bei einigen Mengenzeichen benötigt, bei denen die Breite des Grundbuchstabens berechnet werden muß.

117 \def\Mathsf#1{\mathchoice
118 {\hbox{\normalsize\Msf #1}}%
119 {\hbox{\normalsize\Msf #1}}%
120 {\hbox{\scriptsize\Msf #1}}%
121 {\hbox{\tiny\ifx\undefined\selectfont\else\Msf\fi #1}}}

Nun muß etwas Kompatibilität zwischen NFSS und LFONTS.OLD hergestellt werden. Wenn NFSS nicht vorhanden ist:

122 \ifx\undefined\selectfont
123 \let\mathrm\rm
124 \let\mathsf\Mathsf

sonst (also NFSS verfügbar)

125 \else
126 \ifx\mathsf\undefined
127 \newmathalphabet{\mathsf}

Der Sans-Serif Font für Formeln muß bereitgestellt werden. Das soll für CM-, aber auch für DC-Fonts geschehen:

128 \ifx\rmdefault\DCfamily
129  \addtoversion{normal}{\mathsf}{dcss}{m}{n}
130  \addtoversion{bold}{\mathsf}{dcss}{bx}{n}
131 \else
132  \addtoversion{normal}{\mathsf}{cmss}{m}{n}
133  \addtoversion{bold}{\mathsf}{cmss}{bx}{n}
134 \fi
135 \fi
136 \fi

\mr Nun gleich noch eine kleine Abkürzung, um im Mathematiksatz \rm-Schrift zu erhalten, sowohl mit als auch ohnen NFSS:

137 \let\mr\mathrm

\Mengenzeichen Einige Autoren wünschen die Mengenzeichen in anderen Schriftschnitten. Dazu kann man dem Befehl \Mengenzeichen eine Einstellung ({sf}, {rm}, {}) festlegen:

138 \def\Mengenzeichen#1{\def\temp{#1}
139 \ifx\temp\empty
140 \def\Mengen{} \def\Msf{}
141 \else
142 \expandafter\def\expandafter\Mengen{\csname math#1\endcsname}%
143 \expandafter\def\expandafter\Msf{\csname #1\endcsname}%
144 \fi}

Die Voreinstellung ist sf.

145 \Mengenzeichen{sf}

\IB \IR \IN Nun können die eigentlichen Zeichen festgelegt werden.

146 \def\IB{{\Mengen{I\kern-.09em B}}}
147 \def\IC{{\Mathsf{C\setbox0\hbox{C}\kern-.3\wd0
148 \hbox to 0pt{\hss I}\kern.3\wd0}}}
149 \def\ID{{\Mengen{I\kern-.09em D}}}
150 \def\IE{{\Mengen{I\kern-.09em E}}}
151 \def\IF{{\Mengen{I\kern-.09em F}}}
152 \def\IH{{\Mengen{I\kern-.09em H}}}
153 \def\II{{\Mengen{I\kern-.09em I}}}
154 \def\IK{{\Mengen{I\kern-.09em K}}}
155 \def\IL{{\Mengen{I\kern-.09em L}}}
156 \def\IM{{\Mengen{I\kern-.09em M}}}
157 \def\IN{{\Mengen{I\kern-.09em N}}}
158 \def\IO{{\Mathsf{O\setbox0\hbox{O}\kern-.36\wd0
159 \hbox to 0pt{\hss I}\kern.36\wd0}}}

160 \def\IP{{\Mengen{I\kern-.09em P}}}
161 \def\IQ{{\Mathsf{Q\setbox0\hbox{Q}\kern-.36\wd0
162 \hbox to 0pt{\hss I}\kern.36\wd0}}}
163 \def\IR{{\Mengen{I\kern-.09em R}}}
164 \def\IT{{\Mengen{T\setbox0\hbox{T}\kern-.68\wd0 T}}}
165 \def\IZ{{\Mengen{Z\setbox0\hbox{Z}\kern-.65\wd0 Z}}}
166 \let\oldOE\OE
167 \def\OE{{\ifmmode\Mathsf{\oldOE}\else\oldOE\fi}}

Klammern werden so voreingestellt, daß sie etwas über den Innenteil herausragen. Das geht ganz einfach.

168 \delimiterfactor=1080 \delimitershortfall=0pt

Eine frühere Version war etwas anders implementiert. Zur Zeit bleiben wir dazu kompatibel:

169 \let\Left\left
170 \let\Right\right

\eqnarray Die Stil-Option EQUATION.STY wird nicht mehr eingelesen. Der darin enthaltene Patch wird direkt implementiert. Das Original stammt aus der LaTEX-Version 2.09 vom März 1992. Der Patch sorgt dafür, daß in eqnarrays der Raum um die Mittelteile richtig an die Relation angepaßt wird.

171 \def\eqnarray{\stepcounter{equation}\let\@currentlabel\theequation
172 \global\@eqnswtrue\m@th
173 \global\@eqcnt\z@\tabskip\@centering\let\\\@eqncr
174 $$\halign to\displaywidth\bgroup\@eqnsel\hskip\@centering
175 $\displaystyle\tabskip\z@{##}$&\global\@eqcnt\@ne
176 \hfil${}##{}$\hfil
177 &\global\@eqcnt\tw@
178 $\displaystyle\tabskip\z@{##}$\hfil
179 \tabskip\@centering&\llap{##}\tabskip\z@\cr}

\cases Im \cases-Befehl wollen wir \\ als Zeilentrenner zulassen.

180 \let\old@cases\cases
181 \def\cases{\let\\\@eqnacr\old@cases}
182 \let\endcases\undefined

Auch der GERMAN.STY wird schon eingeladen. Um wieder zu NFSS und DC kompatibel zu bleiben, benutzen wir zwei Versionen, GERMAN und GERMAN3. Je nach System lesen wir den passenden ein.

183 \ifx\rmdefault\DCfamily

Das ist auch FALSE, falls kein NFSS vorhanden ist, denn die DC-Fonts werden nur mit dem NFSS benutzt. Dann sind wahrscheinlich CM-Fonts installiert.

184 \input {german3.sty}
185 \else
186 \input {german.sty}
187 \fi

2.2.1 Zusätzliche Zeichen und Kleinkram

188 ⟨∗zsbzeich⟩

Andere Makros für Zeichen und besondere Dinge wurden früher aus einer externen Datei eingelesen, damit diese leichter erweitert werden konnte. Da dann die Konsistenz aber nicht mehr gewährleistet ist, habe ich sie nun in die zsb.sty-Datei integriert. Eigene Erweiterungen sind in einer eigenen Datei aufzunehmen und haben dan mit meiner Standard-Verteilung nichts mehr zu tun, es sei denn, ich nehme sie in eine der folgenden Versionen mit auf.

\rundkl \eckkl \mengkl \betrag \norm \spitzkl Um etwas an \left- und \right-Befehlen zu sparen gibt es die folgenden Abkürzungen.

189 \def\rundkl#1{\left(#1\right)}
190 \def\eckkl#1{\left[#1\right]}
191 \def\mengkl#1{\left\{#1\right\}}
192 \def\betrag#1{\left\vert#1\right\vert}

193 \def\norm#1{\left\Vert#1\right\Vert}
194 \def\spitzkl#1{\left<#1\right>}
195 \let\Rundkl\rundkl \let\Eckkl\eckkl \let\Mengkl\mengkl
196 \let\Betrag\betrag \let\Norm\norm \let\Spitzkl\spitzkl

" Der german.sty bietet die Möglichkeit, eigene "-Makros zu generieren. Ich nutze diese Möglichkeit, um wachsende Klammern so schnell und übersichtlich wie möglich eingeben zu können. Wegen eines Fehlers in TEX wird am Anfang eines eqnarray (genauer im Argument eines \halign der \ifmmode-Befehl nicht immer richtig ausgeführt. Das ergibt dann mit GERMAN.STY ab Version 2.4a eine Fehlermeldung. Die folgenden Makros umgehen das dadurch, daß im Textmode nach einem \relax noch einmal der Mathemodus getestet wird. Damit funktioniert’s dann wieder. Eine Änderung in GERMAN.STY ist nicht vorgesehen (das Problem ergibt sich auch mit "A etc.), da dann das Erkennen von Hexzahlen nicht möglich ist.

197 \def@dqmacro{(}{\relax\ifmmode\left(\else(\fi}{\left(}
198 \def@dqmacro{)}{\relax\ifmmode\right)\else)\fi}{\right)}
199 \def@dqmacro{[}{\relax\ifmmode\left[\else[\fi}{\left[}
200 \def@dqmacro{]}{\relax\ifmmode\right]\else]\fi}{\right]}
201 \def@dqmacro{\{}{\relax\ifmmode\left\{\else\{\fi}{\left\{}
202 \def@dqmacro{\}}{\relax\ifmmode\right\}\else\}\fi}{\right\}}
203 \def@dqmacro{<}{\relax\ifmmode\left<\else\flqq{}\fi}{\left<}
204 \def@dqmacro{>}{\relax\ifmmode\right>\else\frqq{}\fi}{\right>}

Das funktioniert natürlich nur mit Klammern, denen ihre ”Richtung“ anzusehen ist.

\overparent Die Befehle, mit denen man die horizontalen wachsenden Klammern erzeugen kann, sind aus Plain-TEX entlehnt:

205 \def\downparentfill{$\m@th
206 \braceld\leaders\vrule\hfill\bracerd$}
207 \def\overparent#1{\mathop{\vbox{\ialign{##\crcr
208 \downparentfill\crcr\noalign{\kern3pt\nointerlineskip}
209 $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits}
210 \let\widebow\overparent
211 \def\upparentfill{$\m@th
212 \bracelu\leaders\vrule\hfill\braceru$}
213 \def\underparent#1{\mathop{\vtop{\ialign{##\crcr
214 $\hfil\displaystyle{#1}\hfil$\crcr
215 \noalign{\kern3pt\nointerlineskip}\upparentfill\crcr}}}\limits}

\underparent \quickover Mit \quickover wird der Slash (/) so umdefiniert, daß er wie ein \over reagiert. Natürlich nur im Mathesatz. Die Originalbedeutung wird gesichert:

216 \let\@oldslash/

Zwei Befehle zum Umschalten des \catcodes werden benötigt:

217 \def\makeslashactive{\catcode`\/=\active}
218 \def\makeslashother{\catcode`\/=12}

Nun kommt die eigentliche Definition und der Startbefehl.

219 \def\@overslash{\ifmmode\over\else\@oldslash\fi}
220 {\catcode`\/=\active
221 \gdef\quickover{\makeslashactive
222 \let/\@overslash}}

\noquickover Und zum Ausschalten benötigt man

223 \gdef\noquickover{\makeslashother}

\nomathbreaks Jeglicher Zeilenumbuch in mathematischen Formeln kann global ausgeschaltet werden. Wie im TEXbook beschrieben setzt man

224 \def\nomathbreaks{\relpenalty=10000\binoppenalty=10000
225 \ifx\operator@font\undefined
226  \let\operator@font\rm
227 \fi
228 \def\bmod{\mskip-\medmuskip\mkern5mu \mathbin{\operator@font mod}
229  \mkern5mu\mskip-\medmuskip}
230 \def\pmod##1{\mkern18mu({\operator@font mod}\,\,##1)}}

\SRelation \gdw \folgt \lfolgt \integral \teilt \teiltn \dachbin \dachrel \seigleichh \punktgleich \dpunktgleich \dLeftrightarrow \dLongleftrightarrow \defgleich \entspricht \paranorm \bigsqcap \bbigsqcap \bbigsqcup \bbigcap \bbigcup \Text \fini \finid \vek \disp \0 \E \C \Bruch Jetzt kommen einige ”straight forward“ Definitionen. Ein Kommentar erübrigt sich wohl, wenn

man von der Definition von \SRelation absieht. Hiermit können leicht weitere Sonderformen erzeugt werden.

231 \def\SRelation#1#2#3{\def#1{\mathrel{\vcenter{\baselineskip=0pt
232 \lineskiplimit=0ex\lineskip=0ex
233 \def\\{\cr\noalign{\vskip#3ex\relax}}%
234 \ialign{\hfil\baselineskip=0pt
235 $\vcenter{\hbox{$\m@th####$}}$\hfil\crcr#2\crcr}}}}}
236 \def\vquad{\mathchoice{\quad}{\;}{\,}{\,}}
237 \def\gdw{\vquad\Leftrightarrow\vquad}
238 \def\folgt{\vquad\Rightarrow\vquad}
239 \def\lfolgt{\vquad\Leftarrow\vquad}
240 \def\integral{\int\limits}
241 \def\teilt{\mathbin{\vert}}
242 \def\teiltn{\mathbin{\midbox{/}{\vert}}}
243 \def\midbox#1#2{\setbox0\hbox{$#1$}\setbox1\hbox{$#2$}%
244 \ifdim\wd0<\wd1\setbox2\copy0\setbox0\copy1\setbox1\copy2\fi
245 \copy0\kern-0.5\wd0\hbox to 0pt{\hss\copy1\hss}\kern0.5\wd0}
246 \def\dachbin#1{\mathbin{\widehat{#1}}}
247 \def\dachrel#1{\mathrel{\widehat{#1}}}
248 \def\seigleich{\buildrel!\over=}
249 \let\punktgleich\doteq
250 \ifx\undefined\Doteq
251 \SRelation\dpunktgleich{.\\=\\.}{-0.2}
252 \else \let\dpunktgleich\Doteq \fi
253 \SRelation\dLeftrightarrow{.\\\Leftrightarrow\\.}{0.2}
254 \SRelation\dLongleftrightarrow{.\\\Longleftrightarrow\\.}{-0.1}
255 \def\defgleich{\buildrel\mathrm{def}\over=}
256 \def\entspricht{\dachrel=}
257 \def\paranorm#1{\mathopen{!}#1\mathclose{!}} % Klammer: !...!
258 \def\bigsqcap{\mathop{\vcenter{\hbox{\Large$\sqcap$}}}}
259 \def\bbigsqcap{\mathop{\vcenter{\hbox{\LARGE$\sqcap$}}}}
260 \def\bbigsqcup{\mathop{\vcenter{\hbox{\LARGE$\sqcup$}}}}
261 \def\bbigcap{\mathop{\vcenter{\hbox{\LARGE$\cap$}}}}
262 \def\bbigcup{\mathop{\vcenter{\hbox{\LARGE$\cup$}}}}
263 \def\Text#1{\quad\hbox{#1}\quad}
264 \def\fini{\nopagebreak \hspace{1in}
265 \hspace*{\fill} $\Box$ \par}
266 \def\finid{\nopagebreak \hspace{1in}
267 \hspace*{\fill} $\triangle$ \par}
268 \def\vek#1{\overrightarrow{#1}}
269 \let\disp\displaystyle \let\dps\disp
270 \def\0{\phantom{0}}
271 \def\E#1{{\,{\ifmmode\mathrm{#1}\else$\mathrm{#1}$\fi}}}
272 \def\C#1{\ifmmode\cdot10^{#1}\else${}\cdot10^{#1}$\fi}
273 \def\Bruch#1#2{\vphantom{/}^{#1}\!/\!_{#2}}

\Ourel \ourel Relationen mit mehreren Über- und Unterschriften ermöglichen die folgenden beiden Makros.

274 \def\Ourel#1#2#3{\mathrel{
275 \mathop{\vcenter{\vglue2pt\hbox{$#2$}\vglue2pt}}%
276 \limits_{\Relst{#3}}^{\Relst{#1}}}}
277 \def\ourel#1#2#3{\mathrel{
278 \mathop{\vcenter{\vglue2pt\hbox{$#2$}\vglue2pt}}%
279 \limits_{\relst{#3}}^{\relst{#1}}}}
280 \def\relst#1{\vbox{\normalbaselines\baselineskip=0.6\baselineskip
281 {\let\\\cr\halign{\hfil$\scriptstyle ##$\hfil\cr#1\crcr}}}}
282 \def\Relst#1{\vbox{\normalbaselines\baselineskip=0.8\baselineskip
283 {\let\\\cr\halign{\hfil$##$\hfil\cr#1\crcr}}}}

\newmop \newmopnl Operatoren, deren Name und Ergebnis gleich lauten, können über ein einfaches Makro definiert werden. Es gibt zwei Versionen, je nachdem, ob eventuelle Grenzen neben oder über dem Operator stehen sollen.

284 {\catcode `\|=0 \catcode `|\=12
285 |gdef|BS{\}}

286 \def\newmop#1{%
287 \expandafter\ifx\csname #1\endcsname\relax
288 \else \typeout{!-------> Der Befehl \BS#1 wurde umdefiniert.^^J}\fi
289 \expandafter
290 \gdef\csname #1\endcsname{\mathop{\mathrm{#1}}}

291 }

292 \def\newmopnl#1{%
293 \expandafter\ifx\csname #1\endcsname\relax
294 \else
295 \typeout{!-------> Der Befehl \BS#1 wurde umdefiniert.^^J}\fi
296 \expandafter
297 \gdef\csname #1\endcsname{\mathop{\mathrm{#1}}\nolimits}

298 }

Gleich anschließend werden eine ganze Menge dieser Operatoren erzeugt. Automatisch wird eine Tabelle für die Dokumentation erstellt.

299 ⟨/zsbzeich⟩ 300 ⟨/style⟩ 301 ⟨∗mathoptable | zsbzeich | style⟩

302 \newmopnl{arcsinh} \newmopnl{arccosh} \newmopnl{arctanh} \newmopnl{arccoth}
303 \newmopnl{sinc}    \newmopnl{card}    \newmopnl{sign}    \newmopnl{codim}
304 \newmopnl{Kern}    \newmopnl{Bild}    \newmopnl{Rang}    \newmopnl{Mat}
305 \newmopnl{kgV}     \newmopnl{ggT}     \newmopnl{Fix}     \newmopnl{lub}
306 \newmopnl{rang}    \newmopnl{arsinh}  \newmopnl{grad}    \newmopnl{Grad}
307 \newmopnl{Res}     \newmopnl{ld}      \newmopnl{Eig}     \newmopnl{Spur}
308 \newmopnl{Sp}      \newmopnl{Aut}     \newmopnl{ord}     \newmopnl{Hom}
309 \newmopnl{End}     \newmopnl{Id}      \newmopnl{id}      \newmopnl{diag}
310 \newmopnl{cond}    \newmopnl{arccot}  \newmopnl{arctg}   \newmopnl{res}
311 \newmopnl{Mer}     \newmopnl{ctg}

312 ⟨/mathoptable | zsbzeich | style⟩ 313 ⟨∗style⟩ 314 ⟨∗zsbzeich⟩

\Real \Imag \i \d \mod \const Für einige benötigt man andere Namen. Sie werden daher zu Fuß erstellt. Einige sind keine Operatoren, sondern normale Zeichen.

315 \def\Real{\mathop{\mathrm{Re}}}
316 \def\Imag{\mathop{\mathrm{Im}}}
317 \def\i{{\mathrm i}} \def\e{{\mathrm e}}
318 \def\d{\,{\mathrm d}}
319 \def\mod{\mathbin{\mathrm{mod}}}
320 \def\const{\mathord{\mathrm{const}}}
321 \def\obda{o.\,B.\,d.\,A.}
322 \def\Obda{O.\,B.\,d.\,A.}
323 \def\gilt{:\;}

\lra \lla \lda \lua \LRA \LLA \LDA \LUA Es gibt Pfeile für einfache kommutative Diagramme. Sie sind in Matrizen zu benutzen.

324 \def\lra{\hbox to 15mm{\rightarrowfill}}
325 \def\lla{\hbox to 15mm{\leftarrowfill}}
326 \def\lda{\mathord{\left\downarrow\vcenter to 15mm{\vss}\right.}}
327 \def\lua{\mathord{\left\uparrow\vcenter to 15mm{\vss}\right.}}
328 \def\LRA#1#2{\mathop{\lra}\limits^{\textstyle #1}_{\textstyle #2}}
329 \def\LLA#1#2{\mathop{\lla}\limits^{\textstyle #1}_{\textstyle #2}}
330 \def\LDA#1#2{\llap{$#1$}\lda\rlap{$#2$}}
331 \def\LUA#1#2{\llap{$#1$}\lua\rlap{$#2$}}

\Nullol \Nullor \Nullul \Nullur In Matrizen werden oft große Nullen benötigt, um nicht alle Nullen darstellen zu müssen. Dazu dienen die (nicht richtig funktionierenden) Makros:

332 \def\Nullor{{\setbox0\hbox{0}%
333 \setbox1\vbox to \ht0{\hbox to \wd0{\hss\LARGE0}\vss}%
334 \dp1=0pt\box1}}
335 \def\Nullol{{\setbox0\hbox{0}%
336 \setbox1\vbox to \ht0{\hbox to \wd0{\LARGE0\hss}\vss}%
337 \dp1=0pt\box1}}
338 \def\Nullur{{\setbox0\hbox{0}%

339 \vbox to 0pt{\vss\hbox to \wd0{\hss\LARGE0}}}}
340 \def\Nullul{{\setbox0\hbox{0}%
341 \vbox to 0pt{\vss\hbox to \wd0{\LARGE0\hss}}}}

\rdots Ein kleines aber hilfreiches Makro sind \ddots in der anderen Richtung (\rdots):

342 \def\rdots{\mathinner{\mkern1mu\raise\p@\vbox{\kern7\p@\hbox{.}}\mkern2mu
343  \raise4\p@\hbox{.}\mkern2mu\raise7\p@\hbox{.}\mkern1mu}}

\ALLMAT Matrizen-Makros erlauben das Programmieren regelmäßiger Matrizen beliebiger Größe. Hier sind sie:

344 \newcount\AMz \newcount\AMs
345 \def\ALLMAT#1#2{\@ifnextchar[{\ALLMATf{#1}{#2}}{\ALLMATf{#1}{#2}[]}}
346 \def\ALLMATf#1#2[#3]#4{\AMz=0\gdef\Ematrixx{}
347 \loop \ifnum\AMz<#1
348 \advance\AMz by 1\AMs=0
349 {\loop \ifnum\AMs<#2
350  \advance\AMs by 1

351 #3

352  \xdef\Ematrixx{\Ematrixx
353  #4 \ifnum\AMs<#2& \else\fi}
354 \repeat}
355 \ifnum\AMz<#1\xdef\Ematrixx{\Ematrixx\cr}\fi
356 \repeat \left\AML\matrix{\Ematrixx}\right\AMR}

\ALLMATL \ALLMATR Die Klammern können gewählt werden.

357 \def\ALLMATL#1{\let\AML=#1} \ALLMATL(
358 \def\ALLMATR#1{\let\AMR=#1} \ALLMATR)

\IDMAT \NULLMAT \EINSMAT Und hier sind gleich einige Beispiele für die Anwendung:

359 \def\IDMAT#1{\ALLMAT{#1}{#1}{\ifnum\AMz=\AMs 1\else0\fi}}
360 \def\NULLMAT#1#2{\ALLMAT{#1}{#2}0}
361 \def\EINSMAT#1#2{\ALLMAT{#1}{#2}1}

362 ⟨/zsbzeich⟩

Hier endet die ehemalige zsbzeich.sty-Datei.

\theequation Die Einstellung für Formelnummern als einfache Zahlen ohne Kapitelnummer ist sinnvoll, da sie ohnehin nur sehr selten vorkommen und dann mit einer Aufgabennummer überladen wären.

363 \def\theequation{\arabic{equation}}

\nextfnum Oft werden aber auch nur ein ∗ oder etwas ähnliches als Kennzeichnung benutzt. Dazu dient das folgende Makro.

364 \def\nextfnum#1{\gdef\theequation{$#1$}}

\withnumber Der Befehl —— sorgt für die entsprechenden Umschaltungen, so daß LaTEX eine Formelnummer in der aktuellen Zeile erzeugt.

365 \def\withnumber{\let\nonumber\relax\global\@eqnswtrue}

\Frei Ab und zu müssen extern erstellt Bilder oder Tabellen in den Text integriert werden. Das geschieht dann im Pritt-Editor, so daß im TEX-Text Leerraum gelassen werden muß. Ein Makro erledigt das.

366 \def\Frei#1{\[ \vbox to #1{\vss} \]}

\matrix \Matrix \pmatrix \Pmatrix Wie auch schon im \cases-Befehl sollen in den Plain-TEX Matrizenbefehlen, die viel schneller einzutippen und übersichtlicher sind, \\ als Zeilenenden akzeptiert werden.

367 \def\matrix#1{{\let\\\@eqnacr %\@eqnswfalse
368 \null\,\vcenter{\normalbaselines\m@th
369  \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr
370  \mathstrut\crcr\noalign{\kern-\baselineskip}
371  #1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}\,}}

Eine etwas abgewandelte Form setzt alle Einträge im \displaystyle.

372 \def\Matrix#1{{\let\\\@eqnacr %\@eqnswfalse
373 \null\,\vcenter{\normalbaselines\m@th
374  \ialign{\hfil\hbox{$\disp{##}$}\hfil&&\quad
375  \hfil\hbox{$\disp{##}$}\hfil\crcr
376  \mathstrut\crcr\noalign{\kern-\baselineskip}
377  #1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}\,}}
378 \def\Pmatrix#1{{\left(\Matrix{#1}\right)}}

Die passenden \cr-Befehle sind aus equation.sty geborgt:

379 \def\@eqnacr{{\ifnum0=`}\fi\@ifstar{\@yeqnacr}{\@yeqnacr}}
380 \def\@yeqnacr{\@ifnextchar [{\@xeqnacr}{\@xeqnacr[\z@]}}
381 \def\@xeqnacr[#1]{\ifnum0=`{\fi}\cr \noalign{\vskip\jot\vskip #1\relax}}

\multieqn Ab und an sind Formelarrays zu setzen, die aus vielen Gleichungen bestehen. Ein neues Environment dient zum einfachen Setzen von solchen Feldern. Die Anzahl der Gleichungsspalten wurde früher als Parameter übergeben. Hierzu soll Kompatibilität gewahrt bleiben. Dazu dient der auch jetzt übergebene Parameter. Das Leerzeichen danach sorgt dafür, daß er frei bleibt, wenn nach \begin{multieqn} kein Parameter folgt. Wenn man nicht gerade sowas wie \begin{multieqn}\sin… ohne Leerzeichen eingibt, geht alles klar. Wie auch beim eqnarray-Environment werden die Abstände der Relation angepaßt. Es können beliebig viele Spalten angegeben werden. Der Leerraum wird vor, hinter und zwischen den Spalten gleichmäßig verteilt. Formelnummern werden nicht unterstützt. && (TEXbook) sorgt für die Vervielfachung.

382 \def\multieqn#1 {\def\@eqncr{\nonumber\@seqncr}%
383 \def\@@eqncr{\global\@eqnswtrue\global\@eqcnt\z@\cr}%
384 \stepcounter{equation}\let\@currentlabel\theequation
385 \m@th\tabskip\@centering\let\\\@eqncr
386 $$\halign to\displaywidth\bgroup\@eqnsel\hskip\@centering
387 $\displaystyle\tabskip\z@{##}$&
388 \hfil${}##{}$\hfil&
389 $\displaystyle\tabskip\z@{##}$\hfil
390 \tabskip\@centering&&
391 \hfil$\displaystyle\tabskip\z@{##}$&
392 \hfil${}##{}$\hfil&
393 $\displaystyle{##}$\hfil
394 \tabskip\@centering\cr}
395 \def\endmultieqn{\nonumber\@@eqncr\egroup
396  \global\advance\c@equation\m@ne$$\global\@ignoretrue}

{\LGS \atop \lgs} Mit dem Environment LGS können Formelarrays gesetzt werde, deren Spalten die natürlichen mathematischen Abstände voneinander haben. So können die Variablen bei linearen Gleichungssystemen schön untereinander angeordnet werden. Ein optionaler Parameter bestimmt die Ausrichtung der Einträge.

397 \def\lgs{\def\@LGS{\lineskip\z@\baselineskip\z@}%
398 \@ifnextchar[{\LGSf}{\LGSf[r]}}
399 \def\LGS{\let\@LGS\relax\@ifnextchar[{\LGSf}{\LGSf[r]}}
400 \def\LGSf[#1]{\vcenter\bgroup\openup\jot\m@th

Die folgenden Zeilen stammen aus dem \@array-Befehl von LaTEX. Sie sorgen für eine Initialisie-

rung des \@arraycr.
401 \setbox\@arstrutbox\hbox{\vrule
402  \@height\arraystretch \ht\strutbox
403  \@depth\arraystretch \dp\strutbox
404  \@width\z@}\@LGS
405 \let\\\@arraycr
406 \ialign\bgroup&\strut
407 \if #1l\else\hfil\fi  % c und r
408 $\disp{}##{}$%
409 \if #1r\else\hfil\fi  % c und l
410 \crcr}
411 \def\endLGS{\crcr\egroup\egroup}
412 \def\endlgs{\crcr\egroup\egroup}

413 ⟨/style⟩

2.3 Die Steuerdateien für unterschiedliche ”Zettel“

Wie immer zuerst eine Lademeldung auf den Bildschirm schreiben:

414 ⟨∗zettel⟩

415 ⟨+ea⟩\typeout{^^J Einsendeaufgaben ^^J}
416 ⟨+le⟩\typeout{^^J L\string"osungen zu Einsendeaufgaben ^^J}
417 ⟨+sta⟩\typeout{^^J Aufgaben zu Studientagen ^^J}
418 ⟨+stl⟩\typeout{^^J L\string"osungen zu Studientagen ^^J}
419 ⟨+de⟩\typeout{^^J Defizit Einsendeaufgaben ^^J}
420 ⟨+lde⟩\typeout{^^J L\string"osungen zu Defizitaufgaben ^^J}
421 ⟨+kl⟩\typeout{^^J Klausur ^^J}
422 ⟨+kll⟩\typeout{^^J Klausurl\string"osungen ^^J}
423 ⟨+nkl⟩\typeout{^^J  Nachklausur^^J}
424 ⟨+nkll⟩\typeout{^^J Nachklausurl\string"osungen ^^J}

Damit man ZSB.STY auch zu anderen Gelegenheiten benutzen kann, sind alle Dinge, die mit dem Seitenlayout und so zu tun haben in einer Datei zsbx.sty ausgeklammert. Diese wird nun eingelesen, denn es sollen ja Zettel gesetzt werden.

425 \input zsbx.sty

Bei allen Aufgabenzetteln können Punkte am Rand stehen. Damit diese auch auf die Seite passen, wird das Seitenlayout etwas verändert:

426 ⟨∗ea | sta | kl | nkl | de⟩

427 \textheight=680pt \textwidth=425pt
428 \marginparwidth=18mm \marginparsep=7mm

\nurkasten \LAsonder Bei den Aufgaben gibt es einige Sonderwünsche, weil das Deckblatt zusätzlich hergestellt wird.

429 \def\nurkasten{\def\kurs##1{%
430 \hbox to \hsize{\hss\fbox{\vbox{\vglue 5mm
431 \hbox to 45mm{\hss\bf Einsendetermin:\hss}
432 \hbox to 45mm{\hss\bf\@einsendetermin\hss}\vglue5mm}}}}}
433 \def\LAsonder{\def\kurs##1{%
434 \hbox to \hsize{%
435 \vbox{\Large\hbox{##1}
436  \hbox{Kurseinheit \@kurseinheit}
437  \hbox{Einsendeaufgaben}}%
438 \hss\fbox{\vbox{\vglue 5mm
439 \hbox to 45mm{\hss\bf Einsendetermin:\hss}
440 \hbox to 45mm{\hss\bf\@einsendetermin\hss}\vglue5mm}}}\vglue 4mm
441 \rule{\hsize}{1pt}\par}}

442 ⟨/ea | sta | kl | nkl | de⟩

Nun zu den einzelnen Einstellungen. Auch wenn sie relativ ähnlich sind werden sie hier ”zettelweise“ angelegt, um sie später gezielter ändern zu können.

443 ⟨∗ea⟩

444 \EinsendeTermin{??.??.????}\KursEinheit{??}\ArtKuerzel{EA}
445 \Ueberschrift{Einsendeaufgaben}
446 \ErsteZeile{Kurseinheit \@kurseinheit:}
447 \ZweiteZeile{Einsendeaufgaben
448 \ifx\@einsendetermin\@empty
449 \else --- Einsendetermin: \@einsendetermin\fi}
450 \DritteZeile{}
451 \AufgabenText{Aufgabe}

452 ⟨/ea⟩ 453 ⟨∗le⟩

454 \ArtKuerzel{LE}\KursEinheit{?}
455 \Ueberschrift{L\"osungsvorschl\"age}
456 \ErsteZeile{Kurseinheit \@kurseinheit:}
457 \ZweiteZeile{L\"osungsvorschl\"age zu den Einsendeaufgaben}
458 \DritteZeile{}
459 \AufgabenText{zu Aufgabe}

460 ⟨/le⟩ 461 ⟨∗sta⟩

462 \ArtKuerzel{STA}

463 \Ueberschrift{Aufgaben zu den Studientagen}
464 \ErsteZeile{Studientage%
465 \ifx\@einsendetermin\empty\else\ am \@einsendetermin\fi:}
466 \ZweiteZeile{Aufgaben zu den Studientagen}
467 \DritteZeile{}
468 \AufgabenText{Aufgabe}

469 ⟨/sta⟩ 470 ⟨∗stl⟩

471 \ArtKuerzel{STL}
472 \Ueberschrift{L\"osungsvorschl\"age zu den Studientagen}
473 \ErsteZeile{Studientage%
474 \ifx\@einsendetermin\empty\else\ am \@einsendetermin\fi:}
475 \ZweiteZeile{L\"osungsvorschl\"age zu den Aufgaben}
476 \DritteZeile{}
477 \AufgabenText{zu Aufgabe}

478 ⟨/stl⟩ 479 ⟨∗kl⟩

480 \ArtKuerzel{KL}
481 \Ueberschrift{Klausuraufgaben}
482 \ErsteZeile{Klausur%
483 \ifx\@einsendetermin\empty\else\ am \@einsendetermin\fi:}
484 \ZweiteZeile{Aufgabenstellungen}
485 \DritteZeile{}
486 \AufgabenText{Aufgabe}

487 ⟨/kl⟩ 488 ⟨∗kll⟩

489 \ArtKuerzel{KLL}
490 \Ueberschrift{L\"osungsvorschl\"age zur Klausur}
491 \ErsteZeile{Klausur%
492 \ifx\@einsendetermin\empty\else\ am \@einsendetermin\fi:}
493 \ZweiteZeile{L\"osungsvorschl\"age zu den Aufgaben}
494 \DritteZeile{}
495 \AufgabenText{zu Aufgabe}

496 ⟨/kll⟩ 497 ⟨∗nkl⟩

498 \ArtKuerzel{NKL}
499 \Ueberschrift{Nachklausur-Aufgaben}
500 \ErsteZeile{Nachklausur%
501 \ifx\@einsendetermin\empty\else\ am \@einsendetermin\fi:}
502 \ZweiteZeile{Aufgabenstellungen}
503 \DritteZeile{}
504 \AufgabenText{Aufgabe}

505 ⟨/nkl⟩ 506 ⟨∗nkll⟩

507 \ArtKuerzel{NKLL}
508 \Ueberschrift{L\"osungsvorschl\"age zur Nachklausur}
509 \ErsteZeile{Nachklausur%
510 \ifx\@einsendetermin\empty\else\ am \@einsendetermin\fi:}
511 \ZweiteZeile{L\"osungsvorschl\"age zu den Aufgaben}
512 \DritteZeile{}
513 \AufgabenText{zu Aufgabe}

514 ⟨/nkll⟩ 515 ⟨∗de⟩

516 \EinsendeTermin{??.??.????}\KursEinheit{}\ArtKuerzel{DE}
517 \Ueberschrift{Defizit-Einsendeaufgaben}
518 \ErsteZeile{}
519 \ZweiteZeile{Defizit-Einsendeaufgaben
520 \ifx\@einsendetermin\@empty
521 \else --- Einsendetermin: \@einsendetermin\fi}
522 \DritteZeile{}
523 \AufgabenText{Aufgabe}

524 ⟨/de⟩ 525 ⟨∗lde⟩

526 \ArtKuerzel{LDE}\KursEinheit{?}
527 \Ueberschrift{L\"osungsvorschl\"age}
528 \ErsteZeile{}

529 \ZweiteZeile{L\"osungsvorschl\"age zu den Defizit-Aufgaben}
530 \DritteZeile{}
531 \AufgabenText{zu Aufgabe}

532 ⟨/lde⟩ 533 ⟨/zettel⟩

Damit sind die Steuerdateien fertig.

2.4 Spezielle ”Zettel“-Makros (ZSBX.STY)

Zuerst kommen die normalen Einstellungen für das Seitenlayout. Sie werden ggf. durch die Steuerdateien überschrieben: 534 ⟨∗zsbx⟩

535 \textheight=680pt \textwidth=480pt
536 \def\LBreite{\textwidth=480pt}
537 \topmargin=-1cm
538 \headsep=18pt \headheight=30pt
539 \footskip=25pt
540 \marginparwidth=0mm \marginparsep=0mm
541 \evensidemargin=5pt \oddsidemargin=5pt

\Punkterechts \Punktelinks Dann müssen Makros implementiert werden, um Punkte neben den Aufgaben zu plazieren. Sie stehen normalerweise im Rand. Auf welcher Seite, das kann mit den beiden folgenden Makros eingestellt werden.

542 \def\Punkterechts{\normalmarginpar
543 \evensidemargin=5pt\oddsidemargin=5pt
544 \def\@pflushl{}}
545 \def\Punktelinks{\reversemarginpar
546 \evensidemargin=60pt\oddsidemargin=60pt
547 \def\@pflushl{\hfill}}
548 \Punkterechts

\Punktetyp Auch das Aussehen kann eingestellt werden:

549 \def\Punktetyp#1{\def\@Punkte{#1}}
550 \Punktetyp{\footnotesize\it}

\Punkte \Punkt Nun kommen aber endlich die eigentlichen Makros:

551 \def\Punkt{\leavevmode\marginpar{\@pflushl\@Punkte 1 Punkt}}
552 \def\Punkte#1{\leavevmode\marginpar{\@pflushl\@Punkte
553 \def\Eins{1}\def\Einst{#1}%
554 #1 \ifx\Einst\Eins Punkt \else Punkte\fi}%
555 \ignorespaces}

\thepage Die Seitenziffer wird mit den zusätzlichen Angaben ergänzt, die sich aus den Kürzeln und Kurseinheiten etc. ergeben.

556 \def\thepage{\@kurskuerzel\ \ \@ArtKuerzel
557 \ifx\@kurseinheit\empty\else\ \@kurseinheit\fi
558 \,/\,\arabic{page}}
\KursKuerzel \Kodierung \Jahr \KursEinheit \EinsendeTermin \ArtKuerzel \KopfZeile \ErsteZeile \ZweiteZeile \DritteZeile \AufgabenText Um alle Einstellungen dem Benuter zugänglich zu machen, gibt es viele Befehle, mit denen diverse

Umstellungen vorgenommen werden können. Sie setzen interne Makros auf die übergebenen Werte.

559 \def\kurskuerzel#1{\def\@kurskuerzel{#1}} \let\KursKuerzel\kurskuerzel
560 \def\kodierung#1{\def\@kodierung{#1}} \let\Kodierung\kodierung
561 \def\jahr#1{\def\@jahr{#1}} \let\Jahr\jahr
562 \def\KursEinheit#1{\def\@kurseinheit{#1}} \let\kurseinheit\KursEinheit
563 \def\EinsendeTermin#1{\def\@einsendetermin{#1}}
564 \let\einsendetermin\EinsendeTermin \let\Termin\EinsendeTermin
565 \def\ArtKuerzel#1{\def\@ArtKuerzel{#1}}
566 \def\Ueberschrift#1{\def\@Ueberschrift{#1}}
567 \let\KopfZeile\Ueberschrift
568 \def\ErsteZeile#1{\def\@ErsteZeile{#1}}
569 \def\ZweiteZeile#1{\def\@ZweiteZeile{#1}}
570 \def\DritteZeile#1{\def\@DritteZeile{#1}}
571 \def\AufgabenText#1{\def\AufgText{#1}}

Die unterschiedlichen Schreibweisen bestehen aus Kompatibilitätsgründen, werden jedoch in einer der nächsten Versionen nicht mehr unterstützt. Jetzt sind die Voreinstellungen zu treffen:

572 \KursKuerzel{??} \Kodierung{} \Jahr{\the\year}
573 \Termin{} \KursEinheit{}

\ps@myheadings Das nächste Projekt sind die verschiedenen Kopf- und Fußzeilendefinitionen. Zunächst der normale Seitenstil:

574 \def\ps@myheadings{%
575 \def\@oddhead{\parbox{\textwidth}
576 {\rm \@Ueberschrift \hfill \thepage\\
577 \rule[5mm]{\hsize}{1pt}}}
578 \def\@evenhead{\parbox{\textwidth}
579 {\rm \thepage \hfill \@Ueberschrift\\
580 \rule[5mm]{\hsize}{1pt}}}
581 \def\@oddfoot{}\def\@evenfoot{}}
582 \pagestyle{myheadings}

\ps@firstpage Dann eine besondere Definition für die erste Seite:

583 \def\ps@firstpage{%
584 \def\@oddhead{}\def\@evenhead{}
585 \def\@oddfoot{\parbox{\textwidth}
586 {\rule[-2mm]{\hsize}{1pt}
587 \hbox to \hsize{\footnotesize $\copyright$ \@jahr
588 \ Fernuniversit\"at --
589 Gesamthochschule -- in Hagen  \hfill  {\Large\bf\@kodierung}}}}
590 \let\@evenfoot\@oddfoot}

\Kurs Die Einstellung dazu wird automatisch mit der Überschrift vorgenommen, die seit jeher mit dem Befehl \Kurs{} aufgerufen wird:

591 \def\Kurs#1{\vspace*{-2cm}
592 \rule[1mm]{\hsize}{2.5pt}\\
593 {\large\bf #1} \\[4mm]
594 {\bf \@ErsteZeile}\\[2mm]
595 \ifx\@ZweiteZeile\empty\else
596 {\bf \@ZweiteZeile} \\[2mm]\fi
597 \ifx\@DritteZeile\empty\else
598 {\bf \@DritteZeile} \\[2mm]\fi
599 \rule[3mm]{\hsize}{2.5pt}\par
600 \thispagestyle{firstpage}}
601 \let\kurs\Kurs

\AufgStil \Aufgabe Wie immer muß alles einstellbar sein, auch das Aussehen der Aufgabenüberschriften. Hier die Initialisierung und die \penalty-Befehle zur Umbruchsteuerung an Aufgabengrenzen.

602 \def\AufgStil{\bf}
603 \def\Aufgabe#1 {\par
604 \addvspace{1cm plus 5mm}\addpenalty{-900}
605 {\AufgStil{\AufgText #1}}\par\addvspace{1mm}
606 \addpenalty{10000}}

607 ⟨/zsbx⟩

Index

Die kursiven Zahlen bezeichnen Seiten, auf denen der Befehl beschrieben wird, unterstrichene Zahlen kennzeichnen die Definition, alle anderen bezeichnen eine Benutzung des Makros.

Symbols

\! . . . . . . . . . . . . . . . . . . . . . . . 273 \" . . . . . . . . . 455, 457, 472, 475,

490, 493, 508, 511, 527, 529, 588 \, . . . . . . . . . 230, 236, 271, 318,

321, 322, 368, 371, 373, 377, 558 \/ . . . . . . . . . . . . . . . . 217, 218, 220 \; . . . . . . . . . . . . . . . . . . . 236, 323 \= . . . . . . . . . . . . . . . . . . . . . . . 284 \@@eqncr . . . . . . . . . . . . . . 383, 395 \@ArtKuerzel . . . . . . . . . . . 556, 565 \@DritteZeile . . . . . . . 570, 597, 598 \@ErsteZeile . . . . . . . . . . . 568, 594 \@LGS . . . . . . . . . . . . . . 397, 399, 404 \@Punkte . . . . . . . . . . . 549, 551, 552 \@Ueberschrift . . . . . . 566, 576, 579 \@ZweiteZeile . . . . . . . 569, 595, 596 \@arraycr . . . . . . . . . . . . . . . . . 405 \@arstrutbox . . . . . . . . . . . . . . . 401

\@beginparpenalty . . . . . . . . 44, 79

\@currentlabel . . . . . . . . . 171, 384

\@definecounter . . . . . . . . . . 96–98

\@depth . . . . . . . . . . . . . . . . . . . 403

\@einsendetermin . . . . . . . . . . .

432, 440, 448, 449, 465, 474, 483, 492, 501, 510, 520, 521, 563

\@empty . . . . . . . . . . . . . . . 448, 520 \@eqcnt . . . . . . . . 173, 175, 177, 383 \@eqnacr . . . . . . . 181, 367, 372, 379 \@eqncr . . . . . . . . . . . . 173, 382, 385 \@eqnsel . . . . . . . . . . . . . . 174, 386 \@eqnswfalse . . . . . . . . . . . 367, 372 \@eqnswtrue . . . . . . . . . 172, 365, 383 \@evenfoot . . . . . . . . . . . . 581, 590 \@evenhead . . . . . . . . . . . . 578, 584 \@height . . . . . . . . . . . . . . . . . . 402 \@ifstar . . . . . . . . . . . . . . . . . . 379 \@ignoretrue . . . . . . . . . . . . . . . 396 \@input . . . . . . . . . . . . . . . . . . . . . 5 \@itempenalty . . . . . . . . . . . . . . . 80 \@jahr . . . . . . . . . . . . . . . . 561, 587 \@kodierung . . . . . . . . . . . . 560, 589 \@kurseinheit 436, 446, 456, 557, 562 \@kurskuerzel . . . . . . . . . . 556, 559 \@oddfoot . . . . . . . . . . 581, 585, 590 \@oddhead . . . . . . . . . . . . . 575, 584 \@oldslash . . . . . . . . . . . . 216, 219 \@overslash . . . . . . . . . . . . 219, 222 \@pflushl . . . . . . 544, 547, 551, 552 \@seqncr . . . . . . . . . . . . . . . . . . 382 \@teilnumctr . . . . . . . . . . . . 110–112 \@teilnumdepth . . . . . . . 95, 108–110 \@toodeep . . . . . . . . . . . . . . . . . 108

\@totalleftmargin . . . . . . . . . . . 85

\@xeqnacr . . . . . . . . . . . . . 380, 381 \@yeqnacr . . . . . . . . . . . . . 379, 380 \[ . . . . . . . . . . . . . . . . . . . . 94, 366 \\ … 13, 173, 181, 233, 251, 253,

254, 281, 283, 367, 372, 385, 405, 576, 579, 592–594, 596, 598

\{ . . . . . . . . . . . . . . . . . . . 191, 201 \} . . . . . . . . . . . . . . . . 191, 202, 285 \] . . . . . . . . . . . . . . . . . . . . 94, 366 \| . . . . . . . . . . . . . . . . . . . . . . . 284

Numbers \0 . . . . . . . . . . . . . . . . . . . \underline{231}, 270

\␣ . . . . . . . . . . . . . . 43, 465, 474, 483, 492, 501, 510, 556, 557, 588

A

                                     \abovedisplayskip . . . . . . . . . . . 91

\active . . . . . . . . . . . . . . . 217, 220 \addpenalty . . . . . . . . . . 84, 604, 606 \addtolength . . . . . . . . . . . . . 36–38 \addtoversion … 129, 130, 132, 133 \ALLMAT . . . . . . . . . 12, \underline{344}, 359–361 \ALLMATf . . . . . . . . . . . . . . 345, 346 \ALLMATL . . . . . . . . . . . . . . . 12, \underline{357} \ALLMATR . . . . . . . . . . . . . . . 12, \underline{357} \alph . . . . . . . . . . . . . . . . . . . . . . 99 \AltMacroFont . . . . . . . . . . . . . . . 42 \AML . . . . . . . . . . . . . . . . . . 356, 357 \AMR . . . . . . . . . . . . . . . . . . 356, 358 \AMs . . . . . 12, 344, 348–350, 353, 359 \AMz . . . . . 12, 344, 346–348, 355, 359 \arabic . . . . . . . . . . . . 105, 363, 558

                                     \arrayrulewidth . . . . . . . . . . . . . 31

\arraystretch . . . . . 33, 75, 402, 403 \ArtKuerzel . . 444, 454, 462, 471,

480, 489, 498, 507, 516, 526, \underline{559} \atop . . . . . . . . . . . . . . . . . . . . . . 67 \Aufgabe . . . . . . . . . . . . . . . . . . \underline{602} \AufgabenText 451, 459, 468, 477,

486, 495, 504, 513, 523, 531, \underline{559} \AufgStil . . . . . . . . . . . . . . . . . \underline{602} \AufgText . . . . . . . . . . . . . 571, 605

B

                                     \baselinestretch . . . . . . 32, 63, 74

\bbigcap . . . . . . . . . . . . . . . . . . \underline{231} \bbigcup . . . . . . . . . . . . . . . . . . \underline{231} \bbigsqcap . . . . . . . . . . . . . . . . \underline{231} \bbigsqcup . . . . . . . . . . . . . . . . \underline{231} \begin . . . . . . . . . . . . . . . . . . . . . 51

                                     \belowdisplayskip . . . . . . . . . . . 92

\Betrag . . . . . . . . . . . . . . . . . . . 196 \betrag . . . . . . . . . . . . . . . . . 6, \underline{189} \bf . . . . . . . . . . . . 431, 432, 439,

440, 589, 593, 594, 596, 598, 602 \bgroup . . . . . . . . 174, 386, 400, 406 \bigsqcap . . . . . . . . . . . . . . . . . \underline{231} \binoppenalty . . . . . . . . . . . . . . 224 \bmod . . . . . . . . . . . . . . . . . . . . . 228 \Box . . . . . . . . . . . . . . . . . . . . . . 265 \braceld . . . . . . . . . . . . . . . . . . 206 \bracelu . . . . . . . . . . . . . . . . . . 212 \bracerd . . . . . . . . . . . . . . . . . . 206 \braceru . . . . . . . . . . . . . . . . . . 212 \Bruch . . . . . . . . . . . . . . . . . 11, \underline{231} \BS . . . . . . . . . . . . . . . . . . 288, 295 \buildrel . . . . . . . . . . . . . 248, 255

C \C . . . . . . . . . . . . . . . . . . . . . . . \underline{231} \c@equation . . . . . . . . . . . . . . . . 396 \cap . . . . . . . . . . . . . . . . . . . . . . 261 \cases . . . . . . . . . . . . . . . . . 13, \underline{180} \catcode . . . . . . . 217, 218, 220, 284 \cdot . . . . . . . . . . . . . . . . . . . . . 272 \closeout . . . . . . . . . . . . . . . . . . 20 \clubpenalty . . . . . . . . . . . . . . . . 78 \CodelineIndex . . . . . . . . . . . . . . 49 \const . . . . . . . . . . . . . . . . . . . . \underline{315} \copyright . . . . . . . . . . . . . . . . 587 \cr . . . . . . . . . . . . . . . . . . . 179,

233, 281, 283, 355, 381, 383, 394 \crcr 207–209, 213–215, 235, 281,

283, 369–371, 375–377, 410–412 \csname 111, 142, 143, 287, 290, 293, 297 \cup . . . . . . . . . . . . . . . . . . . . . . 262

D \d . . . . . . . . . . . . . . . . . . . . . . . \underline{315} \dachbin . . . . . . . . . . . . . . . . . . \underline{231} \dachrel . . . . . . . . . . . . . . . . . . \underline{231} \DCfamily . . . . . . . . . . 116, 128, 183 \DCfonts . . . . . . . . . . . 10, 12, 18, 22 \def@dqmacro . . . . . . . . . . . . 197–204 \defgleich . . . . . . . . . . . . . . . . \underline{231}

                                                                         \delimiterfactor . . . . . . . . . . . 168
                                                                         \delimitershortfall . . . . . . . . . 168
                                                                         \DisableCrossrefs . . . . . . . . . . . 46

\disp . . . . . . . . 10, \underline{231}, 374, 375, 408 \displaystyle . . . . . . . 175, 178,

209, 214, 269, 387, 389, 391, 393 \displaywidth . . . . . . . . . . 174, 386

                                                                         \dLeftrightarrow . . . . . . . . . . . \underline{231}
                                                                         \dLongleftrightarrow . . . . . . . . \underline{231}

\DocInput . . . . . . . . . . . . . . . . . . 52 \documentstyle . . . . . . . . . . . 24, 27 \doppelindex . . . . . . . . . . . . . . . . 67 \Doteq . . . . . . . . . . . . . . . . 250, 252 \doteq . . . . . . . . . . . . . . . . . . . . 249 \doublerulesep . . . . . . . . . . . . . . 31 \downarrow . . . . . . . . . . . . . . . . 326

                                                                         \downparentfill . . . . . . . . 205, 208

\dp . . . . . . . . . . . . . . . 334, 337, 403 \dps . . . . . . . . . . . . . . . . . . . 10, 269 \dpunktgleich . . . . . . . . . . . . . . \underline{231} \DritteZeile . 450, 458, 467, 476,

485, 494, 503, 512, 522, 530, \underline{559}

E \E . . . . . . . . . . . . . . . . . . . . . . . \underline{231} \e . . . . . . . . . . . . . . . . . . . . . . . 317 \Eckkl . . . . . . . . . . . . . . . . . . . . 195 \eckkl . . . . . . . . . . . . . . . . . . 6, \underline{189} \Eins . . . . . . . . . . . . . . . . . 553, 554 \EinsendeTermin . . . . . 444, 516, \underline{559}

                                                                         \einsendetermin . . . . . . . . . . . . 564

\EINSMAT . . . . . . . . . . . . . . . 12, \underline{359} \Einst . . . . . . . . . . . . . . . . 553, 554 \Ematrixx . . . . . . 346, 352, 355, 356 \empty . . . . . . . . . . 139, 465, 474,

483, 492, 501, 510, 557, 595, 597

\EnableCrossrefs . . . . . . . . . . . . 47

\end . . . . . . . . . . . . . . . . . . . . . . . 53 \endcases . . . . . . . . . . . . . . . . . 182 \endcsname . . . . . . . . . . . . . . . .

111, 142, 143, 287, 290, 293, 297 \endLGS . . . . . . . . . . . . . . . . . . . 411 \endlgs . . . . . . . . . . . . . . . . . . . 412 \endlist . . . . . . . . . . . . . . . . . . 114 \endmultieqn . . . . . . . . . . . . . . . 395 \endteile . . . . . . . . . . . . . . . . . 114 \entspricht . . . . . . . . . . . . . . . . \underline{231} environments:

LGS . . . . . . . . . . . . . . . . . . . . . 14 multieqn . . . . . . . . . . . . . . . . 14 teile . . . . . . . . . . . . . . . . . . . . 5

\eqnarray . . . . . . . . . . . . . . . . . \underline{171} \ErsteZeile . . 446, 456, 464, 473,

482, 491, 500, 509, 518, 528, \underline{559} \evensidemargin . . . . . 541, 543, 546 \expandafter . . . . . . . . . . . . . . .

… 142, 143, 287, 289, 293, 296

\extrarowheight . . . . . . . . . . . . . 30

F

\fbox . . . . . . . . . . . . . . . 88, 430, 438 \fboxrule . . . . . . . . . . . . . . . . . . 87 \fboxsep . . . . . . . . . . . . . . . . . . . 87 \fill . . . . . . . . . . . . . . . . . 265, 267 \fini . . . . . . . . . . . . . . . . . . 10, \underline{231} \finid . . . . . . . . . . . . . . . . . 10, \underline{231} \flqq . . . . . . . . . . . . . . . . . . . . . 203 \folgt . . . . . . . . . . . . . . . . . . . . \underline{231} \footnote . . . . . . . . . . . . . . . . . . 66 \footnotesize . . . . . . . 115, 550, 587 \footskip . . . . . . . . . . . . . . . . . 539 \Frei . . . . . . . . . . . . . . . . . . 10, \underline{366} \frenchspacing . . . . . . . . . . . . . . 83 \frqq . . . . . . . . . . . . . . . . . . . . . 204 \fuss . . . . . . . . . . . . . . . . . . . . . . 66

G

\gdw . . . . . . . . . . . . . . . . . . . . . . \underline{231} \gilt . . . . . . . . . . . . . . . . . . . . . 323

H

\halign . . . . . . . . 174, 281, 283, 386 \hbadness . . . . . . . . . . . . . . . . . . 71 \headheight . . . . . . . . . . . . . . . . 538 \headsep . . . . . . . . . . . . . . . . . . 538 \hfill . . 206, 212, 547, 576, 579, 589 \hglue . . . . . . . . . . . . . . . 85, 88, 89 \hsize . . . . . . . . . . . . . 430, 434,

441, 577, 580, 586, 587, 592, 599 \hskip . . . . . . . . . . . . . . . . 174, 386 \hspace . . . . . . . . . . . . . . . . 264–267

I

\i . . . . . . . . . . . . . . . . . . . . . . . \underline{315} \ialign . 207, 213, 234, 369, 374, 406 \IB . . . . . . . . . . . . . . . . . . . . 7, \underline{146} \IC . . . . . . . . . . . . . . . . . . . . . . 147 \ID . . . . . . . . . . . . . . . . . . . . . . 149 \IDMAT . . . . . . . . . . . . . . . . . 12, \underline{359} \IE . . . . . . . . . . . . . . . . . . . . . . 150 \IF . . . . . . . . . . . . . . . . . . . . . . 151 \if . . . . . . . . 9, 22, 46, 50, 407, 409 \ifmmode 167, 197–204, 219, 271, 272 \ifx . . . . . . . . . . 7, 121, 122, 126,

128, 139, 183, 225, 250, 287, 293, 448, 465, 474, 483, 492, 501, 510, 520, 554, 557, 595, 597

\IH . . . . . . . . . . . . . . . . . . . . . . 152 \II . . . . . . . . . . . . . . . . . . . . . . 153 \IK . . . . . . . . . . . . . . . . . . . . . . 154 \IL . . . . . . . . . . . . . . . . . . . . . . 155 \IM . . . . . . . . . . . . . . . . . . . . . . 156 \Imag . . . . . . . . . . . . . . . . . . . . . \underline{315} \IN . . . . . . . . . . . . . . . . . . . . 7, \underline{146} \input . . . . . . . . . . . . . 184, 186, 425 \int . . . . . . . . . . . . . . . . . . . . . . 240 \integral . . . . . . . . . . . . . . . 8, \underline{231} \IO . . . . . . . . . . . . . . . . . . . . . . 158 \IP . . . . . . . . . . . . . . . . . . . . . . 160 \IQ . . . . . . . . . . . . . . . . . . . . . . 161 \IR . . . . . . . . . . . . . . . . . . . . 7, \underline{146} \IT . . . . . . . . . . . . . . . . . . . . . . 164 \it . . . . . . . . . . . . . . . . . . . . . . 550 \IZ . . . . . . . . . . . . . . . . . . . . . . 165

J

\Jahr . . . . . . . . . . . . . . . . . \underline{559}, 572 \jahr . . . . . . . . . . . . . . . . . . . . . 561 \jot . . . . . . . . . . . . . . . . . . 381, 400

K

\kern . . . . . . . . . . . 146–165, 208,

215, 245, 342, 370, 371, 376, 377 \Kodierung . . . . . . . . . . . . \underline{559}, 572 \kodierung . . . . . . . . . . . . . . . . 560 \KopfZeile . . . . . . . . . . . . . . . . \underline{559} \Kurs . . . . . . . . . . . . . . . . . . . . . \underline{591} \kurs . . . . . . . . . . . . . . 429, 433, 601 \KursEinheit . . . . . . . . . . . . . . .

… 444, 454, 516, 526, \underline{559}, 573 \kurseinheit . . . . . . . . . . . . . . . 562 \KursKuerzel . . . . . . . . . . . \underline{559}, 572 \kurskuerzel . . . . . . . . . . . . . . . 559

L

\labelsep . . . . . . . . . . . . . . . . . 112 \labelteilnumi . . . . . . . . . . . . . 101

\labelteilnumii . . . . . . . . . . . . 104
\labelteilnumiii . . . . . . . . . . . 107

\labelwidth . . . . . . . . . . . . . . . . 113 \LARGE . . 259–262, 333, 336, 339, 341 \Large . . . . . . . . . . . . . 258, 435, 589 \large . . . . . . . . . . . . . . . . . . . . 593 \LAsonder . . . . . . . . . . . . . . . . . \underline{429} \LBreite . . . . . . . . . . . . . . . . . . 536 \LDA . . . . . . . . . . . . . . . . . . . 12, \underline{324} \lda . . . . . . . . . . . . . . . . . . . 12, \underline{324} \leaders . . . . . . . . . . . . . . 206, 212 \leavevmode . . . . . . . . . . . . 551, 552 \leerz . . . . . . . . . . . . . . . . . . 62, 64 \Left . . . . . . . . . . . . . . . . . . . . . 169 \left . . . . . 6, 169, 189–194, 197,

199, 201, 203, 326, 327, 356, 378 \Leftarrow . . . . . . . . . . . . . . . . 239 \leftarrowfill . . . . . . . . . . . . . 325 \leftmargin . . . . . . . . . . . . . . . . 112

\Leftrightarrow . . . . . . . . 237, 253

\lfolgt . . . . . . . . . . . . . . . . . . . \underline{231} \LGS . . . . . . . . . . . . . . . . . . . . . . \underline{397} LGS (environment) . . . . . . . . . . . . . 14 \lgs . . . . . . . . . . . . . . . . . . . . . . \underline{397} \LGSf . . . . . . . . . . . . . . . . . . 398–400 \limits 209, 215, 240, 276, 279, 328, 329 \lineskip . . . . . . . . . . . . . 232, 397 \lineskiplimit . . . . . . . . . . . . . 232 \linewidth . . . . . . . . . . . . . . 86, 88 \list . . . . . . . . . . . . . . . . . . . . . 111 \LLA . . . . . . . . . . . . . . . . . . . 12, \underline{324} \lla . . . . . . . . . . . . . . . . . . . 12, \underline{324} \llap . . . . . . . . . . . . . . 179, 330, 331 \long . . . . . . . . . . . . . . . . . . 84, 115

\Longleftrightarrow . . . . . . . . . 254

\LRA . . . . . . . . . . . . . . . . . . . 12, \underline{324} \lra . . . . . . . . . . . . . . . . . . . 12, \underline{324} \LUA . . . . . . . . . . . . . . . . . . . 12, \underline{324} \lua . . . . . . . . . . . . . . . . . . . 12, \underline{324} \lz . . . . . . . . . . . . . . . . . . . . . . . 64

M

\m@ne . . . . . . . . . . . . . . . . . . . . . 396 \m@th . . . . . . . . . . . . . . . . . . 172,

205, 211, 235, 368, 373, 385, 400 \MacroIndent . . . . . . . . . . . . . . . . 43 \makeatletter . . . . . . . . . . . . . 5, 44 \makeatother . . . . . . . . . . . . . . 5, 44 \makelabel . . . . . . . . . . . . . . . . 113

\makeslashactive . . . . . . . 217, 221
\makeslashother . . . . . . . . 218, 223

\marg . . . . . . . . . . . . . . . . . . . . . \underline{115} \marginpar . . . . . . . . . 115, 551, 552 \marginparpush . . . . . . . . . . . . . . 40 \marginparsep . . . . . . . . . . 428, 540 \marginparwidth . . . . . . 39, 428, 540 \mathbin …. 228, 241, 242, 246, 319 \mathchoice . . . . . . . . . . . . 117, 236 \mathclose . . . . . . . . . . . . . . . . 257 \matherahmen . . . . . . . . . . . . . . 6, \underline{91} \mathinner . . . . . . . . . . . . . . . . 342 \mathop . . 207, 213, 258–262, 275,

278, 290, 297, 315, 316, 328, 329 \mathopen . . . . . . . . . . . . . . . . . 257 \mathord . . . . . . . . . . . 320, 326, 327 \mathrel . . . . . . . 231, 247, 274, 277 \mathrm . . . . . . . . . . . . . . . . 123,

137, 255, 271, 290, 297, 315–320 \Mathsf . . . . . \underline{116}, 147, 158, 161, 167 \mathsf . . . . . . . . . . . . . . . . . . . \underline{116} \mathstrut . . . . . 370, 371, 376, 377 \Matrix . . . . . . . . . . . . . . . . 10, \underline{367} \matrix . . . . . . . . . . . . . 10, 356, \underline{367} \medmuskip . . . . . . . . . . . . 228, 229 \Mengen . . . . . . . . . . . . . . . . 140,

142, 146, 149–157, 160, 163–165 \Mengenzeichen . . . . . . . . . . . 7, \underline{138} \Mengkl . . . . . . . . . . . . . . . . . . . 195 \mengkl . . . . . . . . . . . . . . . . . 6, \underline{189} \midbox . . . . . . . . . . . . . . . 242, 243 \MitBesch . . . . . . . . . . . . . . . 14, 19 \mkern . . . . . . . . . . 228–230, 342, 343 \mod . . . . . . . . . . . . . . . . . . . . . . \underline{315} \mr . . . . . . . . . . . . . . . . . . . . . . \underline{137} \Msf . . . . . . . . . . . . 118–121, 140, 143 \mskip . . . . . . . . . . . . . . . . 228, 229 \multieqn . . . . . . . . . . . . . . . . . \underline{382} multieqn (environment) . . . . . . . . 14

N

\newmathalphabet . . . . . . . . . . . 127

\newmop . . . . . . . . . . . . . . . . . 9, \underline{284} \newmopnl . . . . . . . . 9, \underline{284}, 302–311 \newread . . . . . . . . . . . . . . . . . . . . 6 \nextfnum . . . . . . . . . . . . . . 13, \underline{364} \noalign . . . . . . . . . . . . . . . 208,

215, 233, 370, 371, 376, 377, 381

\nointerlineskip . . . . . . . 208, 215

\nolimits . . . . . . . . . . . . . . . . . 297 \nomathbreaks . . . . . . . . . . . . . . \underline{224} \nonumber . . . . . . . . . . 365, 382, 395 \nopagebreak . . . . . . . . . . . 264, 266 \noquickover . . . . . . . . . . . . . . . \underline{223} \Norm . . . . . . . . . . . . . . . . . . . . . 196 \norm . . . . . . . . . . . . . . . . . . . 6, \underline{189} \normalbaselines 82, 280, 282, 368, 373

\normallineskip . . . . . . . . . . . . . 81
\normallineskiplimit . . . . . . . . . 81
\normalmarginpar . . . . . . . . . . . 542

\normalsize . . . . . . . . . . . . 118, 119 \null . . . . . . . . . . . . . . . . . 368, 373 \NULLMAT . . . . . . . . . . . . . . . 12, \underline{359} \Nullol . . . . . . . . . . . . . . . . 11, \underline{332} \Nullor . . . . . . . . . . . . . . . . 11, \underline{332} \Nullul . . . . . . . . . . . . . . . . 11, \underline{332} \Nullur . . . . . . . . . . . . . . . . 11, \underline{332} \nurkasten . . . . . . . . . . . . . . . . \underline{429} \nz . . . . . . . . . . . . . . . . . . . . . . . 65

O

\Obda . . . . . . . . . . . . . . . . . . . . . 322 \obda . . . . . . . . . . . . . . . . . . . . . 321 \oddsidemargin … 38, 541, 543, 546 \OE . . . . . . . . . . . . . . . . . . 166, 167 \old@cases . . . . . . . . . . . . 180, 181 \oldOE . . . . . . . . . . . . . . . . 166, 167

\OnlyDescription . . . . . . . . . . . . 50

\openout . . . . . . . . . . . . . . . . . . . 16 \openup . . . . . . . . . . . . . . . . . . . 400 \operator@font . . 225, 226, 228, 230 \Ourel . . . . . . . . . . . . . . . . . 10, \underline{274} \ourel . . . . . . . . . . . . . . . . . 10, \underline{274} \over . . . . . . . . . . . . . . 219, 248, 255 \overparent . . . . . . . . . . . . . . 7, \underline{205}

\overrightarrow . . . . . . . . . . . . 268

P

\p@enumi . . . . . . . . . . . . . . . . . . 100 \p@enumii . . . . . . . . . . . . . . . . . 103 \p@enumiii . . . . . . . . . . . . . . . . 106 \pagestyle . . . . . . . . . . . . . 41, 582 \par . . . . . . . . . . . . . . 62, 65, 84,

89, 265, 267, 441, 599, 603, 605 \paranorm . . . . . . . . . . . . . . . . . \underline{231} \parbox . . . . . . . . . 88, 575, 578, 585 \parindent . . . . . . . . . . . . . . 34, 73 \parskip . . . . . . . . . . . . . . . . 35, 73 \partopsep . . . . . . . . . . . . . . . . . 93 \phantom . . . . . . . . . . . . . . . . . . 270 \Pmatrix . . . . . . . . . . . . . . . 10, \underline{367} \pmatrix . . . . . . . . . . . . . . . 10, \underline{367} \pmod . . . . . . . . . . . . . . . . . . . . . 230 \ps@firstpage . . . . . . . . . . . . . . \underline{583} \ps@myheadings . . . . . . . . . . . . . \underline{574} \Punkt . . . . . . . . . . . . . . . . . 15, \underline{551} \Punkte . . . . . . . . . . . . . . . . 15, \underline{551} \Punktelinks . . . . . . . . . . . . . . . \underline{542} \Punkterechts . . . . . . . . . . . . . . \underline{542} \Punktetyp . . . . . . . . . . . . . . . . \underline{549} \punktgleich . . . . . . . . . . . . . . . \underline{231}

Q \quad . . . . . . . . . . 236, 263, 369, 374 \quickover . . . . . . . . . . . . . . . . \underline{216}

R \raggedbottom . . . . . . . . . . . . 45, 72 \rahmen . . . . . . . . . . . . . . . 6, \underline{84}, 91 \raise . . . . . . . . . . . . . . . . 342, 343 \rdots . . . . . . . . . . . . . . . . . 12, \underline{342} \Real . . . . . . . . . . . . . . . . . . . . . \underline{315} \RecordChanges . . . . . . . . . . . . . . 48 \relpenalty . . . . . . . . . . . . . . . . 224 \Relst . . . . . . . . . . . . . . . . 276, 282 \relst . . . . . . . . . . . . . . . . 279, 280 \renewcommand . . . . . . . 32, 33, 74, 75

                                     \reversemarginpar . . . . . . . . . . 545

\Right . . . . . . . . . . . . . . . . . . . . 170 \right …. 6, 170, 189–194, 198,

200, 202, 204, 326, 327, 356, 378 \Rightarrow . . . . . . . . . . . . . . . . 238

                                     \rightarrowfill . . . . . . . . . . . . 324

\rlap . . . . . . . . . . . . . . . . . 330, 331 \rm . . . . . . . . . 43, 123, 226, 576, 579 \rmdefault . . . . . . . . . . . . 128, 183 \roman . . . . . . . . . . . . . . . . . . . . 102 \romannumeral . . . . . . . . . . . . . . 110 \rule … 441, 577, 580, 586, 592, 599 \Rundkl . . . . . . . . . . . . . . . . . . . 195 \rundkl . . . . . . . . . . . . . . . . . 6, \underline{189}

S \scriptsize . . . . . . . . . . . . . 43, 120 \scriptstyle . . . . . . . . . . . . . . . 281 \seigleich . . . . . . . . . . . . . . . . 248 \seigleichh . . . . . . . . . . . . . . . . \underline{231} \selectfont . . . . . . . . . . . . 121, 122 \setlength … 34, 35, 39, 40, 73, 81 \setlongtables . . . . . . . . . . . . . . 29 \settowidth . . . . . . . . . . . . . . . . . 43 \small . . . . . . . . . . . . . . . . . . . . . 42 \Spitzkl . . . . . . . . . . . . . . . . . . 196 \spitzkl . . . . . . . . . . . . . . . . 6, \underline{189} \sqcap . . . . . . . . . . . . . . . . 258, 259 \sqcup . . . . . . . . . . . . . . . . . . . . 260 \SRelation . . . . . . . . . . . . . . . . \underline{231} \stepcounter . . . . . . . . . . . 171, 384 \strut . . . . . . . . . . . . . . . . . . . . 406 \strutbox . . . . . . . . . . . . . 402, 403

T \tabskip . . . . . . . . . . . 173, 175,

178, 179, 385, 387, 389–391, 394 \teile . . . . . . . . . . . . . . . . . . . . . \underline{95} teile (environment) . . . . . . . . . . . . 5 \teilt . . . . . . . . . . . . . . . . . . . . \underline{231} \teiltn . . . . . . . . . . . . . . . . . . . \underline{231} \temp . . . . . . . . . . . . . . . . . 138, 139 \Termin . . . . . . . . . . . . . . . 564, 573 \Text . . . . . . . . . . . . . . . . . . . 9, \underline{231} \textheight . . . . . . . . . . 36, 427, 535 \textstyle . . . . . . . . . . . . 328, 329 \textwidth 427, 535, 536, 575, 578, 585 \theequation …. 171, \underline{363}, 364, 384 \thepage . . . . . . . . . . . \underline{556}, 576, 579 \theteilnumi . . . . . . . . . . . . 99–101 \theteilnumii . . . . . . . . . . . 102–104 \theteilnumiii . . . . . . . . . . 105–107 \thispagestyle . . . . . . . . . . . . . 600 \tiny . . . . . . . . . . . . . . . . . . . . . 121 \tolerance . . . . . . . . . . . . . . . . . 70 \topmargin . . . . . . . . . . . . . 37, 537 \topsep . . . . . . . . . . . . . . . . . . . . 93 \triangle . . . . . . . . . . . . . . . . . 267 \tt . . . . . . . . . . . . . . . . . . . . . . . 42 \typein . . . . . . . . . . . . . . . 8, 12, 14

U \Ueberschrift . . . . . . . . . . . . . .

… 445, 455, 463, 472, 481, 490, 499, 508, 517, 527, 566, 567

\undefined . . . . . . . . . . . . . . . .

. 7, 121, 122, 126, 182, 225, 250 \underparent . . . . . . . . . . . . . 7, \underline{211} \uparrow . . . . . . . . . . . . . . . . . . 327 \upparentfill . . . . . . . . . . 211, 215 \UPTeX . . . . . . . . . . . . 7–9, 17, 46, 50 \usecounter . . . . . . . . . . . . . . . . 112

V \vcenter …. 231, 235, 258–262,

275, 278, 326, 327, 368, 373, 400 \vek . . . . . . . . . . . . . . . . . . . 10, \underline{231} \Vert . . . . . . . . . . . . . . . . . . . . . 193 \vert . . . . . . . . . . . . . . 192, 241, 242 \vglue . . . . . . . . . . . . . . . . . . 88,

89, 275, 278, 430, 432, 438, 440 \vphantom . . . . . . . . . . . . . . . . . 273 \vquad . . . . . . . . . . . . . . . . . 236–239 \vskip . . . . . . . . . . . . . . . . 233, 381 \vspace . . . . . . . . . . . . . . . . 63, 591 \vss . 326, 327, 333, 336, 339, 341, 366 \vtop . . . . . . . . . . . . . . . . . . . . . 213

W \widebow . . . . . . . . . . . . . . . . . . 210 \widehat . . . . . . . . . . . . . . 246, 247 \widowpenalty . . . . . . . . . . . . . . . 78 \withnumber . . . . . . . . . . . . . 13, \underline{365}

X \xdef . . . . . . . . . . . . . . . . . 352, 355

Y \year . . . . . . . . . . . . . . . . . . . . . 572

Z \zsbi . . . . . . . . . . . . . . . . . 6, 16–20 \ZweiteZeile . 447, 457, 466, 475,

484, 493, 502, 511, 519, 529, \underline{559}

Änderungen

v3.0

(allgemein): Anpassung an dclfont.sty (‘rmdefault) 23

Dokumentiert mit den Doc/Docstrip-Makros. . . . . 1 v3.1a

(allgemein): Driver-Datei eingesetzt . . . . . . . . . . . 19 Makros speziell für Zettel geDOCed . . . . . . . . . . 31 Steuerdateien in die DOC-Datei aufgenommen . . 29 zsbzeich.sty in zsb.sty integriert . . . . . . . . . . . . . 23

v3.1d

\Aufgabe: Penalty vor Aufgaben von −400 auf −900

erniedrigt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 v3.1e

(allgemein): ‘LBreite für Aufgaben ohne Punkte am

Rand eingefügt. . . . . . . . . . . . . . . . . . . . . . . . . 31 v3.1f

(allgemein): ‘vquad-Befehl hinzugefügt und ‘gdw etc.

angepaßt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 v3.1g

(allgemein): Dokumentation angepaßt. . . . . . . . . . . 1 v3.1h

\lgs: Makro in ZSB.DOC integriert. . . . . . . . . . . . 28 v3.1i

(allgemein): In changes ‘bslash durch ”‘“ ersetzt. … 1 v3.1j

(allgemein): ‘ALLMAT erhält optionalen Parameter. 1 v3.1k

\lgs: Makro wurde in alle Styles übernommen. Korri-

giert. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 v3.2

(allgemein): Neue Installation, Copy, Dokumentati-

on. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 v3.2b

(allgemein): Installation korrigiert. . . . . . . . . . . . . . 1 v3.2d

\teiltn: Vollkommen neue Positionierung. . . . . . . . 25 v3.2e

\overparent: Neu aufgenommen. . . . . . . . . . . . . . . 24 \underparent: Neu aufgenommen. . . . . . . . . . . . . . 24

v3.2f \nomathbreaks: Neu aufgenommen. . . . . . . . . . . . . 24 \noquickover: Neu aufgenommen. . . . . . . . . . . . . . 24 \quickover: Neu aufgenommen. . . . . . . . . . . . . . . . 24