FrameMaker

ditamap内データのエレメントデータについて

  • 3rd 3月 2016
  • DITA

FrameMakerを利用したDITA案件が増えてきている。
1点今後のためにメモ。

ditamap内に定義される各種データに、2バイト文字が利用されることがある。
メタ情報の設定場所なので多々でてくる。

ditamapのデータは他のFMデータと同じようにしてテキストデータを取得できるのだが
ditamapデータはFMに投げ込まれた時にテンプレートとEDDが紐付いていることを
忘れてはならない。

ある要素の内容についてF_ApiGetTextなどを利用して取得するのだが
ditamap用のテンプレートで各要素に設定されているフォントが
2バイト文字に対応していない場合、プログラム側でどうやって
処理しようとしても必ず文字化けとなってしまい正しい値を取得できない・・・。
また、取得できたとしてもEDD側で要素に対してPrefixが設定されている場合
予定なテキストデータまでくっついて取得できてしまう。

ditamapに定義されているデータを表紙などに利用しようとする場合に
ditamapにはテンプレートとEDDが強く関連していることを念頭に
おいておかなければならない。
単なる各種ditaデータへのパスが定義されているMAPデータではないということ

FDK Reference … dita

  • 10th 2月 2016
  • DITA

FrameMaker12 以降 ditaという点ではかなり頑張ってきたFrameMaker
カスタマイズ用にFDKも公開されており活用させていただいています。

が…マニュアルが英語なのは仕方がないと思っていますが
dita関連のメソッドやプロパティなど利用できるのであれば
FDK Referenceにはしっかりと記述して欲しいものです。

いくつかのプロパティやメソッドはReferenceには書かれていないものの
実際にはAPIが用意されていました…。

Adobeさんにはドキュメント類のアップデートもお願いしたいと思います。

FrameMaker DITA 表の列幅

  • 2nd 2月 2016
  • DITA

FrameMakerで用意されているDITA用構造化アプリケーションだが、
FMファイル上で指定した表幅をそのまま維持したい場合、つまり
表列幅の実サイズをdita、XMLに書き出したい場合は
デフォルトで用意されている構造化アプリケーションのRWルールを
書き換える必要がある。

Rwルールファイルの最後の方に以下の一文があるので
これをコメントアウトする。

writer use proportional width;

これをコメントアウトすることで
tgroup要素直下のcolspec要素のcolwidth属性の属性値に
実サイズがインチで出力される。

※ インチ以外の出力は無理…。

デフォルトの場合は表幅に対する比率がcolwidth属性に指定されることになっている。
pgwide属性を利用することが想定されているということ。

2016.02.02 追記

dita側でcolspec要素を設定して各列の幅を指定するも、テンプレートに充てて構造化データとしてレイアウトされると
colspec要素が邪魔となって表のレイアウトが崩れてしまう…。RWルールでcolspecをdropするとエラーも崩れもなく
表レイアウトされるが、幅の指定がpgwide頼みとなってしまい列幅が均等になってしまう…。解決先を模索中…。

FrameMaker12 合成フォントのバグ

FrameMakerでは構造化文書において1バイト文字と2バイト文字が混ざって使われている場合、
合成フォントという定義を利用して1バイトも時にはArial、2バイト文字にはMSゴシック
といったようにフォントを使い分けることができる便利な機能がある。

FrameMaker7でもこの機能が利用できるのだが、構造化文書を利用する場合
つまりXMLからFMデータを自動で生成する(構造化アプリケーションを利用)場合、
2バイト文字に正しくフォントが適用されないというバグがあった。
これに対する対応情報はAdobeのサイトでも公開されていた。

さすがにFrameMaker12ではこのバグが直っているのだと思い込んでいたが
全く同じ状況が生じた・・・。ずっとバグを引きずっているよう。

ただおそらくこれが発生するのは特定の条件が揃った場合のようで
すべての状況では生じないよう。
少なくともFM12で1から作成した構造化アプリケーション
の場合はこの問題は発生しない。

現在対応中の案件でこれが発生!

このバグ回避用のプラグインを開発しました。
この点でお困りの方はご相談下さい。

FrameMaker12 目次項目に文字書式が適用されているとリンクしない

  • 3rd 2月 2015
  • DITA

DITAデータを統合文書としてFM文書へとコンバートしFrameMakerの目次作成機能を利用して目次を作成している。

目次項目のレイアウトはFrameMakerのリファレンスページに設定した内容に基づいて出力される。
目次項目のページ番号が表示される部分にのみ文字書式を設定してある場合、PDFを生成した際に
文字書式が設定されている部分にはリンクが設定されない。

今回の場合はページ番号部に設定したいてため、目次内容(目次テキスト部)にはリンクが設定
されているものの、ページ番号部分にはリンクが設定されないという状況が生じた。

重篤な問題のため早期解決をお願いしたい所…。

WS000158

※ 上記の図でおわかりになるとおり、枠線がない部分はクリックしてもリンクが効かないという状況

DITAで運用した際に、目次項目テキストにkeywordなどのタグが設定される可能性がある。
FrameMakerの標準仕様ではDITAのkeywordタグには自動的に文字書式が設定される。
この場合も文字書式が設定されるためPDFではリンクが設定されない。

FrameMaker12 表内の上付き文字…

FrameMaker12の表レイアウトについての注意点

添付の図のように1つの行において上付き文字が設定されている場合
該当行のベースラインがどうしてもズレてしまう。

WS000148

下付き文字の場合も厳密にゆうと若干ズレがあるのかもしれない。
ちなみにInDesignでやってみるとこのようなズレは生じない。

FrameMakerの利用用途からすると大き目の表を多用することが考えられ
表内に単位系の文字を利用することは絶対。

Adobe様側で早めに対策について検討していただけることを願う。