UDO bietet für jedes Ausgabeformat zwei Befehle und eine Umgebung, mit denen es möglich ist, Zeilen nur dann auszugeben, wenn man in eines der Formate umwandelt.
In diesen Zeilen können dann spezielle Befehle für ein Format angegeben werden, die UDO dann 1:1, also Umwandlung von Sonderzeichen und ohne Einrückungen, ausgibt.
Bei diesen Befehlen und Umgebungen spielen Kürzel eine große Rolle. Hier eine Übersicht, welches Kürzel für welches Ausgabeformat benutzt werden kann:
asc | ASCII |
aqv | Apple-QuickView |
htag | HP-Helptag-SGML |
html | HTML |
info | Texinfo |
ldoc | Linuxdoc-SGML |
lyx | LyX |
man | Manualpage |
pch | Pure-C-Help |
rtf | RTF |
stg | ST-Guide |
tex | LaTeX |
tvh | Turbo-Vision-Help |
win | WinHelp |
Es existieren nun je zwei Befehle für jedes Format, mit dem man Zeilen, die nur für dieses Format bestimmt sind, und für Zeilen die für alle außer dieses Format bestimmt sind, ausgeben kann. Die Befehle ergeben sich, indem man den Kürzeln ein Ausrufezeichen bzw. noch ein weiteres Gleichheitzeichen voranstellt.
Um beispielsweise eine Zeile nur in das ASCII-Format auszugeben, gibt man folgendes an:
!asc Diese Zeile erscheint nur im ASCII-Format
Um eine Zeile in allen Formaten außer dem ASCII-Format auszugeben, gibt man folgendes an:
!=asc Diese Zeile erscheint nicht im ASCII-Format
Der Inhalt dieser Zeilen wird ohne das Kommando selbst, ohne Berücksichtigung von UDO-Kommandos und ohne Umwandlung von Sonderzeichen ausgegeben. Diese Zeilen sorgen — genau wie alle Kommandos — auch dafür, daß ein Absatz beendet wird. Diese Kommandos eignen sich also nicht dazu, mittem in einem Absatz unterschiedliche Sätze einzufügen!
Dieses Kommandos können dazu dienen, formatspezifische Kommandos einzufügen. Im folgenden Beispiel wird gezeigt, welche Kommandos man in einen Quelltext einfügen muß, damit LaTeX weiß, mit welchem Stil ein Dokument auszudrucken ist und damit es einen Index erzeugt:
!no_preambel [tex] !tex \documentstyle[11pt,german,makeidx]{article} !tex \makeindex [...] !tex \printindex
Will man größere Blöcke im jeweiligen Format angeben, wäre es ziemlich mühsam, wenn man jede Zeile mit einem Kürzel beginnen müßte.
Daher bietet UDO die "raw-Umgebung" an. Sie wird mit dem Befehl !begin_raw begonnen und mit dem Befehl !end_raw beendet.
Genau wie der Inhalt der Zeilen, die mit den obigen Formatkürzeln begonnen werden, gibt UDO diese Zeilen ohne Anpassung von Sonderzeichen und ohne Berücksichtigung von UDO-Befehlen direkt aus.
Zusammen mit der Möglichkeit, das Ausgabeformat abzufragen, in das ein Quelltext umgewandelt wird, können spezielle Befehle ausgegeben werden. Anwendungsbeispiele wären z.B. komplizierte Tabellen für LaTeX oder Formulare für HTML. Letzteres soll hier aufgezeigt werden:
!ifdest [html] !begin_raw <FORM method=post action="mailto:DirkHage@aol.com"> <PRE> <p> Name: <INPUT name="Name" size=60> <p> <p> <INPUT type=submit value="Absenden"> <p> <INPUT type=reset value="Löschen"> </PRE> </FORM> !end_raw !else In der HTML-Version befindet sich hier ein Formular. !endif
Um noch einmal den Unterschied zur verbatim-Umgebung klarzumachen: Der Text einer verbatim-Umgebung wird 1:1 dargestellt. Würden Sie das obige Formular in eine verbatim-Umgebung packen, würden Sie im HTML-Browser lediglich den Quelltext des Formulars sehen! Nur bei der Verwendung der raw-Umgebung wird das Formular auch als solches vom HTML-Browser dargestellt.