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


CSSの適用

XML文書のヘッダCSSの検索

このプラグインは、XML文書のヘッダにあるCSSを著者スタイルシートとして解釈します。

この節の説明では、XML文書の名前空間 http://www.w3.org/1999/xhtml の要素を接頭辞xhtml:で表しますが、xmlns属性やxmlns:*属性の設定によっては接頭辞は異なるか省略されていることがありえます。

XML文書のルート要素の子要素としてxhtml:head要素があり、その子要素としてxhtml:style要素があれば、そのxhtml:style要素の内容がヘッダCSSとして解釈されます。XML文書内のこれ以外の場所にxhtml:style要素を置いてもヘッダCSSとしては解釈されません。

ルート要素の子要素としてxhtml:head要素が複数あるときは、それらのうち先頭にあるものだけが採用され、それ以外は無視されます。

xhtml:head要素の子要素としてxhtml:style要素が複数あるときは、出現順にカスケードされます。

InDesignテンプレートのヘッダCSSの検索

このプラグインは、InDesignテンプレートのヘッダにあるCSSをユーザースタイルシートとして解釈します。

この節の説明では、InDesignテンプレートの要素名の頭の「xhtml:」は必須です。InDesign文書上では名前空間接頭辞と局所名は一体の名前として扱われるためです。

InDesignテンプレートのルート要素の子要素としてxhtml:head要素があり、その子要素としてxhtml:style要素があれば、そのxhtml:style要素の内容がヘッダCSSとして解釈されます。XML文書内のこれ以外の場所にxhtml:style要素を置いてもヘッダCSSとしては解釈されません。

ルート要素の子要素としてxhtml:head要素が複数あるときは、それらのうち先頭にあるものだけが採用され、それ以外は無視されます。

xhtml:head要素の子要素としてxhtml:style要素が複数あるときは、出現順にカスケードされます。

このプラグインに付属のXHTML用InDesignテンプレートファイル「TaggMatch-template.indd」には、CSSを保持するためのxhtml:style要素とその親のxhtml:head要素があらかじめルート要素の子要素として用意されています。しかし、InDesignテンプレートにCSSを保持する必要がなければ、このxhtml:style要素やxhtml:head要素は削除してテンプレートとして使ってもかまいません。

要素のCSS

このプラグインは、XML文書の要素に http://www.w3.org/1999/xhtml 名前空間のstyle属性があるときは、それを要素のスタイルシートとして解釈します。

ボックス種別

CSSでは、displayプロパティを用いて、各要素のボックス種別を定義することができます。ボックス種別とは、たとえば段落・インライン・表・セル・箇条書きなど、レイアウトにおけるあり方の種類です。これにより、たとえば

などの指示を組版系に与えることができるようになっています。

なお、ボックス種別を「なし」とすると、その要素は組版されません。

ボックス種別を利用すれば、あらゆる任意の要素に対して、その組み方を指定することができます。たとえば「価格スペック」要素に「display:table;」を指定すれば、表として組版されるようになります。

また、ボックス種別を活用すると、要素の組み方をコンテキストによって自在に変えることもできます。たとえば

すれば、 されるようになります。要素名やクラス名によって固定的に縛られない、より柔軟なレイアウトが可能です。

カスケード

このプラグインは、W3Cの勧告に準じて、以下の順序でCSSをカスケードします。

  1. デフォルトスタイルシート……プラグインに埋め込まれています。デフォルトスタイルシートを参照。
  2. 要素のXHTML名前空間の書式属性……書式属性を参照。
  3. 要素に対応する段落/文字スタイルの基準スタイルに対する差分をCSSで表したもの……これはこのプラグイン独自の能力です。段落・文字スタイルを参照。
  4. ヘッダのユーザースタイルシートの最重要でない宣言……InDesignテンプレートのヘッダのCSSの中身のうち、!importantがついていないもの。
  5. ヘッダの著者スタイルシートの最重要でない宣言……XML文書のヘッダのCSSの中身のうち、!importantがついていないもの。
  6. ヘッダの著者スタイルシートの最重要宣言……XML文書のヘッダのCSSの中身のうち、!importantがついているもの。
  7. ヘッダのユーザースタイルシートの最重要宣言……InDesignテンプレートのヘッダのCSSの中身のうち、!importantがついているもの。
  8. 要素のスタイルシート

