Hop step XHTML―ホップ ステップ XHTML

Section 27:ルビモジュール(3)

 本節では,ルビの“複雑な記法”を中心に解説する。

ルビの“複雑な記法”

 ルビの“複雑な記法”では,たとえば,

  • ベーステキスト 1 文字ずつに対してルビを振る(モノルビ)
  • ベーステキストに対して,2 組のルビテキストを対応させる

ことができる。“複雑な記法”では,rbc 要素および rtc 要素が使われる。

 ベーステキストに 1 組のルビテキストを対応させる場合は,

<ruby><rbc>...</rbc><rtc>...</rtc></ruby>

ベーステキストに 2 組のルビテキストを対応させる場合には,

<ruby><rbc>...</rbc><rtc>...</rtc><rtc>...</rtc></ruby>

のように rtc 要素を 2 つ書く。

 ここで注意しなければならないのは,“複雑な記法”においては rp 要素でルビのかっこを記述することはできないことである。

 以下,例を示しながら“複雑な記法”を見ていくことにする。

モノルビ

 モノルビのように,ベーステキスト 1 文字ずつに対してルビを振る場合,rbc 要素の内容の rb 要素が,rtc 要素の内容の rt 要素に,順に対応する。

 例をご覧になるほうが早いだろう。

<p> 他人をあげつらうテレビ番組を嫌いと言っておきながら,自分では WWW サイトで<ruby><rbc><rb>罵</rb><rb>詈</rb><rb>雑</rb><rb>言</rb></rbc><rtc><rt>ば</rt><rt>り</rt><rt>ぞう</rt><rt>ごん</rt></rtc></ruby>を言いたい放題で<ruby><rb>愉</rb><rt>たの</rt></ruby>しんでいるのだから,始末に負えない。</p>

これは,お手元の環境で次のようになる。

 他人をあげつらうテレビ番組を嫌いと言っておきながら,自分では WWW サイトでぞうごんを言いたい放題でたのしんでいるのだから,始末に負えない。

このとき,必ずしもベーステキストは 1 文字ずつに区切る必要はない。たとえば,次のような例が考えられる。

<p> 初夏に,<ruby><rbc><rb>鉄</rb><rb>砲</rb><rb>百合</rb></rbc><rtc><rt>てっ</rt><rt>ぽう</rt><rt>ゆり</rt></rtc></ruby>は,白いらっぱ状の花を咲かせる。</p>

複雑なルビの記法では,rb 要素と rt 要素が順に対応する。
図 27.1 [D]

上記の例で,“百合”は熟字訓で“ゆり”と読み,“百”と“合”に分けてルビを振ることはできない。

 上掲の例は,図 27.1 のように表現されることが期待される。rtc 要素の中の,1 番めの rt 要素が,rbc 要素の中の 1 番めの rb 要素のルビとなり,2 番めの rt 要素が 2 番めの rb 要素のルビとなり,……,のように対応する。

 Internet Explorer 5.5 以降では,ルビテキストをベーステキストの上に乗せて表現するが,この記法では,rb 要素と rt 要素をそれぞれ対応させて表示することはできない。

2 つのルビ

 ひとつのベーステキストに,2 つのルビを振る場合,rtc 要素を 2 つ書き,それぞれ rt 要素でルビを振る。

<p> <ruby><rb>リンドバーグ</rb><rt>Lindbergh</rt></ruby>は,ニューヨークから 33 時間の飛行を続けた。そして,凱旋門,エッフェル塔を目にする。「翼よ,あれが<ruby><rbc><rb>巴里</rb></rbc><rtc><rt>パリ</rt></rtc><rt>Paris</rt></rtc></ruby>の灯だ!」</p>

参考に,お手元の環境では次のようになる。

 リンドバーグLindberghは,ニューヨークから 33 時間の飛行を続けた。そして,凱旋門,エッフェル塔を目にする。「翼よ,あれが巴里パリParisの灯だ!」

2 つのルビテキストを持つ場合,一方が上,もう一方が下,のように出力されることが期待される。
図 27.2 [D]

このように指定された 2 つのルビは,図 27.2 のように出力されることが期待される。

 上記の例では,rbc 要素の中に rb 要素が 1 つ,2 つの rtc 要素の中に rt 要素がそれぞれ 1 つずつであるが,複数でもかまわない。このとき,

  • rbc 要素の中の 1 番めの rb 要素と,1 つめの rtc 要素の中の 1 番めの rt 要素,2 つめの rtc 要素の中の 1 番めの rt 要素
  • rbc 要素の中の 2 番めの rb 要素と,1 つめの rtc 要素の中の 2 番めの rt 要素,2 つめの rtc 要素の中の 2 番めの rt 要素
  • ……

のように,ベーステキストとルビテキストが対応する。

 Internet Explorer 5.5 以降は,2 つのルビテキストを,いずれもベーステキストの上に続けて出力する。上記の例では,“巴里”の上に“パリ Paris”と続けて出力される。

rbspan 属性

 おもに 2 つのルビを付すとき,1 つの rt 要素を複数の rb 要素に対応付けることができる。このとき,その rt 要素に,いくつの rb 要素と対応させるかを,rbspan 属性を用いて指定する。rbspan 属性の値は自然数で,既定値は 1 である。

 たとえば,

<p> <ruby><rbc><rb>杉</rb><rb>田</rb><rb>玄</rb><rb>白<rb></rbc><rtc><rt>すぎ</rt><rt>た</rt><rt>げん</rt><rt>ぱく</rt></rtc><rtc><rt rbspan="4">1733-1817</rt></rtc></ruby>は,前野良沢らと「ターヘルアナトミア」を訳し,「解体新書」として刊行した。</p>

rbspan 属性で,1 つの rt 要素を,複数の rb 要素に対応させる。
図 27.3 [D]

において,2 つめの rtc 要素中の rt 要素には,“rbspan="4"”の指定があり,これは,それが,4 つの rb 要素,ここでは,“杉”“田”“玄”“白”に対応することを示している。この期待される出力を,図解とともに表すと,図 27.3 のようになる。

 お手元の環境での出力は,次のようになる。

 すぎげんぱく1733-1817は,前野良沢らと「ターヘルアナトミア」を訳し,「解体新書」として刊行した。

 rbspan 属性は,主に 2 つのルビを振るとき,一方のルビともう一方のルビでベーステキストとの対応のさせ方が異なる場合に用いるが,それ以外にも,スタイルシートなどでルビの体裁を整えたりする場合にも利用できるだろう。

ルビとスタイルシート

 ルビは,視覚表現のほかにも,音声出力や点字出力に際して重要な意味を持ってくることがある。

 たとえば,音声出力の場合,ルビによって読みを示しているのならば(class 属性などで示して),ベーステキストを読ませず,ルビテキストのみを読ませたりすることができるだろう。

 点字出力においては,ルビが読みを示しているか,注釈を示しているかによって,点訳のしかたが異なってくる。これも,class 属性などで示し,点訳のしかたを振り分けることができるであろう。

 この話題については,ここでは概要にとどめ,詳細は省略する。