A float is a characteristic of a formatting object that lets it float to a different location on the page. This assumes that the object does not have to maintain its strict location in the sequence of text. A figure can move the top or side of a printed page, or the side of an HTML page, and the text can adjust to its new location. If it is to one side, then the text can wrap around the opposite side.
Not all XSL-FO processors support floats. The current version of FOP does not, for example. Other processors may have limitations when handling floats. Check your processor documentation.
Each type of float has a name to indicate its position:
left right start end inside outside before none
These are described in more detail in the section “A sidebar as side float”.
What about floating to the bottom of a printed page? That float location is not part of the XSL-FO 1.0 specification. It could be done using the XSL-FO footnote mechanism, but the DocBook XSL stylesheets do not do that.
You can make a figure float using any of these methods:
Add a floatstyle attribute to the figure element. The floatstyle attribute was added in version 4.3 of the DocBook DTD. Set the attribute value to the type of float.
Add a float attribute to the figure element, and set the attribute value to the type of float. This attribute can be used for all versions of the DTD.
Add a float attribute to the figure element, and set the attribute value to 1. This indicates that the stylesheet should use the value of the default.float.class parameter as the type of float. That parameter has a
default value of before (which has no effect in HTML).
Put the figure element inside a sidebar element and configure the sidebar as a float. See the section “A sidebar as side float” for more information. do not include a float or floatstyle attribute on the figure element.
Whatever value you assign to the float or floatstyle attribute is used to create the appropriate property in the HTML or print output. When you specify a float for HTML output, it will appear in the HTML as follows:
<div class="figure-float" style="float: left;"> ...
FO output looks something like the following:
<fo:float float="left"> <fo:block ...>Figure 1.1. My figure</fo:block> <fo:external-graphic src="url(images/mypicture.png)"/> </fo:float>
For print output, you can also customize how side floats are handled for any element. See the section “Custom side float” for details.
| DocBook XSL: The Complete Guide - 4th Edition | PDF version available | Copyright © 2002-2007 Sagehill Enterprises |