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

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

エンコーディング変換(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 は、デフォルトで以下のエンコーディングについて知っています。

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

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 エンコーディングファイルの例があります。それには以下のエンコーディングが含まれています:

その他のメニュー

目次