6. Typografische Mittel

XSL-FO zielt auf die – automatisierte – Gestaltung in einem Satz- und Umbruchsystem. Für die Typografie bietet XSL-FO deshalb die von anderen Satzsystemen gewohnten, teilweise darüber hinausgehenden Mittel in Form verschiedener Attribute und Elemente. Sie werden in den folgenden Abschnitten behandelt.

An dieser Stelle ein Beispiel für einige typografische Details:

...
<fo:block>
<fo:inline text-decoration="underline">
Unterstrichen,
</fo:inline>
<fo:inline text-decoration="line-through">
durchgestrichen
</fo:inline>
</fo:block>
<fo:block letter-spacing="3mm">
Sehr weit gesperrt.
</fo:block>
<fo:block word-spacing="15mm">
Sehr große Wortabstände.
</fo:block>
<fo:block text-transform="uppercase">
Transformation in Grossbuchstaben.
</fo:block>
<fo:block >
Diese Zeichenfolge ist
<fo:inline baseline-shift="30%">
hoch
</fo:inline>
und diese
<fo:inline baseline-shift="-30%">
tief gestellt.
</fo:inline>
</fo:block>
<fo:block text-align="left">
linksbündig
</fo:block>
<fo:block text-align="right">
rechtsbündig
</fo:block>
<fo:block text-align="center">
mittig zentriert.
</fo:block>
<fo:block text-align="justify" text-align-last="right">
Dies ist ein Beispiel eines Blocksatzes. Dies ist ein Beispiel eines Blocksatzes. Dies ist ein Beispiel eines Blocksatzes. Dies ist ein Beispiel eines Blocksatzes. Dies ist ein Beispiel eines Blocksatzes. Dies ist ein Beispiel eines Blocksatzes. Dies ist ein Beispiel eines Blocksatzes mit einer letzten rechtsbündigen Zeile.
</fo:block>
...

Formatierer-Ansicht

Ansicht

6.1. Textausrichtung

Die Attribute text-align und text-align-last legen fest, wie der textliche Inhalt innerhalb eines Blocks ausgerichtet werden soll. Die Eigenschaft text-align-last ermöglicht eine gesonderte Behandlung für die letzte Zeile eines Blocks. Die möglichen Werte für die Text-Ausrichtung sind:

  • center (mittig zentriert)

  • left (linksbündig, rechts flatternd)

  • right (rechtsbündig, links flatternd)

  • justify (Blocksatz, jede Zeile wird zwischen den Wörtern auf gleiche Breite ausgetrieben)

  • inside (zum Bund hin zentriert; linke Seite rechtsbündig – rechte Seite linksbündig)

  • outside (zum äußeren Beschnittrand zentriert; linke Seite linksbündig – rechte Seite rechtsbündig)

  • start (Bündigkeit mit dem start-Bereich; bei Sprachen mit einer anderen Schreibrichtung als lr-tb von Bedeutung)

  • end (Bündigkeit mit dem end-Bereich; bei Sprachen mit einer anderen Schreibrichtung als lr-tb von Bedeutung)

6.2. Einrückungen

Es wurden die zwei Ab­satz­ein­rüc­kungs­at­tri­bu­te start-indent und end-indent vorgestellt. Neben diesen beiden Attributen gibt es noch text-indent und last-line-end-indent.

Während start-indent und end-indent die Einrückung eines ganzen Blocks, d. h. aller Zeilen dieses Blocks im Start- bzw. Endbereich bewirkt, greift das Attribut text-indent lediglich auf die erste Zeile im Startbereich zu. Das Attribut last-line-end-indent bewirkt bei einer positiven Maßzahl die Einrückung des Absatzes im Start-, bei einer negativen Zahl im Endbereich.

Beispiel:

<fo:block text-align="justify" start-indent="10mm"end-indent="10mm" text-indent="-10mm">
Hängender Einzug, Hängender Einzug, Hängender Einzug, HängenderEinzug, Hängender Einzug, Hängender Einzug, Hängender Einzug, Hängender Einzug,Hängender Einzug, Hängender Einzug
</fo:block>
<fo:block space-before="5mm" text-align="justify"text-indent="10mm">
Einzug der erstenZeile, Einzug der ersten Zeile, Einzug der ersten Zeile, Einzug der erstenZeile, Einzug der ersten Zeile, Einzug der ersten Zeile
</fo:block>

Formatierer-Ansicht

Ansicht

6.3. Die Schriftart/Der Font

