### Funktionen

Um während des Evaluierungsprozesses Werte von Umgebungsvariablen einsetzen zu können, stellt der Document Generator einige Funktionen zur Verfügung, die in Vorlagen oder Instanzen benutzt werden können:

`&base(Dateiname);
`entfernt Pfadinformation und Suffix aus einem Dateinamen.
Beispiel: `&base(/home/bscw/www/faq.dtm);` ergibt`faq`

`&rel(Pfad);
`erzeugt einen relativen Pfadnamen aus einem absoluten Pfadnamen, und zwar relativ zu dem Dokument, das erzeugt werden soll (gesetzt im Evaluierungsparameter document).
Beispiel: Wenn man den Funktionsausdruck `&rel(/Images);` in einer Vorlage benutzt, die ein Dokument `/faq/index.htm` erzeugt, so wird dieser Ausdruck in `../Images` umgewandelt. Soll dagegen ein Dokument `/faq/question/install.htm` erzeugt werden, so wird der Ausdruck zu `../../Images` ausgewertet.

`&size(Dateiname, [B|K|M|G]);`
liefert die Größe der angegeben Datei in Byte, Kilobyte, Megabyte oder Gigabyte.
Beispiel: `&size(/Download/bscw34.exe, M);` ergibt`8.43`

`&date(Fo` r `mat);`
liefert das aktuelle Datum und die Tageszeit. In dem Parameter `Format` können die folgenden Formatierungsanweisungen verwendet werden. Sie werden hier ohne die optionalen Angaben zu Feldbreite und Genauigkeit angegeben.

Anweisung | Bedeutung
`%a` | Abkürzung für den Wochentag
`%A` | Wochentag
`%b` | Abkürzung für den Monatsnamen
`%B` | Monatsname
`%c` | Standarddarstellung für Datum und Uhrzeit
`%d` | Tag im Monat als Dezimalzahl [01, 31]
`%H` | Stunde als Dezimalzahl (24 Stunden) [00, 23]
`%I` | Stunde als Dezimalzahl (12 Stunden) [01, 12]
`%j` | Tag im Jahr als Dezimalzahl [001, 366]
`%m` | Monat als Dezimalzahl [01, 12]
`%M` | Minute als Dezimalzahl [00, 59]
`%p` | AM oder PM je nach Tageszeit
`%S` | Sekunde als Dezimalzahl [00, 60]
`%U` | Wochennummer im Jahr (Sonntag ist der erste Tag der Woche) [00, 53]. Alle Tage des Jahres, die dem ersten Sonntag vorausgehen, gehören zu Woche 0.
`%w` | Wochentag als Zahl [0 (Sonntag), 6]
`%W` | Wochennummer im Jahr (Montag ist der erste Tag der Woche) [00, 53]. Alle Tage des Jahres, die dem ersten Montag vorausgehen, gehören zu Woche 0.
`%x` | Standarddarstellung für Datum
`%X` | Standarddarstellung für Tageszeit
`%y` | Jahr ohne Jahrhundert [00, 99]
`%Y` | Jahr mit Jahrhundert
`%Z` | Name der Zeitzone (oder leere Zeichenkette, wenn Zeitzone unbekannt ist)
`%%` | das Zeichen ‚`%`‘

Beispiel: `&date(%B %Y);` ergibt am 10.10.2005`Oktober 2005`.