Version dev

# Kompatibilität mit älteren Versionen

Die Entwicklung des speedata Publishers hat ein großes »Mantra«: Bestehende Setups müssen ohne Änderung mit neueren Versionen des speedata Publishers funktionieren. Sie können also immer auf die neueste Version aktualisieren, ohne befürchten zu müssen, dass Sie Ihre Layout-Datei ändern müssen.

Neue Funktionen werden über neue XML-Tags oder Attribute eingeführt. Bestehende Layoutdateien ignorieren diese einfach und funktionieren weiterhin.

## Legacy-Optionen

Seit Version 5 sind der XPath-Parser `lxpath` und der Fontloader `harfbuzz` die Voreinstellung. Die älteren Varianten (`luxor` und `fontforge`) sind veraltet (deprecated) und sollen mit Version 6.0 entfernt werden. Falls ein bestehendes Layout eine der alten Varianten benötigt, kann diese übergangsweise über die Konfigurationsdatei aktiviert werden.

Bekannte Unterschiede der alten Varianten:

- `fontforge`: Unterstützt virtuelle Fonts, mit denen bestimmte Fontfeatures simuliert werden können.
- `luxor`: Kann mit Dimensionen rechnen (z.B. `"2cm + 12mm"`), was nicht der XPath-Spezifikation entspricht, aber in einigen älteren Layouts verwendet wird.

### Umstieg auf lxpath und harfbuzz

Wer eine der alten Varianten noch nutzt, sollte vor Version 6.0 umstellen:

- `luxor`: Das Layout mit der Voreinstellung `lxpath` laufen lassen und die gemeldeten Fehler beheben. Rechenausdrücke mit Maßeinheiten (z.B. `"2cm + 12mm"`) lassen sich mit der Funktion `sd:dimexpr()` nachbilden.
- `fontforge`: Den Schlüssel `fontloader` aus der Konfigurationsdatei bzw. das Attribut `mode="fontforge"` bei `<LoadFontfile>` entfernen; die Schriften werden dann mit `harfbuzz` geladen. Type-1-Schriften (`.pfb`) funktionieren nur mit fontforge und sollten nach OpenType konvertiert werden.

## Anforderungen in der Layoutdatei festlegen

Mit dem Attribut `require` im Befehl `<Layout>` kann sichergestellt werden, dass eine bestimmte Konfiguration aktiv ist. Das ist nützlich, wenn Layoutdateien zwischen verschiedenen Installationen ausgetauscht werden:

    <Layout
        xmlns="urn:speedata.de:2009/publisher/en"
        xmlns:sd="urn:speedata:2009/publisher/functions/en"
        require="lxpath,harfbuzz">

Die verfügbaren Optionen sind:

Schlüsselwort | Beschreibung
--- | ---
`lxpath` | Stellt sicher, dass der XPath-Parser `lxpath` benutzt wird (Standard seit v5).
`harfbuzz` | Stellt sicher, dass der Fontloader `harfbuzz` benutzt wird (Standard seit v5).
`luxor` | Erzwingt den alten XPath-Parser (veraltet).
`fontforge` | Erzwingt den alten Fontloader (veraltet).

#### Inhalt