Silbentrennung / Spracheinstellungen
Silbentrennung ist in den meisten westlichen Sprachen notwendig, um ein akzeptables Erscheinungsbild für schmale Texte zu haben. Silbentrennung ist ein integraler Bestandteil des Umbruchalgorithmus, beispielsweise weil vermieden werden soll, dass mehrere Trennungen in aufeinanderfolgenden Zeilen auftreten.
Die Silbentrennung wird im Publisher über die Sprache gesteuert und musterbasiert vorgenommen.
Die Sprache kann man global einstellen über <Options mainlanguage="..."> oder Absatzweise.
<Options mainlanguage="German" />
stellt das gesamte Dokument auf deutsche Trennmuster um, während
<Paragraph language="German">
<Value>Autobahn</Value>
</Paragraph>
nur für einen Absatz die Sprache umstellt.
Die verfügbaren Sprachen sind in der Befehlsreferenz unter <Options> beschrieben.
Alternativ zu den ausgeschriebenen Namen wie German kann auch der Sprachcode verwendet werden.
Die beiden Beispiele oben können auch wie folgt benutzt werden:
<Options mainlanguage="de" />
<Paragraph language="de">
<Value>Autobahn</Value>
</Paragraph>
Möchte man testen, ob die Wörter richtig getrennt werden, kann man mit <Trace hyphenation="yes" /> kleine Markierungen erzeugen lassen. Alle Schalter des Befehls <Trace> listet das Kapitel Fehlerbehebung / Debugging auf.
<Layout
xmlns="urn:speedata.de:2009/publisher/en"
xmlns:sd="urn:speedata:2009/publisher/functions/en">
<Options mainlanguage="German" />
<Trace hyphenation="yes" />
<Record element="data">
<PlaceObject>
<Textblock width="3">
<Paragraph>
<Value>Autobahn</Value>
</Paragraph>
</Textblock>
</PlaceObject>
</Record>
</Layout>
ergibt folgendes:
Mittels
<Hyphenation>er-go-no-mic</Hyphenation>
kann man für einzelne Wörter Trennvorschläge bzw. -ausnahmen definieren. So werden die Wörter dann nur an den mit Bindestrich angegebenen Stellen getrennt. Die Trennausnahme gilt für die Hauptsprache des Dokuments. Mit dem Attribut language kann man die Sprache festlegen, für die die Trennausnahme gilt.
| Mit optischem Randausgleich, der im Abschnitt Optischer Randausgleich beschrieben ist, kann man die Anzahl der Silbentrennungen im Dokument etwas verringern. |
Trennungen für Absätze ausschalten
Für einzelne Absätze kann man die automatische Silbentrennung ausschalten, in dem man ein Textformat definiert mit hyphenate="no"
<DefineTextformat name="nohyphen" hyphenate="no"/>
In so markierten Absätzen werden keine Wörter getrennt. Die Anwendung von Textformaten ist in einem eigenen Abschnitt beschrieben.
Das Zeichen für die Silbentrennung kann man ebenfalls über ein Textformat verändern:
<DefineTextformat name="dothyphen" hyphenchar="•"/>
Verschiedene Sprachen innerhalb eines Absatzes benutzen
Man kann die Sprache für einen Textblock, einen Absatz und sogar für Teile eines Absatzes setzen. Dazu umgibt man den Text mit <Span language="..."> und </Span>.
<Paragraph language="en">
<Span language="de">
<Value>Also schön, Guido Heffels,
nachfolgend meine Textempfehlung
für das Blindtextbuch.
</Value>
</Span>
<Br />
<Span>
<Value>A wonderful serenity has taken
possession of my entire soul, like these sweet
mornings of spring which I enjoy with my whole
heart.
</Value>
</Span>
</Paragraph>
Trennungen nur an bestimmten Zeichen zulassen
Eine Eigenschaft von <Paragraph> erlaubt die Zeichen einzugrenzen, an denen ein Zeilenumbruch eingefügt werden darf.
Das ist bei technischen Daten oft wichtig, wo z. B. Typenbezeichnungen in der Form 12-345/AB vorkommen, und nicht getrennt werden sollen.
Im folgenden Beispiel darf nur hinter einem Schrägstrich umbrochen werden:
<Paragraph allowbreak="/">
<Value>https://download.speedata.de/publisher/development/</Value>
</Paragraph>
Die Voreinstellung für allowbreak ist " -", also ein Umbruch an einem Leerzeichen oder einem Trennstrich.
| Das ist ein experimentelles Feature im Publisher. Wahrscheinlich wird dies in einer zukünftigen Version einem Textformat zugeordnet werden. |
Zeilenumbruch mit Sonderzeichen steuern
Einige Unicode-Zeichen steuern den Zeilenumbruch direkt im Text. Sie sind unsichtbar und können in den Daten oder im Layout als numerische Zeichenreferenz geschrieben werden.
| Zeichen | Eingabe | Wirkung |
|---|---|---|
| U+00AD weicher Trennstrich | ­ |
Das Wort darf an dieser Stelle getrennt werden. Am Zeilenende erscheint das Trennzeichen des Textformats (hyphenchar), sonst bleibt das Zeichen unsichtbar. |
| U+200B Leerzeichen mit Nullbreite | ​ |
Ein Umbruch ohne Trennstrich ist erlaubt, zum Beispiel in langen Bezeichnungen oder bei Thai (siehe Schriftsysteme). |
| U+2060 Wortverbinder | ⁠ |
Zwischen den beiden Zeichen wird nicht umbrochen. |
| U+00A0 geschütztes Leerzeichen |   |
Ein Leerzeichen, an dem nicht umbrochen wird, zum Beispiel zwischen Zahl und Einheit. |
<Paragraph>
<Value>Donau­dampf­schiff­fahrt, 12 kg</Value>
</Paragraph>
Ein Umbruch hinter einem Bindestrich lässt sich mit U+2060 nicht verhindern, dafür gibt es das Attribut allowbreak (siehe oben).
Andere Schriftsysteme
Rechtsläufige Schriften wie Arabisch und Hebräisch, Chinesisch, Japanisch und Koreanisch sowie Thai und verwandte Schriften haben eigene Regeln für Schreibrichtung, Zeilenumbruch und Zeichenformen. Sie sind im Abschnitt Schriftsysteme beschrieben.