Das Attribut font-family bewirkt die Wahl einer Schriftart bzw. eines Fonts. Der Attributwert wird auf die Unterstrukturen im zu verarbeitenden Dokument vererbt.

An dieser Stelle sei auf mögliche Fehlerquellen in der Praxis hingewiesen.

Vgl. Kapitel Sollte der Antenna House Formatter verwendet werden, so findet man alle durch das System unterstützten Schriftarten/Fonts mit ihrem genauen Namen unter den Formatter Options.


Formatter Options

Ansicht

In diesen Optionen lassen sich Fonts als Vorgabewerte festlegen,die im Fall von nicht definierten Schriften im Stylesheet ersatzweiseherangezogen werden.

Es empfiehlt sich jedoch, alle verwendeten Fonts und Schriftgrößenim Stylesheet selbst zu definieren, da so im Falle der Verarbeitung an einemanderen Rechner oder mit einem anderen Formatierer eine mögliche Fehlerquelleeliminiert ist.


6.4. Die Schriftgröße

Mit dem Attribut font-size wird die Schriftgrößefestgelegt. Zulässig sind alle XSL-FO-Maßeinheiten, darunter die zur Angabe vonSchriftgrößen üblichen Punkte unter Angabe der Abkürzung pt.Ebenfalls möglich, aber unüblich, ist die Angabe in Prozent, relativ zurvererbten Größe, d. h. der in der gegebenen Umgebung geltendenSchrift­größe.

Nach den deutschen Normen sind alle typografischen Maße inMillimetern anzugeben. Im Hinblick auf die Verwendung in XSL-FO mit den gängigen Formatierern ist daraufhinzuweisen, dass bei Maßen lediglich eine Stelle hinter dem Komma verwertetwird. Bei der Angabe in Millimetern ist also die kleinste Maßzahl einZehntel-Millimeter. Punktangaben können deshalb wesentlich genauer sein, weilein Zehntel-Punkt lediglich etwa ein Drittel des Zehntel-Millimetersdarstellt.

Der Attributwert für die Schriftgröße wird auf die Unterstrukturenim zu verarbeitenden Dokument vererbt.


6.5. Die Zeilenhöhe/der Zeilenabstand

Das Attribut line-height bewirkt die Festlegung derZeilenhöhe und damit den Zeilenabstand. Auch hier sind alle XSL-FO-Maßeinheiten zulässig, ebenso die Angabeeiner Prozentzahl.

In der Praxis empfiehlt es sich, diese Angabe immer mit anzugeben.Bei Nichtspezifikation von Zeilenhöhe und Schriftgröße im Stylesheet bestehtdie Gefahr, dass diese durch den Vorgabewert des Formatierers ergänztwerden.

Der Attributwert für die Zeilenhöhe wird auf die Unterstrukturenim zu verarbeitenden Dokument vererbt.


6.6. Der Schriftschnitt/Die Fontausprägung

Mit den Attributen font-style und font-weight lässtsich der Schriftschnitt steuern. Die Attributwerte für die Schriftschnittewerden auf die Unterstrukturen im zu verarbeitenden Dokument vererbt.

Das Attribut font-style ermöglicht unterschiedlicheKursivdarstellungen. Mit dem Attributwert italic wird eine Font-Variantebezeichnet, die im Namen den Ausdruck kursiv o. Ä. enthält. Mit denAttributwerten oblique bzw. backslant wird eine Font-Darstellungbe­zeich­net, in der der normale Schriftschnitt nach rechts bzw. links geneigtist. Mit dem Attributwert normal wird der normale Schriftschnittbezeichnet. In den meisten Umgebungen werden lediglich die Schriftschnittenormal und italic verfügbar sein. Bei Fehlen der entsprechendenSchriftschnitte ignoriert der Formatierer die nicht unterstützten Schnitte.

Mit font-weight lässt sich die Fettausprägung des Fontsfestlegen. Zulässig sind die Werte: bold, bolder, lighter,100, 200 usw. bis 900. In der gängigen Praxis wirdlediglich ein Schriftschnitt für bold (fett) zur Verfügungstehen.


6.7. Unterstreichung, Überstreichung und Durchstreichung

Das Attribut text-decoration bewirkt die Unter-, Über- oderDurchstreichung von Text. Wird das Attribut auf ein Block-Element angewendet,dann gilt der Attributwert für alle untergeordneten Elemente. Wird es auf eininzeiliges Element angewendet, dann gilt es lediglich für den Inhalt desgegebenen Elements.

