This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
I've just stumbled over something in the spec. 7.17.2 letter-spacing (in XSL 1.1 CR, similar in XSL 1.0) mentions that letter-spacing is applied in halves before and after every character that is classified as "Alphabetic" in the Unicode database. This does not include characters like "-" (002D) or "/" (002F). Assume an fo:block which allows for letter-spacing that contains the text "XSL-FO". Between "S" and "L", you get two half letter-spaces (together 1 letter-space). Between "L" and "-", you get only one half letter-space if you strictly follow the spec. This is not quite what I would expect and not what various layouters currently do (Apache FOP, two commercial FO implementations I checked, OpenOffice 2.0 and Word 2003). Am I missing something or is this a problem in the spec? For quick reference, here's the beginning of the character ranges making up "Alphabetic" characters (from DerivedCoreProperties.txt, v4.1.0): # Derived Property: Alphabetic # Generated from: Lu+Ll+Lt+Lm+Lo+Nl + Other_Alphabetic 0041..005A ; Alphabetic # L& [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z 0061..007A ; Alphabetic # L& [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z 00AA ; Alphabetic # L& FEMININE ORDINAL INDICATOR 00B5 ; Alphabetic # L& MICRO SIGN 00BA ; Alphabetic # L& MASCULINE ORDINAL INDICATOR 00C0..00D6 ; Alphabetic # L& [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS 00D8..00F6 ; Alphabetic # L& [31] LATIN CAPITAL LETTER O WITH STROKE..LATIN SMALL LETTER O WITH DIAERESIS 00F8..01BA ; Alphabetic # L& [195] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL
This modifies http://lists.w3.org/Archives/Public/xsl-editors/2007JanMar/0005.html The XSL FO SG decided to start the processing of an erratum to XSL 1.1 as follows: Change to 7.17.2 letter-spacing: Replace the paragraph "For an fo:character that in the Unicode database is classified as "Alphabetic", unless the treat-as-word-space trait has the value "true", the space-start and space-end traits are each set to a value as follows:" with The set of fo:characters to which the letter-spacing is applied is implementation defined. Note: Typically the set is all characters with the following exceptions: - combining diacritics - characters where the treat-as-word-space trait has the value "true" - fixed witdh spaces (U+2000 - U+200B) and dashes (U+2012 - U+2013) - certain symbols, e.g. box drawing - characters in scripts where the letters are connected; e.g. Arbaic - characters in fonts where the letters are connected; e.g. a latin "script" font For an fo:character that in the Unicode database is classified as "Alphabetic", unless the treat-as-word-space trait has the value "true", the space-start and space-end traits are each set to a value as follows: