説明が長くなりましたが、ここで page-model の例を見てみることにしましょう。まず最初にどのようなレイアウト構成になるかを図6.1に示します。
図の点線の部分が page-region に相当します。つまり、
図 6.1 ページレイアウト例
図の点線の部分が page-region に相当します。つまり、
- 原点が(30,30)、幅が 150mm、高さが 30mm の下部ページ区域
- 原点が(30,70)、幅が 150mm、高さが 197mm の上部ページ区域
の 2 つの page-region を持っていることになります。これをスタイル言語で定義したものが次の例です。
例 6.1
(define-page-model two-regions (width 210mm) (height 297mm) (filling-direction ’top-to-bottom) (region (x-origin 30mm) (y-origin 70mm) (width 150mm) (height 197mm) (header (width 150mm) (height (+ 9pt 2.5mm)) (generate (make sequence (make paragraph font-size: 9pt quadding: ’end space-after: 2mm (page-number-sosofo)) (make rule orientation: ’horizontal length: 150mm line-thickness: 0.2mm display-alignment: ’start))))) (region (x-origin 30mm) (y-origin 30mm) (width 150mm) (height 30mm) (flow not-exist-port)))
この例では、上部の page-region にヘッダを設け、右肩にページ番号を表示、その下に罫線を引くよう指定を行っています。
これで、two-regions という識別子を持つ page-model を参照できるようになったわけですが、page-model はあくまでもデータ型の一つであり、フロー・オブジェクト・クラスではありません。つまり、定義したページを生成するにはフロー・オブジェクト・クラスを介する必要があります。この役割を果たすのが、次に説明する page-sequenceフロー・オブジェクト・クラスです。