page-model はスタイル言語に用意されている特殊なデータ型です。あるオブジェクトが page-model かどうかを調べるには、page-model? 述語手続きを使用します。
(page-model? obj)
page-model を定義するには、次の構文を用います。
(define-page-model page-model-name page-region width height [filling-direction] [decoration])
以下に、この構文の引数について説明します。
page-model-name
定義したpage-model を後から参照するために、page-model の名前を指定します。指定できる値は式言語の識別子として有効なものになります。必須です。
page-region
ページ区画を指定します。page-model は少なくとも一つ以上の page-region を含んでいなければいけません。ページ区画を指定するための構文については後述します。
width
ページ領域の幅を次の構文で指定します。必須です。
(width length-spec)
height
ページ領域の高さを次の構文で指定します。必須です。
(height length-spec)
filling-direction
フロー・オブジェクトの埋め込み方向を指定します(p.66参照)。トップレベルにおける指定値は各ページ区画に継承されます。トップレベルでの指定を省略した場合は各ページ区画の filling-direction を指定する必要があります。
(filling-direction ’left-to-right または ’right-to-left または ’top-to-bottom)
decoration
装飾を指定します。装飾指定は省略可能、かつ複数指定が可能です。装飾指定には次の構文を用います。
(decorate obj)
obj は装飾領域で、次の構文で生成される特殊な領域です。
(decoration-area sosofo placement-x: length-spec placement-y: length-spec placement-direction: ’left-to-right または ’right-to-left または’top-to-bottom)
なお、この decoration-area に指定できる sosofo はインライン領域に限られます。また、装飾領域の原点は常に左下になることに注意してください。