Feature der Woche: Silbentrennung
Silbentrennung ist in den meisten westlichen Sprachen notwendig, um ein einigermaßen gutes 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 (vielleicht sollte ich einen Beitrag dazu schreiben,
wie die Silbentrennung in TeX funktioniert…). Die Sprache kann man global
einstellen über <Options ...>
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.
Möchte man testen, ob die Wörter richtig getrennt werden, kann man mit <Options show-hyphenation="yes" />
kleine Markierungen erzeugen lassen.
<Layout
xmlns="urn:speedata.de:2009/publisher/en"
xmlns:sd="urn:speedata:2009/publisher/functions/en">
<Options mainlanguage="German" show-hyphenation="yes"/>
<Record element="data">
<PlaceObject>
<Textblock width="3">
<Paragraph>
<Value>Autobahn</Value>
</Paragraph>
</Textblock>
</PlaceObject>
</Record>
</Layout>
ergibt folgendes:
Mittels
<Hyphenation>trenn-stelle</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.
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ätze werden keine Wörter getrennt.
Das Zeichen für die Silbentrennung kann man ebenfalls über ein Textformat verändern:
<DefineTextformat name="dothyphen" hyphenchar="•"/>
Zum Schluss noch ein Hinweis, der nicht direkt mit Silbentrennung zu tun hat.
Bei <LoadFontfile .. />
kann man mit dem Parameter marginprotrusion
(Prozentangabe) bestimmen, wie weit bestimmte Zeichen (Komma, Punkt und
Bindestrich) rechts in den Rand hineinragen. Damit kann man einen optisch
ruhigeren Rand bei Blocksatz erreichen:
<Layout
xmlns="urn:speedata.de:2009/publisher/en"
xmlns:sd="urn:speedata:2009/publisher/functions/en">
<Options mainlanguage="German" ignoreeol="yes" />
<LoadFontfile name="main" filename="MinionPro-Regular.otf" marginprotrusion="100" />
<DefineFontfamily name="text" fontsize="10" leading="12">
<Regular fontface="main"/>
</DefineFontfamily>
<Record element="data">
<PlaceObject>
<Textblock width="4">
<Paragraph>
<Value select="."/>
</Paragraph>
</Textblock>
</PlaceObject>
</Record>
</Layout>
Die dazugehörige Datendatei (data.xml
) ist folgende:
<data>Also schön, Guido Heffels, nachfolgend meine Textempfehlung
für das Blindtextbuch. Sie mögen denken, aus welchem Anlass es
unbedingt eine solche poesiealbumhafte Antiquität sein muss, und
genau das sollen Sie ja auch.</data>