von Patrick Gundlach |

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:

Trennstellen anzeigen im Text

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="•"/>

Anderes Zeichen für Worttrennungen

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>

Komma und Bindestrich ragen in den rechten Rand hinein

In der Serie »Feature der Woche« beschreibe ich jeden Montag mehr oder weniger nützliche Eigenschaften des Publishers. Kommentare gerne an mich per E-Mail oder einfach im Kommentarfeld.