ruby 要素since: 31st/Aug./2001; last modified: 17th/Sep./2001
Ruby
モジュールが定義する ruby 要素は、 XHTML 1.1 の内容モデルでは、内容セット Inline
に含まれ、DTD では %Inline.class; に含まれます。従って、例えば p 要素タイプの子要素として定義されています。
Ruby モジュールは、文書の振り仮名「ルビ」を作成する要素を定義しています。本文部分は「ベーステキスト」と呼ばれ、振り仮名部分は「ルビ」と呼ばれます。
![]()
図: ルビテキストがベーステキストの文字毎に読み仮名を与えている。
因みに、「ルビ」とは、イギリスの印刷業界で使う 5.5 ポイントの活字サイズに由来するそうです。通常の文字は 10-10.5 ポイントです。
ruby, rbc, rtc, rb, rt, rp| 要素 | 属性 | 最小内容モデル |
|---|---|---|
ruby |
Common |
(rb, (rt | (rp,
rt, rp))) |
rbc |
Common |
rb+ |
rtc |
Common |
rt+ |
rb |
Common |
(PCDATA | Inline
- ruby)* |
rt |
Common, rbspan
(CDATA) |
(PCDATA | Inline
- ruby)* |
rp |
Common |
PCDATA* |
ruby 要素の最大内容モデルは、以下のとおり:((rb, (rt |
(rp, rt, rp))) | (rbc, rtc, rtc?))
ruby 要素の最小内容モデルは、一つのベーステキストに一つのルビが結びつく場合に用います(単純ルビマークアップ)。 ruby 要素の最大内容モデルの (rbc,
rtc, rtc?) は、複雑ルビマークアップで用います。
実装: DTD
一つのベーステキストに一つのルビを結びつけるマークアップを、単純ルビマークアップと呼びます。このときは、次の要素タイプを用います:
(rb, (rt | (rp, rt, rp)))
次の例は、最も単純なルビマークアップの例です:
| ソース | 表示概念図 |
|---|---|
<ruby> <rb>WWW</rb> <rt>World Wide Web</rt> </ruby> |
次の例は、ルビマークアップをサポートしていない場合にも、違和感なく表示できるように工夫した例です:
| ソース | |
|---|---|
<ruby> <rb>WWW</rb> <rp>(</rp><rt>World Wide Web</rt><rp>)</rp> </ruby> |
|
| 非サポート時表示概念図 | サポート時表示概念図 |
|
WWW (World Wide Web) |
|
【表示例】
rp 要素の名前は、 "Ruby parenthesis" (ルビ括弧)を意味しますが、効果は noscript
要素や object 要素と同様です。サポートされていない場合は、 rp
要素は解釈されず、その内容が表示されます。
複雑ルビマークアップは、一つのベーステキストに二つのルビを結びつけることができます。また、ベーステキストを複数に分けて、その各々にルビを結び付けられます。
| ソース | 表示概念図 | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
<ruby>
<rbc>
<rb>10</rb>
<rb>31</rb>
<rb>2002</rb>
</rbc>
<rtc>
<rt>Month</rt>
<rt>Day</rt>
<rt>Year</rt>
</rtc>
<rtc>
<rt rbspan="3">Expiration Date</rt>
</rtc>
</ruby>
|
|
|||||||||
ruby 要素全体のコンテナとして機能するテキストレベルの要素。目的に応じて、次のように内容モデルが変わる:
rb 要素(ベーステキスト)と rt
要素(ルビテキスト)と、オプションの rp 要素(ルビ括弧)rbc 要素(ベーステキストコンテナ)と rtc 要素(ルビテキストコンテナ)| 名前 | ruby |
|---|---|
| 分類 | Inline |
| 意味 | ruby |
| 日本語 | ルビ、振り仮名、傍注 |
rbc 要素複雑ルビマークアップで、ベーステキストのコンテナとして機能する。一つの ruby
要素の中に一回だけ出現できる。
| 名前 | rbc |
|---|---|
| 意味 | ruby base component |
| 日本語 | ルビ・ベース部品、ルビ・ベース・コンテナ |
rtc 要素複雑ルビマークアップで、ルビテキストのコンテナとして機能する。一つの ruby
要素の中に一回、又は二回だけ出現できる。通常は、最初のものが「読み」を表し、後ろのものが「意味」を表す。
| 名前 | rtc |
|---|---|
| 意味 | ruby text component |
| 日本語 | ルビ・テキスト部品、ルビ・テキスト・コンテナ |
rb 要素ベーステキストとして機能する。単純ルビマークアップでは、一つの ruby
要素の内容で一回だけ出現する。複雑ルビマークアップでは、コンテナ rbc の内容で任意の回数表れ得る。
内容は文字データかテキストレベルの要素。但し、 ruby 要素は含まれない。
| 名前 | rb |
|---|---|
| 意味 | ruby base |
| 日本語 | ルビ・ベース |
rt 要素ルビテキストとして機能する。単純ルビマークアップでは、一つの ruby
要素の内容で一回だけ出現する。複雑ルビマークアップでは、コンテナ rtc の内容で任意の回数表れ得る。
内容は文字データかテキストレベルの要素。但し、 ruby 要素は含まれない。
複雑ルビマークアップでは、 rbspan 属性を用いて、当該ルビの及ぶ範囲を指定できる。 rbspan
属性値は 1 以上の整数で、ルビの及ぶ rb 要素の個数を指定する。
| 名前 | rt |
|---|---|
| 意味 | ruby text |
| 日本語 | ルビ・テキスト |
rp 要素後方互換の為に、ルビテキストとベーステキストのどちらが本文でるかを示さねばならない。このとき、ルビテキストを括る括弧を記述する為に用いる。単純ルビマークアップでだけ利用できる。
| 名前 | rp |
|---|---|
| 意味 | ruby parenthesis |
| 日本語 | ルビ括弧 |
次の例は、ルビテキストをスタイルシートなどで操作する為の class
属性が与えられている。また、二つ目の rtc 要素では rbspan
属性により、当該ルビテキストの適用範囲は四つのベーステキスト部分全てに及ぶことが指定されている。
<ruby>
<rbc>
<rb>斎</rb>
<rb>藤</rb>
<rb>信</rb>
<rb>男</rb>
</rbc>
<rtc class="reading">
<rt>さい</rt>
<rt>とう</rt>
<rt>のぶ</rt>
<rt>お</rt>
</rtc>
<rtc class="annotation">
<rt rbspan="4" xml:lang="en">W3C Associate Chairman</rt>
</rtc>
</ruby>