Next: , Previous: , Up: International   [Contents][Index]


22.15 フォントセットの修正

常にフォントセットをスクラッチから作成する必要はありません。軽微な変更だけが必要なときは、通常は既存のフォントセット‘fontset-default’を修正するのが簡単な方法でしょう。‘fontset-default’の修正は、それをフォールバックに使用する他のフォントセットにも影響するので、特定のスクリプトのためにEmacsが選択するフォントに関する問題を解決する効果的な方法になり得ます。

フォントセットは関数set-fontset-fontを使って、文字、文字セット、スクリプトフォントを修正する文字範囲、使用されるフォントの指定を修正することができます。以下は例です:

;; Prefer a big5 font for han characters.
(set-fontset-font "fontset-default"
                  'han (font-spec :registry "big5")
                  nil 'prepend)

;; Use MyPrivateFont for the Unicode private use area.
(set-fontset-font "fontset-default"  '(#xe000 . #xf8ff)
                  "MyPrivateFont")

;; Use Liberation Mono for latin-3 charset.
(set-fontset-font "fontset-default" 'iso-8859-3
                  "Liberation Mono")

;; Use DejaVu Sans Mono as a fallback in fontset-startup
;; before resorting to fontset-default.
(set-fontset-font "fontset-startup" nil "DejaVu Sans Mono"
                  nil 'append)

set-fontset-font関数のより詳細な使用方法についてはFontsets in GNU Emacs Lisp Reference Manualを参照してください。

文字のコードポイントや文字が属するスクリプトが不明ならEmacsに尋ねることができます。文字にポイントを移動してC-u C-x = (what-cursor-position) とタイプすれば、Emacsはポップアップする*Help*により多くの情報とともにこの情報が表示されます。Position Infoを参照してください。たとえば‘kana’スクリプトに属する日本語文字が中国語文字とも混合された日本語テキストでは、以下のように日本語テキストに‘Kochi Gothic’フォントを使用するようにEmacsをセットアップして、‘han’スクリプトを使用します:

(set-fontset-font "fontset-default" 'han "Kochi Gothic")

(Emacsの‘han’スクリプトは中国語だけではなく中国語、韓国語、日本語、いわゆるCJKのすべての文字をサポートするようにセットアップされています。)

既知のスクリプトのリストは変数script-representative-charsを確認してください。

上記のようなフォントセットのセッティングはデフォルトフォントがサポートしない文字のみに影響するので、‘Kochi Gothic’がラテン文字をカバーしていても、Emacsが使用するデフォルトフォントは通常は基本的なラテン文字をカバーするので使用されることはありません。

システムにインストールされているフォントが壊れていたり、使用されている文字にたいして好ましくない結果を生成するフォントがあるかもしれません。そのような場合、文字を表示するのに必要となる適切なフォントの検索に、それらのフォントを完全に無視するように、Emacsに指示したいと思うかもしれません。face-ignored-fontsの値(リスト変数です)に、不適切なフォントを追加することによりこれを行なうことができます。以下は、そのような設定を~/.emacsに記述する例です:

(add-to-list 'face-ignored-fonts "Some Bad Font")