12.6.4. Page-sequence Flow Object Class

A page-sequence flow object is formatted to produce a sequence of page areas. The structure and positioning of the page areas shall be controlled by page-models.

A page-sequence flow object has the following characteristics:

There shall be an applicable page-model for every page produced by the page-sequence.

The ports of a page-sequence flow object are determined by the page-models.

12.6.4.1. Page-model

A page-model is the specification of a set of possible hierarchies of areas.

(page-model? obj)

Returns #t if obj is of type page-model, and otherwise returns #f.

[188] page-model-definition = (define-page-model page-model-name [[page-region-specification+ | width-specification | height-specification | filling-direction-specification? | decoration-specification*]])

[189] page-model-name = variable

define-page-model binds page-model-name to a page-model object.

The top-level area is the page area. The page area contains a number of sub-areas called page-regions. The layout order of the page-regions corresponds to the order of their specification in the page-model-definition. Page-regions may overlap.

[190] page-region-specification = (region [[x-origin-specification | y-origin-specification | width-specification | height-specification | decoration-specification* | filling-direction-specification? | header-specification? | footer-specification? | page-region-flow-map?]] )

A page-region-specification specifies an area container with fixed dimensions that is filled to produce a page-region area. Each page-region has a single predominant filling-direction.

NOTE 63: Included-container-area flow objects may use a different filling direction.

It is possible to have display areas with different placement directions on the same page using multiple page-regions, as illustrated in Figure 15.

rotarea

Figure 15: Multiple Filling Directions on a Single Page

[191] page-region-flow-map = (flow port-specifier+)

A page-region-flow-map specifies that areas resulting from formatting flow objects directed into any of the ports identified by one of the port-specifiers may be assigned to this page-region.

If there is no page-region-flow-map, then (flow #f) is the default.

If a port-specifier occurs in more than one page-region-flow-map in a page-region-specification in a page-model-definition, then the page-regions shall be filled in the order in which their page-region-specifications occur in the page-model-definition.

[192] port-specifier = identifier | #f

A port-specifier that is an identifier specifies a port with that name; a port-specifier of #f specifies the principal port.

[193] header-specification = (header generated-area-clauses )

A header-specification specifies areas to be generated at the beginning of a page-region or column.

[194] footer-specification = (footer generated-area-clauses )

A header-specification specifies areas to be generated at the end of a page-region or column.

[195] generated-area-clauses = [[height-specification? | width-specification? | filling-direction-specification? | contents-alignment-specification? | generate-specification]]

generated-area-clauses specifies areas to be generated.

[196] generate-specification = (generate expression)

The expression shall evaluate to an unlabeled sosofo specifying only displayed flow objects.

[197] x-origin-specification = (x-origin expression)

The expression shall evaluate to a length which specifies the x component of the origin of the area container with respect to its parent's coordinate system.

[198] y-origin-specification = (y-origin expression)

The expression shall evaluate to a length which specifies the y component of the origin of the area container with respect to its parent's coordinate system.

[199] width-specification = (width expression)

The expression shall evaluate to a length which specifies the width (size in the positive x direction) of the area container with respect to its parent's coordinate system.

[200] height-specification = (height expression)

The expression shall evaluate to a length which specifies the height (size in the positive y-direction) of the area container with respect to its parent's coordinate system.

[201] decoration-specification = (decorate expression)

The expression shall evaluate to a decoration-area object. The area is decorated by the object as explained in “Decoration Areas”.

[202] filling-direction-specification = (filling-direction expression )

The expression shall evaluate to one of the symbols left-to-right, right-to-left, or top-to-bottom specifying the filling-direction of the area container.

If the filling-direction is not specified on the page-region, it shall be inherited from the page-model. It shall be an error if it is not specified on either the page-region or the page-model.

[203] contents-alignment-specification = (contents-alignment expression )

The expression shall evaluate to one of the symbols start, end, center, or justify specifying the alignment of the child areas within the area container in the filling-direction of the area container. The default is start.