Home > Articles

  • Print
  • + Share This
This chapter is from the book

This chapter is from the book

8.2 Footnotes

8.2.1 Footnote definition

Using the footnote object, you can position out-of-line information at the bottom of a page.

  • The anchor area is the last area defined by the inline child.

  • Out-of-line information is placed relative to the anchor —

    • typically at the bottom of the page in which the anchor is flowed.

  • Out-of-line content is the content of the footnote-body child.

    • It is always a set of block-level constructs.

Information must be defined at the inline level of the flow.

  • The object supplies the content of the inline anchor.

The blocks of the footnote body are positioned in the area tree accordingly.

  • The footnote body is flowed to the footnote reference area (see Figure 8-1).

  • Footnote body length cannot be preset and is always derived from the content of the float.

The same restrictions as for float apply.

  • A footnote's body is an area that is not normally flowed and cannot be defined within any other area that is not normally flowed (e.g. another footnote, a float, a perimeter region, an absolutely positioned block container, etc.).

  • It must be defined in the body region of the page as a descendant of a relatively positioned block.

  • It cannot have any float, footnote, or marker descendants.

There exist no built-in semantics of footnote numbering or citations.

  • Numbering and presentation is the responsibility of the stylesheet or application generating the flow objects, including —

    • what is displayed inline and how it is displayed,

      • e.g. superscripting, italics, font size, etc.,

    • how the inline reference is reflected in the out-of-line information for correlation by the reader.

  • Numbering cannot be restarted on a per-page basis.

    • The page boundaries are determined by the formatter and are not known to the transformation process.

  • The XSLT process producing the XSL-FO instance can probably use the same criteria for determining the page sequence boundaries to do footnote numbering either across the page sequence or across the entire publication.

There is no automatic copying of the inline content to the start of the footnote body.

  • It is the stylesheet writer's responsibility to define both the footnote citation and the footnote body separately.

  • You may wish to use different formatting properties for each use of the footnote citation.

8.2.2 The footnote object

Purpose

  • This is the content to be rendered partly in the flow and partly towards the after edge of the body region regardless of where in the region the content is defined.

    • It includes the inline content to render in the flow where the footnote body content is defined.

Content

  • (6.10.3) (inline, footnote-body),

  • child objects (listed alphabetically):

    • footnote-body (6.10.4; 238),

    • inline (6.6.7; 103).

Property sets

  • Common accessibility properties (7.4; 326).

No other properties are defined for this formatting object.

The example shown in Figure 8-4 illustrates the use of footnotes.

08fig04.jpgFigure 8-4. Example for footnotes

An excerpt from Figure 8-4 is shown in Example 8-1.

Of note:

  • the footnote definitions are embedded in the blocks at the point where the footnote citation is rendered;

  • the footnote citation in the block is formatted differently from the footnote citation echoed in the footnote reference area.

8.2.3 The footnote-body object

Purpose

  • This is the portion of footnote content rendered towards the after edge of the body region.

Content

  • (6.10.4) (%block;)+,

  • child object:

    • %block; (6.2; 69),

  • referring object:

    • footnote (6.10.3; 237).

Property sets

  • Common accessibility properties (7.4; 326).

Example 8-1 Footnote constructs in Figure 8-4

Line 01 <page-sequence master-reference="frame">
     02   <static-content flow-name="xsl-footnote-separator">
     03     <block font-style="italic">Footnotes</block>
     04   </static-content>
     05 
     06   <flow flow-name="frame-body" font-size="40pt">
     07     <block>This is a test</block>
     08     <block>This is a<footnote>
   09     <inline baseline-shift="15pt" font-size="20pt">1</inline>
   10     <footnote-body>
   11       <block font-size="20pt">
   12         <inline baseline-shift="5pt" font-size="15pt"
   13           >1 </inline>This is a footnote with a very
   14 long paragraph so that it will (hopefully) wrap onto
   15 multiple lines in the footnote area.
   16       </block>
   17     </footnote-body>
   18     </footnote> test</block>
   19     <block>This is a test</block>
   20     <block>This is a<footnote>
   21     <inline baseline-shift="15pt" font-size="20pt">2</inline>
   22     <footnote-body>
   23       <block font-size="20pt">
   24         <inline baseline-shift="5pt" font-size="15pt"
   25           >2 </inline>This is another footnote, once 
   26 again with a very long paragraph so that it will
   27 (hopefully) wrap onto multiple lines in the footnote area.
   28       </block>
   29     </footnote-body>
   30     </footnote> test</block>
   31     <block>This is a test</block>
   32     <block>This is a test</block>
   33     ...
   

No other properties are defined for this formatting object.

An excerpt from Figure 8-4 highlighting the footnote-body object is shown in Example 8-2.

Example 8-2 Footnote constructs in Figure 8-4

Line 01 <page-sequence master-reference="frame">
     02   <static-content flow-name="xsl-footnote-separator">
     03     <block font-style="italic">Footnotes</block>
     04   </static-content>
     05 
     06   <flow flow-name="frame-body" font-size="40pt">
     07     <block>This is a test</block>
     08     <block>This is a<footnote>
     09     <inline baseline-shift="15pt" font-size="20pt">1</inline>
     10     <footnote-body>
   11       <block font-size="20pt">
   12         <inline baseline-shift="5pt" font-size="15pt"
   13           >1 </inline>This is a footnote with a very
   14 long paragraph so that it will (hopefully) wrap onto
   15 multiple lines in the footnote area.
   16       </block>
   17     </footnote-body>
   18     </footnote> test</block>
   19     <block>This is a test</block>
   20     <block>This is a<footnote>
   21       <inline baseline-shift="15pt" font-size="20pt">2</inline>
   22       <footnote-body>
   23         <block font-size="20pt">
   24           <inline baseline-shift="5pt" font-size="15pt"
   25             >2 </inline>This is another footnote, once 
   26 again with a very long paragraph so that it will
   27 (hopefully) wrap onto multiple lines in the footnote area.
   28         </block>
   29       </footnote-body>
   30     </footnote> test</block>
   31     <block>This is a test</block>
   32     <block>This is a test</block>
   33     ...
   
  • + Share This
  • 🔖 Save To Your Account