最近とみに感じるんですが、「XMLはコンテンツをオーサリングし、スタイルは様々なメディアに出力するときにスタイルシートで付加するんだ」というのが従来の典型的な考え方だったと思います.でもこのような考え方は実際に作られている出版物の実体に合致しなくなってきているのではないでしょうか?
例えば目次を作るとき、DITAでは
<frontmatter>
<booklists>
<toc/>
</booklists>
...
</frontmatter>
とやるのが当たり前でした.これだったらトラディショナルな目次だったらたぶんそれほど苦もなくつくれるでしょう.
でも例えば次の例を見てください.これは私が住んできる長野県の企業、EPSONのプリンターの操作ガイドのマニュアルです.WEBからダウンロードさせていただきました.
EP-803A/EP-803AW 操作ガイド
このPDF自体はIn Designで作られているようです.このマニュアルの表紙をめくると、最初のページは「本製品の特徴」のページになっています.
もしXSL-FOをやっている人だったら、思わずこんなのどうやって作るんだ!と考えてしまうのではないでしょうか?
1.まずレイアウトがどうも定型的ではありません.
2.実は本当の目次は別にあるのですが、お客様はまずこのページでどこを見るのかナビゲートしてもらいたいという製作者の意図が伝わってきます.
3.それで、各項目には「☞NNページ」という参照先がついています.
実はこの参照先にはリンクがついていないのでクリックしてもジャンプしてくれません.でも本当の製作者の意図はここからジャンプさせたかったのに違いないでしょう.
普通文書の構成が章-節-項というようになっているとき、これらの部分はまあたいてい定型的なデザインです.でも表紙/裏表紙や前付、奥付けなんかは、単に定型的なスタイルをあてるスタイルシートでは対応できないデザインが多々あるのです.
以前あるお客様でも表紙を作成しようとしたときに同じような問題にぶつかりました.定型的でないスタイルをどうオーサリングし、表すかという問題です.
いちばんありそうな対応方法のパターンが、この「本製品の特徴」のページを絶対位置のfo:block-containerの領域に分けて、位置を固定し、オーサリングもそこに収める特有の属性をつけてやるというものです.
例えば、
<p outputclass="feature_1">メモリカードの写真を印刷する<xref href="~" type="task" scope="local"/><image href="printPhoto.tif" placement="break"/></p>
としておいてoutputclass="feature_1"だったら、「本製品の特徴」の最初の固定位置のfo:block-container内に出すというものです.もちろんスタイルもこの位置で決めうちです.
しかし、この方法は仕様変更に弱すぎます.すこしデザインを変更したかったり、コンテンツや位置の変更があると、オーサリングもスタイルシートも直さねばなりません.たいていこのようなPDFを作るメーカーのお客様はスタイルシートを外注しているので、ほんの少しの仕様変更でもその都度お金がかかってしまいます.
まあすべてを制作会社さんに委託しているのでしたらなんとかそういうのも込みでやってもらうことも可能でしょうが、しかし仕様変更の都度オーサリングとスタイルシートを変えねばならないというのは、発注するほうにも請ける方にも負担になります.
しかし、今後ペーパーレスが進んで、PDFにそれなりに特化して凝ったものができてくる可能性もあるように思えます.例えば、タブレットなんかでマニュアルをダウンロードしてみるのが当たり前になるかもしれません.
そうしてみるとビジュアルな「本製品の特徴」のようなものをもっとXMLで簡単に作れる方法が必要になってくると思います.少しこれについて考えてみたいと思います.