fo:leaderは伸縮自在な水平線(リーダー)を引くFOである。fo:leaderは、'.'(ドット)や罫線で目次のタイトルとページ番号を分離したり、セパレータとしての水平線を生成するのに使う。fo:leaderは一つのインラインエリアを生成し,インラインのFOと同様多くのプロパティを指定できる。
プロパティleader-patternプロパティはリーダーとして並べる記号を指定する。リーダーの(行進行方向の)高さはuse-contentならば高さはラインエリア(行)と同じとなる。そうでないと高さはrule-thicknessトレイトで決定される。
| プロパティ値 | 説明 |
|---|---|
| space(初期値) | リーダーを空白で埋める。 |
| rule | リーダーを線で埋める。この時、rule-thickness、rule-styleをセットする。 |
| dots | リーダーをドットで埋める。 |
| use-content | リーダーをfo:leaderの子供で指定したパターンで埋める。 |
| プロパティ値 | 説明 |
|---|---|
| use-fontmetrics(初期値) | リーダ-パターンの幅を、フォントメトリックスで決まる値とする。 |
| <length> | リーダ-パターンの繰り返し幅を指定する。 |
| <percentage> | 親の内容領域の幅に対する割合を指定する。 |
プロパティleader-lengthプロパティはリーダーの長さを指定する。
| プロパティ値 | 説明 |
|---|---|
| <length-range> | leader-length.minimum(初期値は0)はリーダーの最低の長さ、leader-length.optimum(初期値は12.0pt)はリーダーの適正な長さ、leader-length.maximum(初期値は100%)はリーダーの最大の長さを指定する。 |
| <percentage> | 親の内容領域の幅に対する割合を指定する。 |
プロパティrule-thicknessプロパティはリーダー線の太さを指定する。
| プロパティ値 | 説明 |
|---|---|
| <length> | 線の太さ。初期値は1.0pt。 |
プロパティrule-styleはリーダー線の種類を指定する。
| プロパティ値 | 説明 |
|---|---|
| none | なし。rule-thicknessをゼロに強制する。 |
| dotted | ドットの並び |
| dashed | 短い線分の並び |
| solid(初期値) | 一本の線。 |
| double | 二重線。線の太さと線の間隔の合計は、rule-thicknessの値に一致する。 |
| groove | 線はキャンバスに掘られているように見える。 |
| ridge | 線はキャンバスから盛り上がっているように見える。 |
プロパティleader-alignmentプロパティはリーダーの開始位置合わせを指定する。
| プロパティ値 | 説明 |
|---|---|
| none(初期値) | 指定なし |
| reference-area | 参照エリアの内容長方形の開始辺に揃える。 |
| page | ページの開始辺に揃える。 |
次の例は、本文の中の「目次・索引に指定する項目」という文字列にid="XYZ0211"を付け、その項目のページ番号をfo:blockの中から参照する。項目の文字列は左寄せ、ページ番号は右寄せとし、両者の間にリーダを引く。fo:leaderとfo:page-number-citationが配置されるfo:blockにtext-align-last="justify"を設定して、ページ番号を行末揃えし、この間をリーダで埋める。
<fo:block space-before="2em"
start-indent="10mm"
end-indent="10mm"
text-align-last="justify">
目次・索引に指定する項目
<fo:leader leader-pattern="dots"/>
<fo:page-number-citation ref-id="XYZ0211"/>
</fo:block>
<fo:block space-before="2em"
start-indent="10mm"
end-indent="10mm">
本文・・・・・・・・・・・・・・・・・・
</fo:block>
<fo:block start-indent="10mm"
end-indent="10mm">
・・・・・・・・・・・・・・・・・・・・
</fo:block>
<fo:block start-indent="10mm"
end-indent="10mm">
・・・・
<fo:inline id="XYZ0211">
目次・索引に指定する項目
</fo:inline>・・・・
</fo:block>
<fo:block start-indent="10mm"
end-indent="10mm">
・・・・・・・・・・・・・・・・・・・・
</fo:block>
組版結果を図16・1 仮想的目次例に示す。

本書(『XSL-FO組版の基礎』)の目次の一部(第1章と1.1節)のfo:leader(下線部分)を示す。
<fo:block space-after="16.2pt"/>
<fo:block font-family="serif" font-size="12.35pt" line-height="1.7" start-indent="0pt" axf:leader-expansion="force" keep-together.within-column="always" space-before="16.2pt">
<fo:inline space-end="0.5em">第<fo:inline axf:number-transform="'1'">1</fo:inline>章</fo:inline>
<fo:inline axf:indent-here="0pt"/>XSL-FO による組版の概要<fo:inline font-family="serif" font-size="8pt">
<fo:inline font-size="25%" space-end="1em"/>
<fo:leader leader-pattern="rule" rule-style="dotted" baseline-shift="(8pt - 2pt) div 2" leader-length.optimum="20pt"/>
<fo:inline font-size="25%" space-end="1em"/>
<fo:inline-container line-height="1" inline-progression-dimension="2.1em">
<fo:block text-align-last="end">
<fo:basic-link internal-destination="d14e2286">
<fo:page-number-citation ref-id="d14e2286"/>
</fo:basic-link>
</fo:block>
</fo:inline-container>
</fo:inline>
</fo:block>
<fo:block font-family="serif" font-size="10.45pt" line-height="1.7" start-indent="9.5pt" axf:leader-expansion="force" keep-together.within-column="always">
<fo:inline space-end="0.5em">
<fo:inline axf:number-transform="'1'">1</fo:inline>.<fo:inline axf:number-transform="'1'">1</fo:inline></fo:inline>
<fo:inline axf:indent-here="0pt"/>
組版で配慮すべきいくつかの項目
<fo:inline font-family="serif" font-size="8pt">
<fo:inline font-size="25%" space-end="1em"/>
<fo:leader leader-pattern="rule" rule-style="dotted" baseline-shift="(8pt - 2pt) div 2" leader-length.optimum="20pt"/>
<fo:inline font-size="25%" space-end="1em"/>
<fo:inline-container line-height="1" inline-progression-dimension="2.1em">
<fo:block text-align-last="end">
<fo:basic-link internal-destination="d14e2299">
<fo:page-number-citation ref-id="d14e2299"/>
</fo:basic-link>
</fo:block>
</fo:inline-container>
</fo:inline>
</fo:block>
組版結果を図16・2 目次項目の組版例に示す。

次の例はフッターに文字列とページ番号を設定する。文字列とページ番号の間にfo:leaderを置く。leader-pattern="space"としたうえで、fo:blockに両端揃えを指定している。
<fo:static-content flow-name="Right-footer">
<fo:block text-align-last="justify">
<fo:inline font-style="italic"
font-size="8pt">
奇数ページ用フッタ文字列
</fo:inline>
<fo:leader leader-pattern="space" />
Page-<fo:page-number />
</fo:block>
</fo:static-content>
組版結果を図16・3 フッターの柱とノンブル例に示す。空白の数は伸縮自在なので、組版時に両端揃えの効果で文字列とページ番号が左右に寄せられる。
