Feed on
Posts
Comments

1 年 1 ヶ月ぶりの更新です。ブログの更新はすっかり手つかずになってしまいましたが、さわらびゴシックのほうは、順調に(?)月 1 回のペースで更新してまいりました。本日も夕方ごろに無事リリースすることができました。

すでにお伝えしたとおり、さわらびゴシックは、すでに教育漢字をすべて収録しています。教育漢字の完了後、しばらくは、とりあえず第一水準漢字をメインにグリフの作成をしていたのですが、最近は常用漢字を優先するようになってきました。もっとも、全然関係ない第二水準漢字などもけっこう増やしていたりするのですが。

で、現状の進捗がどうなっているのか、少し数値を出してみました。まず常用漢字です。常用漢字 2,136 文字中、作成済みが 2,079 文字(残りが 57 文字)。97.33% 完了していることになります。もう一息ですね。

次に第一水準漢字。これは 2,965 文字中 2,576 文字作成済みですので、86.88% です。こちらもなかなか悪くない数値ですね。しかし、第二水準のほうは優先度が落ちていますので、あまりよい数値ではありません。3,390 文字中 570 文字ですので、まだ 16.81% というところです。

3月11日に大災害が起きてしまいました。私は首都圏在住の者で、単に帰宅困難者になったくらいでしたが、ニュース映像を見て大きなショックを受け、現実感を喪失して半ばボーッとし、そのままでいるとだんだん泣けてきてしまうという、少しあやうい数日を過ごしました。自分は弱いのだなということに改めて気づき、ならば実際に被災された方々は果たしていかばかりだろうかと考えました。ましてや身内を亡くされた方々のことを想像すると、言葉にもできません。

しかし、無力な私にできることはほとんど何もなく、ただ我が身の日常を支えるのに精一杯という情けなさです。考えが悪い方向に落ちてしまうのを止められたのは、とにかく考えるのをやめて、音楽を聞き、単純作業に没頭することでした。私は自分のことばかりです。

そんなわけなので、実はどうしようかとも考えたのですが、作業がひと区切りのところまで済んだので、リリースすることにしました。漢字の増量はいつもどおり 50 です。

さわらびフォントは、ゴシックばかりを更新していて、明朝のほうはほとんど手つかずという感じになっていますが、前回電子書籍を少し意識したということもあり、明朝のほうにも手をつけてみました。といっても、漢字グリフの増強よりも、まずひらがな、カタカナのデザインの見直しから入ることにしました。

まだデザインの調整に入ったばかりで、位置調整やそれぞれグリフのサイズ調整などは十分ではありません。しかし、一応それなりに整ってきたと判断して、この状態でいったんリリースということにしてみました。あたらしいかな文字は、下図のような感じになっています。とくにカタカナの印象は大幅に変わったかもしれません。

さわらび明朝(20110220)かなもじサンプル

さわらび明朝(20110220)かなもじサンプル

以前のかなもじは、ゴシック体のデザインをもとに、そこに明朝体かなもじ風の装飾をほどこしていましたので、横棒などはほぼ水平、縦もほぼ垂直という感じでした。しかし明朝体のかなもじは楷書体風のデザインですので、もっと実際の筆記文字に近いデザインにしたほうがそれらしくなります。今回はそれを意識してデザインを変更してみました。いかがでしょうか。

それから今回は、欧文文字のほうも「ラテン1補助」と「ラテン文字拡張A」を中心にグリフを増やしました。ドイツ語やスペイン語などに必要なグリフも揃ったかな、と思います。

どうぞ、よろしければお試しください。

さわらびゴシックをまた例によって更新しました。今回は漢字グリフの増量が 55 と、5 文字分だけいつもより多いです。リリースノートの書き方を若干変え、追加したグリフを、漢字グリフに限らず、記載することにしました。ただし、全リストのほうは相変わらず漢字グリフだけです。もっとも、こちらのほうのリストは、数が少ないうちは意味がありましたが、そろそろ必要なくなってきたかもしれません。

世間では電子書籍の話題が出て久しいということもあり、今回の更新に際して、一応さわらびゴシックでも、縦書きについてもっと意識してみようか、などと考えました。もっとも元来がゴシックですし、漢字グリフも足りていないですし、デザインもまだまだ難があるなというところで、書籍向けとは全く言えないわけですが、それでも一応縦組み表示をシミュレートする Python スクリプトなど書いてみて、いくつかの例文を表示させつつ、グリフの微調整を試みてみました。以前よりはバランスがよくなったかとおもいます。

