@snsk @dagezi 漢文については、以前、W3C のワークショップで議題としたことがありました。 http://t.co/WaBNatYfvA このときに分かったのですが、CSS3 に最近は行ったRubyの新しい仕様と、OpenType の仕様を使えば漢文は表現できます
— IKEUCHI Yasuki (@ikeyasu) February 7, 2014
…という話を真に受けて、HTML5 で漢文を組版してみる。
配置について
漢文訓読文における、訓点(返り点・送り仮名)および振り仮名の配置はだいたいつぎのようになっている。
- 返り点は、漢字のすぐ下に左に寄せて表記される
- 送り仮名と振り仮名は、配置は同一ブロック内であって、漢字の横に表記される
- 送り仮名が漢字の右下ちょうど外に出る程度に上下方向の位置は調整する
これを元に次の方針でタグ打ちをすることにした。
- 返り点は、サイズの小さな文字として扱う。返り点そのものは Unicode の U+3191〜 のを使用する。
- 振り仮名は、標準的に HTML5 ruby を使用する
- 送り仮名も HTML5 ruby を用いるが、漢字の後ろの空白あるいは返り点の ruby となる扱いで送り仮名を配置する
- 送り仮名の上下方向の位置については諦める
具体的には下記の通りとなる
ここで<rb>要素を緑枠、<rt>要素を青枠で囲んで図に示すと次のようになる。
もう少し複雑な例として、本記事の標題を例にあげる。
Complex Ruby を使わない場合
- 返り点は、<sub>として扱う。返り点そのものは Unicode の U+3191〜 のを使用する。
- 振り仮名は、標準的に Basic HTML5 ruby を使用する
- 送り仮名は、<sup>として扱う。
Complex Ruby を使わない場合との差、おわかりいただけるであろうか。
使用例
これは次のソースから得られる。
所感
確かに書けるが、あまりにも小手先な感じであってすっきりしない
(特に返り点の配置)し、
ソースコードは人が書くレベルではない長文になっている。
したがって、あまり実用的ではない。
その他気になった点として、
- 「一レ点」などが別々に表示されて、返り点の合字が対応したフォントが標準添付されると、
「一レ点」などがいい感じになるであろう。
- 禁則処理が適切でない場所で行われることがあった。<nobr>を使えばいいものの、何らかの解決策が必要。
参考文献