ttf→otf変換時の「〜」消滅回避

COWON S9には、表示フォントを自由に変更することができる「ユーザフォント」という機能があります。但し、ユーザフォントに使用できるフォントはTrueType(TTF)に限られているため、OpenType(OTF)フォントはTTFに変換しないと使うことができません。
フォント形式の変換はFontForgeを使ってさっくりできるのですが、

※otf→ttf変換は
 http://www.geocities.jp/meir000/fontforge/
 にあるunofficial fontforge-mingwを使えばotf→ttf変換が可能
 手持ちのフォントを試してみたらkugimmyはうまくいったがヒラギノだと
 「〜」のフォントが表示されないのでフォント厨隔離スレのkugimmy等推奨
 FontForgeはCID→単一化選択してからフォントをttfで出力で完了(単一化が灰色で選択できなかったらそのまま出力)

COWON S9 @wiki - フォント変更について

とありまして、変換後のttfでは全角チルダ(波ダッシュ?にょろ?)が表示できなくなってしまうという問題が発生するのです。
この問題を解決するには、ちょっとしたデータの書き換えが必要になります。

170 名前: 名無しさん@お腹いっぱい。 投稿日:2005/06/18(土) 23:08:25 id:K6VJdyyA0

Unicode には、似たような文字が複数の場所に定義されている
文字があって、シフトJISからの変換表がOSごとに違っているので、
例えば同じ「〜」を表示するときでも、フォント内の違う場所を
探しにいきます。

「表示(V)→移動(G)」を呼び出して「U+FF5E」と入力してみてください。
きっと移動先の文字が空っぽになっていると思います。Windows用の
フォントを開いてみると、ここに「〜」が入っているはずです。
次に「U+301C」に移動すると、「〜」があるかもしれません。
コピーして、FF0Eに貼りつけてください。

(google cache) フォント作成 - ソフトウェア hozen.org

これで、にょろっとしたアイツも完璧に表示できるTTFが完成します。他にも表示できない文字があれば、同様にコードを探してコピペ、で対処可能なはずです。

フォントをいじくり回すことに関する法的あれこれ

ところで、このようにフォントを改変する行為や形式を変換する行為って法的に大丈夫なの?と心配になる方も多いかと思います。結論から言えば、このページで紹介している操作そのものに関しては、合法であることが保証されているようです。
フォントデータの書き換えの法的問題 : TTC/OTFからTTFへの変換 - faireal.net

公正取引委員会の見解をまとめると、

* 互換性のために行うリバースエンジニアリングは、 仮に著作権法に関連する場合でも(フォントの場合はしないが)、 著作権法ではなく、独占禁止法によって律せられる。
* このようなリバースエンジニアリングを禁止することは、 公正な競争が阻害される場合には違法となる(つまり禁止条項は無効で、ユーザーは拘束されない)。

例えば、仮にMicrosoft製のTTCフォントがWindowsでしか動作しないとして(実際はそんなことはないが)、 TTCフォントをBeOSでも使える互換性のあるフォーマットに変換することを禁止することは、 使えるソフトウェアを無意味に制限して、OSの間の公正な競争を阻害する形になる。 そのような場合のリバースエンジニアリングや、それに基づく互換性製品の開発は、禁止できない。

フォントデータの書き換えの法的問題

フォントが著作物にならないことは、 最高裁でも確定しているので、その点は安心して良いが、 逆に、著作物性が否定されたからといって何をやってもいいわけではなく、 EULAには民法上の契約の効力がある。まとめると、最初に書いたように、

* フォントファイルを改変しても著作権の侵害にはならないが、
* EULAで禁止されている場合は、契約違反になる。
* ただし互換性のためのリバースエンジニアリングEULAで禁止できない(EULAが無効)。

フォントデータの書き換えの法的問題

あなたがいま変換しようとしているフォントが正規の手段で入手したものであり、有効なEULAにおいて特に禁止されていない限りにおいて、互換性確保のためバイナリを修正する行為は全て合法性が保証されます。(たぶん。)

捕捉:FontForge作業手順

  1. CID>単一化
  2. エンコーディングエンコーディング変換>ISO 10646-1 (Unicode, Full) ←フォントによっては必要かも
  3. 表示>移動>「U+301C」>右クリック>コピー
  4. 表示>移動>「U+FF5E」>右クリック>貼り付け
  5. ファイル>フォントを出力>以下略