=> Главная База Знаний Xslt Создание сносок: <fo:footnote> и <fo:footnote-body>


Создание сносок: <fo:footnote> и <fo:footnote-body>

Создание сносок: <fo:footnote> и <fo:footnote-body>

Сноски называют «подстрочными» (out-of-line) форматирующими объектами, потому что они добавляют текст в нижнюю часть страницы. Сноска создается при помощи элемента

<fo:footnote>
, а текст тела сноски — при помощи элемента <fo:footnote-body>. В текущей спецификации XSL-FO эти элементы не поддерживают никаких свойств.

В следующем примере,

footnotes.fo
(листинг 12.5), я использую две сноски в теле документа и добавляю в них текст.

Листинг 12.5. footnotes.fo

<?xml version="1.0" encoding="UTF-8"?>

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

 <fo:layout-master-set>

  <fo:simple-page-master margin-right="20mm" margin-left="20mm"

   margin-bottom="10mm" margin-top="10mm" page-width="300mm"

   page-height="400mm" master-name="page">

   <fo:region-body margin-right="0mm" margin-left="0mm"

    margin-bottom="10mm" margin-top="0mm"/>

   <fo:region-after extent="10mm"/>

  </fo:simple-page-master>

 </fo:layout-master-set>

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

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

   <fo:block space-after="12pt" font-weight="bold"

    font-size="36pt" text-align="center">

    Using Footnotes

   </fo:block>

   <fo:block font-size="24pt">

    This:

    <fo:footnote>

     <fo:inline>footnote

      <fo:inline font-size="16pt" vertical-align="super">

       1

      </fo:inline>

     </fo:inline>

     <fo:footnote-body>

      <fo:block>

       1. Here's the first footnote's text.

      </fo:block>

     </fo:footnote-body>

    </fo:footnote>

    refers to text at the bottom of this page.

   </fo:block>

   <fo:block font-size="24pt">

    This second;

    <fo:footnote>

     <fo:inline>footnote

      <fo:inline font-size="16pt" vertical-align="super">

       2

      </fo:inline>

     </fo:inline>

     <fo:footnote-body>

      <fo:block>

       2. And here's the second footnote's text.

      </fo:block>

     </fo:footnote-body>

    </fo:footnote>

    also refers to text at the bottom of this page.

   </fo:block>

  </fo:flow>

 </fo:page-sequence>

</fo:root>

Текст, дополненный верхними индексами для сносок 1 и 2, показан на 4. Текст двух сносок внизу той же самой страницы показан на 5.

Создание сносок: <fo:footnote> и <fo:footnote-body>

4. Текст со сносками 


Создание сносок: <fo:footnote> и <fo:footnote-body>

5. Текст сносок внизу страницы


Для создания текста сносок применяется элемент

<fo:footnote>
. При работе с процессором fop вы должны самостоятельно добавлять фактический номер сноски в верхнем индексе — такой, как 1 или 2. Вот как это выглядит в
footnotes.fo
, где для создания верхнего индекса я установил свойство
vertical-align
встроенного элемента в «super»:

<fo:block font-size="24pt">

 This:

 <fo:footnote>

  <fo:inline>footnote

   <fo:inline font-size="16pt" vertical-align="super">

    1

   </fo:inline>

  </fo:inline>

  .

  .

  .

</fo:block>

Чтобы создать текст сноски, появляющийся внизу страницы, нужно применить элемент

<fo:footnote-body>
внутри элемента
<fo:footnote>
. Сам процессор fop не нумерует сноски, поэтому за добавление номеров сносок отвечаете вы:

<fo:block font-size="24pt">

 This

 <fo:footnote>

  <fo:inline>footnote

   <fo:inline font-size="16pt" vertical-align="super">

    1

   </fo:inline>

  </fo:inline>

  <fo:footnote-body>

   <fo:block>

    1. Here's the first footnote's text.

   </fo:block>

  </fo:footnote-body>

 </fo:footnote>

 refers to text at the bottom of this page.

</fo:block>
 

Этот код на XSL-FO создает и первый текст со сносками на 4, и сам текст первых сносок, показанный на 5.