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

Formatierer-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ängender Einzug, 
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 ersten Zeile, Einzug der ersten Zeile, Einzug der ersten Zeile, 
Einzug der ersten Zeile, Einzug der ersten Zeile, Einzug der ersten Zeile 
</fo:block>

 

Formatierer-Ansicht

Formatierer-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.

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

Formatter Options

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

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

6.4. Die Schriftgröße

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

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

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

6.5. Die Zeilenhöhe/der Zeilenabstand

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

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

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

6.6. Der Schriftschnitt/Die Fontausprägung

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

Das Attribut font-style ermöglicht unterschiedliche Kursivdarstellungen. Mit dem Attributwert italic wird eine Font-Variante bezeichnet, die im Namen den Ausdruck kursiv o. Ä. enthält. Mit den Attributwerten oblique bzw. backslant wird eine Font-Darstellung be­zeich­net, in der der normale Schriftschnitt nach rechts bzw. links geneigt ist. Mit dem Attributwert normal wird der normale Schriftschnitt bezeichnet. In den meisten Umgebungen werden lediglich die Schriftschnitte normal und italic verfügbar sein. Bei Fehlen der entsprechenden Schriftschnitte ignoriert der Formatierer die nicht unterstützten Schnitte.

Mit font-weight lässt sich die Fettausprägung des Fonts festlegen. Zulässig sind die Werte: bold, bolder, lighter100, 200 usw. bis 900. In der gängigen Praxis wird lediglich ein Schriftschnitt für bold (fett) zur Verfügung stehen.

6.7. Unterstreichung, Überstreichung und Durchstreichung

Das Attribut text-decoration bewirkt die Unter-, Über- oder Durchstreichung von Text. Wird das Attribut auf ein Block-Element angewendet, dann gilt der Attributwert für alle untergeordneten Elemente. Wird es auf ein inzeiliges Element angewendet, dann gilt es lediglich für den Inhalt des gegebenen 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, sondern Leistungsmerkmal 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 enge Wortzwischenräume, einen guten Zeilenumbruch und ein einheitlich dichtes Graubild der Textblöcke. Für den Zeilenumbruch bietet XSL-FO ein differenziertes Instrumentarium zur Spezifikation. Die Qualität des Satzergebnisses ist aber ein Merkmal des verwendeten Formatierers, weil dieser die Spezifikationen nach eigenen Regeln für den Zeilenumbruch umsetzt.

Die Einstellmöglichkeiten für die Silbentrenn-Attribute, die XSL-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 aufeinanderfolgender 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 die Unterstrukturen.

Beispiel:

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

Beim Antenna House Formatter ist die für die Silbentrennung in Deutsch die Spezifikation hyphenate="true" xml:lang="de" üblich. Für die oben genannten weiteren Silbentrenn-Attribute gelten die entsprechenden Vorgabewerte von XSL-FO. Für die Eingabe eines Trennzeichens, das nur dann gesetzt wird, wenn das Wort, in dem sich dieses Zeichen befindet, am Ende einer Zeile getrennt wird, wird der „weiche“ Trennstrich verwendet (Unicode-Zeichen­ &#00AD;).

6.9. Horizontale Linien in Blöcken

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

Zur genauen Festlegung stehen eine Reihe von Attributen zur Verfü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 (liniert) 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. Code-Beispiel, Abb. unten) und ridge (s. Code-Beispiel, Abb. unten)

  • 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, die allerdings in der Praxis keine Bedeutung haben oder bisher von keinem Formatierer unterstützt werden.

Beispiel:

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

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

(2) Hier sind verschiedene Muster mit unterschiedlichen Linienstärken aufgelistet.

Formatierer-Ansicht

Formatierer-Ansicht

Typischerweise wird das Element <fo:leader> für die Erstellung von Führungslinien 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

Formatierer-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 Attributs letter-spacing steuern. Es definiert den Leerraum zwischen zwei Buchstaben innerhalb eines Wortes über den normalen Abstand zwischen den Zeichen hinausgehend. Der Wert wird in absoluten Maßen angegeben und kann sowohl negativ als auch positiv sein. Der Vorgabewert ist normal. Negative Werte für den Leerraum werden von den Formatierern unterschiedlich behandelt, üblicherweise ignoriert.

6.12. Wortabstände

Das Attribut word-spacing reguliert den Abstand zwischen zwei Wörtern über den normalen Wortabstand hinausgehend. Auch hier müssen absolute Maße angegeben werden und auch diese können sowohl positiv wie negativ sein. Der Vorgabewert ist normal. Negative Werte für den Wortabstand werden von den Formatierern unterschiedlich behandelt, üblicherweise ignoriert.

6.13. Hoch- und Tiefstellung

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

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

6.14. Zeilen-, Spalten- und Seitenumbruch kontrollieren

Für die gezielte Umbruchsteuerung stehen die von anderen Satzsystemen gewohnten Attribute zur Verfügung. Sie lassen sich zu vier Gruppen ordnen:

  • Attribute für die Vermeidung der sogenannten „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 ihrer Attributwerte:

  • 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, sodass die folgende bzw. vorausgehende Seite eine linke, geradzahlige Seite ist) und right (Seitenumbruch, sodass die folgende bzw. vorausgehende Seite eine rechte, ungeradzahlige Seite ist). Ggf. wird eine Leerseite eingefügt.

<< zurück vor >>
Tipp der data2type-Redaktion:
Zum Thema XSL-FO bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © dpunkt.verlag GmbH 2004
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XSL-FO in der Praxis" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

dpunkt.verlag GmbH, Ringstraße 19B, 69115 Heidelberg, fon 06221-14830, fax 06221-148399, hallo(at)dpunkt.de