JustoFitホーム JustoFitバージョン1.3.13使用説明書


相互参照と内容生成

JustoFitには内容生成機能がそなわっています。相互参照は生成内容の一種です。

InDesign CS2にはAdobe FrameMakerのような相互参照機能がありませんが、JustoFitのこの内容生成機能を利用することで、InDesign文書でも相互参照を利用することができるようになります。

相互参照を作成する

InDesign CS2にこのプラグインをインストールした状態で、相互参照を作成するには、以下のように操作します。

  1. 「生成内容スタイル」パネルが表示されていることを確認します。

    表示されていないときは、「ウィンドウ」メニューの「生成内容スタイル」コマンドを選択します。

  2. 相互参照を挿入したい箇所に文字カーソルを置きます。

  3. 「生成内容スタイル」パネルから、挿入したい相互参照のスタイル名をクリックします。

    →すると、文字カーソルの位置に、そのスタイルに従って仮生成テキストが挿入されます。

     また、「生成内容スタイル」パネルの「参照」ボタンと「キャンセル」ボタンが灰色から黒に変わって押せるようになります。

  4. 参照したい文書の中の、参照したい段落に文字カーソルを置きます。

    ※参照元と同じ文書の中を参照することもできますし、別のInDesign文書の中を参照することもできます。別の文書への参照は、参照元の文書からの相対パスとして登録されます。

  5. 「生成内容スタイル」パネルの「参照」ボタンをクリックします。

    →すると、さきに挿入されていた仮生成テキストが、参照先の情報を反映した正しいテキストに変わります。

※「参照」ボタンを押す前に、別のスタイルをクリックすると、生成させるテキストの形式をそのスタイルへその場で変更することができます。[生成内容なし]をクリックした場合は、参照動作がキャンセルされ、仮生成内容は削除されます。「キャンセル」ボタンを押した場合も同様に参照動作がキャンセルされ、仮生成内容が削除されます。

参照IDと参照先文書の保存

参照先には内部的に、参照元と参照先とを紐付けるための「ID」が、まだなければ生成されます。

ですので、参照先文書が参照元文書と別の文書の場合にはとくに、参照作成後に参照先文書を保存するよう気をつけてください。

でないと、この参照先のIDが保存されないため、参照が切れてしまいますのでご注意ください。

参照先文書のファイル名

参照元と参照先がたがいに別の文書のときは、参照元には内部的に、参照先文書のファイル名が記録されます。

ですので、新規作成してすぐの文書の中を参照する際は、文書をファイルとして保存してからにしてください。

そうでないと、どのファイルを参照すればよいか、という情報を記録することができず、生成テキストが**になってしまいます。

生成内容/相互参照を更新する

文書を編集していると、自動生成されたテキスト内容が古くなることがあります。

たとえば、相互参照の参照先の見出しが変わったり、参照先が記載されたページがずれたり、またはページのノンブルが変わったりすれば、参照元のテキストもそれに伴って変えることが必要になるものです。

文書内のすべての生成内容/相互参照を更新

文書内のすべての生成内容(相互参照を含む)を更新するには、その文書を開いた状態で、「生成内容スタイル」パネルの「文書の生成内容を更新」コマンドを選択します。

1つの生成内容/相互参照だけを更新

文書内のすべての生成内容でなく、1つの生成内容だけを更新することもできます。

以下のように操作します。

  1. 作成済の生成内容の中に文字カーソルを置きます。

    →すると、その生成内容の現在のスタイルが、「生成内容スタイル」パネル上で反転表示されます。

  2. 「生成内容スタイル」パネルの「更新」コマンドを選択します。

    →すると、生成内容の自動テキストが再生成されます。

文書間相互参照

別の文書への相互参照は、参照元の文書からの相対パスとして登録されています。

相互参照を作成した時と同じ相対パスに、参照先文書が見つからないときは、参照元に相互参照テキストのかわりに「*」が印字されます。

ファイルの位置関係や名前を変えた結果、相対パスが変わったときは、相互参照を設定しなおしてください。

ID未解決

また、参照元でIDが未設定の時点や、参照先のIDが見つからないなどの場合にも「*」が印字されます。

配置されていない要素を更新時に削除

