Vine Linux バグトラッキングシステム - Vine Linux
課題の詳細を表示
0000476Vine Linux1 バグ公開2007-02-06 19:562007-05-01 00:41
anonymous 
 
不明 
完了不明 
4.0 
 
x86
docbook-utils-pdf-0.6.14-2vl1
0000476: docbook2pdfで日本語が文字化け
Vine Linux 4.0
使用しているハードウェア環境 TOSHIBA Dynabook Satellite 1800 SA75P

JFを参考にして、テキストファイルの先頭部分を
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN">
<article lang="ja">
とし、
docbook2pdf したらpdfファイルの日本語の部分だけが文字化けしていました。
docbook2html では問題ありませんでした。

元のsgmlファイルは、当初Shift-JISコードで改行もMS-DOSモードで
エラーがたくさん出ていたのですが、EUCコードで改行はUNIXモードに
したらエラーがなくなりました。
docbook2htmlも正常に動作するようになったのですが、
docbook2pdfは出来上がりのpdfファイルの日本語部分が文字化けしています。
設定されていません。
課題の履歴
2007-02-06 19:56anonymous新規課題
2007-02-10 19:50anonymousコメント追加: 0002393
2007-02-10 20:41anonymousコメント追加: 0002394
2007-05-01 00:41kazutaka状態新規 => 完了
2007-05-01 00:41kazutakaコメント追加: 0002395

コメント
(0002393)
anonymous   
2007-02-10 19:50   
通りすがりのM.Hと申します。

docbook-utilsのdocbook2pdfは、jadetexのpdfjadetexを使っていて、
pdfjadetexは、pdfetexのシンボリックリンクになっています。
pdfetexが日本語対応していないので、docbook2pdfも日本語に対応していません。
だから、文字化けしてしまうのは、たぶん、仕様です。

同じような理由でdocbook2psも日本語対応していないのは仕様だと思いますが、
こちらの方はインストールされている設定ファイルを少し変更するだけで
日本語(EUC-JP)対応することが出来ます。

rootになって、
cd /usr/share/sgml/docbook/utils-0.6.14/backends
mv -f ps ps.orig
cp ps.orig ps
psの中に三箇所ある jadetex を jadeptex に変えるだけです。

そうしておいて、
mv -f pdf pdf.orig
cp ps pdf
pdfの最後に、

 if [ -f ${SGML_FILE_NAME}.ps ]
 then
   ps2pdf ${SGML_FILE_NAME}.ps
 fi
 rm ${SGML_FILE_NAME}.ps

を追加すれば、
docbook2pdfで期待されているような動作になるのではないでしょうか?
ps2pdfは、ghostscriptパッケージに入っているので、
インストールされていると思います。
(0002394)
anonymous   
2007-02-10 20:41   
M.H様、ご回答ありがとうございます。

> rootになって、
> cd /usr/share/sgml/docbook/utils-0.6.14/backends
> mv -f ps ps.orig
> cp ps.orig ps
> psの中に三箇所ある jadetex を jadeptex に変えるだけです。
>
> そうしておいて、
> mv -f pdf pdf.orig
> cp ps pdf
> pdfの最後に、
>
> if [ -f ${SGML_FILE_NAME}.ps ]
> then
> ps2pdf ${SGML_FILE_NAME}.ps
> fi
> rm ${SGML_FILE_NAME}.ps
>
> を追加すれば、
> docbook2pdfで期待されているような動作になるのではないでしょうか?

この方法でほぼ解決致しました。
ただ、本来日本語で「目次」と出力されるところが
「<30446><27425>」となってしまいます。
しかし、「lang="ja"」を削除すれば、
「Table of Contents」となるだけなので、
これは我慢します。

ありがとうございました。
(0002395)
kazutaka   
2007-05-01 00:41   
完了にします。

ハラダ