星期二, 12月 10, 2013

GMT 繪圖軟體使用中文字

因為不知道下次是多久之後才會再設定到了
所以在這裏記錄一下
也不想另外安裝字型,就用系統裏的。

系統內建的中文字型檔,不是從 windows co 過去的!!

yum CentOS6.4 的字型套件名:cjkuni-fonts-ghostscript.noarch
CentOS 7 的字型套件名與上面的不同:ghostscript-chinese-zh_TW.noarch
首先看看這個檔在不在 vi /usr/share/ghostscript/conf.d/cidfmap.zh_TW
不在就是字型套件沒裝,就裝上吧:
yum install cjkuni-fonts-ghostscript.noarch #centos 6
yum install ghostscript-chinese-zh_TW.noarch #centos 7
它應該至少會把二個字型分別裝在 /usr/share/fonts/cjkuni-ukai/ 與 /usr/share/fonts/cjkuni-uming/
然後 /usr/share/ghostscript/conf.d/cidfmap.zh_TW 這個檔案也會出現!內容如下:
/ZenKai-Medium          << /FileType /TrueType /Path (/usr/share/fonts/cjkuni/ukai.ttc) /CSI [(CNS1) 4] >> ;
/ShanHeiSun-Light       << /FileType /TrueType /Path (/usr/share/fonts/cjkuni/uming.ttc) /CSI [(CNS1) 4] >> ;
/Adobe-CNS1             /ShanHeiSun-Light ;
不知道在搞什麼!字型的位置跟實際上的不太一樣,把它改過來,改成下面的樣子

/ZenKai-Medium          << /FileType /TrueType /Path (/usr/share/fonts/cjkuni-ukai/ukai.ttc) /CSI [(CNS1) 4] >> ;
/ShanHeiSun-Light       << /FileType /TrueType /Path (/usr/share/fonts/cjkuni-uming/uming.ttc) /CSI [(CNS1) 4] >> ;
/Adobe-CNS1             /ShanHeiSun-Light ;

加到GMT的字型列表中

然後,ZenKai-Medium 聽起來像是正楷,就把它加到gmt中吧,方法如下:
#gmt4的版本,是要改PS_font_info.d 這個檔案,gmt 5則不是(請看下面gmt 5的部份)
#後面三行看起來像這樣:
vi /usr/local/gmt/share/pslib/PS_font_info.d Palatino-BoldItalic 0.677 0 ZapfChancery-MediumItalic 0.610 0 ZapfDingbats 0.700 1 #最後面新增一行 ZenKai-Medium-UniCNS-UTF8-H 0.700 1 #如果是gmt5,改的是PSL_custom_fonts.txt這個檔案在 /gmtdir/share/postscriptlight/下吧 vi /usr/local/share/postscriptlight/PSL_custom_fonts.txt #一樣在最後面新增一行 ZenKai-Medium-UniCNS-UTF8-H 0.700 1
上面這行很重要的是ZenKai-Medium是字型名稱,但是後面還一定要加一串不知道是什麼鬼的字"-UniCNS-UTF8-H"
我真的不知道為什麼,只知道UniCNS-UTF8-H 可以
ls /usr/share/ghostscript/8.70/Resource/CMap/
中找到,網路上人家簡體字用的是UniGB-UTF8-H,我試了一下不行…想說GB命名的編碼八成都與簡體有關,就想說隨便拿幾個試試…第一個就是把GB換成CNS…就成功了!耶!
# 重要1,gmt 的字型設定可以分五項FONT_ANNOT_PRIMARY, FONT_ANNOT_SECONDARY, FONT_LABEL, FONT_LOGO, FONT_TITLE,要確定你用到字型的部份是哪一個,不然會以為沒改好。 # 重要2, 可以用gmtset,只在需要打中文字的前面設定使用中文字形,之後再設定回原來的字型,這樣英文字比較不會怪…
gmtset HEADER_FONT 35; echo 1.5 5 40 0 35 LM GMT,測試 >tmp;echo 5 0.5 20 0 35 LM 測試2>>tmp;pstext tmp -R0/7/0/7 -JX6i/6i -B1/1:."GMT 中文": -P >cn.ps; ghostscript cn.ps
如果有中文字就成功了
CentOS5 設定路徑和6.4版不同,我的系統也沒要裝什麼,cidfmap.zh_TW是放在/etc/ghostscript/中。看起來與6.4版內容很像,所以什麼都沒做,就從"加到GMT的字型列表中"的部份開始即可

沒有留言: