Changes between Version 8 and Version 9 of MathML/Fonts


Ignore:
Timestamp:
Apr 21, 2016 1:12:00 AM (5 years ago)
Author:
fred.wang@free.fr
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MathML/Fonts

    v8 v9  
    2020* [https://github.com/khaledhosny/xits-math/releases XITS Math]
    2121
    22 Latin Modern Math is recommended for users who are familiar with [https://en.wikipedia.org/wiki/Computer_Modern TeX's Computer Modern style]. The STIX family provides the best unicode coverage but it has many bugs that will only be fixed in version 2. These two fonts form the recommended minimal set to consider for maintainers and the default option to try for users.
     22This list essentially corresponds to known fonts that have an Open Font Format MATH table (for a complete list of required features and unicode coverage see the sections below). Latin Modern Math is recommended for users who are familiar with [https://en.wikipedia.org/wiki/Computer_Modern TeX's Computer Modern style]. The STIX family provides the best unicode coverage but it has many bugs that will only be fixed in version 2. These two fonts form the recommended minimal set to consider for maintainers and the default option to try for users. XITS Math also has many features for Arabic and right-to-left math.
    2323
    2424== Customizing Math Font ==
     
    4343}}}
    4444
    45 For more information, this [https://github.com/fred-wang/MathFonts/  page with Web fonts, sample CSS style sheets and online demos].
     45For more information, see this [https://github.com/fred-wang/MathFonts/  page with Web fonts, sample CSS style sheets and online demos].
    4646
    4747== Unicode Coverage ==
     
    5454
    5555Mathematical Alphanumeric Characters are required to display variables with their default mathematical italic style and to support the `mathvariant` attribute. However, the former is currently done with CSS ([https://bugs.webkit.org/show_bug.cgi?id=155018 bug 155018]) and the latter is not implemented yet ([https://bugs.webkit.org/show_bug.cgi?id=108778 bug 108778]).
    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.
    5856
    5957== Open Font Format features ==
     
    129127=== MathVariants table ===
    130128
    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.
     129This 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
    132134
    133135=== Tags ===
    134136
    135137Nothing has been implemented yet. The following tags should be considered: `math`, `ssty`, `flac`, `dtls` and `rtlm`.
     138
     139== Obsolete Fonts and Fallback Mechanisms ==
     140
     141Some 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
     147However, 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).