Many publishing requirements involve commonly-used constructs for pairs of layout areas, for non-textual information, for unidirectional associations, and for visual navigation and barrier lines. These are termed "generic" constructs in this book because of their wide use in many formatted results.
It is often necessary to format pairs of aligned block-level areas in the inline-progression direction, perhaps to present side-by-side language translation text, or an unordered list, or an ordered list. Block-level areas do not normally stack next to each other in the inline-progression direction because they are lined in the block-progression direction, flowing the following area after the preceding area. To align the layout of two block-level areas, XSL-FO provides a number of objects for the layout of the components of the pairs, without any bias to what goes into each member of the pair of areas and on the rendered result. These two areas are aligned on their respective before edges. A list is only a layout construct in XSL-FO, and the name is not to prejudice the use of the construct to only lists; rather, it can be used any time this association of pairs of aligned areas is required. This leaves the user in complete control over what is rendered in the list, by the XSL-FO objects only specifying the layout of the nested components of the list.
Non-textual information is typically a static graphic or photograph of some kind, though an electronic implementation of the presentation of structured information using XSL-FO can provide for dynamic components such as windows into live applications. When the non-textual information is not expressed in XML syntax, it must be external to the XSL-FO instance and is pointed to through properties. When the non-textual information is expressed in XML syntax (e.g. in the Scalable Vector Graphics (SVG) vocabulary), it may be either external to the XSL-FO instance or embedded within the XSL-FO instance.
Unidirectional associations can be defined in the XSL-FO instance for interactive user agents to render in an electronic format. The user can specify links from "hot" areas of the area tree to a target external resource, or to a target area in the same area tree. Interactivity engaged by the operator viewing the rendered result can cause navigating to the target location when the user interface triggers a traversal of the link. Once you have traversed a link, unidirectional links provide no inherent knowledge or "back link" information on where you started. Such behavior in web browsers and page turner applications is implemented by the application itself by remembering where the user had been before traversal, and is not found in the inherent properties of the link.
Both elastic and inelastic rules and patterns can be useful in formatting. Flowing two inline areas to the opposite ends of a line is a common need. Visual guidance or assistance is often necessary when the eye travels from one side of a page to the opposite side, as used in entries in tables of contents. Such areas can be filled with patterned sequences of characters joining information on a single line (e.g. a dot-leader), or with straight- ruled marks, in the inline-progression direction. The length of such areas cannot always be predetermined, so the elasticity of these areas gives the power that is needed because the construct grows to meet the requirements. It is also useful at times to break up the flow of information with visual barriers, with fixed length rules and patterns.
Examples of generic body constructs. Two example uses of aligned pairs of block-level layout areas are side-by-side presentation of simultaneously translated paragraphs in different languages ( illustrated in Figure 6-1 in the discussion on tables), and traditional list structures including numbered lists, bulleted lists, terminology definitions, etc., as shown in Figure 5-1. The same XSL-FO semantic is used for both these kinds of layout because of the need to align two block-level areas in the inline-progression direction.
Figure 5-1. Aligned layout areas
The example depicted in Figure 5-2 illustrates leaders , links and graphics in a mock-up of a table of contents page. The fact that the titles and page numbers of each of the entries in the table of contents is a hyperlink for jumping to the start of the corresponding chapter cannot be shown in the diagram.
Figure 5-2. Example for leaders, links, and graphics
The text of each line of the table of contents is "hot" in that the operator can interact with a hot area on the page in order to traverse the link, e.g. with a mouse click. The operator will thus move the focus to the target of the association, e.g. another page in the same XSL-FO formatted result, a page in the another XSL-FO formatted result, or perhaps a web browser with a web page address.
The graphic image shown below the subtitle in this example is an external static bit image, but it could as well be a window into a live application if that is supported by the user agent.
Various leaders are used on the page, including near the top where there are inelastic rule leaders 100% of the width of the page, above the page count where there is an inelastic rule leader 60% the width of the page, and in each entry where there is an elastic dot leader that stretches between the start-aligned titles and the end-aligned page numbers.
Included in this chapter. This chapter includes discussion of the following XSL-FO objects.