Next: , Previous: , Up: フレームとグラフィカルなディスプレー   [Contents][Index]


21.8 フォント

デフォルトではEmacsはグラフィカルなディスプレーでテキストを表示するのに10ポイントのmonospaceフォントを使います。フォントのサイズはインタラクティブに変更可能です(テキストのスケールを参照)。

異なるフォントを指定するために複数の異なる方法があります:

現在使っているフォントをチェックするには、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=’部分を省略できます。

以下は、一般的なフォントプロパティーの一覧です:

slant

italic’、‘oblique’、‘roman’のうちの、どれか1つです。

weight

light’、‘medium’、‘demibold’、‘bold’、‘black’のうちの、どれか1つです。

style

slantとweightを組み合わせた、特別なstyleを定義するフォントがいくつかあります。たとえば‘Dejavu Sans’は、‘book’ styleを定義し、これはslantおよびweightプロパティーをオーバーライドします。

width

condensed’、‘normal’、‘expanded’のうちの、どれか1つです。

spacing

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

エントリーは以下の意味をもちます:

maker

フォントのmanufacturer(製造者名)です。

family

フォントのファミリー名です(たとえば‘courier’)。

weight

フォントのweightで、通常は‘bold’、‘medium’、‘light’のどれかです。他の値をサポートするフォント名もいくつかあります。

slant

フォントのslantで、通常は‘r’(roman)、‘i’(italic)、‘o’(oblique)、‘ri’(reverse italic)、‘ot’(other)のどれかです。他の値をサポートするフォント名もいくつかあります。

widthtype

フォントのwidthで、通常は‘normal’、‘condensed’、‘semicondensed’、‘extended’のどれかです。他の値をサポートするフォント名もいくつかあります。

style

オプションの追加のstyle名です。通常これは空で、ほとんどのXLFDでは、この位置に2つのハイフンを続けて指定します。style名には、‘ja’や‘ko’のような、ISO-639 language nameの2文字を指定することもできます。CJKスクリプトをサポートするいくつかのフォントは、style名の部分にこの記述をもちます。

pixels

フォントのheightをピクセルで指定します。

height

プリンターのポイントの1/10を単位とした、スクリーン上のフォントのheightです。フォントのポイントサイズの10倍です。垂直解像度(vertical resolution)を与えれば、heightpixelsは比例します。したがって一方を指定して、もう一方に‘*’を指定するのが一般的です。

horiz

フォントが意図するインチあたりのピクセル数で表した、水平解像度(horizontal resolution)です。

vert

フォントが意図するインチあたりのピクセル数で表した、垂直解像度(vertical resolution)です。通常、システムのフォント解像度は、スクリーンにたいして正しい値になっています。したがって、これとhorizには‘*’を指定するのが普通です。

spacing

これには‘m’(monospace)、‘p’(proportional)、‘c’(character cell)を指定します。

width

ピクセル単位で表した文字の平均widthの10倍です。

registry
encoding

フォントを描画する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を実行しているときは、特定の種類のテキスト(テキストのフェイスを参照してください)や、特定のフレーム(フレームパラメーターを参照してください)のフォントをセットすることもできます。


Next: スピードバーフレーム, Previous: フレームコマンド, Up: フレームとグラフィカルなディスプレー   [Contents][Index]