字間のため(だけ)のクラス、簡便化案

JLReq TF の皆さま、

ギリギリになりましたが、前回 3/9 のミーティングで私と下農さんとの宿題になっていた字間のためのクラスの報告・提案です。

下農さんが Unicode 拡張に苦労しておられたので、まず Unicode への拡張を考える前に、敏先生からのアドバイスを得つつ、字間のためだけを考えた場合に、現状のクラスをどのように簡便化できるかという視点でまとめてみました。クラスを統合できれば Unicode への拡張がやりやすくなります。


前提
1) 字間のみを考える。行の折り返しは異なるロジックで実装されていることが多く、両方の挙動をまとめたクラスを作ってもクラス数が増えるだけであまり嬉しくなさそう、という理由です。また行の調整処理に必要なクラスを字間とまとめておいた方が使い良いのかどうかわかりませんが(石井さん、村上さん?)、まずはバラバラに考えてみようと思います。
2) いくつかの JLReq クラスは考慮外:従前の議論により、cl-12/13 前置/後置省略記号を削除。コンテキストを表す cl-20-30 は考慮外。


簡便化字間クラスの構成
簡便化の結果、七つにまとめることができました。それぞれ空き要求の性質でクラスを説明することができます。

A: 前に空間を必要とする約物:始め括弧類 cl-01
B: 後ろに空間を必要とする約物:終わり括弧類と句読点 cl-02, 06, 07
C: 両側に空間を必要とする約物:中点類 cl-05
D: そのものが空間な約物:和字間隔 cl-14
E: アルファベットとの間に空間を必要とする文字、漢字類:仮名と漢字 cl-9,10,11,15,16、および cl-19 の漢字
F: 漢字類との間に空間を必要とする外国語文字:cl-27 のうち Letter であるもの
G: どの文字ともベタ:その他全ての文字。cl-03, 04, 08, 17, 18, 26、cl-19 の非漢字、cl-27 の非ラテンアルファベット


JLReq からの変更点
以下が JLReq からの変更点です。小林先生、個々の是非についてフィードバックありがとうございます。JLReq の記述に沿って和文約物を半角と考えた場合の空き量で変更点を表しています。
・句読点|中点:3/4 アキ→終わり括弧に合わせて四分アキ
・句読点|和字間隔:二分アキ→終わり括弧に合わせてベタ
・区切り約物|欧文:四分空き→G に含めるためベタ
・cl-19:漢字と非漢字を分離し、漢字のみがアルファベットと空間を作り D、非漢字はどの文字ともベタで G
・cl-27:ラテンアルファベットと記号を分離。ラテンアルファベットは漢字と空間を作るので F、記号はどの文字ともベタで G


議論点
おそらく、一番影響のある変更は最後の二つ、cl-19/27 からの記号の分離でしょう。記号はどの和欧文文字ともベタとなります。ベタになっては困る文字はあるでしょうか。また、漢数字〇やゲタ〓など漢字と交換して使われる記号の処遇も議論の余地があるかもしれません。Unicode への拡張を考えるとこの手の例外がない方がありがたいです。

(ところで、記号約物の対語の日本語は何ですかね? Unicode では Letter と表されています)


簡便化字間クラスの空き量数値
添付の表


Unicode への拡張
今日後ほどこの簡便化をベースとした Unicode への拡張の可能性について考えてみます。この簡便化案でも垣間見られますが、決めの難しいポイントは「漢字類との間に空きを必要とする外国語文字」の範囲の定義でしょう。アラビア文字やデヴァナガリやギリシャ文字と漢字が隣あった時に空間は必要でしょうか? ただし決めの難しさの割には重要性は低いように思われます。頻度が低く、また空きが必要だと思ったら U+0020 を入れれば良いから。

木田




> 文字クラスの国際化
> ほとんど時間がなく、1) 今まで議論してきた字間クラスをまとめたデータを作り、Unicode のプロパティに落とし込むことができるか調査する(木田、下農) 2) 次回のミーティングでは、字間以外にどのような文字クラスが必要か、どのような機能が文字による挙動の違いの影響を受けるかをレビューすること、を決めた。

Received on Sunday, 4 April 2021 08:00:52 UTC