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

<!-- examples for the use of the fo leader -->

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

  <fo:layout-master-set>

    <!-- page layout -->
    <fo:simple-page-master master-name="first"
                  page-height="29.7cm" 
                  page-width="21cm"
                  margin-top="2.5cm" 
                  margin-bottom="2cm" 
                  margin-left="2.5cm" 
                  margin-right="2.5cm">
      <fo:region-body/>
    </fo:simple-page-master>



  </fo:layout-master-set>
  <!-- end: defines page layout -->

  <!-- actual layout -->
  <fo:page-sequence master-name="first">


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

      <!-- Normal text -->
      <fo:block font-size="16pt" 
                font-family="sans-serif" 
                line-height="15pt"
                space-after.optimum="3pt"
                text-align="start"
                background-color="blue"
                color="white"
                >
        Leader examples
      </fo:block>

      <fo:block font-size="12pt" 
                font-family="sans-serif" 
                line-height="15pt"
                space-before.optimum="5pt"
                space-after.optimum="3pt"
                text-align="start">
        fo:leader is mainly used a) in table-of-contents to generate sequences of "." glyphs that separate titles from page numbers 
        b) to create entry fields in fill-in-the-blank forms c) to create horizontal rules for use as separators. You 
        define the look and use of fo:leader with the property "leader-pattern". It can have the following values: a) space. This 
        just creates an space. b) dots. This creates a sequence of "." c) rule. This creates a line. d) use-content. This creates a 
        repeating pattern of the content of fo:leader (not supported yet by Fop). 
      </fo:block>


      <fo:block font-size="12pt" 
                font-family="sans-serif" 
                line-height="15pt"
                space-before.optimum="5pt"
                space-after.optimum="3pt"
                text-align="start">
        The dimensions of fo:leader are determined by the compound property leader-length. It consists of the 
        3 sub values: leader-length.minimum (default = 0), leader-length.optimum (default = 12pt), leader-length.maximum
        (default = 100%). If you want to make sure, that leader-length has a fixed size, you should use the compound 
        property (p.e. leader-length="5cm"). If you want to fill the rest of the remaining space with dots in a table of 
        content, you can use the default values. 
      </fo:block>

      <fo:block font-size="14pt" 
                font-family="sans-serif" 
                line-height="17pt"
                space-before.optimum="5pt"
                space-after.optimum="3pt"
                text-align="start"
                background-color="blue"
                color="white">
        leader with leader-pattern="space" 
      </fo:block>

      <!-- Inserts a leader (space)   -->
      <fo:block text-align="start">Entry 1 
        <fo:leader leader-pattern="space" 
                   leader-length="6cm"/>p. 12
      </fo:block>

      <!-- Inserts a leader (space)   -->
      <fo:block text-align="start">Entry 2 
        <fo:leader leader-pattern="space" 
                   leader-length="6cm"/>p. 24
      </fo:block>

      <!-- Inserts a leader (space)   -->
      <fo:block text-align="start">Left side  
        <fo:leader leader-pattern="space" 
                   leader-length="5.5cm"/>middle
        <fo:leader leader-pattern="space" 
                   leader-length="5.5cm"/>right side
      </fo:block>


      <fo:block font-size="14pt" 
                font-family="sans-serif" 
                line-height="17pt"
                space-before.optimum="5pt"
                space-after.optimum="3pt"
                text-align="start"
                background-color="blue"
                color="white"
                >
        Using fo:leader with leader-pattern="dots"
      </fo:block>

      <fo:block font-size="12pt" 
                font-family="sans-serif" 
                line-height="15pt"
                space-before.optimum="5pt"
                space-after.optimum="3pt"
                text-align="start">
        There are two properties which allow you to specify the looks of the dotted line. First 
        "leader-pattern-width". It specifies the length of one dot and the space up to the next dot. 
        Second leader-alignment. It can be used to make sure, the dots in different lines are parallel (only value "reference-area"
        is supported). 
      </fo:block>

      <!-- Inserts a leader (dots)   -->
      <fo:block text-align="start">Entry 1 
        <fo:leader leader-pattern="dots" 
                   leader-length="6cm"/>p. 12
      </fo:block>

      <!-- Inserts a leader (dots)   -->
      <fo:block text-align="start">Entry 2 
        <fo:leader leader-pattern="dots" 
                   leader-length="6cm"/>p. 24
      </fo:block>


      <fo:block font-size="12pt" 
                font-family="sans-serif" 
                line-height="15pt"
                space-before.optimum="5pt"
                space-after.optimum="3pt"
                text-align="start">
        Using fo:leader with leader-pattern="dots" and leader-pattern-width="5pt" and "8pt"
       </fo:block>

      <!-- Inserts a leader (dots)   -->
      <fo:block text-align="start">Entry 1 
        <fo:leader leader-pattern="dots" 
                   leader-pattern-width="5pt"
                   leader-length="6cm"/>p. 12
      </fo:block>

      <!-- Inserts a leader (dots)   -->
      <fo:block text-align="start">Entry 2 
        <fo:leader leader-pattern="dots" 
                   leader-pattern-width="5pt"
                   leader-length="6cm"/>p. 24
      </fo:block>


      <!-- Inserts a leader (dots)   -->
      <fo:block text-align="start">Entry 1 
        <fo:leader leader-pattern="dots" 
                   leader-pattern-width="8pt"
                   leader-length="6cm"/>p. 12
      </fo:block>

      <!-- Inserts a leader (dots)   -->
      <fo:block text-align="start">Entry 2 
        <fo:leader leader-pattern="dots" 
                   leader-pattern-width="8pt"
                   leader-length="6cm"/>p. 24
      </fo:block>

      <fo:block font-size="12pt" 
                font-family="sans-serif" 
                line-height="15pt"
                space-before.optimum="5pt"
                space-after.optimum="3pt"
                text-align="start">
        Using fo:leader with leader-pattern="dots" in a list 
      </fo:block>

      <fo:block text-align="start"
                   space-before.optimum="12pt"
                   space-after.optimum="12pt">
        Using fo:leader with leader-pattern="dots", leader-pattern-width="5pt" and "8pt", leader-alignment="reference-area"
       </fo:block>

      <!-- Inserts a leader (dots)   -->
      <fo:block text-align="start">Entry 1 
        <fo:leader leader-pattern="dots" 
                   leader-pattern-width="5pt"
                   leader-alignment="reference-area"
                   leader-length="6cm"/>p. 12
      </fo:block>

      <!-- Inserts a leader (dots)   -->
      <fo:block text-align="start">Entry 2 
        <fo:leader leader-pattern="dots" 
                   leader-pattern-width="5pt"
                   leader-alignment="reference-area"
                   leader-length="6cm"/>p. 24
      </fo:block>

      <!-- Inserts a leader (dots)   -->
      <fo:block text-align="start">Entry 3 is longer 
        <fo:leader leader-pattern="dots" 
                   leader-pattern-width="5pt"
                   leader-alignment="reference-area"
                   leader-length="6cm"/>p. 36
      </fo:block>

      <!-- Inserts a leader (dots)   -->
      <fo:block text-align="start">Entry 4 is even longer 
        <fo:leader leader-pattern="dots" 
                   leader-alignment="reference-area"
                   leader-pattern-width="5pt"
                   leader-length="6cm"/>p. 48
      </fo:block>


      <!-- Inserts a leader (dots)   -->
      <fo:block text-align="start">1 
        <fo:leader leader-pattern="dots" 
                   leader-pattern-width="8pt"
                   leader-length="6cm"
                   leader-alignment="reference-area"/>p. 12
      </fo:block>

      <!-- Inserts a leader (dots)   -->
      <fo:block text-align="start">Entry 2 
        <fo:leader leader-pattern="dots" 
                   leader-pattern-width="8pt"
                   leader-length="6cm"
                   leader-alignment="reference-area"/>p. 24
      </fo:block>


      <!-- Inserts a leader (dots)   -->
      <fo:block text-align="start">Entry 3 is longer 
        <fo:leader leader-pattern="dots" 
                   leader-pattern-width="8pt"
                   leader-length="6cm"
                   leader-alignment="reference-area"/>p. 36
      </fo:block>

      <!-- Inserts a leader (dots)   -->
      <fo:block text-align="start">Entry 4 is even longer 
        <fo:leader leader-pattern="dots" 
                   leader-pattern-width="8pt"
                   leader-length="6cm"
                   leader-alignment="reference-area"/>p. 48
      </fo:block>




      <!-- list start -->
      <!-- use provisional-distance-between-starts to define 
           the distance between the start of the label and the item text 
           
           use provisional-label-separation to define the distance between
           the end of the item label and the start of item text
      -->
      <fo:list-block provisional-distance-between-starts="0.3cm"
                     provisional-label-separation="0.15cm">
        
        <!-- list item -->
        <fo:list-item>
          <!-- insert a bullet -->
          <fo:list-item-label end-indent="label-end()">
            <fo:block><fo:inline font-size="10pt" font-family="Symbol">&#183;</fo:inline></fo:block>
          </fo:list-item-label>
          <!-- list text --> 
          <fo:list-item-body start-indent="body-start()">
            <fo:block>
              <!-- Inserts a leader (dots)   -->
              <fo:block text-align="start">Entry 1 
                <fo:leader leader-pattern="dots" 
                           leader-pattern-width="5pt"
                           leader-length="6cm"/>p. 12
              </fo:block>
            </fo:block>
          </fo:list-item-body>
        </fo:list-item>

        <!-- list item -->
        <fo:list-item>
          <!-- insert a bullet -->
          <fo:list-item-label end-indent="label-end()">
            <fo:block><fo:inline font-size="10pt" font-family="Symbol">&#183;</fo:inline></fo:block>
          </fo:list-item-label>
          <!-- list text --> 
          <fo:list-item-body start-indent="body-start()">
            <fo:block>
              <!-- Inserts a leader (dots)   -->
              <fo:block text-align="start">Entry 2 
                <fo:leader leader-pattern="dots" 
                           leader-pattern-width="5pt"
                           leader-length="6cm"/>p. 24
              </fo:block>
            </fo:block>
          </fo:list-item-body>
        </fo:list-item>
    </fo:list-block>
    <!-- list end --> 

      <fo:block font-size="12pt" 
                font-family="sans-serif" 
                line-height="15pt"
                space-before.optimum="5pt"
                space-after.optimum="3pt"
                text-align="start">
        Using fo:leader with leader-pattern="dots" in a table
      </fo:block>


    <!-- table start -->
    <fo:table>
      <fo:table-column column-width="20mm"/>
      <fo:table-column column-width="60mm"/>
      <fo:table-column column-width="50mm"/>
      <fo:table-body>
        <fo:table-row>
          <fo:table-cell ><fo:block>Entry 1</fo:block></fo:table-cell>
          <fo:table-cell >
              <fo:block text-align="start"> 
                <fo:leader leader-pattern="dots" 
                           leader-pattern-width="8pt"
                           leader-length="6cm"/>
              </fo:block>
          </fo:table-cell>
          <fo:table-cell ><fo:block>p. 12</fo:block></fo:table-cell>
        </fo:table-row>
        <fo:table-row>
          <fo:table-cell ><fo:block>Entry 2 </fo:block></fo:table-cell>
          <fo:table-cell >
              <fo:block text-align="start"> 
                <fo:leader leader-pattern="dots" 
                           leader-pattern-width="8pt"
                           leader-length="6cm"/>
              </fo:block>
          </fo:table-cell>
          <fo:table-cell ><fo:block>p. 24</fo:block></fo:table-cell>
        </fo:table-row>
        <fo:table-row>
          <fo:table-cell ><fo:block>Entry 3 </fo:block></fo:table-cell>
          <fo:table-cell >
              <fo:block text-align="start"> 
                <fo:leader leader-pattern="dots" 
                           leader-pattern-width="8pt"
                           leader-length="6cm"/>
              </fo:block>
          </fo:table-cell>
          <fo:table-cell ><fo:block>p. 36</fo:block></fo:table-cell>
        </fo:table-row>
      </fo:table-body>
    </fo:table>
    <!-- table end -->



      <fo:block text-align="center"
                   font-size="15pt"
                   space-before.optimum="16pt"
                   space-after.optimum="12pt"> 
      Table of Content
      </fo:block>

      <fo:block text-align="start"
                   font-size="10pt"
                   space-after.optimum="12pt"> 
      shows the use of leader properties in combination to build a table of content. 
      Following values are used for the leader: 
      leader-pattern="dots"
      leader-pattern-width="8pt"
      leader-alignment="reference-area"
      no leader-length is specified, so the default values are used (min: 0, opt: 12pt, max: 100%)
      </fo:block>


      <!-- Here starts the table -->
      <fo:table>
        <fo:table-column column-width="1cm"/>
        <fo:table-column column-width="14.2cm"/>
        <fo:table-column column-width="0.3cm"/>
        <fo:table-body font-size="12pt" font-family="sans-serif">

        <fo:table-row line-height="12pt">
        <fo:table-cell><fo:block text-align="end">A) </fo:block></fo:table-cell>
        <fo:table-cell><fo:block text-align="start">This is some longer sample text<fo:leader leader-pattern="dots" 
                   leader-pattern-width="8pt"
                   leader-alignment="reference-area"
                   /></fo:block></fo:table-cell>
        <fo:table-cell><fo:block text-align="end">1</fo:block></fo:table-cell>
        </fo:table-row>


        <fo:table-row line-height="12pt">
        <fo:table-cell><fo:block text-align="end">B) </fo:block></fo:table-cell>
        <fo:table-cell><fo:block text-align="start">Some text<fo:leader leader-pattern="dots" 
                   leader-pattern-width="8pt"
                   leader-alignment="reference-area"
                   /></fo:block></fo:table-cell>
        <fo:table-cell><fo:block text-align="end">2</fo:block></fo:table-cell>
        </fo:table-row>

        <fo:table-row line-height="12pt">
        <fo:table-cell><fo:block text-align="end" >C) </fo:block></fo:table-cell>
        <fo:table-cell><fo:block text-align="start">Text<fo:leader leader-pattern="dots" 
                   leader-pattern-width="8pt"
                   leader-alignment="reference-area"
                   /></fo:block></fo:table-cell>
        <fo:table-cell><fo:block text-align="end">3</fo:block></fo:table-cell>
        </fo:table-row>

        <fo:table-row line-height="12pt">
        <fo:table-cell><fo:block text-align="end">D) </fo:block></fo:table-cell>
        <fo:table-cell><fo:block text-align="start">This text is even longer than the first entry <fo:leader leader-pattern="dots" 
                   leader-pattern-width="8pt"
                   leader-alignment="reference-area"
                   /></fo:block></fo:table-cell>
        <fo:table-cell><fo:block text-align="end">4</fo:block></fo:table-cell>
        </fo:table-row>

        <fo:table-row line-height="12pt">
        <fo:table-cell><fo:block text-align="end">E) </fo:block></fo:table-cell>
        <fo:table-cell><fo:block text-align="start">Shorter text example<fo:leader leader-pattern="dots" 
                   leader-pattern-width="8pt"
                   leader-alignment="reference-area"
                   /></fo:block></fo:table-cell>
        <fo:table-cell><fo:block text-align="end">5</fo:block></fo:table-cell>
        </fo:table-row>

        </fo:table-body>
      </fo:table>






      <fo:block font-size="14pt" 
                font-family="sans-serif" 
                line-height="17pt"
                space-before.optimum="15pt"
                space-after.optimum="3pt"
                text-align="start"
                background-color="blue"
                color="white"
                >
        Leader with leader-pattern="rule"
      </fo:block>

      <!-- Inserts a leader (rule). Because leader is an inline fo you have 
           to wrap it into a block element  -->
      <fo:block text-align="start">text before the rule (start)
        <fo:leader leader-pattern="rule" 
                   rule-thickness="3.0pt"
                   leader-length="6cm"
                   space-before.optimum="12pt"
                   space-after.optimum="12pt"
                   start-indent="1.5cm"
                   end-indent="2cm"
                   background-color="blue"
                   color="yellow"/>
        text after the rule
      </fo:block>

      <!-- Inserts a leader (rule). Because leader is an inline fo you have 
           to wrap it into a block element  -->
      <fo:block text-align="center">text before the rule (center)
        <fo:leader leader-pattern="rule" 
                   rule-thickness="3.0pt"
                   leader-length="6cm"
                   space-before.optimum="12pt"
                   space-after.optimum="12pt"
                   start-indent="1.5cm"
                   end-indent="2cm"
                   background-color="blue"
                   color="yellow"/>
        text after the rule
      </fo:block>

      <!-- Inserts a leader (rule). Because leader is an inline fo you have 
           to wrap it into a block element  -->
      <fo:block text-align="end">text before the rule (end)
        <fo:leader leader-pattern="rule" 
                   rule-thickness="3.0pt"
                   leader-length="6cm"
                   space-before.optimum="12pt"
                   space-after.optimum="12pt"
                   start-indent="1.5cm"
                   end-indent="2cm"
                   background-color="blue"
                   color="yellow"/>
        text after the rule
      </fo:block>

      <fo:block font-size="12pt" 
                font-family="sans-serif" 
                line-height="15pt"
                space-before.optimum="5pt"
                space-after.optimum="3pt"
                text-align="start">
        Here are some fo:leader with the property rule and different rule styles 
        (solid, dashed, dotted, double, groove, ridge the last one with colored backgrounds 
        to the effect)
      </fo:block>

      <!-- Inserts a leader (rule). Because leader is an inline fo you have 
           to wrap it into a block element  -->
      <fo:block text-align="center"
                   space-before.optimum="12pt"
                   space-after.optimum="12pt"> 
        <fo:leader leader-pattern="rule" 
                   rule-thickness="1pt"
                   leader-length="6cm"/> 
      </fo:block>

      <fo:block text-align="center"
                   space-before.optimum="12pt"
                   space-after.optimum="12pt"> 

        <fo:leader leader-pattern="rule" 
                   leader-length="6cm"
                   rule-thickness="1pt"
                   rule-style="dashed"/>
      </fo:block>


      <fo:block text-align="center"
                   space-before.optimum="12pt"
                   space-after.optimum="12pt"> 
        <fo:leader leader-pattern="rule" 
                   leader-length="6cm"
                   rule-style="dotted"
                   rule-thickness="1pt"/>
      </fo:block>

      <fo:block text-align="center"
                   space-before.optimum="12pt"
                   space-after.optimum="12pt"> 
        <fo:leader leader-pattern="rule" 
                   leader-length="6cm"
                   rule-thickness="2pt"
                   rule-style="double"/>
      </fo:block>

      <fo:block text-align="center" background-color="silver"
                   space-before.optimum="12pt"
                   space-after.optimum="12pt"> 
        <fo:leader leader-pattern="rule" 
                   leader-length="6cm"
                   rule-thickness="1pt"
                   rule-style="groove"
                   color="black" />
      </fo:block>

      <fo:block text-align="center" background-color="silver"
                   space-before.optimum="12pt"
                   space-after.optimum="12pt"> 
        <fo:leader leader-pattern="rule" 
                   leader-length="6cm"
                   rule-thickness="1pt"
                   rule-style="ridge"
                   color="black" />
      </fo:block>

      <!-- Normal text -->
      <fo:block font-size="12pt" 
                font-family="sans-serif" 
                line-height="15pt"
                space-before.optimum="5pt"
                space-after.optimum="3pt"
                text-align="start">
        Here are 4 fo:leader with increasing rule-thickness (1pt, 2pt, 3pt, 4pt)
      </fo:block>

      <!-- Inserts a leader (rule). Because leader is an inline fo you have 
           to wrap it into a block element  -->
      <fo:block text-align="center"
                   space-before.optimum="12pt"
                   space-after.optimum="12pt"> 
        <fo:leader leader-pattern="rule" 
                   rule-thickness="1.0pt"
                   leader-length="6cm"/> 
      </fo:block>

      <!-- Inserts a leader (rule). Because leader is an inline fo you have 
           to wrap it into a block element  -->
      <fo:block text-align="center"
                   space-before.optimum="12pt"
                   space-after.optimum="12pt"> 
        <fo:leader leader-pattern="rule" 
                   rule-thickness="2.0pt"
                   leader-length="6cm"/>
      </fo:block>

      <!-- Inserts a leader (rule). Because leader is an inline fo you have 
           to wrap it into a block element  -->
      <fo:block text-align="center"
                   space-before.optimum="12pt"
                   space-after.optimum="12pt"> 
        <fo:leader leader-pattern="rule" 
                   rule-thickness="3.0pt"
                   leader-length="6cm"/>
      </fo:block>

      <!-- Inserts a leader (rule). Because leader is an inline fo you have 
           to wrap it into a block element  -->
      <fo:block text-align="center"
                   space-before.optimum="12pt"
                   space-after.optimum="12pt"> 
        <fo:leader leader-pattern="rule" 
                   rule-thickness="4.0pt"
                   leader-length="6cm"/>
      </fo:block>


      <!-- Normal text -->
      <fo:block font-size="12pt" 
                font-family="sans-serif" 
                line-height="15pt"
                space-before.optimum="5pt"
                space-after.optimum="3pt"
                text-align="start">
        Here are 4 fo:leader with increasing rule-thickness (1pt, 2pt, 3pt, 4pt) and leader-length: 25%, 50%, 75%, 100%
      </fo:block>

      <!-- Inserts a leader (rule). Because leader is an inline fo you have 
           to wrap it into a block element  -->
      <fo:block text-align="center"
                   space-before.optimum="12pt"
                   space-after.optimum="12pt"> 
        <fo:leader leader-pattern="rule" 
                   rule-thickness="1.0pt"
                   leader-length="25%"/> 
      </fo:block>

      <!-- Inserts a leader (rule). Because leader is an inline fo you have 
           to wrap it into a block element  -->
      <fo:block text-align="center"
                   space-before.optimum="12pt"
                   space-after.optimum="12pt"> 
        <fo:leader leader-pattern="rule" 
                   rule-thickness="2.0pt"
                   leader-length="50%"/>
      </fo:block>

      <!-- Inserts a leader (rule). Because leader is an inline fo you have 
           to wrap it into a block element  -->
      <fo:block text-align="center"
                   space-before.optimum="12pt"
                   space-after.optimum="12pt"> 
        <fo:leader leader-pattern="rule" 
                   rule-thickness="3.0pt"
                   leader-length="75%"/>
      </fo:block>

      <!-- Inserts a leader (rule). Because leader is an inline fo you have 
           to wrap it into a block element  -->
      <fo:block text-align="center"
                   space-before.optimum="12pt"
                   space-after.optimum="12pt"> 
        <fo:leader leader-pattern="rule" 
                   rule-thickness="4.0pt"
                   leader-length="100%"/>
      </fo:block>


      <fo:block text-align="center"
                   font-size="15pt"
                   space-before.optimum="16pt"
                   space-after.optimum="12pt"> 
      Using leader in combination with justified text
      </fo:block>


      <fo:block text-align="justify">Here is some longer text. Here is some longer text. 
      Here is some longer text. Here comes the leader (dots width 8pt): 
        <fo:leader leader-pattern="dots" 
                   leader-pattern-width="8pt"
                   leader-length="5cm"/>Here is some longer text. Here is some longer text. 
      Here is some longer text. Here is some longer text. Here is some longer text. 
      </fo:block>

      <fo:block text-align="justify">Here is some longer text. Here is some longer text. 
      Here is some longer text. Here comes the leader (dots width 5pt): 
        <fo:leader leader-pattern="dots" 
                   leader-pattern-width="5pt"
                   leader-length="5cm"/>Here is some longer text. Here is some longer text. 
      Here is some longer text. Here is some longer text. Here is some longer text. 
      </fo:block>

      <fo:block text-align="justify">Here is some longer text. Here is some longer text. 
      Here is some longer text. Here comes the leader (dots): 
        <fo:leader leader-pattern="dots" 
                   leader-length="5cm"/>Here is some longer text. Here is some longer text. 
      Here is some longer text. Here is some longer text. Here is some longer text. 
      </fo:block>


      <fo:block text-align="justify">Here is some longer text. Here is some longer text. 
      Here is some longer text. Here comes the leader (rule): 
        <fo:leader leader-pattern="rule" 
                   leader-length="5cm"/>Here is some longer text. Here is some longer text. 
      Here is some longer text. Here is some longer text. Here is some longer text. 
      </fo:block>

      <fo:block text-align="justify">Here is some longer text. Here is some longer text. 
      Here is some longer text. Here comes the leader (space): 
        <fo:leader leader-pattern="space" 
                   leader-length="5cm"/>Here is some longer text. Here is some longer text. 
      Here is some longer text. Here is some longer text. Here is some longer text. 
      </fo:block>



    </fo:flow>
  </fo:page-sequence>
</fo:root>