もっとも、縦書きは Linux 環境(OpenOffice.org の Writer)ならうまくいくようですが、その他の環境ではうまくいかないようですね。要調査です。

いつも書いている、漢字グリフの進捗も書き記しておきます。第一水準漢字は約 69 %(2965 文字中 2047 文字)、第二は 11 %(3390 文字中 377 文字)となっています。

よろしければ、どうぞお試しください。

教育漢字を漸く完了

2011 年も明けて最初の 15 日が参りました。このところ毎月 15 日にさわらびゴシックを更新してきましたので、例にならって今月も本日更新をいたしました。いつもどおり漢字グリフの増量は 50 です。

今回の版で、漸く教育漢字がすべて完了いたしました。教育漢字を優先的に進めたり進めなかったりという作業進行だったので、遠回りの感もありますが、漸く一段落という感じです。

さて、一応今後も第一水準漢字をすべて埋めるくらいまでは作業を進めたい考えですので、更新は続けようと考えています。できれば、やはり月 1 回のペースは最低でも守りたいところです。リズムを崩すと、おそらく停止してしまうでしょうから……。

私が係わりだした頃から比べると、フリーフォントの状況は格段によくなっていると思いますので、さわらびフォントの存在意義は、あまり大きいものではないかもしれませんが、よろしければ今後ともご愛顧お願い申し上げます。

今月も、どうにかこうにかという感じですが、さわらびゴシックを更新できました。いつもどおり漢字グリフの増量は 50 です。

教育漢字はこれですべて完了かと思いきや、実はあと 18 文字分残っています。残念……。作業を急ぐ分、どうしても目に付いたグリフから作業してしまう傾向になってしまいました。

第一水準漢字はこれで約 65.6%(2965字中1946字)をカバー、第二水準は約 11%(3390字中374字)で(パーセンテージは)前回と(ほぼ)変わらず、という感じです。

グリフ実装の進捗はあまり芳しくありませんが、今回は TTF ファイルだけでなく、OTF も公開してみました。試しに、という感じではあるのですが、どうでしょうか。

さわらびゴシックの更新が、月2回にしたいと思いながらも、完全に月1回ペースになってきてしまっていますが、とにもかくにも新しいバージョンを公開できました。今回も漢字グリフを50個追加しています。

数ヶ月前までは教育漢字を早めに埋めてしまおうという考えで作業を進めていたのですが、このところ方針を変えていました。そのため、いまだに教育漢字でも欠けているグリフがあります。38個。教育漢字は全部で1006文字ですから、約3.8%がまだ埋まっていないというわけです。残りわずかですし、これはさすがに早めにどうにかしたいと思っています。

なかなか教育漢字がコンプリートしないということは、つまり最近の作業は教育漢字外で進んでいたわけです。では、第一水準漢字という観点で見たら作業はどのくらい進んでいるのでしょうか。調べてみると、埋まっている割合は約64%でした。詳しく言うと、第一水準漢字2965文字中1901文字のグリフがすでに完了という内訳です。ちなみに第二水準漢字だと約11%(3390文字中370文字)です。そして、この第二水準までの全漢字を埋めることを考えると、現在の進捗は約35.7%ということになっています(2965+3390=6355文字中、1901+370=2271文字)。

……35%というのは、あまり高い数字じゃありませんね。こうやって達成率の数字を見てみると、もう少しペースを上げないとだな、と改めて思えてくるわけです。(できるだけ)がんばります。

前回は、FontForge に読む込むためのファイル形式の話と、実際に読む込むための操作手順について書きました。

しかしグリフの数というものは、もとより 1 つや 2 つで済むものではありません。日本語フォントともなれば、ずいぶん多くのグリフを扱わねばならず、それをいちいちマウスで手順どおりやるとなると、FontForge に読み込むだけでも手間になります。

このような大量の定型処理に便利なのが、プログラムによる自動処理です。FontForge には、スクリプトで操作できるようなインターフェイスが用意されていますから、もしこれを使ったらどうなるか、というのを今回書いてみたいとおもいます。

FontForge のスクリプトは、C 言語とシェルスクリプトの中間みたいな独自言語と、Python が用意されているようです。私は個人的に Python が多少使えますので、Python でやってみましょう。

まず、既存のフォントファイルもしくは FontForge の sfd ファイルを Python で開く方法です。これは、次のように書きます。

import fontforge
f = fontforge.open('フォントあるいは sfd ファイルのパス')

