ルビ


W3C

ルビ

W3Cワーキングドラフト 1999年3月22日版

このバージョン[原文]:
http://www.w3.org/TR/1999/WD-ruby-19990322
最新のバージョン:
http://www.w3.org/TR/WD-ruby
ローカルブラウジング用に[原文の]Zip圧縮アーカイブとしても入手可能である。
以前のバージョン:
http://www.w3.org/TR/1998/WD-ruby-19981221
編集者:
Marcin Sawicki (Microsoft)
その他の協力者:
Martin Dürst (W3C)
Masayasu Ishikawa (W3C)
Chris Wilson (Microsoft)

著作権  ©  1998, 1999 W3C (マサチューセッツ工科大学, フランス国立情報処理自動化研究所, 慶應義塾大学). すべての権利が留保されている。W3Cの免責(liability), 商標(trademark), 文書利用(document use), ソフトウェア使用許諾(software licensing)規則が適用される。

この文書の位置づけ

これは、W3C会員およびその他の利害関係者による検討のためのW3Cワーキングドラフトである。この文書はドラフト文書であって、何時にても他の文書によって更新され、置換され、または廃止されることがある W3Cは、最終リリースに先立ってこの仕様に変更を加える能力を初期の実装が制約することを許すつもりはない。W3Cワーキングドラフトを参照資料として利用したり、「進行中の作業」以外のものとして引用することは不適切である。現行のW3Cワーキングドラフトの一覧は http://www.w3.org/TR で見ることができる。

このW3Cワーキングドラフトは、国際化ワーキンググループ(会員専用)によって公開されているものである。将来のバージョンでは、この作業は、次バージョンのHTMLへの組み込みを求めてHTMLワーキンググループ(会員専用)に送付するつもりである。

この文書には、ルビタグの命名や、詳しいルビの組立といったような、現在調査中であり、次回のワーキンググループのミーティングの間に議論されるであろう領域が多数ある。W3Cワーキングドラフトの特徴であるが、この文書で提案されているタグ命名や構造はすべて変更に服する。

この文書[原文]に関するコメントや質問は、i18n-editor@w3.org (W3C会員向けにアーカイブされる)にお送り願いたい。英語以外の言語、とりわけ日本語でのコメントも歓迎する。


概要

HTML(ハイパーテキストマーク付け言語)は、プラットフォームからプラットフォームへと可搬的なハイパーテキスト文書を作成するために使われる簡素なマークアップ言語である。HTML文書は、広範囲の応用からの情報を表現するのに適した汎用的な意味論をもつSGML文書である。以下の仕様は、東アジアで使われるのが典型であるルビテキストをサポートするべくHTMLを拡張するものである。HTML 4.0 [HTML4] とXML化HTML [XHTML] との両方に精通していることが前提とされる。


目次


1.  はじめに

東アジアの印刷術には、HTMLにはまだ顕出されず、特別な迂路かグラフィックを使わなければウェブ上で実現することが不可能な構造的要素がある。そうした要素の一つがルビテキストである。「ルビ(ruby)」とは、「ベース(base)」と呼ばれる他のテキストの並びのすぐ近辺に現れ、そのテキストの並びに結びつけられた注釈や発音ガイドとして機能するテキストの並びを表すものとして一般的に使われる呼び名である。日本語で使われるルビは、JIS-X-4051 [JIS] に記述されている。

ルビテキストのフォントサイズは、ベースのフォントサイズの半分であるのが普通である。実は「ルビ」という名前は、イギリスの印刷での5.5ポイント活字の名前に由来するものであり、これが通常のテキストに一般的に使われる10ポイント活字の約半分なのである。

ルビテキストが現れる場所には、そのベースに対する関係においていくつかある。

ルビテキストはベースに脇に沿って現れるのが普通である。横組みレイアウトではベースの上に置かれることがもっとも多い。

横組みの日本語におけるベースの上側にあるルビを示した例

図 1.1.1: 横組みの日本語でのトップルビ

時には、とりわけ教育用教科書では、ルビがベースの下に現れることがある。

横組みモードでのベースの下にある日本語ルビの例

図 1.1.2: 日本語テキストに適用された横組みレイアウトでのボトムルビ

縦組みレイアウトだとルビが横組みレイアウトで上側に現れる場合には、ルビはテキストの縦行の右側に現れる。ルビテキストのレイアウトフローは、そのベースのレイアウトフローと同じ、すなわちベースが縦組みならば縦組みであり、ベースが横組みならば横組みである。

