<?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">·</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">·</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>