AH Formatter V6.6 では、ルビを表現できます。
ルビに関しては以下を参照してください。 AH Formatter V6.6 は、日本語組版処理の要件 に従ってルビを実装しています。
ルビは、次の3つの要素で表現されます。
XSL-FO | HTML | CSS | 意味 |
---|---|---|---|
<axf:ruby> | <ruby> | display: ruby | ルビ構造を示します。 |
<axf:ruby-base> | <rb> | display: ruby-base | ルビの親文字を示します。 |
<axf:ruby-text> | <rt> | display: ruby-text | ルビを示します。 |
ひとつの <axf:ruby-base> にはひとつの <axf:ruby-text> が対応します。ここで、ひとつの <axf:ruby-base> と <axf:ruby-text> の組をルビコンテナと呼ぶことにします。ひとつのルビコンテナ内では行分割することはできませんが、ルビコンテナとルビコンテナの間では行分割が可能です。
ルビには、3つの形態があり、次のように分類されます。(以下、例示中では <ruby> <rb> <rt> を用います)
モノルビは次のように表現されます。
<ruby><rb>京</rb><rt>きよう</rt></ruby><ruby><rb>都</rb><rt>と</rt></ruby><ruby><rb>府</rb><rt>ふ</rt></ruby>
モノルビは、親文字が1文字のグループルビとみなすことができます。モノルビでは、個々のルビコンテナが独立で、隣のルビの親文字にルビが掛かったりするようなことはありません。
グループルビは次のように表現されます。
<ruby><rb>京都府</rb><rt>きようとふ</rt></ruby>
グループルビは、ひとつのルビコンテナだけから成る熟語ルビとみなすことができます。グループルビでは、親文字全体にルビを均等に配置します。
熟語ルビは次のように表現されます。
<ruby><rb>京</rb><rt>きよう</rt><rb>都</rb><rt>と</rt><rb>府</rb><rt>ふ</rt></ruby>
熟語ルビは、ひとつ以上のルビコンテナから成るルビ構造です。ここで、各ルビコンテナの間で行分割が可能です。熟語ルビでのルビの配置方法は複雑です。原則として、個々のルビコンテナは、グループルビとしてルビを配置しますが、ルビが親文字をはみ出すような場合、隣の親文字へルビを掛けたりして位置を調整します。
鬼門の方角を<ruby><rb>凝</rb><rt>ぎよう</rt><rb>視</rb><rt>し</rt></ruby>する。
ルビが親文字より長いとき、ルビを隣の文字に掛ける処理が行われます。次のような場合はルビを掛けることはできません。
ルビと圏点を併用することができます。ルビと圏点を同じ側へ付けるとき、圏点はルビの外側に付きます。ルビのない文字への圏点とルビへの圏点を揃えるには、axf:text-emphasis-offsetを指定してください。
... text-emphasis-offset="0.5em">ルビと<ruby><rb>圏点</rb><rt>けんてん</rt></ruby>
グループルビでは、ルビを両側へ付けたり、ルビを何重にも入れ子にすることができます。このとき、隣の文字へ掛かることができるのは、もっとも外側で指定されているルビのみです。
<ruby ruby-position="after"><rb><ruby ruby-position="before"><rb>東南</rb><rt>とうなん</rt></ruby></rb><rt>たつみ</rt></ruby>の方向
AH Formatter V6.6 のルビには、以下のような制限があります。
ルビ構造を指定します。
ルビ領域を生成して返す。
CSSでは、display: ruby を指定します。
ルビの親文字を指定します。
テキスト領域を生成して返す。
CSSでは、display: ruby-base を指定します。
ルビを指定します。
テキスト領域を生成して返す。このテキスト領域は、行領域のブロック進行寸法に影響しない。
axf:ruby要素内で、N番目のaxf:ruby-text要素はN番目のaxf:ruby-base要素に対応します。N番目のaxf:ruby-text要素はN番目のaxf:ruby-base要素より後になければなりません。
CSSでは、display: ruby-text を指定します。
ルビの配置を指定します。 [CSS3-Ruby] Ruby alignment: the 'ruby-align' property
Value: | auto | [[space-between | space-around] || [center | start | end | start-if-vertical]] |
Initial: | auto |
Applies to: | axf:ruby |
Inherited: | yes |
Percentages: | N/A |
値の意味は以下のとおりです。
オプション設定ファイルの ruby-align の値が採用されます。
space-around center と同じです。
ルビ前後を空けて均等割り付けします。ルビが1文字の場合は中付きとなります。
ルビ前後を空けて均等割り付けします。ルビが1文字の場合は肩付きとなります。
space-between center と同じです。
ルビ前後を空けずに均等割り付けします。ルビが1文字の場合は中付きとなります。
ルビ前後を空けずに均等割り付けします。ルビが1文字の場合は肩付きとなります。
ルビを中央にベタ組にします。
ルビをstart側にベタ組にします。
ルビをend側にベタ組にします。
縦書きではstartと、横書きではcenterと同じです。
space-around と同じです。互換のために用意されています。
space-between と同じです。互換のために用意されています。
axf:ruby-align は、ルビの配置を決定します。もともと、中付き、肩付きは、モノルビの概念ですが、ここでは親文字が2文字以上であるグループルビの場合も同様です。ルビが親文字より長い場合は、ルビはベタ組になります。
モノルビの中付きは次のように指定します。
モノルビの肩付きは次のように指定します。
グループルビのルビ前後を空けるには次のように指定します。前後のアキは文字間の半分となります。
グループルビのルビ前後を空けないときは次のように指定します。
ルビを親文字のどちら側に付けるか指定します。 [CSS3-Ruby] Ruby positioning: the 'ruby-position' property
Value: | before | after
| [[ over | under | |
Initial: | before |
Applies to: | axf:ruby |
Inherited: | yes |
Percentages: | N/A |
値の意味は以下のとおりです。
before側へルビを付けます。
after側へルビを付けます。
横書きで上へルビを付けます。before と同じです。
横書きで下へルビを付けます。after と同じです。
縦書きで右へルビを付けます。before と同じです。
縦書きで左へルビを付けます。after と同じです。
注意: | inter-character には対応していません。 |
---|
ルビと親文字の間隔を指定します。
Value: | <number> | <length> | <percentage> |
Initial: | 0pt |
Applies to: | axf:ruby |
Inherited: | yes |
Percentages: | refer to the font size |
値の意味は以下のとおりです。
axf:ruby-text要素でのルビのフォントサイズ(axf:ruby-font-size)と掛け合わせた値となります。
長さを指定します。
フォントサイズ(ルビのフォントサイズではありません)と掛け合わせた値となります。
ルビを隣の文字に掛ける方法を指定します。 [CSS3-Ruby] Ruby overhanging: the 'ruby-overhang' property (ruby-overhang は、2013-09-19以降のCSS3-Rubyから削除されています)
Value: | none | auto | [start || end || except-kanji || except-katakana || except-hiragana || except-kana || except-start-open-parenthesis || except-end-close-parenthesis] |
Initial: | auto |
Applies to: | axf:ruby |
Inherited: | yes |
Percentages: | N/A |
値の意味は以下のとおりです。
隣の文字に掛けません。
start end except-kanji と同じです。
start側の隣の文字に掛けます(可能ならば)。
end側の隣の文字に掛けます(可能ならば)。
隣の文字が漢字のときは掛けません。
隣の文字が片仮名のときは掛けません。
隣の文字が平仮名のときは掛けません。
隣の文字が仮名のときは掛けません。except-katakana except-hiragana と同じです。
start側が開き括弧類のときは掛けません。
end側が閉じ括弧類のときは掛けません。
except-* だけが指定されていて、start も end も指定されていないときは、start と end が指定されているとみなされます。
ルビが親文字より長い場合の隣の親文字に掛ける量の限界を指定します。
Value: | <number> | <length> | <percentage> |
Initial: | 1.0 |
Applies to: | axf:ruby |
Inherited: | yes |
Percentages: | refer to the font size |
値の意味は以下のとおりです。
axf:ruby-text要素でのルビのフォントサイズ(axf:ruby-font-size)と掛け合わせた値となります。非負でなければなりません。
長さを指定します。非負でなければなりません。
フォントサイズ(ルビのフォントサイズではありません)と掛け合わせた値となります。非負でなければなりません。
この値は、隣の親文字に掛ける量を表します(はみ出る量ではありません)。
ルビが親文字より短い場合の前後のアキ量の限界を指定します。
Value: | <number> | <length> | <percentage> | none |
Initial: | 1.0 |
Applies to: | axf:ruby |
Inherited: | yes |
Percentages: | refer to the font size |
値の意味は以下のとおりです。
axf:ruby-text要素でのルビのフォントサイズ(axf:ruby-font-size)と掛け合わせた値となります。非負でなければなりません。
長さを指定します。非負でなければなりません。
フォントサイズ(ルビのフォントサイズではありません)と掛け合わせた値となります。非負でなければなりません。
アキ量の制限をしません。
axf:ruby-align="distribute-space" のとき、ルビが親文字より極端に短く、ルビの先頭と末尾が空きすぎるのを防ぐことができます。アキの量は指定された値に制限されます。
ルビに小書きのかなを許すかどうかを指定します。
Value: | auto | preserve| convert |
Initial: | auto |
Applies to: | axf:ruby |
Inherited: | yes |
Percentages: | N/A |
値の意味は以下のとおりです。
何もしません。
小書きのかなは普通のかなに変換されます。変換されるのは全角文字のみです。半角文字は変換されません。
ルビに小書きのかなを使わないようにすることができます。小書きのかなでルビが指定してあっても、普通のかなに変換されます。
ruby-small-kana="preserve" の場合は、何も特別なことはしないので、text-transform="fullsize-kana" が指定されていなければ、小書きのかなのままのルビとなります。
ルビのフォントファミリを指定します。
Value: | [ <family-name> | <generic-family> ]# |
Initial: | empty string |
Applies to: | axf:ruby |
Inherited: | yes |
Percentages: | N/A |
指定されなかったときは、font-family と同じになります。
ルビのフォントサイズを指定します。
Value: | <number> | <absolute-size> | <relative-size> | <length> | <percentage> |
Initial: | 0.5 |
Applies to: | axf:ruby |
Inherited: | yes |
Percentages: | refer to the font size |
<number> の指定では、font-size と掛け合わせたものとなります。
ルビの最小フォントサイズを指定します。
Value: | none | <absolute-size> | <relative-size> | <length> | <percentage> |
Initial: | none |
Applies to: | axf:ruby |
Inherited: | yes |
Percentages: | refer to the font size |
ルビを斜体にするかどうかを指定します。
Value: | normal | italic |
Initial: | empty |
Applies to: | axf:ruby |
Inherited: | yes |
Percentages: | N/A |
指定されなかったときは、font-style と同じになります。
ルビのフォントの太さを指定します。
Value: | normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 |
Initial: | empty |
Applies to: | axf:ruby |
Inherited: | yes |
Percentages: | N/A |
指定されなかったときは、font-weight と同じになります。
ルビのフォントの伸縮を指定します。
Value: | normal | wider | narrower | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | <percentage> | <number> |
Initial: | empty |
Applies to: | axf:ruby |
Inherited: | yes |
Percentages: | refer to the ruby-font-size |
指定されなかったときは、font-stretch と同じになります。
ルビが長いときのフォントの伸縮を指定します。
Value: | none | <percentage> | <number> |
Initial: | none |
Applies to: | axf:ruby |
Inherited: | yes |
Percentages: | refer to the ruby-font-size |
ルビが親文字よりも長いときに、ルビが親文字と同じ幅になるように、stretchによってルビを伸縮します。数値はそのときの縮める限界を示します。noneのときは伸縮は行われません。
ルビの色を指定します。
Value: | <color> |
Initial: | empty |
Applies to: | axf:ruby |
Inherited: | yes |
Percentages: | N/A |
指定されなかったときは、color と同じになります。