[Accessibility conventions are described at the bottom of the page]
*** This is a free preview excerpt of a commercial publication. ***

7. Floats, footnotes and containers
[> 8.][< 6.0][^^^]
7.0 Out-of-line publishing constructs
[> 8.][< 7.][^^][^^^]
Floats, footnotes and absolutely positioned containers render information supplemental to the information found in the flow:
[[1] - information is easily found by a reader because of a predetermined location on the page
[[2] - defined "in line" of the flow of information being paginated
 [2] - rendered "out-of-line" of the flow of information being paginated
 [2] - considered auxiliary enough not to disturb the flow itself for the reader
[[3] - reader can choose to examine a float or footnote at leisure without interrupting the reading of the flow
]][1] - dynamically rendered on the page where detected by the formatter in the flow
[[2] - can only be defined in the flow filling the body region of a page
[[3] - also cannot be defined in an absolutely positioned area
][2] - it is stacked in a different reference area than the main reference area
][1] - floats are rendered to either the before, start, or end edges within the body region
[[2] - not in the perimeter regions
][1] - footnotes are two-part constructs:
[[2] - footnote citation rendered inline in the flow
 [2] - footnote body rendered at the after edge of the body region
 [2] - an after float is accomplished using a footnote without a footnote citation
[[3] - only when footnotes are not already being used
]][1] - block containers can be absolutely positioned on the page
[[2] - relative to the parent or relative to the medium
 [2] - inline containers are positioned inline but have the same block-oriented content as a block container
 [2] - the construct is named by where it is allowed to be specified, not by its contents
][1] - out-of-line objects may not have out-of-line descendent objects
]
Footnote labeling is the responsibility of transformation
[[1] - the label of a footnote reference is supplied in the instance and not generated by the formatter
 [1] - restarting the footnote referencing on a per-page basis is not available in XSL-FO 1.0
]
No endnote constructs in XSL-FO
[[1] - responsibility of transformation to implement endnote functionality
 [1] - cite endnotes inline in the flow of the scope
 [1] - collect and render endnotes at the end of scope
[[2] - can use empty citations at end to take advantage of XSL-FO footnote construct
]]
Using out-of-line constructs allows the normal flow to stack in the body without interruption
[[1] - floats stack at the perimeter edges of the page
 [1] - can prevent large gaps in the normal flow when large constructs would otherwise jump to a new page
]
Many candidate uses of out-of-line constructs
[[1] - using <[float]> either within a block or between blocks:
[[2] - floating images to the top of a page
 [2] - side-bar presentations
 [2] - lists with item bodies indented relative to the corresponding item label's formatted length
 [2] - a multi-line drop initial cap in a paragraph
][1] - using <[footnote]> allowed only within a block:
[[2] - traditional footnotes
 [2] - acronym expansions
 [2] - glossary definitions
 [2] - sinking images to the bottom of a page (using an empty inline construct)
 [2] - trailing disclaimer at the bottom of the last page of a rendered document
][1] - using absolutely-positioned <[block-container]> allowed either within a block or between blocks
[[2] - positioning a logo in static content
 [2] - positioning crop marks in an oversized page
]]
The name of the construct shouldn't prejudice how the construct is used
[[1] - consider the need mentioned above to format a disclaimer at the bottom of the last page of a document
 [1] - one can flow the disclaimer in the body of a footnote with an empty citation in an empty block at the end of the document
]
Every page's body region has two sub-regions rendered only if necessary
[[1] - before-floats and footnotes are stacked in the body region with other block-level constructs
[[2] - the reader needs some separation rendered to distinguish content belonging in a float or footnote from the content belonging in the body
 [2] - the body region is separated into the before-float-reference-area, main-reference-area, and footnote-reference-area
][1] - the act of defining the separators does not effect their rendering
[[2] - defined using static content
 [2] - only rendered on a page if the floated information is being rendered on the page
 [2] - xsl-before-float-separator
[[3] - inside and at the end of the before-float-reference-area
][2] - xsl-footnote-separator
[[3] - inside and at the start of the footnote-reference-area
][2] - should always be defined as a contingency if floats and footnotes are being used
]]
[Figure 7.1: Conditional areas and sub-regions
A box representing a region-body is divided into three stacked reference areas labeled before-float-reference-area, main-reference-area, and footnote-reference-area. The xsl-before-float-separator sub-region is within the before-float-reference-area and the xsl-footnote-separator sub-region is within the footnote-reference-area, each adjacent to the main-reference-area.
]
Remember from [Figure 4.2] the incursion of perimeter regions into the body if the body margins are not set accordingly
[[1] - all reference areas shown above are within the body-region's margins
]
The XSL-FO objects covered in this chapter are:
[[1] - <[float]> ([6.12.2])
[[2] - content that is to be rendered towards either the before, start, or end edges of the body region regardless of where in the region the content is defined
][1] - <[footnote]> ([6.12.3])
[[2] - content that is to be rendered both in the flow and towards the after-edge of the body region regardless of where in the region the content is defined
][1] - <[footnote-body]> ([6.12.4])
[[2] - the portion of footnote content rendered towards the after-edge of the body region
][1] - <[block-container]> ([6.5.3])
[[2] - the specification of a block-level reference area for contained descendant blocks
][1] - <[inline-container]> ([6.6.8])
[[2] - the specification of an inline-level reference area for contained descendant blocks
]]

*** This is a free preview excerpt of a commercial publication. ***

This is an accessible version of Crane's commercial training material. The content has been specifically designed to assist screen reader software in viewing the entire textual content. Figures are replaced with text narratives.

Navigation hints are in square brackets:
[Tx.x] and [Fx.x] are textual representations of the applicability icons;
[digit] indicates list depth for nested lists;
[link [URL]] indicates the URL of a hyperlink if different than link;
[EXAMPLE] indicates an example listing of code;
[FIGURE] indicates the presence of a figure replaced by its description;
[>] jumps forward;
[<] jumps backward;
[^] jumps to start of the section;
[^^] jumps to the start of the chapter;
[^^^] jumps to the table of contents.
Suggestions for improvement are welcome: [info@CraneSoftwrights.com]
Book sales: [http://www.CraneSoftwrights.com/links/trn-acc.htm]
Information: [http://www.CraneSoftwrights.com/links/info-acc.htm]
This content is protected by copyright and, as there are no means to protect this accessible version from plagiarism, please do not make any commercial edition available to others.

+//ISBN 978-1-894049::CSL::Courses::PFUX//DOCUMENT Practical Formatting Using XSL-FO 2008-01-27 17:30UTC//EN
Practical Formatting Using XSL-FO
Seventh Edition - 2008-01-27
ISBN 978-1-894049-19-1
Copyright © Crane Softwrights Ltd.