「生成内容スタイル」パネルの「配置されていない要素を更新時に削除」コマンドを選択してチェックを入れておくと、生成内容の作成や更新の際に、ページ上に配置されていない要素が、構造から自動的に削除されます。

これは、DTP作業をしていてテキストフレームをカット&ペーストすると、要素が構造内に重複してしまい、同じIDを持つ要素が複数できてしまうので、どれを参照してよいかわからなくなってしまうので、それを解消するための措置です。

チェックを外すと、このような自動要素削除は行われなくなります。

デフォルトではチェックが入っています。

相互参照をナビゲートする

相互参照の参照元と参照先は、一般に別々のページ上にあり、多くは別々の文書に作りたいものです。

JustoFitには、相互参照の作成や編集を少しでもやりやすくするため、参照元−参照先間の表示を自動的に行き来できる便利な機能がそなわっています。

参照先を表示

すでに作成済の相互参照の参照先を表示するには、以下のように操作します。

  1. 作成済の相互参照の中に文字カーソルを置きます。

    その相互参照のスタイルが、「生成内容スタイル」パネル上で反転表示されたことを確認します。

  2. 「生成内容スタイル」パネルの「参照先を表示」コマンドを選択します。

    →すると、参照先が表示されます。

参照元へ復帰

「生成内容スタイル」パネルの「参照元へ復帰」コマンドを選択すると、相互参照の参照元へ表示が復帰します。

このコマンドを選択できるのは、以下のような場面においてです。

これ以外のとき、このコマンドはグレーになっていて選択できません。

参照設定後に参照元へ復帰

「生成内容スタイル」パネルの「参照設定後に参照元へ復帰」コマンドを選択してチェックを入れておくと、相互参照を設定したり参照先を変更したりした直後に、自動的に参照元要素へ表示が復帰します。

チェックを外すと、このような自動表示復帰は行われなくなります。

デフォルトではチェックが入っています。

相互参照を編集する

相互参照の適用スタイルを変更

すでに作成済の相互参照の適用スタイルを変えるには、以下のように操作します。

  1. 作成済の相互参照の中に文字カーソルを置きます。

    →すると、その相互参照の現在のスタイルが、「生成内容スタイル」パネル上で反転表示されます。

  2. 「生成内容スタイル」パネルで、別のスタイルをクリックします。

    →すると、相互参照のスタイルが変更されます。

参照先を変更

すでに作成済の相互参照の参照先を変えるには、以下のように操作します。

  1. 作成済の相互参照の中に文字カーソルを置きます。

    その相互参照のスタイルが、「生成内容スタイル」パネル上で反転表示されたことを確認します。

  2. 「生成内容スタイル」パネルの「参照先を変更」コマンドを選択します。

    →すると、「参照」・「キャンセル」ボタンが黒に変わって押せるようになります。

    (ここからは、作成時と同じ操作です)

  3. 新たに参照したい先に文字カーソルを置きます。

  4. 「生成内容スタイル」パネルの「参照」ボタンをクリックします。

    →すると、生成テキストが、新たな参照先の情報を反映した正しいテキストに置き換わります。

※「参照」ボタンを押す前に、別のスタイルをクリックすると、生成させるテキストの形式をそのスタイルへその場で変更することができます。[生成内容なし]をクリックした場合は、参照動作がキャンセルされ、参照元は削除されます。「キャンセル」ボタンを押した場合も同様に参照動作がキャンセルされます。

参照先文書を変更

文書のファイル名や場所を変えることはよくありますが、そうすると、その中身を参照していた参照元がそれを見失います。

または、内容の一部を他の文書へ移したために、そこを参照していた参照元がそれを見失ってしまうこともあります。

このようなときは、参照先の新しい場所を、参照元に教える必要があります。

以下のように操作します。

  1. 作成済の相互参照の中に文字カーソルを置きます。

    その相互参照のスタイルが、「生成内容スタイル」パネル上で反転表示されたことを確認します。

  2. 「生成内容スタイル」パネルの「参照先文書を変更」コマンドを選択します。

    →すると、「参照」・「キャンセル」ボタンが黒に変わって押せるようになります。

    (ここからは、作成時と同じ操作です)

  3. 新たに参照したい文書を開き、そのウィンドウを最前面に出します。

  4. 「生成内容スタイル」パネルの「参照」ボタンをクリックします。

    →すると、生成テキストが、新たな参照先の情報を反映した正しいテキストに置き換わります。

