デフォルトではEmacsはグラフィカルなディスプレイでテキストを表示するのに10ポイントのmonospaceフォントを使います。フォントのサイズはインタラクティブに変更可能です(テキストのスケールを参照)。
異なるフォントを指定するために複数の異なる方法があります:
font
パラメーターを指定するように、変数default-frame-alist
を変更する行をinitファイルに追加します:
(add-to-list 'default-frame-alist '(font . "DejaVu Sans Mono-10"))
これはこのinitファイルで再起動した後の、Emacsが作るすべてのグラフィカルなフレームのデフォルトを、指定したフォントにします。
emacs.font: DejaVu Sans Mono-12
Xリソースファイルが効果を表すには、Xを再起動するかxrdb
コマンドを使わなければなりません。Xリソースを参照してください。Xリソースファイルでは、フォント名をクォートしないでください。
font-use-system-font
をt
(デフォルトはnil
)にセットすることによって、Emacsにデフォルトのシステムフォントの変更とともに、フレームのデフォルトフォントを調節するよう指示できます。これが機能するには、EmacsがGsetting(または古いGconf)のサポートつきでコンパイルされていなければなりません(使用するGsetting設定名は具体的には‘org.gnome.desktop.interface
monospace-font-name’と‘org.gnome.desktop.interface font-name’)。
現在使っているフォントをチェックするには、C-u C-x =コマンドが有用です。これはポイント位置の文字の説明と、それを描画しているフォント名を表示します。
フォント名を表現する異なる方法がいくつか存在します。1番目はFontconfigパターンを使う方法です。Fontconfigパターンは以下の形式をもちます:
fontname[-fontsize][:name1=values1][:name2=values2]...
このフォーマットでは、大カッコ(brackets)の中の要素は省略可能です。fontnameは、‘Monospace’や‘DejaVu Sans Mono’のような、フォントのファミリー名です。fontsizeは、フォントのポイントサイズ(1プリンターポイントはおよそ1/72インチです)で、エントリー‘name=values’は、フォントのslantやweightなどのセッティングを指定します。valuesには1つの値か、カンマで区切られた値のリストを指定します。それらに加えていくつかのプロパティ値は、ある種のプロパティ名だけで有効なものがあり、それらについては‘name=’部分を省略できます。
以下は、一般的なフォントプロパティの一覧です:
‘italic’、‘oblique’、‘roman’のうちの、どれか1つです。
‘light’、‘medium’、‘demibold’、‘bold’、‘black’のうちの、どれか1つです。
slantとweightを組み合わせた、特別なstyleを定義するフォントがいくつかあります。たとえば‘Dejavu Sans’は、‘book’ styleを定義し、これはslantおよびweightプロパティをオーバーライドします。
‘condensed’、‘normal’、‘expanded’のうちの、どれか1つです。
‘monospace’、‘proportional’、‘dual-width’、‘charcell’のうちの、どれか1つです。
以下はFontconfigパターンの例です:
Monospace Monospace-12 Monospace-12:bold DejaVu Sans Mono:bold:italic Monospace-12:weight=bold:slant=italic
Fontconfigパターンの、より詳細な説明は、Fontconfigのマニュアルを参照してください。これはFontconfigとともに配布されており、https://fontconfig.org/fontconfig-user.htmlからオンラインで利用可能です。
MS-Windowsではすべてのフォントにたいしてfontname[-fontsize]形式のサブセットだけがサポートされています。これらの形式すべてにたいして完全なFontconfigパターンは機能しないかもしれません。
フォントを指定する2番目の方法は、GTKフォントパターンを使う方法です。これらは以下の構文を使います。
fontname [properties] [fontsize]
fontnameはファミリー名、propertiesはスペースで区切られたプロパティ値のリストで、fontsizeはポイントサイズです。GTKフォントパターンで指定するプロパティは以下のようなものでしょう:
以下にGTKフォントパターンの例をいくつか示します:
Monospace 12 Monospace Bold Italic 12
MS-Windowsではfontnameのサブセットだけがサポートされています。
フォントを指定する3番目の方法はXLFD(X Logical Font Description)を使う方法であり、MS-Windowsでもサポートされています。これはXでフォントを指定する際の伝統的な手法です。以下のように、各XLFDは14の単語か数字をダッシュで区切ったものからなります:
-misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1
XLFDでのワイルドカード文字(‘*’)は、任意の文字の並び(noneを含む)にマッチし、‘?’は任意の1文字にマッチします。しかしマッチングは実装依存で、長い名前の中のダッシュにたいするワイルドカードのマッチが不正確なことがあります。信頼できる結果を得るためには、14個すべてのダッシュを指定して、ワイルドカードを1つのフィールドだけに使います。XLFDでは大文字小文字の違いは重要ではありません。XLFDの構文は以下のとおりです:
-maker-family-weight-slant-widthtype-style... ...-pixels-height-horiz-vert-spacing-width-registry-encoding
エントリーは以下の意味をもちます:
フォントのmanufacturer(製造者名)です。
フォントのファミリー名です(たとえば‘courier’)。
フォントのweightで、通常は‘bold’、‘medium’、‘light’のどれかです。他の値をサポートするフォント名もいくつかあります。
フォントのslantで、通常は‘r’(roman)、‘i’(italic)、‘o’(oblique)、‘ri’(reverse italic)、‘ot’(other)のどれかです。他の値をサポートするフォント名もいくつかあります。
フォントのwidthで、通常は‘normal’、‘condensed’、‘semicondensed’、‘extended’のどれかです。他の値をサポートするフォント名もいくつかあります。
オプションの追加のstyle名です。通常これは空で、ほとんどのXLFDでは、この位置に2つのハイフンを続けて指定します。style名には、‘ja’や‘ko’のような、ISO-639 language nameの2文字を指定することもできます。CJKスクリプトをサポートするいくつかのフォントは、style名の部分にこの記述をもちます。
フォントのheightをピクセルで指定します。
プリンターのポイントの1/10を単位とした、スクリーン上のフォントのheightです。フォントのポイントサイズの10倍です。垂直解像度(vertical resolution)を与えれば、heightとpixelsは比例します。したがって一方を指定して、もう一方に‘*’を指定するのが一般的です。
フォントが意図するインチあたりのピクセル数で表した、水平解像度(horizontal resolution)です。
フォントが意図するインチあたりのピクセル数で表した、垂直解像度(vertical resolution)です。通常、システムのフォント解像度は、スクリーンにたいして正しい値になっています。したがって、これとhorizには‘*’を指定するのが普通です。
これには‘m’(monospace)、‘p’(proportional)、‘c’(character cell)を指定します。
ピクセル単位で表した文字の平均widthの10倍です。
フォントを描画するXフォント文字セット(X font character
set)です(Xフォント文字セットはEmacs文字セットと同じではありませんが、似ています)。フォントの選択をチェックするのに、xfontsel
コマンドを使うことができます。通常は、registryに‘iso8859’、encodingに‘1’を使うべきです。
フォントを指定する4番目の方法は、フォントニックネーム(font nickname)を使う方法です。特定のフォントは通常のフォント指定のかわりに、短いニックネームをもつものがあります。たとえば‘6x13’は以下と同じです
-misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1
この形式はMS-Windowsではサポートされていません。
X上でのEmacsは、2つのタイプのフォントを認識します。1つはクライアントサイドのフォントで、これはXftおよびFontconfigライブラリーにより提供されます。もう1つはサーバーサイドのフォントで、これはXサーバー自身により提供されます。ほとんどのクライアントサイドフォントは、アンチエイリアシング(antialiasing)やサブピクセルンティング(subpixel hinting)などの、サーバーサイドフォントにはない、進んだフォント機能をサポートします。FontconfigとGTKパターンは、クライアントサイドフォントだけにマッチします。
すべての文字が同じ幅をもつ固定幅フォントを使いたいと思うでしょう。XftおよびFontconfigフォントでは、fc-list
コマンドを使って、以下のようにして利用可能な固定幅フォントを一覧することができます。
fc-list :spacing=mono fc-list :spacing=charcell
サーバーサイドのXフォントにたいしては、xlsfonts
プログラムを使って、以下のようにして利用可能な固定幅フォントを一覧することができます。
xlsfonts -fn '*x*' | grep -E '^[0-9]+x[0-9]+' xlsfonts -fn '*-*-*-*-*-*-*-*-*-*-*-m*' xlsfonts -fn '*-*-*-*-*-*-*-*-*-*-*-c*'
XLFDのspacingフィールドが、‘m’または‘c’のフォントは固定幅フォントです。特定のフォントの外見を見るには、以下のようにxfd
コマンドを使います:
xfd -fn 6x13
これはフォント‘6x13’の全体を表示します。
Emacsを実行しているときは、特定の種類のテキスト(テキストのフェイスを参照してください)や、特定のフレーム(フレームパラメーターを参照してください)のフォントをセットすることもできます。