Automatic Footnote Numbering

Top Previous Topic Next Topic  Print this topic

XF Ultrascale 2012 includes two extensions which allow applying automatic numbering to footnotes.

 

Footnote Number

 

The xf:footnote-number element can be used inside any fo:footnote element to retrieve the index which has been assigned to that specific footnote. It can be placed either inside the fo:inline or fo:footnote-body elements, whenever it is necessary to display the number of the footnote. This element has no attributes. The formatting is specified globally in the xf:footnote-properties element.

 

Footnote Properties

 

The xf:footnote-properties element is used to customize the way footnote numbers are assigned and formatted. This element may appear at any point in the document, overriding the previous settings from that point on in the document flow. Its attributes have the following meanings:

 

The start-index attribute sets the first index to be used when starting or restarting footnote numbering. Default value is 1.
The restart-rule attribute defines when to restart footnote numbering. Possible values are auto, meaning that numbering does not restart implicitly, and page, which will cause the numbering to restart on every page from the number specified by start-index. Default value is auto.
The restart-now attribute will force the numbering to restart exactly when the xf:footnote-properties element is processed.
The format attribute specifies the format to use when displaying footnote numbers. Valid values are the same as those supported by fo:page-number and fo:page-number-citation.

 

 

NOTE: For each occurrence of the xf:footnote-properties element, unspecified attributes will revert to their default values.

 

Example:

 