※「参照」ボタンを押す前に、別のスタイルをクリックすると、生成させるテキストの形式をそのスタイルへその場で変更することができます。[生成内容なし]をクリックした場合は、参照動作がキャンセルされ、参照元は削除されます。「キャンセル」ボタンを押した場合も同様に参照動作がキャンセルされます。

※このコマンドでは、参照元に記録されている参照先文書のパスは変更されますが、参照IDは元のまま温存されます。もしその参照IDが新たな参照先文書内にないときは、仮テキスト**が生成されます。

参照先文書を一括変更

文書Aの中に、文書B内のさまざまな箇所を参照している複数の参照元があるとき、もし文書Bの名前や場所が変わると、それらの参照元はいっせいに参照先を見失います。

これらを一個一個「参照先文書を変更」コマンドで変更していくのは大変なので、まとめて参照先文書を変更することができます。

以下のように操作します。

  1. 古い文書Bを参照している参照元のうち、いずれか一つの中に、文字カーソルを置きます。

    その相互参照のスタイルが、「生成内容スタイル」パネル上で反転表示されたことを確認します。

  2. 「生成内容スタイル」パネルの「参照先文書を一括変更」コマンドを選択します。

    →すると、「参照」・「キャンセル」ボタンが黒に変わって押せるようになります。

    (ここからは、作成時と同じ操作です)

  3. 新たに参照したい文書を開き、そのウィンドウを最前面に出します。

  4. 「生成内容スタイル」パネルの「参照」ボタンをクリックします。

    →すると、その参照元文書の中の、古い文書Bを参照していた参照元の参照先文書が、すべて新しい文書Bに置き換わり、新たな参照先の情報を反映した正しいテキストに置き換わります。

※「参照」ボタンを押す前に、別のスタイルをクリックすると、生成させるテキストの形式をそのスタイルへその場で変更することができます。[生成内容なし]をクリックした場合は、参照動作がキャンセルされ、参照元は削除されます。「キャンセル」ボタンを押した場合も同様に参照動作がキャンセルされます。

※このコマンドでは、参照元に記録されている参照先文書のパスは変更されますが、参照IDは元のまま温存されます。もしその参照IDが新たな参照先文書内にないときは、仮テキスト**が生成されます。

このコマンドは、文書Bへの参照が文書Aの中に1つしかないときでも、もちろん使うことができます。その意味では、つねに「参照先文書を変更」でなく「参照先文書を一括変更」コマンドを利用することにより、参照先文書の変更もれがないよう期することもできます。

ただし、もともと参照先文書Bの中にあった内容のうち、一部が文書B'へ、ほかの一部が文書B''へ…というように移行されたようなときは、一律にBへの参照をB'に変えてしまうと、B''へ行った参照先への参照は依然不正のままになってしまいます。このようなときは、「参照先文書を一括変更」コマンドでB'に変えたあと、不正になった参照を一個ずつB''へ変えていくか、または「参照先文書を一括変更」コマンドを避けてはじめから一個一個「参照先文書を変更」コマンドでそれぞれ正しい参照先文書に変えていくのがよいでしょう。

相互参照を削除

すでに作成済の相互参照を削除するには、以下のように操作します。

  1. 作成済の相互参照の中に文字カーソルを置きます。

    →すると、その相互参照の現在のスタイルが、「生成内容スタイル」パネル上で反転表示されます。

  2. 「生成内容スタイル」パネルで、「生成内容なし」をクリックします。

    →すると、相互参照が削除されます。

生成内容スタイル

生成内容スタイルを追加

「生成内容スタイル」パネルの「新規生成内容スタイル...」コマンドを選択すると生成内容スタイルを追加できるよう、近日機能拡張予定です。それまでは後述の方法で、ヘッダのCSSを直接編集してください。

スタイルを複製

「生成内容スタイル」パネルの「スタイルを複製...」コマンドを選択すると生成内容スタイルを複製できるよう、近日機能拡張予定です。それまでは後述の方法で、ヘッダのCSSを直接編集してください。

