3

Emacsのメジャーモードと文字セットに従ってフォントを設定したいのですが、たとえば、組織ファイルを開くと、ASCII文字がフォント「Consolas」で表示され、中国語または日本語の文字がフォント「」で表示されると思います。 MicrosoftYahei」。

現在、私はと呼ばれるマイナーモードを使用しbuffer-face-modeており、メジャーモードに対応してフォントを変更できます。

(add-hook 'org-mode-hook (lambda ()
                           (setq buffer-face-mode-face '(:font "Consolas-10.5"))
                           (buffer-face-mode)))

このページを表示しましたが、設定または変更できる顔の文字セット属性がないため、別の文字セットでフォントを設定し続けることができません。

また、文字セットに従ってフォントを設定できる別の関数があることは知っていますset-fontset-fontが、それはフレームにのみ適用でき、バッファやモードには適用できません。

それで、別のフォントを別の文字セットに設定するbuffer-face-mode方法、または元のリクエストを実装するための回避策はありますか?

前もって感謝します、

ケルビン

4

1 に答える 1

0

ここに検索の手掛かりがいくつかあります: Emacs22 まで私はいくつかの個人的なフォントセットを定義していましたが、これがまだ有効な方法であるかどうかはわかりません。

  • エンコーディングのリストとそれぞれをレンダリングするフォントとの間のマッピングを記述する新しいフォントセットを作成する
  • そのフォント/フォントセットを で使用しdefault-frame-alistます。特定のモードにのみ関連付ける方法がわかりません
(create-fontset-from-fontset-spec
    "-*-consolas-*-*-*-*-12-*-*-*-*-*-fontset-consolas,
    ascii:-*-consolas-*-*-*-*-12-*-*-*-*-*-iso8859-1,
    latin-iso8859-1:-*-consolas-*-*-*-*-12-*-*-*-*-*-iso8859-1,
    latin-iso8859-15:-*-consolas-*-*-*-*-12-*-*-*-*-*-iso8859-15")

(setq default-frame-alist '((width . 100) 
   (height . 44) 
   (top . 50) ;pixels
   (left . 50) ;pixels
   (font . "fontset-consolas")
   ))

ここでは、常に複数のエンコーディングに同じフォントを関連付けていますが、別のフォントを使用することもできます。

于 2012-12-14T12:52:02.617 に答える