- From: MURAKAMI Shinyu <murakami@nadita.com>
- Date: Wed, 7 Jun 2000 03:36:21 +0900
- To: xsl-editors@w3.org
Dear xsl-editors, I found some problem on XSL WD 2000-03-27 about "letter-spacing" etc. Problem 1: Unexpected space-suppressing simple example: <fo:block> AAA<fo:inline space-start="1cm" space-end="1cm">BBB</fo:inline>CCC </fo:block> output: AAABBBCCC (no space between AAA and BBB and CCC) The fo:inline's space-start/end are suppressed because each character has default letter-spacing property, letter-spacing.precedence="force", and fo:inline's spaces' precedence are 0. I think it's problematic, many people will misunderstand. Naturally the expected output is: AAA BBB CCC (1cm) (1cm) but we have to write more complicated stylesheet: <fo:block> AAA<fo:inline space-start="1cm" space-start.precedence="force" space-end="1cm" space-end.precedence="force">BBB</fo:inline>CCC </fo:block> or <fo:block letter-spacing.precedence="0"> AAA<fo:inline space-start="1cm" space-end="1cm">BBB</fo:inline>CCC </fo:block> The XSL WD says about it in [7.14.2 "letter-spacing"]: NOTE: If it is desired that the letter-space combine with other spaces that have less than forcing precedence, then the value of the letter-space should be specified as a <space> with precedence less than force which implies that space combines according to the space resolution rules described in [4.3 Spaces and Conditionality]. it's not easy to understand for stylesheet designers, i think. Problem 2: Only half letter-spacing Non-forcing letter-spacings are also problematic. <fo:block letter-spacing.precedence="0" letter-spacing.optimum="1cm" letter-spacing.minimum="1cm" letter-spacing.maximum="1cm"> AAA<fo:inline space-start="1cm" space-end="1cm">BBB</fo:inline>CCC </fo:block> output: A A A B B B C C C 5mm5mm 1cm 5mm5mm 1cm 5mm5mm I specified letter-spacing="1cm" but the resultant spaces between letters are only 5mm. Because each character's start-space and end-space traits are set to half the value and if these are non-forcing, the adjacent two spaces (5mm+5mm) are resolved to one space (5mm). IMHO, To solve the Problem (1 and 2): 1. Extend space-specifier's .precedence value; a weak "force" is wanted, like a .precedence="semi-force" (sorry, my English vocabulary is poor, a better name expected), this precedence value is same as "force" except not suppress adjacent non-forcing spaces. And this new value should be the default of letter-spacing.precedence. (and of word-spacing.precedence and line-height.precedence, too.) 2. When non-forcing letter-spacing.precedence (less than "semi-force") is specified, the start-space and end-space traits should be set to full (not half) letter-spacing value. (this method is also applicable to line-height property; when line-height.precedence is non-forcing, line-area's space-before and after should be full-leading (not half-leading), font-size - line-height.) Note: about line-height, I've posted a comment: [XSL FO: line-height and space-resolution rule] http://lists.w3.org/Archives/Public/xsl-editors/2000AprJun/0057.html Another Questions: Question 1: letter-spacing is for "Alphabetic"? The XSL WD says in [7.14.2 "letter-spacing"] For an fo:character that in the Unicode database is classified as "Alphabetic" the start-space and end-space traits are each set to a value as follows: ... Why only Alphabetic? The "Ideographic" also needs letter-spacing. I think letter-spacing should affect all characters except controls, zero-width and fixed-width spaces, and other non-spacing characters. Question 2: letter-spacing and word-spacing combination The XSL WD says in [7.14.8 "word-spacing"] For fo:character whose treat-as-word-space trait has the value "yes", the start-space and end-space traits are each set to a value as follows: ... The fo:character's start-space and end-space traits are also set by letter-spacing, maybe. If so, the resultant space is the sum? or resolved by the space-resolution rule? Thanks, MURAKAMI Shinyu
Received on Tuesday, 6 June 2000 14:35:13 UTC