# Additional settings / "coding" タブ ([Setup] メニュー)

Ambiguous Characters width
  1 Cell または 2 Cell を選択します。
Override Emoji Characters width
  チェックすると、絵文字属性のある文字は East_Asian_Width特性を置き換えて文字幅を設定します。
  - コードポイント U+1F000 以上の絵文字は常に2Cell(全角)として扱います。
  - コードポイント U+1F000 未満の絵文字は
    2callが選択されたとき
      2Cell(全角)として扱う
    1callが選択されたとき
      1Cell(半角)として扱う

## 簡単な設定の方法

中国語,日本語,韓国語(CJK)で使用する場合
  Japanese/UTF-8 など、"Japanese/" などがついたコーディングを選ぶ
  →Ambiguous Characters Width が 2Cell となる
  →Override Emoji Characters Width 有効となり 2Cell となる

## 表示される文字について

Tera Term のリポジトリにテスト用テキストがあるので表示してチェックできます。

- 漢字の文字幅
  "wget https://ja.osdn.net/projects/ttssh2/scm/svn/blobs/head/trunk/tests/unicodebuf-east_asian_width.txt?export=raw -O -"
- 絵文字の文字幅
  "wget https://ja.osdn.net/projects/ttssh2/scm/svn/blobs/head/trunk/tests/unicodebuf-text-emoji.txt?export=raw -O -"

次のことに注意してください

- フォントのグリフ(デザイン)通り表示されます。
  - Tera Term が全角,2Cellとして表示、デザインが半角,1Cellの場合、 半角の後ろにスペースが入ってるように表示されます。
  - Tera Term が半角,1Cellとして表示、デザインが全角,2Cellの場合、 全角の左半分が表示されます。
- Tera Termの扱う文字幅と、ホストが意図している文字幅が異なることがあります。
  プログラム、ライブラリ例
  - テキストエディタ(vim,emacs,nanoなど)
  - ビュア(more,less,lvなど)
  - bashなどに組み込まれているreadlineライブラリ(行編集ライブラリ)
  - aptitudeなどに組み込まれているcursesライブラリ(端末制御ライブラリ)
- 指定フォントに表示したい文字が収納されていないかもしれません。
  - 表示できる文字(指定文字のグリフ)が存在しない場合
    OSのよって黒い点「・」(例)が描画されます。OSのバージョンによっては他の表示になるかもしれません。
  - OSのバージョンによっては、自動的に他のフォントを使って描画されます。
    この機能をフォントリンクと呼びます。

## East_Asian_Width特性とセル数について

East_Asian_Width特性(東アジアの文字幅)として、 各文字には特性が割り当てられています。

この特性は5種類存在し、各々の文字幅が決められています。

また、文字幅の解釈には次の2種類があります。

1. 東アジアの従来文字コードの文脈の場合
2. 東アジア以外の従来文字コードの文脈の場合

これを表にすると次のようになります。

    cells数(2=全角/1=半角)
    |                   | 東アジアの           | 東アジア以外の       |
    | 特性              | 従来文字コードの文脈 | 従来文字コードの文脈 |
    | F(Fullwidth,全角) | 2                    | 2                    |
    | H(Halfwidth,半角) | 1                    | 1                    |
    | W(Wide,広)        | 2                    | 2                    |
    | Na(Narrow,狭)     | 1                    | 1                    |
    | A(Ambiguous,曖昧) | 2                    | 1                    |
    | N(Neutral,中立)   | 1                    | 1                    |

CJK環境では、Ambiguousの文字幅を 2Cell にしたほうが自然です。
また、日本語フォントでは 2Cell でデザインされていることがほとんどだと思われます。

Neutralには絵文字が入っていて、1cellで描画すると日本では不自然な表示となります。 絵文字の時の文字幅を変更することで自然な表示とすることができます。

例
  顔 U+263A
  トランプのスイート U+2764
  Unicode その他の記号 (Miscellaneous Symbols) について(Wikipedia)
  https://ja.wikipedia.org/wiki/%E3%81%9D%E3%81%AE%E4%BB%96%E3%81%AE%E8%A8%98%E5%8F%B7

次のデータをもとに属性を決定しています。
http://www.unicode.org/Public/UCD/latest/ucd/EastAsianWidth.txt

## 絵文字について

絵文字属性は East Asian Width の特性とは別の文字特性です。

CJK環境では、East_Asian_Width特性と同様、 従来の文字コードで1byteで表現できない文字は 2Cell で扱うほうが自然です。

非CJK環境では、従来の文字コードでは全角は存在しなかったので、 多くの文字を半角として扱うのが自然です。
顔の絵文字など(コードポイントU+1F000以上)はUnicode以降の文字なので、全角としてあつかってよさそうです。

次の情報をもとに絵文字の判定を行っています。
https://www.unicode.org/Public/emoji/12.1/emoji-data.txt
ただし、コードポイントU+0080未満は絵文字として扱いません。