Re: Double-sided ruby: Translators are traitors. 両側ルビ: 翻訳者は反逆者である

Nat McCully 様
村田さま
木田さま
みなさま

   小林敏です

Nat McCully さん wrote

> 村田さん、翻訳していただいてありがとうございました。
> 
> 敏先生、これはとてもわかりやすい解説です。開発者であれば十分に理解するためにはこういう細かい説明は必要です。皆さんのご意見は違うかもしれないですが、私なら入れたいと思います。もし本文をなるべく簡単にしたいのであれば別途詳細解説みたいな添付として出してもいいかも知れないです。
> 
> ナット

それでは,以下のような注記にして書くことは可能です(処理方法
を2つ書くのは,このドキュメントで書かない方針ですので,説明
したうえで採用しなかったという書き方をした).

入れるのは,次のバージョンでいいのです.

両側ルビの処理方法
モノルビとグループルビの組合せの場合,次のような方法も考えら
れる.
まずモノルビとした各親文字とルビの配置を決め(以下,そのまと
まりを“モノルビ親文字群のブッロク”と呼ぶ),次にそのモノルビ
親文字群のブロックを字間を空けないでベタ組で並べ,その全長に
対し,グループルビを対応させる処理を行う.グループルビ文字列
が,モノルビ親文字群のブロックを並べた全長より短い場合は,グ
ループルビ文字列の字間と先頭・末尾を空ける.長い場合は,モノ
ルビ親文字群のブロック間と全体の先頭・末尾を空ける,という方
法である.
この方法は,モノルビの親文字とルビの対応で,ルビ文字列が親文
字の字幅以下の場合は,問題がないが,親文字の字幅を超える場合
は,バランスがよい配置とはいえない場合が出てくる.
そこで,すべてのモノルビにおいて親文字の字幅以下の場合と,字
幅を超えるケースを含む場合に分け,前者は各モノルビを親文字に
配置し,親文字をベタ組で並べ,その上で,グループルビを親文字
列に配置する処理を行う.後者はモノルビ全体をグループにし,グ
ループルビとグループルビの組合せという配置方法とする.
この方法は,熟語ルビと熟語ルビの組合せでも適用できる.具体的
には,熟語ルビの各親文字とルビ文字列の長さを比べ,次の3つの
場合に分ける.
1 すべてのルビ文字列の長さが親文字の字幅以下の場合
2 片方で一部のルビ文字列で親文字の字幅を超えるケースを含む
場合
3 両側で一部のルビ文字列で親文字の字幅を超えるケースを含む
場合
1はモノルビとモノルビの組合せのルール,2はモノルビとグループ
ルビの組合せで,すべてのモノルビ文字列の長さが親文字の字幅以
下の場合のルール,3はグループルビとグループルビの組合せのル
ールを適用するという方法である.
さらに,この方法は,熟語ルビとグループルビの組合せでも考える
ことができる.熟語ルビの各親文字とルビ文字の対応において,す
べてのルビ文字列の長さが親文字の字幅以下の場合と,一部のルビ
文字列で親文字の字幅を超えるケースを含む場合に分け,前者はモ
ノルビとグループルビの組合せで,すべてのモノルビ文字列の長さ
が親文字の字幅以下の場合のルール,後者はグループルビとグルー
プルビの組合せのルールを適用するという方法である.
しかし,こうした方法は,処理が複雑になること,また,JIS X 405
1で採用されていないことから,ここでは,できるだけシンプルな
処理方法を考え,こうした方法を採用しなかった.

以上です.

―――――――――――――――――――――
 小林 敏(toshi)  2020年 6月 4日
 e-mail: binn@k.email.ne.jp
―――――――――――――――――――――

Received on Thursday, 4 June 2020 07:22:39 UTC