This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 6274 - Reference to "Alphabetic" in 7.17.2 letter-spacing
Summary: Reference to "Alphabetic" in 7.17.2 letter-spacing
Status: RESOLVED FIXED
Alias: None
Product: XSLFO
Classification: Unclassified
Component: XSL-FO (show other bugs)
Version: 1.1
Hardware: All All
: P2 normal
Target Milestone: ---
Assignee: Anders Berglund
QA Contact: Mailing list for comments on XSL (XSl-FO)
URL: http://lists.w3.org/Archives/Public/x...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-12-04 14:59 UTC by Tony Graham
Modified: 2008-12-04 17:21 UTC (History)
0 users

See Also:


Attachments

Description Tony Graham 2008-12-04 14:59:52 UTC
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
Comment 1 Tony Graham 2008-12-04 17:21:37 UTC
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: