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

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

DocBook文書をPDFファイルに変換するdblatexに関するその後(2010/4/26現在)

ディストリのパッケージについて

2010年4月の時点では、ディストリのパッケージとしてDebian/Ubuntu/Mandriva/Fedoraなどのディストリにおいて利用可能となっている。Gentooでは標準のパッケージとはなっていないが
http://bugs.gentoo.org/show_bug.cgi?id=129368
ebuildファイルがアップロードされており、ローカルOverlayからインストールすることができる。ただし、コマンド名はdblatexではなくdocbook2latexとなっているようだ。

日本語を含むDocBook文書の変換に関するその後

以前試したときに、中間ファイルの処理がうまくいかないことがあったりページ一覧(しおり)の日本語が化けたりしていたが、バージョン0.2.9からXeTeXバックエンドが利用可能となり、これを用いることで、変換処理も日本語の表示もうまくいくようになっている。特にフォントの変換や設定ファイルの変更といった準備は必要ない。
バックエンド指定のためのコマンド行オプションは-b xetexで、フォント指定のためのコマンド行オプションは-P xetex.font="\setmainfont{[メインフォントの名前]}
 \setsansfont{[Sansフォントの名前]}
 \setmonofont{[固定幅フォントの名前]}
"となる。
「\setsansfont」で指定するフォントは本来は明朝系やTimes系のフォントだが、ドキュメントの見栄えの好みによって変更し、ゴシック系で統一したりすることもできる。
なお、日本語を段落に記述したときに出る不具合があるのだが、これについては別記事で扱う。

ディストリによってはxdvipdfmxが必要なことも

手元のMandriva Linux 2010.0でバージョン0.2.9-3のソースRPMをもとにバージョン0.3のパッケージをビルド/インストールしたものでは

Build the book set list...
Build the listings...
XSLT stylesheets DocBook - LaTeX 2e (0.3)
===================================================
Stripping NS from DocBook 5/NG document.
Processing stripped document.
Build articletest.pdf
This is XeTeXk, Version 3.141592-2.2-0.997 (Web2C 7.5.6)
 %&-line parsing enabled.
entering extended mode
sh: xdvipdfmx: コマンドが見つかりません
xelatex: fwrite: Broken pipe
xelatex failed
Unexpected error occured

となり、「texlive-dvipdfm」というパッケージの追加インストールが必要だった(依存パッケージの記述に不足がある?)が、ディストリによってはTeX Liveを入れるとその一部として標準でインストールされる。

変換作業例

下はIPAフォントを用いた変換作業例。IPAフォントはライセンスによりPDF文書への埋め込みが認められている。

$ dblatex -b xetex -P xetex.font="\setmainfont{IPAPGothic}
 \setsansfont{IPAPMincho}
 \setmonofont{IPAGothic}
" [DocBook文書ファイル]

UTF-8環境では日本語のフォント名で指定することもできる。

$ dblatex -b xetex -P xetex.font="\setmainfont{IPA Pゴシック}
 \setsansfont{IPA P明朝}
 \setmonofont{IPAゴシック}
" [DocBook文書ファイル]

なお、-Pというオプションは[インストール先]/dblatex/xsl/以下の.xslファイルのxsl:paramで定義されている値を書き換える効果を持っており、その「[項目名]=[値]」の形で指定する。
下は変換後のPDFファイルをAdobe Readerで表示しているところ。

下はプロパティから埋め込みフォント情報を参照しているところ。フォントが指定されていても該当する要素(固定幅フォントの場合はprogramlistingなど)が1つもなければ埋め込まれない。

関連記事:

まとめドキュメント:

使用したバージョン:

  • dblatex 0.3
  • TeX Live 2007-21.r6295.7mdv2010.0
  • Python 2.6.4