2013年3月23日土曜日

発音記号のʌやʊにアクセントを付ける

たまに英語をちょっとだけ勉強して止めて、ってのを繰り返してます。 今は気が向いてちょっと勉強をするフェーズです。

で、発音記号について調べてたらテキストエディタでアクセント付きのʌやʊが表示できないのに気付きました。 osはwindows7、テキストエディタはサクラエディタです。

ちょっと調べたところ、「άéí」など1つの文字コードにアクセント記号を含んだ文字が用意されているものとʌ́やʊ́のように合成用のアクセントを後ろに付けなければならないものがあることが分かりました。

  • άéíなど : 1つの文字コード。日本語でいうところの「ぶ」などの濁音と同じ。
  • ʌ́ʊ́など : 2つの文字を順に書くと合成されて1文字になる。日本語のhtmlで「ぶ」と書くと「ぶ」と表示されるのと同じ。

そして、フォントやエディタ/ビューアの組み合わせによって合成表示できる場合とできない場合があるようです。 どのような(フォント-エディタ/ビューア)の組み合わせで合成表示ができるか調べてみました。

とりあえず、合成用アクセント記号の文字コードはコレ。

名称 文字 文字コード
アキュート・アクセント  ́  ́
グレイヴ・アクセント  ̀  ̀
サーカムフレックス  ̂  ̂

文字コードはhtml用です。 別のエディタで使う場合はブラウザからコピー&ペーストするか辞書に登録で。

まずはブラウザの表示で確認。 次のようなhtmlのテーブルを表示します。

font-family 等幅 サンプル文字
sans-serif ǽʌ́ɑ́ʊ́ / ʌɚaæɑάuʊíiɪθðʤṭː
serif ǽʌ́ɑ́ʊ́ / ʌɚaæɑάuʊíiɪθðʤṭː
cursive ǽʌ́ɑ́ʊ́ / ʌɚaæɑάuʊíiɪθðʤṭː
fantasy ǽʌ́ɑ́ʊ́ / ʌɚaæɑάuʊíiɪθðʤṭː
monospace ǽʌ́ɑ́ʊ́ / ʌɚaæɑάuʊíiɪθðʤṭː
MS ゴシック ǽʌ́ɑ́ʊ́ / ʌɚaæɑάuʊíiɪθðʤṭː
MS 明朝 ǽʌ́ɑ́ʊ́ / ʌɚaæɑάuʊíiɪθðʤṭː
Arial ǽʌ́ɑ́ʊ́ / ʌɚaæɑάuʊíiɪθðʤṭː
Courier New ǽʌ́ɑ́ʊ́ / ʌɚaæɑάuʊíiɪθðʤṭː
メイリオ ǽʌ́ɑ́ʊ́ / ʌɚaæɑάuʊíiɪθðʤṭː
Cambria ǽʌ́ɑ́ʊ́ / ʌɚaæɑάuʊíiɪθðʤṭː
Consolas ǽʌ́ɑ́ʊ́ / ʌɚaæɑάuʊíiɪθðʤṭː

サンプル文字は前半が発音記号とアクセント記号の2つの文字コードの組み合わせです。 後半は発音記号を扱うときに一緒に表示することになるであろう文字を適当にピックアップしました。 1文字につき1つの文字コードで構成されています。 サンプル文字全部が混ざっても自然に表示されるのが理想です。

英字の等幅フォントに△が付いているのは、日本語と英字を混ぜたとき日本語の部分がプロポーショナルフォントになってしまうためです。 これはwindows7の多くの英文フォントのデフォルト設定です。 英字も日本語も等幅の見やすいフォントというのは、少なくともwindows7にはプリインストールされていません。 そういうのが欲しければフリーフォントを探す必要があります。 (レジストリでFontLinkを設定すれば英字フォント使用時に日本語が出てきた時の表示フォントを変更できるらしいですが、面倒だしそれなりのリスクがあるのでここでは取り上げません。)

font-familyのsans-serifからmonospaceはどの環境のブラウザでも指定できるcss用のフォント指定(総称ファミリ)です。 「MS ゴシック」から下は環境依存です。 windows7でのみ確認。 その中でも、メイリオから下はwindows vista以降に付属しているフォントです。 フォントの選出基準は「適当、目に付いたもの」です。 全部見るのは面倒すぎるので。

私の環境で実際に表示した結果をキャプチャーしたら次のようになりました。

ブラウザ キャプチャ画像
firefox 19
ie 10
opera 12
google chrome 25

いつも通りと言えばいつも通りですが、serifなどの総称ファミリであってもブラウザごとに表示が違いますね。 自分のwebサイトで発音記号を扱う人は要注意です。 ブラウザのデフォルトフォントでʊとアクセントを合成できるのは限られた環境だけになります。 なるべく多くの環境で見た目が同じになるようにするには、専用フォントを用意するとか、画像で発音記号を表示するとかの方法を取ることになります。 そうでなければ全部の環境での合成を諦めて、表示が崩れる環境を許容することになるでしょう。

monospaceやCourier Newの表示でアクセント記号がずれている場合があることにも注意です。 前の文字に付くはずの合成用のアクセント記号が後ろの文字に付いてしまっています。 webサイトで環境依存のCourier Newを使うことはないでしょうけど、ieとmonospaceの組み合わせは普通にありえます。 こういう表示が他にないとは限らないので、発音記号を扱うときは不用意にフォントを変えないようにしましょう。