これで OK です。このように読み込めば、各グリフ(のスロット)には、

g = f[グリフのコード番号]

でアクセスできます。アクセスしたグリフに SVG ファイルを読み込む(インポートする)には、

g.importOutlines('SVG ファイルのパス')

という具合にすればよいのです。最後に保存するには、

f.save('保存先のパス')

で、sfd ファイルとして保存ができます。やり方がわかってしまえば、とても簡単そうですね?

具体的なスクリプトを考えてみましょう。たとえば、グリフをデザインした SVG ファイルを、uniXXXX.svg という形式のファイル名で、ひとつのフォルダにまとめて保存していたとします(XXXX の部分はグリフの16 進数表記のコード番号です)。この場合、次のようなスクリプトを書けば、すべて自動でグリフを読み込ませることができることになるでしょう(試してみたかぎりでは、たぶんこれで大丈夫…)。

#!/usr/bin/env python

import fontforge
import os

font_path = '読み込みたいフォントファイルあるいは sfd ファイルのパス'
output_path = '保存先にしたい sfd ファイルのパス'
svg_dir_path = 'SVG ファイルを格納しているディレクトリのパス'

font = fontforge.open(font_path)

files = os.listdir(svg_dir_path)
for n in files:
  if n.endswith('.svg'):
    cd = int(n[3:-4], 16)
    if not (cd in font):
      font.createChar(cd)
    else:
      font[cd].clear()
    font[cd].importOutlines('%s/%s' %(svg_dir_path, n))

font.save(output_path)

なお、FontForge の Python インターフェイスについては、こちらのサイトに資料が用意されていますので、参照してみてください。それから、もっといい便利なスクリプトが書けるよ、などの情報がありましたら、ぜひお知らせくださったら嬉しいです。

FontForge にはベクタデータを編集する機能がひととおり揃っていますが、「自分は Adobe Illustrator や Inkscape を使い慣れているからグリフデザインはそちらでやりたい」という人も多いでしょう。実際、Illustrator でグリフを起こしているというフォント作成者も多いだろうとおもいます。

Illustrator で作成したベクタ画像を FontForge に読み込むのは、別段難しいことではありません。とはいっても、さすがに拡張子 AI のファイルそのままを、FontForge が読み込んでくれるわけではありません。多少は気を遣う必要があるのです。ま、内容としてはごく簡単な話なのですが、今回はそれについて書きます。

まず、既存の画像ファイルを FontForge のスロット(グリフを格納するセル)に読み込む方法を簡単に見ておきましょう。まず、スロットをひとつ選択します。そして、メニューの [ファイル] – [取り込み…] を選択します。すると、[Import] というファイル読み込み用のダイアログが出てきます。ここで画像ファイルを選んで [取り込み] ボタンを押せばよいのです。

FontForge が読み込める画像は、フォーマットが決まっています。どんなフォーマットがサポートされているかは、さきほどの [Import] ダイアログの [フォーマット] 欄を見るとわかります。ラスタのフォーマットも用意されていますが、今回対象にしたいのはベクタですのでラスタは無視することにします。このうち、Illustrator がサポートしているベクタフォーマットとマッチしているのは、EPS と SVG です。

Illustrator ユーザにしてみれば、EPS のほうが馴染みが深いでしょうし、SVG より便利そうですから、こちらを選択したいところかもしれません。しかし、私が試した限りでは、Illustrator の EPS は FontForge でうまく読み込めないようなのです。一方、SVG のほうは読み込めました(SVG 1.0 で試しました)。ですので、Illustrator で作成する場合、SVG で保存するのがよいようです。

Inkscape の場合、デフォルトの保存フォーマットが SVG です。この場合、そのまま保存すれば大丈夫です。

ということで、まず今回は、画像のフォーマットについてのお話でした。

月2回のような、そうでもないようなペースで更新しているさわらびゴシックですが、約ひと月ぶりに更新しました。まぁ本人は月2回でやっていこうと思っていたりはするのですが、いい加減なのでそうもいかないのです。

残りの教育漢字の数は68です。

今回は縦書き用のグリフも少し追加したのですが、うまく機能しているのかしてないのか。どうも、機能しない環境もあるようです。そもそも縦書きがどうやって実現されているのか、あまりよく分かっていないんですよ。(昔の?)Windows なんかだと、なんでも「@」がアタマに付いたフォントファイルが縦書き用、とかいうウワサを聞いた記憶がありますが、Linux 向け界隈のフリーフォントで同じことをやっている人もいないみたいなので、どうなんでしょうね。

