お久しぶりです。
一年ぶりぐらいの更新ですかね。

今年の2月頃体調くずしてたのと少しLinuxとの距離をおいてみたいなと思ってたら
かなりの年月が過ぎてしまったようで…

近況はこのぐらいにして、
いつもはghostscript8.xのパッケージを強引にインストールして
文字化けを解決していたのですが、
このたびFedoraのghostscript 9.x系列(9.04,9.07,9.10,9.14)のパッケージでの
ps,epsファイルの文字化けがやっと解決出来たのでご報告したいと思います。

まずは、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を編集すれば文字化けは直ると
色んなサイトに書いてあるのですが直らなかったりします。




/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さんに教えて揚げたってことですね( ・ิω・ิ)