ただし、上記3.で段落スタイルと文字スタイルのどちらを採るかを決定するにはその要素のボックス種別すなわちdisplayプロパティが必要ですが、これはもちろん他のプロパティ同様、最後の8.までカスケードしてみなければ最終的な値はわかりません。そのためプラグインは実際にはまず予備的にdisplayプロパティについてだけ上記のカスケードを1.から8.まで3.以外すべて行なって、ボックス種別を確定させてから、あらためて全プロパティのカスケードを1.から8.まで行なっています。

3.はCSSで書かれてはいませんが、InDesignの言葉で書かれた一種のユーザースタイルシートであると見なすことができます。しかし通常のユーザースタイルシートより先にカスケードされますので、いわば「ヘッダのユーザースタイルシートの最粗略宣言」とでもいうべき扱いをされます。つまり、段落/文字スタイルでは表しきれない書式定義(絶対値指定や、コンテキストによる比率微調整など)をしたい部分については、CSSを書けば上書きできるというわけです。

ヘッダCSSの統一

InDesignへの流し込みの際、ヘッダCSSは1つに統一されてヘッダに書かれ、統一前の内容は消去されます。

この節の説明では、XML文書の名前空間 http://www.w3.org/1999/xhtml の要素を接頭辞xhtml:で表しますが、xmlns属性やxmlns:*属性の設定によっては接頭辞は異なるか省略されていることがありえます。

具体的には、XML文書からのヘッダCSS(複数ありえる)とInDesignテンプレートからのヘッダCSS(複数ありえる)が、上記4.〜7.の順序にしたがってカスケードされ、その統一ヘッダCSSが書かれたxhtml:style要素が、xhtml:head要素の子要素として追加されます。そしてXML文書とInDesignテンプレートにもともとあったヘッダCSSのxhtml:style要素は削除されます。

XML文書のルート要素に子要素としてxhtml:head要素がないときは、xhtml:style要素は追加されず、ただ既存のxhtml:style要素の削除だけが行われます。

CSS勧告準拠・InDesign適合・独自拡張

TaggMatchはCSS2.1適合のユーザーエージェントです。すなわち、CSS2.1・CSS2・CSS1をInDesignの組版書式に変換することができます。バージョンによって勧告内容が違う部分についてはCSS2.1勧告にしたがって動作します。

それに加えて、いくつかの独自拡張のプロパティや値にも対応しています。この独自拡張の一部は、CSS3のドラフトを先取りしたものです。

なお、静的な視覚表現を得意とするInDesignの性質上、音声や点字などの非視覚的なプロパティや、点滅などの動的視覚表現プロパティについては、もちろんその通りには再現できません。

このほかに、開発日程の都合等により未実装の部分があります。

現時点でTaggMatchが解釈できるCSSについて、W3Cの正式なCSS2.1勧告に対する相違点や、その他特筆するべき点を以下に挙げます。とくに記さない部分についてはCSS2.1勧告に準拠しています。

@規則

@規則を含むCSSには対応していません。

バックスラッシュ(\)によるエスケープ

文字列内でバックスラッシュの後に改行があっても無視されません。

バックスラッシュの後にISO10646キャラクタ符号があっても正しく解釈されません。したがって\Aも改行としてレンダリングされません。

コメント

コメントを含むCSSには対応していません。

単位

単位exは0.5 emに換算されます。

単位pxは96 dpiとしてptに換算されます(すなわち1 px = 0.75 pt)。

パーセント値

パーセント値は、font-sizeプロパティ以外では無視されます。

色の値

色の値としては、#rrggbb表現には対応していますが、#rgb表現とrgb()関数は正しく解釈されません。色のキーワード・システムカラーは無視されます。

セレクタ

以下のセレクタ以外には未対応です。

対応しているセレクタについても、その優先順位は正しく評価されず、出現順にカスケードされます。ただし!important規則は正しく解釈されます。

名前空間接頭辞+「|」+ローカル名(CSS3の名前空間モジュール)は、XHTMLタグで用いられている名前空間接頭辞と一致していれば、正しく解釈されます(@namespaceに未対応のため、CSS内で名前空間URIと接頭辞との関連付けができないため)。

inherit値

いずれのプロパティにおいても、キーワード値「inherit」には対応していません。(解釈不能値として無視されるので、!importantと併用するような特殊な場合を除き、結果的に自然と対応している?)

メディアタイプ

