DITA – FrameMaker構造化定義ファイル

  • 26th 10月 2014
  • DITA

FrameMaker11を利用してDITA1.1で構造化データを定義している。

構造化するデータ用に独自の構造化アプリケーションを構築する
必要があるが、FraemMaker側で独自に設定されているDITAの構造化定義を
なるべくそのまま利用した方がよい。

テンプレートやRWルールは調整する部分があるとはいえ、
その他のAPIの定義や、TransformationFile,XSLTなど
デフォルトのままで利用した方が良い。

DITAデータ自体は問題なく作成されるが、
DITAデータを扱うFM側の機能が正しい動作をしなくなる。
Bookmap定義、相互参照の設定、その他細かい部分…。

XMLをInDesignタグ(タグ付けテキスト)に変換

XMLをInDesignに読み込ませてレイアウトを整えるとなると複雑な表レイアウトが多いマニュアルでは
レイアウトを再現するまでのスピードの問題が発生する。
そこで、取り込む表についてはXMLからInDesignタグへと変換してしまい。
それをそのままInDesign上に配置ことで時間の短縮を図る。

InDesignタグ仕様 -> 「InDesignタグ付きテキスト ユーザーガイド

※ InDesign自動組版の場合、表以外のレイアウトでもタグ付きテキストにしてしまった方が
  レイアウト処理はスムーズである。各種書式の変更やマスターページの変更といった
  ことが頻繁に起こるのであればメンテナンス性にかけるこの手法は面倒な点があるものの
  変換処理の安定性やコーディングの難易度からすると、はるかにInDesignタグを利用する
  ことに利点があると言える。

FrameMakerのditaval対応について

  • 16th 10月 2014
  • DITA

FrameMakerでは、各種段落やテキストに対して表示・非表示の属性を持たせることができる。
コンディショナルテキスト情報としてFrameMakerでは管理されていた。
現在ではDITA導入となりditavalでの運用も可能となっている。

機能としては非常に似ている
コンディショナル機能
ditaval機能
だが効果としては若干の違いがある。

簡単にいうと構造化情報を意図するditaval機能に対して
コンディショナル機能では構造は意図せず属性が設定されているか否かに基づいて
適用される。

以下のような定義をしてみた。

<bookmap>
∟ <chapter>
∟ <concept>
∟ <title> sample title text </title>
∟ <conbody>
∟ <section product=”productA” >
∟ <p otherprops=”otherA” > sample AAA text </p>
∟ <p otherprops=”otherB” > sample BBB text </p>

この場合、ditavalにてotherAを表示としてproductA,otherBを非表示に設定する。
すると構造を認識するditavalの機能ではsection以下がすべて非表示となる。

しかし、コンディショナル機能で同じような設定を適用した場合は、
otherAが表示設定となっているため、なんと…
ダミーのsection要素が自動で生成されてotherAが表示された。
構造の考え方が適用されないと考えられる。

dita+FrameMakerでの運用を考えた際にはコンディショナルを利用することは
避けるべきであり、ditavalでの運用を考えるべき

FrameMakerでのpgwideの動きについて

  • 16th 10月 2014
  • DITA

FrameMakerでDITAを扱う場合、構造化データを確認しながらレイアウトも確認・調整できるため
操作と扱いに慣れてしまえばとても有用なアプリケーションになると思われます。

FrameMakerはDTIA表でpgwide 属性を利用しOASIS 交換表モデルに準拠しています。
この属性は1=ページ幅、0=カラム幅を示します。

それで実際にDITAで表を作成し、FrameMaker上で表レイアウトを見ながらpgwide属性の値を
切り替えて動作を確認してみようと思う。

ただ、そのままでは動作の確認ができない
利用するDITAモデル毎に設定されているEDDファイルにおいてtable要素にpgwide属性を
定義してあげないと画面上に属性値が表示されないので注意すること。

WS000049

また、ページ幅とカラム幅で表のレイアウトが切り替わることを確認するためには
表がレイアウトされているページのカラム数が複数カラムになっている必要があるので
注意すること。1カラムのページ上では数値を切り替えても全幅にはなるかもしれないが
いったん全幅になった後は変化をみることはできない。

FrameMaker側でデフォルトで用意されているDITA用のデフォルトのテンプレートでは
FrameMaker独自の横見出しテンプレートが設定されている。横見出し部分はカラムとは
認識されないのでここも勘違いしないようにしなけれればならない。
あくまでもコラム数を複数にする必要がある。

上記の条件をクリアした状態で、pgwideの属性値を0,1と設定してみると
表幅がページ幅とカラム幅に変化することを確認することができる。

※ pgwide動作確認のための必要設定は以下の通り

  • EDD側でpgwide属性を定義する。
  • RWルールでtable要素に「attribute “pgwide” is fm property page wide;」が定義されていること。
  • レイアウトページが複数コラムとなっていること。

AH Formatter アラビア語対応

アラビア語は文字が右から左に流れるために以下の属性をblock要素に付与する。

  • writing-mode=”rl-tb” (文字の流れ右から左)
  • language=”ar” (言語)

表罫線の指定の仕方にも注意する。通常、罫線の表示指定については
border-left-style, border-right-style
といった設定を利用して罫線のスタイルを指定するが、
組みの流れが逆になっているため、これも逆に考える必要がある。

しかし、border-start-style, border-end-style
という指定の仕方で指定しておけば、組の流れが右から左でも左から右でも、
組の流れに対して相対的に指定することができる。
左から右の流れの場合の左端罫線はborder-start-style
右から左の流れの場合の左端罫線もborder-start-styleとなる。