[増刊号 005] GhostScriptで日本語フォント(TrueType)を使えるようにする [UNIX環境]
このブログのメインは「ご家庭サーバー」ですが、そこへアクセスするのにはNote PCから行っています。
今までは2年前に入れたopenSUSE 11.1を使っていたのですが、先日自分のIDでログインしたらキーボードの入力を受付なくなってしまいました。知識を得るという意味では真面目に対処してもよかったのですが、KDEやらSCIMやら10年以上前の知識では簡単に対処できないのと、11.3をサーバーでも入れているので、この際入れ直してみました。アップデートインストールでチャチゃっと済ませたかったのですが、/bootのサイズがちょっと足りなかったので、諦めてディスクの切り直しから行いました。
インストールは先にサーバーで使ったNetwork Install用CD-ROMで行い、問題なく終了しました。サーバーと違うのは以下2点です:
- wireless lan
- プリンター関係
wireless関係はいつもよくわからないです。私が使っているwirelessはipw2200系ドライバのものなのですが、こいつはどうも設定を変更してもそのままで は反映されない様で、OSリブートしたらつながるということがありました。以前(11.1)もそうだったような記憶があります。なので、「設定変更」→ 「リブート」→「再変更」→「リブート」…と面倒この上ない…
wireless関係は機会があれば別記事で。
次にプリンター ですが、私は第一言語が日本語なの(当たり前!)で、日本語が印刷できないと困る。わたしの持っているプリンター(Brother MFC-460CN)だとCupsドライバーが提供されていて、これはghostscriptでPostScript->ラスター変換を行います。 この辺は以前書いています。
さて、11.3に上げた後にテスト印刷しようと思ったのですが、そもそもghostscriptで日本語が出ない。そういえば、11.1の時も色々探し回った事を思い出しました。いくつか関連するページは見つけたのですが、自分の作業ログとして書いておきます。
日本語フォント(TrueType)の取扱い
distribution によるとは思いますが、私が使っているopenSUSE 11.3にバンドルされているGhostScriptでは、/etc/ghostscript/8.70/cidfmapで日本語フォント(それ以外も可能ですが、ここでは対象外)の設定を行います。
GhostScriptで日本語を取り扱うとき、主にIPA MinchoやIPA GothicといったTrueTypeFont(TTF)を使うことが多いと思います。以下はそれらは導入済みの前提です。まだの場合はYaSTでインス トールしておいてください。売り物のTTFなどをお持ちの方は、それのインストールした場所も覚えておいてください。
cidfmapにTrueTypeFontを設定する
ここでは2つのことを設定します。
第一に、PostScriptで参照するフォント名と実際に使用するフォントファイル(TTF)のマッピングで、次に一般的に使われる日本語PSフォント名(Ryumin-LightとかGothicBBB-Mediumとか)をどのフォントで代替するかの定義です。
まずはTTFをPostScriptフォントとして割り当てる方法からです。
使用するフォントファイルに名前をつけます。私はIPA GothicやIPA Minchoしか持っていないので、以下のように名づけることにします。
- IPAGothic -- フォントファイル(/usr/share/fonts/truetype/ipag.otf)
- IPAMincho - フォントファイル(/usr/share/fonts/truetype/ipam.otf)
このようにIPAGothicなどに名前をつける場合、以下の行をcifdmapに記載します。(画面の都合で改行していますが、1行で記述してください。)
/IPAMincho << /FileType /TrueType /CSI [(Japan1) 6] /Path (/usr/share/fonts/truetype/ipam.otf) >> ;
/IPAGothic << /FileType /TrueType /CSI [(Japan1) 6] /Path (/usr/share/fonts/truetype/ipag.otf) >> ;
/CSI というのがよくわからなかったのですが、他は何となく意味がわかると思います。注意点として、 行末のsemi-colon(;)は重要な様です。後にでますが、semi-colonの前にスペースを空けなかったために、代替フォント機能が働かない ことがありました。マニュアルにも明記(The trailing semicolon and the space before it are both required.)されています。
さて、以上の記述ができたら、日本語を表示するPostScriptをうまく扱えると思います。コマンドプロンプトから以下のように試してみてください。(斜字体が入力する文字。)
$ gs
GPL Ghostscript 8.70 (2009-07-31)
Copyright (C) 2009 Artifex Software, Inc. All rights reserved.
This software comes with NO WARRANTY: see the file COPYING for details.
GS>/IPAMincho-EUC-H findfont 144 scalefont setfont
Scanning /usr/share/fonts/truetype for fonts... 126 files, 124 scanned, 119 new fonts.
Scanning /usr/share/fonts/Type1 for fonts... 61 files, 28 scanned, 5 new fonts.
Scanning /usr/share/fonts/CID for fonts... 0 files, 0 scanned, 0 new fonts.
Scanning /usr/share/fonts/URW for fonts... 155 files, 39 scanned, 35 new fonts.
Loading a TT font from /usr/share/fonts/truetype/ipam.otf to emulate a CID font IPAMincho ... Done.
GS>72 72 moveto <b0a1> show
GS>quit
$
"IPAMincho" の部分はcidfmapで定義したフォント名を指定してください。"-EUC-H"はとりあえずそのまま入力してください。これでエラーが出ずに GhostScript windowに“亜”が表示されればOKです。他に定義したフォントがあれば、それもお試しください。
cidfmapに代替フォントを設定する
以上で定義したフォント名は、たぶん自分だけ知っている名称だと思います。つまり、他の方(が作成したプログラムを含む) はその名称でそのフォントが使われることを知りません。
日本語PostScriptでは、昔から以下のフォント名が使用されてきた様です。少なくとも'90頃にはそうでした。
- Ryumin-Light
- GothicBBB(-Mediumだったかな?)
これが何を意味するかというと、
PostScriptを出力するプログラムが日本語を取り扱うとき、このフォントで出力することが多い
ということです。つまり、是が非でもこれらのフォント名をGhostScriptに理解してもらわなければ困ります。以下はそのための設定です。 私はRyumin-Light→IPAMincho、GothicBBB-Medium→IPAGothicと割り当てました。(フォントを持っていない ので、それ以外に選択肢なし。)
/Ryumin-Light /IPAMincho ;
/GothicBBB-Medium /IPAGothic ;
ここでも最後のsemi-colonとその前のスペースは重要です。
設定が終わったら、先ほどと同様にPostScriptコマンドプロンプトから/Ryumin-Lightや/GothicBBB-Mediumが使えるかどうか試しておきましょう。
参考:
TeX Wiki Ghostscript-8系
Desktop Linux Memo gsの日本語フォント設定
コメント 0