12時23分45秒 [Web関連]
ローマ字で使う横棒(長音記号マクロン)を加えた英字を表示する方法
長音(伸ばす音)が含まれる日本語の単語をローマ字で表記する際には、母音を示す「a,A」「i,I」「u,U」「e,E」「o,O」のアルファベットの上に横棒を加えて、「ā,Ā」「ī,Ī」「ū,Ū」「ē,Ē」「ō,Ō」のように表記します。
例えば「交番」なら「KŌBAN」、「九州」なら「KYŪSYŪ」のような感じです。
この英字の上に載せる横棒のことは「マクロン(MACRON)」と呼びます。
このような横棒(長音記号/マクロン)を付加した英字をウェブ上に表示したい場合には、以下の3通りの方法があります。
①の方法は、ウェブページの文字コードが「UTF-8」のようなUnicodeである場合にだけ使える方法です。②と③の方法は、ウェブページの文字コードに関係なく使えます。よく分からない場合は②の方法を使っておけば確実だと思います。
方法① Unicodeで定義されているマクロン付き英字をそのまま記述
Unicodeでは、長音記号(マクロン)を付加した母音英字が定義されています。以下の通りです。(※かっこ内は、UTF-8で定義されているコードです。)
母音 | 大文字 | 小文字 |
---|---|---|
マクロン付きA・a | Ā (C480) | ā (C481) |
マクロン付きI・i | Ī (C4AA) | ī (C4AB) |
マクロン付きU・u | Ū (C5AA) | ū (C5AB) |
マクロン付きE・e | Ē (C492) | ē (C493) |
マクロン付きO・o | Ō (C58C) | ō (C58D) |
上記のように、マクロン付きの英字がUnicodeで定義されていますから、ウェブページの文字コードがUTF-8などのUnicodeであれば、上記の文字をそのままHTMLソースに書けば表示できます。
IMEの文字パレットなどを使って入力することもできますし、テキストエディタに搭載されている特殊文字入力機能を使って入力することもできますし、上記に表示されている文字をそのままコピー&ペーストしても良いでしょう。
方法② マクロン付き英字を表す文字実体参照を記述
長音記号(マクロン)を付加した母音英字は、それぞれ文字実体参照という記述方法が用意されているため、以下のような「&」記号で始まって「;」記号で終わる記述をHTMLソース内に記述することで、表示できます。(※かっこ内は、文字実体参照を使って実際に表示させてみた例です。)
母音 | 大文字 | 小文字 |
---|---|---|
マクロン付きA・a | Ā (Ā) | ā (ā) |
マクロン付きI・i | Ī (Ī) | ī (ī) |
マクロン付きU・u | Ū (Ū) | ū (ū) |
マクロン付きE・e | Ē (Ē) | ē (ē) |
マクロン付きO・o | Ō (Ō) | ō (ō) |
上記のように、マクロン付きの英字は文字実体参照にも定義されていますから、ウェブページの文字コードがSHIFT-JISやEUC-JPなどであっても、上記の記述方法をHTMLソースに書くことで表示できます。
もちろん、ウェブページの文字コードがUTF-8の場合であっても、文字実体参照を使ってはいけないことはありません。つまり、上記のように文字実体参照を使う方法は、文字コードに関係なく使用可能です。文字コードがなんなのかよく分からない場合は、この方法を使っておくのが確実でしょう。
方法③ 長音記号(マクロン)を合成するための数値文字参照を併記
さて、実はこのアルファベットの上に載せる横棒は、HTMLソース内で合成することもできます。数値文字参照の ̄ を使うと、直前の英字にマクロンを合成できます。例えば、英字「A」の直後に「̄」を加えて、「Ā」と記述すると、実際の表示では英字の上に横棒が合成されて「Ā」と表示されるわけです。例えば以下のように書けます。(※かっこ内は、数値文字参照を使って実際に合成結果を表示させてみた例です。)
母音 | 大文字 | 小文字 |
---|---|---|
A・aに横棒を合成 | Ā (Ā) | ā (ā) |
I・iに横棒を合成 | Ī (Ī) | ī (ī) |
U・uに横棒を合成 | Ū (Ū) | ū (ū) |
E・eに横棒を合成 | Ē (Ē) | ē (ē) |
O・oに横棒を合成 | Ō (Ō) | ō (ō) |
上記のように、直前のアルファベットの上に横棒を合成することで、長音記号(マクロン)付きの英字を表現できます。
そして、この方法を使えば、母音ではないアルファベットの上にマクロンを加えることもできるため、実際には使われない文字を作り出すこともできます。
▼AIUEO以外の英字の上に長音記号を合成することも……
英字の直後に ̄ を書き加えれば横棒を合成できるわけですから、例えば、英字「y」の直後に「̄」を加えて、「ȳ」と記述すれば、実際の表示では英字の上に横棒が合成されて「ȳ」と表示(※注)されます。(^_^;)
※注:ただ、この方法で合成できるかどうかは、表示に使われているフォントや、ブラウザ次第のような気がします。私がちょっとだけ試してみたところ、表示できるブラウザと表示できないブラウザがありましたし、表示できるブラウザであっても使用フォントによっては表示できませんでした。
例えば以下のように記述してみたとき、
ĀB̄C̄D̄ĒF̄ḠH̄ĪJ̄K̄L̄M̄N̄ ŌP̄Q̄R̄S̄T̄ŪW̄X̄ȲZ̄ āb̄c̄d̄ēf̄ḡh̄īj̄k̄l̄m̄n̄ ōp̄q̄r̄s̄t̄ūw̄x̄ȳz̄ 1̄2̄3̄4̄5̄6̄7̄8̄9̄0̄
以下のように表示されます。
ĀB̄C̄D̄ĒF̄ḠH̄ĪJ̄K̄L̄M̄N̄ŌP̄Q̄R̄S̄T̄ŪW̄X̄ȲZ̄
āb̄c̄d̄ēf̄ḡh̄īj̄k̄l̄m̄n̄ōp̄q̄r̄s̄t̄ūw̄x̄ȳz̄
1̄2̄3̄4̄5̄6̄7̄8̄9̄0̄
EdgeやIEでは全文字の上にマクロンが上手い具合に合成されていました。下図が表示例です。
でも、他のブラウザでは母音以外には合成できませんでした。これは別にブラウザの仕様というわけではなく、表示に使われているフォントに影響されているような気もします。私の環境では、例えばセリフ(Serif)系フォントを使えば、合成できる文字もありました。
まあ、このように母音以外のアルファベットなどに長音記号を付加する必要性(需要)がないでしょうけども。(^_^;) ただ、Gの上にマクロンを加えるのはアラビア語で使われるようですけども。
なんとなく顔文字を合成する目的でちょっと使われたりしそうかな? という気はします。^^;
この方法を使おうとする場合には、意図通りに表示できない環境もあるという点を気にしておいた方が良さそうです。
長音記号(マクロン)を単独で表示したい場合
ちなみに、合成しないマクロンを表示したい場合(つまり、マクロンを単体で表示したい場合)は、文字実体参照で「¯」が使えます。表示すると「 ¯ 」のように見えます。
もちろんUnicodeで定義されていますから(00AF/UTF-8だとC2AF)、ウェブページの文字コードがUTF-8などであれば直接「¯」を書くことでも表示できます。
というわけで、ローマ字などで使われる「横棒(長音記号マクロン)を加えた英字」を表示する方法でした。