css-fonts/Fonts.html

changeset 8213
6fc1fa06eae3
parent 8198
d4d9fa6daec2
child 8225
351f9086c29d
     1.1 --- a/css-fonts/Fonts.html	Tue May 21 13:13:09 2013 +0800
     1.2 +++ b/css-fonts/Fonts.html	Tue May 21 17:25:57 2013 +0800
     1.3 @@ -112,7 +112,7 @@
     1.4  
     1.5     <h1>CSS Fonts Module Level 3</h1>
     1.6  
     1.7 -   <h2 class="no-num no-toc" id=editors-draft-20-may-2013>Editor's Draft 20
     1.8 +   <h2 class="no-num no-toc" id=editors-draft-21-may-2013>Editor's Draft 21
     1.9      May 2013</h2>
    1.10  
    1.11     <dl id=authors>
    1.12 @@ -120,7 +120,7 @@
    1.13  
    1.14      <dd><a
    1.15       href="http://dev.w3.org/csswg/css-fonts/">http://dev.w3.org/csswg/css-fonts/</a>
    1.16 -     <!-- <dd><a href="http://www.w3.org/TR/2013/ED-css3-fonts-20130520/">http://www.w3.org/TR/2013/ED-css3-fonts-20130520/</a> -->
    1.17 +     <!-- <dd><a href="http://www.w3.org/TR/2013/ED-css3-fonts-20130521/">http://www.w3.org/TR/2013/ED-css3-fonts-20130521/</a> -->
    1.18       
    1.19  
    1.20      <dt>Latest version:
    1.21 @@ -2332,10 +2332,10 @@
    1.22  
    1.23    <p>The name can optionally be enclosed in quotes. For OpenType and TrueType
    1.24     fonts, this string is used to match only the Postscript name or the full
    1.25 -   font name in the name table of locally available fonts. Which is used
    1.26 -   varies by platform and font, so authors should include both of these names
    1.27 -   to assure proper matching across platforms. Platform substitutions for a
    1.28 -   given font name must not be used.
    1.29 +   font name in the name table of locally available fonts. Which type of name
    1.30 +   is used varies by platform and font, so authors should include both of
    1.31 +   these names to assure proper matching across platforms. Platform
    1.32 +   substitutions for a given font name must not be used.
    1.33  
    1.34    <pre>
    1.35  /* bold face of Gentium */
    1.36 @@ -2510,7 +2510,7 @@
    1.37     properties except that relative keywords are not allowed, ‘<code
    1.38     class=property>bolder</code>’ and ‘<code
    1.39     class=property>lighter</code>’. If these descriptors are omitted,
    1.40 -   default values are assumed.
    1.41 +   initial values are assumed.
    1.42  
    1.43    <p>The value for these font face style attributes is used in place of the
    1.44     style implied by the underlying font data. This allows authors to combine
    1.45 @@ -2533,7 +2533,7 @@
    1.46      <tr>
    1.47       <td>Value:
    1.48  
    1.49 -     <td>&lt;urange>#
    1.50 +     <td><dfn id=lturange>&lt;urange></dfn>#
    1.51  
    1.52      <tr>
    1.53       <td><em>Initial:</em>
    1.54 @@ -2541,58 +2541,120 @@
    1.55       <td>U+0-10FFFF
    1.56    </table>
    1.57  
    1.58 -  <p>This descriptor defines the range of Unicode characters supported by a
    1.59 -   given font. The values of <span class=index-def id=lturangegt
    1.60 -   title="&lt;urange&gt;"><a name=value-def-urange>&lt;urange&gt;</a></span>
    1.61 -   are expressed using hexadecimal numbers prefixed by "U+" or "u+",
    1.62 -   corresponding to <a href="http://www.unicode.org/charts/">Unicode
    1.63 -   character code points</a>. The unicode-range descriptor serves as a hint
    1.64 -   for user agents when deciding whether or not to download a font resource.
    1.65 -
    1.66 -  <p>Unicode range values are written using hexadecimal values and are ASCII
    1.67 -   case-insensitive. Each is prefixed by "U+" or "u+" and multiple,
    1.68 -   discontinuous ranges are separated by commas. Whitespace before or after
    1.69 -   commas is ignored. Valid character code values vary between 0 and 10FFFF
    1.70 -   inclusive. A single range has three basic forms:
    1.71 +  <p>This descriptor defines the set of Unicode codepoints that may be
    1.72 +   supported by the font face for which it is declared. The descriptor value
    1.73 +   is a comma-delimited list of Unicode range (<dfn id=lturangegt
    1.74 +   title=value-def-urange><code>&lt;urange&gt;</code></dfn>) values. The
    1.75 +   union of these ranges defines the set of codepoints that serves as a hint
    1.76 +   for user agents when deciding whether or not to download a font resource
    1.77 +   for a given text run.
    1.78 +
    1.79 +  <p>Each <code>&lt;urange&gt;</code> value is a <a
    1.80 +   href="#descdef-unicode-range"><code>UNICODE-RANGE</code></a> token made up
    1.81 +   of a "U+" or "u+" prefix followed by a codepoint range in one of the three
    1.82 +   forms listed below. Ranges that do not fit one of the these three forms
    1.83 +   are considered to be parse errors and the descriptor is omitted.
    1.84  
    1.85    <ul>
    1.86     <li>a single code point (e.g. U+416)
    1.87  
    1.88 -   <li>an interval value range (e.g. U+400-4ff)
    1.89 -
    1.90 -   <li>a range where trailing ‘<code class=css>?</code>’ characters imply
    1.91 -    ‘<code class=css>any digit value</code>’ (e.g. U+4??)
    1.92 +   <li>an interval value range defined by two hyphen-separated codepoints
    1.93 +    that indicate the inclusive start and end codepoints of a range (e.g.
    1.94 +    U+400-4ff)
    1.95 +
    1.96 +   <li>a wildcard value range where trailing ‘<code class=css>?</code>’
    1.97 +    characters imply ‘<code class=css>any digit value</code>’ (e.g.
    1.98 +    U+4??)
    1.99    </ul>
   1.100  
   1.101 -  <p>Ranges that do not fit any of the above three forms are considered to be
   1.102 -   parse errors and the descriptor is omitted. Interval ranges consisting of
   1.103 -   a single code point are valid. Ranges specified with ‘?’ that lack an
   1.104 -   initial digit (e.g. "U+???") are also valid, and are treated as if there
   1.105 -   was a single 0 before the question marks (thus, "U+???" = "U+0???" =
   1.106 -   "U+0000-0FFF"). "U+??????" is not a syntax error, even though "U+0??????"
   1.107 -   would be. Ranges can overlap but interval ranges that descend (e.g.
   1.108 -   U+400-32f) are invalid and omitted rather than treated as parse errors;
   1.109 -   they have no effect on other ranges in a list of ranges. Ranges are
   1.110 -   clipped to the domain of Unicode code points (currently 0 – 10FFFF
   1.111 -   inclusive); a range entirely outside the domain is omitted. Without any
   1.112 -   valid ranges, the descriptor is omitted. User agents may normalize the
   1.113 -   list of ranges into a list that is different but represents the same set
   1.114 -   of character code points.
   1.115 -
   1.116 -  <p>The character range can be a subset of the full <a
   1.117 -   href="#character-map"><em>character map</em></a> of the underlying font.
   1.118 -   The effective unicode-range used when mapping characters to fonts is the
   1.119 -   intersection of the unicode range specified and the underlying <a
   1.120 -   href="#character-map"><em>character map</em></a> of the font. This means
   1.121 -   that authors do not need to define the unicode-range of a font precisely,
   1.122 -   broad ranges for which a sparse set of code points are defined in the font
   1.123 -   can be used. Code points outside of the defined unicode-range are ignored,
   1.124 -   regardless of whether the font contains a glyph for that code point or
   1.125 -   not. User agents that download fonts for characters outside the defined
   1.126 -   unicode-range are considered non-conformant. Likewise, user agents that
   1.127 -   render a character using a font resource for which the defined
   1.128 -   unicode-range does not include that character are also considered
   1.129 -   non-conformant.
   1.130 +  <p>Individual codepoints are written using hexadecimal values that
   1.131 +   correspond to <a href="http://www.unicode.org/charts/">Unicode character
   1.132 +   codepoints</a>. Valid character code values vary between 0 and 10FFFF
   1.133 +   inclusive. They are ASCII case-insensitive.
   1.134 +
   1.135 +  <p>For interval ranges, the start and end codepoints must be valid Unicode
   1.136 +   values and the end codepoint must be greater than or equal to the start
   1.137 +   codepoint. Wildcard ranges specified with ‘?’ that lack an initial
   1.138 +   digit (e.g. "U+???") are valid and treated as if there was a single 0
   1.139 +   before the question marks (thus, "U+???" = "U+0???" = "U+0000-0FFF").
   1.140 +   "U+??????" is not a syntax error, even though "U+0??????" would be.
   1.141 +   Wildcard ranges that extend beyond the end of valid codepoint values are
   1.142 +   clipped to the range of valid codepoint values. Ranges that do not conform
   1.143 +   to these restrictions are considered parse errors and the descriptor is
   1.144 +   omitted.
   1.145 +
   1.146 +  <p>Within the comma-delimited list of Unicode ranges in a ‘<a
   1.147 +   href="#descdef-unicode-range"><code
   1.148 +   class=property>unicode-range</code></a>’ descriptor declaration, ranges
   1.149 +   may overlap. Whitespace before or after commas is ignored. The union of
   1.150 +   these ranges defines the set of codepoints for which the corresponding
   1.151 +   font may be used. User agents must not download or use the font for
   1.152 +   codepoints outside this set. User agents may normalize the list of ranges
   1.153 +   into a list that is different but represents the same set of codepoints.
   1.154 +
   1.155 +  <p>The associated font may not contain glyphs for the entire set of
   1.156 +   codepoints defined by the ‘<a href="#descdef-unicode-range"><code
   1.157 +   class=property>unicode-range</code></a>’ descriptor. When the font is
   1.158 +   used the effective character map is the intersection of the codepoints
   1.159 +   defined by ‘<a href="#descdef-unicode-range"><code
   1.160 +   class=property>unicode-range</code></a>’ with the font's character map.
   1.161 +   This allows authors to define supported ranges in terms of broad ranges
   1.162 +   without worrying about the precise codepoint ranges supported by the
   1.163 +   underlying font.</p>
   1.164 +  <!--
   1.165 +<p>This descriptor defines the range of Unicode characters supported by
   1.166 +a given font.  The values of <span class="index-def"
   1.167 +title="&lt;urange&gt;"><a
   1.168 +name="value-def-urange">&lt;urange&gt;</a></span> are expressed using
   1.169 +hexadecimal numbers prefixed by "U+" or "u+", corresponding to <a
   1.170 +href="http://www.unicode.org/charts/">Unicode character code points</a>.
   1.171 +The unicode-range descriptor serves as a hint for user agents when
   1.172 +deciding whether or not to download a font resource.</p>
   1.173 +
   1.174 +<p>Unicode range values are written using hexadecimal values and are ASCII
   1.175 +case-insensitive.  Each is prefixed by "U+" or "u+" and multiple, discontinuous
   1.176 +ranges are separated by commas.  Whitespace before or after commas is
   1.177 +ignored.  Valid character code values vary between 0 and 10FFFF
   1.178 +inclusive.  A single range has three basic forms:
   1.179 +</p>
   1.180 +
   1.181 +<ul>
   1.182 +  <li>a single code point (e.g. U+416)</li>
   1.183 +  <li>an interval value range (e.g. U+400-4ff)</li>
   1.184 +  <li>a range where trailing '?' characters imply 'any digit value' (e.g. U+4??)</li>
   1.185 +</ul>
   1.186 +
   1.187 +<p>Ranges that do not fit any of the above three forms are considered to
   1.188 +be parse errors and the descriptor is omitted. Interval ranges
   1.189 +consisting of a single code point are valid. Ranges specified with ‘?’
   1.190 +that lack an initial digit (e.g. "U+???") are also valid, and are
   1.191 +treated as if there was a single 0 before the question marks (thus,
   1.192 +"U+???" = "U+0???" = "U+0000-0FFF"). "U+??????" is not a syntax error,
   1.193 +even though "U+0??????" would be. Ranges can overlap but interval ranges
   1.194 +that descend (e.g. U+400-32f) are invalid and omitted rather than
   1.195 +treated as parse errors; they have no effect on other ranges in a list
   1.196 +of ranges. Ranges are clipped to the domain of Unicode code points
   1.197 +(currently 0 – 10FFFF inclusive); a range entirely outside the domain is
   1.198 +omitted. Without any valid ranges, the descriptor is omitted. User
   1.199 +agents may normalize the list of ranges into a list that is different
   1.200 +but represents the same set of character code points.
   1.201 +</p>
   1.202 +
   1.203 +<p>The character range can be a subset of the full <em>character map</em> of the
   1.204 +underlying font.  The effective unicode-range used when mapping
   1.205 +characters to fonts is the intersection of the unicode range specified
   1.206 +and the underlying <em>character map</em> of the font.  This means that authors
   1.207 +do not need to define the unicode-range of a font precisely, broad
   1.208 +ranges for which a sparse set of code points are defined in the font can
   1.209 +be used.  Code points outside of the defined unicode-range are ignored,
   1.210 +regardless of whether the font contains a glyph for that code point or
   1.211 +not.  User agents that download fonts for characters outside the defined
   1.212 +unicode-range are considered non-conformant.  Likewise, user agents that
   1.213 +render a character using a font resource for which the defined
   1.214 +unicode-range does not include that character are also considered
   1.215 +non-conformant.
   1.216 +</p>
   1.217 +-->
   1.218  
   1.219    <p>Example ranges for specific languages or characters:
   1.220  
   1.221 @@ -2799,7 +2861,7 @@
   1.222       <td>normal
   1.223    </table>
   1.224  
   1.225 -  <p>These descriptors define default settings that apply when the font
   1.226 +  <p>These descriptors define initial settings that apply when the font
   1.227     defined by an <code>@font-face</code> rule is rendered. They do not affect
   1.228     font selection. Values are identical to those defined for the
   1.229     corresponding ‘<a href="#propdef-font-variant"><code
   1.230 @@ -5861,8 +5923,8 @@
   1.231     <li>&lt;relative-size&gt;, <a href="#ltrelative-sizegt"
   1.232      title="&lt;relative-size&gt;"><strong>3.5</strong></a>
   1.233  
   1.234 -   <li>&lt;urange&gt;, <a href="#lturangegt"
   1.235 -    title="&lt;urange&gt;"><strong>4.5</strong></a>
   1.236 +   <li>&lt;urange>, <a href="#lturange"
   1.237 +    title="&lt;urange>"><strong>4.5</strong></a>
   1.238  
   1.239     <li>@font-face, <a href="#font-face" title="@font-face">4.1</a>, <a
   1.240      href="#font-face0" title="@font-face">4.3</a>
   1.241 @@ -6119,6 +6181,9 @@
   1.242     <li>unicode-range, <a href="#descdef-unicode-range"
   1.243      title=unicode-range><strong>4.5</strong></a>
   1.244  
   1.245 +   <li>value-def-urange, <a href="#lturangegt"
   1.246 +    title=value-def-urange><strong>4.5</strong></a>
   1.247 +
   1.248     <li>weight, <a href="#weight" title=weight><strong>2</strong></a>
   1.249  
   1.250     <li>width, <a href="#width" title=width><strong>2</strong></a>

mercurial