メディアタイプの指定は無視されます。

外部スタイルシート

xml-stylesheet処理命令は無視されます。

最上位要素の子要素xhtml:headの子要素xhtml:link要素は無視されます。

ヘッダ埋め込みスタイルシート

<!-- -->でコメントアウトされたCSS(HTMLで旧式ブラウザ対策としてよく行なわれるような)は、XMLのW3C勧告にしたがって無視されます。

xhtml:style要素のtype属性はあってもなくても参照されず、つねにtext/cssであると見なされます。

text-indentプロパティ

text-indentプロパティは無視されます。

横方向整列

text-alignプロパティの文字列値(桁揃え用)は無視されます。

CSS3のtext-align-lastプロパティに先行対応しています。ただし対応しているのはキーワード値centerのみで、それ以外は指定しても無視されます。

テキスト装飾

text-decorationプロパティには未対応です。

CSS3のtext-underline-styleプロパティに先行対応しています。ただし対応しているのはキーワード値none・solid・single-accounting・double・double-accountingのみで、それ以外は指定しても無視されます。

CSS3のtext-line-through-styleプロパティに先行対応しています。ただし対応しているのはキーワード値none・solidのみで、それ以外は指定しても無視されます。

text-shadowプロパティ

text-shadowプロパティは無視されます。

letter-spacingプロパティ

letter-spacingプロパティは無視されます。

word-spacingプロパティ

word-spacingプロパティは無視されます。

text-transformプロパティ

text-transformプロパティは無視されます。

white-spaceプロパティ

white-spaceプロパティは無視されます。

背景

background-colorプロパティのキーワード値「transparent」は無視されます。

background-image・background-repeat・background-attachment・background-positionプロパティは無視されます。

backgroundプロパティは無視されます。

font-familyプロパティ

font-familyプロパティでは、1個のフォントファミリ名が唯一の文字列値となっている場合にのみ対応しています。複数の値の列挙は正しく解釈されません。総称ファミリを示すキーワード値も正しく解釈されません。

font-styleプロパティ

font-styleプロパティのキーワード値「oblique」は「italic」と同じに解釈されますので、イタリック体のバリアントを持つフォントファミリではイタリック体で印字され、イタリック体のバリアントを持たないフォントファミリ(和文フォントなど)で斜体がかかりません。

font-variantプロパティ

font-variantプロパティは無視されます。

font-weightプロパティ

font-weightプロパティのキーワード値は以下のように解釈されます。

font-stretchプロパティ

font-stretchプロパティは無視されます。

文字サイズ

font-sizeプロパティの絶対サイズキーワード値に対しては、CSS2勧告(2.1でなく)に準拠し、
   xx-small < x-small < small < medium < large < x-large < xx-large
の順に固定比率1.2倍ずつ大きな文字サイズが適用されます。mediumキーワードの具体的なpt値は、InDesignテンプレートの[基本段落]段落スタイルの文字サイズと同じになりますので、[基本段落]の文字サイズを変えれば、これらの絶対サイズキーワード値によって適用される文字サイズをスケールさせることができます。

font-sizeプロパティの相対サイズキーワードsmallerに対しても、親要素から継承した文字サイズを固定比率1.2で割った文字サイズ値が適用され、largerについては、継承した文字サイズに1.2を乗じた値が適用されます。

font-size-adjustプロパティ

font-size-adjustプロパティは無視されます。

fontプロパティ

fontプロパティは無視されます。

マージン

margin-left・margin-right・margin-top・margin-bottomプロパティは、パーセント値とキーワード値autoは無視され、フレーム要素・表要素ではプロパティ自体が無視されます。フレームのマージンはInDesignテンプレート上で定義してください。

また、インライン要素でマージンを指定しても、段落に適用されます。

水平マージンについては、マージン値が負値の場合、位置計算結果がテキストフレームの内容領域からはみ出すときは、テキストフレームの内容領域の境界に接する位置に配置されます。

垂直マージンについては、マージン値や相殺結果が負値の場合に、以下のように動作します。

また、InDesignの組版アルゴリズムにより、

パディング

padding-top・padding-right・padding-bottom・padding-leftは無視されます。paddingプロパティも無視されます。

ボーダー

border-top-width・border-right-width・border-bottom-width・border-left-widthのキーワード値は無視されます。border-widthプロパティは無視されます。

