# エンコーディングメニュー

エンコーディングメニューはフォントビューだけに存在します:

- エンコーディング変換(R) >
  - 各種の標準およびユーザ定義のエンコーディングへ
- コンパクト化(C)
- エンコーディングを強制(F) >
  - 各種の標準およびユーザ定義のエンコーディングへ
- エンコーディングスロットを追加(A)...
- 未使用のスロットを削除(U)
- グリフの切り離し(D)
- グリフの切り離し・削除(V)...
- エンコーディングの名前を追加(N)...
- エンコーディングを読み込み(L)...
- フォントから作成(K)...
- エンコーディングを削除(C)...
- グループ毎の表示(G)...
- グループを定義(E)...

エンコーディング変換(R)
  このメニューには標準およびユーザ定義のサブメニューが付属しています。フォントの現在のエンコーディングにはチェックマークがついています。別の項目を選択することによってエンコーディングを変換できます。

  エンコーディングは、2 つの僅かに異なる形式が可能です。それは Unicode の符号位置かグリフ名によって定義することができます。符号位置によって定義されたエンコーディングに変換したときは、それに一致する Unicode 値がエンコーディングスロットに割り当てられます。グリフ名によって定義されたエンコーディングに変換したときは、一致する名前をもつグリフを最初に検索し、見つかった場合はそれを使用します。見つからなかった場合は、グリフ名に対応する Unicode 符号位置 (があれば) を検索し、グリフがあればその名前をエンコーディングによって指定されている名前に変更します。

  例:“uni0041”という名前のグリフを含むフォントがあったとして、そのエンコーディングでは U+0041→スロット 65 に対応づけられていたとすると、グリフはスロット 65 に移動します。もし、“A”→スロット 65 への対応づけを行っている別のエンコーディングがあったとすると、(“A”の Unicode 値は U+0041 なので) エンコーディング変換後のグリフはスロット 65 に置かれたままですが、その名前は“A”に変更されます。

コンパクト化(C)
  エンコーディングからすべての隙間を取り除き、全グリフは一繋がりに押し潰されます。
エンコーディングを強制(F)
  上記の …`変換(R)` と同じサブメニューを含みます。このメニューでは、フォント内のグリフが正しい順番に並んでいて、名前の方が間違っていると見なします (これは奇妙に感じますが、よくあることです)。このコマンドは、全てのグリフの名前を、エンコーディングで指定された名前に強制的に変更します。
エンコーディングスロットを追加(A)...
  幾つかの追加スロットをフォントの末尾に追加します。それらはエンコーディングに含まれないグリフ (異体字グリフなど) を定義するのに使用できます。
未使用のスロットを削除(U)
  フォントの末尾にある任意の未使用スロットを削除します。フォントの途中にあるスロットは削除できません。それを行うとエンコーディングが壊れてしまいます。
グリフの切り離し(D)
  選択した全てのエンコーディングスロットを、現在割り当てられているグリフからきりは生します。それらのスロットは未使用のものとマークされます。グリフはフォント内に残ります。文字符号が割り当てられていないだけです (エンコーディング変換を行うと、それらのグリフはまた見えるようになります)。
グリフの切り離し・削除(V)...
  上と同様ですが、切り離されたグリフ (のうち、エンコーディングの他の箇所で使用されていない物) のすべてをフォントから削除します。
エンコーディングの名前を追加(N)...
  ユーザにエンコーディング名を問い合わせ、それを iconv() データベースから検索します。それがあれば、そのエンコーディングをメニューに追加します。
エンコーディングを読み込み(L)...
  ユーザにファイル名を問い合わせ、ユーザ定義のエンコーディングをそのファイルから読み込もうと試みます。
フォントから作成(K)...
  フォントの現在のエンコーディングに (既存の物と重ならない) 名前をつけ、エンコーディングメニューに追加することができます。
エンコーディングを削除(C)...
  ユーザ定義のエンコーディングを一つ削除します。
グループ毎の表示(G)...
  フォントビューに表示されたフォントを、ユーザが定義したグループ (次のコマンドで定義できます) に制限します。
グループを定義(E)...
  相互に何らかの繋がりをもつ (と見ることができる) グリフのグループを定義することができます。

## エンコーディングに関する一般的注意

すべてのフォントフォーマットが全てのエンコーディングをサポートするわけではないことにご注意ください。SVG フォントは常に Unicode エンコーディングで出力され、TreuType では Unicode か CJK エンコーディングのどれかを選ぶことができ、Type1 フォントは 1 バイトエンコーディングしかサポートしていないなどです。

CID キー指定フォントではエンコーディングを変更することはできません (本質的にエンコーディングが存在しないため) が、CID→補遺番号を変更 コマンドでレジストリ/順序づけの情報を表示し、補遺番号を変更することができます。

### 組み込みのエンコーディング

FontForge は、デフォルトで以下のエンコーディングについて知っています。

- ISO-8859-1 (Latin1) ― 西ヨーロッパの伝統的エンコーディングです。HTTP のデフォルトエンコーディングです。ユーロ記号は含まれません。
- ISO-8859-15 (Latin9) ― Latin1に代るコードです。ユーロ記号を含んでいます。
- ISO-8859-2 (Latin2) ― 中央および東ヨーロッパ (チェコ語、ハンガリー語、ポーランド語、ルーマニア語、クロアチア語、スロバキア語、スロベニア語)。
- ISO-8859-3 (Latin3) ― 南ヨーロッパ (エスペラント、マルタ語)
- ISO-8859-4 (Latin4) ― 北ヨーロッパ (エストニア語、ラトビア語、リトアニア語、グリーンランド語、ラップ語)
- (Latin5) ― トルコ語
- ISO-8859-10 (Latin6) ― 北欧諸語 (Latin4 と Latin1 の作り直し)
- ISO-8859-13 (Latin7) ― その他のバルト諸言語用の文字セット
- ISO-8859-14 (Latin8) ― ケルト諸語 (ゲール語とウェールズ語)
- ISO-8859-5 (Cyrillic)
- ISO-8859-6 (Arabic)
- ISO-8859-7 (Greek)
- ISO-8859-8 (Hebrew) ― (およびイディッシュ語)
- ISO-8859-11 (Thai) ― 別名TIS 620
  <ISO-8859-12 はありません>

