-
Notifications
You must be signed in to change notification settings - Fork 54
なろうルビ仕様
小説家になろうのルビの書き方と仕様を解説します。
本家のマニュアルには簡単なことしか記述されていなく、書かれていること以外の仕様がてんこ盛りなので、 自分の思い通りの表現をするためには仕様の把握が必須です。
まず先に、小説家になろうではルビはこう書け! という結論を書きたいと思います。
|文字列《ルビ》
文字列|《文字列》
文字列|(文字列)
この2パターンを厳守。このルールを守れば、確実に意図的な表示になります。
マニュアルにはありませんが、 |文字列(ルビ)
という記述が出来ますが、 これはバグがあるため使ってはいけません。
バグの詳細については後述します。
これらを踏まえ、小説家になろうではどのようなルールでルビがふられるかを解説します。
<ruby>タグを使うので、Firefoxを使っている場合、HTML Ruby をインストールするのをおすすめします。
まずなろうのルビマニュアルを読むと、
| は開始を表す記号で、 《 》 に囲まれた文字がルビとなっています。
これが基本ルールです。
|山田太郎《やまだたろう》
これは、 山田太郎 とルビがふられます。 《 》のなかには全ての文字が使えます。
さて、次に、
( )でもルビは反映されますが、( )を使う際は 『ルビを振りたくない場合』 にお使いください。
という説明があります。これは、《 》の代わりに( )が使えるという意味ですが、( )は若干ルールが違います。
|山田太郎(やまだたろう)
これは、《 》と同じく、 山田太郎 とルビがふられます。ただし、《 》のなかには 全ての文字が使えるのにたいして、( )の中には ひらがな、カタカナ、ー、・(中黒)、スペース しか使えません。
これは、自動ルビ振りのルールと同じで、|を使った場合でも制限は同じです。なので、|を使う場合は《 》を必ず使いましょう。
また、この |文字列(ルビ)
という記述方法を使った場合、ルビにスペース(全角半角問わず)を1つだけ含んでいた場合、
スペース以降のルビが消えるというバグが存在します。こういう理由のためにも、|を使ったルビ指定には《 》を使います。
文字列|《文字列》
文字列|(文字列)
それぞれ《と(の直前に|を置くことで、確実にルビ化を抑制出来ます。|は消えます。
文字列《文字列》
文字列(文字列)
と変換されます。
解説1で説明した|を使わない場合、なろうが自動的に( )及び《 》をルビとして使おうとします。 自動でルビがふられるルールを解説します。
( )《 》の前の文字によって、ルビになるかどうかが判断されます。
「《 》や( ) の前が漢字」「( ) の中がカタカナまたはひらがな」の場合、自動でルビ対応となります。
注意書きにはこのようにあります。この「《 》や( ) の前が漢字」の「漢字」以外にも、 全角アルファベット、半角アルファベット も反応します。
HP(ヒットポイント)
MP《マジックポイント》
これは、 HP、MP とルビがふられます。
そして、これはバグだと思われますが、 々 及び 〇(ゼロ) は漢字として認識してくれないので、ルビが自動ではふられません。
久々(ひさびさ)
二〇八(ふたまるはち)
久々にはルビが振られず、二〇八は、 二〇八 と八だけにルビがかかります。
「( ) の中がカタカナまたはひらがな」
このルールは、前述した ひらがな、カタカナ、ー、・(中黒)、スペース のことを指しています。また、 自動ルビの場合は 《 》もこの制限を受けます。
山田太郎(山田太郎) → ルビ化されない
山田太郎《山田太郎》 → ルビ化されない
スペースが含まれている場合、特殊な挙動をするので要注意です。使い方をきちんと理解しましょう。
山田太郎(やまだたろう) → 山田太郎 基本
基本のルビがこれです。( )を使って解説しますが、|を使わない限り、《 》でも同じです。
ここで、名前分割用だと思われるスペースを含む場合の特殊処理は次の形です。
山田 太郎(やまだ たろう) → 山田 太郎
( )の中にスペースを 一つ 含む場合、ルビがかかる対象もスペースがあるものとして指定されます。
<ruby>山田<rt>やまだ</rt></ruby> <ruby>太郎<rt>たろう</rt></ruby>
このように分割してルビが振られます。スペースが二つ以上の場合は、ただのルビとして処理されます。
これは、 |山田《やまだ》 |太郎《たろう》
とした場合と等しいものです。
ただし、ルールを理解しないと意図しない表示になるでしょう。
山田 太郎(やまだたろう) → 山田 太郎
これは、ルビにスペースがないため、太郎にしかルビがかかっていません。
わたしは山田太郎(やまだ たろう)と申します。
↓
わたしは山田太郎と申します。
文字列分割はされず、普通にルビがふられます。
NEW山田 太郎(やまだ たろう) → NEW山田 太郎
アルファベットもルビがふられる対象なため、NEWにまでルビがかかってしまいます。
|山田 太郎《やまだ たろう》 → 山田 太郎
文字列の分割は発生しません。
<ruby>山田 太郎<rt>やまだ たろう</rt></ruby>
|山田 太郎(やまだ たろう) → 山田 太郎
バグります。 たろうが消えます。たろうちゃん……。
山田 太郎( やまだたろう) → 山田 太郎( やまだたろう)
スペースをカッコ直後に置いてもルビ化はされません。
山田 太郎(やまだたろう ) → 山田 太郎
スペースを最後に置くとルビ化対象ですが、特殊な動作はせずに普通に太郎にかかります。
山田 太郎 二世(やまだ たろう にせい) → 山田 太郎 二世(やまだ たろう にせい)
スペースを2つ以上含む場合、ルビ化はされません。
ルビには文字数制限が存在します。
ルビ部分は10文字以内で入力してください。
10文字以上入力された場合はルビが解除されます。
マニュアルにはこうありますが、 忘れましょう。
文字列《ルビ》
と定義します。
-
文字列 部分は最大10文字以内
山田太郎山田太郎山田太郎《やまだたろうやまだたろうやまだたろう》
この場合、|を使っておらず、 文字列 部分が12文字なため、
山田太郎山田太郎山田太郎
と、最初の2文字は無視して10文字分にルビがかかります。
|山田太郎山田太郎山田太郎《やまだたろうやまだたろうやまだたろう》
|を使った場合、 文字列 部分が10文字を超えているため、ルビ化はされません。|もそのまま表示されます。
-
ルビ 部分は最大20文字以内
|を使った場合でも、自動ルビ化でも、 ルビ 部分が20文字を超えるとルビ化はされません。