anchor.diff:  `sd:current-row([<area>])`::
      Gibt die aktuelle Zeile zurück. Wenn `area` angegeben, gibt die Zeile des gegebenen Platzierungsbereichs zurück.
   
  -`sd:current-column([<area>])`::
  -   Gibt die aktuelle Spalte zurück. Wenn `area` angegeben, gibt die Spalte des gegebenen Platzierungsbereichs zurück.
  -
  -`sd:alternating(<typ>, <text>[,<text>,...])`::
  -   Bei jedem Aufruf wird das nächste Argument zurück gegeben. Wert des Typs ist beliebig, muss aber eindeutig sein. Beispiel: `sd:alternating("tbl", "Weiß","Grau")` könnte für die Hintergrundfarbe von Tabellen benutzt werden. Beispiel siehe <<ch-wechselnde-zeilenfarben>>.
  -
  -`sd:reset-alternating(<typ>)`::
  -   Setzt den Zustand für `sd:alternating()` für den angegebenen Typ zurück.
  +`sd:decode-base64(<Zeichenkette>)`::
  +   Konvertiert eine Base64-kodierte Zeichenkette und gibt den binären Inhalt zurück.
  +
  +`sd:decode-html(<Node>)`::
  +   Wandelt Texte wie `\&lt;i\&gt;Kursiv\&lt;/i\&gt;` in entsprechendes HTML-Markup.
  +
  +`sd:dummytext([<Anzahl>])`::
  +   Gibt den Blindtext "Lorem ipsum..." mit über 50 Wörtern zurück. Mit dem optionalen Parameter kann man festlegen, wie oft der Text wiederholt wird.
  +
  +`sd:even(<zahl>)`::
  +   Die Rückgabe ist `true()`, wenn die angegebene Zahl gerade ist. Beispiel: `sd:even(sd:current-page())`
  +
  +`sd:file-exists(<Dateiname oder URI-Schema>)`::
  +   Die Rückgabe ist `true()`, wenn der Dateiname im Suchpfad existiert, ansonsten `false()`.
  +
  +`sd:filecontents(<binarycontent>)`::
  +   Speichert den Inhalt in eine temporäre Datei und gibt den Namen zurück.
  +
  +`sd:format-number(<Zahl oder String>, <Tausenderzeichen>, <Kommazeichen>)`::
  +   Formatiert die übergebene Zahl und fügt Tausender-Trennzeichen hinzu und ändert den Kommatrenner. Beispiel: `sd:format-number(12345.67, '.',',')` ergibt die Zeichenkette `12.345,67`.
  +
  +`sd:format-string(<Objekt>,<Objekt>,...,<Formatierungsangaben>)`::
  +   Gibt eine Zeichenkette zurück, die die gegebenen Objekte mit den im zweiten Argument gegebenen Formatierungsanweisungen darstellt. Die Formatierungsanweisungen entsprechen der aus der Programmiersprache C bekannten `printf()`-Funktion.
  +
  +`sd:group-height(<string>[,<string>])`::
  +   Gibt die Höhe in Rasterzellen für die Gruppe im ersten Argument an. Beispiel: `sd:group-height('Beispielgruppe')`. Ist ein zweites Argument angegeben, so wird die Gruppenhöhe als Vielfaches der Einheit genommen. Beispiel: `sd:group-height('Beispielgruppe','mm')` gibt die genaue Höhe der Gruppe in mm an.
  +
  +`sd:group-width(<string>)`::
  +   Gibt die Breite in Rasterzellen für die Gruppe im ersten Argument an. Beispiel: `sd:group-width('Beispielgruppe')`
  +
  +`sd:imageheight(<Dateiname oder URI-Schema>)`::
  +   Höhe des Bildes in Rasterzellen. Vorsicht: sollte das Bild nicht gefunden werden, wird die Höhe des Platzhalters für nicht gefundene Bilder zurückgegeben. Daher muss vorher überprüft werden, ob das Bild existiert.
  +
  +`sd:imagewidth(<Dateiname oder URI-Schema>)`::
  +   Breite des Bildes in Rasterzellen. Vorsicht: sollte das Bild nicht gefunden werden, wird die Breite des Platzhalters für nicht gefundene Bilder zurückgegeben. Daher muss vorher überprüft werden, ob das Bild existiert.
   
   `sd:keep-alternating(<typ>)`::
      Benutzt den aktuellen Wert von `sd:alternating(<typ>)`, ohne diesen zu verändern.
   
  -`sd:count-saved-pages(<Name>)`::
  -   Gibt die Anzahl der gespeicherten Seiten, die mit `<SavePages>` zwischengespeichert wurden.
  -
  -// `sd:number-of-datasets(<Sequenz>)`::
  -//    Gibt die Anzahl der Datensätze der Sequenz zurück.
  -
  -`sd:number-of-pages(<Dateiname oder URI-Schema>)`::
  -   Ermittelt die Anzahl der Seiten der angegebenen (PDF-)Datei. Siehe das Beispiel in <<ch-mehrseitigepdf>>.
  -
  -`sd:number-of-columns([<area>])`::
  -   Gibt die Anzahl der Spalten auf der Seite bzw. im angegebenen Bereich.
  -
  -`sd:number-of-rows([<area>])`::
  -   Gibt die Anzahl der Zeilen auf der Seite bzw. im angegebenen Bereich.
  -
  -`sd:attr(<Name>[, ...])`::
  -   ist dasselbe wie `@Name`, nur mit der Möglichkeit den Namen auch dynamisch (z. B. mit `concat()`) zu erzeugen. Siehe Beispiel bei `sd:variable()`.
  -
  -`sd:allocated(x,y,<Bereichsname>,<Rahmennummer>)`::
  -   Gibt wahr zurück, wenn die Zelle belegt ist (seit 2.3.71).
  -
  -`sd:imagewidth(<Dateiname oder URI-Schema>)`::
  -   Breite des Bildes in Rasterzellen. Vorsicht: sollte das Bild nicht gefunden werden, wird die Breite des Platzhalters für nicht gefundene Bilder zurückgegeben. Daher muss vorher überprüft werden, ob das Bild existiert.
  -
  -`sd:imageheight(<Dateiname oder URI-Schema>)`::
  -   Höhe des Bildes in Rasterzellen. Vorsicht: sollte das Bild nicht gefunden werden, wird die Höhe des Platzhalters für nicht gefundene Bilder zurückgegeben. Daher muss vorher überprüft werden, ob das Bild existiert.
  -
  -`sd:file-exists(<Dateiname oder URI-Schema>)`::
  -   Die Rückgabe ist `true()`, wenn der Dateiname im Suchpfad existiert, ansonsten `false()`.
  -
  -`sd:format-number(<Zahl oder String>, <Tausenderzeichen>, <Kommazeichen>)`::
  -   Formatiert die übergebene Zahl und fügt Tausender-Trennzeichen hinzu und ändert den Kommatrenner. Beispiel: `sd:format-number(12345.67, '.',',')` ergibt die Zeichenkette `12.345,67`.
  -
  -`sd:format-string(<Objekt>,<Objekt>,...,<Formatierungsangaben>)`::
  -   Gibt eine Zeichenkette zurück, die die gegebenen Objekte mit den im zweiten Argument gegebenen Formatierungsanweisungen darstellt. Die Formatierungsanweisungen entsprechen der aus der Programmiersprache C bekannten `printf()`-Funktion.
  -
  -`sd:even(<zahl>)`::
  -   Die Rückgabe ist `true()`, wenn die angegebene Zahl gerade ist. Beispiel: `sd:even(sd:current-page())`
  -
  -`sd:decode-html(<Node>)`::
  -   Wandelt Texte wie `\&lt;i\&gt;Kursiv\&lt;/i\&gt;` in entsprechendes HTML-Markup.
  -
  -`sd:odd(<zahl>)`::
  -   Die Rückgabe ist `true()`,, wenn die angegebene Zahl ungerade ist.
  -
  -`sd:group-width(<string>)`::
  -   Gibt die Breite in Rasterzellen für die Gruppe im ersten Argument an. Beispiel: `sd:group-width('Beispielgruppe')`
  -
  -`sd:group-height(<string>[,<string>])`::
  -   Gibt die Höhe in Rasterzellen für die Gruppe im ersten Argument an. Beispiel: `sd:group-height('Beispielgruppe')`. Ist ein zweites Argument angegeben, so wird die Gruppenhöhe als Vielfaches der Einheit genommen. Beispiel: `sd:group-height('Beispielgruppe','mm')` gibt die genaue Höhe der Gruppe in mm an.
  -
  -`sd:pagenumber(<Marke>)`::
  -   Liefert die Seitenzahl der Seite auf der die angegebene Marke ausgegeben wurde. Siehe den Befehl <<cmd-mark,Mark>> und den Abschnitt über <<ch-verzeichnisseerstellen-marker>>.
  -
  -`sd:aspectratio(<Bildname>)`::
  -   Gibt das Ergebnis der Division Bildbreite / Bildhöhe zurück. (D. h. < 1 für Hochkantbilder, > 1 für Querformat.)
  +`sd:loremipsum()`::
  +   Alias für `sd:dummytext()`
   
   `sd:merge-pagenumbers(<Seitenzahlen>,[<Trenner für Bereiche>],[<Trenner für Leerraum>])`::
      Fasst Seitenzahlenbereiche zusammen. Beispielsweise aus `"1, 3, 4, 5"` wird `1, 3–5`.
  
