Network Users' Group ``wheel''
/
Dai ISHIJIMA's Page
文字フォント
/
FreeBSD vt(4) で日本語表示
#トップ
#はじめに
#ISO10646フォント作成
#vt(4)用に変換
#変換後のフォント
UTF-8に対応したターミナルでEUC-JPやShift JISの処理系を使う
初版: 2015-10-11
最終更新日:
2015-11-10
日本語BDFフォントを変換してFreeBSD 10.xのvt(4)コンソールで使う
●はじめに
FreeBSD 10.xの
vt(4)コンソールではISO10646エンコーディングな文字フォントがあると、
日本語表示が可能だそうです。
このページでは、
既存のビットマップフォントからvt(4)コンソール向きのフォントを作成する方法
を紹介します。
このページの目的は、
既存のBDFフォント(あるいは別形式から変換したBDFフォント)から
vt(4)コンソール向きの日本語フォントを作成する方法ですが、
「細けえことはどうでもいいんだ。変換後のフォントはよ!」
というみなさんは、途中をすっとばして
変換後のフォントの例の項目をご覧ください。
●JIS X 0201フォントとJIS X 0208フォントからISO10646フォントを
基本的に、以前、
BDFフォントを変換してUbuntu Linuxで利用する
で書いた話と同じです。
というわけで、以下のように変換しました。
8x16rk.bdfやjiskan16.bdfはX11に付属してくるフォントです。
mbdf -c jisx0201.txt 8x16rk.bdf -c jisx0208.txt jiskan16.bdf > jiskan16u.bdf
○エンコーディング情報その他の修正
上に書いた操作でフォントは中途半端ではありますが、
ISO10646-1エンコーディングになります。
ただし、BDFフォントとしては不十分です。
どこが不十分かというと、BDFフォントのプロパティの
「CHARSET_REGISTRY」などがJISのまま、という点です。
ここはテキストエディタなどで
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"
と修正します。
こういう
シェルスクリプト
に通すのが楽ちんですね。
また、「フォントの名前」を修正しておくのもよいかもしれません。
こういう
フィルタ
に通す方法もアリでしょう。
ここまでの処理でBDFフォントの下ごしらえは終了です。
●vtfontcvt(8)でvt(4)/vidcontrol(1)形式に変換
ISO10646エンコーディングに変換したBDFフォントは、
そのままではvt(4)では使えませんので、
vtfontcvf(8)コマンドで
vt(4)
/
vidcontrol(1)形式に変換します。
% vtfontcvt jiskan16u.bdf jiskan16u.fnt
なお、行末コードがCR+LFだとvtfontcvtはうまく動きません。
LFだけにしておく必要があります。
ネットから拾ってきたフォントがうまく変換できない場合は
こういうところもチェックしておきましょう。
このあと
# vidcontrol -f jiskan16u.fnt
でフォントが上の手順で変換したフォントになり、
日本語表示が可能になります。
●vt(4)の有効化も忘れずに
/boot/loader.conf
-
kern.vty=vt
-
hw.vga.textmode=0
みたいなのを書いておいてくださいね。
●変換したフォントの例
●表示サンプル
左は東雲フォントとjiskan16、右はunifont
(クリックで拡大します)
某PC98風フォント(左)と某互換機風フォント(右)
●関連リンク
ご質問などありましたらお気軽に