XSL-FO ページ

XSL-FOは「ページマスター」と呼ばれるページテンプレートを使用してページのレイアウトを定義します。

XSL-FOページテンプレート

XSL-FOは「ページマスター」と呼ばれるページテンプレートを使用してページのレイアウトを定義します。各テンプレートにはユニークな名前が必要です:

<fo:simple-page-master master-name="intro">
  <fo:region-body margin="5in" />
</fo:simple-page-master>
<fo:simple-page-master master-name="left">
  <fo:region-body margin-left="2in" margin-right="3in" />
</fo:simple-page-master>
<fo:simple-page-master master-name="right">
  <fo:region-body margin-left="3in" margin-right="2in" />
</fo:simple-page-master>

上記の例では、3つの<fo:simple-page-master>要素が3つの異なるテンプレートを定義しています。各テンプレート(page-master)には異なる名前があります。

一番目のテンプレートは「intro」と名付けられており、紹介ページのテンプレートとして使用できます。

二番目と三番目のテンプレートは「left」と「right」と名付けられており、偶数と奇数ページのページに使用できます。

XSL-FO ページサイズ

XSL-FOは以下の属性を使用してページのサイズを定義します:

page-width
ページの幅を定義します
page-height
ページの高さを定義します

XSL-FO ページ余白

XSL-FOは以下の属性を使用してページの余白を定義します:

margin-top
上余白を定義します
margin-bottom
下余白を定義します
margin-left
左余白を定義します
margin-right
右余白を定義します
margin
すべての辺の余白を定義します

XSL-FO ページ区域(Page Regions)

XSL-FOは以下の要素を使用してページの区域を定義します:

region-body
本文区域を定義します
region-before
顶部区域(ページヘッダー)を定義します
region-after
底部区域(ページフッター)を定義します
region-start
左側区域(左側の欄)を定義します
region-end
右側区域(右側の欄)を定義します

注記:region-before、region-after、region-start そして region-end は本文区域の一部です。本文区域のテキストがこれらの区域に被るのを避けるために、テーマ区域の余白は他の区域のサイズと同じかそれ以上に設定する必要があります。

図示:

XSL-FO インスタンス

これはある XSL-FO 文書から抽出された一部です:

<fo:simple-page-master master-name="A4">
 page-width="297mm" page-height="210mm"
 margin-top="1cm"   margin-bottom="1cm"
 margin-left="1cm"  margin-right="1cm">
  <fo:region-body   margin="3cm"/>
  <fo:region-before extent="2cm"/>
  <fo:region-after  extent="2cm"/>
  <fo:region-start  extent="2cm"/>
  <fo:region-end    extent="2cm"/>
</fo:simple-page-master>

上記のコードは「A4」と呼ばれる「Simple Page Master Template」を定義しています。

ページの幅は 297mm、高さは 210mm です。

ページの4つのマージンはすべて 1cm です。

主体のマージンは 3cm(すべての4辺)です。

before、after、start、end エリアはすべて 2cm です。

上記の例では、主体の幅はページの幅から左右のマージンおよび region-body のマージンを減じて計算されます:

297mm - (2 x 1cm) - (2 x 3cm) = 297mm - 20mm - 60mm = 217mm.

注記:region (region-start と region-end) は計算されていません。以前に説明したように、これらのエリア(region)は主体の一部です。