<?xml version="1.0" encoding="utf-8" standalone="no"?>

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xf="http://www.ecrion.com/xf/1.0">

       <fo:layout-master-set>

               <fo:simple-page-master master-name="all-pages" page-height="5in" page-width="6in">

                       <fo:region-body region-name="xsl-region-body" column-gap="0.25in" padding="6pt" margin="0.7in" />

                       <fo:region-before region-name="xsl-region-before" display-align="after" extent="0.7in" padding="6pt"/>

                       <fo:region-after region-name="xsl-region-after" display-align="before" extent="0.7in" padding="6pt"/>

               </fo:simple-page-master>

               <fo:page-sequence-master master-name="default-sequence">

                       <fo:repeatable-page-master-reference master-reference="all-pages"/>

               </fo:page-sequence-master>

       </fo:layout-master-set>

       <fo:page-sequence master-reference="default-sequence">

               <fo:flow flow-name="xsl-region-body">

                       <fo:block>

                               Hello World

                               <fo:footnote>

                                       <!-- will display 1 because it is placed in the first footnote -->

                                       <fo:inline color="red"><xf:footnote-number/></fo:inline>

                                       <fo:footnote-body>

                                               <fo:block>

                                                       <!-- will display 1 because it is placed in the first footnote -->

                                                       <fo:inline color="red"><xf:footnote-number/></fo:inline>

                                                       A "Hello World" program is a computer program

                                                       which prints out "Hello, world!" on a display device.

                                               </fo:block>

                                       </fo:footnote-body>

                               </fo:footnote>

                       </fo:block>

                       <fo:block break-before="page">

                               Hello World

                               <fo:footnote>

                                       <!-- will display 2 because it is placed in the second footnote and restart-rule is 'auto' -->

                                       <fo:inline color="red"><xf:footnote-number/></fo:inline>

                                       <fo:footnote-body>

                                               <fo:block>

                                                       <!-- will display 2 because it is placed in the second footnote and restart-rule is 'auto' -->

                                                       <fo:inline color="red"><xf:footnote-number/></fo:inline>

                                                       A "Hello World" program is a computer program

                                                       which prints out "Hello, world!" on a display device.

                                               </fo:block>

                                       </fo:footnote-body>

                               </fo:footnote>

                       </fo:block>

                       <!-- will cause numbering to restart for each page from here on -->

                       <xf:footnote-properties restart-rule="page" />

                       <fo:block break-before="page">

                               Hello World

                               <fo:footnote>

                                       <!-- will display 1 because restart-rule is now 'page' -->

                                       <fo:inline color="red"><xf:footnote-number/></fo:inline>

                                       <fo:footnote-body>

                                               <fo:block>

                                                       <!-- will display 1 because restart-rule is now 'page' -->

                                                       <fo:inline color="red"><xf:footnote-number/></fo:inline>

                                                       A "Hello World" program is a computer program

                                                       which prints out "Hello, world!" on a display device.

                                               </fo:block>

                                       </fo:footnote-body>

                               </fo:footnote>

                       </fo:block>

                       <fo:block>

                               Hello World

                               <fo:footnote>

                                       <!-- will display 2 because it is on the same page -->

                                       <fo:inline color="red"><xf:footnote-number/></fo:inline>

                                       <fo:footnote-body>

                                               <fo:block>

                                                       <!-- will display 2 because it is on the same page -->

                                                       <fo:inline color="red"><xf:footnote-number/></fo:inline>

                                                       A "Hello World" program is a computer program

                                                       which prints out "Hello, world!" on a display device.

                                               </fo:block>

                                       </fo:footnote-body>

                               </fo:footnote>

                       </fo:block>

                       <!-- will cause the numbering to restart right now, but will also reset restart-rule to 'auto' -->

                       <!-- format="i" will also format the numbers as lowercase Roman letters -->

                       <xf:footnote-properties restart-now="true" format="i" />

                       <!-- to keep the numbering restarting on each page, set restart-rule explicitly -->

                       <xf:footnote-properties restart-rule="page" restart-now="true" format="i" />

                       <fo:block>

                               Hello World

                               <fo:footnote>

                                       <!-- will display i -->

                                       <fo:inline color="red"><xf:footnote-number/></fo:inline>

                                       <fo:footnote-body>

                                               <fo:block>

                                                       <!--  will display i -->

                                                       <fo:inline color="red"><xf:footnote-number/></fo:inline>

                                                       A "Hello World" program is a computer program

                                                       which prints out "Hello, world!" on a display device.

                                               </fo:block>

                                       </fo:footnote-body>

                               </fo:footnote>

                       </fo:block>

                       <fo:block>

                               Hello World

                               <fo:footnote>

                                       <!--  will display ii -->

                                       <fo:inline color="red"><xf:footnote-number/></fo:inline>

                                       <fo:footnote-body>

                                               <fo:block>

                                                       <!--  will display ii -->

                                                       <fo:inline color="red"><xf:footnote-number/></fo:inline>

                                                       A "Hello World" program is a computer program

                                                       which prints out "Hello, world!" on a display device.

                                               </fo:block>

                                       </fo:footnote-body>

                               </fo:footnote>

                       </fo:block>

                       <fo:block>

                               Hello World

                               <fo:footnote>

                                       <!--  will display iii -->

                                       <fo:inline color="red"><xf:footnote-number/></fo:inline>

                                       <fo:footnote-body>

                                               <fo:block>

                                                       <!--  will display iii -->

                                                       <fo:inline color="red"><xf:footnote-number/></fo:inline>

                                                       A "Hello World" program is a computer program

                                                       which prints out "Hello, world!" on a display device.

                                               </fo:block>

                                       </fo:footnote-body>

                               </fo:footnote>

                       </fo:block>

                       <fo:block>

                               Hello World

                               <fo:footnote>

                                       <!--  will display iv -->

                                       <fo:inline color="red"><xf:footnote-number/></fo:inline>

                                       <fo:footnote-body>

                                               <fo:block>

                                                       <!--  will display iv -->

                                                       <fo:inline color="red"><xf:footnote-number/></fo:inline>

                                                       A "Hello World" program is a computer program

                                                       which prints out "Hello, world!" on a display device.

                                               </fo:block>

                                       </fo:footnote-body>

                               </fo:footnote>

                       </fo:block>

               </fo:flow>

       </fo:page-sequence>

</fo:root>