準備
fontforge
は OpenSolaris のパッケージリポジトリに入っていないようなので、
自分でバイナリを構築します。関係者の方々に感謝!!
http://fontforge.sourceforge.net/ より、
fontforge
のソースコードを入手。
適切な場所に展開し、構成、構築、インストール。(実際にはインストールする前に動作確認をしますが…)
$ bzip2 -d -c fontforge_full-20090923.tar.bz2 | gtar xf - $ cd fontforge-20090923 $ ./configure --prefix=${PATH_TO_DESTDIR} $ gmake $ gmake installOpenSolaris snv_132 ja_JP.UTF-8 環境では入力方式との絡みで落ちるので、 シェルスクリプトをかませて起動するようにします。
LC_CTYPE=C exec PATH_TO_DESTDIR/bin/fontforge "$@"
編集
システム標準の日本語系フォントは/usr/share/fonts/TrueType/ipafont/
にあります。
$ ls /usr/share/fonts/TrueType/ipafont/ fonts.dir ipag.otf ipagp.otf ipam.otf ipamp.otf fonts.scale ipag.ttf ipagp.ttf ipam.ttf ipamp.ttf一般ユーザの権限で
fontforge
を実行し、ゴシックフォントを編集します。
$ fontforge /usr/share/fonts/TrueType/ipafont/ipag.ttf
このウィンドウは自動的に閉じるようです。
警告メッセージのようですが無視します。
このウィンドウで編集したい文字を探し、その文字をダブルクリックします。
このウィンドウで編集するわけですね
レイヤーを操作するのでしょうか。使ったことがありません。
道具箱と呼んでいいのでしょうか。何をするかここで決めます。
編集方法は体で覚えるしかないのですが、微調整は数字を直接入力しました。 道具箱で矢印を選び、エディタ上で点を選択して右クリック。 メニューから「情報を得る…」を選択。
「同じ輪郭上の前の点」「同じ輪郭上の次の点」などを使用して前後の点の位置を確認し、 「基点(B)」の数値二つを編集します。
曲線部分の曲がり具合を微調整するには、「前の制御点」「次の制御点」の数値を変えます。
保存
できあがったフォントを保存する前には、フォントの名前を変更します。 「エレメント」->「フォント情報」で設定します。「名前」では、「フォント名(N)」、「ファミリー名(F)」、「表示用の名前(S)」を変更します。
「TTF名」では、 「日本語」の「ファミリー」、「日本語」の「UniqueID」、「日本語」の「フルネーム」、 「英語(アメリカ)」の「UniqueID」を変更します。
そして「OK」。
「ファイル」->「ファイル名を指定して保存」。
続いて、「ファイル」->「フォントを出力」。
「TrueType」を指定し、「Validate Before Saving」を解除します。 どこかに問題があるようで、検証を行うとフォントを出力できません。
出力したフォントは
${HOME}/.fonts
に置くと、使うことができます。
「システム」->「設定」->「外観の設定」->「フォント」の選択肢に出てくるようになります。
また OpenOffice でも選択できるようになります。
余談
入力方式がらみで落ちたときに生成されるcore
ファイルの情報。
$ pstack core core 'core' of 3979: ./fontforge fe325005 _lwp_kill (1, 6, 8045e0c, fe2cbbde) + 15 fe2cbbea raise (6, febc5bb4, 4000140, c8) + 22 feba9c0e myerrorhandler (83b4090, 8045f44, 20, fe6f159e) + ca fe6f1696 _XError (83b4090, 8046024, 20, fe6d514e) + 106 fe6d5541 _XReply (83b4090, 8046024, 0, 1) + 401 fe6daede XSync (83b4090, 0) + 72 fdd56686 JcxsoS_SendProc (dacdc60) + 3e fdd565f4 JcxsoS_PushMessage (dacdc60, dc81ee0) + 5c fdd5408e SocmnS_SendToAtokAuxd (844b030, dad3d08, 1, 5c, 5, dad4828) + 2f6 fdd52779 SocmnS_Draw (dad3d08, 80461d0, 0, fdea1a11) + 131 fdea1a65 IIimpAuxDraw (8652f80, 8659428, 0, fde9ead1) + 61 fde9f933 IMProcessIncomingEvent (8652f80, 86590c8, 4000140, 0) + e73 fde9fb5d IMChangeFocus (8652f80, 0, df6f898, fde93f30) + a1 fde93f5b _Ximp_Local_UnSetFocus (8652f80, fde91fe4, fde920d4, fded0b10) + 37 fde95ad0 SWITCH_DestroyIC (8652f80, 4000140, fdeb0888, 8652f80) + 5c fdeb1262 DestroyIC (8652f80, dcafb10, dcafb10, fe70fada) + 52 fe70faf1 XDestroyIC (8652f80, febd91f8, 8046718, febb2253, 4, 8046690) + 21 febb22a7 dispatchEvent (83b4090, 8046740, 80467b8, febb2f9f) + c87 febb2fb4 GXDrawEventLoop (8440520, 1, 0, feb5f935) + 4c feb5f968 GDrawEventLoop (0, 0, 0, 9, 0, feffb2e0) + 40 0819cfe9 main (1, 80478bc, 80478c4, 81b0ec0, 0, 0) + c91 0807eb7f _start (1, 80479ec, 0, 8047a04, 8047a33, 8047a61) + 83
余談その弐
最初、fontforge
を試したときにうまく動かなかったので、
Windows 7 と Ubuntu も試してみました。
当然、Windows 7 は OpenSolaris 上の VirturlBox で動かします。 Windows 7 の標準のフォントエディタを起動してみると、 残念、ビットマップフォントしか編集できないみたい? ちょっと弄って見ましたが、早々に諦め。
続いて Ubuntu。こちらも OpenSolaris 上の VirturlBox で動かします。 標準では
fontforge
は入っていないのですが、
apt-get
でさくっとインストールできました。
感謝感謝。
OpenSolaris で使用しているフォントと同系統のものもあります。
$ ls /usr/share/fonts/truetype/ttf-ipamonafont ipag-mona.ttf ipagp-mona.ttf ipagui-mona.ttf ipam-mona.ttf ipamp-mona.ttfフォントの字形の編集は(試行錯誤しつつも)問題なく終了。 OpenSolaris 上に持って行き、
${HOME}/.fonts
に置いて、
OpenOffice.org から参照でき、印刷できることも確認。
すべてがうまくいっていると思っていました。
ところが、ふと見ると、デスクトップのパネルのフォントがみすぼらしいことに気づきました。 よくわからないままいろいろなものを見ていると、
gnome-terminal
のフォントも変ですし、
FireFox も変です。
試しに字形を変更した文字を表示させてみると、変更されていました。 OpenOffice.org 内だけで有効だと思っていたのですが、 なぜかデスクトップ全体に有効になっていたようです。 「システム」->「設定」->「外観の設定」->「フォント」では設定を変更していないのになぜ…
仕方がないので、OpenOffice.org で使う作業が終わった後、
${HOME}/.fonts
を別の名前に変更してログインし直し。
とりあえずの問題は解決しましたが、なぜこうなったのかは今も謎です。
ちなみに、今は OpenSolaris のフォントを編集し、
${HOME}/.fonts
に起きっぱなしにしています。
元々同じフォントなので、パネルとかに使われても見た目には問題ありません。
ただ、時々編集した文字を表示させて確認していますが、
今のところその文字は編集されていない標準的な字形で表示されています。
0 件のコメント:
コメントを投稿