« 試験終了 | Main | 今年のコンパイラ演習 »

September 14, 2005

DocBook

HTMLは文書(ハイパーテキスト)の論理構造を規定するためのものだが、その機能はお世辞にも充実しているとはいえない。特に参照系の機能が皆無である。

例えばTeX(LaTeX)で文書を作る場合と比較してみると、HTMLでは図表番号参照も、文献番号参照も、章番号参照も、脚注も自動でつけることはできない。ちょっとした大きさでかつきちんとした文書を書こうとすればこれらは必須のものであり、HTMLはこの点で非常に文書を作りにくい言語であると言える。

HTMLの利点は何よりもその普及度・軽さ(PDF等に比べて)にある。要は最終的なプレゼンテーションメディアとしてHTMLを使えばいいのであって、記述する際にはもっと別の形態でもいいのではないか、ということは誰しもが考えることだろう。実際CGIなどはまさにそれにあたる。そのような背景のもと、HTMLの上位に当たるレベルでの文書の記述方法について3通り考えてみた。

1つには上で述べたとおりTeXを使うということが挙げられる。tex2htmlのようなツールもあり、HTMLへの変換も容易である。ただし画像等の扱いがどうなるのかいまいちよくわからない。長年使われてきたツールだけに、コンパイル環境等もよく整備されており、一度環境を築いてしまえば快適に執筆を行える。

2つめに考えられるのは最近流行のWikiの使用である。WikiはHTMLを基本としつつも、それを簡単に入力できるような独自の記号を導入していることが多く、直接HTMLを書くよりもはるかに楽になる。また相互参照等の機能も(Wiki処理系によっては)充実している。そのような理由から技術系Tips等をWikiにまとめて公開している人も増えてきた。

3つめとして注目しているのがDocBookである。DocBookは簡単に言えばHTMLをさらに便利にしたようなXMLアプリケーションの1つで(要素名等、記法はHTMLとは大きく異なる)、HTMLの不満として上に示した様な事柄が解消されている。DocBook形式をHTMLやPDF、PSといった様々な形式に変換することができ、かなり便利そうである。身近な例としては、SubversionのマニュアルがDocBookによって生成されている。Subversionドキュメントの本家サイトに行くと、DocBook形式のソースを入手することができる。

DocBookにはプログラミング言語用やOS操作用の様々な要素が用意されており、特にコンピュータ関連の技術文書を記述するのに便利そうだ。基本的にコンピュータ関連のマニュアルやドキュメントを記述することを想定しているらしい。Web上のマニュアルも、PDFでの印刷用マニュアルも同一のソースから生成できるというのは魅力である(*1)。

Wikiの利点は手軽なことだが、DocBookは逆にかなりの大きさをもった文書を作成する際に威力を発揮するであろう。文書が巨大な場合、ブラウザのテキスト入力欄を使ってWikiに記述するのは苦痛であり、操作ミス(うっかりウィンドウ/タブを閉じてしまう)やクラッシュなどに対しても脆弱である。

そんなわけで、これからはこのDocBookというものに注目してみようかと思った次第。実際に使うかどうかはわからないけど。

(*1)…本当にこれをやる場合、ラスタ画像の解像度の違いが問題となる気がする。Longhornが高解像度ディスプレイの普及を促進すれば問題なくなるが。

|

« 試験終了 | Main | 今年のコンパイラ演習 »

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/39126/5933086

Listed below are links to weblogs that reference DocBook:

« 試験終了 | Main | 今年のコンパイラ演習 »