Fedora 31,32などの2020年近辺では、以下の記事は古くなっているのでeps,psポストスクリプトghostscript日本語文字化け 解決方法を参照のこと。またgnuplotの仕様がすっかり変わっているので、この記事を適用してもgnuplotのコードの日本語表示は文字化けのままです。

お久しぶりです。 一年ぶりぐらいの更新ですかね。 今年の2月頃体調くずしてたのと少しLinuxとの距離をおいてみたいなと思ってたら かなりの年月が過ぎてしまったようで… 近況はこのぐらいにして、 いつもはghostscript8.xのパッケージを強引にインストールして 文字化けを解決していたのですが、 このたびFedoraのghostscript 9.x系列(9.04,9.07,9.10,9.14)のパッケージでの ps,epsファイルの文字化けがやっと解決出来たのでご報告したいと思います。 Fedora 31,32,30近辺のリリースはこちらへ。また、gnuplotはghostscriptのcidfmapを編集しなくても日本語表示出来ます。そして、以下の書式でのgnuplotは仕様が変わっているので現在のものでは使わないで下さい。以下は古い情報になってしまっているため参考にならないと思われるがやむを得ない理由で古いFedoraを使っている可能性もあると思われるので残しておきます。

まずは、Fedoraでghostscriptパッケージのインストールをしましょう。 といっても普通のデスクトップ入りのインストールをしていたら インストールされているはずなので念の為。 ※ /IPAexGothic /ipaexg ; /IPAexMincho /ipaexg ; を追記

下記記事で9.14のところはそれぞれのバージョンに合わせてください。

インストール

sudo yum install ghostscript

としてghostscriptをインストールします。

テスト環境の準備

アプリのインストール

sudo yum install gnuplot

文字化けされているテスト環境を作るためのファイルをgnuplotで出力します。

gnuplotのインストール

sudo yum install gnuplot

gnuplotファイル

testja.gpとして下記ファイルをエディタで編集します。

#!/usr/bin/gnuplot 
#
#    
#    	G N U P L O T
#    	Version 4.0 patchlevel 0
#    	last modified Thu Apr 15 14:44:22 CEST 2004
#    	System: Linux 2.6.20-1.2944.fc6
#    
#    	Copyright (C) 1986 - 1993, 1998, 2004
#    	Thomas Williams, Colin Kelley and many others
#    
#    	This is gnuplot version 4.0.  Please refer to the documentation
#    	for command syntax changes.  The old syntax will be accepted
#    	throughout the 4.0 series, but all save files use the new syntax.
#    
#    	Type `help` to access the on-line reference manual.
#    	The gnuplot FAQ is available from
#    		http://www.gnuplot.info/faq/
#    
#    	Send comments and requests for help to
#    		
#    	Send bugs, suggestions and mods to
#    		
#    
# set terminal postscript enhanced color colortext \
unset term
 set terminal postscript eps enhanced color colortext \
   dashed dashlength 1.0 linewidth 1.0 \
    butt "Times-Bold" 14

set output 'japanesefont.eps'
set xlabel "時間" font "Ryumin-Light-UniJIS-UTF8-H"
set ylabel "振幅" font "GothicBBB-Medium-UniJIS-UTF8-H"

plot sin(x)
#EOF

epsファイルの出力

gnuplot japanesefont.gp
gv japanesefont.eps

として日本語フォントいりのepsファイルを出力します。

何も設定しなければ下図のように横軸と縦軸のラベルが文字化けします。 epsファイル文字化け

解決方法

cidfmapの設定

以下のようにghostscriptのcidfmapを編集すれば文字化けは直ると 色んなサイトに書いてあるのですが直らなかったりします。 Fedora 31,32もしくは30以前も?の場合はこちらへ。

/etc/ghostscript/9.14/cidfmap.localをエディタで開き

