Pango の pango-view(1) で OTF font features を使う試み。

$ pango-view --output 出力ファイル --font 'フォント' --text "..."

これで Pango でのレンダリング結果が保存される。 (画面表示もされる。)

$ pango-view --output jis8903_render001.svg --font '機械彫刻用標準書体 24' --text '機械彫刻用標準書体'
$ pango-view --output jis8903_render002.svg --font '機械彫刻用 標準書体 24' --text 'きけんです。'
'機械彫刻用標準書体'
'きけんです。'

出力ファイルは、png といったラスター画像の他、 svg、pdf、ps といったベクタ画像でも出力可能。 よって、Adobe Illustrator や inkscape などに取り込んで 使うことも出来そう。

ところで --markup オプションを使うことで、 所謂 Pango Markup が使える。

$ pango-view --output jis8903_render003.svg --font '機械彫刻用標準書体 24' --markup --text '<span color="#ff0000">きけん</span>です。'
--markup --text '<span color="#ff0000">きけん</span>です。'

OTF には font feature があってタイポグラフィのオプション機能を持っている (ただし、フォントファイル自体が対応している場合に限る)。 これは Pango Markup の font_features <span> attributes の指定で実現できる。 書式は CSS3 と同様であるとあるが、CSS3 の当該規格が途中で変わっているとかいう 歴史的事情があるので若干異なるところがあるかもしれない(詳細未調査)。

機械彫刻用標準書体フォントは、いくつかのスタイルセットが用意されている。 スタイルセット06 ("ss06" on) で 変体かな 「き(支)」および「す(春)」を表示してみる。

$ pango-view --output jis8903_render004.svg --font '機械彫刻用標準書体 24' --markup --text '<span font_features="&quot;ss06&quot; on">きけんです。</span>'
'<span font_features="&quot;ss06&quot; on">きけんです。</span>'

その他文字の間隔を弄る font feature もあるがこれも、 Pango は正しくレンダリングしている模様。すごい。

$ pango-view --output jis8903_render005.svg --font '機械彫刻用標準書体 24' --markup --text 'です。<span font_features="ss11 on">です。</span><span font_features="ss12 on">です。</span>'
'です。<span font_features="ss11 on">です。</span><span font_features="ss12 on">です。</span>'
機械彫刻用標準書体のスタイルセット11,12
スタイルセット内容収録字種
11JIS どおりの濁点・半濁点(仮想ボディ正方形)濁音・半濁音の仮名
12JIS どおりの濁点・半濁点(仮想ボディ拡大)

参考文献