7.2. 共通スタイルの繰り返し指定

 ある XML 文書に要素 A・B・C があり、これら3つともに同じスタイルでフォーマットしたいとします。要素の親子関係によっては継承によって指定を簡略化できるかもしれませんが、そうでない場合はそれぞれについて同様の指定を繰り返し記述する必要があります。コピー&ペーストで凌ぐにしても、指定する特質の数や繰り返し回数が多くなるうちに、次第に面倒になってきそうです。
 このような冗長な繰り返し指定は、style オブジェクトの利用によって簡略化することができます。style オブジェクトは次のように定義します。

(style keyword-argument-list)

 keyword-argument-list は make 式(p.30参照)と同様、つまり make 式に指定する場合と同じように特質指定を列挙します。なお、style 式が返すオブジェクトは後から参照可能なように、定義文で変数に結び付けておくと良いでしょう。

例 7.2
(define my-style (style font-family-name: "Ryumin-Light"
                        ...
                        font-size: 10pt
                        line-spacing: 15pt))

定義したオブジェクトは、make 式の中で use:指定を用いて参照することができます。次の例では use: のみ指定していますが、use: 指定と他の特質指定を組み合わせても問題ありません。

例 7.3
(element foo
  (make paragraph
    use: my-style))

 また、次の式によって複数の style オブジェクトをひとつの style オブジェクトにまとめることもできます。

(merge-style style ...)

 スタイルシートが長大になりそうな場合は、これらをうまく利用すると良いでしょう。

<<prev      next>>