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 フッターの柱とノンブル例に示す。空白の数は伸縮自在なので、組版時に両端揃えの効果で文字列とページ番号が左右に寄せられる。