unicmapのメッセージを中国語に翻訳していただいたので、簡体字中国語版を作成。
unicmapをv1.14に更新。
OpenOffice.orgのPDF出力のバグ(UVSテーブルを出力したフォントがPDF出力で文字化けする問題)対策。
カスタム変換定義ファイルの仕様書を作成。
縦書き定義のサンプルをカスタム変換定義ファイルに追加。
unicmapをv1.13.1に更新。
入力フォントのGSUBテーブルがWin9x互換形式の場合のみ'vert'の置き換えに対応。
cmapの生成方法を変更。デフォルトでは従来方式で大きくなりすぎた場合にのみ切り替えますが、「-optcmap」オプションを付けると強制的に新しい方式で変換します。
unicmapをv1.12に更新。
OpenType v1.5草案の異体字セレクタ仕様に対応したつもり。
自動的に空白グリフを削除しない符号位置を、U+E0FFFまで拡張。
指定可能なOpenType featureに'vert'を追加。
unicmapをv1.11に更新。
カスタム変換定義ファイルで、1つのグリフに複数の定義を与えられるようにした。
unicmapをv1.10に更新。
自動的に空白グリフを削除しない符号位置に、U+E0100〜U+E01EF(Ideographic Variation Selector)を追加。
Windows Vista上で字形切り替え可能なフォントの生成に対応。
字形切り替えのサンプルとしてY.OzFont04を使ったカスタム変換定義ファイルを追加。
パーソナルメディアの方からのご指摘により、sjis-2004-std.txtの情報の抜けを修正。
これは何? / どうやって使うの? / Shift_JIS-2004フォントってどんなのがあるの? / これを使うと何がいいの? / これでできないことは? / 既知の問題点 / 類似品
Shift_JIS-2004エンコーディングのTrueTypeフォントにUnicodeのcmapを付け加えるなどの変更を加えて、Unicode 3.2フォントとして使えるようにします。
おまけでBig5/Wansung/KPS 9566/GB2312/GB12345エンコーディングのフォントにも対応してみました。Wansungフォントを変換するときは、Unicode 4.1で追加された符号位置も使用します。KPS 9566フォントを変換するときは、Unicode 4.0(ISO/IEC 10646-1:2000/Amd2:2003)およびUnicode 4.1で追加された符号位置も使用します。
カスタム変換定義ファイルを使うことで、Unicodeフォントのマッピングを変更することもできます。
コマンドプロンプトを起動して、「unicmap <変換元のフォント> <新しいファイル名>」のように入力してください。Windows以外の人は、同梱のソースを使ってどうにかしてください。
(2004-04-07追記)入力フォントのエンコーディングはほとんどの場合自動判別しますが、GB2312とGB12345の自動判別はできないので、GB12345エンコーディングのフォントを変換するときは「-trad」オプションを付けてください。
Unicodeフォントは通常変換する必要はありません。あえて入力に指定する場合、誤って指定したのではないことを明確にするため、「-uni」オプションを指定する必要があります。
(2004-03-31追記)コマンドプロンプトって何? という初心者向けに「手取り足取り懇切丁寧な図解入り取扱説明書」を作ってくださった方がいます。(2005-05-15追記)説明書の最新版はainu_exchangeの配布ファイルに同梱されています。ここに転載されているものは最新に更新するよう努めていますが、必ずしも最新であるとは限りません。(2007-05-01追記)現在、ainu_exchangeにこの説明書は同梱されていないようです。
(2004-05-03追記)コマンドプロンプトを直接使わなくて済むようにランチャを作ってくださった方がいます。(2005-05-16 URL変更) (2010-12-30 URL変更)
JIS X 0213:2004のShift_JIS-2004エンコーディングに対応したフォントには、以下のものが存在しているようです。
※最初から内部エンコーディングがUnicodeのフォントは変換不要なので、ここでは紹介していません。
日立製作所、タイプバンク、内田明さん作
(2003-12-04追記)unicmapで変換済みのフォントも配布されています。
日立製作所、タイプバンク、内田明さん作
JIS X 0213をJISの包摂の範囲内で、いわゆる旧字体によって実装しています。
(2003-12-08追記)JIS X 0213では包摂されているがUnicodeでは分離されている文字を旧字体で実装した場合もそのまま変換していいのかどうかは謎ですが、さすがにプログラムでグリフの実装を判別するのは困難ですし、とりあえずこだわらずに変換しています。
歴史的経緯はともかく、現在ではXANO明朝をリネームしただけのフォントです。
希土類元素レアアースさん作
(2008-05-14更新)2008-04-18にUnicode版も公開されました。
泉山さん作
JIS X 0213:2000のShift_JISX0213エンコーディングに対応したフォントには、以下のものが存在しているようです。
以下のフォントはJIS X 0213:2004で文字が追加された位置に空でないダミーのグリフを持ちます。ダミーグリフを削除するにはカスタム変換定義ファイルを指定する必要があります。
wakabaさん作
希土類元素レアアースさん作
(2003-12-28追記)等幅版が変換できないという報告があったので確認してみたところ、実装水準3の等幅版はエラーが出て変換できませんでした。vheaテーブルは必須ではないのに見つからないからといって変換を中止するのは明らかにバグですが、実装水準4の等幅版は変換できるので、特に実装水準3のフォントが必要でなければそちらをご利用ください。(2004-02-22追記)v1.01で修正しました。
(2010-12-30追記)Mac OS XやWindows Vista以降では、標準の日本語フォントにJIS X 0213の文字がすべて収録されているため、あまりメリットはありません。
システムに特殊なパッチを当てなくても、WindowsでJIS X 0213の文字が使えるようになります。パッチが不要ですから、IBM拡張文字を使った今までの文書も文字化けしません。
HabianやXANO明朝はオフィシャルのUnicode版も配布されていますが、それらとは異なり、JIS X 0213の文字をすべて使えます。ただしBMPにない303文字の漢字や、合成が必要な25文字を使うには、システムが対応している必要があります。(2003-12-04追記)XANO明朝のUnicode版はunicmapで変換したフォントに差し替えられたようです。
既存のテーブルには原則として手を付けないので、Unicodeに対応していないシステムでもShift_JIS-2004フォントとして使えるはずです(ただしWin9xなどはUnicodeのcmapがあるとそちらを優先してしまうようです)。
Shift_JIS-2004やEUC-JIS-2004(またはShift_JISX0213やEUC-JISX0213)で符号化された文書がWindows上で読めるようになるわけではありません。JIS X 0213の文字はUnicode 3.2で符号化されている必要があります。
一部のCJKフォントを変換すると、フォントをダブルクリックしたとき表示される例文が英文になります。こうなったフォントはPhotoshopやWordで使えない場合があるようです。
(2004-05-04追記)platformID=1とplatformID=3で同じcmapを共用しているようなフォントを変換すると、間にUnicode cmapが入るため、platformID=1のcmapが不正になる場合があります。Font Validatorが暴走することがあるようですが、それ以外にとりあえず実害はないようなので現時点では放置しています。(2004-05-31追記)v1.07bで修正しました。
(2004-05-04追記)変換したフォントはWindows 2000/XPで開けても、Windows 98では開けない場合があるようです(とくに日本語以外のフォントの場合)。原因は調査中です。v1.07で修正しました。
(2004-04-07追記)簡体字中国語や韓国語のフォントの書体名が、変換後に文字化けしている場合があります。ttfnameなどを使って書体名を適宜付け直すことで対処してください。(2004-04-19追記)v1.05で対応しました。(2004-04-29追記).ttfをダブルクリックしたときに表示される書体名はまだ文字化けしている可能性がありますが、今のところ仕様です。インストールすると正常な書体名で登録されるはずです。(2004-05-04追記)Win9xではフォントをインストールできない上FONTVIEW.EXEで開こうとすると暴走するという致命的な問題が判明したため、v1.07で対応しました。
(2004-04-07追記)TTEditで作成したフォントを変換すると、変換後のフォントもTTEditで開ける場合がありますが、変換後のフォントをTTEditで編集した場合の結果は一切保証しません。たとえば書体名を長くすると異常が起きることが判明しています。TTEditで編集操作が必要な場合は、必ず変換前にすべて行ってください。
(2004-03-31追記)合成文字に対応した新しいUniscribeで、BMP超の漢字が表示されません。DFSongStdは表示されるので、unicmapの変換に問題があると思われます。(2004-04-05追記)v1.04で対応しました。
(2004-03-07追記)Windowsのバージョンによっては、変換後のフォントで縦書きグリフが正常に表示されなくなる場合があります(Win98SEで確認、おそらく2000/XPより古いすべてのバージョンに共通。Windows 2000/XPではこの問題は発生しない)。unicmapは合成文字対応のためGSUBテーブルを変更しているのですが、古いWindowsでは特定の形式のGSUBテーブル以外認識しないのが原因です。(2004-04-29追記)カスタム変換定義ファイルで合成文字をすべて削除することによって対応可能になりました。
Big5/GB2312フォントにUnicodeのcmapを追加するようです。これで変換済みのフォントがLinuxのパッケージになっていたりするようですが、(2005-05-18更新)フォントは公開停止中です。Xでは使えるようになってもWindowsでは相変わらず有効なフォントとして認識されなかったりしたので独自に対応してみました。
内部でグリフを完全に並べ替えていますが、mortやGSUB内のグリフ参照を変更しないので、縦書きが正常に表示されなくなる気がします。BeOSが縦書き未対応で結果的に問題なかったりするのでしょうか。サロゲートや合成には対応していません。