Das Attribut kann folgende Werte annehmen:

  • underline (einfache Unterstreichung)

  • overline (einfache Überstreichung)

  • line-through (einfache Durchstreichung)

  • none (keine Unter-, Über- oder Durchstreichung)

text-decoration ist kein Font-Merkmal, sondernLeistungsmerkmal des Formatierers.


6.8. Silbentrennung

Die Silbentrennung ist zwar kein direktes typografisches Merkmal,beeinflusst aber in hohem Maße die Qualität des Satzbildes durch engeWortzwischenräume, einen guten Zeilenumbruch und ein einheitlich dichtes Graubild derTextblöcke. Für den Zeilenumbruch bietet XSL-FO ein differenziertesInstrumentarium zur Spezifikation. Die Qualität des Satzergebnisses ist aberein Merkmal des verwendeten Formatierers, weil dieser die Spezifikationen nacheigenen Regeln für den Zeilenumbruch umsetzt.

Die Einstellmöglichkeiten für die Silbentrenn-Attribute, dieXSL-FO anbietet, sind:

  • hyphenate (Silbentrennung gewünscht oder unerwünscht; mögliche Attributwerte deshalb true und false; Vorgabewert false)

  • hyphenation-character (Trennzeichen; Vorgabewert ist der gewohnte Trennstrich)

  • hyphenation-keep (Silbentrennung am Ende einer Spalte oder Seite; Attributwerte column, page verhindern die Silbentrennung am Ende einer Spalte bzw. Seite; Vorgabewert ist auto, d. h. keine Besonderheit für die Trennung)

  • hyphenation-ladder-count (Angabe der maximalen Zahl aufeinander folgender Zeilen, für die Silbentrennung erlaubt sein soll; Vorgabewert begrenzt die Zahl der Zeilen nicht)

  • hyphenation-push-character-count (spezifiziert für ein Wort die Mindest-Buchstabenzahl, die nach dem Trennzeichen in der folgenden Zeile stehen müssen; Vorgabewert ist 2)

  • hyphenation-remain-character-count (spezifiziert für ein Wort die Mindest-Buchstabenzahl, die vor dem Trennzeichen stehen müssen; Vorgabewert ist 2)

  • country (Attributwert ist eine standardisierte Landeskurzbezeichnung; kein Vorgabewert)

  • language (Attributwert ist eine standardisierte Sprachkurzbezeichnung; kein Vorgabewert; für Deutsch de)

Alle Attribute vererben ihre Attributwerte auf dieUnterstrukturen.

Beispiel:

<fo:block hyphenate="true"
hyphenation-character="!"
hyphenation-push-character-count="2"
hyphenation-remain-character-count="3"
language="de">
Lange Wörter wieFeuerwehrbrandschutzmeister müssen unbedingt getrennt werden.
<fo:block>

Beim Antenna House Formatter ist die für die Silbentrennung inDeutsch die Spezifikation hyphenate="true" xml:lang="de" üblich. Für dieoben genannten weiteren Silbentrenn-Attribute gelten die entsprechendenVorgabewerte von XSL-FO. Für die Eingabe eines Trennzeichens, das nur danngesetzt wird, wenn das Wort, in dem sich dieses Zeichen befindet, am Ende einerZeile getrennt wird, wird der „weiche“ Trennstrich verwendet (Unicode-Zeichen­).


6.9. Horizontale Linien in Blöcken

Das Element <fo:leader> dient zur Erzeugung vonhorizontalen Linien innerhalb von Blöcken bzw. Zeilen. Diese werden in derPraxis oft als Führungslinien in Inhaltsverzeichnissen zwischen dem Text undder rechts ausgerückten Seitenzahl eingesetzt. Die Linien können, wie auch dieRahmen, gestrichelt, gepunktet oder durchgehend sein, oder aber aus selbstdefinierten Zeichen bestehen.