スタイルを削除

「生成内容スタイル」パネルの「スタイルを削除」コマンドを選択すると生成内容スタイルを削除できるよう、近日機能拡張予定です。それまでは後述の方法で、ヘッダのCSSを直接編集してください。

スタイルを編集

「生成内容スタイル」パネルの「スタイルの編集...」コマンドを選択すると生成内容スタイルの定義内容を編集できるよう、近日機能拡張予定です。それまでは後述の方法で、ヘッダのCSSを直接編集してください。

セレクタ表現

「生成内容スタイル」パネルの「セレクタ表現」コマンドを選択してチェックを入れると、スタイル一覧が生のセレクタ表現で表示されます。

※表示されるのは、ヘッダCSSにあるセレクタのうち、contentプロパティを持つセレクタです。「セレクタ表現」にチェックが入っていないときは、さらにこれは、.-un-gクラスセレクタともう1つのクラスセレクタ(スタイル名)だけでできているセレクタのみの表示に絞り込まれています。

チェックを外すと、スタイル名表現での表示になります。

デフォルトではチェックが外れています。

小さく表示

「生成内容スタイル」パネルの「小さく表示」コマンドを選択してチェックを入れると、スタイル一覧が小さく表示されます。

チェックを外すと、普通の大きさの表示になります。

デフォルトではチェックが外れています。

内蔵生成内容スタイル

プラグインの中には、いくつかの生成内容スタイルがはじめから内蔵されています。

FrameMakerに内蔵されている相互参照書式と極力同じにしてあります。

これを活用すれば、自分で生成内容スタイルを定義しなくても、すぐに相互参照を作成することができます。(相互参照スタイルのユーザー定義については後述)

内蔵生成内容スタイル一覧(日本語環境の場合)

内蔵生成内容スタイル一覧(英語環境の場合)

内蔵生成内容スタイルの抑制

「生成内容スタイル」パレットのポップアップメニューの 「内蔵スタイルを表示」コマンドからチェックをはずせば、 内蔵生成スタイルは一覧に表示されなくなります。

一覧に表示しなくなっても、文書内にすでに適用されている内蔵生成内容スタイルは有効です。

チェックを入れると、内蔵生成スタイルも一覧表示されるようになります。

デフォルトではチェックが入っています。

既知の現象

マスターページ内容への相互参照

JustoFitでは、裏でXMLの機能を使って 相互参照先としての情報(参照ID)を格納しています。 しかしInDesignでは、マスターページアイテムにXMLタグを つけることができないので、 残念ながらJustoFitでマスターページアイテムを 相互参照することはできません。

参照先の書式を参照元に再現

現状、相互参照先から参照元へもたらされるのはテキスト内容のみで、 スタイルや書式をコピーする機能はありません。

参照元テキストに文字書式

自動生成された相互参照元テキストに、部分的に文字書式を適用した場合、参照テキストの長さが変わっても、文字書式適用範囲がそれに伴って拡大/縮小されません。

現時点でこの問題を回避するには、生成内容全体に同一の文字書式を適用するようにしてください。逆にいえば、文字書式の範囲と同じになるような生成内容書式を使用してください。

将来的にはFrameMaker同様、 相互参照書式の定義の中で 部分的に文字書式を指定することができるようにする予定です。 その機能を使えばこの問題は回避できます。

参照元の属する段落を参照

相互参照元の属する段落を、その参照先として指定すると、循環参照になってしまいます(あわせ鏡状態)。

指定できないようにする予定です。

[スタイルなし][セレクタなし]

生成内容スタイルパレットの[スタイルなし]・[セレクタなし]は、選択しても[基本生成内容]になってしまいます。

これは将来、スタイルによらずにその箇所に直接、生成内容書式を指定した場合を示すために設けてある表示です(内部的には、生成内容要素のxhtml:style属性にcontentプロパティが指定されている場合)。

将来実装予定の機能

上記以外に将来実装予定の機能は以下のとおりです。

CSS3の生成内容表現

この節は高度な内容です。

以下の方を対象としています。

contentプロパティ

JustoFitの生成内容(相互参照を含む)は、内部的にはCSS3のcontentプロパティです。

