« 『アラリエルの旅——あるおとぎ話——』 (Alariel's Journey: A Faerie Tale) の紹介 | トップページ | dkmsの--kernelsourcedirは機能しない »

2015年9月19日 (土)

Pangoのマークアップだけでルビまたは傍点をつけてみようとした結果

Pangoのマークアップだけでルビまたは傍点をつけてみようとした結果

はじめに

結論から言うと、ルビは無理で、傍点は良くない方法ならそれらしく見せられます。

PangoというのはLinuxでよく使われるテキスト描画ライブラリらしいですが、それはHTMLのようなタグで文字種などを変えられます。プログラムを組むともっといろいろできるようですが、やりたかったのは、プログラムを修正せずに食わせるテキストだけ変えてルビを打つことです。具体的にはBattle for Wesnoth (以下Wesnoth)のgettext機構を使って、日本語にルビをうつというものです。以下は具体例で説明します。ちなみにlibpangoのバージョンはよく分かりませんが、多分1.36.8です。

まずWesnothのWMLのマニュアルを見ると[message]と[floating_text]中でpangoのマークアップが使えます。[campaign]のdescriptionとかでも使えるようですが、明記されていません。そしてPangoのマークアップのマニュアルを見ると分かる通り、HTMLのルビ相当のタグはありません。

UnicodeのInterlinear annotation anchorなど

Unicodeにはルビ指定というか行間注釈の制御文字があります。U+FFF9とU+FFFAとU+FFFBです。これで「ルビるび」をふるんだそうです。「ルビるび」と見せたいんだよね。試したら対応してませんでした。規格的には、表示できない場合は注釈部分(U+FFFA〜U+FFFB 「るび」)の表示を省くとなっていますが、それもできていません。(確認した規格はJISX-0221)

ルビは無理です。諦めましょう。

UnicodeのCOMBINING系文字

UnicodeにはCOMBINING系の文字がありまして、前の文字と結合して1文字にするやつです。ヨーロッパ系文字のアクセントとか、ひらがな・カタカナの濁点とかです。例えば「à」と「à」とか、「が」と「が」とかになります。まともなら同じ表示になるはずです。

で、このCOMBINING系の文字って、本当は前の文字と結合して1文字に見えるようにするんですが、フォントとしては左下の原点から左側、つまり前の文字に重なるようにものがある幅0の文字として作られているようです。それでPangoはただ普通に表示しているだけできちんとCombineしていない。

ちなみに下記ではCOMBINING DOT ABOVEを使って試しています。これはCombining Diacritical Marksというカテゴリに含まれる文字で、本来はヨーロッパ系文字のアクセントなどに使われる意図があるようです。でもまあ、規格は意味を規定しないと書いてあるので見た目がそれっぽければ使っていいんじゃないでしょうか。

で、このCOMBINING系文字を使うと傍点みたいに見えるものが打てるはずですが、フォントに依存するようなので将来はどうなるか分からんのでやめた方がよいというのが結論です。

結果を示します。

まずは2行目の「傍点」のそれぞれにCOMBINING DOT ABOVE U+0307をつけた場合。

"傍点のテスト。\n"
"傍̇点̇のテスト。\n"
"傍点のテスト。\n"

重なってよく見えない上にずれています。フォントをそのまま表示しているんですね。規格上は1文字にまとめて綺麗に見えるようになるはずです。

次はU+0307のサイズを大きくした場合。

"傍点のテスト。\n"
"傍<span size='xx-large'>̇</span>点<span size='xx-large'>̇</span>のテスト。\n"
"傍点のテスト。\n"

残念ながらかなり綺麗に出てしまいました。こんなの許されないと思いますが… COMBINING系文字は本来は前の文字と結合して1文字になるはずなんです。分断してサイズを変えるってどうなんだろう?

フォントはCOMBINING DOT ABOVEがおそらくDejaVu Sans (バージョン2.35)で、日本語部分はDroid Sans Japanese (バージョン1.20)です。ちなみにフォントをserifやsans-serifにしてもCOMBINING DOT ABOVEの見え方には大差ありませんでした(日本語のフォントが変わったのは分かりましたが、COMBINING DOT ABOVEの部分のフォントが変わったのか分かりませんでした)。

試した理由

最後に試した理由を書いておきます。

英文はイタリックで強調を示します。決して斜体ではありません。イタリックです。

で、日本語では強調は圏点や傍点、傍線が使われます。決して斜体ではありません。(ググると日本語に斜体はないと信念を述べられている方もいらっしゃいました)

というわけで、それを再現しようとしたんです。下線はいまいちだったので。素直にあきらめるのが一番なようです(が、Wesnothの件はあくまで遊びなので…😁)。

ところで原文は見てないのでただの推測ですが、最近の翻訳小説ではイタリックのパートが長いところには教科書体みたいな微妙に手書き風な奴が使われているみたいです。これはいいですね。フォントが必ずあるなら使いたいところです。、最悪なのはカタカナ(「コノぱーとハ重要ナノデ強調シテ示シマス。」)もありました。数ページもあると泣けますよ。

« 『アラリエルの旅——あるおとぎ話——』 (Alariel's Journey: A Faerie Tale) の紹介 | トップページ | dkmsの--kernelsourcedirは機能しない »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/2064309/61681627

この記事へのトラックバック一覧です: Pangoのマークアップだけでルビまたは傍点をつけてみようとした結果:

« 『アラリエルの旅——あるおとぎ話——』 (Alariel's Journey: A Faerie Tale) の紹介 | トップページ | dkmsの--kernelsourcedirは機能しない »