テキスト端末がサポートする色数は通常限られており、コンピュータは小さな整数を用いて端末上の色を選択します。つまり、コンピュータは選択された色がどのような見た目になるかを確実に判別できず、代わりに、どの小さな整数がどの色に対応するのかをアプリケーションに知らせる必要があります。しかし、Emacsは標準的な色セットを把握しており、それらを自動的に使用しようとします。
本節で説明する関数は、Emacs における端末色の使用方法を制御します。
これらの関数のいくつかは、色名で説明されているRGB値を使用したり、返したりします。
これらの関数は、オプション引数としてディスプレイ(フレームまたはターミナル名)を受け取ります。将来的には、Emacsが異なるテキストターミナルでそれぞれ異なる色をサポートできるようにしたいと考えています。そうなれば、この引数でどのターミナルを操作するかを指定できるようになります(デフォルトは選択中のフレームのターミナルです。入力フォーカスを参照してください)。ただし、現時点では frame 引数は効果を持ちません。
この関数は、端末上で色名 name を色番号 number に関連付けます。
オプション引数 rgb を指定した場合、それは RGB 値、つまり実際の色を指定する 3
つの数値のリストとなります。rgb を指定しない場合、Emacs
がその色がどのような見た目であるかを把握できないため、tty-color-approximate
で他の色を近似する際にこの色を使用することはできません。
この関数は、テキスト端末で定義済みの色のテーブルをクリアします。
この関数は、テキスト端末がサポートする既知の色を記録したalistを返します。
各要素は (name number . rgb) または (name number) の形式をとります。ここで、name
は色名、number は端末に色を指定するための数値です。rgb がある場合は、色が実際にどのように見えるかを示す3つの色値(赤、緑、青)のリストとなります。
この関数は、display でサポートされている既知の色の中から、rgb 値 rgb(色値のリスト)で指定された色に最も近い色を検索します。戻り値は tty-color-alist の要素となります。
この関数は、display でサポートされている既知の色の中から color に最も近い色を探し、そのインデックス(整数)を返します。color という名前が定義されていない場合、値は nil
となります。