注 : 以下の情報は ubuntu 7.04に関する情報です。

sans、sans-serif、monospaceはいわゆるシンボリックリンクで、
それ自体が何か具体的なフォントであるというわけではありません。

たとえばubuntu 7.04の初期設定では
sans -> IPAMonaPGothic
sans-serif -> IPAMonaPMincho
monospace -> IPAMonaGothic
となっています。

これらのマッピングは
/etc/fonts/language-selector.conf
で定義されていますが、
~/.fonts.conf を作成することで、
ユーザ毎にマッピングを定義しなおすことができます。

マッピング定義は以下のような部分を編集することで変更することができます。

(中略)
<match target="pattern">
<test name="family" qual="any">
<string>sans-serif</string>
</test>
<edit mode="prepend" binding="strong" name="family">
<string>IPAMonaPGothic</string>
<string>IPAPGothic</string>
<string>Sazanami Gothic</string>
<string>Kochi Gothic</string>
</edit>
</match>

testタグ内のstringタグ部でsans-serifなどを指定し、
editタグ内のstringタグ部がマッピングするフォントを指定します。

ちなみに指定するマッピングするフォントは複数指定されていますが、
これらは上から優先順位順になっており、その順に走査されます。

これをちょっと応用すると・・・

漢字やかなを含まないフォントを最上位に指定することで、
英字だけをその最上位のフォントにしてしまう、なんてことができます。
たとえば上からTimes、IPAMinchoというふうに指定すると、
英字はTimes、漢字その他はIPAMinchoが使われるようになります。
簡単に合成フォントができちゃうわけです。

ただしこの仕組みを使うには注意が必要で、
英字フォント->日本字フォントという順番で指定すると
FirefoxのFlash Playerで日本語が文字化けしてしまいます。
これはFlash Playerが.fonts.confで指定されたフォントのうち
優先順位がもっとも高いものしか読み込まないのが原因です。
これは英字と漢字その他がセットで定義されているフォントを
最上位にセットすることで回避できます。
つまり合成させるとFlashで日本語が使えません

また.otf形式のファイルを指定することも可能ですが、
こうするとOpenOfficeで日本語が文字化けしてしまいます。
これはOpenOfficeがTrueTypeフォントにしか対応していないのが原因。

ちなみに.fonts.conf内で用いることができるフォント名の一覧は

$ fc-list

で取得できます。

システム全体についてマッピングを変更するには
/etc/fonts/language-selector.conf
を直接編集することとなりますが、
シンタックスやフォント名を間違えてしまうと
GDMが立ち上がらなくなってしまうので注意。
もし失敗してしまった場合はrecovery modeでブートし、
上記のファイルを修正してやりましょう。

ちなみにGDMで表示されるフォントは
/etc/fonts/language-selector.conf
で定義されたsans-serifです。

0 Responses to "sans、sans-serif、monospaceのフォントを変更する"