TaggMatchホーム TaggMatchバージョン1.1.3使用説明書


段落/文字スタイルから要素への適用

このプラグインは、XML文書をInDesignテンプレートに流し込む際に、要素の名前かクラス名と同名の段落・文字スタイルがあれば、それを要素に適用します。これはCSSを書かなくても、段落・文字スタイルの定義をXML組版に活かせるようにすることにより、DTPデザイナーの参画を容易にするための仕様です。

適用動作

  1. まず、要素と同名の段落・文字スタイルがあるなら、それが要素に適用されます。
  2. つぎに、要素のクラス名(XHTML名前空間のclass属性の値)と同名の段落・文字スタイルがあるなら、それが要素に適用されます。

なお、このあと要素には、ヘッダのCSSと要素のstyle属性が順にカスケードされて適用されます(カスケード参照)。

段落スタイルか文字スタイルか

段落スタイルと文字スタイルのどちらを採用するかは、以下のように要素のブロック種別によって決まります。

たとえ同名であっても、上記の条件にあてはまらなければ適用されません。(例)インライン要素quotと同名の段落スタイルquotがあっても適用されません。

逆に、同名の要素であっても、ブロック種別を変えて、一方には文字スタイルが、他方には段落スタイルが適用されるようにすることもできます。

相対文字サイズの適用

普通、InDesignで段落・文字スタイルを適用すると、対象テキストの文字サイズは、段落・文字スタイル内で定義されている文字サイズと同じになります。しかし、上記の動作で適用される際はそうではなく、その段落・文字スタイルの基準スタイルに対する比率が適用されます。

たとえば

のとき、15ptのテキストの中にxhtml:h1要素があると、そこは18ptでなく
   15pt × (18pt ÷ 10pt) = 27pt
となります。

なお、文字スタイルの基準スタイルがルート文字スタイルになっているときは、上記の動作において、[基本段落]段落スタイルが基準スタイルとして参照されます。

なぜ相対文字サイズか

なぜ素直に段落・文字スタイルを適用せず、その文字サイズの比を適用するか、以下に理由を説明します。

CSSの良い習慣

通常、CSSでは文字サイズを絶対値でなく単位emなどの相対値で指定することがアクセシビリティの観点から推奨されていますので、このふるまいはそれに対応しています。上記の例はいわば、CSSで1.8emを指定していることと等価です。もし絶対値を指定したいときは、段落・文字スタイルで文字サイズを指定するのでなく、CSSを記述してください。

場の空気を読む段落・文字スタイル

たとえばXHTMLにおいてsmall要素は、

(A) h1要素の子孫のとき

(B) そうでないとき

(C) small要素の中に入れ子になっているとき

などコンテキストによって文字サイズが変わるよう期待されます(A > B > C)。InDesignの段落・文字スタイル機能では本来面倒なこうしたコンテキスト依存な書式づけも、文字スタイル「xhtml:small」(基準スタイルより小さな文字サイズを持った)を1個作成するだけで、簡単に実現させることができます。

書式カスケード

普通、InDesignで段落・文字スタイルを適用すると、対象テキストの書式はすべて、段落・文字スタイルと同じになります。しかし上記の流し込み動作においては、段落・文字スタイルの書式はすべてテキストに適用されるのではなく、その基準スタイルとの差異点だけがテキストに適用されるようになっています。

段落・文字スタイルの持つ書式の大半は、その基準スタイルから受け継いだものであり、基準スタイルとの差異点だけがその段落・文字スタイル内に記憶されています。段落・文字スタイルの編集ダイアログボックスで「一般」タブの「スタイル設定:」欄の中に「+」記号の後に示されている書式がこの差異点です。

たとえば

であったとすると、たとえ文字色が赤のテキストの中にxhtml:h1要素があったとしても、そこは黒くなりません。文字色は基準スタイルと同じで、差異点に含まれないので、適用されないからです。

このふるまいにより、段落・文字スタイルを使って簡単に、CSSのカスケードと継承と同等のふるまいを実現させることができます。

相対書式

段落・文字スタイルで定義されている書式のうち、文字サイズ以外のいくつかの書式は、流し込みの際、文字サイズに対する比率が適用されるようになっています。

たとえば、普通、InDesignで段落・文字スタイルを適用すると、対象テキストのインデントは、段落・文字スタイル内で定義されているインデントと同じになります。しかし、上記の動作で適用される際はそうではなく、その段落・文字スタイルの文字サイズに対する比率が適用されます。

たとえば

のとき、あるxhtml:h1要素の文字サイズが27ptならば(先述の相対文字サイズまたはCSS適用の結果として)、そこの左インデントは36ptでなく
   27pt × (36pt ÷ 18pt) = 54pt
となります。

※ただしその段落の左インデントがもともと0でなく、たとえば10ptだったならば、積み上げられて10pt + 54pt = 64ptとなります。

このようなふるまいをさせる理由は、先述の、文字サイズを相対的に適用する理由と同様です。すなわち、段落・文字スタイルでCSSの単位emなどに相当する相対値指定を可能にすることで、CSSの良さを簡便に段落・文字スタイルで享受できるようにしています。

※流し込み完了後は、InDesign上で段落・文字スタイルを適用すると、もちろんこのような相対値適用でなく、通常のInDesignの機能どおり、絶対値が適用されます。

段落・文字スタイルで定義されている書式のうち、このように文字サイズに対する比率が適用される書式は以下のとおりです。書式によっては、これまでに述べたこと以外にもCSSをエミュレートするふるまいをするものがあるので、それぞれ特記します。

[基本段落]段落スタイル

InDesignテンプレートの[基本段落]段落スタイルでは、CSS勧告においてユーザーエージェントに依存するとされているいくつかの初期値を定義することができます。

文字サイズ

[基本段落]段落スタイルの文字サイズは、font-sizeプロパティのキーワード値mediumに対する具体的なpt値として適用されます。

キーワード値mediumはfont-sizeプロパティの初期値でもありますので、段落・文字スタイルやCSSでとくに文字サイズを指定されなかった要素についても、[基本段落]段落スタイルの文字サイズで組版されます。

行送り

[基本段落]段落スタイルの行送り値の文字サイズ値に対する比は、line-heightプロパティのキーワード値normalに対する具体的な実数値として適用されます。

(例)

ならば、15pt ÷ 10pt = 1.5より、「line-height:normal;」は「line-height:1.5;」と等価になります。この場合、文字サイズがたとえば20ptの個所ならば、そこの行送りは20pt × 1.5 = 30ptとなります。

キーワード値normalはline-heightプロパティの初期値でもありますので、段落・文字スタイルやCSSでとくに行送りを指定されなかった要素についても、[基本段落]段落スタイルの行送り値の文字サイズ値に対する比で組版されます。

なお、[基本段落]段落スタイルの行送りを「(自動)」にすると、line-heightプロパティのキーワード値normalに対する行送りも「(自動)」になります。

フォント

[基本段落]段落スタイルのフォントは、font-familyプロパティの初期値として適用されます。

横方向揃え

[基本段落]段落スタイルの横方向揃えは、text-alignプロパティの初期値として適用されます。



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