生成内容を更新すると、contentプロパティ値による指定に従い、要素の内容が自動生成されます。

ただし目下、解釈できるのは以下の内容だけです。

相互参照のID

JustoFitは、相互参照先を識別するためにIDを用いて、その値を参照先要素のxhtml:id属性に格納しています。

それと同じ値を参照元のxhtml:href属性にも格納していますが、こちらは頭に「#」がつきます。

相互参照のいろいろな記述法

相互参照先の要素の記述例

<xhtml:p xhtml:id="referree">相互参照先見出し</xhtml:p>

相互参照元の要素の記述例

<xhtml:a xhtml:href="../../chap2/1_details/target.indd#referree" xhtml:class="-un-g textpage"></xhtml:a>

ヘッダCSSの記述例(参照先のテキストをコピーしてくる)

.-un-g.textonly { content: target-text(attr(xhtml|href, url)); }

ヘッダCSSの記述例(参照先のノンブルをコピーしてくる)

.-un-g.pageonly { content: target-counter(attr(xhtml|href, url), page); }

ヘッダCSSの記述例(複合)

.-un-g.textpage { content: target-text(attr(xhtml|href, url)) "(p." target-counter(attr(xhtml|href, url), page) ")"; }

url()記法で直接書いた特殊な例

href属性を使わずに、下記のように直接指定することもできるでしょう。

○○については<xhtml:a xhtml:style="content: target-counter(url(chapter5.indd#ID4649), page) 'ページの「' target-text(url(chapter5.indd#ID4649)) '」';"></xhtml:a>を参照してください。

CSSの中にURIを直接書き込んでいますので、この記法の場合、特殊な場合を除き、ヘッダCSSに書くことは現実的ではないでしょう。

生成内容要素

JustoFitの「生成内容スタイル」パネルでスタイル名をクリックして生成内容を挿入するとき、内部的には以下のような文書構造変更が行われています。

しかしJustoFitは、こうして作成された生成内容要素だけでなく、直接またはCSSカスケードによりcontentプロパティ値を持つすべての要素を生成内容要素として扱います。したがって、たとえば

JustoFitで正しくスタイルの閲覧や生成内容更新を行うことができます。

※要素が直接自分のxhtml:style属性にcontentプロパティ値を持っているときは、「生成内容スタイル」パネルの[スタイルなし]または[セレクタなし]がハイライトされます。

CSS3に正しく準拠したこうした汎用性により、たとえJustoFitを使って設定した生成内容でなく、任意のWebページなどから持ってきたものであっても、JustoFitでそのまま機能させることができるので便利です。

参照先要素

JustoFitの「生成内容スタイル」パネルで「参照」ボタンを押して参照先を指定するとき、内部的には以下のような文書構造変更が行われています。

しかしJustoFitは、こうして作成された参照先要素だけでなく、xhtml:id属性値を持つすべての要素を参照先要素として扱います。したがって、たとえば

JustoFitで正しく参照や更新を行うことができます。

生成内容スタイルとローカル生成内容

ヘッダCSS(xhtml:style要素)に.-un-g.[スタイル名]をセレクタとしてcontentプロパティを書くと、JustoFitによって生成内容スタイルとして解釈されます。

要素のxhtml:style属性に生成内容を書くと、JustoFitによってローカル生成内容として解釈されます。

生成内容の定義は、通常のCSSのカスケード規則にしたがってカスケードされます。すなわち、一般に、xhtml:style属性の内容はヘッダCSSに優先します。ただし!importantを用いた場合はそれが優先されます。

内蔵生成スタイルは、デフォルトスタイルシートとして、CSSカスケードのもっとも上流に置かれます。

したがって、内蔵生成内容スタイルと同名のスタイルをヘッダCSSで定義すると(すなわち、.-un-g.[スタイル名]をセレクタとしてcontentプロパティを書くと)、定義内容がカスケードされ、見かけ上上書きされます。

参照文献

JustoFitで使う相互参照のための生成内容スタイルを書くには、以上の知識があれば十分です。

より詳しくお知りになりたい方は、CSS3のワーキングドラフト「CSS3 module: Generated Content for Paged Media」(http://www.w3.org/TR/css3-gcpm/)をご参照ください。



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