- KOI8-R ― キリル文字
- Macintosh Roman
- Windows“ANSI”(CodePage1252)
- Adobe 標準
- シンボル
- TeX Base

- ISO-10646-1 (Unicode, BMP)
- ISO-10646-1 (Unicode, Full)
- ISO-10646-? (Unicode, 面を指定)
  (unicode の特定の面 (BMP, SMP, SIP など) を 1 つのエンコーディングとして選べます。

- SJIS
- JIS 208 ― 日本語の漢字 (最初の 8000 文字)
- JIS 212 ― 日本語の漢字 (次の 8000 文字)
- Wansung
- KSC 5601 ― 韓国語 (これは KS C 5601 の 94×94 バージョンです)
- Johab
- GB 2312 ― 簡体字中国語
- パック形式 GB 2312 ― (正確な名前は不明です。ASCII を 0x80 未満のバイトに割り当て、GB 2312 を 0x8080 だけオフセットした EUC)
- Big5 ― 繁体字中国語

- Custom ― 不明なエンコーディング
- Original ― オリジナルのフォントファイルで使用されているグリフ順

エンコーディングに関する情報源:

- ISO 8859 アルファベットスープ
- Unicode の対応表

Unicode のグリフすべての画像へのインデックス。

### ユーザ定義のエンコーディング

FontForge が知っているエンコーディング一覧に新しいエンコーディングを追加することもできます。ユーザ定義のエンコーディング群を操作するためのボタンは 3 つ用意されています。標準のエンコーディングと同様に、これらは文字セットと符号化方式の両方を指定します。エンコーディングは最大 256 項目を含むことができますが、文字セットはそれより大きくても構いません (1024 文字まで)。これは、追加の文字を含むフォントを定義できるということです。PostScript フォントは実行時にエンコーディングを切り替えることができるので、これが役に立つ場合があります。

`エンコーディングを読み込む` コマンドを実行すると、エンコーディングをファイルから読み込むことができます。現在のところ、ファイルは Unicode Consortium が ISO 8859 の各エンコーディングを Unicode に対応づけるのに使っているフォーマットか、PostScript のエンコーディング配列でなければなりません。最初の形式は以下のような形です:

>     0x20	0x0020	#	SPACE
>     0x21	0x0021	#	EXCLAMATION MARK
>     ...

PostScript ファイルは以下のような形です:

>     /TeXBase1Encoding [
>      % 00
>      /.notdef /dotaccent /fi /fl
>      /fraction /hungarianumlaut /Lslash /lslash
>      ...
>     ] def

PostScript ファイルには複数のエンコーディングを含めることができます。エンコーディングの読み込み処理は賢くありません。このような形で指定されたエンコーディングしか読み込めないので、PostScript で配列を指定する他の無数の方法を試みないでください。

フォントにカスタムエンコーディングがある場合、`フォントから作成`メニューが選択できるようになります。これを使って、現在のフォントに対して定義したエンコーディングに名前をつけることができます。

`エンコーディングを削除`メニューを選択すると、すべてのカスタムエンコーディングを列挙するリストが表示され、それらを削除することができます。

ここに PostScript エンコーディングファイルの例があります。それには以下のエンコーディングが含まれています:

- TeXMathItalicEncoding
- TeXMathSymbolEncoding
- TeXMathExtensionEncoding

- IsoLatin ― (これは、ISO-Latin-* フォントのどれかに含まれる文字をすべて指定しています)

- AdobeExpert ― (これはノンライニング数字、小型大文字、分数、下つき/上つき数字などを含みます。)

- CodePage1250 ― Microsoft の中央ヨーロッパの諸文字用エンコーディング
- CodePage1251 ― Microsoft のキリル文字エンコーディング
- CodePage1252 ― Microsoft の西ヨーロッパ用エンコーディング (Latin1 のスーパーセット)。時に“ANSI”と呼ばれますが、これを定めた ANSI 規格の存在は見つかりません。
- CodePage1253 ― Microsoft のギリシャ語エンコーディング
- CodePage1254 ― Microsoft のトルコ語エンコーディング
- CodePage1255 ― Microsoft のヘブライ語エンコーディング (ISO-8859-8 の拡張)。
- CodePage1256 ― Microsoft's Arabic encoding
- CodePage1257 ― Microsoft のバルト諸言語エンコーディング
- CodePage1258 ― Microsoft のベトナム語エンコーディング
- CodePage874 ― Microsoft のタイ語エンコーディング

- MacCentralEuropean
- MacCyrillic
- MacGreek
- MacHebrew

- US-ASCII ― それ自身ではもはや本当に役立つわけではありませんが、その他ほとんどすべてのエンコーディングの最初の 128 文字を提供します。

## その他のメニュー

- ファイル(F)
- 編集(E)
- 点(P)
- エレメント(L)
- ヒント(I)
- エンコーディング(N)
- 表示(V)
- メトリック(M)
- CID
- MM
- ウィンドウ(W)
- ヘルプ(H)
- ホットキー一覧

― 前 ― 目次 ― 次 ―