書籍や冊子のヘッダーやフッターにノンブルを入れたり、また目次や索引項目には参照先ページ番号を添えたりする。しかし、これらのページ番号は組版が終了したあとでないと決定できない。こうしたページ番号処理のために次のFOがある。
fo:page-number(ページ番号)はインラインのFOであり、組版されると、自身が置かれているページのページ番号を内容に含むインラインエリアを生成する。ノンブルまたはページ番号を入れたい場所に、fo:page-numberを置いておけば、組版処理によりその場所のページ番号が確定すると、XSL-FOプロセサがfo:page-numberをその位置のページ番号に置き換える。
ページ番号の開始値はページシーケンス毎にプロパティinitial-page-numberプロパティで設定する。initial-page-numberの値は次の通り。
プロパティ値 | 説明 |
---|---|
auto(初期値) | 最初のpage-sequenceでは1にセットする。前にpage-sequenceがあるときは、前のpage-sequenceのページ番号+1の値をセットする。 |
auto-odd | autoと同じように値を決め、偶数ならば+1する。 |
auto-even | autoと同じように値を決め、奇数ならば+1する。 |
<number> | 正の値を指定する。 |
例えば、表紙や目次のページ数に関係なく、本文の先頭ページの番号を'1'から開始するには、本文のfo:page-sequenceのinitial-page-numberを'1'に設定する。
fo:page-number-citation(ページ番号を引用)は索引、目次の項目、参照箇所等、特定のFOが存在するページのページ番号を引用するためのFOである。ページ番号を引用したい場所にfo:page-number-citationを置き、そのプロパティref-idプロパティに参照したいFOに付与されたidプロパティの値を設定する。参照先FOのidプロパティの値はfo名前空間の中で一意でなければならない。
プロパティ値 | 説明 |
---|---|
<idref> | 参照するFOのidプロパティの値を指定する。初期値はなく値を設定しなければならない。 |
fo:page-number、fo:page-number-citationは、組版終了時にページ番号に置き換わる。印刷やPDFなどに出すときには、文字列に置き換る。文字列の書式は、fo:page-sequenceに次の表に挙げるプロパティによって設定する。
プロパティ | プロパティ値 | 説明 |
---|---|---|
format | <string>(初期値は'1') | fo:page-sequenceに設定して、数値から文字列への変換を指定する。詳細はXSLTの仕様で定義されている。 |
grouping-separator | <character>(初期値は'なし') | fo:page-sequenceに設定して、数値から文字列への変換を指定する。詳細はXSLTの仕様で定義されている。 |
grouping-size | <number>(初期値はグルーピングなし) | fo:page-sequenceに設定して、数値から文字列への変換を指定する。詳細はXSLT の仕様で定義されている。 |
letter-value | auto(初期値)またはalphabeticまたはtraditional | fo:page-sequenceに設定して、数値から文字列への変換を指定する。詳細はXSLTの仕様で定義されている。 |
country | なし(初期値)または<country> | ISO 3166による国の指定 |
language | なし(初期値)または<language> | ISO 639-2による言語の指定。2文字または3文字コード |
主なプロパティはプロパティformatである。次にformatによる番号の種類指定の例を示す。
format='1' | 1,2,3 .... |
format='1' | 1,2,3 .... |
format='(1)' | (1),(2),(3),(4) .... |
format='01' | 01,02,03,04 .... |
format='一' | 一,二,三,四.... |
format='A' | A B C ... Z AA AB AC.... |
format='a' | a b c ... z aa ab ac.... |
format='i' | i ii iii iv v vi vii viii ix x .... |
format='I' | I II III IV V VI VII VIII IX X .... |
format="ア" | カタカナの番号付けを指定 |
format="イ" | カタカナをイロハ順に指定 |
format="١" | (ARABIC-INDIC DIGITS) |
format="۱" | (EXTENDED ARABIC-INDIC DIGITS) |
format="१" | (DEVANAGARI DIGITS) |
format="১" | (BENGALI DIGITS) |
format="੧" | (GURMUKHI DIGITS) |
format="૧" | (GUJARATI DIGITS) |
format="୧" | (ORIYA DIGITS) |
format="౧" | (TELUGU DIGITS) |
format="೧" | (KANNADA DIGITS) |
format="൧" | (MALAYALAM DIGITS) |
format="๑" | (THAI DIGITS) |
format="໑" | (LAO DIGITS) |
format="༡" | (TIBETAN DIGITS) |
ページシーケンス単位でページ番号にfo:folio-prefix(接頭辞)とfo:folio-suffix(接尾辞)を指定できる。ページ番号の接頭辞と接尾辞は、fo:page-sequenceの子供として指定する(3–3 ページシーケンスを参照)。またfo:page-number-citationをページ番号に置き換えるとき接頭辞と接尾辞も一緒に付く。
次はページ番号、ページ番号参照、ページ番号の接頭辞、接尾辞を指定した例である。ページ番号の種類をformat="I" によりローマ数字とし、fo:folio-prefix、fo:folio-suffixでページ番号の前後に序章、頁を付与する。序章の本文には<fo:page-number-citation ref-id="text1" background-color="#DDDDDD">により章の文章のページ番号参照を設定している(以上、アンダーラインを付与)。
…略… <fo:simple-page-master margin="0mm" master-name="PageMaster" page-height="64mm" page-width="95mm"> <fo:region-body border="0.2pt solid gray" margin="8mm 8mm 8mm 8mm"/> <fo:region-after extent="5mm" background-color="#EFEFEF"/> </fo:simple-page-master> …略… <!-- 1ページ目 --> <fo:page-sequence master-reference="PageMaster" initial-page-number="1" format="I" force-page-count="no-force"> <fo:folio-prefix>序章</fo:folio-prefix> <fo:folio-suffix>頁</fo:folio-suffix> <fo:static-content flow-name="xsl-region-after"> <fo:block text-align="center" font-size="0.9em"> <fo:page-number text-decoration="underline" /> </fo:block> </fo:static-content> <fo:flow flow-name="xsl-region-body"> <fo:block font-size="20pt" font-family="sans-serif" id="headinga"> 序章 見出しA</fo:block> <fo:block text-indent="1em" text-align="justify" > …略… 詳しくは<fo:page-number-citation ref-id="text1" background-color="#DDDDDD"/> で説明します。 </fo:block> </fo:flow> </fo:page-sequence>
組版結果を図14・2 序章の組版結果に示す。網掛(background-color="#DDDDDD")部分はIDで参照しているfo:inlineオブジェクトのページ番号が組み込まれている。
次は二つ目のページシーケンスである章である。章のページ番号には接尾辞のみを付与する。また、章の本文には<fo:inline id="text1">XSL仕様</fo:inline>として参照されるテキストにidを設定している。
<!-- 2ページ目 --> <fo:page-sequence master-reference="PageMaster" initial-page-number="1" force-page-count="no-force"> <fo:folio-suffix>頁</fo:folio-suffix> <fo:static-content flow-name="xsl-region-after"> <fo:block text-align="center" font-size="0.9em"> <fo:page-number text-decoration="underline" /> </fo:block> </fo:static-content> <fo:flow flow-name="xsl-region-body"> <fo:block font-size="20pt" font-family="sans-serif" id="headingb"> 本章 見出しB </fo:block> <fo:block text-indent="1em" text-align="justify"> <fo:inline id="text1">XSL仕様</fo:inline>は …略… </fo:block> </fo:flow> </fo:page-sequence>
組版結果を図14・3 本文の組版結果に示す。
fo:page-number-citation-lastは参照対象FOの最後のページ番号を引用するためのFOである。例えば、章などを参照するとき、参照する章の範囲をページ番号で示すとき、fo:page-number-citationと共に使う。プロパティpage-citation-strategyプロパティで参照対象FOの最終ページを判断する制約条件を指定し、fo:page-number-citation-lastは、その制約を満たす領域の最後のページ番号に置き換わる。
プロパティ値 | 説明 |
---|---|
all(初期値) | 参照されたFOのref-idトレイトに一致するすべてのページ。参照されたFOが生成する空白ページを含む。 |
normal | 正規エリア(脚注やフロートなどを除いて本文ブロックとして積み上げられるエリア)を含むページ。 |
non-blank | 脚注やフロートのような(正規エリアでない)領域を含むページ。 |