[CSS3 Text] punctuation-trim, text-justify-trim, hanging-punctuation

Hi,

I am happy that these CSS3 Text properties enable high quality Japanese 
text formatting, and I have some suggestions for improving them to support
the Requirements of Japanese Text Layout (Section 2):
http://www.w3.org/2007/02/japanese-layout/docs/en/japanese-layout-requirements-en2.html


punctuation-trim
================

Current CSS3 Text draft:
Value: none | [start || end || adjacent]  
...
end 
   Trim (kern) the blank half of fullwidth closing punctuation at the 
   end of each line.

My proposal:
Value: none | [start || [end | end-auto | end-except-fullstop] || adjacent] | all

end-auto
   Trim (kern) the blank half of fullwidth closing punctuation at the 
   end of line only if there is no sufficient space at the end of line.

end-except-fullstop
   Same as 'end' except for ideographic full stop (U+3002) and 
   fullwidth full stop (U+FF0E).

all
   Trim (kern) the blank half of fullwidth opening punctuation,
   fullwidth closing punctuation, and fullwidth middle dot punctuation
   unconditionally.


The 'end', 'end-auto' and 'end-except-fullstop' values support the 
Requirements of Japanese Text Layout,
2.1.9 Positioning of Brackets, Parentheses etc and Comma / Period at the Line End
Figure 2-21 shows punctuation-trim: none.
(note 1) JIS X 4051 standard - corresponds to the punctuation-trim: end-except-fullstop.
(note 2) tradition since letterpress era, Figure 2-22 - shows punctuation-trim: end-auto.
(note 3) modern DTP style, Figure 2-23 shows punctuation-trim: end.

The 'all' value can be used for exceptional punctuation spacing, such as
2.1.2 Positioning of Punctuation Marks (Comma, Full Stop and Brackets)
(note 2) Figure 2-9(left)
or
2.1.3 Exceptional Positioning of Ideographic Comma and KATAKANA Middle Dot
(Figure 2-10, Figure 2-11, Figure 2-12).


text-justify-trim
=================

My proposal:
Value: none | [ [punctuation | punctuation-except-fullstop] || kana]
Initial: none

punctuation-except-fullstop
   Space can be taken away from fullwidth punctuation except 
   ideographic full stop (U+3002) and fullwidth full stop (U+FF0E).

The 'punctuation-except-fullstop' value supports the requirements,
2.8.3 Procedures for Inter Character Space Reduction
c. (note 1).


hanging-punctuation
===================
Current CSS3 Text draft:
Value: none | [ start || end || end-edge ] 
start
    Punctuation may hang outside the start edge of the first line. 
end
    Punctuation may hang outside the end edge of the last line. 
end-edge
    Punctuation may hang outside the end edge of all lines. 

My proposal:
Value: none | [ first || last || start || [end || end-auto] ] 
first
    Punctuation may hang outside the start edge of the first line. 
last
    Punctuation may hang outside the end edge of the last line. 
start
    Punctuation may hang outside the start edge of all lines. 
end
    Punctuation may hang outside the end edge of all lines. 
end-auto
    Punctuation may hang outside the end edge of all lines
    only if it appears just outside the content area without
    text spacing modification.


I think the 'last' and 'end' are better than 'end' and 'end-edge' 
because the 'end' value is used for the end edge of all lines
in other CSS3 properties - text-align and punctuation-trim.

The 'end-auto' value corresponds to the Japanese usual hanging punctuation.
It is shown in the requirements,
2.8.2 Reduction and Addition of Inter Character Space
(Figure 2-54).
In this figure, note that not all ideographic commas at end of line hang.

The 'first' value of the hanging-punctuation can be used for Japanese 
text by combining with text-indent:1em (normal Japanese paragraph).
It is shown in the requirements,
2.1.5 Positioning of Brackets and Parentheses etc at the Line Head
c. Figure 2-15(3)

The hanging punctuation characters may vary by language.
For Japanese, 'end' or 'end-auto' hanging punctuation characters are: 
U+3001 IDEOGRAPHIC COMMA
U+3002 IDEOGRAPHIC FULL STOP
U+FF0C FULLWIDTH COMMA
U+FF0E FULLWIDTH FULL STOP


Common settings for Japanese text
=================================
text-indent: 1em;
text-align: justify;
text-justify: inter-ideograph;
text-justify-trim: punctuation-except-fullstop;
punctuation-trim: start adjacent; /* other values are optional */
hanging-punctuation: none; /* 'first' and 'end-auto' are optional */

Optional settings
=================

JIS X 4051 standard
-------------------
punctuation-trim: start adjacent end-except-fullstop;
hanging-punctuation: none;

2.1.5 Positioning of Brackets at Line Head
a. Figure 2-15(1)
---------------------
punctuation-trim: start adjacent; /* 'end' or 'end-*' may also be specified */
hanging-punctuation: none; /* or 'end-auto' */

b. Figure 2-15(2)
----------------------
punctuation-trim: adjacent; /* no 'start' */
hanging-punctuation: none; /* or 'end-auto' */

c. Figure 2-15(3)
--------------------
punctuation-trim: start adjacent; /* 'end' or 'end-*' may also be specified */
hanging-punctuation: first; /* 'end-auto' may also be specified */

2.1.9 Positioning of Punctuation Marks (Brackets, Comma and Full Stop) at Line End
(note 1) JIS X 4051
-------------------
punctuation-trim: start adjacent end-except-fullstop;

(note 2) Figure 2-22
--------------------
punctuation-trim: start adjacent end-auto;

(note 3) Figure 2-23
--------------------
punctuation-trim: start adjacent end;

2.8.2 Reduction and Addition of Inter Character Space
(note 1) Figure 2-54
--------------------
hanging-punctuation: end-auto; /* 'first' may also be specified */


-- 
Shinyu Murakami
http://www.antennahouse.com

Received on Tuesday, 30 October 2007 12:05:01 UTC