A few changes between MathML3 and MathML Core you may want to take into account

Hello,

I'd like to mention a few changes that I've been agreed on for a while, 
but that are likely to affect the rendering in web browsers. If you are 
maintaining an authoring tool for MathML, please take them into account.

1. The following names for length values have been removed, they should 
be replaced with equivalent em values:

   veryverythinmathspace  => 0.05555555555555555em
   verythinmathspace      => 0.1111111111111111em
   thinmathspace          => 0.16666666666666666em
   mediummathspace        => 0.2222222222222222em
   thickmathspace         => 0.2777777777777778em
   verythickmathspace     => 0.3333333333333333em
   veryverythickmathspace => 0.3888888888888889em

   They have never been supported in Chromium, have been removed from 
some WebKit ports and are currently triggering deprecation warnings in 
Firefox.

2. The mathvariant attribute has essentially been removed, it should be 
replaced with direct use of Mathematical Alphanumeric Symbols for example:

   <mi mathvariant="fratur">A</mi> => <mi>0#x1D504;</mi>

   <style 
mathvariant="double-struck"><mi>A</mi><mo>+</mo><mn>1</mn></mstyle> => 
<mrow><mi>&#x1D538;</mi><mo>+</mo><mn>&#x1D7D9;</mn></mrow> ('+' does 
not have any double-struck form so is unchanged)

   The only exception is for mathvariant="normal" on the <mi> element in 
order to cancel automatic italicization: <mi mathvariant="normal">A</mi>

   The legacy cases have never been supported in Chromium and will 
trigger deprecation warnings in Firefox 117. The plan is to try and do 
the same in WebKit.

3. The binary operator U+2223 DIVIDES is no longer stretchy by default. 
Note that the entity name &VerticalBar; maps to this character and, 
probably due to this confusing name, some people have incorrectly use it 
as stretchy infix/postfix fences, where | U+007C would be more appropriate.

<mrow><mo>&VerticalBar;</mo><mfrac><mn>2</mn><mn>3</mn></mfrac><mo>&VerticalBar;</mo></mrow> 
=> <mrow><mo>|</mo><mfrac><mn>2</mn><mn>3</mn></mfrac><mo>|</mo></mrow> 
(if you means stretchy fences)

<mrow><mn>2</mn><mo>&VerticalBar;</mo><mn>4</mn></mrow> => 
<mrow><mn>2</mn><mo stretchy="true">&VerticalBar;</mo><mn>4</mn></mrow> 
(if you really means to make the "divides" operator stretchy).

    The operator is not stretchy in Chromium or WebKit. The plan is to 
try and do the same in Firefox.

-- 
Frédéric Wang

Received on Friday, 28 July 2023 09:15:00 UTC