<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; ">I agree with you, in theory. But in fact, XSLT is very poorly equipped for dealing with this problem, which is essentially to replace all occurrences of a regular expression in a string with another regular expression. And to provide a full solution for the problem -- which involves detecting cases where the space(s) and the punctuation mark are separated by XML markup -- would call for some truly gnarly XSLT code.<DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Geoff<DIV><BR><DIV><DIV>On 30 Oct 2006, at 14:12, W. Eliot Kimber wrote:</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite"><P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">However, I also know that the line casting algorithms that any composition system will use are by their nature complex and it may not be easy to add something like a rule that says "if language is {any language that uses French typographic conventions} treat space before {relevant punctuation character} as non-breaking space".</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><BR></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">I would think that this is something that can be addressed fairly well in the initial FO generation process even if you'd rather not have to do so and doing so will likely slow down the transform (because you have to examine most, if not all, text nodes in the input document).</FONT></P> </BLOCKQUOTE></DIV><BR></DIV></DIV></DIV></BODY></HTML>