先に、フロー・オブジェクトはページ上に長方形の領域を生成すると述べましたが、それらの領域を並べていく土台となるページも、やはりフロー・オブジェクトとして生成します。ページを生成するフロー・オブジェクト・クラスには2 つの種類がありますが、NEXTStylus はこのうちpage-sequence と名付けられたものをサポートしています。
page-sequence そのものはページ制御を行うためのフロー・オブジェクト・クラスです。ページサイズなどのページレイアウト情報は、page-model と呼ばれるオブジェクトに分離されています。page-sequence はフォーマット時の動的な判断に従って、どのpage-modelを使ってページを生成するかを決定します(page-sequence がpage-model の情報を用いて生成した領域をページ領域と呼びます)。
判断条件には、ページを奇数・偶数のどちらから始めるかや、開始時にのみ使用するpagemodelのセットの指定や、本文などの繰り返し生成されるpage-model のセットの指定などがあります。また、ページを四辺のどの位置で綴じるかを指定する事もできます[10]。
さて、レイアウト情報を格納したpage-model ですが、これはフロー・オブジェクト・クラスではありません。page-model はpage-sequence と共に用いる特殊なデータ型です。ページサイズや天地のマージンなどの基本指定に加えて、ヘッダや本文などのための区画をページ内に複数定義する事ができます。区画はそれぞれ独立したサイズと行送りの方向を持ちますので、横組と縦組が混在したページレイアウトを作成する事も可能です。
なお、NEXTStylus では製品の仕様上、page-model はpage-sequence の設定にラップされており、残念ながら細やかな指定を行う事はできません。
page-sequence そのものはページ制御を行うためのフロー・オブジェクト・クラスです。ページサイズなどのページレイアウト情報は、page-model と呼ばれるオブジェクトに分離されています。page-sequence はフォーマット時の動的な判断に従って、どのpage-modelを使ってページを生成するかを決定します(page-sequence がpage-model の情報を用いて生成した領域をページ領域と呼びます)。
判断条件には、ページを奇数・偶数のどちらから始めるかや、開始時にのみ使用するpagemodelのセットの指定や、本文などの繰り返し生成されるpage-model のセットの指定などがあります。また、ページを四辺のどの位置で綴じるかを指定する事もできます[10]。
さて、レイアウト情報を格納したpage-model ですが、これはフロー・オブジェクト・クラスではありません。page-model はpage-sequence と共に用いる特殊なデータ型です。ページサイズや天地のマージンなどの基本指定に加えて、ヘッダや本文などのための区画をページ内に複数定義する事ができます。区画はそれぞれ独立したサイズと行送りの方向を持ちますので、横組と縦組が混在したページレイアウトを作成する事も可能です。
なお、NEXTStylus では製品の仕様上、page-model はpage-sequence の設定にラップされており、残念ながら細やかな指定を行う事はできません。
単純設計のsimple-page-sequence
NEXTStylus ではコードを自動生成してくれるので気づく事はないかもしれませんが、page-sequence の指定は常にpage-model を記述しなければならないなど、意外と面倒な側面があります。
DSSSL には複雑なページレイアウトやページ制御が不要な場合のために、simplepage-sequence と呼ばれる機能を簡素化したフロー・オブジェクト・クラスがあります。simple-page-sequence で指定できるのはページサイズとマージンに限定されますが、ヘッダ・フッタを表示するための仕掛けが最初から用意されていますので、自分でスクリプトを作成する場合はこちらから始めるのが近道かもしれません。
[10] この指定によって、見開きページの内側・外側の位置が変化します。