試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

DocBook XML文書をPDF形式に変換するdblatexに挑む(インストール)

DocBook XML文書をPDF形式に変換するのに、foという形式を経由して行う方法があるのだが、この方法で出力したPDFファイルは、何か物足りないものがある。
これとは別に、dblatexという、LaTeX文書を経由してPDF形式に変換するツールがあるのだが、導入がかなり大変で、日本語にも対応していることはしているのだが、うまくいかない部分もある。それらを含めての覚え書き。今回はインストールまで。
(2010/4/25)Debian/Ubuntu/Mandriva/Fedoraなどではディストリのパッケージが利用可能となっており、「dblatex」パッケージを入れるだけでよい。
(2010/5/10)使い方(バージョン0.3時点)については「DocBook文書をPDFファイルに変換するdblatexに関するその後(2010/4/26現在)」を参照。

  1. 依存パッケージ
  2. インストール
  3. Gentoo Linuxの仮ebuildファイル

依存パッケージ

  • Python 2.4
  • libxslt(xsltproc)
  • DocBook XMLDTD
  • freetype-1.3系(GentooではUSE=tetexが必要。Debian,Ubuntuでは「freetype1-tools」。TeXファイルからPDFへの変換時に使用)
  • LaTeXパッケージ(Gentooではtetex)
  • LaTeX CJKパッケージ(Gentooでは「cjk-latex」だが、バージョンが古いので最新版を入れる → 関連記事を参照)
  • LaTex Unicodeパッケージ(GentooではUSE=cjkが必要)
  • Cyberbitフォントもしくは日本語フォント(LaTeX CJKで使用するのに必要で、事前に面倒な手順による準備をしなくてはならない → 関連記事を参照)

インストール

公式サイトから「Releases/Download」をたどり、tar.bz2ファイルをダウンロードし、これを展開してディレクトリに入る。

$ tar jxf dblatex-0.2.7.tar.bz2
$ cd dblatex-0.2.7/

次に、setup.pyでインストールする。--catalogsオプションは、xsltprocが使用するdocbook.catの場所を指定するのだが、後で変更や上書きが可能で、SGML_CATALOG_FILESを手動でセットしなくても動作していれば、指定しなくてよい。
デフォルトでは/usr/以下に入るようだ。下の例では、後でアンインストールしやすいように、porgの前身であるpaco(当時の名称)を使用している。

$ sudo paco -lD "python ./setup.py install --catalogs=/usr/share/sgml/docbook/xml-dtd-4.4/docbook.cat"

もし、/usr/local/以下に入れたいのであれば、--prefix=/usr/localを指定し、

$ sudo paco -lD "python ./setup.py install --prefix=/usr/local --catalogs=/usr/share/sgml/docbook/xml-dtd-4.4/docbook.cat"

のようにするのだが、Pythonのモジュール探索パス(環境変数PYTHONPATH)に/usr/local/lib/python2.4/site-packagesを実行時に含めるか、もしくは事前にセットしておく必要がある?

$ export PYTHONPATH=${PYTHONPATH}:/usr/local/lib/python2.4/site-packages
$ dblatex [引数...]

実行ファイルの7行目には

sys.path.append(r"/usr/local/lib/python2.4/site-packages")

と書かれているのだが、PYTHONPATHの値に入れないと

Traceback (most recent call last):
  File "/usr/local/bin/dblatex", line 16, in ?
    from dbtexmf.dblatex import dblatex
ImportError: No module named dblatex

となってしまった。

Gentoo Linuxの仮ebuildファイル

仮のebuild。PDFへの変換を行う場合、別途freetype1もUSE=tetexで入れておく。
(2010/4/25)
http://bugs.gentoo.org/show_bug.cgi?id=129368
ebuildがアップロードされているため、ここに貼り付けたものは削除した。