@@ -2299,6 +2299,8 @@ <h4>Fractions <code><mfrac></code></h4>
2299
2299
< a > < code > displaystyle</ code > </ a > to < code > false</ code > ,
2300
2300
or if it was already < code > false</ code > increments
2301
2301
< a > < code > scriptlevel</ code > </ a > by 1, within its children.
2302
+ It sets < a > math-superscript-shift-style</ a > to
2303
+ < code > inline</ code > within its second child.
2302
2304
To avoid visual confusion between the fraction bar and another
2303
2305
adjacent items (e.g. minus sign or another fraction's bar),
2304
2306
a default 1-pixel space is added around the element.
@@ -2319,7 +2321,9 @@ <h4>Fractions <code><mfrac></code></h4>
2319
2321
< div class ="note " id ="fraction-css-rules-on-children ">
2320
2322
In practice, an < code > <mfrac></ code > element has two children
2321
2323
that are < a > in-flow</ a > . Hence the CSS rules basically performs
2322
- < a > < code > scriptlevel</ code > </ a > and < a > < code > displaystyle</ code > </ a > changes for the < a > numerator</ a > and
2324
+ < a > < code > scriptlevel</ code > </ a > , < a > < code > displaystyle</ code > </ a >
2325
+ and < a > math-superscript-shift-style</ a >
2326
+ changes for the < a > numerator</ a > and
2323
2327
< a > denominator</ a > .
2324
2328
</ div >
2325
2329
< section id ="fraction-with-nonzero-line-thickness ">
@@ -2340,7 +2344,7 @@ <h5>Fraction with nonzero line thickness</h5>
2340
2344
< figcaption > Box model for the < code > <mfrac></ code > element</ figcaption >
2341
2345
</ figure >
2342
2346
< p > The < a > min-content inline size</ a >
2343
- (respectively < a > max-content inline size</ a > )
2347
+ (respectively < a > max-content inline size</ a > )
2344
2348
of content is the maximum between the
2345
2349
< a > min-content inline size</ a >
2346
2350
(respectively < a > max-content inline size</ a > ) of the < a > numerator</ a > 's
@@ -2567,13 +2571,16 @@ <h4>Radicals <code><msqrt></code>, <code><mroot></code></h4>
2567
2571
in < a href ="#global-attributes "> </ a > .
2568
2572
</ p >
2569
2573
< p >
2574
+ The < code > <msqrt></ code > and < code > <mroot></ code >
2575
+ elements sets < a > math-superscript-shift-style</ a > to
2576
+ < code > inline</ code > .
2570
2577
The < code > <mroot></ code > element sets
2571
2578
increments < a > < code > scriptlevel</ code > </ a > by 2, and sets < a > < code > displaystyle</ code > </ a > to "false" in all
2572
2579
but its first child.
2573
2580
The < a href ="#user-agent-stylesheet "> user agent stylesheet</ a >
2574
2581
must contain the following rule in order to implement that behavior:
2575
2582
</ p >
2576
- < pre class ="css " data-include ="user-agent-stylesheet/mroot .css "> </ pre >
2583
+ < pre class ="css " data-include ="user-agent-stylesheet/radicals .css "> </ pre >
2577
2584
< p >
2578
2585
If the < code > <msqrt></ code > or < code > <mroot></ code >
2579
2586
element do not have their computed
@@ -3505,27 +3512,6 @@ <h3>Script and Limit Schemata</h3>
3505
3512
These elements can be used to place limits on large operators, or fo
3506
3513
placing accents and lines above or below the base.
3507
3514
</ p >
3508
- < section id ="cramped-elements ">
3509
- < h4 > Cramped Elements</ h4 >
3510
- < p >
3511
- A < a > MathML Core element</ a > is < dfn > cramped</ dfn > if it satisfies
3512
- one of the following condition:
3513
- </ p >
3514
- < ol >
3515
- < li > Its parent is < a > cramped</ a > or a < a > radical element</ a > .</ li >
3516
- < li > It is the second < a > in-flow</ a > child of an
3517
- < a > < code > <mfrac></ code > </ a > ,
3518
- < a > < code > <msub></ code > </ a > ,
3519
- < a > < code > <msubsup></ code > </ a > ,
3520
- < a > < code > <munder></ code > </ a > or
3521
- < a > < code > <munderover></ code > </ a > element.
3522
- </ li >
3523
- </ ol >
3524
- < div class ="note " id ="cramped-element ">
3525
- The second < a > in-flow</ a > child corresponds to a < a > numerator</ a > , subscript or
3526
- underscript.
3527
- </ div >
3528
- </ section >
3529
3515
< section id ="subscripts-and-superscripts-msub-msup-msubsup ">
3530
3516
< h4 > Subscripts and Superscripts < code > <msub></ code > , < code > <msup></ code > , < code > <msubsup></ code > </ h4 >
3531
3517
< div class ="issue " data-number ="22 "> Use MathKernInfo?</ div >
@@ -3706,9 +3692,10 @@ <h5>Base with superscript</h5>
3706
3692
</ p >
3707
3693
< ul >
3708
3694
< li > The value < a > SuperscriptShiftUpCramped</ a > if the
3709
- < code > <msup></ code > element is
3710
- < a > cramped</ a > or
3711
- the value < a > SuperscriptShiftUp</ a > otherwise.</ li >
3695
+ element has a computed
3696
+ < a > math-superscript-shift-style</ a > property equal to
3697
+ < code > inline</ code > , or
3698
+ < a > SuperscriptShiftUp</ a > otherwise.</ li >
3712
3699
< li >
3713
3700
< a > SuperscriptBottomMin</ a > + the < a > ink line-descent</ a > of the
3714
3701
superscript's < a > margin box</ a > </ li >
@@ -4648,20 +4635,42 @@ <h5>Base with prescripts and postscripts</h5>
4648
4635
</ section >
4649
4636
</ section >
4650
4637
< section >
4651
- < h4 > Displaystyle and scriptlevel in scripts</ h4 >
4638
+ < h4 id =" displaystyle-and-scriptlevel-in-scripts " > Displaystyle, scriptlevel and math-superscript-shift-style in scripts</ h4 >
4652
4639
< p >
4653
- For all MathML elements used for scripts and limits schemata,
4654
- the rule of thumb is to set
4655
- < a > < code > displaystyle</ code > </ a > to < code > false</ code >
4656
- and to increment < a > < code > scriptlevel</ code > </ a > in all child
4640
+ For all < a > scripted elements</ a > , the rule of thumb is to set
4641
+ < a > < code > displaystyle</ code > </ a > to < code > false</ code > and
4642
+ to increment < a > < code > scriptlevel</ code > </ a > in all child
4657
4643
elements but the first one.
4658
- However, when an overscript (respectively underscript)
4659
- has an < a href =" #attribute-munderover-accent " class =" internalDFN " data-link-type =" dfn " > < code > accent </ code > </ a >
4660
- (respectively < a href ="#attribute-munderover-accentunder " class ="internalDFN " data-link-type ="dfn "> < code > accentunder </ code > </ a > )
4644
+ However, an < a > < code > <mover> </ code > </ a > (respectively
4645
+ < a > < code > <munderover> </ code > </ a > )
4646
+ element with an < a href ="#attribute-munderover-accent " class ="internalDFN " data-link-type ="dfn "> < code > accent </ code > </ a >
4661
4647
attribute that is an
4662
4648
< a data-cite ="INFRA#ascii-case-insensitive "> ASCII case-insensitive</ a >
4663
- match to < code > "true"</ code > then
4664
- the < a > < code > scriptlevel</ code > </ a > is not incremented.
4649
+ match to < code > "true"</ code > does not increment scriptlevel within
4650
+ its second child (respectively third child). Similarly,
4651
+ < a > < code > <mover></ code > </ a > and
4652
+ < a > < code > <munderover></ code > </ a > elements
4653
+ with an < a href ="#attribute-munderover-accent " class ="internalDFN " data-link-type ="dfn "> < code > accentunder</ code > </ a >
4654
+ attribute that is an
4655
+ < a data-cite ="INFRA#ascii-case-insensitive "> ASCII case-insensitive</ a >
4656
+ match to < code > "true"</ code > do not increment scriptlevel within
4657
+ their second child.
4658
+ </ p >
4659
+ < p > < code > <mmultiscripts></ code > sets
4660
+ < a > < code > math-superscript-shift-style</ code > </ a > to
4661
+ < code > inline</ code > on its children at even position if they are
4662
+ before an < a > <mprescripts></ a > , and on those at odd position
4663
+ if they are after
4664
+ an < a > <mprescripts></ a > . Other < a > scripted elements</ a >
4665
+ set < a > < code > math-superscript-shift-style</ code > </ a > to
4666
+ < code > inline</ code > on their second child.
4667
+ An < a > < code > <mover></ code > </ a > and
4668
+ < a > < code > <munderover></ code > </ a >
4669
+ elements with an < a href ="#attribute-munderover-accent " class ="internalDFN " data-link-type ="dfn "> < code > accent</ code > </ a >
4670
+ attribute that is an
4671
+ < a data-cite ="INFRA#ascii-case-insensitive "> ASCII case-insensitive</ a >
4672
+ match to < code > "true"</ code > also sets < a > < code > math-superscript-shift-style</ code > </ a > to
4673
+ < code > inline</ code > within their first child.
4665
4674
</ p >
4666
4675
< p >
4667
4676
The
@@ -4680,7 +4689,9 @@ <h4>Displaystyle and scriptlevel in scripts</h4>
4680
4689
this section are < a > in-flow</ a > and the
4681
4690
< code > <mprescript></ code > is empty.
4682
4691
Hence the CSS rules essentially performs automatic < a > < code > displaystyle</ code > </ a > and
4683
- < a > < code > scriptlevel</ code > </ a > changes for the scripts.
4692
+ < a > < code > scriptlevel</ code > </ a > changes for the scripts ; and
4693
+ < a > < code > math-superscript-shift-style</ code > </ a > changes for
4694
+ subscripts and sometimes the base.
4684
4695
</ div >
4685
4696
</ section >
4686
4697
</ section >
@@ -5020,6 +5031,41 @@ <h3>The <code>math-style</code> property</h3>
5020
5031
layout should not take such constraints into consideration.
5021
5032
</ p >
5022
5033
</ section >
5034
+ < section id ="the-math-superscript-shift-style ">
5035
+ < h3 > The < code > math-superscript-shift-style</ code > property</ h3 >
5036
+ < table >
5037
+ < tbody >
5038
+ < tr >
5039
+ < th > Name:</ th >
5040
+ < td >
5041
+ < dfn > < code > math-superscript-shift-style</ code > </ dfn >
5042
+ </ td >
5043
+ </ tr >
5044
+ < tr > < th > Value:</ th > < td > < code > display | inline</ code > </ td > </ tr >
5045
+ < tr > < th > Initial:</ th > < td > < code > display</ code > </ td > </ tr >
5046
+ < tr > < th > Applies to:</ th > < td > All elements</ td > </ tr >
5047
+ < tr > < th > Inherited:</ th > < td > yes</ td > </ tr >
5048
+ < tr > < th > Percentages:</ th > < td > n/a</ td > </ tr >
5049
+ < tr > < th > Media:</ th > < td > visual</ td > </ tr >
5050
+ < tr > < th > Computed value:</ th > < td > specified keyword</ td > </ tr >
5051
+ < tr > < th > Canonical order:</ th > < td > n/a</ td > </ tr >
5052
+ < tr > < th > Animation type:</ th > < td > not animatable</ td > </ tr >
5053
+ </ tbody >
5054
+ </ table >
5055
+ < p >
5056
+ If the value of < code > math-superscript-shift-style</ code > is < code > inline</ code > , the math layout on descendants will use the
5057
+ < a > superscriptShiftUpCramped</ a > parameter to place superscript.
5058
+ If the value of < code > math-superscript-shift-style</ code > is < code > display</ code > , the math
5059
+ will use the < a > superscriptShiftUp</ a > parameter instead.
5060
+ </ p >
5061
+ < p >
5062
+ This property is used for positioning superscript during the layout
5063
+ of MathML < a > scripted elements</ a > .
5064
+ See § < a href ="#subscripts-and-superscripts-msub-msup-msubsup "> </ a >
5065
+ < a href ="#prescripts-and-tensor-indices-mmultiscripts "> </ a > and
5066
+ < a href ="#underscripts-and-overscripts-munder-mover-munderover "> </ a > .
5067
+ </ p >
5068
+ </ section >
5023
5069
< section id ="the-math-script-level-property ">
5024
5070
< h3 > The < code > math-script-level</ code > property</ h3 >
5025
5071
< table >
@@ -5650,8 +5696,8 @@ <h2>User Agent Stylesheet</h2>
5650
5696
< span data-include-replace ="true " data-include ="user-agent-stylesheet/mtable.css "> </ span > < span data-include-replace ="true " data-include ="user-agent-stylesheet/mtable-frame.css "> </ span > < span data-include-replace ="true " data-include ="user-agent-stylesheet/mtr.css "> </ span > < span data-include-replace ="true " data-include ="user-agent-stylesheet/mtd.css "> </ span >
5651
5697
/* Fractions */
5652
5698
< span data-include-replace ="true " data-include ="user-agent-stylesheet/mfrac.css "> </ span >
5653
- /* Other rules for scriptlevel and displaystyle */
5654
- </ span > < span data-include-replace ="true " data-include ="user-agent-stylesheet/mroot .css "> </ span > < span data-include-replace ="true " data-include ="user-agent-stylesheet/scripts.css "> </ span >
5699
+ /* Other rules for scriptlevel, displaystyle and math-superscript-shift-style */
5700
+ </ span > < span data-include-replace ="true " data-include ="user-agent-stylesheet/radicals .css "> </ span > < span data-include-replace ="true " data-include ="user-agent-stylesheet/scripts.css "> </ span >
5655
5701
</ pre >
5656
5702
</ section >
5657
5703
< section class ="normative ">
0 commit comments