Zur genauen Festlegung stehen eine Reihe von Attributen zurVerfügung:

  • leader-length (Länge der Linie; Vorgabewerte sind minimal 0pt, optimal 12pt, maximal 100%, d. h. normalerweise füllt die Linie den textleeren Raum einer Zeile vollständig aus)

  • leader-pattern (Füllzeichenmuster; mögliche Werte sind: space (Leerzeichen), dots (punktiert), rule (liniiert) oder use-content (beliebiges Zeichenmuster, das als Inhalt im <fo:leader>-Element enthalten ist)

  • rule-style (Muster der Linie; mögliche Werte: dotted (punktiert), dashed (gestrichelt), solid (durchgehend), double (doppelt), groove (s. Beispiel, Abb. 6-22) und ridge (s. Beispiel, Abb. 6-22)

  • rule-thickness (Stärke der Linie; Vorgabewert ist 1pt)

  • color (Farbe; Vorgabewert wird durch den Formatierer bestimmt, üblicherweise schwarz)

Darüber hinaus sind eine Reihe weiterer Attribute definiert, dieallerdings in der Praxis keine Bedeutung haben oder bisher von keinemFormatierer unterstützt werden.

Beispiel:

<fo:block>
<fo:leader leader-pattern="use-content"leader-length="90%">
Trennlinie
</fo:leader>
<fo:leader leader-pattern="rule" leader-length="70%" rule-style="dotted" rule-thickness="5pt"/>DOTTED
<fo:leader leader-pattern="rule" leader-length="70%" rule-style="dashed" rule-thickness="1pt"/>DASHED
<fo:leader leader-pattern="rule" leader-length="70%" rule-style="double" rule-thickness="1pt"/>DOUBLE
<fo:leader leader-pattern="rule" leader-length="70%" rule-style="ridge" rule-thickness="10pt"/>RIDGE
<fo:leader leader-pattern="rule" leader-length="70%" rule-style="groove" rule-thickness="10pt"/>GROOVE
</fo:block>

Durch Setzen des Attributs leader-pattern aufden Wert use-content wird der Inhalt des Elements<fo:leader> zur Erstellung der Führungslinie herangezogen.

Hier sind verschiedene Muster mit unterschiedlichenLinienstärken aufgelistet.


Formatierer-Ansicht

Ansicht

Typischerweise wird das Element <fo:leader>Führungslinie in Inhaltsverzeichnissen verwendet.

Beispiel:

<fo:block text-align-last="justify">
Kapitel: Horizontale Linien
<fo:leader leader-pattern="rule" rule-style="dotted" rule-thickness="1pt"/>
Seite 18
</fo:block>

Formatierer-Ansicht

Ansicht

6.10. Die Groß- und Kleinschreibung

Das Attribut text-transform dient zur Umwandlung von Groß-und Kleinschreibung. Es bietet vier Möglichkeiten:

  • capitalize wandelt den ersten Buchstaben eines jeden Worts in einen Großbuchstaben um.

  • uppercase wandelt alle Kleinbuchstaben in Großbuchstaben um.

  • lowercase wandelt alle Großbuchstaben in Kleinbuchstaben um.

  • none behält die vorhandene Groß- und Kleinschreibung bei. Dieser Wert ist der Vorgabewert.


6.11. Zeichenabstände

Die Sperrung von Zeichen lässt sich mit Hilfe des Attributsletter-spacing steuern. Es definiert den Leerraum zwischen zweiBuchstaben innerhalb eines Wortes über den normalen Abstand zwischen denZeichen hinausgehend. Der Wert wird in absoluten Maßen angegeben und kannsowohl negativ als auch positiv sein. Der Vorgabewert ist normal.Negative Werte für den Leerraum werden von den Formatierern unterschiedlichbehandelt, üblicherweise ignoriert.


6.12. Wortabstände

Das Attribut word-spacing reguliert den Abstand zwischenzwei Wörtern über den normalen Wortabstand hinausgehend. Auch hier müssenabsolute Maße angegeben werden und auch diese können sowohl positiv wie negativsein. Der Vorgabewert ist normal. Negative Werte für den Wortabstandwerden von den Formatierern unterschiedlich behandelt, üblicherweiseignoriert.


6.13. Hoch- und Tiefstellung

Das Attribut baseline-shift verschiebt die Grundliniedieser Textpassage relativ zur Umgebung. Diese Verschiebung kann in Prozentoder absolut, mit einem positiven oder negativen Wert angegeben werden oderaber unter Verwendung der Werte super (hochgestellt) und sub(tiefgestellt). Der Vorgabewert baseline erzeugt keine Verschiebung.

Das Attribut vertical-align, für vertikale Ausrichtung, istin inzeiligen Elementen alternativ einzusetzen, darüber hinaus aber inTabellenzellen. Seine möglichen Werte sind: baseline (Grundlinie, keineVerschiebung; Vorgabewert), middle (mittig innerhalb einerTabellenzelle), sub (tiefgestellt), super (hochgestellt),text-top (in einer Tabellenzelle oben angeschlagen), text-bottom(in einer Tabellenzelle unten angeschlagen), ein Prozentwert (positive Werteverschieben nach oben, negative nach unten), ein absoluter Wert (positive Werteverschieben nach oben, negative nach unten), top (in der gegebenen Zeileoben angeschlagen) oder bottom (in der gegebenen Zeile untenangeschlagen).


6.14. Zeilen-, Spalten- und Seitenumbruch kontrollieren

Für die gezielte Umbruchsteuerung stehen die von anderenSatzsystemen gewohnten Attribute zur Verfügung. Sie lassen sich zu vier Gruppenordnen:

  • Attribute für die Vermeidung der so genannten „Schusterjungen“ (orphans) und „Hurenkinder“ (widows)

  • Umbruchverhindernde Attribute, d. s. keep-together, keep-with-next und keep-with-previous

  • Umbrucherzwingende Attribute, d. s. break-after und break-before

  • Umbrucherzwingende oder -verhindernde Attribute, alternativ zu benutzen, d. s. page-break-after, page-break-before und page-break-inside

Der Einsatz dieser Attribute und die Wirkungen ihrerAttributwerte:

  • Mit dem orphans-Attribut („Schusterjungen“) wird spezifiziert, wie viele Zeilen eines Blocks am Fuß einer Spalte oder Seite mindestens zusammengehalten werden müssen. Der Vorgabewert ist 2.

  • Mit dem widows-Attribut („Hurenkinder“) wird spezifiziert, wie viele Zeilen eines Blocks am Kopf einer Spalte oder Seite mindestens zusammengehalten werden müssen. Der Vorgabewert ist 2.

  • Die umbruchverhindernden Attribute keep-together (Zusammenhalten des gegebenen Blocks oder inzeiligen Elements), keep-with-next (Zusammenhalten des gegebenen Blocks mit dem folgenden Block bzw. des gegebenen inzeiligen Elements mit dem nachfolgenden Text) und keep-with-previous (Zusammenhalten des gegebenen Blocks mit dem vorausgehenden Block bzw. des gegebenen inzeiligen Elements mit dem vorausgehenden Text) haben die gleiche Anwendungslogik. Ihr Vorgabewert ist .within-line=auto, .within-column=auto, .within-page=auto, d. h. es wird keine Bedingung für das Zusammenhalten gesetzt. Um das Zusammenhalten unter allen Umständen zu erzwingen, wird das Attribut auf den Wert always gesetzt. Ganze Zahlen als Attributwert, z. B. 3, werden kontextabhängig vom Formatierer umgesetzt und schwächen den Zwang zum Zusammenhalten ab.

  • Die umbrucherzwingenden Attribute break-after und break-before werden für Blöcke gesetzt und bewirken durch ihre Attributwerte einen Umbruch danach bzw. davor. Der Vorgabewert ist auto, d. h. es wird keine Bedingung für den Umbruch gesetzt. Mit den Attributwerten column (Spalte), page (Seite), even-page (linke bzw. geradzahlige Seite) und odd-page (rechte bzw. ungeradzahlige Seite) wird ein entsprechender Umbruch danach bzw. davor bewirkt. Ggf. wird eine Leerseite eingefügt.

  • Die alternativ einzusetzenden Attribute für die Erzwingung bzw. Vermeidung von Umbrüchen page-break-after (Umbruch nach dem gegebenen Block), page-break-before (Umbruch vor dem gegebenen Block) und page-break-inside (Umbruch innerhalb des gegebenen Blocks) beziehen sich lediglich auf den Seitenumbruch. Sie stellen abgekürzte Schreibweisen für die oben beschriebenen Attribute dar. Der Vorgabewert auto für alle diese Attribute weder verbietet noch erzwingt einen Umbruch.
    Das Attribut page-break-inside hat lediglich einen alternativen Attributwert avoid, mit dem der gegebene Block zusammengehalten wird.
    In page-break-after und page-break-before hat avoid die gleiche Wirkung in Bezug auf den nachfolgenden bzw. vorausgehenden Block. Weitere mögliche Attributwerte sind always (Seitenumbruch unter allen Bedingungen), left (Seitenumbruch, so dass die folgende bzw. vorausgehende Seite eine linke, geradzahlige Seite ist) und right (Seitenumbruch, so dass die folgende bzw. vorausgehende Seite eine rechte, ungeradzahlige Seite ist). Ggf. wird eine Leerseite eingefügt.

 

<< zurück
vor >>