56 | | |
57 | | The following characters are also used to provide minimal operator stretching for fonts without a MATH table: U+007C, U+2016, U+2225, U+2320, U+2321, U+239B, U+239C, U+239D, U+239E, U+239F, U+23A0, U+23A1, U+23A2, U+23A3, U+23A4, U+23A5, U+23A6, U+23A7, U+23A8, U+23A9, U+23AA, U+23AB, U+23AC, U+23AD, U+23AE. |
131 | | This table is very important for proper display of integrals, radicals, fences etc Currently, we support search for a MathGlyphVariantRecord as well as simple constructions via a GlyphAssembly. |
| 129 | This table is very important for displaying larger variants of operators (via the MathGlyphVariantRecord table) as well as stretching to an arbitrary size (via a GlyphAssembly table). Note that our support for glyph assemblies is limited to a restricted syntax with at most 3 pieces and a same extender connecting them. Some examples of why it is needed: |
| 130 | |
| 131 | * operator in display style like big integrals, summation symbols, etc |
| 132 | * vertical stretching of radicals, fences, arrows etc |
| 133 | * horizontal stretching of accents, braces, arrows, etc |
| 138 | |
| 139 | == Obsolete Fonts and Fallback Mechanisms == |
| 140 | |
| 141 | Some old fonts with good math Unicode coverage that do not have the Open Font Format features mentioned above can still be used to provide minimal support with the help of some fallback mechanisms included in WebKit. So for example: |
| 142 | |
| 143 | * Everything that relies exclusively on Unicode coverage will work for these fonts too. |
| 144 | * stretched vertical parenthesis, brackets, braces, ceilings, floors, bars and integral sign can be drawn via the characters U+007C, U+2016, U+2225, U+2320, U+2321, U+239B, U+239C, U+239D, U+239E, U+239F, U+23A0, U+23A1, U+23A2, U+23A3, U+23A4, U+23A5, U+23A6, U+23A7, U+23A8, U+23A9, U+23AA, U+23AB, U+23AC, U+23AD, U+23AE instead of using the MathVariants table. |
| 145 | * stretched radical symbols are drawn with hardcoded drawing paths instead of reading the MathVariants table. |
| 146 | |
| 147 | However, all of this should be considered a way to workaround the lack of proper math fonts. In particular, note that: |
| 148 | |
| 149 | * Any larger variants or glyph assembly not listed above can not be done without the MathVariants table (e.g. stretched arrows, horizontal braces, big operators in display style etc). |
| 150 | * Layout constants from the MathConstants table are set to some arbitrary values based on x-height or font size (hence alignment, positions, shifts, gaps and so on may be bad or totally wrong). |
| 151 | * Italic correction from the MathGlyphInfo table is considered to be zero (so e.g. placement of subscript attached to integrals may be wrong). |