縦組みの日本語テキストにおけるベースの右側のルビを示した例

図 1.1.3: 縦組みの日本語に適用されたトップルビ

横組みレイアウトだとルビがベースの下に現れる場合には、縦組みレイアウトではベースの左側にルビが現れる。この設定は、主に伝統的テキストで使われる。

Example of Japanese ruby in vertical mode

図 1.1.4: 日本語テキストに適用された縦組み表意文字レイアウトにおけるボトムルビ

時には、同じベースにルビテキストの並びが2つ、1つは下に、1つは上に適用されることがある。

ベースの上と下とに適用されたルビテキストを示した例

図 1.1.5: 日本語テキストの行の下と上とに適用されたルビ

もっとも、一定のシナリオでは、ベースの直後に続くインラインテキストとしてルビテキストが現れることがある。インライン形式は、解像度が限られたディスプレイや古いソフトウェアのための後詰め(fullback)としてのみ機能する。

ルビテキストがインラインで現れるとき、ルビは括弧の中に囲い込まれる。もっとも括弧はインラインでのみ使われる。ベースの脇に並ぶルビテキストのまわりには括弧はない。

横組みの日本語におけるベースとインラインの括弧の内にあるルビを示した例

図 1.1.6: 横組みの日本語に適用されたインラインルビ

もっとも、後詰めに括弧を使うことは、ルビテキストたるべきテキストの並びと、偶然に括弧の中に囲い込まれたテキストの並びとの間に混乱を招くことがある。制作者はその混乱の潜在的可能性を意識するべきであり、これが問題である場合には、曖昧さのない区切り子を後詰めに選ぶようアドバイスされる。

この文書は、新しい ruby 要素を使って、HTMLにルビモデルをどうに有する。この要素は、rb 要素、rt 要素、rp 要素のコンテナとして機能する。rb 要素は、ルビのベースキャラクタを包含する。rt はルビテキストを包含し、rp 要素は、後詰めの場合に使われる括弧キャラクタを包含する。rb 要素は、他の ruby 要素を包含してもよい。制作者は、他のルビの rb 要素の内側に ruby 要素をネストすることにより、同じベースの下と上との両方にルビテキストが現れるケースを実現することができる。

この文書で論じられるのはルビ要素の構造だけである。たとえば、以下のルビは

横組み英語テキストにおけるベースの上側のルビを示した例

図 1.1.7: 横組みの英語に適用されたトップルビ

XML化HTML [XHTML] による以下のフル形式のマークアップを使って表現でき、

<ruby><rb>WWW</rb><rp>(</rp><rt>World Wide Web</rt><rp>)</rp></ruby>

あるいは SGML HTML による以下のマークアップを使って表現することができる。ここでは rb, rt, rp の終了タグを省略することが可能である。

<ruby>WWW<rp>(<rt>World Wide Web<rp>)</ruby>

制作者が、古いユーザエージェントにおいて括弧の内側にルビを表示することに関心がなく、またはCSS2スタイルシートをサポートする汎用XML環境で作業をしている場合には、rp 要素をまとめてスキップしてもよい。

<ruby><rb>WWW</rb><rt>World Wide Web</rt></ruby>

そうした場合の括弧は、:before および :after 疑似要素 [CSS2] の 'content' プロパティを使って生成することができる。

この文書はルビマークアップを定義するにとどまる。ルビにスタイルづけするための整形プロパティは、HTML/XML についてではなく、CSS/XSL について開発中である。[I18N-FORMAT] を見ること。

この提案は、構造全体がハイフネーションされる必要があるときに2行にわたるルビベースやルビテキストを知能的に割り付けできるようにするマークアップを組み込んでいない。制作者は、可能な箇所では、ベースのテキストの長さを制限するようアドバイスされる。進歩した整形上の必要性に応えるための追加的な構造を提供するべきか否か、またどのように提供するべきかという問題は、現在のところ調査中である。


2.  ルビ要素

このセクションの内容は、ruby DTD と、ルビ要素の機能の仕様とである。それぞれのタグにつき、2つのDTDバージョンが与えられる。1つ目のバージョンは SGML [HTML4] によるものである。2つ目のバージョンは XML化HTML [XHTML] によるものである。SGML DTD では要素や属性は大文字小文字の区別がないものと予定されるが、XML DTD では要素や属性に大文字小文字の区別があるので注意してほしい。また、XMLでは開始タグと終了タグとがつねに必須である。