% フォントセット
/ipaexm << /FileType /TrueType /Path (/usr/share/fonts//ipa-ex-mincho/ipaexm.ttf) /SubfontID 0 /CSI [(Japan1) 6] >> ;
/ipaexg << /FileType /TrueType /Path (/usr/share/fonts/ipa-ex-gothic/ipaexg.ttf) /SubfontID 0 /CSI [(Japan1) 6]>> ;

% alias
/Ryumin-Light                 /ipaexm                 ;
/GothicBBB-Medium             /ipaexg                 ;
/IPAexGothic /ipaexg ;
/IPAexMincho /ipaexg ;

フォントのCMapのコピー

cidfmapの設定だけでは解決出来ないようで、 Resource/CMap/以下にフォントをコピーします。 これが全くやってることが分からん。CMapって何かも分かってなかったり。

sudo cp /usr/share/poppler/cMap/Adobe-Japan1/* /usr/share/ghostscript/9.14/Resource/CMap/
sudo cp /usr/share/poppler/cMap/Adobe-Japan2/* /usr/share/ghostscript/9.14/Resource/CMap/
sudo cp /usr/share/poppler/cMap/Adobe-CNS1/* /usr/share/ghostscript/9.14/Resource/CMap/
sudo cp /usr/share/poppler/cMap/Adobe-GB1/* /usr/share/ghostscript/9.14/Resource/CMap/
sudo cp /usr/share/poppler/cMap/Adobe-Korea1/* /usr/share/ghostscript/9.14/Resource/CMap/

対策後のepsファイルの日本語表示

cidfmapだけでなくフォントの上記のようにCMapをコピーすれば 下図のように文字化けは直ります。 日本語表示可
参考サイト:http://ni109.soci.ous.ac.jp/~mnishino/cidfmap_fedora18.txt

いやー、このバグ?設定不足?は1年ぐらい解決出来て無かったような気がすます。 最近はLaTeXというかtexliveのお陰でtexファイル→PDFに直接変換すれば良いので 問題ないことが多いのですが、 gnuplot→eps→(convert使って)→pngにすると文字化けしたままだったりするので… (そんなことをしなくてもgnuplot→pngに出来る)

あとがき

なんだけ久々にひとつ解決出来たと思います。 この後のLinuxの記事としては 日本語入力周りの話と最近導入されたGNOMEアプリの解決が出来たらと思います。 ただ、LPICの試験の勉強をしておいたほうが良いような気がするけど結構ストレス溜まるのしばらくはのんびりとかな…

【付録】上記の対策してない時のエラーメッセージ

gs japanese.eps
とすると下記のように
 Can't find (or can't open) font file GothicBBB-Medium-UniJIS-UTF8-H
 Can't find (or can't open) font file Ryumin-Light-UniJIS-UTF8-H
フォントが見つからないと言われます。
gs japanesefont.eps
GPL Ghostscript 9.14 (2014-03-26)
Copyright (C) 2014 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/9.14/Resource/Font/StandardSymL.
Can't find (or can't open) font file StandardSymL.
Can't find (or can't open) font file /usr/share/ghostscript/9.14/Resource/Font/StandardSymL.
Can't find (or can't open) font file StandardSymL.
Scanning /usr/share/texmf/fonts/type1/bluesky/cm/ for fonts... 0 files, 0 scanned, 0 new fonts.
Can't find (or can't open) font file /usr/share/ghostscript/9.14/Resource/Font/StandardSymL.
Can't find (or can't open) font file StandardSymL.
Can't find (or can't open) font file /usr/share/ghostscript/9.14/Resource/Font/StandardSymL.
Can't find (or can't open) font file StandardSymL.
Querying operating system for font files...
Loading StandardSymL font from /usr/share/fonts/default/Type1/s050000l.pfb... 3747608 2328602 6174944 3123759 2 done.
Loading NimbusRomNo9L-Medi font from /usr/share/fonts/default/Type1/n021004l.pfb... 3903472 2457063 6174944 3108316 2 done.
Can't find (or can't open) font file /usr/share/ghostscript/9.14/Resource/Font/GothicBBB-Medium-UniJIS-UTF8-H.
Can't find (or can't open) font file GothicBBB-Medium-UniJIS-UTF8-H.
Didn't find this font on the system!
Substituting font Courier for GothicBBB-Medium-UniJIS-UTF8-H.
Loading NimbusMonL-Regu font from /usr/share/fonts/default/Type1/n022003l.pfb... 4445864 2975437 6174944 3126505 2 done.
Can't find (or can't open) font file /usr/share/ghostscript/9.14/Resource/Font/Ryumin-Light-UniJIS-UTF8-H.
Can't find (or can't open) font file Ryumin-Light-UniJIS-UTF8-H.
Didn't find this font on the system!
Substituting font Courier for Ryumin-Light-UniJIS-UTF8-H.

今回記事にしたのはつまるところは、GothicBBBとRyuminのフォントのありかを ghostscriptさんに教えて揚げたってことですね( ・ิω・ิ)