2008-11-06

Let's Wine(第1回)


GUI のフォント


クロスコンパイルで生成した Win32 のバイナリの動作を Wine 上で試してみる場合、いつもコマンド・プロンプトで起動する CUI プログラムだけを扱うとは限りません。Windows の GUI プログラムである場合も当然あります。

そこで、まず Wine のパッケージに収録されている notepad(メモ帳)互換のプログラムを起動して、Linux の Gnome デスクトップ上でどのように表示されるかを確認してみることにします。次のように Wine の cmd.exe を起動して、notepad とタイプしてみます。

$ wine cmd
CMD Version 1.1.5

Z:\home\bitwalk>notepad
Z:\home\bitwalk>

GUI 外枠の飾りが Gnome の GUI のままでメモ帳が起動します。メモ帳のメニューのフォントが一部化けています。

そこで、日本語のフォントの環境を整備しておきます。簡単な方法は、Windows で使っているフォントを、C:\Windows\Fonts から、~/.wine/drive_c/windows/fonts へそっくりコピーしてしまうことです。著作権などの点で問題がありそうな行為なので、お薦めはできません。ここでは試しにフォントの表示が期待通りに反映されるかどうかだけ確認してみます。ちなみに、本 Linux は、同一の PC 上、GRUB で切り替えて Windows Vista と Linux を使用していますので、あまり罪悪感はないのですが…。

以下が、Windows のフォントをコピーした時の、メモ帳の実行例です。文字化けの問題は解決されています。

最近では、無料で品質の高い日本語フォントを利用できるようになってきていますので、Windows フォントのコピーに頼らず、それらのフォントを利用してみましょう。今のところ、Wine で使用している領域 ~/.wine には、まだフォントを追加しただけなので、~/.wine をそっくり削除してしまいます。Wine を起動すれば、初期状態の ~/.wine が生成されます。

$ rm -fR .wine
$ wine cmd
wine: created the configuration directory '/home/bitwalk/.wine'
Could not load Mozilla. HTML rendering will be disabled.
wine: configuration in '/home/bitwalk/.wine' has been updated.
CMD Version 1.1.5

Z:\home\bitwalk>

ここでは IPAモナーフォントを利用してみます。関連情報 [1] から、配布パッケージをダウンロードして、必要なフォントをコピーします。

$ tar zxvf opfc-ModuleHP-1.1.1_withIPAMonaFonts-1.0.8.tar.gz
opfc-ModuleHP-1.1.1_withIPAMonaFonts-1.0.8/
opfc-ModuleHP-1.1.1_withIPAMonaFonts-1.0.8/AUTHORS
opfc-ModuleHP-1.1.1_withIPAMonaFonts-1.0.8/COPYING
:
:
opfc-ModuleHP-1.1.1_withIPAMonaFonts-1.0.8/ppd/Makefile.in
opfc-ModuleHP-1.1.1_withIPAMonaFonts-1.0.8/ppd/OPVP-HP-Color_LaserJet_4600.ppd
opfc-ModuleHP-1.1.1_withIPAMonaFonts-1.0.8/ppd/OPVP-HP-Color_LaserJet_5500.ppd
$ cp opfc-ModuleHP-1.1.1_withIPAMonaFonts-1.0.8/fonts/*.ttf ~/.wine/dr
ive_c/windows/Fonts/

$

先ほどと同じように Wine から notepad を起動して、フォントを確認してみます。文字化けは無く、Windows のフォントの場合と比べても遜色ない表示が実現できます。

フォントの文字幅が気になる場合は、ipagui-mona.ttf だけをコピーします。Wine のフォントに関する詳細な設定については、別の機会に扱いたいと思います。

関連情報


[1] IPAモナーフォント
[2] フリーフォント最前線
[3] Microsoft's TrueType core fonts on rpm based system
 

0 件のコメント: