SSブログ

[増刊号 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の日本語フォント設定


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。