Symbole sind benutzerdefinierte inhaltsleere Variablen, welche sich durch das Kommando !set und beim Aufruf von UDO durch die Kommandozeilenoption -D setzen und mit dem Kommando !unset auch wieder entfernen lassen. Ob ein Symbol (nicht) gesetzt ist, läßt sich durch die Abfrage-Befehle !ifset bzw. !ifnset testen.
Die Einsatzmöglichkeiten von Symbolen sind vielfältig. Im folgenden Beispiel werde ich versuchen, Ihnen ein typisches Anwendungsgebiet zu zeigen, bei dem man je nach gesetzten Symbolen eine Zieldatei mit unterschiedlichem Inhalt erhält.
Gehen wir einmal davon aus, daß wir einen Quelltext geschrieben haben, der drei Kapitel enthält. Die ersten beiden Kapitel sind bereits fertig, am letzten Kapitel wird noch eifgrig herumgebastelt. Um nun die Turn-Around-Zeiten zu minimieren, wollen wir eine Zieldatei erzeugen, die nur das dritte Kapitel enthält. Nur wenn das Symbol `AlleKapitel' gesetzt ist, soll die Zieldatei alle Kapitel enthalten:
!begin_document !tableofcontents !ifset [AlleKapitel] !include kapitel1.ui !include kapitel2.ui !endif !include kapitel3.ui !end_document
Starten Sie UDO nun "normal", wird eine Zieldatei erstellt, die nur das dritte Kapitel enthält. Starten Sie UDO hingegen mit der Kommandozeilenoption `-D AlleKapitel', so werden alle Kapitel umgewandelt.
Das Spielchen kann man natürlich noch etwas ausbauen. Durch Verwendung weiterer Symbole kann man gezielt nur einzelne Kapitel oder alle zusammen in die Zieldatei aufnehmen. Im folgenden Beispiel wird bei Übergabe der Option `-D Kapitel1' nur das erste Kapitel in die Zieldatei aufgenommen. Übergibt man `-D Kapitel1' und `-D Kapitel2', so werden das erste und das zweite Kapitel eingebunden. Übergibt man hingegen `-D AlleKapitel', so wird die Zieldatei komplett dargestellt:
!begin_document !tableofcontents !ifset [Kapitel1, AlleKapitel] !include kapitel1.ui !endif !ifset [Kapitel2, AlleKapitel] !include kapitel2.ui !endif !ifset [Kapitel3, AlleKapitel] !include kapitel3.ui !endif !end_document
Der Phantasie sind also wenige Grenzen gesetzt!
Wie in der Einführung zu diesem Abschnitt beschrieben, lassen sich Symbole auch wieder löschen. Dazu bedient man sich des Befehls !unset.
Wollen Sie in obigem Beispiel partout verhindern, daß alle Kapitel in die Zieldatei eingebunden werden, so können Sie zuvor das Symbol AlleKapitel löschen, sofern es gesetzt wurde. Dies funktioniert so:
!ifset [AlleKapitel] !unset AlleKapitel !endif
In diesem Beispiel wird also zunächst abgefragt, ob das Symbol `AlleKapitel' gesetzt ist. In dem Falle wird es durch den Befehl !unset gelöscht. Die vorherige Abfrage ist deshalb notwendig, damit man eine Fehlermeldung seitens UDO vermeidet, falls das Symbol `AlleKapitel' einmal nicht gesetzt ist.
Hinweise: