日本語練習虫

旧はてなダイアリー「日本語練習中」〈http://d.hatena.ne.jp/uakira/〉のデータを引き継ぎ、書き足しています。

ePUB用外字フォント作成記SVG篇

以下、id:works014 さんの「ePUBの外字/iBooksでの表示_SVGフォント」におけるSVGフォント作成部分のサイドストーリー。
……
さて、@works014 さんのtweetば拝見してSVGフォントの作成を申し出た際、己はSVGフォントのことを軽く考へてゐた。
SVG 1.1仕様は現在第二版への改訂作業が進行してゐるんだども、安定版である2003年のW3C勧告ば参照しておくと、個々の具体字形はglyph要素のd属性として記すか、またはglyph要素の子要素であるSVGとして記述できる。
外字データを何らかのアウトラインパスデータとして受け取ればSVGパスデータにしてglyph要素の子要素にしちゃえばいいし、ラスタ画像であってもSVG中のラスタ画像といふ扱ひにしてしまへばglyph要素の子要素にできるだらう。さう考へてゐた己。
……
@works014 さんからSVGフォーマットのアウトラインパスデータばお送り頂いくことになった時点で、SVGフォント作成は楽勝だと予想した。
ところが、glyph要素の子要素としてSVGのパスデータを記述する方法では、SafariSVGフォントデータをレンダリングしてくれない。
生のSVGデータを読ませるとSVG画像として表示するにも関らずである。
以前、筆順再生可能なSVG教科書体フォントのアイディアを記した頃からSVGフォント仕様さ人並みの関心を持ってゐたつもりなんだども、Webクライアントの現時点の実装がどうなってゐるか、実はきちんと確認したことが無かった己。
あせる。
イラレで書き出したSVGのアウトラインパスデータは、SVGフォント仕様が要求するglyph要素のd属性値としての座標記述とは空白区切りの扱ひなど細部が微妙に異なってゐる。テキストエディタでアナログに編集するのは手間がかかりすぎる上に予想外のミスを生む可能性が高い。
やむを得ず使ひ馴れたTTEditにコピペして欧文シンボルフォントば作成し、Font2Webの変換サービスば利用してSVGフォントデータを取得することに。
後は取得したSVGフォントデータばテキストエディタで開き、グリフデータが存在しない箇所のデータを削除したり、Unicode値ば編集して「頒」の文字符号で“分が八屋根の頒”のグリフが読み出されるようにしたりといった作業を経て完成とする。
ちなみに、このUnicode値には文字列を指定することもできる。
そこである種のフォールバックとして「イタリック体のrに下つきi」といふ文字符号列がさういふ姿の一つの外字グリフに置き換るような設定も試みた。
Safariで表示させた結果、確かに当該グリフは表示されるんだどもその直後に余計な空白が出現してしまふと判り、残念ながらこの「代替文字列合字式外字」は却下。
とまぁさういふ訳で、SVGフォントデータを埋め込んだXHTMLファイルを作成する段階で、実はTrueTypeのシンボルフォントも出来上がってゐたのだった。
……
なほ、イラレで書き出したSVGアウトラインをSVGフォント仕様で使へる書き方に変換する、現在一番手軽で確実な方法は、InkscapeSVGフォント書き出し機能ば使ふ方法だらう。少なくとも一つ一つのグリフを書き出すことはできるので、生成されたファイルからglyph要素の部分を抜き出して活用すればよい。