XSL-FO Tutorials - Herong's Tutorial Examples - Version 2.10, by Dr. Herong Yang
Adding "xsl-footnote" Separator
This section provides a tutorial example on how to use the 'xsl-footnote-separator' sub-region to create a static block to separate footnote body blocks from the page main 'body' blocks.
In the previous tutorial, we learned that there is conditional sub-region called "xsl-footnote" located near the "after" edge of the "xsl-region-body" region.
If a page contains no "footnote" blocks, this "xsl-footnote" sub-region will be empty and will not be displayed. But if a page has one or more "footnote" blocks, this "xsl-footnote" sub-region will be not be empty and will be displayed to present all "footnote" blocks citated on this page.
Associated with the "xsl-footnote" sub-region, there is another sub-region called "xsl-footnote-separator" located "before" the "xsl-footnote" sub-region.
"xsl-footnote-separator" can take a "static-content" block stack and format it as the separator of the "xsl-footnote" sub-region.
Here is my tutorial example, sub-region-xsl-footnote-separator.fo, that has a "static-content" to specify a block for the "xsl-footnote-separator" sub-region:
<?xml version="1.0" encoding="utf-8"?> <!-- sub-region-xsl-footnote-separator.fo - Copyright (c) 2016, HerongYang.com, All Rights Reserved. --> <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> <fo:layout-master-set> <fo:simple-page-master master-name="page" margin="0.08in" margin-bottom="0.2in" page-height="3in" page-width="2.5in"> <fo:region-body region-name="body" background-color="#eeeeee"/> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-reference="page"> <fo:static-content flow-name="xsl-footnote-separator"> <fo:block>------------</fo:block> </fo:static-content> <fo:flow flow-name="body"> <fo:block margin="0.08in" font-size="10pt"> The Three Little Pigs<fo:footnote> <fo:inline baseline-shift="super" font-size="5pt" background-color="#ffccff">†</fo:inline> <fo:footnote-body> <fo:block font-size="5pt" background-color="#ffccff" margin="0.05in">† Pigs are stout, barrel-shaped mammals that are known for their big appetites. </fo:block> </fo:footnote-body> </fo:footnote> </fo:block> <fo:block margin="0.08in" font-size="8pt" text-align="justify"> Once upon a time there was not one, not two but three little pigs who lived with their mother. Early one morning they woke up and their mother said "you're too big for this house and it is time you left home." </fo:block> <fo:block margin="0.08in" font-size="8pt" text-align="justify"> So they walked and they walked and they walked. The first little pig made a house out of straw. Unfortunately, a wolf<fo:footnote> <fo:inline baseline-shift="super" font-size="5pt" background-color="#ffccff">‡</fo:inline> <fo:footnote-body> <fo:block font-size="5pt" background-color="#ffccff" margin="0.05in">‡ Wolf is a highly intelligent and courageous hunter. </fo:block> </fo:footnote-body> </fo:footnote> came creeping by. </fo:block> <fo:block margin="0.08in" font-size="8pt" text-align="justify"> "Little pig, little pig, let me come in". "No, no, no by the hairs of my chinny chin chin I will not let you in". "Then I'll huff and I'll puff and I'll blow your house down". So the wolf huffed and he puffed and he blew the house down. </fo:block> <fo:block margin="0.08in" font-size="8pt" text-align="justify"> So the first little pig ran away to find his brothers. </fo:block> </fo:flow> </fo:page-sequence> </fo:root>
Since Apache FOP 2.1 does support "footnote" formatting objects, you can use it to process the above example. The resulting shows that there are 2 "footnote" body areas separated from the main body blocks by some "-" characters:
Last update: 2016.
Table of Contents
About This XSL-FO Tutorial Book
Apache™ FOP (Formatting Objects Processor)
XSL-FO Document Basics and Examples
Block-Level Formatting Objects
Inline-Level Formatting Objects
Including Graphics in XSL-FO document
►Floating Blocks - "float" and "footnote"
What Is "float" Formatting Object?
"float" Formatting Object Shifting to Left
clear="..." - Block Cleared from Side-Float
"float" Formatting Object Moving to Top
Adding "xsl-before-float" Separator
►Adding "xsl-footnote" Separator
Hyperlinks, Table of Contents and Indexes
Headers and Footers using "static-content"
Font Attributes and Font Families
Apache FOP Font Configurations