6.3.1. column-set-sequence とcolumn-set-model

 今述べたように、段組は column-set-sequence と column-set-model を組み合わせて指定します。これは page-sequence と page-model の関係に一致するといえます。
 page-sequence が page-model の指定に従ってページ領域とその内部のページ区域を生成するように、column-set-sequence は column-set-model の指定に従って段集合領域(column-set area)と呼ばれる表示領域を生成します。大抵の場合、段集合領域の親はページ区域になりますが、場合によっては他の段集合領域が親になる、つまり段集合領域が入れ子になることもあります。
 さて、page-sequence に対する page-model の指定は特質 initial-page-models:repeat-page-models: で行いましたが、column-set-model の場合はどうでしょうか。やはり column-set-sequence の場合も同様で、column-set-model を参照する特質として column-set-model-map: 、および column-set-model: があります。まずは、指定の簡単な column-set-model: から見ていきましょう。
 column-set-model: には、後述する define-column-set-model によって定義した column-set-model オブジェクトの識別子を単独で指定します。たとえば、二段組のために two-columns という column-set-model を定義した場合は次のようになります。

例 6.3
(define-column-set-model two-columns ...)
(element foo
  (make column-set-sequence
    column-set-model: two-columns))

 次に column-set-model-map: ですが、こちらは以下の構文に沿って指定します。

column-set-model-map: ((page-model1 column-set-model1) ...)

 構文から推測できるように、column-set-model-map:はどの page-model にどのcolumn-set-modelが対応するかを指定する特質です。リスト中に存在しない page-modelが現れた場合は、デフォルトの column-set-model として特質 column-set-model: に指定したものが使用されます。column-set-model: には論理定数 #f を指定することもできますが、この場合に column-set-model-map: に対応関係が指定されていない page-model が現れるとエラーになりますので注意してください。
 また、この 2 つの特質からわかるように、column-set-sequence は page-model が存在することを前提としています。このため、段組指定を行う場合は常に page-sequenceを用いる必要があることに注意してください[2]

[2] Jade の拡張機能を用いる場合はこの限りではありません。

<<prev      next>>