ここでは、[[TeX Q & A>qa:index]] で話題になった、pdvipsとghostscriptの日本語設定方法について述べます。 //*目次 [#c74dbb77] #contents **はじめに[#bdcc8e5b] この内容は次の内容でお悩みの方にとって、価値があると思われます。 - psファイルの閲覧で、日本語が化ける - beamerを用いた日本語資料の文字が化ける(psを経由した場合で) - gnuplotでeps出力したファイルで文字が化ける ** 動作環境[#bdcc8e5a] QAで実際に問題が生じた環境は以下のものでした。 - OS : Fedor13.i686 - tex : platex --Version 3.141592-p3.1.10 (euc) (Web2C 7.5.6)) < yumを用いてtexliveよりインストール - dvips:pdvips -- p1.7a Copyright 2005 ASCII Corp.(www-ptex@ascii.co.jp) 5.96.1 Copyright 2007 Radical Eye Software (www.radicaleye.com)) - ghostscript:8.71 --同じくyumでtexliveと共にインストール - pdf,ps viewer:evince ちなみに、問題の発端は、beamer posterスタイルを使用したポスター作成時の文字化けでした。 **pdvipsの設定 [#l91d86a6] Fedora13の場合、日本語対応したdvipsはpdvipsになるようですが、なにも設定しないでpdvipsを使用すると mktexpk: don't know how to create bitmap font for rml. kpathsea: Appending font creation commands to missfont.log. pdvips: Font rml not found, characters will be left blank. といったエラーが出ることがあります。これはrmlというtfmファイルに割り当てるフォントが見つからないために出るエラーです。具体的には、日本語があるはずの部分が空白になります。このエラーには次の対処法を取ります。 - mapファイルを探す kpsewhich --format=.map psfonts.map で、psfonts.mapがどこにあるか探します。QAで取り上げられた問題の場合では、 /usr/share/texmf/fonts/map/dvips/updmap/psfonts.map でした。見つからない場合は、配布者に相談してください。 - mapファイルの編集&br; mapファイルが見つかったら、rmlにフォントを割り振ります。具体的には rml Ryumin-Light-H gbm GothicBBB-Medium-H rmlv Ryumin-Light-V gbmv GothicBBB-Medium-V を末尾に加えます。このファイルの中身は非常に長いので、実際のファイルの中身はここには掲載できません。 以上ができましたら、もう一度コンパイルをかけます。エラーがなくなれば、pdvipsの設定は終わりです。 ** ghostscriptの設定 [#lb61846e] pdvipsの設定が完了したにも関わらず、まだ日本語がうまく表示されない場合は、ghostscriptや、ファイルではなく閲覧用のアプリケーションの設定が必要です。もし、pdvipsの設定がうまくいっていれば、少なくとも日本語が出る位置には他の文字が出ているはずです。そうでない方は、もう一度pdvipsの確認をしたほうがいいと思います。ちなみに、gnuplotのterminal をpostscript eps enhancedにしている方で、日本語表示にトラブルを抱えている方にとって、この文章は解決のヒントになるかもしれません。具体的な解決方法は以下です。 - 表示問題の特定&br; まず、問題がghost scriptなのかを判別するために、適当な日本語を含んだ(漢字が入っていても、いなくても問題ない)ファイルを用意して、オプションをつけてコンパイルします。 gs -sDEVICE=x11 test.ps このとき、 GPL Ghostscript 8.71 (2010-02-10) Copyright (C) 2010 Artifex Software, Inc. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details. Can't find (or can't open) font file /usr/share/ghostscript/8.71/Resource /Font/Ryumin-Light-H. Can't find (or can't open) font file Ryumin-Light-H. Querying operating system for font files... Can't find (or can't open) font file /usr/share/ghostscript/8.71/Resource /Font/Ryumin-Light-H. Can't find (or can't open) font file Ryumin-Light-H. Didn't find this font on the system! Substituting font Courier for Ryumin-Light-H. Loading NimbusMonL-Regu font from /usr/share/fonts/default/Type1/n022003l.pfb... 2628532 1139472 3593500 1984411 1 done. >>showpage, press <return> to continue<< XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0" after 55 requests (51 known processed) with 0 events remaining. といったエラーが出ている方は、おそらくghostscriptの設定が必要です。QAの事例では、ghostscriptがフォントを探しにいっている /usr/share/ghostscript/8.71/Resource /Font というディレクトリすらない状況でした。 -cidfmapを探す。&br; 問題の特定ができた場合で、かつ上記のエラーが出ている場合は、cidfmapを編集する必要があります。cidfmapは通常ghostscriptのlibディレクトリにあるようですが、見当たらない場合はこれを探さなければなりません。QAの事例では /usr/share/ghostscript/8.71/Resource/Init/cidfmap にありました。このファイルにryuminに当たるフォントを指定(エイリアスを指定)すればいいのですが、cidfmapそのものは、いじるなと警告が記述されている場合があります。QAの事例では、ファイルの中身は %! % Don't change following line. We should ensure that the original one is surely loaded. (cidfmap.GS) .runlibfile % following lines are for CJK fonts. (cidfmap.ja) .runlibfileifexists (cidfmap.ko) .runlibfileifexists (cidfmap.zh_CN) .runlibfileifexists (cidfmap.zh_TW) .runlibfileifexists % must be at the bottom of line to allow people overriding everything. (cidfmap.local) .runlibfileifexists とありました。このような場合、cidfmap.jaやcidfmap.localを探しだし、編集をする必要があります。一般的には/usr/share/ghostscript/8.71/libにあるようですが、QAの事例では /etc/ghostscript/8.71 にありました。この辺は、環境に依って結構異なるようです。 -cidfmapの作成&br; cidfmapが見当たらない場合、作成することもできます。作成は gs -q -dBATCH -sFONTDIR=/usr/local/share/ghostscript/fonts/ -sCIDFMAP=/usr/local/share/ghostscript/8.71/lib/cidfmap mkcidfm.ps のようなコマンドで行います。sFONTFIRはフォントの格納されているディレクトリ、-sCIDFMAPにはcidfmapを作成するディレクトリを指定します。 -cidfmapを編集する&br; ファイルを見つけたら、ファイルの編集に移ります。まず、お手元に適当なTureTypeのフォントが無い方は、これを用意しましょう。cidfmapの編集は [[Ghostscript]] により詳細なものが出ているので、そちらも確認してください。 --fontを用意する&br; 例えば次の東京電気大学のページから持ってくるといいと思います。 http://ayapin.film.s.dendai.ac.jp/~matuda/jttf.html フォントが用意できたら、フォントを /usr/share/fonts/ に適当なディレクトリを作って格納します。もちろん、シンボリックリンクでも構いません。QAの事例では/usr/share/fonts/sazanami-20040629を作り、 sazanami-gothic.ttf sazanami-mincho.ttf を入れています。 --エイリアスの設定 cidfmapとフォントの用意ができましたら、cidfmapに /Ryumin-Light << /FileType /TrueType /Path (/usr/share/fonts/sazanami-20040629/sazanami-mincho.ttf) /SubfontID 0 /CSI [(Japan1) 2]>> ; /GothicBBB-Medium << /FileType /TrueType /Path (/usr/share/fonts/sazanami-20040629/sazanami-gothic.ttf) /SubfontID 0 /CSI [(Japan1) 2] >> ; といった文言を加えます。()の中身は、用意したフォントを指定して下さい。これで対処は終了です。 -確認&br; 設定後、psファイルを閲覧し、日本語が出ていれば成功です。ps2pdfなどを使って、psからpdfを作成している場合は、もう一度ps2pdfを使用してコンパイルをしてから確認してください。 **謝辞 [#m585375b] この文章を書くに当たって、kakuto先生とkuroky +先生には多大な情報を提供して頂きました。誠に有難うございました。 **参考 [#m585375c] - http://d.hatena.ne.jp/meitetujikokuhyou/20100420/1271777716