で、余計な物も発見。 chromeでcursiveとfantasyを指定した場合、単語にフォントを指定するのと文章にフォントを指定するので表示が違う?

...ネタ違いなのでこれについては見てみぬふりをしましょう。

windowsのフォントを見ると、「MS ゴシック」と「MS 明朝」は合成されてないしバランスはガタガタで見づらいですね。 どうでもいいことですが、全角文字のθの存在感もなかなかです。 それに対してArialは昔からあるフォントなのにしっかり合成されています。 文字のバランスもいいです。 Courier Newは文字のバランスはいいけど上に書いたように問題ありです。 残念。

vista以降で使える日本語フォント「メイリオ」もɑとʊが合成されてませんね。 文字のバランスはいいのでちょっと残念。 vista以降の英字フォントのCambriaとConsolasはちゃんと合成されていて、文字のバランスもよく素晴らしいです。 これがブラウザ以外でも使えればいいんですが...

次はテキストエディタでの表示を確認しましょう。 サクラエディタで使用できるフォントは5つだけでした。 これはwindows7の仕様で、あまり使わないフォントは標準のフォント選択ダイアログに表示しないようになっているからだとか。 非表示のフォントを使うにはフォント管理ダイアログで「表示/非表示」の切り替えをします。 フォント管理ダイアログを出すにはフォント選択ダイアログで「他のフォントを表示」をクリックするか、コントロールパネルで「デスクトップのカスタマイズ/フォント」を選択します。 フォント管理ダイアログで見て、フォント名の前に付いているアイコンが半透明のフォントはフォント選択ダイアログで表示されません。 アイコンがはっきり表示されているフォントのみが表示されます。 フォント名を右クリックして表示されるメニューの項目に「表示/非表示」があるのでクリックして切り替えましょう。 (システムで使用しているフォントは切り替え不可?)

とか書いておきながら、最初から表示されてるフォントにConsolasがあるんですよね。 「コレでいいかなぁ」と思ったらこんな状況。

まず、アクセント記号が合成されていません。 そして日本語がプロポーショナルフォントのせいか、日本語表示のバランスが崩れています。 そもそもサクラエディタは合成に対応していないようです。 残念ですが、発音記号を編集するときは別のエディタを使うしかないかな?

メモ帳でフォントを変えてみたら、CambriaとConsolasで正常に合成されました。 でもさすがにメモ帳は使いづらいですねぇ。 フリーのテキストエディタを適当に検索すると ... Meryってのを発見。

レジストリを使わないようですし、アクセント記号などの合成にも対応しています。 発音記号を編集するときはこれを使ってみようかな?

で、MeryのフォントをConsolasに変えてみると、日本語の部分は普通にプロポーショナルフォントとして表示されました。 半角英数と全角英字の両方で「iiiimmmm」と打ち込むと全角英字だけ幅が調整されているのがよく分かります(全角英字は日本語と同じ扱い)。 ルーラーの桁の表示も普通にずれますね。 普段使いにするにはフリーの等幅フォントでも拾ってこないと使いづらいかな? フリーフォント探しも面倒なので、フォントをConsolasに設定して発音記号を編集するときだけ使うことになりそうです。 (...いつまで英語の勉強するかなんて、やる気も無いし、短い付き合いになるかも?)

で、フォントを「Courier New」にしたらブラウザでもあったような異変が。

前の文字に付くはずの合成用のアクセント記号が後ろの文字に付いてしまっています。 発音記号とアクセント記号の組だけ取り出すと「ʊ‍´」のようになっているので「後ろの文字に合成されている」のではなく「ʊ‍´‍が1文字分の幅で扱われ、アクセント記号の部分と次の文字が重なる」ということでしょうか? 勉強中に見て間違うようなものではありませんが、戸惑ってしまいますね。 他のアプリでもフォントを「Courier New」にしないよう注意しなければ。

ブラウザとテキストエディタはこんな感じ。 その他のアプリについてもちょっとだけ調べてみました。 主にCambriaとConsolasで確認してみました。

  • OpenOffice Calc ... 合成可能。
  • gimp ... Cambriaでの合成は可能。Consolasでは不可能。フォントごとに確認する必要があるようです。
  • inkscape ... Cambriaでの合成は可能。Consolasでも合成されますが、文字の間隔がおかしくなります。
  • VisualStudio ... wpfアプリケーションを作って確認。 フォント指定をしたLabelにサンプル文字列を入れてみました。 デザイナおよび実行したアプリで合成可能でした。 ソースコードで合成表示は不要なので、そちらは確認していません。
  • SMPlayer ... srt字幕のフォントを確認。 CambriaとConsolasは表示が変でした。 フォントリンクが通常とは違うようです。 選ぶフォントによっては文字のサイズがバラバラになります。 色々試したところModernフォントは合成表示され文字サイズのバランスもよく無難なようです。 ただし、横長の文字にアクセントを付けるとやや右寄りになります。

これだけ分かれば、ちょっとした勉強で発音記号を使うくらいなら困らずに済むかな? あとはその「ちょっとした勉強」が続くかどうかという問題...