ローマ字識別子、ヘボン式で書くか、訓令式で書くか

プログラム中の識別子は基本的に英語で命名すればいいと思うけれど、そうも言ってられない場合もあるし、とはいえ野放図にして祝日がshukujitsuになったりsyukujitsuになったりするのは避けたい[^shukujitsu]、ということで各種表記方式を比較検討した。

[^shukujitsu]: 参考：[祝日オープンデータを巡って](https://okumuralab.org/~okumura/stat/holidays.html)

結論を先に書くと、[99式ローマ字](https://web.archive.org/web/20211225014058/http://www.roomazi.org/99.html)の厳密翻字をベースにし、母音やナヤ行音に先行する「ん」を「n'」ではなく「nn」と書くようにしたものがよいのではないかと思う。

以下に表を示す。

|行|-a|-i|-u|-e|-o|-ya|-yu|-yo|
|:---|---:|---:|---:|---:|---:|---:|---:|---:|
|あ|a|i|u|e|o|-|-|-|
|か|ka|ki|ku|ke|ko|kya|kyu|kyo|
|が|ga|gi|gu|ge|go|gya|gyu|gyo|
|さ|sa|si|su|se|so|sya|syu|syo|
|ざ|za|zi|zu|ze|zo|zya|zyu|zyo|
|た|ta|ti|tu|te|to|tya|tyu|tyo|
|だ|da|di|du|de|do|dya|dyu|dyo|
|な|na|ni|nu|ne|no|nya|nyu|nyo|
|は|ha|hi|hu|he|ho|hya|hyu|hyo|
|ば|ba|bi|bu|be|bo|bya|byu|byo|
|ぱ|pa|pi|pu|pe|po|pya|pyu|pyo|
|ま|ma|mi|mu|me|mo|mya|myu|myo|
|や|ya|-|yu|-|yo|-|-|-|
|ら|ra|ri|ru|re|ro|rya|ryu|ryo|
|わ|wa|-|-|-|wo|-|-|-|
|ん|n /<br /> nn|-|-|-|-|-|-|-|
|長音|aa|ii|uu|ee|oo|-|-|-|

下記のような特徴がある。

* 訓令式をベースにする。例えば、「し」「ち」はshi, chiではなくsi, tiとつづる
* 音声にもとづいた表記ではなく、カナ表記からの翻字方式とする。例えば、「王様」はōsamaやoosamaではなく、現代仮名遣いの「おうさま」をそのままローマ字化してousamaとつづる。三日月はmikazukiではなくmikadukiとつづる。音引き「ー」は直前の母音を繰り返すことで表記する。例えば「コンピューター」はkonpyuutaaとなる
    * [■「99式」日本語のローマ字表記方式](http://www.ab.cyberhome.ne.jp/~kaizu/roomazi/doc/99siki.html)の付録A 注によれば、助詞の「は」「へ」はふつうwa, eと書くが、ha, heと書いてもかまわない、「を」や四つ仮名も、厳密に区別する必要があるときは、wo, zi, di, zu, duと書く、とのことなので、本記事ではこの厳密翻字に従って表記方式を考える

## 表記方式検討の前提

以下を大前提とする。

* プログラム中の識別子として使うことを目的とする
* 識別子は基本的に英語で命名し、英語への翻訳がむずかしい用語などにのみこの規則を適用する
* プログラミング言語ごとの特例を設けず、機械的に別言語での識別子に変換ができるようにする（例えば`monthlyUriage` ↔︎ `monthly_uriage` ↔︎ `monthly-uriage` のように）
* 一般に使われているローマ字表記の慣習に従い、新たな表記法をできるかぎり発明しない
* Unicode識別子が利用可能など、対象とするプログラミング言語に仮定を置ける場合は別途検討する

上記から下記の条件が導かれる。

1. ASCIIの範囲内で表記する。特に、多くのプログラミング言語で使用可能なA-Za-z0-9_の範囲に綴り字を収める
2. 外来語の表記のためのつづり字は範囲外とする
3. キャメルケース（CamelCase, camelCase）、スネークケース（snake_case）、ケバブケース（kebab-case）で特別な意味を持つ文字に綴り字上の意味を持たせない。すなわち、大文字小文字の別、アンダースコア、ハイフンに綴り字上の意味を持たせない。したがって、綴り字はa-z0-9の範囲に収めなければならない
4. 既存のローマ字表記で使われる表記法を組み合わせ、必要最小限の改変で表記方式を定める

## 方式ごとの比較

以下では、他方式（[訓令式](https://www.bunka.go.jp/kokugo_nihongo/sisaku/joho/joho/kijun/naikaku/roma/index.html)、[ヘボン式](https://ja.wikipedia.org/wiki/%E3%83%98%E3%83%9C%E3%83%B3%E5%BC%8F%E3%83%AD%E3%83%BC%E3%83%9E%E5%AD%97)、[JSL方式](https://yalebooks.yale.edu/book/9780300038347/japanese-spoken-language/)、[ワープロローマ字](https://ja.wikipedia.org/wiki/%E3%83%AD%E3%83%BC%E3%83%9E%E5%AD%97%E5%85%A5%E5%8A%9B)）も含めた比較を行ない、他の選択肢についても検討する。

比較の観点としては、前掲の前提を満たすか否かという点のほか、現代仮名遣いからの類推可能性についても触れる。

各方式の概要は下記の通り。

* 訓令式：内閣訓令及びISO 3602として標準化されている方式
* ヘボン式：日本語ローマ字表記として慣習的に広く行なわれている方式。標準化された定義はない（と思う）。本稿では英語版Wikipediaなどで使われている方式を指すことにする
* JSL方式：書籍[Japanese, The Spoken Language](https://yalebooks.yale.edu/book/9780300038347/japanese-spoken-language/)で使用されている方式。訓令式をベースとしており、長音を母音連続で表記するのが特徴。アクセント表記のための記法も存在するが本稿では扱わない
* 99式：社団法人日本ローマ字会が1999年に提案した方式。訓令式をベースとしており、カナ表記の翻字方式として定義されているのが特徴。長音は母音連続で表記する。ただし、四つ仮名や助詞の「は」「へ」「を」は現代の発音に従い表記する。これらもカナ表記通りに表記する厳密翻字方式もある。本稿では厳密翻字方式について議論する
* ワープロローマ字：日本語入力等で使用される、英字キー入力からかなへの変換方式（≠表記方式）。JIS X 4063:2000として定義されていた。訓令式やヘボン式をベースにはしているが細部は異なる。本稿では必要に応じて各種日本語入力方式で使用されている方式もここに含めて言及する

[Romanization of Japanese - Wikipedia](https://en.wikipedia.org/wiki/Romanization_of_Japanese)も参照。

### 母音

方式ごとの差はなく、どの方式もaeiouを使用する。

### 子音・拗音

訓令式系とヘボン式系で違いがあるが、前掲の前提を満たすという点では大きな違いがないため、いずれかの方式を好みで選択してよい。

訓令式、JSL方式、ヘボン式では四つ仮名を区別せず、ジ・ヂはzi/ji、ズ・ヅはzuで表記する。99式（厳密翻字）はカナの翻字方式であるため、ジ・ヂはzi・di、ズ・ヅはzu・duで表記する。

また、（識別子の中にはあまり現れないだろうが）助詞の「は」「へ」「を」は訓令式、JSL方式、ヘボン式ではwa, e, oで表記する。99式（厳密翻字）ではha, he, woで表記する。

相違箇所を下に示す（括弧書きは重複して掲出したもの）。

訓令式、JSL方式

|行|-a|-i|-u|-e|-o|-ya|-yu|-yo|
|:---|---:|---:|---:|---:|---:|---:|---:|---:|
|さ|-|si|-|-|-|sya|syu|syo|
|ざ|-|zi|-|-|-|zya|zyu|zyo|
|た|-|ti|tu|-|-|tya|tyu|tyo|
|だ|-|(zi)|(zu)|-|-|(zya)|(zyu)|(zyo)|
|は|-|-|hu|-|-|-|-|-|

ヘボン式

|行|-a|-i|-u|-e|-o|-ya|-yu|-yo|
|:---|---:|---:|---:|---:|---:|---:|---:|---:|
|さ|-|shi|-|-|-|sha|shu|sho|
|ざ|-|ji|-|-|-|ja|ju|jo|
|た|-|chi|tsu|-|-|cha|chu|cho|
|だ|-|(ji)|(zu)|-|-|(ja)|(ju)|(jo)|
|は|-|-|fu|-|-|-|-|-|

99式（厳密翻字）

|行|-a|-i|-u|-e|-o|-ya|-yu|-yo|
|:---|---:|---:|---:|---:|---:|---:|---:|---:|
|さ|-|si|-|-|-|sya|syu|syo|
|ざ|-|zi|-|-|-|zya|zyu|zyo|
|た|-|ti|tu|-|-|tya|tyu|tyo|
|だ|-|di|du|-|-|dya|dyu|dyo|
|は|-|-|hu|-|-|-|-|-|

英単語と混ぜることを考えるとヘボン式系の方が見た目の馴染みはよさそうではある。一方で、動詞活用等によるつづり字の変化は訓令式の方が単純である。下にサ行五段活用動詞「貸す」タ行五段活用動詞「持つ」の活用表を示す。訓令式では動詞の語幹kas-, mot-は変化しないが、ヘボン式ではs/sh, t/ch/tsと末尾のつづり字が変化する（とはいえ、識別子を書く用途ではこのあたりが問題になることはあまりないだろうが）。

| 活用形 | 訓令式 | ヘボン式 |
|:-:|:-|:-|
| 未然形  | kasa(nai)<br />kaso(u) | kasa(nai)<br />kaso(u) |
| 連用形  | kasi(masu)<br />kasi(ta)  | kashi(masu)<br />kashi(ta)  |
| 終止形  | kasu  | kasu  |
| 連体形  | kasu  | kasu  |
| 仮定形  | kase(ba)  | kase(ba)  |
| 命令形  | kase  | kase  |


| 活用形 | 訓令式 | ヘボン式 |
|:-:|:-|:-|
| 未然形  | mota(nai)<br />moto(u) | mota(nai)<br />moto(u) |
| 連用形  | moti(masu)<br />mot(ta)  | mochi(masu)<br />mot(ta)  |
| 終止形  | motu  | motsu  |
| 連体形  | motu  | motsu  |
| 仮定形  | mote(ba)  | mote(ba)  |
| 命令形  | mote  | mote  |


### 促音（っ）

訓令式系とヘボン式系で一部違いがあるが、前掲の前提を満たすという点では大きな違いがないため、いずれかの方式を好みで選択してよい。いずれの方式も促音直後の子音字を重ねることで促音を表記する。

ただし、ヘボン式では促音に後続する文字がchの場合、cchではなくtchとなることのみ注意が必要である。

<table>
<thead><tr>
<th>語</th> <th>訓令式</th> <th>ヘボン式</th> <th>JSL方式</th> <th>99式</th>
</tr> </thead>
<tbody>
<tr> <td><ruby>活気<rp>（</rp><rt>かっき</rt><rp>）</rp></ruby></td> <td colspan="4" style="text-align:center">kakki</td> </tr>
<tr> <td><ruby>石鹸<rp>（</rp><rt>せっけん</rt><rp>）</rp></ruby></td> <td colspan="4" style="text-align:center">sekken</td> </tr>
<tr> <td>ぼっち</td> <td>botti</td> <td>botchi</td> <td colspan="2" style="text-align:center">botti</td> </tr>
</tbody>
</table>

### 撥音（ん）

撥音については、ナ行音との衝突回避方法が方式ごとに異なる。

訓令式、ヘボン式、99式ともに撥音はnで表記し、母音やヤ行音が後続する場合、間に'を入れることになっているが、前提からこの文字を使用することはできない。他の文字、例えば_を非曖昧化のための記号として使用すると、スネークケースの単語区切りと衝突するため、こちらも使用できない。

JSL方式では撥音を常にマクロン付きのn̄でつづるが、これはASCII範囲外となるため採用できない。

記号を使わず常にnとし曖昧さを受け容れるのも一法だが、回避策が存在するのであれば避けたいところである。

などとあれこれあるが、撥音に母音やナヤ行音が後続する場合はワープロローマ字のnnを採用するのがよいと思う[^xn]。時にnnnといった並びが現れるのは仰々しいようではあるが、ドイツ語などでも見られるため慣れの範囲かと思う。各方式の比較は下記の通り（ここの語例では訓令式、ヘボン式の違いは長音のための記号のみなので、表記は訓令式で代表する）。

[^xn]: JIS X 4063:2000に挙げられていないものとして、Microsoft日本語IME、mozc、及びmacOS、iOS、iPadOSの日本語ローマ字入力キーボードではxnで「ん」が入力できる。また、NECの日本語入力システムCannaや、エルゴソフトの日本語入力システムEGBRIDGEではmnで「ん」が入力できたようである。前者のxnで「ん」の音を表すのはラテンアルファベット表記としては目慣れないものではあるが、デファクトスタンダードなものとして表記法の候補として考慮に値するかもしれない。なお、（エスペラントの代用表記のように）xを後置するnxは小書きの「あ」（ぁ）のxa等と衝突するためか採用例を見つけられなかった。参考：[付録 B ローマ字かな対応表 (Wnn6 ユーザーズガイド)](https://docs.oracle.com/cd/E19683-01/816-3951/6ma6qtug0/index.html)、[canna/dic/phono/default.kpdef at master · netsphere-labs/canna](https://github.com/netsphere-labs/canna/blob/aceff3cc24e50c3faaf745574a94884912014100/dic/phono/default.kpdef#L281)

| 語 | 訓令式<br />ヘボン式 | JSL方式 | 99式 | ワープロ<br />ローマ字 | 備考 |
|:--|:--|:--|:--|:--|:--|
| <ruby>簡易<rp>（</rp><rt>かんい</rt><rp>）</rp></ruby>  | kan'i  | kan̄i  |  kan'i | kanni  |撥音+母音|
| <ruby>陥入<rp>（</rp><rt>かんにゅう</rt><rp>）</rp></ruby>  | kannyû | kan̄nyuu  | kannyuu  | kannnyuu  |撥音+ナ行音|
| <ruby>勧誘<rp>（</rp><rt>かんゆう</rt><rp>）</rp></ruby>  | kan'yû  | kan̄yuu  | kan'yuu  | kannyuu  |撥音+ヤ行音|
| <ruby>感化<rp>（</rp><rt>かんか</rt><rp>）</rp></ruby>  |  kanka  | kan̄ka  | kanka  | kanka  |撥音+その他|

この場合、曖昧さがなければnはひとつで綴る（上表のその他。表記上の特例を減らすためにこれも常にnnとしてもよいかもしれない）。

旧ヘボン式では、撥音にb, m, pが後続する場合、撥音をmで表記する規則があるが、複合語の扱いが明確でないため、この規則を採用する必要はないと思う。

* 例：<ruby>新聞<rp>（</rp><rt>しんぶん</rt><rp>）</rp></ruby>
    * 旧ヘボン式：shimbun
    * 修正ヘボン式：shinbun
* 例：<ruby>新前橋<rp>（</rp><rt>しんまえばし</rt><rp>）</rp></ruby>
    * 旧ヘボン式：Shimmaebashi / Shim-Maebashi? Shin-Maebashi? [^shin-maebashi]
    * 修正ヘボン式：Shinmaebashi / Shin-Maebashi

[^shin-maebashi]: JR上越線の駅名標ではShim-Maebashi。ちなみにJR九州新幹線の新水俣駅の駅名標はShin-Minamata。参考：[上越線の駅名標 - 駅名標あつめ。](https://ekimeihyo.net/e/jre/joetsu.php)、[九州新幹線の駅名標 - 駅名標あつめ。](https://ekimeihyo.net/e/jrk/kyushu-shinkansen.php)

### 長音

長音は方式ごとに表記法のバリエーションがある。

訓令式のサーカムフレックス、ヘボン式のマクロンを使用する長音表記は、ASCIIの範囲内で表記するという前提に反するため、これらの方式を採用することはできない。

* 例：<ruby><ruby>長音<rt>ちょうおん</rt></ruby><rt>チョーオン</rt></ruby>
    * 訓令式：tyôon
    * ヘボン式：chōon

人名表記などで見られる、hを後置する方法は区切り文字が必要になるケースがあるため採用できない。

* 例：<ruby><ruby>長音<rt>ちょうおん</rt></ruby><rt>チョーオン</rt></ruby>
    * h後置式：choh'on

JSL方式の母音字をならべる方法は選択肢のひとつになるだろう。この方式は内閣訓示のそえがきでも紹介されている。母音連続による長母音表記はフィンランド語やエストニア語でも使われている。

* 例：<ruby><ruby>長音<rt>ちょうおん</rt></ruby><rt>チョーオン</rt></ruby>
    * JSL方式：tyooon

99式はカナからの翻字を基本とし、外来語等で長音符（ー）が必要な場合はJSL方式と同様に母音字を連続させる。こちらもASCIIの範囲内で区切り文字なしで表記できるので選択肢のひとつになる。

* 例：<ruby><ruby>長音<rt>ちょうおん</rt></ruby><rt>チョーオン</rt></ruby>
    * 99式：tyouon
* 例：ワープロ
    * 99式：waapuro

このほか (1) 訓令式、ヘボン式では、イ段長音はîやīではなくiiと表記する (2) 訓令式、ヘボン式、JSL方式では現代仮名遣いでエイとつづる語は長音として発音するか否かによらずê, ē, eeではなくeiと表記する (3) 訓令式、ヘボン式、JSL方式ではオ段長音のオウとオオが同じ綴りになる (4) JSL方式では呼応/好悪がどちらもkoooとなるといった曖昧さの生じるケースが存在する、等々も注意が必要である（ここの語例では訓令式、ヘボン式の違いは長音のための記号のみなので、表記は訓令式で代表する。発音表記は『[NHK日本語発音アクセント新辞典](https://www.nhk-book.co.jp/detail/000000113452016.html?srsltid=AfmBOop_uh-hgDzwIoTu1XonJkjAe9vmEy5hz9StUY7vy0M2nP_I1dzv)』（NHK放送文化研究所編、2016）による）。

<table>
<thead><tr>
<th>語</th> <th>訓令式<br />ヘボン式</th> <th>JSL方式</th> <th>99式</th> <th>備考</th>
</tr> </thead>
<tbody>
<tr> <td><ruby><ruby>母様<rt>かあさま</rt></ruby><rt>カーサマ</rt></ruby></td> <td>kâsama</td> <td colspan="2" style="text-align:center">kaasama</td> <td></td> </tr>
<tr> <td><ruby><ruby>兄様<rt>にいさま</rt></ruby><rt>ニーサマ</rt></ruby></td> <td colspan="3" style="text-align:center">niisama</td> <td>上記(1)</td> </tr>
<tr> <td><ruby><ruby>空気<rt>くうき</rt></ruby><rt>クーキ</rt></ruby></td> <td>kûki</td> <td colspan="2" style="text-align:center">kuuki</td> <td></td> </tr>
<tr> <td><ruby><ruby>姉様<rt>ねえさま</rt></ruby><rt>ネーサマ</rt></ruby></td> <td>nêsama</td> <td colspan="2" style="text-align:center">neesama</td> <td></td> </tr>
<tr> <td><ruby><ruby>時計<rt>とけい</rt></ruby><rt>トケー</rt></ruby></td> <td colspan="3" style="text-align:center">tokei</td> <td>上記(2)</td> </tr>
<tr> <td><ruby><ruby>父様<rt>とうさま</rt></ruby><rt>トーサマ</rt></ruby></td> <td>tôsama</td> <td>toosama</td> <td>tousama</td> <td>上記(3)</td> </tr>
<tr> <td><ruby><ruby>大分<rt>おおいた</rt></ruby><rt>オーイタ</rt></ruby></td> <td>ôita</td> <td colspan="2" style="text-align:center">ooita</td> <td>上記(3)</td>  </tr>
<tr> <td><ruby><ruby>呼応<rt>こおう</rt></ruby><rt>コオー</rt></ruby></td> <td>koô</td> <td>kooo</td> <td>koou</td> <td>上記(4)</td> </tr>
<tr> <td><ruby><ruby>好悪<rt>こうお</rt></ruby><rt>コーオ</rt></ruby></td> <td>kôo</td> <td>kooo</td> <td>kouo</td> <td>上記(4)</td> </tr>
<tr> <td><ruby><ruby>降雨<rt>こうう</rt></ruby><rt>コーウ</rt></ruby></td> <td>kôu</td> <td>koou</td> <td>kouu</td> <td></td> </tr>
<tr> <td>ワープロ</td> <td>wâpuro</td> <td colspan="2" style="text-align:center">waapuro</td> <td></td> </tr>
</tbody>
</table>

これ以外の表記法として、英語のようにヘボン式のマクロンを無表記にすることも考えられるが、既に定着しているものはともかく、わざわざ語の衝突を増やす必要はないと思う。ワープロローマ字の `-` による長音表記も字種の制限で採用できない。

## まとめ

以上をまとめると下表のようになる。○は前掲の前提を満たすことを示し、*a, *b, ...は前提を満たさないことを示す。*1, *2, ...は前提を満たすが、現代仮名遣いとは異なる書き分けが存在することを示す。

<table>
<thead>
<tr>
<th colspan="2" style="text-align: center">方式</th>
<th style="text-align: center">母音</th>
<th style="text-align: center">子音</th>
<th style="text-align: center">促音<br>（っ）</th>
<th style="text-align: center">撥音<br>（ん）</th>
<th style="text-align: center">長音</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="3" style="text-align: left">正書法</td>
<td style="text-align: left">訓令式</td>
<td style="text-align: center">○</td>
<td style="text-align: center">*1</td>
<td style="text-align: center">○</td>
<td style="text-align: center">*a</td>
<td style="text-align: center">*b</td>
</tr>
<tr>
<td style="text-align: left">ヘボン式</td>
<td style="text-align: center">○</td>
<td style="text-align: center">*1 *2</td>
<td style="text-align: center">*3</td>
<td style="text-align: center">*a</td>
<td style="text-align: center">*b</td>
</tr>
<tr>
<td style="text-align: left">JSL方式</td>
<td style="text-align: center">○</td>
<td style="text-align: center">*1</td>
<td style="text-align: center">○</td>
<td style="text-align: center">*c</td>
<td style="text-align: center">*4 *5</td>
</tr>
<tr>
<td rowspan="2" style="text-align: left">翻字法</td>
<td style="text-align: left">99式（厳密翻字）</td>
<td style="text-align: center">○</td>
<td style="text-align: center">○</td>
<td style="text-align: center">○</td>
<td style="text-align: center">*a</td>
<td style="text-align: center">*5</td>
</tr>
<tr>
<td style="text-align: left">ワープロローマ字</td>
<td style="text-align: center">○</td>
<td style="text-align: center">○</td>
<td style="text-align: center">○</td>
<td style="text-align: center">*6</td>
<td style="text-align: center">*d</td>
</tr>
</tbody>
</table>


* *a：母音やヤ行音が後続する場合、撥音をn'と表記する
* *b：長音をマクロン/サーカムフレックス付きの母音で表記する
* *c：撥音をマクロン付きのnで表記する
* *d：長音符をハイフンで表記する
* *1：四つ仮名を区別しない。助詞の「は」「へ」「を」を発音通りwa, e, oと表記する
* *2：行によって子音や拗音表記を使い分ける（シ、ジ、チ、ツ、フの子音字や、拗音の-y-, -h-使い分け）
* *3：ch-の場合のみ子音連続ではなくtch-で促音を表記する
* *4：オ段長音のオオとオウをどちらもooで表記する
* *5：長音を母音連続で表記する
* *6：撥音を文脈に応じてnまたはnnで書き分ける

方式を大別すると、ローマ字による日本語表記を定める正書法と、現代仮名遣い等の既存の正書法をローマ字表記に変換する翻字法に分けられる。

現代仮名遣いを知っている人が学習コストをかけずに使うのであれば、最初に述べた通り、99式の厳密翻字+ワープロローマ字撥音表記が手頃かと思う。やはりヘボン式には抗えないということであれば、ヘボン式+ワープロローマ字撥音表記+長音母音連続というのも考えられるが、あまり凝り始めると当初の「新たな表記法をできるかぎり発明しない」といった前提からは外れていってしまう。

最後に参考として表記例を挙げておく。

| 語 | 提案方式 | ヘボン式<br />ベース別案 | 訓令式 | ヘボン式 | JSL方式 |
|:--|:--|:--|:--|:--|:--|
| <ruby><ruby>算用数字<rt>さんようすうじ</rt></ruby><rt>サンヨースージ</rt></ruby> | sannyou suuzi | sannyoo suuji | san'yô sûzi | san'yō sūji | san̄yoo suuzi |
| <ruby><ruby>観阿弥<rt>かんあみ</rt></ruby><rt>カンアミ</rt></ruby> | kannami | kannami | kan'ami | kan'ami | kan̄ami |
| <ruby><ruby>粘葉装<rt>でっちょうそう</rt></ruby><rt>デッチョーソー</rt></ruby> | dettyousou | detchoosoo | dettyôsô | detchōsō | dettyoosoo |
| <ruby><ruby>入知恵<rt>いれぢえ</rt></ruby><rt>イレジエ</rt></ruby> | iredie  | irejie | irezie | irejie | irezie|
| <ruby><ruby>文月<rt>ふづき</rt></ruby><rt>フズキ</rt></ruby> | huduki | fuzuki |  huzuki | fuzuki | huzuki |
| <ruby><ruby>神無月<rt>かんなづき</rt></ruby><rt>カンナズキ</rt></ruby> | kannnaduki | kannnazuki | kan'nazuki | kan'nazuki | kan̄nazuki |
| <ruby><ruby>祝日<rt>しゅくじつ</rt></ruby><rt>シュクジツ</rt></ruby> | syukuzitu | shukujitsu | syukuzitu | shukujitsu | syukuzitu |
| <ruby><ruby>我<rt>われ</rt>は<rt></rt>顔<rt>がお</rt></ruby><rt>ワレワガオ</rt></ruby> | warehagao | warewagao | warewagao | warewagao | warewagao |
| <ruby><ruby>上<rt>うえ</rt>を<rt></rt>下<rt>した</rt>へ<rt></rt></ruby><rt>ウエオシタエ</rt></ruby> | ue wo sita he | ue o shita e | ue o sita e | ue o shita e | ue o sita e |
| ラーメン | raamen | raamen | râmen | rāmen | raamen̄ |

表記方式ごとの表記方法の組み合わせも図にしておく（ついでに英語表記っぽいヘボン式 記号なしも図に入れておく）。

<img alt="子音、促音、撥音、長音の表記方法のバリエーションと、各表記方式での表記方法の組み合わせを図にしたもの。表記方式と表記方法の組み合わせ内容は下記の通り。
ヘボン式は子音：ヘボン式、促音：子音連続/tch-、撥音：n/'n、長音：¯。
ヘボン式 記号なしは子音：ヘボン式、促音：子音連続/tch-、撥音：n、長音：無表記。
訓令式は子音：訓令式、促音：子音連続、撥音：n/'n、長音：^。
JSL方式は子音：ヘボン式、促音：子音連続、撥音：n̄、長音：母音連続。
提案方式は子音：訓令式厳密翻字、促音：子音連続、撥音：n/nn、長音：現代仮名遣いの翻字/母音連続。
ヘボン式ベース別案は子音：ヘボン式、促音：子音連続/tch-、撥音：n/nn、長音：母音連続。" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2215/935f8348-f5dc-749f-ab35-ee6b02eef57c.png" />

## おまけ

Q. 東京をTokyoじゃなくてToukyouとかTookyooって書くのは気持ち悪くない？

A. 英語表記でTokyoと書きましょう。

## 関連記事

* [プログラマーが知っておくべきローマ字の基礎知識 - Qiita](https://qiita.com/hypnos/items/4f31dff6241a907fba9b)
    * 本記事と同様に識別子に使うローマ字表記法を検討し、訓令式、母音連続による長音表記、撥音の記号は省略、という結論に至っている。本記事の表現でいうと、JSL方式をベースに撥音のマクロンなしといった方式

## 参考

* [９９式つづりについて / 公益社団法人 日本ローマ字会 (Wayback Machine)](https://web.archive.org/web/20211225014058/http://www.roomazi.org/99.html)：概要版
* [■「99式」日本語のローマ字表記方式](http://www.ab.cyberhome.ne.jp/~kaizu/roomazi/doc/99siki.html)：詳細版
* [文化庁 | 国語施策・日本語教育 | 国語施策情報 | 内閣告示・内閣訓令 | ローマ字のつづり方](https://www.bunka.go.jp/kokugo_nihongo/sisaku/joho/joho/kijun/naikaku/roma/index.html)
* [Japanese, The Spoken Language](https://yalebooks.yale.edu/book/9780300038347/japanese-spoken-language/)：Additional Materialsから表記法等を説明したIntroductionのPDFをダウンロード可能