2010/10/26(Tue)gnuplotでUTF-8の日本語を含むEPSファイルを作成する
2010/10/26 6:30
とりあえずWindows対象です。
ダウンロードと解凍
gnuplot homepageからDownload→Primary download site on SourceForgeと進んで、Download Now!をクリック。この記事を書いた段階では、gp442win32.zipが最新でした。
とりあえずzipの中で必要なのはgnuplot\binaryだけなので、ここを適当なフォルダへ解凍。
ただし、パスに日本語ファイル名を含むような(例えばデスクトップ)場所に置くと、起動がうまくいかない事があるのでご注意を。(これは読み込むファイルにも言えます)
初期設定
gnuplot.exeはコマンドライン用なので、GUIを持っているwgnuplot.exeを起動します。シェルのような物が出てきますが、フォントが潰れていてとても読めた物じゃない状態で起動すると思いますので、以下のように、適当なところで右クリックして、Choose Font...を選びます。
(以下の画像は文字化けしていませんが、既にこの行程を済ませた状態です)
「MS ゴシック」「標準」「9pt」「日本語」を選んでおけば問題ないでしょう。
その後、設定ファイルに保存するためにもう一度右クリックして、Update ....\wgnuplot.iniをクリック。これで次回から化けません。
が、入力した文字を確定直後に文字化けしたように見え*1たり使いにくい?ので、基本はメモ帳などテキストエディタで作業する方が良いかもしれません。
EPSファイルの作成
初期状態で"Terminal type set to 'wxt'"と表示されているように、デフォルトの設定だと、出力先がgnuplotのウィンドウになっています。これを例えばEPSファイルにするには、
set terminal postscript eps enhanced "GothicBBB-Medium-UniJIS-UTF8-H" set output "test.eps"という2行をplot行より前に書きます。
これだとシステムに入っているゴシック系のフォントが選ばれるみたいです。WindowsだとMS ゴシックですね。
明朝系は"Ryumin-Medium-UniJIS-UTF8-H"とかでしょうか。
他にもいくつか定義名がありますが、詳細はGhostScriptをインストールしたフォルダ\Resource\Fontにあります。一応リスト。
テストファイルを置いておきます。
test.pltとでも名前を付けてUTF-8で保存して、gnuplotからloadに続けてフルパスで記述すればOKです。
set xlabel '日本語' set ylabel 'けろけろけろ' set terminal postscript eps enhanced "GothicBBB-Medium-UniJIS-UTF8-H" set output "test.eps" plot x正しくできたかどうかは、GSView辺りを使って確認してもいいですが、TeXに書いてみるとBoundingBox含め、正しく描画されているかが分かると思います。これもUTF-8で保存。
\documentclass[a4j,11pt]{jarticle} \usepackage{graphicx} \begin{document} 日本語日本語 \begin{figure}[tb] \centering \includegraphics[width=7cm]{test.eps} \end{figure} \end{document}
日本語が化ける場合
gnuplot等で作ったepsの日本語が化けるに書いたように、GhostScriptのフォント定義が未設定か壊れているのが原因なので、lib\cidfmapを作り直せば化けなくなります。これのせいでえらいハマった、ハマった……(汗
GhostScriptに入っているフォント定義一覧
CenturySchL-Bold CenturySchL-BoldItal CenturySchL-Ital CenturySchL-Roma Dingbats FutoGoB101-Bold-EUC-H FutoGoB101-Bold-EUC-V FutoGoB101-Bold-H FutoGoB101-Bold-UniJIS-UTF16-H FutoGoB101-Bold-UniJIS-UTF16-V FutoGoB101-Bold-V FutoMinA101-Bold-EUC-H FutoMinA101-Bold-EUC-V FutoMinA101-Bold-H FutoMinA101-Bold-UniJIS-UTF16-H FutoMinA101-Bold-UniJIS-UTF16-V FutoMinA101-Bold-V GothicBBB-Medium-EUC-H GothicBBB-Medium-EUC-V GothicBBB-Medium-H GothicBBB-Medium-UniJIS-UTF16-H GothicBBB-Medium-UniJIS-UTF16-V GothicBBB-Medium-V HiraKakuPro-W3-EUC-H HiraKakuPro-W3-EUC-V HiraKakuPro-W3-H HiraKakuPro-W3-UniJIS-UTF16-H HiraKakuPro-W3-UniJIS-UTF16-V HiraKakuPro-W3-V HiraKakuPro-W6-EUC-H HiraKakuPro-W6-EUC-V HiraKakuPro-W6-H HiraKakuPro-W6-UniJIS-UTF16-H HiraKakuPro-W6-UniJIS-UTF16-V HiraKakuPro-W6-V HiraKakuStd-W8-EUC-H HiraKakuStd-W8-EUC-V HiraKakuStd-W8-H HiraKakuStd-W8-UniJIS-UTF16-H HiraKakuStd-W8-UniJIS-UTF16-V HiraKakuStd-W8-V HiraMaruPro-W4-EUC-H HiraMaruPro-W4-EUC-V HiraMaruPro-W4-H HiraMaruPro-W4-UniJIS-UTF16-H HiraMaruPro-W4-UniJIS-UTF16-V HiraMaruPro-W4-V HiraMinPro-W3-EUC-H HiraMinPro-W3-EUC-V HiraMinPro-W3-H HiraMinPro-W3-UniJIS-UTF16-H HiraMinPro-W3-UniJIS-UTF16-V HiraMinPro-W3-V HiraMinPro-W6-EUC-H HiraMinPro-W6-EUC-V HiraMinPro-W6-H HiraMinPro-W6-UniJIS-UTF16-H HiraMinPro-W6-UniJIS-UTF16-V HiraMinPro-W6-V Jun101-Light-EUC-H Jun101-Light-EUC-V Jun101-Light-H Jun101-Light-UniJIS-UTF16-H Jun101-Light-UniJIS-UTF16-V Jun101-Light-V NimbusMonL-Bold NimbusMonL-BoldObli NimbusMonL-Regu NimbusMonL-ReguObli NimbusRomNo9L-Medi NimbusRomNo9L-MediItal NimbusRomNo9L-Regu NimbusRomNo9L-ReguItal NimbusSanL-Bold NimbusSanL-BoldCond NimbusSanL-BoldCondItal NimbusSanL-BoldItal NimbusSanL-Regu NimbusSanL-ReguCond NimbusSanL-ReguCondItal NimbusSanL-ReguItal Ryumin-Light-EUC-H Ryumin-Light-EUC-V Ryumin-Light-H Ryumin-Light-UniJIS-UTF16-H Ryumin-Light-UniJIS-UTF16-V Ryumin-Light-V Ryumin-Regular-EUC-H Ryumin-Regular-EUC-V Ryumin-Regular-H Ryumin-Regular-UniJIS-UTF16-H Ryumin-Regular-UniJIS-UTF16-V Ryumin-Regular-V StandardSymL URWBookmanL-DemiBold URWBookmanL-DemiBoldItal URWBookmanL-Ligh URWBookmanL-LighItal URWChanceryL-MediItal URWGothicL-Book URWGothicL-BookObli URWGothicL-Demi URWGothicL-DemiObli URWPalladioL-Bold URWPalladioL-BoldItal URWPalladioL-Ital URWPalladioL-Roma