簡便性をはかり、以下のパラメータ実体が使われる。

<!-- %Inline; はインラインまたは "text-level" 要素をカバーする。-->
<!ENTITY % Inline "(#PCDATA | %inline; | %misc; | ruby)*">

<!-- %ruby.content; は ruby をのぞく %Inline; である。-->
<!ENTITY % ruby.content "(#PCDATA | %inline; | %misc;)*">

<!ENTITY % attrs "%coreattrs; %i18n; %events;">

踏み込んだ定義は [XHTML] で見ることができる。

2.1  ruby 要素

<!-- SGML DTD: ルビ要素のコンテナ -->
<!ELEMENT ruby - - (rb, rp?, rt, rp?)>
<!ATTLIST ruby %attrs; >

開始タグ: 必須. 終了タグ: 必須.

<!-- XML DTD: ルビ要素のコンテナ -->
<!ELEMENT ruby (rb, rp?, rt, rp?)>
<!ATTLIST ruby %attrs; >

ruby 要素は、rb, rp, rt 要素のコンテナとしてのみ機能する。これは、ルビベースとのそのルビテキストとの間の構造的な結びつけを提供するものである。

ruby 要素は、id, class, style といったような標準的な属性以外のどの属性も受け付けない。

このもっとも単純な例では、「みけねこ」というルビが「三毛猫」というベースに結びつけられる。

<ruby>三毛猫<rt>みけねこ</ruby>

図 2.1.1: ruby 要素のSGML用法

XML化HTMLでは、上記の例はこうなる。

<ruby><rb>三毛猫</rb><rt>みけねこ</rt></ruby>

図 2.1.2: ruby 要素のXML用法

2.2  rb 要素

<!-- SGML DTD: ルビベースのコンテナ -->
<!ELEMENT rb O O %Inline; >
<!ATTLIST rb %attrs; >

開始タグ: 任意. 終了タグ: 任意.

SGMLでは、開始タグも終了タグも必須ではない。これは、rt 要素や rp 要素の内部に囲い込まれていない ruby 要素内のテキストはどれも rb 要素に属するということを意味している。rb 要素は、rt 要素または rp 要素によって自動的に閉じられる。

<!-- XML DTD: ルビベースのコンテナ -->
<!ELEMENT rb %Inline; >
<!ATTLIST rb %attrs; >

rb 要素はルビベースのテキストのコンテナである。ネストされた他の ruby 要素を含め、任意の内容が rb の内側では正当である。

たとえば、"International Layout in CSS" [I18N-FORMAT] によるCSSを利用して、以下のマークアップを使って、同じルビベースに2つのルビテキストを結びつけてよい。

<ruby STYLE="ruby-position: above">
  <rb>
    <ruby STYLE="ruby-position: below">
      <rb>漢字</rb>
      <rt>かな-ボトム</rt>
    </ruby>
  </rb>
  <rt>かな-トップ</rt>
</ruby>

図 2.2.1: 同じベースにトップルビとボトムルビとの両方を実現するルビマークアップ

上記のマークアップは、このようにレンダリングされよう。

かな-トップ
   漢字
かな-ボトム

図 2.2.2: ルビマークアップのネストの結果

2.3  rt 要素

<!-- SGML DTD: ルビテキストのコンテナ -->
<!ELEMENT rt - O %ruby.content; >
<!ATTLIST rt %attrs; >

開始タグ: 必須. 終了タグ: 任意.

SGMLでは、開始タグだけが必須である。rt 要素は、rp 開始タグまたは ruby 終了タグによって自動的に閉じられる。

<!-- XML DTD: ルビテキストのコンテナ -->
<!ELEMENT rt %ruby.content; >
<!ATTLIST rt %attrs; >

rt 要素はルビテキストのコンテナである。rt 要素は、その内側での他の ruby 要素のネストを認めない。

2.4  rp 要素

