ClassDoc.sty

Version 5.x

Anwenderhandheft

Dokumentationsausgabe 3

Tim Wittrock Institut für Datenverarbeitungsanlagen

9. Juni 1997

Einleitung

Das Style-File ClassDoc.sty dient zur einfachen und einheitlichen Dokumentation von Klassen und Methoden. Es wird zusätzlich zum Dokumentstil (article, book, report…) geladen, nimmt einige grundsätzliche Einstellungen vor und stellt mehrere neue Befehle und Umgebungen zur Verfügung.

Sollte es nach der Lektüre dieses Hilfetextes noch offene Fragen zu ClassDoc.sty geben, so sollten diese an tim@ida.ing.tu-bs.de gerichtet werden. Dieselbe Adresse gilt für Verbesserungsvorschläge, Hinweise für Ergänzungen etc.

Dieses Style-File sollte es ermöglichen, vollkommen ohne TEX-Befehle zur Schriftartänderung oder Erzeugung von Überschriften auszukommen. Sollte dennoch ein Fall auftreten, in dem dies nicht so ist, bitte ich um eine kurze Mitteilung. Ich werde dann versuchen, einen geeigneten Befehl zur Verfügung zu stellen. Dieses Verfahren ist nötig, um einheitliches Aussehen zu erhalten und eventuell später nötig werdende Layout-Änderungen leicht durchführen zu können (also möglichst nichts in den einzelnen Doku-Files geändert werden muß). Mit diesem Style-File sollte es auf diese Weise möglich sein, dieselben TEX-Textfiles für die institutsinterne Programmdokumentation als auch für Studien- und Diplomarbeiten zu benutzen.

ClassDoc.sty wurde mittels docstrip.tex aus ClassDoc.doc (einer etwas ausführlicher kommentierten Version des Style-Files) gewonnen.

Inhaltsverzeichnis

1 Bevor es losgeht… 5

2 Voreinstellungen 5 2.1 Seitenstil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 Art der Überschriften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3 Ausdruck der History unterdrücken . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.4 Automatische Eintragungen in den Index . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.5 Kurz-Zusammenfassung der Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3 Umgebungen 7 3.1 TabDescript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.2 Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.2.1 Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.3 DataDescript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3.3.1 \More . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.3.2 Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.4 PseudoCode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.4.1 \While {<Bedingung>} <Text> \EndWhile . . . . . . . . . . . . . . . . . . 9 3.4.2 \For {<Bedingung>} <Text> \EndFor . . . . . . . . . . . . . . . . . . . . . 10 3.4.3 \Repeat <Text> \Until {<Bedingung>} . . . . . . . . . . . . . . . . . . . . 10

3.4.4 \If {<Bedingung>} <Text> \Elsif {<Bedingung>} <Text> \Else

<Text> \EndIf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.4.5 \Switch [<Ausdruck>] \Case {<Bedingung>} <Text> \Default

<Text> \EndSwitch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.4.6 \Mark [<Label>] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.4.7 Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.5 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.5.1 \MethodHead{<Typ>}{<Name (<Parameterliste>)>...}{<Beispiel>} . . 12
3.5.2 \Constructor{<Name (<Parameterliste>)>...}{<Beispiel>} . . . . . . 12
3.5.3 \Destructor{<Name (<Parameterliste>)>...}{<Beispiel>} . . . . . . . 12
3.5.4 \Method{<Name (<Parameterliste>)>...}{<Beispiel>} . . . . . . . . . . 13
3.5.5 \Function{<Name (<Parameterliste>)>...}{<Beispiel>} . . . . . . . . 13

3.5.6 \ClassDescript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.5.7 \MethodDescript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.5.8 \ConstDescript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.5.9 \DefineDescript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.5.10 \VarDescript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.5.11 \StructDescript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.5.12 \GlobalFunctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.5.13 \InternalStruct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.5.14 \Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.5.15 \Public . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.5.16 \Private . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.5.17 \Extern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.5.18 \Protected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.6 Beispielklasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4 Allgemein verwendbare Kommandos 15

4.1 Kurz & klein . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.1.1 \Tilde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.1.2 \ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.1.3 \Bslash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.1.4 \Degree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.1.5 \postscript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

4.2 Texthervorhebungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

4.2.1 \Important{<Wichtige Information>} . . . . . . . . . . . . . . . . . . . . . 16 4.3 Überschriften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.3.1 \ClassSection{<Titel>} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.3.2 \SubClassSection{<Titel>} . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.3.3 \SubSubClassSection{<Titel>} . . . . . . . . . . . . . . . . . . . . . . . . . 17

5 Manipulationsmöglichkeiten 17

5.1 \DataDescrHead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 5.1.1 Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

6 Fehler, Warnungen und sonstiger Unrat 17 6.1 overfull \hbox in der History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

6.2 Use of \JumpOver doesn't match its definition . . . . . . . . . . . . . . . . . . 18

6.3 There's no line here to end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

6.4 Paragraph ended before \NameParam was complete . . . . . . . . . . . . . . . . . . 18
6.5 Something's wrong-perhaps a missing \item . . . . . . . . . . . . . . . . . . . . . 18
6.6 Paragraph ended before \@settodim was complete. . . . . . . . . . . . . . . . . . 18
6.7 Paragraph ended before \idxLast was complete. . . . . . . . . . . . . . . . . . . 18
6.8 Argument of \@caption has an extra }. . . . . . . . . . . . . . . . . . . . . . . . . 18

6.9 Leerzeilen oder -zeichen in Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 6.10 Unsinniger Seitenumbruch bei Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . 19 6.11 Unerwünschte description-ähnliche Formatierung in der History . . . . . . . . . . . 19 6.12 Falsche Parameteranzahl in der Kurzübersicht . . . . . . . . . . . . . . . . . . . . . . . 19 6.13 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

7 Bugs und anderes Ungeziefer 20 7.1 Doppelter Fußnotentext in Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 7.2 Methoden-Überschrift ragt über den Rand hinaus . . . . . . . . . . . . . . . . . . . . . 20 7.3 Zu geringer Zeilenabstand in der Methodenüberschrift zwischen zwei Methoden …. 20 7.4 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 7.5 Probleme mit dem automatischen Seitenumbruch in Tabellen . . . . . . . . . . . . . . 20 7.6 Probleme mit L^{A}TEX2e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 7.7 Probleme mit dem Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 7.8 Allgemein . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

8 Überblick über alle verwendbaren ClassDoc.sty-Befehle 22

\underline{5}

1 Bevor es losgeht…

Um ein einheitliches Aussehen der Dokumentation zu gewährleisten, sollten soweit wie möglich keine Schriftartbefehle verwendet werden, die nicht aus ClassDoc.sty stammen. Wenn es ClassDoc-Befehle oder Umgebungen gibt, die für die benötigte Aufgabe vorgesehen sind, dann müssen sie auch verwendet werden, selbst wenn sie nicht ganz dem Geschmack des Benutzers entsprechen.

Es steht dem Anwender von ClassDoc.sty frei, falls ihm die vorgegebenen Formatierungen, Schriftarten, Überschriften o.Ä. absolut nicht zusagen, eine eigene modifizierte Kopie von ClassDoc.sty zu benutzen, welche ein ansprechenderes Resultat erzeugt. Die Schnittstelle muß jedoch beibehalten werden. Für diese Zwecke steht auch eine etwas ausführlicher kommentierte Version des Style-Files zur Verfügung (ClassDoc.doc), aus der mittels docstrip.tex auch ClassDoc.sty gewonnen wurde.

2 Voreinstellungen

2.1 Seitenstil

ClassDoc.sty definiert den Seitenstil linedheadings, der eine unterstrichene Kopfzeile mit Abschnittsnummer und -titel auf der Innenseite und der Seitennummer auf der Außenseite. Die Fußzeile ist leer.

Dieser Seitenstil ist gleichzeitig der Standard-Stil von ClassDoc.sty.

2.2 Art der Überschriften

ClassDoc.sty ist seit Version 3.1 sehr flexibel einsetzbar: Die Klassenüberschriften können wahlweise als \sections oder \subsections gesetzt werden (bei Bedarf kann ich auch weitere Möglichkeiten implementieren), die Unterabschnitte werden entsprechend angepaßt. Dazu dient der Befehl \SetClassDepth{<ZAHL>}, wobei <ZAHL> die Summe der folgenden Werte ist:

