asymptoteで日本語TrueTypeフォントを使う

asymptoteでセプテンバーフォントを使おうとしたら,フォントが見つからないというエラーに遭遇した。あれこれ調べて,とりあえず解決したので,忘れないうちにメモ。

ログを見ると,latexはちゃんとdviファイルを生成している。これをdvipsが処理するのだが,ここで引っかかっていた。自分の環境では,問題点は2つあった。1つはdvipsが使うmapファイルで,もう1つはdvipsから呼び出されたGhostscriptがフォントを認識できないということ。

1つ目は,これは多分,自分だけの問題。TeX Live とかのパッケージじゃなくて,自分でちまちまビルドしてきたので,あちこち整合性が取れてなかったりしている可能性がある。特に,updmapあたりは以前にも問題生じたことあったし。今回,そこいらを一掃すべく,updmap (-sys) で生成された既存のmapファイルをすべて消去し,あらたに updmap-sys の方でmapを生成。それから,upTeX用のセプテンバーフォントの設定を,

r_up-sept-m-jis  UniJIS-UTF16-H  SeptM.ttf

とした。今まで

r_up-sept-m-jis  UniJIS-UTF16-H  :0:SeptM.ttf

としていたのだが,どうも :0: のせいで,dvips用Mapが生成されていなかった模様。

2つ目は,Ghostscriptがフォントを見つけられないという問題。使っているgsのバージョンは7.07.1なのであるが,どういう経緯でインストールしたものなのか記憶がない(汗)という状態。とりあえず,/usr/local/bin/ にgsはあり,設定ファイルなどは,/usr/local/share/ghostscript/7.07/lib/ 以下にあるようだった。ここに,CIDFnmapなるファイルがあって,ここに記載されているCIDフォントをgsは認識できる仕組みらしかった。

CIDFnmapをエディターで開いてみると,

(CIDFnmap.OSX) .runlibfile 

というような記述があり,ここから更に CIDFnmap.OSX を読んでいた。そこで,この CIDFnmap.OSX を開いてみると,次のような感じでフォントを読み込む設定が書かれている。

% Adobe-Japan1
%
%/MS-Gothic              (/usr/local/share/ghostscript/Resource/CIDFont/msgothic.ttf)        ;
%/MS-PGothic             (/usr/local/share/ghostscript/Resource/CIDFont/mspgothic.ttf)       ;
%/MS-Mincho              (/usr/local/share/ghostscript/Resource/CIDFont/msmincho.ttf)        ;
%/MS-PMincho             (/usr/local/share/ghostscript/Resource/CIDFont/mspmincho.ttf)       ;
/HiraKakuPro-W3         (/usr/local/share/ghostscript/Resource/CIDFont/HiraKakuPro-W3.otf)  ;
/HiraKakuPro-W6         (/usr/local/share/ghostscript/Resource/CIDFont/HiraKakuPro-W6.otf)  ;
/HiraKakuStd-W8         (/usr/local/share/ghostscript/Resource/CIDFont/HiraKakuStd-W8.otf)  ;
/HiraMaruPro-W4         (/usr/local/share/ghostscript/Resource/CIDFont/HiraMaruPro-W4.otf)  ;
/HiraMinPro-W3          (/usr/local/share/ghostscript/Resource/CIDFont/HiraMinPro-W3.otf)   ;
/HiraMinPro-W6          (/usr/local/share/ghostscript/Resource/CIDFont/HiraMinPro-W6.otf)   ;

ここで,行の先頭が%のものは,TeXと同様にコメントアウトされている。そのフォントを使いたい場合はコメントアウトをはずせばよいということだろう。そこで,ここにセプテンバーフォントの実体ファイルへの絶対パスを書き込んでみた。

/SeptM            (/Users/hoge/mytexhome/texmf/fonts/truetype/tashotai/SeptM.ttf)     ;

以上で設定は終了。これで,ちゃんとasymptoteからも,というかghostscriptでセプテンバーフォントが使えるようになった。分かってみると実は簡単なことであったが,なんだかんだで数時間を費やしてしまった。

コメントを残す

メールアドレスが公開されることはありません。