【縦書き】rubyタグで傍点。

縦書き変換JavaScript・h2v.jsです。

ご質問・ご意見をいただきましたので、回答です。

使用法のページにて傍点はルビのタグを流用すればいいと記載してありましたが、ある一定の長さの文章に使うと改行されずにレイアウトを突き抜けてしまいます。 ルビタグ使っているので仕方がないと言えば、仕方がないのですが、どうにか対処できる方法はないのでしょうか?

ええと、上記の動作に関しては、現在のところ「h2v.jsの仕様」です。こんな具合。

一行を十二文字に指定しています。
[この部分のソース]
<ruby>ル<rt>﹅</rt>ビ<rt>﹅</rt>タ<rt>﹅</rt>グ<rt>﹅</rt>を<rt>﹅</rt>流<rt>﹅</rt>用<rt>﹅</rt>し<rt>﹅</rt>て<rt>﹅</rt>傍<rt>﹅</rt>点<rt>﹅</rt>を<rt>﹅</rt>打<rt>﹅</rt>っ<rt>﹅</rt>て<rt>﹅</rt>い<rt>﹅</rt>ま<rt>﹅</rt>す<rt>﹅</rt></ruby>
…というように、ルビタグで囲まれた部分を分割できない一つのブロックとして扱います。

すなわち、rubyタグで囲われた部分が一行の長さを超える場合、パラメータで指定した一行の文字数を無視して、そのまま縦書き表示を行います

で、現状、これを回避して、ルビを打ったテキストを、指定した一行の長さに納めるためには…、

一行を十二文字に指定しています。

…と、これならば「指定した一行の文字数」で改行されますね。

どういうHTMLを書いているかというと、下のソースコードをご覧ください。見やすいように、適宜改行を入れています。
[この部分のソース]
<ruby>ル<rt>﹅</rt></ruby>
<ruby>ビ<rt>﹅</rt></ruby>
<ruby>タ<rt>﹅</rt></ruby>
<ruby>グ<rt>﹅</rt></ruby>
<ruby>を<rt>﹅</rt></ruby>
<ruby>流<rt>﹅</rt></ruby>
<ruby>用<rt>﹅</rt></ruby>
<ruby>し<rt>﹅</rt></ruby>
<ruby>て<rt>﹅</rt></ruby>
<ruby>傍<rt>﹅</rt></ruby>
<ruby>点<rt>﹅</rt></ruby>
<ruby>を<rt>﹅</rt></ruby>
<ruby>打<rt>﹅</rt></ruby>
<ruby>っ<rt>﹅</rt></ruby>
<ruby>て<rt>﹅</rt></ruby>
<ruby>い<rt>﹅</rt></ruby>
<ruby>ま<rt>﹅</rt></ruby>
<ruby>す<rt>﹅</rt></ruby>

…というように、一文字ずつrubyタグで囲む、という甚だ面倒なコーディングをお願いするしかないのです。

h2v.js のスクリプト内で整形してくれたらいいじゃん! という声も聞こえてきますが、今のところ、ブラウザ間の処理の違いを完全に吸収するのが難儀なので、しばらく現状のままだと思います。

RUBYタグを使って傍点を記述する、という手法自体どうなのよ、ということもあり、う〜ん、このあたりは、今後の方向性も含めてもう少し考えなくてはなりません。

難しいですな。

【追記:2013.07.14】h2v.jsの改修作業が進行中です。こちらの記事をどうぞ。

カテゴリ: