初版: 2012-02-19
最終更新日:
2012-02-19
TrueTypeフォントの利用が基本なのであれば、 BDFから変換したTTFでなんとかなるかと思いましたが、 試した範囲ではうまく動きませんでした。 そこで、BDF(から変換したPCF)をビットマップフォントのまま 使う方法を探してみました。 そんな中で、いろいろと調べてみると有用な情報を発見しました。 bucchiさんの、 「gnome-terminal で M+ ビットマップフォントを使う」です。 この記事によると、/etc/fonts/conf.dの修正と フォントのエンコーディングがISO10646である必要があるようです。
mbdf -c jisx0201.txt 8x16rk.bdf -c jisx0208.txt jiskan16.bdf > jiskan16u.bdf
みたいな部分をFONT -Misc-Fixed-Medium-R-Normal--16-150-75-75-C-80-JISX0201.1976-0 CHARSET_REGISTRY "JISX0201.1976" CHARSET_ENCODING "0"
と修正します。もちろん、FONT -Misc-Fixed-Medium-R-Normal--16-150-75-75-C-80-ISO10646-1 CHARSET_REGISTRY "ISO10646" CHARSET_ENCODING "1"
こんなシェルスクリプトに通すのが楽ちんですね。#! /bin/sh cat $@ | sed 's/^\(FONT -.*\)-JISX020[18]\.[0-9]*-0/\1-ISO10646-1/' | sed 's/^CHARSET_REGISTRY "JISX020[18]\.[0-9]*"/CHARSET_REGISTRY "ISO10646"/' | sed 's/^CHARSET_ENCODING "0"/CHARSET_ENCODING "1"/'
また、ターミナルその他のアプリケーションで フォントを参照するときの「そのフォントの名前」は、
の「Fixed」の部分が使われるようです。 ここは、たとえば「JISKAN16」と(今回のjiskan16.bdfなら)しておくと いいでしょう。この処理もテキストエディタで修正しても構いませんし、FONT -Misc-Fixed-Medium-R-Normal--16-150-75-75-C-80-ISO10646-1 FAMILY_NAME "Fixed"
といったフィルタに通す方法もアリでしょう。#! /bin/sh name='bitmap' case x"$1" in x-[A-Za-z0-9]*) name=`echo "x$1" | sed 's/^x-//'` shift ;; esac cat "$@" | sed 's/^FONT[^-]*-[^-]*-[^-]*-\(.*\)$/FONT -'"$name"'-'"$name"'-\1/' | sed 's/^FOUNDRY ".*"/FONDRY "'"$name"'"/' | sed 's/^FAMILY_NAME ".*"/FAMILY_NAME "'"$name"'"/'
ここまでの処理が終わったら、bdftopcfコマンドで、 フォントをPCF化しておきます。
% cd /etc/fonts/conf.d % sudo rm 70-no-bitmaps.conf % sudo ln -s ../conf.avail/70-yes-bitmaps.conf .
% sudo locale-gen ja_JP.EUC-JP Generating locales... ja_JP.EUC-JP... done
のようにしてgnome-terminalを起動すればバッチリな模様です。 これをコマンドラインから毎回打つのはめんどくさいので、 「システム」→「設定」→「メインメニュー」から登録して 「アプリケーション」→「アクセサリ」から呼び出せるように しておけばいいですね。env LANG=ja_JP.EUC-JP /usr/bin/gnome-terminal --disable-factory --geometry 80x32 --profile=jiskan16
上のgnome-terminalを呼び出すコマンドで、 「--profile=jiskan16」と書いていますが、 これは、ずっと上で書いた「JISKAN16フォント」を使う設定にした プロファイルです。 あらかじめgnome-terminalの「編集」→「プロファイル」メニューで 作成しておいてください。
エンコーディングの乱立というか、歴史的な経緯もあって、 ネットワーク上にはUTF-8なマシンやEUC-JPなマシンが混在することも 多いでしょう。 Ubuntuクライアントから、EUC-JPなサーバにリモートログインするときに、 この方法を使えば簡単だと思います。 十分確認してはいませんが、
でシフトJISも使えそうな感じです。% sudo localedef -f SHIFT_JIS -i ja_JP ja_JP.SJIS % sudo locale-gen ja_JP.SJIS