DocBook文書をPDFファイルに変換するdblatexでprogramlisting要素のコード内の日本語の表示がおかしくなる件とその対処について(バージョン0.3現在)
「DocBook文書をPDFファイルに変換するdblatexの色付きコード表示について(バージョン0.3現在)」に続き、その中の日本語表示に関するメモを扱う。
対処
説明上の注意
注意:以下、環境変数TEXMFVARのディレクトリ以下に対する操作を記述しているが、この環境変数は標準では定義されておらず、変換処理時に定義されていない場合にtexmf.cnf内の変数TEXMFVARが既定値として用いられる。texmf.cnfのあるディレクトリはディストリごとに異なるが、[/etc/texmf, /usr/share/texmf など]/web2c/の中にある。
以下の作業例で「${TEXMFVAR}」とあるものは、場合によってはそのディレクトリに読み替える必要がある。
対処を行うパッケージ
Listingsパッケージにおける日本語表示のトラブルは広く知られているようで、その対処としてjlistingというパッケージを入手/インストールして、コード側にある1行を追加すればよいということも同様に知られている。
まずは
http://mytexpert.sourceforge.jp/index.php?Listings
の「Listings パッケージについて」にjlistingの本体へのリンクがあるので、これをダウンロードする。
次にこれを伸長しつつ、エンコーディングをISO-2022-JPからUTF-8へ変換する。エンコーディングを変換しないと正しくPDFへの変換処理ができないので注意。
$ mkdir ${TEXMFVAR}/tex/latex/jlisting/ -p $ bzcat [jlisting.sty.bz2の場所] | iconv -f iso2022jp -t utf8 > ${TEXMFVAR}/tex/latex/jlisting/jlisting.sty $ mktexlsr ${TEXMFVAR}
GUIでは
コード側に追加する記述とdblatexでの適用のための強引な方法
jlistingを用いる場合
\usepackage{listings,jlisting}
を中間ファイル(.texファイル)へ記述しなければならず、これを追加するために適したオプションは見つからなかったが、XeTeXバックエンド用のフォント指定部分はコードが直接記述できるため、強引に
$ dblatex -b xetex -P xetex.font="\setmainfont{IPAGothic} \setsansfont{IPAMincho} \setmonofont{IPAGothic} \XeTeXlinebreaklocale \"ja\" \usepackage{listings,jlisting} " [DocBook文書]
のようにして試したところ、正しく日本語が表示されるようになった。(「\XeTeXlinebreaklocale」の記述については「DocBook文書をPDFファイルに変換するdblatexのリンク色変更と日本語の段落の自動改行に関するメモ(バージョン0.3現在)」を参照)
関連記事:
- DocBook文書をPDFファイルに変換するdblatexに関するその後(2010/4/26現在)
- DocBook文書をPDFファイルに変換するdblatexのリンク色変更と日本語の段落の自動改行に関するメモ(バージョン0.3現在)
- DocBook文書をPDFファイルに変換するdblatexの色付きコード表示について(バージョン0.3現在)
- DocBook文書をPDFファイルに変換するdblatexで外部の設定ファイルを用いる(バージョン0.3現在・ページ1/3)
- DocBook文書をPDFファイルに変換するdblatexで外部の設定ファイルを用いる(バージョン0.3現在・ページ2/3)
- DocBook文書をPDFファイルに変換するdblatexで外部の設定ファイルを用いる(バージョン0.3現在・ページ3/3)
関連URL:
- http://mytexpert.sourceforge.jp/index.php?Listings - jlistingへのリンクを含む
使用したバージョン: