Wollen Sie einen Verweis auf spätere Kapitel in Ihren Text einfügen, wissen aber noch nicht, auf welcher Seite das Kapitel beginnt? Ein typischer Anwendungsfall für automatische Textverweise. Aber wie machen Sie das ohne Verweisfunktion? Ein typischer Anwendungsfall für That’s Write-Anweisung.
Die Antwort: In That's Write mit einer automatischen Kapitelnumerierung, die Sie durch Anweisungen hervorrufen. Das Ganze funktioniert folgendermaßen: Legen Sie zunächst für jede Überschriften- bzw. Gliederungsebene ein eigenes Absatzlayout an, bei vier Gliederungsebenen zum Beispiel mit den Bezeichnungen A4 (für die oberste Gliederungsebene) bis Al (für die unterste Gliederungsebene). Verwenden Sie dazu am besten gleich die Gliederungsfunktion (»Layout-Absatzlayout«; rechts oben unter »Status«). That's Write erzeugt dann auf Wunsch aus dem fertigen Text automatisch ein Inhaltsverzeichnis und außerdem haben Sie die Gelegenheit, durch »Layout-Text zusammenklappen« untere Gliederungsebenen zu Übersichtszwecken auszublenden.
Geben Sie als nächstes, wie in unserer Ausgabe 11/91 beschrieben, unter dem linken Einzug zum Beispiel folgende Anweisungen ein:
A4 ebne4:ebne4+:1;ebne3:0;ebne2:0ebne1:0;
!Text:ebne4&"."
A3 ebne3:ebne3+:1;ebne2:0;ebne1:0;
!Text:ebne4&"."&ebne3&"."
A2 ebne2:ebne2+1;ebne1:0
!Text:ebne4&"."&ebne3&"."&ebne2&"."
A1 ebne1:ebne1+:1;
!Text:ebne4&"."&ebne3&"."&ebne2&"."&ebne1&"."
Jedesmal, wenn Sie eine neue Überschrift schreiben, wählen Sie zunächst das Absatzlayout mit der Gliederungsebene dieser Überschrift. Wählen Sie jetzt »Layout-Anwsgen. ausführen« bzw. »Control-LN«. Es erscheint die Kapitel-Nummer. Geben Sie dann zunächst ein Leerzeichen ein und anschließend, wie gewohnt, Ihre Überschrift. Das Leerzeichen hat nicht nur stilistische Gründe, sondern ist erforderlich, damit That's Write beim nächsten Ausführen von Anweisungen Ihre Überschrift nicht überschreibt. Sie haben auch die Alternative, zunächst Ihre Überschriften einzugeben, die Anweisungen jedoch erst nach Vollendung des Textes ausführen zu lassen; auch hier ist das Leerzeichen vor der Überschrift einzufügen. Vergessen Sie nicht, nach »RETURN« wieder Ihr »normales« Textlayout zu aktivieren.
Durch das Anwählen z. B. des Überschriftenlayouts »A3« interpretiert That's Write das oben eingegebene Kommando folgendermaßen:
Zunächst erhöht der Anweisungs-Interpreter die Variable »ebne3« um eins und weist den Variablen »ebne2« und »ebne1« den Wert null zu. Das folgende Kommando bewirkt die Ausgabe der Variablen »ebne4« und »ebne3«, getrennt durch einen Punkt. Beginnen Sie nun Ihren Text mit einer Überschrift in der höchsten Gliederungsebene A4, so beginnt die Kapitelzählung mit »1.«. Bei Eingabe einer Überschrift in der nächst-niedrigeren Gliederungsebene, A3, erscheint »1.1.«. Bei einer weiteren Überschrift in dieser Gliederungsebene erscheint »1.2.«. Eine neue Überschrift in der obersten Gliederungsebene ergibt dann »2.«, in Gliederungsebene A3 wieder »2.1.«.
Was hat das alles mit Textverweisen zu tun, werden Sie jetzt fragen. Stellen Sie sich vor, Sie schreiben gerade an Kapitel 2.13.4. und über ein Thema, das Sie in Kapitel 4.1.2.2. nochmals aufgreifen und auf das Sie dort näher eingehen wollen. Auf welcher Seite Kapitel 4.1.2.2. zu finden ist, wissen Sie natürlich jetzt noch nicht. Und wenn Sie Kapitel 4.1.2.2. schreiben, vergessen Sie womöglich, daß Sie irgendwo vorher im Text auf dieses Kapitel verwiesen haben. Oder Sie ändern wesentliche Textpassagen vor Kapitel 4.1.2.2., so daß die Seitennummer, auf der das Kapitel beginnt, sich ändert. Sie benötigen also eine Variable, die die Seitennummer beinhaltet und die That's Write aktualisiert, wenn der Text fertig ist. Diese Variable erscheint dann im Verweis in Kapitel 2.13.4.
Ergänzen Sie die Anweisung in Absatzlayout A1 so, daß sie folgende Gestalt annimmt:
ebne1:ebne1+:1 ;!Text:ebne4&"."&ebne3&"."&ebne2".
"&ebne1&"." !wenn[ebne4=4 !und ebne3=1 !und ebne2=2 !und ebne1=2]!dann [zahl:!Seite]
Jedesmal, wenn That's Write die Anweisung in einer Überschriften-Zeile unter Layout A1 ausführt, überprüft der Anweisungs-Interpreter in der »!wenn«-Anweisung, ob es sich schon um das Kapitel 4.1.2.2. handelt. Ist diese Bedingung erfüllt, tritt das »!dann«-Kommando in Kraft: der Anweisungs-Interpreter ordnet der Variablen »zahl« die aktuelle Seitennummer zu. Jetzt haben wir also schon erreicht, daß die Seitennummer, auf der Kapitel 4.1.2.2. beginnt, sich in einer Variablen befindet. Diese wollen wir jetzt noch in Kapitel 2.13.4. ausgeben lassen.
Hierbei unterliegen wir leider der Einschränkung, daß That's Write Texte durch Anweisungen nur an Tabulatorstellen ausgibt. Legen Sie also ein Absatzlayout an, z. B. »Ae«, das die gleichen Merkmale wie Ihr normales Textlayout besitzt. Dies ist am einfachsten, wenn Sie sich bereits in ihrem normalen Absatzlayout befinden: geben Sie »Control-A« und dann »Ae« als neue Layoutbezeichnung ein; dadurch öffnet sich ein neues Absatzlayoutfenster. Ändern Sie das neue Layout ab, indem Sie folgende Anweisung am linken Einzug eingeben:
2)!Text:"näheres hierzu siehe bitte in Kapitel 4.1.2.2."&"auf Seite "&zahl
Erzeugen Sie jetzt in Kapitel 2.13.4. eine neue Zeile, unter Verwendung von Absatzlayout Ae.
Ist Ihr Text fertig, betätigen Sie wieder »Layout-Anwsgen. ausführen«. That's Write arbeitet jetzt die Zeilen, in denen es Anweisungen vorfindet, der Reihe nach ab. Erreicht der Anweisungs-Interpreter die Zeile zur Ausgabe von »zahl«, so ist die Seitennummer von Kapitel 4.1.2.2. ja noch nicht bekannt. Daher haben Sie in Layout »Ae« den Ausgabebefehl mit »2)« versehen, so daß dessen Ausführung erst in einem zweiten »Durchgang« von »Anwsgen. ausführen« erfolgt. Erst später im Text, in Kapitel 4.1.2.2., erhält die Variable »zahl« die aktuelle Seitennummer. Nach dem Abarbeiten aller Anweisungen erfolgt von selbst ein weiterer Durchgang für diejenigen Anweisungen, die eine Anweisungsnummer größer als eins besitzen, hier also die Anweisung, die Sie mit »2)« versehen haben. Haben Sie Ihre Überschriften alle unter Verwendung der Absatzlayoutseingegeben, die Gliederungsebenen größer als null besitzen, dann erzeugt That's Write für Sie automatisch ein Inhaltsverzeichnis, ohne daß Sie die Überschriften mit der Funktion »Zeichen-Inhaltsverzeichnis« markiert haben. Betätigen Sie »Extras-Inh.verzeichnis«, dann erzeugt That's Write das Inhaltsverzeichnis am Ende Ihres Textes. Durch Markierung als Block verschieben Sie es an den Anfang des Textes. Dadurch erhöht sich zunächst die Seitenzahl. Diese korrigieren Sie im Textinformations-Fenster (zu öffnen durch Anklicken des Textnamens oben links im Textfenster), indem Sie rechts unten unter »Offset« ein negatives Seitennummern-Offset eingeben. Die Seiten mit dem Inhaltsverzeichnis versehen Sie z.B. mit römischen Ziffern, indem Sie im Kopf- oder Fußtext an beliebiger Stelle die Anweisung
!Text:!römisch[!Seite+2]
eingeben; »!Seite+2« als Beispiel für den Fall, daß das Inhaltsverzeichnis zwei Seiten lang ist. (wk)