Supported XSL 1.1 Features
- Conditional graphic scaling, e.g. "scale-down-to-fit"
Conditional graphic scaling is designed with two new attributes, appliable to fo:external-graphic and fo:instream-foreign-object: allowed-height-scale and allowed-width-scale. They are alike, so the further text describes the former one.
The value of allowed-height-scale attribute may be a sequence of percentage values or the token "any".
Allowed-height-scale specifies a list of constraints on the scale-factor values that may be used when scaling a graphic in the height direction. The list is unordered, except that an "any" value is considered last and is only used if the scaling constraints cannot be satisfied using any of the other specified values.
- Table of contents windows (aka bookmarks)
The fo:bookmark-tree formatting object is used to hold a list of access points within the document such as a table of contents, a list of figures or tables, etc. Each access point is called a bookmark.
The fo:bookmark formatting object is used to identify an access point, by name, and to specify where that access point is within the current document or another external document. A given bookmark may be further subdivided into a sequence of (sub-)bookmarks to as many levels as the authors desire.
The property "starting-state" determines whether any sub-list of bookmarks is initially displayed or is hidden. The value "show" means include the sub-list of bookmarks in the presentation of this bookmark. The value "hide" means show only this bookmark in the presentation.
The fo:bookmark-title formatting object is used to identify, in human readable form, an access point.
- Folio-prefix and folio-suffix
Two new elements fo:folio-prefix and fo:folio-suffix may be placed in fo:page-sequence specify a static prefix(suffix) for the folio numbers within a page-sequence.
The child areas of the inline-areas produced by fo:page-number, fo:page-number-citation and fo:page-number-citation-last are the same as the result of formatting a result-tree fragment consisting of the content of any fo:folio-prefix child of the reference-page-sequence, followed by fo:character flow objects; one for each character in the folio-number string and with only the "character" property specified, followed by the content of any fo:folio-suffix child of the reference-page-sequence.
- Support for a value of "only" for the page-position property
The value "only" of the page-position attribute provides a mean to declare that a pagemaster is eligible for selection if this is the only page (i.e. the page is both first and last) page in the page-sequence.
- Support for a page-number-citation-last formatting object (retrieving the last page number of a section or document)
The fo:page-number-citation-last is used to reference the page-number for the last page containing an area that is (a) returned by the cited formatting object and (b) has an area-class that is consistent with the specified page-citation-strategy.
It may be used to provide the page-numbers in the table of contents, cross-references, and, when combined with fo:page-number-citation, for page range entries.
- Support for "flowmaps" and other region/float extensions
One or more fo:flow-map objects may be placed in fo:layout-master-set. An fo:simple-page-master is allowed to have more than one fo:region-body children. An fo:page-sequence is allowed to have more than one fo:flow children.
The assignment of flows to regions on a page-master is determined by a flow-map. The flow-map is an association between the flow children of the fo:page-sequence and regions defined within the page-masters referenced by that fo:page-sequence.
Flow-maps are specified by fo:flow-map formatting objects. An fo:page-sequence uses the flow-map indicated by its flow-map-reference property when assigning its flows to regions. If the flow-map-reference property is not specified for the page-sequence then the implicit flow-map is used for that page-sequence, as in version 1.0 of this Recommendation. The "flow-name" property of a flow specifies to which region that flow is assigned. Each region has a "region-name" property. The flow-map assigns a flow to the region that has the same name.