- From: Nat McCully <nmccully@adobe.com>
- Date: Tue, 2 Jun 2020 19:23:21 +0000
- To: MURATA Makoto <eb2m-mrt@asahi-net.or.jp>, W3C JLReq TF <public-i18n-japanese@w3.org>
- CC: Richard Ishida <ishida@w3.org>, Florian Rivoal <florian@rivoal.net>
- Message-ID: <MW2PR02MB36598108E28EA0ACE030DAA4D78B0@MW2PR02MB3659.namprd02.prod.outlook.com>
I think it would be helpful to provide way more context to the reader about what is being abbreviated or compromised in these simplifications. For example: Ruby spacing rules are governed by the type of ruby (mono- jukugo- or group-) and the length of the ruby relative to the base it annotates. When the ruby is longer than the base, each type has specific rules about how the base text is adjusted to expand. Likewise, when the ruby is shorter, it is expanded according to rules that are designed to make it clear how much of the base text is being annotated. This complex situation is compounded when both sides of the base text are annotated with ruby of differing lengths and/or types. There is a hierarchy of conditions as to which spacing rules are used on the longest component (upper ruby, base text, or lower ruby), and then to each of the shorter components. Generally, when the spacing rules differ among ruby types, (for example when ruby spacing and overhang is different for mono-ruby than for the other ruby types), those rules are honored for each ruby string and its type, to establish the baseline width of the string. Then, each shorter component is expanded according to expansion rules to fit the longest component. A number of possible combinations of types can be imagined: 1) mono-ruby and mono-ruby 2) group-ruby and group-ruby 3) mono-ruby and group-ruby 4) mono-ruby and jukugo-ruby 5) jukugo-ruby and jukugo- or group-ruby Because jukugo-ruby can be broken across lines, and each break point depends on the relationship of the ruby sub-string to its corresponding base text sub-string, it is deemed overly complicated to support breaking double-sided ruby strings, even of both upper and lower ruby are jukugo-ruby. Therefore jukugo-ruby are to be treated like group ruby when it comes to line breaking. The above is intended to make clear that the correct typesetting of ruby (even simple ruby) has to take into account the spacing rules within the base text and ruby text (and how they relate), and not simply express the algorithm in terms of overall lengths. --Nat From: MURATA Makoto <eb2m-mrt@asahi-net.or.jp> Date: Tuesday, June 2, 2020 at 2:16 AM To: W3C JLReq TF <public-i18n-japanese@w3.org> Cc: Richard Ishida <ishida@w3.org>, Florian Rivoal <florian@rivoal.net> Subject: Double-sided ruby: Translators are traitors. 両側ルビ: 翻訳者は反逆者である Folks, Here is my attempt for providing an understandable description of Bin-sensei's ideas for handling double-sided ruby. I paid no attention to sentences or words in his text. What is more, I tried to ignore details as much as possible. So, my text may well contain significant misunderstandings and problems. I'm responsible for them, but I hope that my text is still useful Here goes. ------------------------------------------------------------------------------------------------------ Placement of double-sided ruby Double-sided ruby can be classified into five types of ruby combinations: 1) mono-ruby and mono-ruby 2) group-ruby and group-ruby 3) mono-ruby and group-ruby 4) mono-ruby and jukugo-ruby 5) jukugo-ruby and jukugo- or group-ruby JIS X 4051 provides procedures for handling 1), 2), and 3). But 3) is actually handled as 2) by first concatenating mono-ruby strings to form a single group-ruby. We propose to handle 4) as 1) by first converting jukugo-ruby to mono-ruby, and to handle 5) as 2) by first converting jukugo-ruby to group-ruby. My note: Some examples for demonstrating this simplification? Here we further prose procedures for handling combinations 1) and 2), which are simpler than those in JIS X 4051. 1) mono-ruby and mono-ruby See Figure 23. 2) group-ruby and group-ruby Let U be the box for the upper group-ruby and that for the lower group-ruby, let L be the box for the upper group-ruby, and let B be the box for the ruby base. Let U_w, L_w, and B_w be the width of these boxes, respectively. Case 1: U_w < B_w and L_w < B_w Handle the upper group-ruby and the ruby base as specified in XX, and then handle lower group-ruby and the ruby base, similarily. Case 2: U_w >= L_w >= B_w First, handle the upper group-ruby and the ruby base as specified in XX. (Note: box B may be widened.) Then position box L by aligning its center and that of box B. Case 2': L_w >= U_w >= B_w Similar to Case 2. Read the above description after swapping L and U. Case 3: U_w >= B_w >= L_w Similar to Case 2. But the positioning of box L is doner after it is widened (by introducing character-spacing and word-spacing) so that L_w and B_w are identical. Case 3': L_w >= B_w >= U_w Similar to Case 3. Read the above description after swapping L and U. -- Regards, Makoto
Received on Tuesday, 2 June 2020 19:23:41 UTC