<mmultiscripts>
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2023.
The<mmultiscripts>MathML element is used to attach an arbitrary number of subscripts and superscripts to an expression at once, generalizing the<msubsup> element. Scripts can be either pre-scripts (placedbefore the expression) or post-scripts (placedafter it).
MathML uses the syntax below, that is a base expression, followed by an arbitrary number of post-subscript and post-superscript pairs (attached in the given order) optionally followed by an<mprescripts> element and an arbitrary number of pre-subscript and pre-superscript pairs (attached in the given order). In addition, empty<mrow> elements can be used to represent absent scripts.
<mmultiscripts> base post-sub-script-1 post-sup-script-1 post-sub-script-2 post-sup-script-2 post-sub-script-3 post-sup-script-3 ... post-sub-script-N post-sup-script-N <mprescripts /> ⎫ pre-sub-script-1 pre-sup-script-1 ⎪ pre-sub-script-2 pre-sup-script-2 ⎬ Optional pre-sub-script-3 pre-sup-script-3 ⎪ ... ⎪ pre-sub-script-M pre-sup-script-N ⎭</mmultiscripts>In this article
Attributes
This element's attributes include theglobal MathML attributes as well as the following deprecated attributes:
subscriptshiftDeprecatedNon-standardA
<length-percentage>indicating the minimum amount to shift the baseline of the subscript down.superscriptshiftDeprecatedNon-standardA
<length-percentage>indicating the minimum amount to shift the baseline of the superscript up.
Note:For thesubscriptshift andsuperscriptshift attributes, some browsers may also acceptlegacy MathML lengths.
Examples
>Using<mprescripts>
Children after the<mprescripts> element are placed as pre-scripts (before the base expression):
html,body { height: 100%;}body { display: grid; place-items: center; font-size: 2rem;}<math display="block"> <mmultiscripts> <mi>X</mi> <!-- base expression --> <mi>a</mi> <!-- post-sub-script --> <mi>b</mi> <!-- post-sup-script --> <mprescripts /> <mi>c</mi> <!-- pre-sub-script --> <mi>d</mi> <!-- pre-sup-script --> </mmultiscripts></math>Empty scripts
Empty<mrow> elements can be used to represent absent scripts:
html,body { height: 100%;}body { display: grid; place-items: center; font-size: 2rem;}<math display="block"> <mmultiscripts> <mi>X</mi> <!-- base expression --> <mrow></mrow> <!-- post-sub-script --> <mi>b</mi> <!-- post-sup-script --> <mprescripts /> <mi>c</mi> <!-- pre-sub-script --> <mrow></mrow> <!-- pre-sup-script --> </mmultiscripts></math>Order of scripts
Here is a more complex example with many scripts, so you can see in which order they are attached to the base:
html,body { height: 100%;}body { display: grid; place-items: center; font-size: 2rem;}<math display="block"> <mmultiscripts> <mi>X</mi> <!-- base expression --> <mn>1</mn> <!-- post-sub-script-1 --> <mn>2</mn> <!-- post-sup-script-1 --> <mn>3</mn> <!-- post-sub-script-2 --> <mn>4</mn> <!-- post-sup-script-2 --> <mprescripts /> <mn>5</mn> <!-- pre-sub-script-1 --> <mn>6</mn> <!-- pre-sup-script-1 --> <mn>7</mn> <!-- pre-sub-script-2 --> <mn>8</mn> <!-- pre-sup-script-2 --> </mmultiscripts></math>Technical summary
| Implicit ARIA role | None |
|---|
Specifications
| Specification |
|---|
| MathML Core> # prescripts-and-tensor-indices-mmultiscripts> |