2008年01月03日
InDesign+XMLを実践してみる
かねてからの懸案だった、InDesignによるドキュメントの自動組版に挑戦しています。
自動組版ならTeXでいいじゃないという声が聞こえてきそうですが、三美印刷・東京書籍印刷・オーム社のようなTeXニシャンがいない限り、商業出版品質のスタイル付けをするのは現実的に「無理」です。そもそもTeXニシャンの絶対数がどんどん少なくなっていっている上に、DTPオペレータ知識にプログラマ(しかも生TeXの…)とデザイナの素養がプラスで必要となるため、将来に希望の持てる手法とは言い難いものがあります。XMLにXSLを付けるApache FOPは期待を少し持てますが、日本の商業出版品質にまで至るのはまだ当分先……というか、XSLエディタがまだ厳しいなぁというところ。少なくとも商業出版用と言ってデザイナに使わせたらキレるでしょう。あとは商業出版品質だとFrameMaker。まぁこれは妥当なところだとは思うんですが、MacOS版はもうないし、Adobeの本気度もいまいち低めな気がするし、周囲のDTPオペレータも使ってないのでこれから展開するのは難しいものがあります。
で、現状で弊社のDTPオペレータ/デザイナがなじんでいるソフトウェアでなんとか済ませるようにすれば、書面レイアウトなどで無駄がなく、自動組版作業のコストもそこそこ安く済ませられるのではないかと考えています(OS9→OSXや各ソフトウェアのバージョンアップなどはしょうがないとして)。つまり、Adobe InDesignかQuark QuarkXpressです。
ただどうも調べてみるとこれらは自動組版ができるかのように謳いつつも、標準で用意されている機能は版面のちょっとした部分で流し込みができるよ、という程度で、数百ページの書籍の作成に必要な機能が不足しているようです(そもそもこれらは、パンフなどの薄くて書籍要素がほとんどないものを作るためのものかも…)。
InDesignやQuarkの自動組版にあたってサードパーティ製のものはいくつかあるのですが、値段が大変高かったり、機能的に満足行かないものが多く、会社で買って実用にするにはちょっと厳しいかなというところです。
ということで、すでに屍があちこちにありそうですが、簡易XMLドキュメントにDTPオペレータおよびデザイナにより作成した綺麗なスタイルを付け、ほぼそのまま入校できることを目標にします。
InDesign CSからある程度まともなXML処理が加わっており、UIやJavaScript(AppleScriptやVBScriptもありますが、互換性が怖いし)で操作できます。難しそうなところ(構造を平たく示すタグ、相互参照やナンバリングなど)は事前に外部でノーマライズやパーサをRubyあたりで書いておくことで回避するのがよいかなと思っています。
大扉や章扉、権利表記、奥付などの差し替えで対処できそうなところは無理せずに差し替えで対処していこうと思いますが、章扉で節タイトルを含ませたい場合は自動生成したいかもしれません。
とりあえず現時点では、
- XMLの1つのタグに1つの段落スタイルまたは文字スタイルを割り当てる (InDesignの標準機能)
- 図表をXMLで表現する (同標準機能)
- 対象段落スタイルを選択しての節柱の自動生成
- XML索引用タグからノンブルと索引項目をマッチングさせたCSVの出力
- XML脚注用タグから脚注の自動生成 (文字スタイルの反映がまだ)
というところまで進んでいます。ライセンス(LGPLの方針を短く日本語にした的なもの)などを記述した後に、このblogカテゴリか専用ページを用意して配布を考えています。
なお、私が使っているのはWindows版InDesign CS2です。XMLイベントモデルがない(提供されるのはDOMモデルっぽいものだけ)、XPathがない、footnoteにはXMLを入れられない(これはCS3でもダメ)、といろいろ涙目。
![[hatena]](http://d.hatena.ne.jp/images/b_entry_de.gif)
![[RSS]](/d/rss10.png)