2013年2月12日火曜日

BlocksEditorの文字化けとサヨナラしよう[Windows編 Part2]

このエントリは
BlocksEditorの文字化けとサヨナラしよう[Windows編]
で紹介した方法の手順の2番目、フォント名情報の書き換え手順を別の方法で行う手順を解説します( by FontForge )。












コマンドプロンプトを開かずにはできないのですが、エディタを使わないという点で若干作業ミスのリスクを低減できるのではないかと思います。

また、ttfname3.exeの代替として使えるためフォント情報書き換え手段の選択肢が増えました。

今回はプログラミング用フォントRictyを生成してそれをフォントとして使う方法を事例にしてみました。

また、元のエントリでフォント情報書き換えに関して不十分な点がありましたのでその点についても反映したものになっています。同時に元のブログエントリの修正を次のエントリにて投稿します。

この修正により、ブロックにコメントを付ける際の吹き出し内の豆腐化も直ります。
















◆準備するモノ

UniteTTC
 TTFフォントを1つのTTCファイルにまとめます。TTCをTTFに分割もできます。

・FontForge
 RictyフォントをWindowsで生成する(2012年7月03日版)の解説にある手順でRictyフォントを生成してから以下の手順を実行してみてください(配布されているFontForgeのバージョン、日付は異なる場合がありますが新しいもので大丈夫なハズです)。

※執筆時点ではfontforge-cygwin_2012_08_02.zipでした。 

 Rictyフォントではないものを利用する場合は、Rictyフォント生成をせずにFontForgeの入手をして任意の位置に展開しておくだけで良いと思います。TTCファイルを編集する場合はUniteTTC.exeコマンドで分割してから作業してください。

 いずれにしても、"Arial"と"Arial-Bold"というフォント名情報を持ったフォントを生成するということを忘れずに作業を行なってください。

◆フォント名情報の書き換え手順

1.fontforge.batを実行して編集対象フォントを読み込む






















バッチファイルを実行するとフォントを開くファイル選択ダイアログが出ますので編集対象のファイルを選択してOKボタンをクリックします。すると以下のようなウィンドウが開きます。





















2.メニューの「エレメント」をクリックします。すると以下のようなメニューが表示されます。一番上の「フォント情報」を選択します。






















3.以下のようにフォント情報が表示されますので"Ricty"や"Ricty-Regular"や"Ricty Regular"となっている部分を全て"Arial"に修正します。





















修正後は以下のようになります。




修正内容が確認できたら、OKボタンをクリックします。












このダイアログは「変更」をクリックします。

4.「ファイル」メニューから「フォントを出力」を選択します。





















保存ファイル名は先ほど設定したフォント名情報から自動的に"Arial.ttf"になっていると思いますので「保存」ボタンをクリックします。




以下のようなダイアログが表示されますが「はい」をクリックします。













これでRictyフォントのフォント情報を"Arial"に修正したフォントが生成されます。

5.上記と同様の手順で"Ricty-Bold.ttf"のフォント情報を編集し、"Arial-Bold.ttf"を生成します。

 なお、フォント情報設定画面は以下の通りです。
























6.上記で生成したTTFファイル2つをUniteTTC.exeコマンドで1つのTTCファイルにします。事前にFontForgeのフォルダにUniteTTC.exeコマンドをコピーしておいてください。

コマンドプロンプト上で以下のように実行します(下線部が入力するコマンドです)


C:\fontforge-cygwin_2012_08_02>UniteTTC.exe ArialFont.TTC Arial.ttf Arial-Bold.ttf
UniteTTC Copyright (C) Y.Oz 2010

Arial.ttf:      FFTM(unique)    GDEF(unique)    GPOS(unique)    GSUB(unique)
OS/2(unique)    cmap(unique)    cvt (unique)    gasp(unique)    glyf(unique)
head(unique)    hhea(unique)    hmtx(unique)    loca(unique)    maxp(unique)
name(unique)    post(unique)

Arial-Bold.ttf: FFTM(unique)    GDEF(shared)    GPOS(shared)    GSUB(shared)
OS/2(unique)    cmap(shared)    cvt (shared)    gasp(shared)    glyf(unique)
head(unique)    hhea(unique)    hmtx(unique)    loca(unique)    maxp(unique)
name(unique)    post(shared)

ArialFont.TTC:  Ok.



7.出来上がったArialFont.TTCファイルをjre/ilb/fonts以下に配置します。

以上です。

ttfname3.exeコマンドは入手の手段が限られており代替方法が欲しいところでした。

FontForgeはオープンソースのアウトラインフォントエディタであり、プロジェクトが存続していれば入手手段が豊富にありますので代替方法として適切であると言えます。

ちょうど、EclipseのフォントをRictyフォントにしたことがきっかけになったのですが、FontForgeがこの用途に使えることに気付くことができたのはラッキーでした。

ところで、このようなフォントの問題は果たして日本語だけの問題なのでしょうか。Arialフォントでは表示できない言語では同じように豆腐化しているのではないか、と考えられます。

その場合も基本的には同じ方法で対処ができるのではないかと思いますので同様の問題を抱えている言語のApp Inventorユーザの方々にも適用できるのではないか、と考えています。

もし他の言語のフォントで問題解決したような事例がありましたらお知らせいただけると嬉しいです。


0 件のコメント:

コメントを投稿

おすすめ書籍