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

Ambiguous Characters width

1 Cell または 2 Cell を選択します。
Tera Term の接続先が想定している文字幅を指定します。
East_Asian_Width特性とセル数についてを参照ください。
Tera Term が描画する文字の幅については描画幅に合わせてリサイズしたフォントを描画を参照ください。

Override Emoji Characters width

チェックすると、絵文字属性のある文字は East_Asian_Width特性を置き換えて文字幅を設定します。
絵文字のセル数についてを参照ください。

DEC Special Graphics

DEC Special Graphics(DEC特殊グラフィック)の 表示方法を指定します。
UnicodeをDEC Special Graphicsへマッピングする
UnicodeをDEC Special Graphicsへ置き換え、"Tera Special" フォントを使用して表示します。
DEC Special Graphicの文字幅は1cell(half-width)となります。
変換する文字種を指定できます。 UnicodeからDEC Special Graphicsへのマッピングを設定するも参照してください
罫線素片(U+2500-U+257F)
Punctuation, Block Elements, Shade
中点(U+00B7,U+2024,U+2219)
DEC Special GraphicsをUnicodeへマッピングする
DEC Special GraphicをUnicodeへ置き換え、VTウィンドウのフォントを使用して表示します。
Unicodeで表示する文字の文字幅は、文字毎に異なり Ambiguous Characters width 設定で変化します。

簡単な設定の方法

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

文字幅(セル数)について

Latin-1 などシングルバイト文字コードの文字幅は1cellです。

Shift_JIS などのダブルバイト文字コードの文字幅は、1バイト文字は1cell, 2バイト文字は2cellです。

Unicode では1つの文字の文字幅が場合によって変化します。

例えば、"§"(section sign,節記号,セクションマーク) の文字コードは次のようになります

| code               | charactor code(code point) | cell   |
|--------------------|----------------------------|--------|
| ISO8859-1(Latin-1) | 0xA7                       | 1      |
| Shift_JIS(CP932)   | 0x8198                     | 2      |
| KS5601(CP949)      | 0xA1D7                     | 2      |
| Big5(CP950)        | 0xA1B1                     | 2      |
| BG2312(CP936)      | 0xA1EC                     | 2      |
| Unicode            | 0xA7 (U+00A7)              | 1 or 2 |

マルチバイト文字コードを使用していた環境(CJK)では 2cell で、 その他の環境では 1cell で表示すると自然に使用できます。 文字幅が変化する文字種をAmbiguous(曖昧)といいます。 詳しくはEast_Asian_Width特性とセル数についてを参照ください。

表示される文字について

Tera Term のリポジトリにテスト用テキストがあるので表示してチェックできます。 次のことに注意してください

East_Asian_Width特性と文字幅(セル数)について

Unicodeでは文字幅を5種類の特性に分類して、 East_Asian_Width特性(東アジアの文字幅)として定義しています。

文字幅の解釈には次の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 でデザインされていることがほとんどだと思われます。

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

絵文字の文字幅(セル数)について

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

CJK環境では、East_Asian_Width特性と同様、 DBCS で 2byte の文字は 2Cell で扱うほうが自然です。

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

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

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

"☺", U+263A
WHITE SMILING FACE
"❤", U+2764
HEAVY BLACK HEART