sourceforgeからのメール

お客様のところのDITA-OTが1.5.1でFIXされてしまっているので最近DITA-OTの動向を見ていませんでしたが、この前1.5.3がリリースされたのは知っていました.それから一週間くらいして月曜日会社に行ってみるとsourceforgeからドカドカとメールが来ています.見てみるとバグ報告処理のメールでした.どうも良くわかりませんがリンクをたどってみるとバグ処理を再開してくれるような感じです.
 
 
私の理解不足の投稿もありますが、だいたいバグとしては正解のはずです.dita.xml.orgを見ると、DITA-OT 1.5.4は2011年11月リリース予定だそうです.1.5.3ではJavaソースコードもきれいになり(前はEclipseで開くと警告だらけでしたがきれいになりました)、DITA-OTも整備がはかられたようです.次は1.5.4に向かって、バグも片つける予定なのでしょう.
 
 
私の場合PDF出力専門なのですが、せっかくなので前々から考えていたFeature Requestを挙げようかと考えています.
 
バグの話に戻りますが、ちょっとpdf2の索引をいじめすぎでしょうか?でもこれは自分でPDF出力のインプリメントをやってみて、あまりのpdf2の出来の悪さに唖然として上げたバグです.pdf2の索引のひどさはその前処理の基本設計にあります.事前にJavaで変なことをやっているからです.以下はその元凶の抜書きです.[DITA-OT]/demo/fo/README.txtにあります.
 
About the index extensions
==========================
The index generation feature adds extensions to DITA's indexterm that can be
expressed as content of that element. These extensions are expressed in a
FrameMaker-like syntax in the element's textual content, and provide
functionality not yet available in the standard indexterm element. They also
help migration from legacy FrameMaker content. For example, the following
generates a "see also" entry:
 <indexterm>Carp:<$nopage>see also Goldfish</indexterm>
As:
 Carp, 34
    see also Goldfish 
The extended syntax consists of:
 : (colon)       Separates levels in an entry
 ; (semicolon)   Separates entries in a marker
 [] (brackets)   Specifies a special sort order for the entry
 <$startrange>   Indicates the beginning of a page range
 <$endrange>     Indicates the end of a page range
 <$nopage>       Suppresses the page number in the entry (for example, in
                 a See entry)
 <$singlepage>   In a marker that contains several entries, restores the
                 page number for an entry that follows a <$nopage>
                 building block
DITA 1.1 indexing elements have been implemented in this plugin that
should make these extensions unnecessary. You can now express see/see
also, sort order and page ranges using standard DITA 1.1 elements.
 
何が悪いのかというと、古いFrameMakerの索引の書式をサポートするために訳のわからないJavaのルーチンを組み込んであり、それから永久に脱することができないのです.ですからちょっと<indexterm>に複雑な要素が絡むと見事にこけるか、デタラメな結果を出します.もうこのFO plug-inができてから何年になるでしょうか?もはや現在作られているDITAのインスタンスはFrame Makerのサポートなど必要としないでしょう.しかしソフトウェアはいったんできてしまうとなかなかその仕様を根本から変えることは困難です.
 
このFO plug-in(pdf2)の索引前処理はその悪い見本のようなものであると思います.
 
なおMicrosoft Wordにバグがあってもなかなか直してくれるものではありませんが、DITA-OTは対応できるものは非常にレスポンスが早いです.もしDITA-OTをお使いになって困ったことや、仕様変更のリクエストがあったらどしどしsourceforgeにメールを出すのが良いと思います.私も現在DITA-OT 1.5.1をお使いのお客様のためにバグやらRFEやら上げましたが、真摯に対応してもらえました.