Thu, January 29, 2009
構造化FrameMaker 相互参照(cross-reference)の作成
構造化FrameMaker上での相互参照は、かなり簡単に実現できる。
- 参照元となる要素に id 属性を入れておく
- 詳しく調べていないが、おそらく属性名は id とすべきだと思う(どこかで指定できるのかもしれないが)
- 参照先に xref といった要素を置く(おけるようにDTD,EDDを設計)
- xref 要素は、EDD上で CrossReference として定義する必要がある→通常は Container だがそうではなく CrossReference
※注意点
参照先は、すべての要素の id 属性を調べているだけなので、 id の値はドキュメント中でユニークにする必要がある。 chapter, sectionなど異なる要素の id でも重複は許されない。
TOC
参照元になる要素のEDD記述方法
EDDの該当要素(section)に id 属性を追加し、Unique ID指定する。
EDD文書

EDD(StructureView)

参照先要素として xref を作成
新規に xref 要素を追加(要素名は任意)。 ref などの属性を追加(属性名は任意)。
crossreference format を指定して、xref 要素を置いた場所の表示内容を指定する。
以下の例のように、Page としてすれば、参照元のページ番号が表示される。
その他のフォーマットのための記述方法については未調査。
EDD文書

EDD(StructureView)

XML文書(インスタンス)の例
参照先
参照元 id を xref 要素の ref 属性に設定。
<toc>
<toclist>
<tocitem>how to set cross-reference .... P.<xref ref="section1"></tocitem>
参照元
参照元になる要素の id属性を設定。
<section id="section1" >
<title>how to set cross-reference</title>
作業メモ
相互参照のための要素設定をEDDに追記する場合の注意点
- EDD上で参照元になり得る要素(たとえば chapter,sectionなど)に id 属性を追加
- xref 要素を新設する
- xref 要素を文書中に配置できるように、EDD を修正(たとえば、 para 中に xref を含められるように設定など)
- 完成したEDDからDTDを出力して、アプリケーション定義で指定している dtd ファイルに上書き
- 【File - Structure Tools - Save as DTD 】にてDTD書き出し
- Use Structured Application: < No Application > を指定
- Save DTD File As: XML を選択
- 【File - Structure Tools - Save as DTD 】にてDTD書き出し
- 完成したEDDは、忘れずに、テンプレート(template.fm)にインポートしておくこと
para要素の設定例(EDD)
para要素中に xref の出現を許可するEDDの記述例。
Element(Container): para
General rule: (<TEXT>|xref)*