positive.code: Die Layout-Funktionen sind im Namensraum `urn:speedata:2009/publisher/functions/de` (im Folgenden mit `sd:` gekennzeichnet) definiert. Optionale Parameter werden durch eckige Klammern markiert.
  Beispiel: die Funktion `sd:current-row()`  kann auch mit Parameter `sd:current-row('name')` aufgerufen werden. Die Auslassungspunkte `...` bedeuten, dass der letzte Wert beliebig oft wiederholt werden kann.
  
  `sd:current-framenumber(<area>)`::
     Gibt die Nummer des aktuellen Rahmens im Platzierungsbereich zurück.
  
  
negative.code: Bei leerem Trenner für Bereiche werden Zahlen
  nicht zusammengeführt, sondern einzeln mit dem Trenner für Leerraum verbunden.
  
  `sd:number-of-columns([<area>])`::
     Gibt die Anzahl der Spalten auf der Seite bzw. im angegebenen Bereich.
  
  `sd:number-of-pages(<Dateiname oder URI-Schema>)`::
     Ermittelt die Anzahl der Seiten der angegebenen (PDF-)Datei. Siehe das Beispiel in <<ch-mehrseitigepdf>>.
  
  `sd:number-of-rows([<area>])`::
     Gibt die Anzahl der Zeilen auf der Seite bzw. im angegebenen Bereich.
  
  `sd:odd(<zahl>)`::
     Die Rückgabe ist `true()`,, wenn die angegebene Zahl ungerade ist.
  
  `sd:pagenumber(<Marke>)`::
     Liefert die Seitenzahl der Seite auf der die angegebene Marke ausgegeben wurde. Siehe den Befehl <<cmd-mark,Mark>> und den Abschnitt über <<ch-verzeichnisseerstellen-marker>>.
  
  `sd:randomitem(<Wert>[,<Wert>,...])`::
     Gibt einen der Werte zurück.
  
  `sd:reset-alternating(<typ>)`::
     Setzt den Zustand für `sd:alternating()` für den angegebenen Typ zurück.
  
  `sd:sha1(<Wert>[,<Wert>, ...])`::
     Erzeugt die SHA-1 Summe der Hintereinanderkettung der Werte als Hex-Zeichenkette. Beispiel: `sd:sha1('Hallo ', 'Welt')` ergibt die Zeichenkette `28cbbc72d6a52617a7abbfff6756d04bbad0106a`.
  
  `sd:variable-exists(<Name>)`::
     Prüft, ob eine Variable definiert wurde.
  
  `sd:variable(<Name>[, ...])`::
     ist dasselbe wie `$Name`, nur mit der Möglichkeit den Namen auch dynamisch zu erzeugen. Falls `$i` den Wert 3 enthält, liest `sd:variable('foo',$i)` den Inhalt der Variablen `$foo3`. Damit lassen sich Arrays abbilden.
  
  
  == XPath-Funktionen
  
  