17.3.2.26 rFonts
This element specifies the fonts which shall be used to display the text contents of this run. Within a single run, there can be up to four types of font slot which shall each be allowed to use a unique font:
-
ASCII (i.e., the first 128 Unicode code points)
-
High ANSI
-
Complex Script
-
East Asian
If this element is not present, the default value is to leave the formatting applied at previous level in the style hierarchy. If this element is never applied in the style hierarchy, then the text shall be displayed in any default font which supports that set of characters.
[Example: Consider a single text run with both Arabic and English text, which can be expressed as follows:
<w:r>
<w:rPr>
<w:rFonts w:ascii="Courier New" w:cs="Times New Roman" />
</w:rPr>
<w:t>English ةيبرعلا</w:t>
</w:r>
In this run, both “English” and “ةيبرعلا” should be in ASCII font slot, according to the two-step algorithm below. Therefore, both of them should be in the Courier New font face.
The same content can also be expressed as follows:
<w:r>
<w:rPr>
<w:rFonts w:ascii="Courier New" w:cs="Times New Roman" />
<w:rtl/>
</w:rPr>
<w:t>English ةيبرعلا</w:t>
</w:r>
In this run, both “English” and “ةيبرعلا” should be in Complex Script font slot, according to the two-step algorithm. Therefore, both of them should be in the Times New Roman font face. end example]
For each Unicode character in a run, the font slot can be determined using the following two-step methodology:
- Use the table below to decide the classification of the content, based on its Unicode code point.
Unicode Block
Range
Classification
Basic Latin
U+0000–U+007F
ASCII font
Unicode Block
Range
Latin-1 Supplement
U+00A0–U+00FF
Latin Extended-A
U+0100–U+017F
Latin Extended-B
U+0180–U+024F
IPA Extensions
U+0250–U+02AF
Spacing Modifier Letters
U+02B0–U+02FF
Combining Diacritical Marks
U+0300–U+036F
Greek
U+0370–U+03CF
Cyrillic
U+0400–U+04FF
Hebrew
U+0590–U+05FF
Arabic
U+0600–U+06FF
Syriac
U+0700–U+074F
Arabic Supplement
U+0750–U+077F
Thaana
U+0780–U+07BF
Classification
High ANSI font, with the following exceptions: - If the value of the hint attribute is eastAsia, the following characters use East Asian font (or eastAsiaTheme if defined): A1, A4, A7 – A8, AA, AD, AF, B0 – B4, B6 – BA, BC – BF, D7, F7 If the value of the hint attribute is eastAsia and the language component of the language specified in the eastAsia attribute on the lang element is “zh”, the following characters use East Asian font (or eastAsiaTheme if defined): E0 – E1, E8 – EA, EC – ED, F2 – F3, F9 – FA, FC
High ANSI font, with the following exception: If the value of the hint attribute is eastAsia, and the language component of the language specified in the eastAsia attribute on the lang element is “zh”, or the character set of the East Asian font (or eastAsiaTheme if defined) font is Big5 or GB2312, then East Asian font is used.
High ANSI font, with the following exception: If the value of the hint attribute is eastAsia, and the language component of the language specified in the eastAsia attribute on the lang element is “zh”, or the character set of the East Asian font (or eastAsiaTheme if defined) font is Big5 or GB2312, then East Asian font is used.
High ANSI font, with the following exception: If the value of the hint attribute is eastAsia, and the language component of the language specified in the eastAsia attribute on the lang element is “zh”, or the character set of the East Asian font (or eastAsiaTheme if defined) font is Big5 or GB2312, then East Asian font is used.
If the value of the hint attribute is eastAsia then East Asian font is used, otherwise High ANSI font is used.
If the value of the hint attribute is eastAsia then East Asian font is used, otherwise High ANSI font is used.
If the value of the hint attribute is eastAsia then East Asian font is used, otherwise High ANSI font is used.
If the value of the hint attribute is eastAsia then East Asian font is used, otherwise High ANSI font is used.
ASCII font
ASCII font
ASCII font
ASCII font
ASCII font
Unicode Block
Hangul Jamo
Latin Extended Additional
Greek Extended
General Punctuation
Superscripts and Subscripts
Currency Symbols
Combining Diacritical Marks for Symbols
Letter-like Symbols
Number Forms
Arrows
Mathematical Operators
Miscellaneous Technical
Control Pictures
Optical Character Recognition
Enclosed Alphanumerics
Box Drawing
Block Elements
Geometric Shapes
Miscellaneous Symbols
Range
U+1100–U+11FF
U+1E00–U+1EFF
U+1F00–U+1FFF
U+2000–U+206F
U+2070–U+209F
U+20A0–U+20CF
U+20D0–U+20FF
U+2100–U+214F
U+2150–U+218F
U+2190–U+21FF
U+2200–U+22FF
U+2300–U+23FF
U+2400–U+243F
U+2440–U+245F
U+2460–U+24FF
U+2500–U+257F
U+2580–U+259F
U+25A0–U+25FF
U+2600–U+26FF
East Asian font
Classification
High ANSI font, with the following exception: If the value of the hint attribute is eastAsia and the language component of the language specified in the eastAsia attribute on the lang element is “zh”, then East Asian is used.
High ANSI font
If the value of the hint attribute is eastAsia then East Asian font is used, otherwise High ANSI font is used.
If the value of the hint attribute is eastAsia then East Asian font is used, otherwise High ANSI font is used.
If the value of the hint attribute is eastAsia then East Asian font is used, otherwise High ANSI font is used.
If the value of the hint attribute is eastAsia then East Asian font is used, otherwise High ANSI font is used.
If the value of the hint attribute is eastAsia then East Asian font is used, otherwise High ANSI font is used.
If the value of the hint attribute is eastAsia then East Asian font is used, otherwise High ANSI font is used.
If the value of the hint attribute is eastAsia then East Asian font is used, otherwise High ANSI font is used.
If the value of the hint attribute is eastAsia then East Asian font is used, otherwise High ANSI font is used.
If the value of the hint attribute is eastAsia then East Asian font is used, otherwise High ANSI font is used.
If the value of the hint attribute is eastAsia then East Asian font is used, otherwise High ANSI font is used.
If the value of the hint attribute is eastAsia then East Asian font is used, otherwise High ANSI font is used.
If the value of the hint attribute is eastAsia then East Asian font is used, otherwise High ANSI font is used.
If the value of the hint attribute is eastAsia then East Asian font is used, otherwise High ANSI font is used.
If the value of the hint attribute is eastAsia then East Asian font is used, otherwise High ANSI font is used.
If the value of the hint attribute is eastAsia then East Asian font is used, otherwise High ANSI font is used.
If the value of the hint attribute is eastAsia then East Asian font is used, otherwise High ANSI font is used.
Unicode Block
Range
Dingbats
U+2700–U+27BF
CJK Radicals Supplement
U+2E80–U+2EFF
Kangxi Radicals
U+2F00–U+2FDF
Ideographic Description Characters
U+2FF0–U+2FFF
CJK Symbols and Punctuation
U+3000–U+303F
Hiragana
U+3040–U+309F
Katakana
U+30A0–U+30FF
Bopomofo
U+3100–U+312F
Hangul Compatibility Jamo
U+3130–U+318F
Kanbun
U+3190–U+319F
Enclosed CJK Letters and Months
U+3200–U+32FF
CJK Compatibility
U+3300–U+33FF
CJK Unified Ideographs Extension A
U+3400–U+4DBF
CJK Unified Ideographs
U+4E00–U+9FAF
Yi Syllables
U+A000–U+A48F
Yi Radicals
U+A490–U+A4CF
Hangul Syllables
U+AC00–U+D7AF
High Surrogates
U+D800–U+DB7F
High Private Use Surrogates
U+DB80–U+DBFF
Low Surrogates
U+DC00–U+DFFF
Private Use Area
U+E000–U+F8FF
CJK Compatibility Ideographs
U+F900–U+FAFF
Alphabetic Presentation Forms
U+FB00–U+FB4F
Arabic Presentation Forms-A
U+FB50–U+FDFF
Classification
If the value of the hint attribute is eastAsia then East Asian font is used, otherwise High ANSI font is used.
East Asian font
East Asian font
East Asian font
East Asian font
East Asian font
East Asian font
East Asian font
East Asian font
East Asian font
East Asian font
East Asian font
East Asian font
East Asian font
East Asian font
East Asian font
East Asian font
East Asian font
East Asian font
East Asian font
If the value of the hint attribute is eastAsia then East Asian font is used, otherwise High ANSI font is used.
East Asian font
If the value of the hint attribute is eastAsia then East Asian font is used for characters in the range FB00 – FB1C, otherwise High ANSI font is used. For the range FB1D – FB4F, ASCII font is used.
ASCII font
Unicode Block
Range
CJK Compatibility Forms
U+FE30–U+FE4F
Small Form Variants
U+FE50–U+FE6F
Arabic Presentation Forms-B
U+FE70–U+FEFE
Halfwidth and Fullwidth Forms
U+FF00–U+FFEF
Classification
East
Asian font
East Asian font
ASCII font
East Asian font
- If, after the first step, the character falls into East Asian classification and the value of the hint attribute
- is eastAsia, then the character should use East Asian font slot a. Otherwise, if there is <w:cs/> or <w:rtl/> in this run, then the character should use Complex Script font slot, regardless of its Unicode code point. i. Otherwise, the character is decided using the font slot that is corresponding to the classification in the table above.
Once the font slot for the run has been determined using the above steps, the appropriate formatting elements (either complex script or non-complex script) will affect the content.
[Note: This process is also represented in the following diagram:
end note]
[Example: Consider text with both English and East Asian character in this WordprocessingML:
<w:rPr>
<w:rFonts
<w:bCs/>
<w:rtl/>
</w:rPr>
<w:t> English
In this example, all the characters in the table are first checked. Because 中文 falls into East Asian classification and plus the value of the hint attribute is eastAsia in the run, the characters should use East Asian font slot, and in turn <w:bCs/> (17.3.2.2) should not be able to make it bold. As to English, because it does not fall into the East Asian classification and there is <w:rtl/> in this run, it should use Complex Script font slot, regardless of its Unicode code point. And in turn, <w:bCs/> should be able to make it bold. Therefore, in the document, English should be bold, while 中文 should be regular, as illustrated below:
end example]
[Example: Consider a single text run with both Arabic and English text, as follows:
Englishةيبرعلا
This content can be expressed in a single WordprocessingML run:
<w:r>
<w:t>English ةيبرعلا</w:t>
</w:r>
Although it is in the same run, the content is in different font faces by specifying a different font for ASCII and CS characters in the run:
<w:r>
<w:rPr>
<w:rFonts w:ascii="Courier New" w:cs="Times New Roman" />
</w:rPr>
<w:t>English ةيبرعلا</w:t>
</w:r>
This text run must therefore use the Courier New font for all characters in the range U+0000 to U+007F, and must use the Times New Roman font for all characters in the Complex Script range. end example]
Attributes
asciiTheme (ASCII Theme Font)
Specifies a theme font which shall be used to format all characters in the Unicode code point range (U+0000–U+007F) within the parent run. This theme font is a reference to one of the predefined theme fonts, located in the document’s Theme part,which allows for font information to be set centrally in the document.
If the ascii attribute is also specified, then that attribute shall be ignored and this value shall be used instead.
If this attribute is not present, the default value is to leave the formatting applied at previous level in the style hierarchy. If this attribute is never applied in the style hierarchy, then the text shall be displayed in the font specified by the ascii attribute.
[Example: Consider a run of ASCII text which must be displayed using the majorAscii theme font. This requirement would be specified as follows in the resulting WordprocessingML:
<w:rPr>
<w:rFonts w:asciiTheme="majorAscii" />
</w:rPr>
The ascii attribute specifies that the run must use the majorAscii theme font as defined in the document’s themes part for all text in this range. end example]
The possible values for this attribute are defined by the ST_Theme simple type (17.18.96).
ascii (ASCII Font)
Specifies a font which shall be used to format all characters in the Unicode code point range (U+0000–U+007F) within the parent run.
If the asciiTheme attribute is also specified, then this attribute shall be ignored and that value shall be used instead.
If this attribute is not present, the default value is to leave the formatting applied at previous level in the style hierarchy. If this attribute is never applied in the style hierarchy, then the text shall be displayed in any default font which supports these characters.
[Example: Consider a run of text consisting of characters in this range, which must be displayed using the Courier New font. This requirement would be specified as follows in the resulting WordprocessingML:
<w:rPr>
<w:rFonts w:ascii="Courier New" />
</w:rPr>
The ascii attribute specifies that the run must use the Courier New font for all text in thisrange. end example]
The possible values for this attribute are defined by the ST_String simple type (22.9.2.13).
cstheme (Complex Script Theme Font)
Specifies a theme font which shall be used to format all characters that are determined to be in the Complex Script font slot within the parent run. This theme font is a reference to one of the predefined theme fonts, located in the document’s Theme part,which allows for font information to be set centrally in the document.
If the cs attribute is also specified, then that attribute shall be ignored and this value shall be used instead.
If this attribute is not present, the default value is to leave the formatting applied at previous level in the style hierarchy. If this attribute is never applied in the style hierarchy, then the text shall be displayed in the font specified by the cs attribute.
[Example: Consider a run of Arabic text that must be displayed using the majorBidi
theme font. This requirement would be specified as follows in the resulting WordprocessingML:
<w:rPr>
<w:rFonts w:cstheme="majorBidi" />
<w:cs />
</w:rPr>
The cstheme attribute specifies that the run must use the majorBidi theme font as defined in the document’s themes part for all text in a complex script range. end example]
The possible values for this attribute are defined by the ST_Theme simple type (17.18.96).
cs (Complex Script Font)
Specifies a font which shall be used to format all characters that are determined to be in the Complex Script font slot within the parent run.
If the cstheme attribute is also specified, then this attribute shall be ignored and that value shall be used instead.
If this attribute is not present, the default value is to leave the formatting applied at previous level in the style hierarchy. If this attribute is never applied in the style hierarchy, then the text shall be displayed in any default font which supports complex script content.
[Example: Consider a run of Arabic text which must be displayed using the Arial WordprocessingML:
<w:rPr>
<w:rFonts w:cs="Arial Unicode MS" />
<w:cs />
</w:rPr>
The cs attribute specifies that the run must use the Arial Unicode MS font for all text in a complex script range. end example]
The possible values for this attribute are defined by the ST_String simple type (22.9.2.13).
eastAsiaTheme (East Asian Theme Font)
Specifies a theme font which shall be used to format all characters in an East Asian Unicode code point range within the parent run. This theme font is a reference to one of the predefined theme fonts, located in the document’s Theme part,which allows for font information to be set centrally in the document.
If the eastAsia attribute is also specified, then that attribute shall be ignored and this value shall be used instead.
If this attribute is not present, the default value is to leave the formatting applied at
previous level in the style hierarchy. If this attribute is never applied in the style hierarchy, then the text shall be displayed in the font specified by the eastAsia attribute.
[Example: Consider a run of Japanese text which must be displayed using the resulting WordprocessingML:
<w:rPr>
<w:rFonts w:eastAsiaTheme="minorEastAsia" />
</w:rPr>
The eastAsiaTheme attribute specifies that the run must use the minorEastAsia theme font as defined in the document’s themes part for all text in an East Asian range. end example]
The possible values for this attribute are defined by the ST_Theme simple type (17.18.96).
eastAsia (East Asian Font)
Specifies a font which shall be used to format all characters in an East Asian Unicode code point range within the parent run.
If the eastAsiaTheme attribute is also specified, then this attribute shall be ignored and that value shall be used instead.
If this attribute is not present, the default value is to leave the formatting applied at previous level in the style hierarchy. If this attribute is never applied in the style hierarchy, then the text shall be displayed in any default font which supports East Asian content.
[Example: Consider a run of Japanese text which must be displayed using the MS Mincho font. This requirement would be specified as follows in the resulting WordprocessingML:
<w:rPr>
<w:rFonts w:eastAsia="MS Mincho" />
</w:rPr>
The eastAsia attribute specifies that the run must use the MS Mincho font for all text in an East Asian range. end example]
The possible values for this attribute are defined by the ST_String simple type (22.9.2.13).
hAnsiTheme (High ANSI Theme Font)
Specifies a theme font which shall be used to format all characters in a Unicode code point range within the parent run which does not fall into one of the three categories defined above, which is called the high ANSI range in WordprocessingML. This theme font is a reference to one of the predefined theme fonts, located in the document’s
Theme part,which allows for font information to be set centrally in the document.
If the hAnsi attribute is also specified, then that attribute shall be ignored and this value shall be used instead.
If this attribute is not present, the default value is to leave the formatting applied at previous level in the style hierarchy. If this attribute is never applied in the style hierarchy, then the text shall be displayed in the font specified by the hAnsi attribute.
[Example: Consider a run of text which falls into a high ANSI range, and must be displayed using the minorHAnsi theme font. This requirement would be specified as follows in the resulting WordprocessingML:
<w:rPr>
<w:rFonts w:hAnsiTheme="minorHAnsi" />
</w:rPr>
The hAnsiTheme attribute specifies that the run must use the minorHAnsi theme font as defined in the document’s themes part for all text in a high ANSI range. end example]
The possible values for this attribute are defined by the ST_Theme simple type (17.18.96).
hAnsi (High ANSI Font)
Specifies a font which shall be used to format all characters in a Unicode code point range within the parent run which does not fall into one of the three categories defined above, which is called the high ANSI range in WordprocessingML.
If the hAnsiTheme attribute is also specified, then this attribute shall be ignored and that value shall be used instead.
If this attribute is not present, the default value is to leave the formatting applied at previous level in the style hierarchy. If this attribute is never applied in the style hierarchy, then the text shall be displayed in any default font which supports high ANSI content.
[Example: Consider a run of text which falls into a high ANSI range, and must be displayed using the Bauhaus 93 font. This requirement would be specified as follows in the resulting WordprocessingML:
<w:rPr>
<w:rFonts w:hAnsi="Bauhaus 93" />
</w:rPr>
The hAnsi attribute specifies that the run must use the Bauhaus 93 font for all text in a high ANSI range. end example]
The possible values for this attribute are defined by the ST_String simple type (22.9.2.13).
hint (Font Content Type)
Specifies the font type which shall be used to format any ambiguous characters in the current run.
There are certain characters which are not explicitly stored in the document, and can be mapped into multiple categories of the four mentioned above. This attribute shall be used to arbitrate that conflict, and determine how ambiguities in this run shall be handled. [Note: This is primarily used to handle the formatting on the paragraph mark glyph, and other characters that are not stored as text in the WordprocessingML document. end note]
If this attribute is omitted, then this ambiguity can be resolved by any means available.
[Example: Consider two runs, both of which contains an ellipsis in the text but the hint is different. The first run is specified as follows in the WordprocessingML:
<w:r>
<w:rPr>
<w:rFonts/>
</w:rPr>
<w:t>Ellipsis…</w:t>
</w:r>
This piece of text would be displayed as below in a document:
The second run is specified as follows in the WordprocessingML:
<w:r>
<w:rPr>
<w:rFonts w:hint="eastAsia" />
</w:rPr>
<w:t>省略…</w:t>
</w:r>
This piece of text would be displayed as below in a document:
Although the “…” in both runs has the same Unicode code point, the first run uses ASCII font slot, while the second run uses the East Asian font slot, as determined by the hint attribute. Therefore, these two ellipses look different in the document. end example]
[Example: Consider the run representing the paragraph mark glyph, which is not stored as a physical character. Since this could therefore be formatted with any of the fonts specified for the run, this ambiguity is resolved using the following WordprocessingML:
<w:pPr>
<w:rPr>
<w:rFonts w:hint="eastAsia" />
</w:rPr>
</w:pPr>
The hint attribute specifies that the run must use the eastAsia font (theme or not, whichever is in use for East Asian text) as defined for this range. end example]
The possible values for this attribute are defined by the ST_Hint simple type (17.18.41).
[Note: The W3C XML Schema definition of this element’s content model (CT_Fonts) is located in A.1. end note]