- From: Paul Grosso <pgrosso@arbortext.com>
- Date: Wed, 19 Mar 2003 09:55:28 -0600
- To: www-xsl-fo@w3.org
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="̈" >/> </fo:inline></fo:block> > > <fo:block font-family="ArialUnicodeMS"> > <fo:inline>Some more standard inline text to test a different way. > <fo:character character="A" letter-spacing="-0.8 * 1em" /> ><fo:character character="˚" > >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