Tweet

DocBook

まわりをいろいろ調べてみる.

DocBook とは

おおざっぱに言うと

linuxdoc の多機能版

というところかな.

1つの DocBook 文書から様々なフォーマットの文書を生成しよう,ということが意図されています.

DocBook文書 --+--> HTML文書
               |
               +--> PDF文書
               |
               +--> …

で,DocBook 文書自体は

  • SGML or XML 上の文書の定義である
  • DocBook 上では文書構造・文章の「意味」でタグづけを行う.
  • 変換プログラムにより,DocBook 文書から HTML や PDF の文書に変換する

という感じで,おそらく LaTeX のような感覚で文書を作成できるはずです. (実は,今は処理環境を調べているだけで,実際に文書を書くところまでには至っていません.)

まずはぐぐる

日本語処理環境はどんな状態か,と,ぐぐってみる. すると

  • (X)HTML への変換はやっている人はいるらしい.
  • が,PostScript or PDF への変換については,「できたぞ」という話はあまりないようだ
    • 英語版の説明の受け売りそのまんま,というページはありますが.

というわけで問題は

PDF の生成に問題があるらしい.

事実,手元の環境で日本語文書に対し docbook2dvi などを実行しようとすると,TeX のコンパイルフェーズでコケてしまう. オプションを指定し,.tex ファイルを生成して platex に渡してみると,.tex ファイルのショッパナのマクロがわからん,ということで停止. 調べてみると docbook2* コマンドでは eTeX という,拡張 TeX を仮定しているらしい.

他の変換プログラム

いろいろぐぐってみると,dblatex というのがあるということがわかる. debian のパッケージにもなっているので,素直に apt-get でインストールする.

で,何も考えずに日本語の DocBook 文書を処理させてみると…

日本語文字が実体参照 (\&\#xxxx;) のまま,.tex ファイルまで突き抜けている

ということで,ちょこちょこっと perl でフィルタを作って,これらの文字を EUC-JP に変換してやる. で,platex にかけると… めでたく .dvi ファイルが生成されました.

問題点

  • \documentstyle{jreport} を指定してやると,「第 n 章」が「第 n」としか表示されない
    • \chapter をどこかで再定義しているところの問題かな
  • \lstlisting で日本語文字列と英語文字列の順番が入れかわる

今のところ見えているのはこんなところかな.


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-07-18 (火) 10:39:09 (4168d)