11. Das Float-Konzept

Das Float-Konzept wird in der Praxis für zwei Gestaltungsziele eingesetzt, die auf den ersten Blick nicht viel miteinander zu tun zu haben scheinen. Das eine Ziel ist die Erzeugung von Texten, die andere Objekte (meist Bilder) umfließen, das andere die Platzierung von Marginalien, d. h. Texten, die aus dem Textfluss (am Rand) herausgestellt sind. Für letztere Nutzung ist das Float-Konzept nur bedingt geeignet, allerdings notgedrungen dafür zurechtgebogen, weil es in XSL-FO kein eigenständiges Marginalien-Konzept gibt.

Das fließende Element wird in den Block eingefügt, in dem es fließen soll. Dafür wird es in ein <fo:float>-Element eingekleidet. Mit dem gleichnamigen Attribut float wird spezifiziert, wohin das Fließ-Objekt im umgebenden Block fließen soll. Der Attributwert:

  • start setzt das Fließ-Objekt an den Start-Rand, bei der bei uns üblichen Schreibrichtung links.

  • end setzt das Fließ-Objekt an den End-Rand, bei der bei uns üblichen Schreibrichtung rechts.

  • left setzt das Fließ-Objekt an den linken Rand.

  • right setzt das Fließ-Objekt an den rechten Rand.

Für den Einsatz des Antenna House Formatters hat das Attribut noch zwei weitere, proprietäre Werte:

  • inside setzt das Fließ-Objekt an den inneren Rand (auf der linken Seite rechts, auf der rechten Seite links).

  • outside setzt das Fließ-Objekt an den äußeren Rand (auf der linken Seite links, auf der rechten Seite rechts).

Im umgebenden Block muss entsprechender Raum für das Fließ-Objekt freigeschlagen werden. Dies wird als Attribut des umgebenden Block-Elements mit dem Attribut intrusion-displace gesteuert.

Das Attribut kann folgende Werte enthalten:

  • line umfließt den Inhalt des <fo:float>-Elements unter Berücksichtigung von start-indent.

  • indent umfließt den Inhalt des <fo:float>-Elements unter der Berücksichtigung von text-indent und start-indent.

  • block erzeugt einen Block neben dem Inhalt des <fo:float>-Elements unter der Berücksichtigung von text-indent. Das heißt, der umgebende Block wird ab dem oberen Rand des Fließ-Objekts eingezogen.

Ein Beispiel für umfließenden Text (line):

<fo:block intrusion-displace="line">
   TEXT TEXT TEXT TEXT ... TEXT TEXT TEXT
   <fo:float float="left">
      <fo:block>
         <fo:external-graphic src="hellas.bmp" content-width="30mm"/> 
      </fo:block>
   </fo:float> 
   TEXT TEXT TEXT ... TEXT TEXT TEXT 
   <fo:float float="right">
      <fo:block >   
         <fo:external-graphic src="hellas.bmp"content-width="30mm"/>
      </fo:block>
   </fo:float>
   TEXT TEXT TEXT ... TEXT TEXT TEXT 
</fo:block>

 

Formatierer-Ansicht

Formatierer-Ansicht

Ein Beispiel für einen eingezogenen Block:

<fo:block intrusion-displace="block">
   <fo:float float="right">
      <fo:block margin-left="3mm">
         MARGINALIE
      </fo:block>
   </fo:float> 
   TEXT TEXT TEXT ... TEXT TEXT TEXT 
</fo:block>

 

Formatierer-Ansicht

Formatierer-Ansicht

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