試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

STed2で日本語部分にもmilkjfフォントを使用するための覚え書き

STed2が「Cannot open display. Aborting.」となって起動できない件についてとその対処」において、milkjfだけを使おうとして「-milkjf-fixed-*-r-normal--16-*-*-*」を指定*1してみたのだが、何故か化けてダメだった。

テストプログラムの結果は以下。
(2014/10/2)リンク先を修正

pattern: -milkjf-fixed-*-r-normal--16-*-*-*
default:
missing: JISX0208.1983-0
missing: KSC5601.1987-0
missing: GB2312.1980-0
missing: ISO10646-1
found: -milkjf-fixed-bold-r-normal--16-150-75-75-c-80-iso8859-1,-milkjf-fixed-bold-r-normal--16-150-75-75-c-80-iso8859-1,-milkjf-fixed-bold-r-normal--16-150-75-75-c-80-jisx0201.1976-0

原因として考えられたのは、xfontselで見たときに、milkjfフォントは「JISX0208.1990-0」の文字集合を使用すること(font-jis-miscのjiskanフォントなど、日本語部分が化けないフォントは、JISX0208.1990-0ではなくJISX0208.1983-0)。
先日「STed2の起動ができない」と悩んでいた中でstraceを試してみた*2ときに/usr/share/X11/locale/ja_JP.UTF-8/XLC_LOCALEというファイルを読んでいたということをふと思い出し、この中にフォント関係の記述が含まれていたような気がしたため、開いてみると、「JISX0208.1983-0」に関する記述を発見。

--- /usr/share/X11/locale/ja_JP.UTF-8/XLC_LOCALE.orig
+++ /usr/share/X11/locale/ja_JP.UTF-8/XLC_LOCALE
@@ -39,6 +39,7 @@
 	}
 	font	{
 		primary	JISX0208.1983-0:GL
+		substitute JISX0208.1990-0:GL
 	}
 }
 

上のようにして、JISX0208.1990-0を使用するように編集後、テストプログラムの結果は少し変わった。*3

pattern: -milkjf-fixed-*-r-normal--16-*-*-*
default:
missing: KSC5601.1987-0
missing: GB2312.1980-0
missing: ISO10646-1
found: -milkjf-fixed-bold-r-normal--16-150-75-75-c-80-iso8859-1,-milkjf-fixed-bold-r-normal--16-150-75-75-c-80-iso8859-1,-milkjf-fixed-bold-r-normal--16-150-75-75-c-160-jisx0208.1990-0,-milkjf-fixed-bold-r-normal--16-150-75-75-c-80-jisx0201.1976-0

JISX0208.1990-0が使用されていることが分かる。
EUC-JP向けの/usr/share/X11/locale/ja/XLC_LOCALEでは「substitute JISX0208.1990-0:GL」の記述があるのだが、何故かUTF-8用にはないというのが化ける原因のようだった。

STed2上の表示も化けず、milkjfフォントが日本語部分にも使用されて綺麗になった。
なお、JISX0208.1983とJISX0208.1990の違いはJIS第2水準漢字が2つ追加されたことと字形変更のみとのこと。

参考URL:

使用したバージョン:

  • libX11*4 1.1.3

*1:#font_name=-milkjf-fixed-\*-r-normal--16-\*-\*-\*

*2:今回の場合、このツールは、起動できないことに対する手がかりにはならなかった

*3:はじめに「primary」行の「1983」の部分を「1990」に変更したところ変化があったため、試行錯誤の後にこの形に落ち着いた

*4:/usr/share/X11/locale/ja_JP.UTF-8/XLC_LOCALEを含むパッケージ