Klassenüberschrift  \section  1

                                           \subsection  2

Abschnitte numeriert Klasse  0
bis einschliesslich  Beschreibungen 4
Privat/Öffent.  8
Im Inhaltsverzeichnis Klasse  0
aufgeführt bis  Beschreibungen 16
Privat/Öffent. 32

Möglich sind davon allerdings nicht alle Kombinationen (nicht numerierte Abschnitte können nicht im Inhaltsverzeichnis aufgeführt werden), sondern nur 1, 2, 5, 6, 9, 10, 21, 22, 25, 26, 41, 42. Bei allen anderen Werten wird die Einstellung nicht verändert. Standardeinstellung ist \SetClassDepth{10}.

Die durch \SetClassDepth vorgenommenen Einstellungen ermöglichen nur die Unterdrückung der eventuell durch die aktuellen Einstellungen von secnumdepth und tocdepth standardmäßig vorgenommenen Numerierung bzw. Auflistung im Inhaltsverzeichnis. Durch secnumdepth und tocdepth unterdrückte Numerierungen bzw. Auflistungen werden nicht verändert.

2.3 Ausdruck der History unterdrücken

Bei Verwendung in einer Studien- oder Diplomarbeit kann eine History (sowie das Datum in der Kopfzeile) stören. In diesem Fall sollte der Befehl \NoHist im Text umdefiniert werden:

\setcounter{NoHist}{1}: unterdrückt die History \setcounter{NoHist}{0}: druckt die History (default)

2.4 Automatische Eintragungen in den Index

Dies ist die eigentliche Neuerung im ClassDoc-Stylefile. Durch die beiden Zähler IdxDeclareDepth und IdxRefDepth kann bestimmt werden, welche ClassDoc-Style-Kommandos (Deklaration bzw. Erwähnung von Namen) automatisch Index-Einträge erzeugen sollen.

IdxDeclareDepth Kommando/Umgebung  Index-Eintrag
≥ 1  Class  Klassenname
≥ 2  \MethodHead  Methodenname
≥ 3  Define-Eintrag in DataDescript  Define
≥ 4  Datentyp-Eintrag in DataDescript  Datentyp
≥ 5  Konstanten-Eintrag in DataDescript Konstantenname
≥ 6  Variablen-Eintrag in DataDescript  Variablenname

Der Default-Wert für IdxDeclareDepth ist 4. Die Seitenangaben werden in der durch \IndexDeclareStyle bestimmten Schriftart (eins der weiter unten aufgeführten Kommandos für Texthervorhebungen ohne Backslash (’\’)) im Index aufgeführt (Default: EM).

IdxRefDepth Kommando Index-Eintrag
≥ 1  \CR  Klassenname
≥ 2  \MR  Methodenname
≥ 3  \TN  Datentyp-Name
≥ 4  \VN  Variablenname

Der Default-Wert für IdxRefDepth ist 2. Die Seitenangaben werden in der durch \IndexRefStyle bestimmten Schriftart (eins der weiter unten aufgeführten Kommandos für Texthervorhebungen ohne Backslash (’\’)) im Index aufgeführt (Default: Standard-Schrift).

Damit das Index-File auch tatsächlich erzeugt wird, ist muß am Anfang des Dokuments der Befehl \makeindex stehen. Dieses Index-File sollte mit makeindex <Dokumentname> aufbereitet werden. Das aufbereitete Index-File kann dann einfach mit \input {<Dokumentname>.ind} in den Text eingebunden werden.

2.5 Kurz-Zusammenfassung der Klassen

Alle  Klassennamen,  Basisklassen,  öffentliche  und

geschützte Methoden werden im File <Filename>.cof gespeichert. Diese Zusammenfassung kann

mit dem Kommando \ ClassOverview(<Ersatzüberschrift>)[<Ersatzfilename>] ausgegeben

werden.

Beide Parameter sind optional. Es dürfen sowohl beide als auch nur einer von beiden fehlen. Natürlich dürfen auch beide gleichzeitig angegeben werden. Wichtig ist die verwendung der richtigen Klammern: Runde Klammern für die Ersatzüberschrift, eckige für den Ersatzfilenamen. Werden beide Parameter verwendet, so ist die Reihenfolge einzuhalten!

In runden Klammern kann eine Überschrift angegeben werden, welche die Standard-Überschrift ersetzt. Der Überschriftbefehl selbst kann nicht angegeben werden.

Durch die Angabe von <Ersatzfilename> (mit Extension!) wird das angegebene File anstelle des bei jedem Durchlauf neu erzeugten Files <Filename>.cof für die Klassenübersicht verwendet.

Das neu erzeugte File kann nur nach der letzten Klassenbeschreibung gelesen werden. Soll die Kurzzusammenfassung vorher ausgegeben werden, so muß das entsprechende Übersichtsfile kopiert und diese Kopie gelesen werden (durch Angabe des Filenamen im zweiten Parameter).

Ausgegeben werden (an der Stelle, an der \ClassOverview [<Ersatzfilename>] auftritt) Der Klassenname, ggf. gefolgt von einer Kurzbeschreibung der Klasse (dies ist der optionale Parameter hinter dem Klassennamen in der Umgebung Class), danach die Basisklasse(n) und abschließend öffentliche (public) und geschützte (protected) Methoden. Hinter den Methodennamen wird in Klammern die Anzahl der von ihnen benötigten Parameter ausgegeben.

3 Umgebungen

3.1 TabDescript

Die Umgebung TabDescript erzeugt eine zweispaltige Liste, deren erste Spalte in der durch den [optionalen] ersten Parameter angegebenen Schriftart gedruckt wird und so breit ist wie der Text des (unbedingt) anzugebenden Parameters (Sollte ein Eintrag der ersten Spalte länger sein, so wird dieser automatisch umbrochen.

Fehlt der optionale Parameter, so wird die erste Spalte der Liste in Fettschrift gedruckt. Ist der optionale Parameter vorhanden und leer (sind also die eckigen Klammern zwar angegeben, dazwischen jedoch kein Text), so wird die Schriftart der ersten Spalte nicht verändert. Der optionale Parameter kann sowohl einen Standard-Schriftart-Befehl enthalten als auch eins der weiter unten (in 4.2) angegebenen Kommandos (hier ohne Parameterangabe - der Text ist ja variabel) enthalten (der \ item-Befehl kann mit beiden Typen arbeiten).

Die Einträge der ersten Spalte werden automatisch mit einem fettgedruckten Doppelpunkt abgeschlossen.

TabDescript ist abgeleitet von der Umgebung description, aus diesem Grunde wird der Text der ersten Spalte durch den \item-Befehl erzeugt:

\begin{TabDescript}{l"angstes Label}
\item[Label1] Dieses Label
  ist ein Beispiel-Label
\item[kurz] Dieses Label
  ist das k"urzeste
\item[l"angstes Label] dies
  ist das l"angste Label. Damit es
  komplett in die erste Spalte
  pa"st, mu"s es als Parameter
  der \IO{TabDescript}-Umgebung
  angegeben werden
\end{TabDescript}

Label1: Dieses Label ist ein Beispiel-Label kurz: Dieses Label ist das kürzeste längstes Label: dies ist das längste Label. Da-

mit es komplett in die erste Spalte paßt, muß es als Parameter der TabDescript-Umgebung angegeben werden

\begin{TabDescript}[\large\KW]
  {l"angstes Label}
\item[Label1] Dieses Label
  ist ein Beispiel-Label
\item[kurz] Dieses Label
  ist das k"urzeste
\item[l"angstes Label] dies
  ist das l"angste Label.
\end{TabDescript}

Label1: Dieses Label ist ein

Beispiel-Label

kurz: Dieses Label ist das

kürzeste

längstes Label: dies ist das längste Label.

3.2 Tree

Das Environment Tree ist nicht ausgereift - eventuell werden hier in Zukunft noch umfangreiche Änderungen vorgenommen (auch an der Schnittstelle nach außen). Daher sollte diese Umgebung möglichst noch nicht benutzt werden!

Mit dieser Umgebung kann sehr leicht eine einfache Baumstruktur erzeugt werden. Der Name der Wurzel des Baumes wird als Parameter übergeben, der Baum selbst wird innerhalb dieser Umgebung mit den Befehlen \SubTree<beliebiger Unterbaum> \TreeEnd und \ Node{<Knotenname>} erzeugt.

3.2.1 Beispiel

\begin{Tree}{Wurzel}
\Node{ein Knoten}
\SubTree
  \Node{ein Unterknoten}
  \SubTree
  \Node{Unterunterknoten}
  \Node{2. U.U.Knoten}
  \TreeEnd
\TreeEnd
\Node{letzter Knoten}
\end{Tree}

Wurzel

ein Knoten

ein Unterknoten Unterunterknoten 2. U.U.Knoten

letzter Knoten

Die Umgebung Tree muß linksbündig oder im Blocksatz gedruckt werden!

3.3 DataDescript

Mit dieser Umgebung kann leicht eine drei- oder vierspaltige Tabelle erzeugt werden, die am Ende einer Seite automatisch umbricht. Die Einstellung der Spaltenbreiten geschieht halbautomatisch: Die längsten Einträge der ersten beiden (drei) Spalten werden als Parameter übergeben und die Spaltenbreite ihnen entsprechend eingestellt, während die letzte Spalte maximal den verbleibenden Platz einnimmt.

Die Titelzeile der Tabelle wird durch die vorangegangene Überschrift bestimmt:

\ConstDescript: [Typ] Name Wert Kommentar

\DefineDescript: [ ] Name Wert Kommentar

\VarDescript: [Art] Typ Name Beschreibung

\StructDescript: [ ] Name Feld Beschreibung

(Die in eckigen Klammern angegebenen Überschriften stehen jeweils in der ersten Spalte der vierspaltigen Tabelle). Die Schriftart in den einzelnen Spalten wird ebenfalls der Überschrift entsprechend automatisch angepaßt.

Die Einträge der Tabellenzeilen werden hier mit dem Befehl \Item{<Spalte1>}{<Spalte2>}{<Spalte3>} oder \Item{<Spalte0>}{<Spalte1>}{<Spalte2>}{<Spalte3>} erzeugt.

In der Umgebung DataDescript darf kein Text außerhalb eines \Item-Befehls auftreten. Ebenso darf keine Box oder Minipage mit mehreren Zeilen im \Item-Befehl auftreten, da dies den automatischen Seitenumbruch behindert.

Der Parameter für die dritte Spalte darf beliebig viele optionale Parameter (in eckigen Klammern [ ]) enthalten. Das Ergebnis entspricht einer description-ähnlichen Umgebung. Die optionalen Parameter stellen dabei die zu beschreibenden Schlüsselwörter dar.

Soll in der dritten Spalte eine eckige Klammer erzeugt werden (also keinen optionalen Parameter darstellen), so muß diese in geschweifte Klammern eingeschlossen werden (optionale Parameter werden nur in der obersten Ebene des Parameters erkannt, durch die Klammerung ist die eckige Klammer in dieser Ebene dann jedoch nicht sichtbar). Die Klammerung darf mehrere Zeichen auf einmal umfassen.

Ändert sich der Eintrag der ersten Spalte(n) nicht, so kann der entsprechende Parameter leer gelassen werden. In diesem Fall fällt die horizontale Linie zwischen den Tabellenzeilen in den entsprechenden Spalten weg (dies gilt nur, wenn alle Parameter vor dem leeren ebenfalls leer sind).

Die Umgebung DataDescript sollte niemals innerhalb einer minipage \parbox, oder table… auftreten, da hierbei durch den automatischen Tabellenumbruch häßliche Effekte auftreten, wenn TEX die Tabelle dann an eine andere als die bei der Berechnung aktuelle Stelle setzt (und an der Originalposition ein Seitenumbruch erzeugt würde.

Fußnoten in der letzten Tabellenspalte können dazu führen, daß diese Spalte breiter als nötig wird

3.3.1 \More

Wenn mehrere Einträge einer Spalte denselben Eintrag in der folgenden Spalte haben, so können diese innerhalb desselben Parameters mit \More getrennt werden. Hierdurch wird in der entsprechenden Spalte eine horizontale Linie erzeugt.

Die Verwendung von \More ist die einzige Möglichkeit zum Zeilenumbruch, die den automatischen Seitenumbruch in der Tabelle nicht (massiv) stört

3.3.2 Beispiel

\VarDescript
\begin{DataDescript}{sehr lang}
  {nicht kurz}
\Item{lang}{nicht kurz}{Diese
  Variable ist
  vollkommen sinnlos
  {[ebenso diese eckige Klammer]}}
\Item{sehr lang}{kurz}{Dies ist ein
  Flag zur Erfolgs-"Uberpr"ufung:
  [0] Fehlerhafte Ausf"uhrung
  [1] korrekte Ausf"uhrung}
\Item{}{dumm}{Zwischenspeicher}
\end{DataDescript}

3.3.3 Beschreibung der Variablen

Typ  Name  Beschreibung

lang nicht kurz Diese Variable ist vollkommen sinnlos [ebenso diese eckige Klammer]

sehr lang kurz Dies ist ein Flag zur Erfolgs-Überprüfung: 0: Fehlerhafte Ausführung 1: korrekte Ausführung

dumm

Zwischenspeicher

\ConstDescript
\begin{DataDescript}[kurz]{FALSE}{-99}
\Item{int}{TRUE}{1}{wahre Aussage}
\Item{}{FALSE}{0}{unwahre Aussage}
\Item{kurz}{bla}{-99}{seltsame Aussage}
\Item{}{}{2\More 3}{keine weitere
  bedeutende Aussage in diesem Feld}
\end{DataDescript}

3.3.4 Beschreibung der Konstanten

Typ Name Wert Kommentar

int TRUE 1

wahre Aussage

FALSE 0

unwahre Aussage

kurz bla -99

seltsame Aussage {2 \atop 3} keine weitere bedeutende Aussage in diesem Feld

3.4 PseudoCode

Hiermit wird die Darstellung von Algorithmen in Pseudocode vereinfacht. Am Anfang von PseudoCode kann in einem optionalen Parameter der Name des dargestellten Algorithmus angegeben werden.

In den folgenden Unterabschnitten werden die einzelnen Befehlsstrukturen aufgeführt. <Text> steht dabei für eine beliebige Folge von Pseudobefehlen oder Befehlsstrukturen. Pseudobefehle können mittels \\voneinander getrennt werden.

3.4.1 \While {<Bedingung>} <Text> \EndWhile

für Schleifen, die nur durchlaufen werden solange <Bedingung> erfüllt ist.

3.4.2 \For {<Bedingung>} <Text> \EndFor

erzeugt Zählschleifen.

3.4.3 \Repeat <Text> \Until {<Bedingung>}

wird für Schleifen verwendet, die nicht mehr wiederholt werden, wenn die <Bedingung> erfüllt ist.

3.4.4 \If {<Bedingung>} <Text> \Elsif {<Bedingung>} <Text> \Else <Text> \EndIf

erzeugt eine Verzweigungsstruktur. Es dürfen beliebig viele (auch 0) \Elsif {<Bedingung>} auftreten. \Else darf fehlen^{1}.

3.4.5 \Switch [<Ausdruck>] \Case {<Bedingung>} <Text> \Default <Text>
       \EndSwitch

Hiermit können Fallunterscheidungen entsprechend der C-Anweisung switch dargestellt werden. \Case {<Bedingung>} darf beliebig oft verwendet werden, \Default sollte dagegen nur einmal auftreten.

3.4.6 \Mark [<Label>]

markiert die entsprechende Zeile im Pseudocode mit einer fortlaufenden Nummer. Der Zähler wird zu Beginn jeder Pseudocode-Umgebung zurückgesetzt. Wird ein <Label> angegeben, so kann auf die markierte Zeile mit \ref {<Label>} Bezug genommen werden.

3.4.7 Beispiel

\begin{PseudoCode}[Absturz]
\While {noch nicht genug}
  Ermittle Pilot
  \Switch[Pilot]
  \Case {Mensch}
    Ermittle Sichtweite
    \If {Sicht $< 50m$}
      bete
    \Elsif {Sicht $< 100m$}
      anschnallen\Mark[Glueck]
    \Else
      alles klar
    \EndIf
  \Case {Autopilot}
    vertraue der Technik\\
    bete trotzdem
  \Default
    steuere selbst\\
    viel Glueck.
  \EndSwitch
\EndWhile
\end{PseudoCode}

procedure Absturz

while (noch nicht genug) do Ermittle Pilot switch (Pilot) { case (Mensch)

Ermittle Sichtweite if (Sicht < 50m) then

bete elsif (Sicht < 100m) then

anschnallen (1) else

alles klar fi

case (Autopilot) vertraue der Technik bete trotzdem

default steuere selbst viel Glueck.

} od

1Es gibt zwar keinen Syntaxfehler, wenn auch \Else mehrfach verwendet wird, jedoch ist ein solches Konstrukt nicht vernünftig zu deuten

\underline{3.5 Class 11}

3.5 Class

Diese Umgebung erzeugt eine Überschrift mit dem Namen der Klasse (erster Parameter). Im Anschluß daran kann in dem optionalen Parameter (geben wir ihm die schöne Nummer 1\frac{1}{2} ;-)) eine ultimative Kurzbeschreibung der Klasse angegeben werden, die in das Klassenübersichtsfile (siehe 2.5) aufgenommen wird. Unter dem Klassennamen wird eine Liste mit Include-Datei, Library, Sourcefile, Vorgängerklasse, befreundeten Klassen und Freunden (Parameter 2) sowie Name und Datum der letzten Änderung erzeugt. Dies geschieht (bis auf die letzten beiden Angaben) durch Benutzung entsprechender Befehle im zweiten Parameter.

Hierfür stehen zur Verfügung:

\Include{<INCLUDE-DATEI>} \Source{<SOURCE-FILE>} \Library{<LIBRARY-FILE>} \Derived{<ABGELEITET VON>} \FriendOf{<FREUND VON>} \Friends{<FREUNDE>}

Diese Befehle dürfen in beliebiger Reihenfolge je einmal auftreten (sie werden automatisch sortiert). Es müssen nicht alle verwendet werden. Der dritte Parameter sorgt für die automatische Erzeugung einer History am Ende der Klassenbeschreibung. Dazu steht hier der Befehl \History{<DATUM>}{<VERSION>}{<NAME>}{<KOMMENTAR>} zur Verfügung. Er kann beliebig oft innerhalb dieses Parameters verwendet werden. Dabei sollte auf eine aufsteigende Reihenfolge des Datums geachtet werden, da das letzte Datum und der dazugehörige Name automatisch in den Klassen-Kopf übernommen werden.

Der Klassenname sowie das Datum der letzten Änderung werden automatisch in den Seitenkopf aufgenommen.

Der Klassenname wird automatisch in den Index aufgenommen, wenn der Zähler IdxDeclareDepth größer oder gleich 1 gesetzt ist.

Die History-Tabelle wird am Ende einer Seite automatisch umbrochen. Am Ende der Klassenbeschreibung wird ein Seitenumbruch ausgeführt.

Der Befehl \History wird auf dieselbe Weise verwendet wie \Item in der Umgebung DataDescript (siehe 3.3).

Die Befehle im zweiten Parameter dürfen maximal je einmal benutzt werden. Jedes erneute Auftreten verwirft die alten Angaben. Sollen zu einem Punkt mehrere Angaben gemacht werden, so sind diese durch einen Zeilenumbruch (’\\’) voneinander zu trennen

Auf keinen Fall sollte innerhalb der Parameter Text ohne die oben genannten Befehle erzeugt werden, da dies zu unerwünschten Effekten führt. Ebenso darf der 3. Parameter nicht mit einem Zeilenumbruch im Quelltext beginnen, es kann sonst zu Fehlern (wenn der erste Parameter der History leer ist) oder Leerzeilen im History-Tabellenkopf kommen (wenn die Kommentare nur sehr kurz sind).

Ganz allgemein gilt, daß Parameter nie mit einem Zeilenumbruch im Quelltext beginnen oder enden sollten, da dies (wenn auch nicht unbedingt zu Fehlermeldungen (s.o.), so doch wenigstens) häufig zu unerwünschten Leerzeichen am Anfang bzw. Ende des Parametertextes führt. Dies kann sich besonders störend in Tabellen auswirken, wenn das abschließende Leerzeichen alleine in eine neue Zeile umbrochen wird.

Seit Version 3.25 von ClassDoc.sty wird die History nicht mehr durch eine eigene Umgebung erzeugt, sondern durch die Umgebung DataDescript. Hierdurch kommt es eventuell zu Problemen mit eckigen Klammern im Text der letzten Spalte. Eckige Klammern sollten daher stets innerhalb zusätzlicher geschweifter Klammern ({ und }) stehen.

3.5.1 \MethodHead{<Typ>}{<Name (<Parameterliste>)>...}{<Beispiel>}

Erzeugt die Überschrift <Typ>:<Name (<Parameterliste>)… >. Dabei wird der gesamte Text <Name (<Parameterliste>)> in einer Box hinter <Typ>: ausgegeben. Die in runden Klammern aufgeführten Parameter werden dabei wiederum in einer eigenen Box ausgegeben. Runde Klammern innerhalb der <Parameterliste> führen zu unerwünschten Ergebnissen und müssen daher in geschweifte Klammern geschachtelt werden (also z.B. wie folgt:

\MethodHead{<Methode>}{<Dummy ({int iFunc (int Dummy), int iFoo})>}{<Beispiel>})

Bei einfachen Funktionsköpfen (ohne geschachtelte runde Klammern) kann der gesamte Funktionskopf einfach unverändert als 2. Befehlsparameter angegeben werden. Sollte die <Parameterliste> nicht mehr in die Zeile passen, wird ein automatischer Umbruch (direkt hinter dem am besten geeigneten Komma in der Liste) ausgeführt und die Parameterliste unter dem ersten Parameter fortgesetzt.

Zwischen <Name> und der öffnenden Klammer ’(’ muß ein Leerzeichen stehen!

<Name> kann aus mehreren durch Leerzeichen getrennten Teilen bestehen (etwa virtual int iHelloWorld). Der letzte dieser Teile wird automatisch in den Index aufgenommen (im Beispiel also iHelloWorld), wenn der Zähler IdxDeclareDepth größer oder gleich 2 gesetzt ist.

Sollte die Parameterliste der Funktion auch mit Umbrüchen nicht mehr sinnvoll hinter den Funktionsnamen passen, so wird sie in der nächsten Zeile versetzt unter dem Funktionsnamen ausgegeben.

Innerhalb der Parameterliste darf kein \newline oder \\ auftreten - darauf zurückzuführende Fehlermeldungen können jedoch einfach mit ENTER ignoriert werden.

Wenn eine Methode keine Parameter benutzt, so ist die runde Klammer unbedingt leer zu lassen (und nicht etwa void einzutragen) - sonst wird in der Kurzübersicht (siehe 2.5) fälschlicherweise die Parameteranzahl mit 1 angegeben.

Es können mehrere <Name (<Parameterliste>)> im zweiten Befehlsparameter angegeben werden.

Der letzte Parameter des Kommandos kann leer sein. Hier kann ein Beispiel oder eine Anmerkung zu der Funktion angegeben werden, welche dann in kursiver Schrift beidseitig eingerückt unter der Überschrift ausgegeben wird.

Daran anschließend folgt die eigentliche Beschreibung der Funktion.

Die Parameter des Befehls dürfen nicht mit einem \newline oder \\ beginnen.

Die Parameterliste darf leer sein, die runden Klammern müssen jedoch auf jeden Fall angegeben werden!

Treten innerhalb der <Parameterliste> runde Klammern auf, so muß die gesamte <Parameterliste> in geschweifte Klammern eingefaßt werden.

Für Konstruktoren, Destruktoren, Funktionen und Methoden stehen bereits vorgefertigte Überschriften bereit, die in den folgenden Abschnitten beschrieben werden

3.5.2 \Constructor{<Name (<Parameterliste>)>...}{<Beispiel>}

arbeitet wie \MethodHead (3.5.1), jedoch fehlt der Parameter <Typ>, der hier automatisch auf Construktor gesetzt wird.

3.5.3 \Destructor{<Name (<Parameterliste>)>...}{<Beispiel>}

Dieses Kommando arbeitet wie \MethodHead (3.5.1), jedoch fehlt der Parameter <Typ>, der hier automatisch auf Destruktor gesetzt wird.

3.5.4 \Method{<Name (<Parameterliste>)>...}{<Beispiel>}

Dieses Kommando arbeitet wie \MethodHead (3.5.1), jedoch fehlt der Parameter <Typ>, der hier automatisch auf Methode gesetzt wird.

3.5.5 \Function{<Name (<Parameterliste>)>...}{<Beispiel>}

Dieses Kommando arbeitet wie \MethodHead (3.5.1), jedoch fehlt der Parameter <Typ>, der hier automatisch auf Funktion gesetzt wird.

3.5.6 \ClassDescript

erzeugt die Überschrift Beschreibung der Klasse (Unterabschnitt in der Umgebung Class). Hier kann die Aufgabe der Klasse als Ganzes beschrieben werden.

3.5.7 \MethodDescript

erzeugt die Überschrift Beschreibung der Methoden (Unterabschnitt in der Umgebung Class). In diesem Abschnitt sollten die Methoden sowie Konstruktoren und Destruktoren beschriben werden.

3.5.8 \ConstDescript

erzeugt die Überschrift Beschreibung der Konstanten (Unterabschnitt in der Umgebung Class). Hier können mittels der Umgebung DataDescript die Konstanten beschrieben werden. Die Kopfzeile der dadurch enstehenden Tabelle wird durch diesen Überschrift-Befehl auf [Typ] Name Wert Kommentar gesetzt (Typ erscheint nur in der vierspaltigen Variante).

Die in DataDescript angegebenen Konstanten werden automatisch in den Index aufgenommen, wenn der Zähler IdxDeclareDepth größer oder gleich 5 gesetzt ist.

3.5.9 \DefineDescript

erzeugt die Überschrift Define Anweisungen (Unterabschnitt in der Umgebung Class). Hier können mittels der Umgebung DataDescript die Defines beschrieben werden. Die Kopfzeile der dadurch enstehenden Tabelle wird durch diesen Überschrift-Befehl auf [ ] Name Wert Kommentar gesetzt (in der vierspaltigen Tabelle hat die erste Spalte keinen Titel).

Die in DataDescript angegebenen Defines werden automatisch in den Index aufgenommen, wenn der Zähler IdxDeclareDepth größer oder gleich 3 gesetzt ist.

3.5.10 \VarDescript

erzeugt die Überschrift Beschreibung der Variablen (Unterabschnitt in der Umgebung Class). Hier können mittels der Umgebung DataDescript die Variablen beschrieben werden. Die Kopfzeile der dadurch enstehenden Tabelle wird durch diesen Überschrift-Befehl auf [Art] Typ Name Beschreibung gesetzt (Art erscheint nur in der vierspaltigen Variante, diese sollte jedoch nicht benutzt werden).

Die in DataDescript angegebenen Variablen werden automatisch in den Index aufgenommen, wenn der Zähler IdxDeclareDepth größer oder gleich 6 gesetzt ist.

3.5.11 \StructDescript

erzeugt die Überschrift Beschreibung der Datenstrukturen (Unterabschnitt in der Umgebung

Class).

Hier können mittels der Umgebung DataDescript die Strukturen beschrieben werden. Die Kopfzeile der dadurch enstehenden Tabelle wird durch diesen Überschrift-Befehl auf [ ] Name Feld Beschreibung gesetzt (in der vierspaltigen Tabelle hat die erste Spalte keinen Titel).

14 3 Umgebungen Die in DataDescript angegebenen Typen werden automatisch in den Index aufgenommen, wenn der Zähler IdxDeclareDepth größer oder gleich 4 gesetzt ist.

3.5.12 \GlobalFunctions

erzeugt die Überschrift Definition globaler Funktionen (Unterabschnitt in der Umgebung Class).

3.5.13 \InternalStruct

erzeugt die Überschrift Interne Struktur (Unterabschnitt in der Umgebung Class). Hier kann der Aufbau der Klasse näher erläutert werden.

3.5.14 \Examples

erzeugt die Überschrift Beispiele (Unterabschnitt in der Umgebung Class).

3.5.15 \Public

Die hierdurch erzeugte Überschrift Öffentlich betitelt einen Unter-Unterabschnitt. Dem aktuellen Unterabschnitt entsprechend werden hier die öffentlichen Variablen, Methoden etc. beschrieben.

3.5.16 \Private

Die hierdurch erzeugte Überschrift Privat betitelt einen Unter-Unterabschnitt. Hier werden die privaten Variablen, Methoden etc. beschrieben.

3.5.17 \Extern

Die hierdurch erzeugte Überschrift Extern betitelt einen Unter-Unterabschnitt (siehe 3.5.15).

3.5.18 \Protected

Die hierdurch erzeugte Überschrift Protected betitelt einen Unter-Unterabschnitt (siehe 3.5.15).

\begin{Class}{Beispielklasse}
  [Klasse f"ur Demonstrationsobjekte]
  {\Source{Quellcode}
   \Derived{Vorg"anger}}
  {\History{07.94}{1.1}{Tim}
     {erste Version}
   \History{09.94}{2.1}{Tim}
     {verbesserte Version}
   \History{10.94}{3.6}{TiWi}
     {aktuelle Version}}
\ClassDescript
Allgemeine Funktion der Klasse\dots
\MethodDescript
\Public
\Constructor{void HelloWorld ()}
  {}
Der Konstruktor initialisiert das
'Hello World'-Objekt. Dazu ist
keinerlei Aktion n"otig, daher ist
der Konstruktor leer.
\Method{void Greetings (int iDummy)\\
 int iWork (int iDummy, double dDum-
my, float fDummy)}
  {Greetings (13);}
Diese Methode implementiert das
eigentliche 'Hello World'-Programm.
Auf dem Bildschirm wird \IO{Hello
World} ausgegeben.
\end{Class}

3.6 Beispielklasse

Source: Quellcode Abgeleitet von: Vorgänger Letzte Änderung: TiWi

10.94

3.6.1 Beschreibung der Klasse

Allgemeine Funktion der Klasse…

3.6.2 Beschreibung der Methoden

3.6.2.1 Öffentlich

Konstruktor: void HelloWorld ()

Der Konstruktor initialisiert das ’Hello World’- Objekt. Dazu ist keinerlei Aktion nötig, daher ist der Konstruktor leer.

Methode: void Greetings (int iDummy) int iWork (int iDummy, double dDummy, float fDummy)

Greetings (13);

Diese Methode implementiert das eigentliche ’Hello World’-Programm. Auf dem Bildschirm wird Hello World ausgegeben.

3.6.3 History

Datum Version Name Änderung

07.94 1.1 Tim

erste Version

09.94 2.1 Tim

verbesserte Version

10.94 3.6 TiWi

aktuelle Version

4 Allgemein verwendbare Kommandos

4.1 Kurz & klein

4.1.1 \Tilde

erzeugt eine Tilde (˜ ).

4.1.2 \

verschönert den Unterstrich ( ). Ein Zeilenumbruch am Unterstrich wird verhindert.

4.1.3 \Bslash

erzeugt einen Backslash.

4.1.4 \Degree

erzeugt ein Grad-Symbol (˚ ).

4.1.5 \postscript

Dieser Befehl dient zum Einbinden einer Postscript-Grafik in den Text. Er erwartet die vier Parameter Filename, Kurztitel, Titel und Bezugsmarke (in dieser Reihenfolge). Die Breite des einzubindenden Bildes kann durch \epsfxsize=<Länge> bestimmt werden.

Dieser Befehl arbeitet nur in Verbindung mit dem Style-File epsf.sty!

4.2 Texthervorhebungen

Die folgenden Befehle geben den übergebenen Parameter in einer besonderen Schriftart aus. Sie sollen für eine einheitliche Verwendung der Schriftarten sorgen.

\CR{<Klasse>}: Hervorhebung des Klassennamen (automatischer Indexeintrag, wenn

                        IdxRefDepth ≥ 1)

\niCR{<Klasse>}: Klassenhervorhebung grundsätzlich ohne Eintrag in den Index. Sollte nur

für wirklich unwichtige Klassenverweise verwendet werden.

\MR{<Methode>}: Hervorhebung des Methodennamen (automatischer Indexeintrag, wenn

                        IdxRefDepth ≥ 2)

\niMR{<Methode>}: Methodenhervorhebung grundsätzlich ohne Eintrag in den Index. Sollte

nicht verwendet werden.

\KW{<Zahl/Konstante>}: Zahlen oder Schlüsselwörter (z.B. Konstanten)

\ME{<Menü-Eintrag>}: Menütexte

\VN{<Variable>}: Variablennamen (automatischer Indexeintrag, wenn IdxRefDepth ≥ 4) \niVN{<Variable>}: Variablenhervorhebung grundsätzlich ohne Eintrag in den Index. Sollte

nur für ’unwichtige’ Variablen verwendet werden.

\TN{<Typ>}: Typname (automatischer Indexeintrag, wenn IdxRefDepth ≥ 3) \niTN{<Typ>}: Typname grundsätzlich ohne Eintrag in den Index. Sollte nur für Stan-

dardtypen wie int, char… verwendet werden.

\FN{<File>}: Filenamen \IO{<Text>}: Eingabe-/Ausgabe-Text \ON{<Objekt>}: Objektnamen \PC{<Prozedur>}: Prozeduraufrufe \RR{<Ersatzwort>}: Platzhalter \EM{<Text>}: allgemein hervorgehobener Text \UL{<Text>}: unterstreicht <Text> \KEY{<Taste>}: Tasten

4.2.1 \Important{<Wichtige Information>}

Dieser (erst ab Version 5.x definierte) Befehl rahmt die <Wichtige Information> ein.

Ist die <Wichtige Information> kürzer als eine Zeile, so wird sie zentriert

Innerhalb von \Important darf kein Absatzende auftreten, da dies die Ermittlung der benötigten Rahmenbreite unmöglich macht. Einfache Zeilenumbrüche durch \newline oder \\ sind jedoch erlaubt (die errechnete Boxbreite ist jedoch eventuell trotzdem zu groß).

4.3 Überschriften

4.3.1 \ClassSection{<Titel>}

erzeugt die Überschrift Titel. Sie ist derselben Art wie sie die Umgebung <Class> erzeugt (siehe auch 2.2).

4.3.2 \SubClassSection{<Titel>}

erzeugt die Überschrift <Titel> eine Ebene unterhalb der Klassenüberschrift (s. 2.2)

4.3.3 \SubSubClassSection{<Titel>}

Die entstehende Überschrift <Titel> ist zwei Ebenen unterhalb der Klassenüberschrift (s. 2.2)

5 Manipulationsmöglichkeiten

Die in diesem Abschnitt aufgeführten Befehle sollten nur mit äußerster Zurückhaltung benutzt werden, um eine einheitliche Dokumentation gewähleisten zu können.

5.1 \DataDescrHead

Dieser Befehl ermöglicht die Redefinition des DataDescript-Tabellenkopfes und der Schriftarten der Spalten. Er erwartet 6 oder 8 Parameter: Paarweise der Titel und die Schriftart der 0. bis 3. Spalte. Die Parameter für die 0. Spalte sind optional und müssen (wenn sie angegeben werden) in eckigen Klammern stehen.

5.1.1 Beispiel

\DataDescrHead [Null][\bf]{Eins}{\KW}{Zwei}{}{Drei}{\bf}  oder
\DataDescrHead {Eins}{\KW}{Zwei}{}{Drei}{\bf}

6 Fehler, Warnungen und sonstiger Unrat

ClassDoc.sty an sich sollte keine Fehler enthalten^{2} (ClassDoc.sty ist erfolgreich mit umfangreichen Texten getestet worden und lief dabei fehlerfrei :o), treten dennoch welche auf, so sollte der Anwender zunächst seine eigenen Files überprüfen.

Die Kommandos von ClassDoc.sty sind zum großen Teil äußerst komplex, wodurch die von TEXgelieferten Fehlermeldungen nicht unbedingt direkt auf die tatsächliche Fehlerquelle hinweisen.

In den folgenden Abschnitten werden einige Fehlermeldungen und ihre mögliche Ursache behandelt. Dabei gehe ich hier nur auf Fehler in Verbindung mit ClassDoc.sty ein, auch wenn dieselben Fehlermeldungen ebenso völlig ClassDoc-unabhängig auftreten können. Sollte also ein Fehler sich nicht durch die hier angesprochenen Hinweise beheben lassen, so hängt er wahrscheinlich nicht mit ClassDoc.sty zusammen.

6.1 overfull \hbox in der History

Dies kann eigentlich nicht mehr auftreten.

2bis auf die in Abschnitt 7 erwähnten Wanzen

6.2 Use of \JumpOver doesn't match its definition

Dieser Fehler kann auftreten…

• in einer \end{Class}-Zeile. In diesem Fall treten in der History der Klasse leere eckige Klammern auf ('[]').

• in der Umgebung DataDescript. Auch hier liegt der Fehler an leeren eckigen Klammern.

Der Fehler tritt deshalb auf, weil die Umgebung DataDescript (die auch für die Erzeugung der History verwendet wird) bei der Bearbeitung optionaler Parameter in der letzten Spalte leere aufeinander folgende eckige Klammern als Endekennzeichen verwendet.

Dieser Fehler kann seit der Umstellung der History auf das DataDescript-Format ab Version 3.24 dort auftreten (da eventuell alte TEX-Files noch mit eckigen Klammern in der History arbeiten). Abhilfe: eckige Klammern in geschweifte Klammern setzen (siehe auch 3.3).

6.3 There's no line here to end

Dieser Fehler tritt ab Version 3.26 nach Methodenüberschriften auf, wenn ein Parameter dieser Überschrift mit einem \newline oder \\ beginnt. Abhilfe: \newline löschen.

6.4 Paragraph ended before \NameParam was complete

Dieser Fehler kann auftreten, wenn in einer Methoden- (oder einer vergleichbaren) Überschrift hinter dem Methoden Namen keine runden Klammern angegeben sind - die Parameterliste einer Methode darf zwar leer sein, die Klammern müssen jedoch trotzdem angegeben werden. Abhilfe: Ein leeres rundes Klammerpaar ’()’ hinter den Namen der Methode setzen, bei der der Fehler aufgetreten ist.

6.5 Something's wrong-perhaps a missing \item

Wenn innerhalb der Parameterliste einer Methoden- (oder vergleichbaren) Überschrift ein \newline oder \\auftritt, ist mit diesem Fehler zu rechnen. Abhilfe: Entweder den Fehler einfach mit ENTER ignorieren oder den entsprechenden Zeilenumbruch-Befehl entfernen.

6.6 Paragraph ended before \@settodim was complete.

Diese Fehlermeldung deutet darauf hin, daß innerhalb des Parameters von \Important ein Absatzende (z.B. eine Leerzeile im Quelltext) uftritt. Abhilfe: Absatzende löschen. Stattdessen einen einfachen Zeilenumbruch durch \newline oder \\ verwenden.

6.7 Paragraph ended before \idxLast was complete.

Wenn diese Fehlermeldung auftritt, fehlt zwischen einem Methodennamen und der darauffolgenden öffnenden Klammer ein Leerzeichen. Die Zeilenangabe bezeichnet die erste Leerzeile nach der betreffenden Methodenüberschrift. Abhilfe: Einfügen eines Leerzeichens vor die öffnende Klammer ’(’.

6.8 Argument of \@caption has an extra }.

Dies kann auf die Verwendung eines ClassDoc-Hervorhebungsbefehls mit automatischer Index-Eintragung (z.B. \CR) innerhalb eines Abbildungs-Titels (\caption) hindeuten. Dies funktioniert nur mit folgender Abhilfe: direkt vor dem entsprechenden Hervorhebungs-Befehl das TEX-Kommando \protect einfügen.

6.9 Leerzeilen oder -zeichen in Tabellen

Leerzeichen am Anfang eines Tabelleneintrags (= Einrückung der ersten Zeile) oder Leerzeilen am Ende eines Tabellenfeldes (z.B. in DataDescript oder der History) können auftreten, wenn ein Parameter des \Item- oder \History-Befehls mit einem Zeilenumbruch endet oder beginnt. Abhilfe schafft hier das Entfernen des entsprechenden Zeilenumbruchs.

6.10 Unsinniger Seitenumbruch bei Tabellen

Der automatische Seitenumbruch in den von ClassDoc erzeugten Tabellen ist eine recht komplizierte Angelegenheit. Während der Style die Tabelle aufbaut, zählt er mit, wieviele Zeilen die Tabelle vermutlich benötigt. Diese vermutete Zeilenanzahl kann jedoch von der tatsächlichen abweichen. Wenn ClassDoc nun weniger Zeilen vorausgesehen hat, wird der Tabellenumbruch zu spät ausgeführt, der erzeugte Tabellenabschnitt paßt nicht mehr auf die aktuelle Seite und wird von TEX auf die nächste Seite gezogen. Am Ende des Tabellenabschnitts führt dann ClassDoc einen Seitenumbruch aus, da der Style von dem durch TEX verursachten Umbruch nichts weiß (erkennbar auch daran, daß die Hinweise auf die Fortsetzung der Tabelle auf die falschen Seiten verweisen)… Dieser Fehler tritt hauptsächlich dann auf, wenn Tabellenzeilen nur sehr ungünstig umbrochen werden können und mit großen Leerräumen aufgefüllt werden. Abhilfe: Hierfür habe ich bisher kein Patentrezept gefunden, zunächst sollte in so einem Fall jedoch versucht werden, den Zeilenumbruch in den unsauber umbrochenen Tabelleneinträgen zu verbessern, indem TEX Trennvorschläge angegeben werden. Wenn dies nicht möglich ist, könnte es sinnvoll sein, den entsprechenden Tabelleneintrag künstlich zu verlängern (z.B. mit unsichtbarem Text durch den Befehl \phantom{blabla}) - diese Möglichkeit sollte jedoch nur mit Vorsicht angewendet werden, da die Länge des unsichtbaren Textes vom benutzten Seitenformat abhängt…

6.11 Unerwünschte description-ähnliche Formatierung in der History

Dies hängt wahrscheinlich mit der Umstellung der History auf das DataDescript-Format zusammen: Eckige Klammern in der letzten Spalte kennzeichnen nun optionale Parameter, die wie die \item-Befehle einer description funktionieren (siehe auch 3.3). Abhilfe: Die eckigen Klammern in zusätzliche geschweifte Klammern setzen.

6.12 Falsche Parameteranzahl in der Kurzübersicht

Es kann eigentlich nur passieren, daß anstelle von keinem Parameter ein Parameter angegeben wird. Dies ist darauf zurückzuführen, daß anstelle einer leeren runden Klammer in der entsprechenden Methodenüberschrift innerhalb der Klammern ein void steht. Abhilfe: Das (void) ändern in ().

6.13 Allgemeines

ClassDoc.sty unterliegt ständigen Verbesserungen (viele Ideen kommen eben erst bei der täglichen Anwendung). Obwohl ich mich bemühe, die Benutzerschnittstelle beizubehalten, wie sie jetzt besteht (Änderungen sollten sich nur auf das Layout auswirken oder nur zusätzliche Optionen bereitstellen), ist es nicht auszuschließen, daß bestimmte Verbesserungen nur mit einer gleichzeitigen Änderung der Befehle (und deren Anwendung) möglich sind. Ein Beispiel dafür ist die Umstellung von Version 1.x auf 2.x, bei der die Anwendung der Umgebung Class massiv geändert wurde.

Langer Rede kurzer Sinn: Wenn TEX plötzlich bei Texten meckert, die zuvor problemlos durchliefen, dann kann es sein, daß die Benutzung des beanstandeten Befehls sich seitdem geändert hat - aber dieser Fall ist meiner Meinung nach äußerst unwahrscheinlich.

7 Bugs und anderes Ungeziefer

Wie wohl jeder weiß, der sich ein wenig auskennt, ist es nahezu unmöglich, ein fehlerfreies Programm zu schreiben. Und aus diesem Grunde werde ich mich hüten, zu behaupten, daß es mir mit ClassDoc.sty gelungen sei.

7.1 Doppelter Fußnotentext in Tabellen

In den durch die Umgebung DataDescript erzeugten Tabellen kommt es bei Verwendung von ClassDoc.sty Versionen unter 4.5 zur doppelten Ausgabe des Textes von Fußnoten in der letzten Tabellenspalte. Dieser Fehler ist ab Version 4.5 behoben.

7.2 Methoden-Überschrift ragt über den Rand hinaus

Dieser Fehler konnte bei sehr langen Parametern auftreten, da Zeilenumbrüche nur zwischen Parametern möglich waren. In der neuesten ClassDoc-Version ist notfalls auch im Parameter ein Zeilenumbruch erlaubt.

7.3 Zu geringer Zeilenabstand in der Methodenüberschrift zwischen zwei Methoden

Konnte bei Texten mit verändertem \baselinestretch auftreten. Sollte bei der aktuellen ClassDoc-Version behoben sein.

7.4 History

Kein Bug, aber da bestimmt irgendjemand es dafür hält: Eckige Klammern können in der History nicht mehr direkt angegeben werden, sondern müssen in geschweifte Klammern eingeschlossen sein. Dies hängt damit zusammen, daß die History jetzt von der Umgebung DataDescript erzeugt wird, die in der letzten Spalte optionale Parameter (die Dinger mit den eckigen Klammern eben) zuläßt. Dies war in älteren Versionen nicht möglich, daher existieren eventuell Files, die mit der neuen Version nicht laufen…

7.5 Probleme mit dem automatischen Seitenumbruch in Tabellen

siehe Abschnitt 6.10.

7.6 Probleme mit L^{A}TEX2e

Auch dies ist kein wirklicher Bug, sondern nur eine Konsequenz aus einer kleinen Inkompatibilität von L^{A}TEX zu L^{A}TEX2e. Bekannt ist mir zur Zeit, daß die Zeilen

\hyphenchar\nintt = 45
\hyphenchar\tentt = 45
\hyphenchar\elvtt = 45
\hyphenchar\twltt = 45

in ClassDoc.sty unter L^{A}TEX2e nicht funktionieren. Diese Zeilen müssen dort daher durch die Zeile

\DeclareFontFamily{OT1}{cmtt}{\hyphenchar\font=45}

ersetzt werden. Diese Lösung ist zwar etwas schmutzig (da der Anwender eigentlich nicht gezwungen sein sollte, in dem Style-File rumzufummeln), aber die einfachste (und bisher einzige), die mir bekannt ist.

7.7 Probleme mit dem Index

Mir sind keine Probleme mit dem automatischen Index unter L^{A}TEX2e bekannt (solange keine Konstrukte mit \underline aufgenommen werden sollen). Mit älteren Versionen (wie sie im IDA immer noch verwendet werden) kommt es jedoch z.B. auch mit einfache Unterstrichen zu Problemen - man kann die entsprechenden Fehlermeldungen zwar mit [figure]Return [figure]übergehen, doch sieht der Index trotzdem nicht wie gewünscht aus.

Die Probleme mit \_sind ab Version 5.3 behoben.

7.8 Allgemein

gilt: Fehlermeldungen zu mir^{3}!

3tim@ida.ing.tu-bs.de

8 Überblick über alle verwendbaren ClassDoc.sty-Befehle

Name (Kapitel) \ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (4.1.2)

erzeugt den Unterstrich und verhindert einen Zeilenumbruch an dieser Stelle

\Bslash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (4.1.3)

erzeugt einen Backslash

Class {Klassenname}[Kurzbeschreibung]{Liste}{History} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (3.5)

Der Klassenname wird die Überschrift, der folgende optionale Parameter wird als Beschreibung in die Klassen-Kurzübersicht aufgenommen, der zweite reguläre Parameter erzeugt die Liste direkt unter dieser Überschrift, der dritte erzeugt am Ende der Umgebung Class automatisch eine History.

\ClassDescript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (3.5.6)

Überschrift des Unterabschnittes von Class zur Beschreibung der Klasse als Ganzes

\ClassSection {Titel}. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (4.3.1)

erzeugt die Überschrift Titel in derselben Art wie die Klassenüberschrift

\ClassOverview [<Filename>] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (2.5)

gibt die Kurzzusammenfassung der Klassen aus

\ConstDescript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (3.5.8)

Überschrift des Unterabschnittes von Class zur Beschreibung der Konstanten der Klasse

\Constructor {Name}{Beispiel}. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .(3.5.2)

nur innerhalb von Class definiert und erzeugt die Überschrift Konstruktor: Name, darunter geqoutet das Beispiel (kann leer sein). Danach kann die Beschreibung des Konstruktors erfolgen

\CR {Klassenname}. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .(4.2)

Verweise auf Klassen

DataDescript [0.Spalte]{1.Spalte}{2.Spalte}. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (3.3) Erzeugt eine Tabelle mit automatischem Seitenumbruch. Der erste Parameter ist optional (in eckigen Klammern [ ]). Die länge des Textes in den Parametern bestimmt die Breite der ersten zwei/drei Spalten.

\DataDescrHead [0.Titel][0.Schrift] {1.Titel}{1.Schrift}… {3.Schrift}. . . . . . . . . . . . . . . . (5.1) setzt die Titel der Spalten und die in den Spalten zu benutzende Schriftarten. Die Schriftart der letzten Spalte wirkt sich nur auf die hier möglichen optionalen Parameter aus - der normale Text der dritten Spalte ist die Standard-Schriftart

\DefineDescript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (3.5.8)

Überschrift des Unterabschnittes von Class zur Beschreibung der Defines

\Degree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (4.1.4)

erzeugt das Grad-Symbol ˚ \Destructor {Name}{Beispiel}. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (3.5.3)

nur innerhalb von Class definiert und erzeugt die Überschrift Destruktor: Name, darunter geqoutet das Beispiel (kann leer sein). Danach kann die Beschreibung des Destruktors erfolgen

\EM{<Text>} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (4.2)

Hebt den Text hervor

\Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (3.5.14)

Überschrift des Unterabschnittes von Class für Beispiele

\Extern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (3.5.17)

Überschrift des Unterabschnittes von VarDescript o.ä. zur Beschreibung externer Variablen o.ä.

\FN {FileName}. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .(4.2)

Filenamen

\For {<Bedingung>} <Text> \EndFor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .(3.4.2)

Pseudocode-Darstellung von Zählschleifen

\Function {Name}{Beispiel} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (3.5.5)

nur innerhalb von Class definiert und erzeugt die Überschrift Funktion: Name, darunter geqoutet das Beispiel (kann leer sein). Danach kann die Beschreibung der Funktion erfolgen

\GlobalFunctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (3.5.12)

Überschrift des Unterabschnittes von Class zur Beschreibung globaler Funktionen

IdxDeclareDepth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (2.4)

Bestimmt, welche Deklarationen automatisch im Index aufgenommen werden

IdxRefDepth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (2.4)

Bestimmt, welche Hervorhebungskommandos automatisch Indexeinträge vornehmen

\If {<Bedingung>} <Text> \Elsif {<Bedingung>} <Text> \Else <Text> \EndIf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .(3.4.4)

Pseudocode-Darstellung von If-Verzweigungen

\Important {Information} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (4.2.1)

Die Information wird in einem zentrierten Kasten ausgegeben

\IndexDeclareStyle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (2.4)

Schriftart der Seitenangabe von Deklarationen im Index

\IndexRefStyle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (2.4)

Schriftart der Seitenangabe von Erwähnungen im Index \InternalStruct. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .(3.5.13)

Überschrift des Unterabschnittes von Class zur Beschreibung der internen Struktur der Klasse

\IO {Text}. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (4.2)

Ein-/Ausgaben

\item [Schlüsselwort] Beschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (3.1)

dient zur Beschreibung des Schlüsselwortes in der Umgebung TabDescript

\Item {Spalte1}{Spalte2}{Spalte3} oder \Item {Spalte0}{Spalte1}{Spalte2}{Spalte3} (je nach Tabellenart) . . . . . . . . . (3.3)

erzeugt in DataDescript eine Tabellenzeile. Spalte3 darf beliebig viele optionale Parameter in eckigen Klammern [ ] enthalten, die einen description-ähnlichen Aufbau in der dritten Spalte erzeugen TabDescript

\KEY {Taste}. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .(4.2)

umrahmt den Parameter Taste [figure]Taste [figure].

\KW {Konstantenname/Schlüsselwort/Zahl} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (4.2)

für Konstanten und Werte

linedheadings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .(2.1)

Standard-Seitenstil. Wie headings, jedoch unterstrichene Kopfzeile.

\Mark [<Label>] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (3.4.6)

Markierung eines Pseudobefehls

\ME {Menü-Eintrag}. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (4.2)

Menüpunkte etc.

\Method {Name}{Beispiel} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (3.5.4)

nur innerhalb von Class definiert und erzeugt die Überschrift Methode: Name, darunter geqoutet das Beispiel (kann leer sein). Danach kann die Beschreibung der Methode erfolgen.

\MethodDescript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (3.5.7)

Überschrift des Unterabschnittes von Class zur Beschreibung der Methoden

\MethodHead {Art}{Name}{Beispiel}. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (3.5.2)

nur innerhalb von Class definiert und erzeugt die Überschrift Art: Name, darunter geqoutet das Beispiel (kann leer sein). Danach kann die Beschreibung erfolgen

\More . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (3.3.1) erzeugt in der aktuellen DataDescript-Tabellenspalte eine horizontale Linie und einen Zeilenumbruch.

\MR {Methode}. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (4.2)

Verweise auf Methoden

NoHist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (2.3)

Zähler zum Unterdrücken der History. 1 unterdrückt die History, 0 (default) erzeugt sie.

\ON {Objekt} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (4.2)

Objektnamen

\PC {Prozedur}. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (4.2)

Prozeduraufrufe (procedure calls)

\Private. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .(3.5.16)

Überschrift des Unterabschnittes von VarDescript o.ä. zur Beschreibung privater Variablen o.ä.

\Protected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (3.5.18)

Überschrift des Unterabschnittes von VarDescript o.ä. zur Beschreibung geschützter Variablen o.ä.

PseudoCode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (3.4)

Umgebung zur Erzeugung von Pseudocode

\Public. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .(3.5.15)

Überschrift des Unterabschnittes von VarDescript o.ä. zur Beschreibung öffentlicher Variablen o.ä.

\Repeat <Text> \Until {<Bedingung>}. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (3.4.3)

Pseudocode-Darstellung von Repeat-Until-Schleifen

\RR {Platzhalter}. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (4.2)

(replacement reference)

\SetClassDepth {Kennzahl}. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (2.2)

Einstellung der Art der Klassenüberschriften

\StructDescript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (3.5.11)

Überschrift des Unterabschnittes von Class zur Beschreibung der Datenstrukturen der Klasse

\SubClassSection {Titel}. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .(4.3.2)

erzeugt die Überschrift Titel in derselben Art wie \VarDescript o.ä.

\SubSubClassSection {Titel}. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (4.3.2)

erzeugt die Überschrift Titel in derselben Art wie \Public o.ä.

\Switch [<Ausdruck>] \Case {<Bedingung>} <Text> \Default <Text> \EndSwitch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (3.4.5)

Pseudocode-Darstellung von Switch-Verzweigungen

TabDescript [Schriftartbefehl] {Max. der 1. Spalte}. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (3.1) description-ähnliche Umgebung. Die Items werden in der durch den optionalen Parameter bestimmten Schriftart gedruckt, die Länge des als Parameter übergebenen Textes bestimmt die Einrücktiefe.

\Tilde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (4.1.1) erzeugt eine Tilde ˜

\TN {TypName}. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (4.2) Typen

Tree {Wurzelname} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (3.2) VERSUCHSWEISE!!! Umgebung zum Erzeugen einer Baumstruktur

\UL{<Text>}. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (4.2) Unterstreicht den Text

\VarDescript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (3.5.10) Überschrift des Unterabschnittes von Class zur Beschreibung der Variablen der Klasse

\VN {VariablenName}. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (4.2) Variablennamen

\While {<Bedingung>} <Text> \EndWhile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .(3.4.1)

Pseudocode-Darstellung von While-Schleifen