- From: Anders Berglund <alrb@us.ibm.com>
- Date: Tue, 3 Jul 2001 12:01:06 -0400
- To: MURAKAMI Shinyu <murakami@nadita.com>
- Cc: xsl-editors@w3.org
>> >> >The is-first/last problem is not only about border/paddings but also >> >about spaces. However the problem is different. >> > >> >Example of conditional spaces: >> > >> > <fo:block> >> > <fo:inline space-start="1cm" >> > space-start.conditionality="discard" >> > space-end="1cm" >> > space-end.conditionality="discard"> >> >This inline begins a line, has conditional space-start/end, and >> >continues to the next line. >> > </fo:inline> >> > <fo:inline>Here is another inline.</fo:inline> >> > </fo:block> >> > >> >The expected result is: (here [SPACE-*] represents spaces) >> > >> > This inline begins a line, has conditional space-start/end, >> > and continues to the next line.[SPACE-END]Here is another inline. >> > >> > >> >Note that the space-before of the first inline-area is discarded >> >(different from conditional padding/borders). Spaces are normally used >> >as separator and should be descarded at the first and last. >> > >> >Example of non-conditional spaces: >> > >> > <fo:block> >> > <fo:inline space-start="1cm" >> > space-start.conditionality="retain" >> > space-end="1cm" >> > space-end.conditionality="retain"> >> >This inline begins a line, has non-conditional space-start/end, and >> >continues to the next line. >> > </fo:inline> >> > <fo:inline>Here is another inline.</fo:inline> >> > </fo:block> >> > >> >A possible result is: >> > >> > [SPACE-START]This inline begins a line, has non-conditional[SPACE-END] >> > [SPACE-START]space-start/end, and continues to the next[SPACE-END] >> > [SPACE-STAET]line.[SPACE-END]Here is another inline. >> > >> >According to the current XSL CR spec this seems to be correct, but >> >probably the following is more reasonable. >> > >> > [SPACE-START]This inline begins a line, has non-conditional space- >> > start/end, and continues to the next line.[SPACE-END]Here is another >> > inline. >> > >> >An important point is that the latter is compatible with CSS margins and >> >the former is not. >> > >> >Therefore, I think the rule should be changed. >> > >> >Any space-before and space-start should not have effect on areas that >> >have an is-first value of "false". >> >Any space-after and space-end should not have effect on areas that have >> >an is-last value of "false". >> >(i.e., when an area is split, spaces have no effect where the split >> >occurs.) >> >> The intended usage of space-start and space-end is for effects >> like letter-spacing and for that usage I think that the semantics >> as defined in the CR are correct (notably that they are INDEPENDENT >> of the is-first and is-last value). The functionality that you >> seem to be looking for appears to me covered by generating an >> fo:character (with code U+0020 or another "space" value if "20" is >> a candidate for removal) with appropriate properties before and after >> the first fo:inline. > > >The problem is compatibility with CSS margins. >You wrote in another reply ("Re: XSL-FO: corresponding margin and space >properties"): > >|We will add text, in the refinement section, that the mapping >|from margins includes setting .conditionality to "retain". The actual text in the current draft specified that the "retain" setting ONLY applies to space-before and space-after and ONLY if these are mapped from margins. (If this is not the case then the value of "discard" is part of the setting [unless a value is explicitly specified, of course]). >But the CSS spec says that margins have no effect where the split occurs. > >(Of course it is not only inline-level spaces problem but also block- >level's although I omitted the example.) > >The CSS margin/border/padding's implicit conditionality is: > > <conditionality-at-first-and-last> = "retain" > <conditionality-at-break> = "discard" > >In XSL, border/padding's conditionality: > > <conditionality-at-first-and-last> = "retain" > <conditionality-at-break> = can be specified > >And space's conditionality (my proposal): > > <conditionality-at-first-and-last> = can be specified > <conditionality-at-break> = "discard" This will be considered in a future XSL version. Ideally one would like to have additional control over many individual properties at a break - e.g. justification, and indents for the "first" and "last" line in each "piece" of a broken block. >or both types of conditionality should be able to be specified. > e.g. > space-before.conditionality-at-first-and-last="retain" > space-before.conditionality-at-break="discard" > > (it is compatible with CSS margin) > >If you reject this proposal, you should withdraw the margin to space >mapping with setting .conditionality to "retain". We are in a sense - since, in the situation you seem to refer to, the "special setting" is not applied. >Best regards, > >Shinyu Murakami >Antenna House XSL Formatter team
Received on Tuesday, 3 July 2001 12:01:43 UTC