Re: simple-ruby ドキュメント

敏先生、

確認ありがとうございます。1がなければ3が関係してくる部分の詳しい説明もありがとうございます。

私が simple-ruby と JLreq をのルビをある程度ちゃんと読めていることが確認できて少し安心しました。私が敏先生の書いておられることをきちんと理解できていれば、原文の直接翻訳という形態からは離れてしまいますが、ソフトウェア技術者よりの言葉を使って英語の文書を書き下せる可能性があるかもと思っています。


simple-ruby の内容に二点、疑問が出てきました。

一つは熟語ルビです。熟語ルビが二行に分割されることを許す場合、ここで書いてある 2 レベル処理ができません。つまり、一旦全体の文字列に対して level 1 & 2 の処理を行い、全体が行に入らないことがわかったとします。モノ&グループルビの場合には単に次の行の先頭に送れば良いので level 2 の続きを行うだけで処理できます。しかし、熟語ルビの場合には、一文字目に立ち返って、どこで区切れば行に収まるかを、一文字一文字増やしながら level 1 & 2 を繰り返して折り返し位置を発見する必要があります。この際、区切る文字位置によって、ルビを含めた長さが変わってくるので、最初に行った、全体の文字列に対する level 1 の結果を使うことができません。これはまさに私がルビを折り返し可能にしようと提案した際に指摘された問題であり、この問題のために熟語ルビが実装されていないとのこと。

InDesign でさえ実装していないとすると、このままの形で熟語ルビを simple-ruby に入れるのは無理があるように思えてきます。可能性として:
上記の問題を無視して、誰かがどこかで解決してくれることを期待して熟語ルビを simple-ruby に残す。ただし、今までの経緯を考えると実装される可能性は少ないと言えるでしょう。
熟語ルビ全体を simple-ruby から落とす。
熟語ルビの折り返しを行わないことにする。折り返しさえ行わなければ、それぞれの熟語ルビはモノルビの連続、または一つのグループルビと同等となるので。
折り返す際の仕様を一部変更し、熟語ルビの折り返しに必要な計算量を減らすアルゴリズムを探す。例えば、a) 全体が入らない場合は、全体をモノルビの列として扱う。b) 熟語ルビがグループルビになる場合は折り返さず、モノルビの列になるときには折り返せる。など。

二つ目の疑問点ですが、掛ける処理を和字間隔 cl-14 に対してニ分まで許すと、和字間隔を挟んで二つのルビが真ん中で衝突してしまう可能性があると思いますが、いかがでしょうか。

木田

> 2023/05/21 8:53、Kobayashi Toshi <binn@k.email.ne.jp>のメール:
> 
> 木田泰夫 様
> みなさま
> 
>  小林 敏 です.
> 
>  木田泰夫 さんwrote
> 
>> 敏先生、
>> 
>> 質問です。simple-ruby で、JLReq に比べて単純化した部分は以下の4点、という理解
>> で正しいですか?
>> 1. 肩付きを省略し、常に中心揃え
>> 2. 行頭行末でも中心揃えを保つ
>> 3. 前後の文字に掛かる処理は残すが役物の空白部分に限定
>> 4. ルビと親文字の短い方を広げる処理は、複数の方法のうち、前後端と文字間で 1:2 
>> の比率にする方法(欧文はベタ)を採用
> 
> 正しい.
> 
>> また、このうち、「2レベル」処理のために必要な単純化は 2 のみでしょうか?
> 
> 1で言っているので,関係なくなったが,1でなければ,3も関係してくる.
> 
> 例えば,“の嵐に”という文字列に“あらし”とうルビが付いた場合,伝統的な方法では,以下で処理する方法がある(現在の書籍では,この配置方法のルビはよく見かける).
>  の嵐に “に”にルビの“し”を掛ける
>  又嵐に “に”にルビの“し”を掛ける
>  の嵐及 “の”にルビの“あ”を掛ける
>  又嵐及 “の”にルビの“あ”の半分,“に”にルビの“し”の半分を掛ける
>  行頭:嵐に “に”にルビの“し”を掛ける
>  行末:の嵐 “の”にルビの“あ”を掛ける
> 
> つまり,前後の文字種や配置位置によって,親文字とルビ文字列の配置位置について3種類が出てくるという処理方法がある.
> 
> ところで,
> 
>> Richard から two level の記述がわかりにくい
> 
> が問題かと思いますが,この記述は,村田さんの提案で,私の説明は,よくわからないが“two level”といえば,よくわかるということで,追加したものです.ただし,熟語ルビがやや複雑な処理をするので,“two level”の説明は,逆にわかりにくさを生んでいるのかもしれない.
> 
> 私の言いたいことは,以下のような処理がでないようにした(このことは,本文で繰り返し述べていることです).
> 
>  1 親文字列の前後にくる文字種によって,上記のように親文字とルビの配置位置関係が変わってくる.
>  2 行中か,行頭か,それとも行末で親文字とルビの配置位置関係が変わってくる.
> 
> つまり,モノルビとグループルビは,一度親文字とルビの配置位置を決めたら,それを変えない,また,熟語ルビでも,分割する場合,親文字とルビの組合せが変わるが,いったん決まった親文字とルビの組合せについては,その親文字とルビの配置位置は,一度決めたら,変えないということです.
> 
> そこで,“two level”の説明は,削除することは,私としてはかまわない.ただし,説明を削除する代わりに,上記のように配置位置関係が変わる例を示した図(親文字とルビの配置位置関係が変わる処理例)を追加してもよい.

Received on Sunday, 21 May 2023 01:38:49 UTC