Ubuntu日本語フォーラム
ログインしていません。
以前から、Texで、日本語を使っており、特に問題なかったのですが、7.4から7.10にアップグレードした後より、xdviから、プリントアウトすると、日本語が文字化けしてしまいます。
xdviでは、問題なく日本語が表示されているのですが。
dvips、dvi2psなど、いろいろと試してみましたが、いずれも同じ症状です。
fontの設定の問題かと思い、ネットで検索していろいろと試みましたが、うまくいきません。
どなたか、解決のヒントをお教えいただければ幸いです。
オフライン
日本語PostScriptファイルを表示するには、
cmap-adobe-japan1
gs-cjk-resouce
が必要だと思います。
latex-extra-jaをインストールされているのなら、dvipdfmxでdviファイルをPDFにするって手もあります。
オフライン
cmap-adobe-japan1
gs-cjk-resources
いずれも、インストールされています。
dviファイルは、xdviで、問題なく日本語表示されており、dvipdfmxで作成したpdfファイルも、xpdfで、問題なく表示されています。
ただ、いずれも、プリンターに印刷する際にのみ、文字化けしてしまいます。
ちなみに、pdf ファイルは、Windows machine からは、問題なく印刷できます。
オフライン
その後の報告です。
ps2psを用いて、dvipsから出力されたps fileを変換したものを、lprに渡してやると、正常に日本語が印刷できました。この方法で、なぜうまくいくのかがわかりませんが、とりあえず印刷はできるようになりました。
使用しているプリンターは、Hewlett-PackardのOfficejet J5780で、Cupsから印刷しています。
Ghostscriptのバージョンは、8.61です。
ghostscriptの設定をいじれば解決するのかとも思い、いろいろと検討してみましたが、うまくいきませんでした。
とりあえず、これ以上の追求はあきらめました。もし、この問題が一般的に起きるものであれば、どなたか、解決の筋道でも教えていただければ幸いです。
オフライン
chang-hs による投稿:
ちなみに、pdf ファイルは、Windows machine からは、問題なく印刷できます。
文字コードの問題とかあるので他の環境で表示できても印刷可能な PDFファイルとは限らないかもです。
で, Texは知らないので間違ってるかもだけど, まず切り分けを行った方がよいかも。
たぶんプリンターには psとして送り込んでると思うので, Texから psを生成して gvなどで表示してみてはどーでしょう。表示できないようならその生成が変, 表示できるようならその先のプリンタードライバー関係とか。
オフライン
あれ ? かぶった。
chang-hs による投稿:
ps2psを用いて、dvipsから出力されたps fileを変換したものを、lprに渡してやると、正常に日本語が印刷できました。この方法で、なぜうまくいくのかがわかりませんが、とりあえず印刷はできるようになりました。
もし dvipsからのものを直接印刷できないのなら, 他のフォーラムにあった GPL Ghostscript SVN PRE-RELEASE 8.61の問題かもです。
オフライン
xdviでDVIファイルを表示→File -> Printからdvips/lprで印刷
を試してみましたが日本語が化けることなく表示・印刷できました。
RxOrcaさんのおっしゃるとおり、切り分けが必要だと思います。
とりあえず、以下の状況であってますでしょうか。
あと?のところを調べていただいた方がいいかもしれません。
日本語DVIファイルをxdviで表示→○
日本語DVIファイルをxdviで印刷→×
日本語DVIファイルをdvipdfmxしてxpdfで表示→○
dvipdfmxでできたPDFファイルをlprで印刷→×
日本語DVIファイルをdvipdfmxしてevinceで表示→?
日本語DVIファイルをdvipsしてevinceで表示→?
日本語DVIファイルをdvipsしてさらにps2psしてevinceで表示→?
日本語DVIファイルをdvipsしてさらにps2psしてlprで印刷→○
オフライン
Shibata様、RxOrca様、どうもありがとうございました。
現在、以下のような状況です。
日本語DVIファイルをxdviで表示→○
日本語DVIファイルをxdviで印刷→×
日本語DVIファイルをdvipdfmxしてxpdfで表示→○
dvipdfmxでできたPDFファイルをlprで印刷→×
日本語DVIファイルをdvipdfmxしてevinceで表示→○
日本語DVIファイルをdvipsしてevinceで表示→○
日本語DVIファイルをdvipsしてさらにps2psしてevinceで表示→○
日本語DVIファイルをdvipsしてさらにps2psしてlprで印刷→○
他のプリンターでは、問題ないとのことですと、printer driver側の問題でしょうか?
HPLIP ver 2.7.7というパッケージを使って、Cupsで印刷しています。
HPLIPのホームページを調べると、現在使用中の、HP Officejet j5780が、supported deviceのリストに入っているのですが。
オフライン
ps2psだけがいけるとなると、日本語フォントとプリンタドライバの扱いで問題が起きているのかもしれません。でも、7.04ではうまくいっていたんですよね……。
とりあえず、xdviのPrintダイアログからps2psを直接呼び出せば回避はできると思います。Printダイアログの、Printerのところに
gs -q -sDEVICE=pswrite -sOutputFile=- -dNOPAUSE -dBATCH -dSAFER | lpr
と書いて、Printを実行してみてはどうでしょうか。
# gsうんちゃらのところはps2psを使いたかったんだけど、
# ps2psは標準入力が使えないせいなのか、うまくいきませんでした。
オフライン
Shibata 様
どうもありがとうございました。
ただ、教えていただいたコードは、そのままでは、どうも、うまく動かないようでした。
簡単なshell scriptを書いて対応することにしました。
プリンター側の問題は、少し時間をかけて検討してみたいと思います。
皆様、ご親切な対応、どうもありがとうございました。
オフライン