WHITELEAF:Kindle応援サイト

KindleでWEB小説を読もう! Narou.rb 公開中

小説家になろうのルビの書き方・仕様の解説

小説家になろうのルビの書き方と仕様を解説します。

本家のマニュアルには簡単なことしか記述されていなく、書かれていること以外の仕様がてんこ盛りなので、 自分の思い通りの表現をするためには仕様の把握が必須です。

結論

まず先に、小説家になろうではルビはこう書け! という結論を書きたいと思います。

ルビを振りたい場合

|文字列《ルビ》

ルビを振りたくない場合

文字列|《文字列》
文字列|(文字列)

この2パターンを厳守。このルールを守れば、確実に意図的な表示になります。

マニュアルにはありませんが、 |文字列(ルビ) という記述が出来ますが、 これはバグがあるため使ってはいけません。 バグの詳細については後述します。

これらを踏まえ、小説家になろうではどのようなルールでルビがふられるかを解説します。

注意

<ruby>タグを使うので、Firefoxを使っている場合、HTML Ruby をインストールするのをおすすめします。

解説1 |を使ったルビ位置の指定

まずなろうのルビマニュアルを読むと、

| は開始を表す記号で、 《 》 に囲まれた文字がルビとなっています。

これが基本ルールです。

|山田太郎《やまだたろう》

これは、 山田太郎やまだたろう とルビがふられます。 《 》のなかには全ての文字が使えます。

さて、次に、

( )でもルビは反映されますが、( )を使う際は 『ルビを振りたくない場合』 にお使いください。

という説明があります。これは、《 》の代わりに( )が使えるという意味ですが、( )は若干ルールが違います。

|山田太郎(やまだたろう)

これは、《 》と同じく、 山田太郎やまだたろう とルビがふられます。ただし、《 》のなかには 全ての文字が使えるのにたいして、( )の中には ひらがな、カタカナ、ー、・(中黒)、スペース しか使えません。

これは、自動ルビ振りのルールと同じで、|を使った場合でも制限は同じです。なので、|を使う場合は《 》を必ず使いましょう。

また、この |文字列(ルビ) という記述方法を使った場合、ルビにスペース(全角半角問わず)を1つだけ含んでいた場合、 スペース以降のルビが消えるというバグが存在します。こういう理由のためにも、|を使ったルビ指定には《 》を使います。

ルビを振りたくない場合

文字列|《文字列》
文字列|(文字列)

それぞれ《と(の直前に|を置くことで、確実にルビ化を抑制出来ます。|は消えます。

文字列《文字列》
文字列(文字列)

と変換されます。

解説2 ルビの自動対応

解説1で説明した|を使わない場合、なろうが自動的に( )及び《 》をルビとして使おうとします。 自動でルビがふられるルールを解説します。

( )《 》の前の文字による判定

( )《 》の前の文字によって、ルビになるかどうかが判断されます。

「《 》や( ) の前が漢字」「( ) の中がカタカナまたはひらがな」の場合、自動でルビ対応となります。

注意書きにはこのようにあります。この「《 》や( ) の前が漢字」の「漢字」以外にも、 全角アルファベット、半角アルファベット も反応します。

HP(ヒットポイント)
MP《マジックポイント》

これは、 HPヒットポイントMPマジックポイント とルビがふられます。

そして、これはバグだと思われますが、 及び 〇(ゼロ) は漢字として認識してくれないので、ルビが自動ではふられません。

久々(ひさびさ)
二〇八(ふたまるはち)

久々にはルビが振られず、二〇八は、 二〇ふたまるはち と八だけにルビがかかります。

「( ) の中がカタカナまたはひらがな」

このルールは、前述した ひらがな、カタカナ、ー、・(中黒)、スペース のことを指しています。また、 自動ルビの場合は 《 》もこの制限を受けます。

山田太郎(山田太郎) → ルビ化されない
山田太郎《山田太郎》 → ルビ化されない

ルビにスペース(全角及び半角)がある場合の特殊な処理

スペースが含まれている場合、特殊な挙動をするので要注意です。使い方をきちんと理解しましょう。

山田太郎(やまだたろう) → 山田太郎やまだたろう  基本

基本のルビがこれです。( )を使って解説しますが、|を使わない限り、《 》でも同じです。

ここで、名前分割用だと思われるスペースを含む場合の特殊処理は次の形です。

山田 太郎(やまだ たろう) → 山田やまだ 太郎たろう

( )の中にスペースを 一つ 含む場合、ルビがかかる対象もスペースがあるものとして指定されます。

<ruby>山田<rt>やまだ</rt></ruby> <ruby>太郎<rt>たろう</rt></ruby>

このように分割してルビが振られます。スペースが二つ以上の場合は、ただのルビとして処理されます。 これは、 |山田《やまだ》 |太郎《たろう》 とした場合と等しいものです。

ただし、ルールを理解しないと意図しない表示になるでしょう。


山田 太郎(やまだたろう) → 山田 太郎やまだたろう

これは、ルビにスペースがないため、太郎にしかルビがかかっていません。


わたしは山田太郎(やまだ たろう)と申します。

わたしは山田太郎やまだ たろうと申します。

文字列分割はされず、普通にルビがふられます。


NEW山田 太郎(やまだ たろう) → NEW山田やまだ 太郎たろう

アルファベットもルビがふられる対象なため、NEWにまでルビがかかってしまいます。


|山田 太郎《やまだ たろう》 → 山田 太郎やまだ たろう

文字列の分割は発生しません。

<ruby>山田 太郎<rt>やまだ たろう</rt></ruby>

|山田 太郎(やまだ たろう) → 山田 太郎やまだ

バグります。 たろうが消えます。たろうちゃん……。

|山田 太郎《やまだ たろう》 と、《 》を使った場合はバグらないで普通にルビがふられます。これが|文字列(ルビ)を使うなという根拠です。

3/29 追記

()の挙動はおかしいのも含めて全て仕様という運営の返事をもらいました。やはり結論で書いた通り、ルビには《 》を使うべきでしょう。


山田 太郎( やまだたろう) → 山田 太郎( やまだたろう)

スペースをカッコ直後に置いてもルビ化はされません。


山田 太郎(やまだたろう ) → 山田 太郎やまだたろう 

スペースを最後に置くとルビ化対象ですが、特殊な動作はせずに普通に太郎にかかります。


山田 太郎 二世(やまだ たろう にせい) → 山田 太郎 二世(やまだ たろう にせい)

スペースを2つ以上含む場合、ルビ化はされません。

解説3 文字数の制限

ルビには文字数制限が存在します。

ルビ部分は10文字以内で入力してください。
10文字以上入力された場合はルビが解除されます。

マニュアルにはこうありますが、 忘れましょう。

文字列《ルビ》

と定義します。

  1. 文字列 部分は最大10文字以内

    山田太郎山田太郎山田太郎《やまだたろうやまだたろうやまだたろう》

    この場合、|を使っておらず、 文字列 部分が12文字なため、

    山田太郎山田太郎山田太郎やまだたろうやまだたろうやまだたろう

    と、最初の2文字は無視して10文字分にルビがかかります。

    |山田太郎山田太郎山田太郎《やまだたろうやまだたろうやまだたろう》

    |を使った場合、 文字列 部分が10文字を超えているため、ルビ化はされません。|もそのまま表示されます。

  2. ルビ 部分は最大20文字以内
    |を使った場合でも、自動ルビ化でも、 ルビ 部分が20文字を超えるとルビ化はされません。