GMT ver.5で日本語を表示する

あちこちのサイトにも書いてくれてますし、CookBook の 22.1. Using non-default fonts with GMT にも書かれているように

$GMT_dir/share/postscriptlight/PSL_custom_fonts.txt

というファイルに使いたいフォントを追記します。$GMT_dir というのはGMTをインストールしたディレクトリのことで、うちの環境では/usr/local/gmt5 というディレクトリになっています。多くのサイトでは、Ryumin-Light-UniJIS-UTF8-H と GothicBBB-Medium-UniJIS-UTF8-H の追記を紹介しているようです。ところが、先月GMTをインストールする際に同じようにしても日本語フォントが使えなくなるという大変困った事態を経験しました。

 色々試した結果、出力後のポストスクリプト画像ファイルをWindows10に持ってくるとちゃんと(?)代替フォントで表示されることが確認できました。また、古いUBUNTUの環境へ持ち込んでも、同じポストスクリプト画像ファイルで日本語フォントが表示できることもわかりました。どうやらGMTは正常に設定していたのですが、新しい環境のドキュメントビューアの日本語設定が不十分であったため、結果的に日本語が表示されなかったということのようです。

つまりGMTのnon-default なフォントというのは書き出す側の環境ではなく、表示する側の環境に依存しているようですね。ということで、こんなことを試してみました。

 

#	$Id: PSL_custom_fonts.txt 14657 2015-07-30 21:26:18Z pwessel $
#
#	Listing of additional PostScript fonts than those found on most PS printers.
#	Add your extra font information there.  This is the only required change as
#	far as GMT goes.  However, you most likely will have to modify GhostScript
#	font tables, place font files in certain system directories, and possibly
#	upload purchased fonts to a PostScript printer.  Search for help on how
#	to install new fonts on your particular system.
#
#	The fontheight below is the height of A for unit fontsize.
#	Encoded = 0 if we may reencode this font as needed.
#
#Fontname			Fontheight	Encoded

#Ryumin-Light-EUC-H              0.700           1
#Ryumin-Light-EUC-V              0.700           1
Ryumin-Light-UniJIS-UTF8-H              0.700           1
Ryumin-Light-UniJIS-UTF8-V              0.700           1
Ryumin-Light-RKSJ-H              0.700           1

#GothicBBB-Medium-EUC-H          0.700           1
#GothicBBB-Medium-EUC-V          0.700           1
GothicBBB-Medium-UniJIS-UTF8-H          0.700           1
GothicBBB-Medium-UniJIS-UTF8-V          0.700           1
GothicBBB-Medium-RKSJ-H          0.700           1

MS-Gothic-90ms-RKSJ-H	          0.700           1
MS-Mincho-90ms-RKSJ-H	          0.700           1

PSL_custom_fonts.txt の中身です。

最後のMS-Gothic-90ms-RKSJ-H と MS-Mincho-90ms-RKSJ-H は、いわゆるMSゴシックとMS明朝のことです。RKSJというのはローマ字-カタカナ-シフトJISの略なのだそうです。だからUTF8で日本語を流し込んでも文字化けします。私の場合は nkf -s を使ってsjisに変換しました。しかし、それでもまだubuntuのドキュメントビューアでは日本語表示できませんよ。だってubuntuにはマイクロソフト系のフォントは載ってませんから...。これをWindowsAdobe Illustrator で読み込んだものが下の画像です。

f:id:S_E_Hyphen:20190807095013j:plain

代替フォントを経由せずにMSゴシックやMS明朝を使えるようになりました。

私は余りこれを使おうとは思いませんが、WindowsGMTを使用しているユーザーさんには便利な機能かも知れませんね。

 

#!/bin/bash
psfile=font_tab.ps
gmt gmtset FONT_TITLE 16p,GothicBBB-Medium-UniJIS-UTF8-H
gmt gmtset FONT_LABEL 12p,GothicBBB-Medium-UniJIS-UTF8-H
gmt gmtset FONT_ANNOT_PRIMARY 0.35c,GothicBBB-Medium-UniJIS-UTF8-H
gmt gmtset MAP_GRID_PEN_PRIMARY 0.5p,128/128/128

# 方眼紙の描画
title=`echo Japanese Charactars`
gmt psbasemap -JX15c/20c -R0/15/0/20 -BnSeW+t"$title" \
 -Bxa5g1+l"(cm)" -Bya5g1+l"(cm)" -P -K > $psfile
cat << + |\
 nkf -s |\
 gmt pstext -J -R -F+f+jLM+a0.0  -O >> $psfile
1.0 12.5 16p,MS-Mincho-90ms-RKSJ-H これはMS明朝です
1.0  7.5 18p,MS-Gothic-90ms-RKSJ-H これはMSゴシックです
+