JustoFitホーム メタ書式記述言語 Metaformat(MFML)仕様 第1版 リビジョン2


メタ書式

メタ書式の構造

メタ書式では、組版上の何らかの条件に対して、それが成立しているならこの操作をしなさい、という形で調整の指示を行う。すなわち、条件を親とし、操作を子とする構造になっている。ある条件に属する操作を子操作と呼び、ある操作が属する条件を親条件と呼ぶ。

条件優先度と文書内のメタ書式適用の流れ

文書内のすべての条件について、優先順位の高い順に:

文書内の優先順位の等しい条件群のうち、 どれが成立しているかをまずすべて覚えておいてから、 成立している条件の子操作をすべて1刻みずつ進める。

その途中では条件の再評価はしない(途中で不成立になっているかもしれないが)。

それが済んではじめて条件の再評価を行い、 まだ成立している条件群だけまた1刻み。

すべての条件が不成立または中断させられたら、 つぎに低い優先順位の条件群について同様。

メタ書式の操作と手続き

書式の操作とは、具体的には、親条件が成立しなくなるまで(または操作限界を破るまで)対象の書式値を少しずつ変えていく過程である。

(例) 段落の水平比率縮小操作の場合:

段落に2個の文字があって、1字はもとの水平比率が100%、もう1字は70%であったとき

  ↓たとえばまず比90%をかける(刻み10%の場合)

水平比率が、1字は100%×90%=90%、もう1字は70%×90%=63%となる

  ↓条件がまだ成立しているなら、比80%をかける(刻み10%×2)

水平比率が、1字は100%×80%=80%、もう1字は70%×80%=56%となる

  ↓

以下同様に、親条件が不成立になるか、操作限界にひっかかるまで繰り返し

書式変分

メタ書式は、各操作種別によって各対象(段落・セル・表・オブジェクト)のもとの書式値が現在どのように変更されているかという情報をつねに保持している。これを書式変分と呼ぶ。

書式変分は、後述するリバーシブル調整のために内部的に使われる。参考のために画面にも表示される。

書式変分は、各対象の各操作種別ごとに、1つずつ存在する(変更がない場合も含めて)。1つの対象に対して、同じ種別の操作が複数設定されているときは、それらの操作はこの1つの書式変分を共有する。

書式変分の内容・データ型とデフォルト値は、操作の種別によって異なる。データ型は割合やフラグなどがありえる。

たとえば段落に操作が適用された後、その段落内には、もとの書式に対する現在の水平比率の比が保持される。この比は、段落内のすべての文字に対して同一であり、これがこの操作種別の書式変分である。

これを逆算すれば、直接は保持していない各文字のもとの水平比率が求まる。これは、操作を適用しなおす際の刻みや下限の算定に使われるほか、水平比率をもとに戻す際にも利用される。

この値の表示が「100」なら、現在、操作は適用されていないことがわかる。100未満なら、操作が適用された状態である。

操作の刻み

書式変分を変えていく幅を刻みという。すなわち、刻みは書式変分の変分である。

古い書式変分−新しい書式変分=刻み[%]

戦略として刻みを大きくするか小さくするかは、以下に挙げるそれぞれのメリットとデメリットを考慮して、場面によって決めるのが望ましい。

操作限界

操作には、限界を設けることができる。また、多くの書式種別では、InDesignが固有に持つ限界もある。これらをまとめて操作限界という。

対象を操作していっても親条件が不成立にならず、対象の書式値が、InDesignの下限を破るか、あるいは操作内で指定された操作限界のいずれかにひっかかったときは、たとえまだ親条件が成立したままであっても、その直前で操作は中断される。

多くの操作種別では、書式変分限界を指定することができる。また操作種別によっては、それ以外の基準によって操作限界を指定することもできる。

書式変分限界

書式変分限界は、書式変分が限界値を超えたら操作を中断するという操作限界である。多くの操作種別で、書式変分限界を指定することができる。

(例)段落の水平比率縮小操作において、書式変分限界:85とされている場合

段落に2個の文字があって、1字はもとの行送りが10pt、もう1字は7ptであったとき

  ↓たとえばまず比90%をかけてよいか?(刻み10%の場合)

限界に達していないのでよい

  ↓比90%をかける

水平比率が、1字は10pt×90%=9pt、もう1字は7pt×90%=6.3ptとなる

  ↓条件がまだ成立しているなら、比80%をかけてよいか?(刻み10%×2)

書式変分限界を破っているので不可。操作中断

リバーシブル調整

リバースは条件−操作を見ずpara-ifのcured-操作名属性だけを見て100%に戻す。cured-操作名属性は、デフォルト100%なので、100%に戻したときはいったん削除する。

リバーシブルの動作

文書全体に対してメタ書式を適用しようとする際には、まず、 文書のすべての段落(セル・表・オブジェクトも。以下同)について(片道調整オンの段落を除き)、 その段落のpara-if/@cured-*がデフォルト値に戻るよう書式を再設定することにより、 書式をいったん原状復帰したうえで、 デフォルト値となったpara-if/@cured-*をいったん削除する。 段落の順序は任意。

この過程で、削除ないし操作限界を狭められた操作・条件の効果も、 オーバライド・スタイル由来とも、おのずとリセットされる(片道調整オンでなければ)。

これが済んでから文書全体に対しメタ書式の適用を行う。



Copyright (C) 2007-2008 UNIT, Ltd. All Rights Reserved.