DITAのエディタ論議

老舗のArbortextのエディタはLF(U+000A)をbookmapのmainbookitleに入力できません.もちろんDTDxml:space="preserve"と指定されているpreとかそういうのはできるんだろうけど.
 
PTCのコミュニティフォーラムに投稿したら「そのような組版制御はDITAのパラダイムにそむくものだ」という意見が返ってきました.でもそんなことXMetaLとかoXygenとか他のXMLエディタでは、みんなできていることです.
 
 
要するにやりたいことは、本の表紙にmainbooktitleを出すのだけれど、いろんなmainbooktitleの内容がありえて、しかも出力する領域幅は決まっているので、任意の場所で改行したいということです.
 
XSL-FOでは領域の大きさの決まったfo:block-containerを作り、その中に配置するfo:blockにlinefeed-treatment="preserve", wrap-option="wrap"と指定してやればLFが尊重されるようになります.Wordの画面ですが、ちょうど以下のようなものです.
 
イメージ 1

こういうパターンって実に表紙なんかを作るときよく出てきます.任意の場所で改行させて、しかも全体が入らないときは長体をかけたりフォントサイズを小さくして欲しいなどなど.
 
改行を入れられないということになると、DITAでは特殊化を行って<br/>なんていう要素を作ったり、または処理命令で改行を表してスタイルシートで処理させたりと文書モデルの設計や出力側に負荷がかかります.
 
まあいわゆるwhite spaceはXMLにとってはとかくやっかいな存在なので、エディタで入れられないようにするいうのは確かに一つの「設計の見識」ではあります.でもDTDで#PCDATAが可能なコンテンツモデルにどうやってもLFを入れられないというエディタがあるとすれば私は絶対買わないです.でもArbortext島の人たちはそれで暮らしているようですね.
 
Arbortextは長老舗です.W3CのXSL-FO 1.0の仕様策定にも加わって苦労してくれました.なんですけど今回のコミュニティの返事にはちょっとがっかりしました.