RE: 7.16.2 "letter-spacing"

Sorry I wasn't clearer.

letter-spacing affects all fo:characters (and leaders
and page-numbers).  Remember that all FOs always have a 
value for all properties, either because the property
in question is explicitly specified on that FO or because
it has an inherited or defaulted value.

More below.

At 15:37 2003 03 19 +0000, David.Pawson@rnib.org.uk wrote:
>Paul said:
>> The discussion at
>> http://www.w3.org/TR/xsl/slice7.html#letter-spacing
>> explains how letter-spacing affects the space-start and 
>> space-end traits of the fo:character.
>> 
>> What the spec doesn't make clear in section 7.16.2  is that letter-spacing
>applies
>> only to the fo:character, fo:leader, and fo:page-number FOs 
>> (as you discover if you search through the various FO descriptions
>> for applicable properties).
>
>I'm nearly happy with that Paul, but *which* character(s) is my question.
>I'm using
><fo:character../><fo:character../><fo:character../>

All characters.  Every fo:character has some value for letter-spacing.

>> 
>> On any other FO, the value of letter-spacing is merely inherited 
>> by the enclosed fo:character's (and leaders and page-numbers).  
>
>So... (my terminology), is this 'reverse' inheritance? E.g. if I 
>wrap my 3 fo:characters with an fo:block, the fo:block inherits
>the letter spacing of the characters? 
>   

No, I said the value is inherited (from ancestors) by the enclosed 
fo:characters, where "enclosed" referred to some ancestor of these 
fo:characters on which letter-spacing was explicitly specified.


>> So to affect the letter-spacing on, say, an entire title, you 
>> should put the letter-spacing property on the fo:block (or 
>> whatever) that the title maps into, and this will be inherited 
>> by the enclosed fo:characters.
>
>I'd be happy with that. What I'm trying to do is use a negative
>value to get a character to appear more to the start direction
>than it normally would, rather than using a combining diaresis,
>which works nicely to produce, say a u umlaut.

Then you don't want letter-spacing, you want to set the space-start
of that character to a negative value.  While letter-spacing might 
work in that it affects the fo:character's space-start, space-start 
is much more likely to be implemented than letter-spacing, so you 
are making your life unnecessarily difficult.



> <fo:block>Some standard inline text to test umlaut. </fo:block>
>    <fo:block font-family="ArialUnicodeMS">   <fo:inline>This uses the
>combining character value 0308, the diaresis.<fo:character
>character="o"/><fo:character character="&#x0308;" 
>/> </fo:inline></fo:block>
>
>    <fo:block font-family="ArialUnicodeMS">
> <fo:inline>Some more standard inline text to test a different way.
>&#x20;<fo:character character="A" letter-spacing="-0.8 * 1em" />
><fo:character character="&#x02DA;" 
> 
>vertical-align="50%"/> </fo:inline></fo:block>
>
>The first block (I'm using the Microsoft Unicode font) works nicely.
>The second, in trying to get a similar effect, is shown differently
>in Antenna House and RenderX's XEP.
>
>Equally, I can't figure out from the rec, and the two implementations,
>what is supposed to occur. 
>
> From what you say Paul, I don't think I'm suffering from inheritance issues,
>hence I'm still not understanding what is supposed to be shifted,
>when, say, the letter-spacing is set on the middle one of 3 fo:characters.

In that case, it only affects the middle fo:character since
the other two have the default value of letter-spacing (which
is zero).  And how it affects that middle letter is by changing
its start-space as described in the spec.

paul

Received on Wednesday, 19 March 2003 10:59:01 UTC