よく分かってないのですが、私は FontForge を使って、だいたい次のような感じの操作で縦書きグリフを設定しました。

[1] スロットの追加 まず、縦書き用グリフを格納するために「スロット」というのを適当に用意します。スロットって何?と思った人も、実際にやってみればわかると思います。操作は「エンコーディング」メニューから「エンコーディングスロットを追加」。追加するスロットの数を指定すると、指定した数だけ「スロット」が末尾に増えます。(増えたでしょ?)ちなみに、追加したスロットを削除したい場合は「エンコーディング」メニューから「未使用のスロットを削除」を選べば OK。

[2] グリフ名の変更 追加されたスロットには、適当なグリフ名がついています。グリフ名を確認するには、スロットを選択して、「エレメント」メニューから「グリフ情報」(Glyph Info)を選択。グリフ情報のパネルが現れますから、左側のメニューから一番上の「Unicode」を選択し、右側の「グリフ名」の欄を確認します。

この欄に直接入力してグリフ名を変更します。グリフ名の命名の仕方自体に特別な意味があるのかないのかよくわかりませんが、一般的に(ということなのか?)横書き用のグリフ名に「.vert」を追加したのが縦書き用のグリフ名です。たとえば、小書きの「あ」(つまり「ぁ」)の場合、横書き用グリフの名前が「uni3041」でしょうから、縦書き用は「uni3041.vert」となります。

[3] グリフの作成 スロットの準備ができたので、グリフを作成します。小書きの「あ」のように、グリフの位置を移動させるだけの場合、「参照」を使うと便利かもしれません。横書き用のスロットを開いて全体を選択して「編集」メニューから「参照をコピー」。縦書き用のスロットにペーストして、貼り付いたイメージを移動させます。ただし、パスには正しい方向というのがあります。正しい方向と言っているのは、基本的にパスは時計回りに描かれなければいけないというルールのことを言っています。このルールがあるので、ペーストした参照を回転させるなどの操作を加えた場合、パスの方向が正しいかどうか気をつけなければいけません。

[4] グリフ置換スクリプトの追加 OpenType フォントには、GSUB テーブルというのがあります。GSUB というのは「グリフ置換(Glyph SUBstitution)」のことで、その名のとおりグリフの置き換えをしてくれるというものです。

GSUB のスクリプトには、いくつか種類があるので、まず使うスクリプトを登録(?)します。「エレメント」メニューから「フォント情報」を選択し、フォント情報のパネルを表示させます。左側のメニューから「lookups」を選択し、GSUB のタブを選択します。そして、右側のボタンから「Add Lookup」ボタンを押します。すると、Lookup を設定するダイアログが出てきます。

今回追加する置換は「単純置換(Single Substitution)」なので、「種類」のコンボボックスは「Single Substitution」を選択します。で、その下にある表は、「機能」欄の「<New>」をクリックして「縦書き字形【廃止】」を選択します(vert ってヤツです)。っていうか、「廃止」って書いてあるけど、ホントにこれでいいんですか? よくわかりませんが、みんなそうしているみたいなので、とりあえず右に倣えということで……。

なお、この GSUB スクリプトの追加は、フォント自体に行う操作なので、一度やれば OK です。

[5] グリフ置換を設定 具体的なグリフを指定して、グリフの置換設定を行います。横書き用のグリフのスロットを選択し、「エレメント」メニューから「グリフ情報」(Glyph Info)を選択し、現れたグリフ情報パネルの左側のメニューから「置換」(Substitution)を選択します。右側のテーブルの「<新しい置換>」をクリックして、「’vert’ 縦書き字形【廃止】…」を選び(初回はダイアログが出てくるのでOKする)、右隣のセル(「Replacement Glyph Name」の欄)に縦書き用のグリフ名を指定します。

……というような要領で、必要なだけグリフを作って置換設定すれば、それで完了……なんじゃないかと思うんですが、違っているかも。何かご存知の方、いらっしゃいましたら、情報ください。

ちなみに、GSUB テーブルは OpenType の機能なので、出力するフォントは TrueType ではダメなんじゃないかと思います。拡張子を ttf にするにせよ、OpenType の仕様でフォントを出力することになるのではないか、と思います。OpenType の仕様で出力するには、「ファイル」メニューから「フォントを出力」を選択した際に出てくるダイアログで、「オプション」ボタンをクリックします。そこに「OpenType の仕様」というのがあるので、それにチェックを加えます。

« Newer Posts