############################################################
# @(#) Formatspezifisches, Dirk Hagedorn
############################################################

!subsubnode Formatspezifische Befehle

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:

!include syntax/misc/_dest.ui

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:

!begin_quote
!begin_verbatim
!asc Diese Zeile erscheint nur im ASCII-Format
!end_verbatim
!end_quote

Um eine Zeile in allen Formaten außer dem ASCII-Format auszugeben, gibt man
folgendes an:

!begin_quote
!begin_verbatim
!=asc Diese Zeile erscheint nicht im ASCII-Format
!end_verbatim
!end_quote

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:

!begin_quote
!begin_verbatim
!no_preambel [tex]
!tex \documentstyle[11pt,german,makeidx]{article}
!tex \makeindex
[...]
!tex \printindex
!end_verbatim
!end_quote

!label raw-Umgebung
!subsubheading Die raw-Umgebung

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.

!index !/begin_raw
!index !/end_raw

Daher bietet UDO die ""raw-Umgebung"" an. Sie wird mit dem Befehl
(!I)!/begin_raw(!i) begonnen und mit dem Befehl (!I)!/end_raw(!i)
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:


!index HTML !! <FORM>
!index <FORM>

!begin_quote
!begin_verbatim
!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&ouml;schen">
</PRE>
</FORM>
!end_raw
!else
In der HTML-Version befindet sich hier ein Formular.
!endif
!end_verbatim
!end_quote


Um noch einmal den Unterschied zur verbatim-Umgebung klarzumachen: Der
Text einer verbatim-Umgebung wird 1:1 (!I)dargestellt(!i). 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.

