デフォルトでは、Emacs はグラフィカルディスプレイ上で 10 ポイントの等幅フォントを用いてテキストを表示し、フォントサイズは対話的に変更できます(テキストスケールを参照)。
異なるフォントを指定する方法はいくつかあります:
default-frame-alist を修正して font パラメータ(フレームパラメータ を参照)を指定します。以下のように記述してください。
(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がGsettings(または旧来のGconf)をサポートするようにコンパイルされている必要があります。(具体的には、使用されるGsettingsの設定名は
‘org.gnome.desktop.interface
monospace-font-name’ および ‘org.gnome.desktop.interface font-name’ です。)
現在使用しているフォントを確認するには、C-u C-x =コマンドが便利です。このコマンドはポイントにある文字を記述し、それがレンダリングされているフォント名を表示します。
フォント名を表現する方法は4通りあります。1つ目はFontconfigパターンを使用する方法です。Fontconfigパターンは以下の形式になります。
fontname[-fontsize][:name1=values1][:name2=values2]...
この形式では、角括弧内の要素はいずれも省略可能です。ここで、fontnameは‘Monospace’や‘DejaVu Sans Mono’といったフォントのファミリー名、fontsizeはフォントのポイントサイズ(1プリンターポイントは約1/72インチ)、‘name=values’の項目はフォントの斜体やウェイトなどの設定を指定します。各valuesは、単一の値、またはカンマで区切られた値のリストとなります。さらに、一部のプロパティ値は1種類のプロパティ名のみで有効であり、その場合は‘name=’の部分を省略できます。
一般的なフォントプロパティの一覧は以下の通りです。
‘italic’、‘oblique’、または‘roman’のいずれか。
‘light’、‘medium’、‘demibold’、‘bold’、または‘black’のいずれか。
一部のフォントでは、斜体とウェイトを組み合わせた特殊なスタイルが定義されています。例えば、‘Dejavu Sans’は‘book’スタイルを定義しており、これが斜体とウェイトのプロパティを上書きします。
‘condensed’、‘normal’、または‘expanded’のいずれか。
‘monospace’、‘proportional’、‘dual-width’、または‘charcell’のいずれか。
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)を使用することです。これはXにおける従来のフォント指定方法であり、MS-Windowsでもサポートされています。各XLFDは、次のようにハイフンで区切られた14個の単語または数値で構成されています:
-misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1
XLFDにおけるワイルドカード文字(‘*’)は任意の文字列(空文字列を含む)に一致し、‘?’は任意の1文字に一致します。ただし、マッチングは実装に依存するため、長い名前の中でワイルドカードがハイフンに一致した場合、不正確な結果となることがあります。確実な結果を得るには、14個のハイフンをすべて指定し、ワイルドカードはフィールド内でのみ使用してください。XLFDでは大文字と小文字は区別されません。XLFDの構文は以下の通りです。
-maker-family-weight-slant-widthtype-style... ...-pixels-height-horiz-vert-spacing-width-registry-encoding
各項目の意味は以下の通りです。
フォントメーカーの名称。
フォントファミリー名(例:‘courier’)。
フォントウェイト—通常は‘bold’、‘medium’、または‘light’のいずれかです。一部のフォント名では、他の値も指定可能です。
フォントの傾斜—通常は ‘r’(ローマン)、‘i’(イタリック)、‘o’(オブリーク)、‘ri’(リバースイタリック)、または ‘ot’(その他)。一部のフォント名では、他の値も指定可能です。
フォント幅—通常は ‘normal’、‘condensed’、‘semicondensed’、または ‘extended’。一部のフォント名では、他の値も指定可能です。
任意の追加スタイル名。通常は空であり、ほとんどのXLFDではこの箇所にハイフンが2つ連続しています。また、スタイル名には ‘ja’ や ‘ko’ のように、2文字のISO-639言語名を指定することも可能です。CJK文字をサポートする一部のフォントでは、スタイル名の部分にその名称が明記されています。
フォントの高さ(ピクセル単位)。
画面上のフォント高さ(プリンターのポイントの10分の1単位で測定)。これはフォントのポイントサイズに10を掛けた値である。所定の垂直解像度において、heightとpixelsは比例関係にあるため、通常はどちらか一方のみを指定し、もう一方には‘*’を用いるのが一般的である。
そのフォントが想定されている画面の、1インチあたりのピクセル数で表される水平解像度。
フォントが想定されている画面の垂直解像度(1インチあたりのピクセル数)。通常、システム上のフォントの解像度が画面に適した値となるため、通常はこれに ‘*’ を、horiz を指定します。
これは ‘m’(等幅)、‘p’(プロポーショナル)、または ‘c’(文字セル)です。
平均文字幅(ピクセル)に10を乗じた値。
そのフォントが表示するXフォント文字セット。(Xフォント文字セットはEmacsの文字セットとは異なりますが、類似しています。)xfontselプログラムを使用して、どのような選択肢があるかを確認できます。通常、registryには‘iso8859’を、encodingには‘1’を使用します。
フォントを指定する4番目にして最後の方法は、フォントのニックネームを使用することです。一部のフォントには短いニックネームが設定されており、通常のフォント指定の代わりに使用できます。例えば、‘6x13’は以下と同等です。
-misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1
このフォームはMS-Windowsではサポートされていません。
Xにおいて、Emacsは2種類のフォントを認識します。XftおよびFontconfigライブラリが提供するクライアントサイドフォントと、Xサーバー自体が提供するサーバーサイドフォントです。ほとんどのクライアントサイドフォントは、アンチエイリアスやサブピクセルヒンティングといった高度なフォント機能をサポートしていますが、サーバーサイドフォントはサポートしていません。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の実行中に、特定の種類のテキスト(テキストフェイスを参照)や、特定のフレーム(フレームパラメータを参照)のフォントを設定することもできます。