<!-- SGML DTD: 括弧キャラクタのコンテナ -->
<!ELEMENT rp - O (#PCDATA)>
<!ATTLIST rp %attrs; >

開始タグ: 必須. 終了タグ: 任意.

SGMLでは、rp 要素は、rt 開始タグまたは ruby 終了タグによって自動的に閉じられる。

<!-- XML DTD: 括弧キャラクタのコンテナ -->
<!ELEMENT rp (#PCDATA)>
<!ATTLIST rp %attrs; >

この要素は、括弧キャラクタを包含するよう予定されている。括弧は、ルビがインラインであるときに正確にレンダリングされるために必要である。rp 要素の存在は、特にルビテキストをルビベースの上方にレンダリングできないユーザエージェントにとって必要である。そのようにして、ルビをサポートしないユーザエージェントでは、どのルビも、適切に組まれたインラインルビまで退化することになる。

以下のマークアップを考えてみよう。トップ(デフォルト)ルビを規定するものである。

<ruby><rb>三毛猫</rb><rp>(</rp><rt>みけねこ</rt><rp>)</rp></ruby>

図 2.4.1: rp 要素を使ったルビマークアップ

トップルビをサポートするユーザエージェントであれば、このようにレンダリングするであろう。

みけねこ
 三毛猫

図 2.4.2: トップルビをサポートするユーザエージェントによってレンダリングされたトップルビ(括弧が見えないことに注意されたい。)

しかしながら、トップルビをレンダリングできないユーザエージェントや、ルビHTMLをサポートしないユーザエージェントであっても、このようになお正確に表示するであろう。

三毛猫(みけねこ)

図 2.4.3: トップルビをサポートしないユーザエージェントによってレンダリングされたトップルビ(括弧が見えることに注意されたい。)


3.  用語集

ルビベース (ruby base)
ルビテキストが結びつけられているテキストの並び。
ルビテキスト (ruby text)
他のテキストの並び(「ルビベース」)のすぐ近辺に現れ、ベースに結びつけられた注釈や発音ガイドとして機能するテキストの並び。

謝辞

この仕様書に提示されているモデルは、Martin Dürst によりなされた作業[DUR97]によって大きく刺激されたものである。

またこの仕様書は、つぎの方の助力がなければあり得なかったであろう。

Laurie Anna Edlund, Arye Gittelman, Koji Ishii, Eric LeVine, Chris Lilley, Chris Pratley, Rahul Sonnad, Michel Suignard, Takao Suzuki, Chris Thrasher.


参考

[CSS2]
"Cascading Stylesheets, level 2 (CSS2) Specification", W3C Recommendation
Bert Bos, Håkon Wium Lie, Chris Lilley and Ian Jacobs, 1998年5月12日
入手先: http://www.w3.org/TR/REC-CSS2
[DUR97]
"Ruby in the Hypertext Markup Language", Internet Draft
Martin Dürst, 1997年2月28日 廃棄済み
入手先: http://www.w3.org/International/draft-duerst-ruby-01
[HTML4]
"HTML 4.0 Specification", W3C Recommendation
Dave Raggett, Arnaud Le Hors, Ian Jacobs, 1997年12月18日. 1998年4月24日校訂
入手先: http://www.w3.org/TR/REC-html40
[XHTML]
"XHTML™ 1.0: The Extensible HyperText Markup Language  A Reformulation of HTML 4.0 in XML ", W3C Working Draft
Steve Pemberton ほか, 1999年3月4日
入手先: http://www.w3.org/TR/WD-html-in-xml
[I18N-FORMAT]
"International Layout in CSS", W3C Working Draft
Marcin Sawicki, 1999年3月22日
入手先: http://www.w3.org/TR/WD-i18n-format
[JIS]
"Line composition rules for Japanese documents"
JIS X 4051-1995, Japanese Standards Association, 1995 (日本語)

先の公開ワーキングドラフトからの変更点

セクション 変更点
この文書の位置づけ
  • ルビの命名および構造制御を、次回のワーキンググループのミーティングで議論すべき問題として言及した。
1. はじめに
  • 整形の言及を外した。
  • ベースの下または(縦組みの場合は)左に現れるルビテキストの解説文と図とを追加した。
  • 上下に現れるルビテキストの場合をカバーした。
  • 後詰めとしてのインライン形式のルビテキストの役割を明確にした。
  • 分類の追加と小規模な言葉の言い換え。
  • 図 1.1.5 を訂正した。
  • 図 1.1.7 にマークアップ例を追加した。
2.2 rb 要素
  • rb の内側で ruby 要素のネストを認めた。
  • この機能の例を追加した。
  • %ruby.content を %Inline に変更した。
2.4 rp 要素
  • 具体的なCSSプロパティの言及を外した。
3. ルビボックスモデル
  • セクション全体を i18n-format へ移転した。
参考
  • i18n-format への参照を追加した。
  • HTML-XML から XHTML へと参照を更新した。
先の公開ワーキングドラフトからの変更点
  • 新セクションを作成した。

どら猫本舗 (webmaster@doraneko.org)