border-top-color・border-right-color・border-bottom-color・border-left-colorプロパティのキーワード値「transparent」は無視されます。border-colorプロパティは無視されます。

ボーダーの種類

border-top-style・border-right-style・border-bottom-style・border-left-styleプロパティのキーワード値「hidden」「groove」「ridge」「inset」「outset」は無視されます。border-styleプロパティは無視されます。

ボーダーの簡略表記

border-top・border-right・border-bottom・border-leftプロパティは無視されます。borderプロパティも無視されます。

ボックス種別

displayプロパティのキーワード値「list-item」「compact」「marker」「table-caption」は無視されます。

displayプロパティに対してキーワード値「-un-run-on」を指定すると、直前の段落の末尾に続きます。run-inが直後の段落の先頭に追い込まれるのと、ちょうど反対の動作です。これをランオン(おしりランイン)と呼びます。

ボックス位置

position・top・bottom・left・rightプロパティは無視されます。

フレームの位置はInDesignテンプレートでデザインした位置に固定されます。テキストフレームの中身は順次流し込まれていきます。このふるまいをpositionプロパティの言葉で言うなら、InDesignのテキストフレーム要素配下(テキストフレーム要素自身を含まない)についてはつねに「static」であるとして、テキストフレーム要素については「absolute」であるとして処理されるといえます。

回り込み

floatプロパティは無視され、つねに「none」であると見なされます。clearプロパティも無視されます。

前面/背面

z-indexプロパティは無視され、つねに「auto」であると見なされます。前面/背面の関係はInDesignテンプレートでデザインしてください。

右書き

direction・unicode-bidiプロパティは無視されます。すなわち、右から左へ横書きするアラビア語などの書法には対応していません。

widthプロパティは表セル要素・表列要素以外では無視されます。キーワード値「auto」は無視されます。

min-width・max-widthプロパティは無視されます。

フレームの幅はInDesignテンプレートでデザインしてください。

高さ

heightプロパティは無視されます。

min-heightプロパティは表セル要素・表行要素以外では無視されます。max-heightプロパティは無視されます。

フレームの高さはInDesignテンプレートでデザインしてください。

行送り

line-heightプロパティのnormalキーワード値は、[基本段落]段落スタイルの行送り÷文字サイズの実数値として解釈されます。

垂直方向整列

vertical-alignプロパティは、インライン要素ではキーワード値「sub」「super」以外は無視され、表セル要素ではキーワード値「top」「middle」「bottom」「justify」以外は無視されます。

均等配置を指定できるよう、独自拡張のキーワード「justify」に対応しています。たとえばExcelのセル内縦方向均等配置は、このキーワードを介してInDesign書式へ反映されます。

あふれ

overflowプロパティは無視され、つねに「hidden」であると見なされます。

clipプロパティは無視され、つねに「auto」であると見なされます。

InDesignには、テキストフレームやセルからあふれた内容を範囲外に印字する機能はないためです。

隠す

visibilityプロパティは無視されます。

表組み

caption-sideプロパティは無視されます。

table-layoutプロパティは無視され、つねに「auto」であると見なされ、InDesignの表組み自動レイアウトアルゴリズムが用いられます。

border-collapseプロパティは無視され、つねに「collapse」であると見なされます。したがってborder-spacing・empty-cellsプロパティも無視されます。

表列・表列グループ要素のボーダー・背景・visibilityプロパティは無視されます。

生成内容

content・quotesプロパティは無視されます。

リスト

list-style-type・list-style-image・list-style-position・list-style・marker-offset・counter-reset・counter-incrementプロパティは無視されます。

ユーザーインタフェース

cursor・outline-width・outline-color・outline-style・outlineプロパティは無視されます。ページ上のボタンなどにマウスポインタ形状や縁どりを定義したいときは、InDesignに流し込んでから行なってください。

ページ規則

size・marks・pageプロパティは無視されます。ページサイズやトンボやマスターページの設定は、InDesignテンプレート側で行なってください。

改ページ

page-break-before・page-break-after・page-break-insideプロパティは無視されます。

orphans・widowsプロパティは無視されます。

音声

volume・speak・pause-before・pause-after・pause・cue-before・cue-after・cue・play-during・azimuth・elevation・speech-rate・voice-family・pitch・pitch-range・stress・richness・speak-punctuation・speak-numeralプロパティは、InDesignでは意味がないため無視されます。



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