Überschriften mit einfachen Nummerierungen

Überschriften mit generierten Nummerierungen lassen sich mit Hilfe von Tabellen befriedigend typografieren.

Es soll gezeigt werden, wie sich Überschriften mit Hilfe von Tabellenstrukturen gestalten lassen. In diesem Zusammenhang wird die Methode der Nummerierung (<xsl:number>) von Überschriften erläutert. In diesem Abschnitt wird lediglich die Nummerierung in einer Ebene gezeigt.

Auszug aus der DTD:

<!ELEMENT Werk (Titel, Teil+)> 
<!ELEMENT Teil (Titel, Beitrag+)>     ❶
<!ELEMENT Titel (#PCDATA | ...)*>     ❷

❶ Teile <Teil> haben immer als erstes Unterelement eine Überschrift <Titel>.

❷ Eine Überschrift kann neben einfachen Zeichendaten auch Unterstrukturen enthalten.

Stylesheet:

<xsl:template match="Werk/Teil/Titel">                                          ❶
   <fo:block xsl:use-attribute-sets="Ueberschrift-Titel1" hyphenate="false">    ❷
      <fo:table width="110mm">                                                  ❸
         <fo:table-column column-number="1" column-width="15mm"/>               ❸
         <fo:table-column column-number="2" column-width="95mm"/>               ❸
         <fo:table-body>
            <fo:table-row>                                                      ❸
               <fo:table-cell column-number="1">                                ❹
                  <fo:block>                                                    ❺
                     <xsl:number level="single" count="Teil" format="I."/>      ❻
                  </fo:block>
               </fo:table-cell>
               <fo:table-cell column-number="2">                                ❹
                  <fo:block>                                                    ❺
                     <xsl:apply-templates/>                                     ❼
                  </fo:block>
               </fo:table-cell>
            </fo:table-row>
         </fo:table-body>
      </fo:table>
   </fo:block>
</xsl:template>

❶ Das Template bezieht sich ausschließlich auf <Titel> in der Umgebung <Teil>.

❷ Die Überschrift wird in einen Block eingekleidet. Für diesen Block werden die an anderer Stelle im Stylesheet spezifizierten typografischen Attribute gesetzt, außerdem Attribute, die lediglich für Überschriften dieser Ebene gelten sollen. Diese Attribute vererben sich auf die folgende Unterstruktur der Tabelle.

❸ In diese Tabelle sollen die zwei Komponenten der Überschrift in zwei Spalten geordnet werden. Die Spalte mit der Nummer 1 nimmt die Nummerierung auf, die Spalte mit der Nummer 2 den textlichen Inhalt. Mit dieser Spaltenanordnung wird sichergestellt, dass bei unterschiedlich breit laufenden Nummern der textliche Inhalt immer gleich links angeschlagen ist und auch beim Umbruch in mehrere Zeilen die Nummerierung freigestellt bleibt. Für die Tabelle sind keine Rahmenlinien spezifiziert, sie bleibt also in der Seitendarstellung als Tabelle unsichtbar. Die gezeigte Tabellenstruktur zeigt die einfachste Form für eine Tabelle, die lediglich eine Zeile und darin zwei Zellen hat. Für die vertikale Ausrichtung der Zelleninhalte ist display-align="before" gesetzt. Dies bewirkt, dass die Zelleninhalte am oberen Zellenrand angeschlagen werden.

❹ Durch die Referenzierung der Spaltennummer werden die entsprechenden Spalten-Spezifikationen in <fo:table-column> übernommen. Die Zelleninhalte werden am oberen Zellenrand angeschlagen, weil dies dem Vorgabewert des Attributs display-align entspricht.

❺ Innerhalb der Tabellenzelle muss der textliche Inhalt in einen Block eingekleidet werden, weil der Inhalt sonst nicht horizontal ausgerichtet werden kann. Ohne jedes Attribut gilt die Voreinstellung start für text-align, d. h. bei der üblichen Schreibrichtung links-aliniiert.

❻ Innerhalb der linken Tabellenzelle wird die Nummerierung dargestellt. Für die Generierung besagt das Attribut level die Nummerierung in einer Ebene, das Attribut count, was nummeriert werden soll, nämlich die Teile – nicht die Teil-Überschriften! –, und das Attribut format, wie die Nummerierung gestaltet werden soll. Der Attributwert I. gibt das Gestaltungsmuster vor: Große römische Ziffern gefolgt von einem Punkt.

❼ Der gesamte Inhalt einschließlich ggf. auftretender Unterstrukturen von <Titel> in der Umgebung von <Teil> wird in die rechte Tabellenzelle eingeordnet (am oberen Zellenrand angeschlagen und links aliniiert).

 

 

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