W3C
Candidate
Recommendation
Snapshot
Editor's
Draft
24
June
2025
Copyright
©
2025
2024
World
Wide
Web
Consortium
.
W3C
®
liability
,
trademark
and
permissive
document
license
rules
apply.
This specification defines a core subset of Mathematical Markup Language, or MathML, that is suitable for browser implementation. MathML is a markup language for describing mathematical notation and capturing both its structure and content. The goal of MathML is to enable mathematics to be served, received, and processed on the World Wide Web, just as HTML has enabled this functionality for text.
This
section
describes
the
status
of
this
document
at
the
time
of
its
publication.
A
list
of
current
W3C
publications
and
the
latest
revision
of
this
technical
report
can
be
found
in
the
W3C
standards
and
drafts
technical
reports
index
at
https://www.w3.org/TR/.
This
document
was
published
by
the
Math
Working
Group
as
a
Candidate
Recommendation
Snapshot
using
the
Recommendation
track
.
an
Editor's
Draft.
Publication
as
a
Candidate
Recommendation
an
Editor's
Draft
does
not
imply
endorsement
by
W3C
and
its
Members.
A
Candidate
Recommendation
Snapshot
has
received
wide
review
,
is
intended
to
gather
implementation
experience
,
and
has
commitments
from
Working
Group
members
to
royalty-free
licensing
for
implementations.
This
Candidate
Recommendation
is
not
expected
to
advance
to
Proposed
Recommendation
a
draft
document
and
may
be
updated,
replaced
or
obsoleted
by
other
documents
at
any
earlier
time.
It
is
inappropriate
to
cite
this
document
as
other
than
30
September
2025.
work
in
progress.
This document was produced by a group operating under the W3C Patent Policy . W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy .
This document is governed by the 03 November 2023 W3C Process Document .
This section is non-normative.
The [ MATHML3 ] specification has several shortcomings that make it hard to implement consistently across web rendering engines or to extend with user-defined constructions, e.g.:
This MathML Core specification intends to address these issues by being as accurate as possible on the visual rendering of mathematical formulas using additional rules from the TeXBook’s Appendix G [ TEXBOOK ] and from the Open Font Format [ OPEN-FONT-FORMAT ], [ OPEN-TYPE-MATH-ILLUMINATED ]. It also relies on modern browser implementations and web technologies [ HTML ] [ SVG ] [ CSS2 ] [ DOM ], clarifying interactions with them when needed or introducing new low-level primitives to improve the web platform layering.
Parts of MathML3 that do not fit well in this framework or are less fundamental have been omitted. Instead, they are described in a separate and larger [ MATHML4 ] specification. The details of which math feature will be included in future versions of MathML Core or implemented as polyfills is still open. This question and other potential improvements are tracked on GitHub .
By increasing the level of implementation details, focusing on a workable subset, following a browser-driven design and relying on automated web platform tests, this specification is expected to greatly improve MathML interoperability. Moreover, effort on MathML layering will enable users to implement the rest of the MathML 4 specification, or more generally to extend MathML Core, using modern web technologies such as shadow trees , custom elements or APIs from [ HOUDINI ].
The term MathML element refers to any element in the MathML namespace . The MathML elements defined in this specification are called the MathML Core elements and are listed below. Any MathML element that is not listed below is called an Unknown MathML element .
annotation
annotation-xml
maction
math
merror
mfrac
mi
mmultiscripts
mn
mo
mover
mpadded
mphantom
mprescripts
mroot
mrow
ms
mspace
msqrt
mstyle
msub
msubsup
msup
mtable
mtd
mtext
mtr
munder
munderover
semantics
The
grouping
elements
are
maction
,
math
,
merror
,
mphantom
,
mprescripts
,
mrow
,
mstyle
,
semantics
and
unknown
MathML
elements
.
The
scripted
elements
are
mmultiscripts
,
mover
,
msub
,
msubsup
,
msup
,
munder
and
munderover
.
The
radical
elements
are
mroot
and
msqrt
.
The attributes defined in this specification have no namespace and are called MathML attributes :
maction
attributes
mo
attributes
mpadded
attributes
mspace
attributes
munderover
attributes
mtd
attributes
encoding
display
linethickness
MathML
specifies
a
single
top-level
or
root
math
element,
which
encapsulates
each
instance
of
MathML
markup
within
a
document.
All
other
MathML
content
must
be
contained
in
a
<math>
element.
The
<math>
element
accepts
the
attributes
described
in
2.1.3
Global
Attributes
as
well
as
the
following
attributes:
The
display
attribute,
if
present,
must
be
an
ASCII
case-insensitive
match
to
block
or
inline
.
The
user
agent
stylesheet
described
in
A.
User
Agent
Stylesheet
contains
rules
for
this
attribute
that
affect
the
default
values
for
the
display
(
block
math
or
inline
math
)
and
math-style
(
normal
or
compact
)
properties.
If
the
display
attribute
is
absent
or
has
an
invalid
value,
the
User
Agent
stylesheet
treats
it
the
same
as
inline
.
This specification does not define any observable behavior that is specific to the alttext attribute.
alttext
attribute
may
be
used
as
alternative
text
by
some
legacy
systems
that
do
not
implement
math
layout.
If
the
<math>
element
does
not
have
its
computed
display
property
equal
to
block
math
or
inline
math
then
it
is
laid
out
according
to
the
CSS
specification
where
the
corresponding
value
is
described.
Otherwise
the
layout
algorithm
of
the
mrow
element
is
used
to
produce
a
math
content
box
.
That
math
content
box
is
used
as
the
content
for
the
layout
of
the
element,
as
described
by
CSS
for
display:
block
(if
the
computed
value
is
block
math
)
or
display:
inline
(if
the
computed
value
is
inline
math
).
Additionally,
if
the
computed
display
property
is
equal
to
block
math
then
that
math
content
box
is
rendered
horizontally
centered
within
the
content
box.
$$...$$
and
inline
mode
$...$
correspond
to
display="block"
and
display="inline"
respectively.
In
the
following
example,
a
math
formula
is
rendered
in
display
mode
on
a
new
line
and
taking
full
width,
with
the
math
content
centered
within
the
container:
<div style="width: 15em;">
This mathematical formula with a big summation and the number pi
<math display="block" style="border: 1px dotted black;">
<mrow>
<munderover>
<mo>∑</mo>
<mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow>
<mrow><mo>+</mo><mn>∞</mn></mrow>
</munderover>
<mfrac>
<mn>1</mn>
<msup><mi>n</mi><mn>2</mn></msup>
</mfrac>
</mrow>
<mo>=</mo>
<mfrac>
<msup><mi>π</mi><mn>2</mn></msup>
<mn>6</mn>
</mfrac>
</math>
is easy to prove.
</
div
>
As
a
comparison,
the
same
formula
would
look
as
follows
in
inline
mode.
The
formula
is
embedded
in
the
paragraph
of
text
without
forced
line
breaking.
The
baselines
specified
by
the
layout
algorithm
of
the
mrow
are
used
for
vertical
alignment.
Note
that
the
middle
of
sum
and
equal
symbols
or
fractions
are
all
aligned,
but
not
with
the
alphabetical
baseline
of
the
surrounding
text.
Because
good
mathematical
rendering
requires
use
of
mathematical
fonts,
the
user
agent
stylesheet
should
set
the
font-family
to
the
math
value
on
the
<math>
element
instead
of
inheriting
it.
Additionally,
several
CSS
properties
that
can
be
set
on
a
parent
container
such
as
font-style
,
font-weight
,
direction
or
text-indent
etc
are
not
expected
to
apply
to
the
math
formula
and
so
the
user
agent
stylesheet
has
rules
to
reset
them
by
default.
math {
direction: ltr;
text-indent: 0;
letter-spacing: normal;
line-height: normal;
word-spacing: normal;
font-family: math;
font-size: inherit;
font-style: normal;
font-weight: normal;
display: inline math;
: normal;
: compact;
;
math-shift: normal;
math-style: compact;
math-depth: 0;
}
math[display="block" i] {
display: block math;
: normal;
math-style: normal;
}
math[display="inline" i] {
display: inline math;
: compact;
math-style: compact;
}
In addition to CSS data types, some MathML attributes rely on the following MathML-specific types:
true
or
false
.
The following attributes are common to and may be specified on all MathML elements:
autofocus
class
data-*
dir
displaystyle
id
mathbackground
mathcolor
mathsize
nonce
scriptlevel
style
tabindex
on*
event
handler
attributes
The
id
,
class
,
style
,
data-*
,
autofocus
and
nonce
and
tabindex
attributes
have
the
same
syntax
and
semantics
as
defined
for
id
,
class
,
style
,
data-*
,
autofocus
,
nonce
and
tabindex
attributes
on
HTML
elements.
The
dir
attribute,
if
present,
must
be
an
ASCII
case-insensitive
match
to
ltr
or
rtl
.
In
that
case,
the
user
agent
is
expected
to
treat
the
attribute
as
a
presentational
hint
setting
the
element's
direction
property
to
the
corresponding
value.
More
precisely,
an
ASCII
case-insensitive
match
to
rtl
is
mapped
to
rtl
while
an
ASCII
case-insensitive
match
to
ltr
is
mapped
to
ltr
.
rtl
in
Arabic
speaking
world.
However,
languages
written
from
right
to
left
often
embed
math
written
from
left
to
right
and
so
the
user
agent
stylesheet
resets
the
direction
property
accordingly
on
the
math
elements.
In the following example, the dir attribute is used to render "𞸎 plus 𞸑 raised to the power of (٢ over, 𞸟 plus ١)" from right-to-left.
<math dir="rtl">
<mrow>
<mi>𞸎</mi>
<mo>+</mo>
<msup>
<mi>𞸑</mi>
<mfrac>
<mn>٢</mn>
<mrow>
<mi>𞸟</mi>
<mo>+</mo>
<mn>١</mn>
</mrow>
</mfrac>
</msup>
</mrow>
</
math
>
All MathML elements support event handler content attributes, as described in event handler content attributes in HTML.
All event handler content attributes noted by HTML as being supported by all HTMLElements are supported by all MathML elements as well, as defined in the MathMLElement IDL .
The
mathcolor
and
mathbackground
attributes,
if
present,
must
have
a
value
that
is
a
<color>
.
In
that
case,
the
user
agent
is
expected
to
treat
these
attributes
as
a
presentational
hint
setting
the
element's
color
and
background-color
properties
to
the
corresponding
values.
The
mathcolor
attribute
describes
the
foreground
fill
color
of
MathML
text,
bars
etc
while
the
mathbackground
attribute
describes
the
background
color
of
an
element.
The
mathsize
attribute,
if
present,
must
have
a
value
that
is
a
valid
<length-percentage>
.
In
that
case,
the
user
agent
is
expected
to
treat
the
attribute
as
a
presentational
hint
setting
the
element's
font-size
property
to
the
corresponding
value.
The
mathsize
property
indicates
the
desired
height
of
glyphs
in
math
formulas
but
also
scales
other
parts
(spacing,
shifts,
line
thickness
of
bars
etc)
accordingly.
The
displaystyle
attribute,
if
present,
must
have
a
value
that
is
a
boolean
.
In
that
case,
the
user
agent
is
expected
to
treat
the
attribute
as
a
presentational
hint
setting
the
element's
math-style
property
to
the
corresponding
value.
More
precisely,
an
ASCII
case-insensitive
match
to
true
is
mapped
to
normal
while
an
ASCII
case-insensitive
match
to
false
is
mapped
to
compact
.
This
attribute
indicates
whether
formulas
should
try
to
minimize
the
logical
height
(value
is
false
)
or
not
(value
is
true
)
e.g.
by
changing
the
size
of
content
or
the
layout
of
scripts.
The
scriptlevel
attribute,
if
present,
must
have
value
+<U>
,
-<U>
or
<U>
where
<U>
is
an
unsigned-integer
.
In
that
case
the
user
agent
is
expected
to
treat
the
scriptlevel
attribute
as
a
presentational
hint
setting
the
element's
math-depth
property
to
the
corresponding
value.
More
precisely,
+<U>
,
-<U>
and
<U>
are
respectively
mapped
to
add(<U>)
add(<-U>)
and
<U>
.
displaystyle
and
scriptlevel
values
are
automatically
adjusted
within
MathML
elements.
To
fully
implement
these
attributes,
additional
CSS
properties
must
be
specified
in
the
user
agent
stylesheet
as
described
in
A.
User
Agent
Stylesheet
.
In
particular,
for
all
MathML
elements
a
default
font-size:
math
is
specified
to
ensure
that
scriptlevel
changes
are
taken
into
account.
In
this
example,
an
munder
element
is
used
to
attach
a
script
"A"
to
a
base
"∑".
By
default,
the
summation
symbol
is
rendered
with
the
font-size
inherited
from
its
parent
and
the
A
as
a
scaled
down
subscript.
If
displaystyle
is
true,
the
summation
symbol
is
drawn
bigger
and
the
"A"
becomes
an
underscript.
If
scriptlevel
is
reset
to
0
on
the
"A",
then
it
will
use
the
same
font-size
as
the
top-level
math
root.
<math>
<munder>
<mo>∑</mo>
<mi>A</mi>
</munder>
<munder displaystyle="true">
<mo>∑</mo>
<mi>A</mi>
</munder>
<munder>
<mo>∑</mo>
<mi scriptlevel="0">A</mi>
</munder>
</
math
>
\displaystyle
,
\textstyle
,
\scriptstyle
,
and
\scriptscriptstyle
correspond
to
displaystyle
and
scriptlevel
as
true
and
0
,
false
and
0
,
false
and
1
,
and
false
and
2,
respectively.
The attributes intent and arg are reserved as valid attributes.
This
specification
does
not
define
any
observable
behavior
that
is
specific
to
the
intent
and
arg
attributes.
MathML can be mixed with HTML and SVG as described in the relevant specifications [ HTML ] [ SVG ].
When
evaluating
the
SVG
requiredExtensions
attribute,
user
agents
must
claim
support
for
the
language
extension
identified
by
the
MathML
namespace
.
In
this
example,
inline
MathML
and
SVG
elements
are
used
inside
an
HTML
document.
SVG
elements
<switch>
and
<foreignObject>
(with
proper
<requiredExtensions>
)
are
used
to
embed
a
MathML
formula
with
a
text
fallback,
inside
a
diagram.
HTML
input
element
is
used
within
the
mtext
to
include
an
interactive
input
field
inside
a
mathematical
formula.
See
also
3.7
Semantics
and
Presentation
for
an
example
of
SVG
and
HTML
inside
an
annotation-xml
element.
<svg style="font-size: 20px" width="400px" height="220px" viewBox="0 0 200 110">
<g transform="translate(10,80)">
<path d="M 0 0 L 150 0 A 75 75 0 0 0 0 0
M 30 0 L 30 -60 M 30 -10 L 40 -10 L 40 0"
fill="none" stroke="black"></path>
<text transform="translate(10,20)">1</text>
<switch transform="translate(35,-40)">
<foreignObject width="200" height="50"
requiredExtensions="http://www.w3.org/1998/Math/MathML">
<math>
<msqrt>
<mn>2</mn>
<mi>r</mi>
<mo>−</mo>
<mn>1</mn>
</msqrt>
</math>
</foreignObject>
<text>\sqrt{2r - 1}</text>
</switch>
</g>
</svg>
<p>
Fill the blank:
<math>
<msqrt>
<mn>2</mn>
<mtext><input onchange="..." size="2" type="text"></mtext>
<mo>−</mo>
<mn>1</mn>
</msqrt>
<mo>=</mo>
<mn>3</mn>
</math>
</
p
>
User agents must support various CSS features mentioned in this specification, including new ones described in 4. CSS Extensions for Math Layout . They must follow the computation rule for display: contents .
In
this
example,
the
MathML
formula
inherits
the
CSS
color
of
its
parent
and
uses
the
font-family
specified
via
the
style
attribute.
<div style="width: 15em; color: blue">
This mathematical formula with a big summation and the number pi
<math display="block" style="font-family: STIX Two Math">
<mrow>
<munderover>
<mo>∑</mo>
<mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow>
<mrow><mo>+</mo><mn>∞</mn></mrow>
</munderover>
<mfrac>
<mn>1</mn>
<msup><mi>n</mi><mn>2</mn></msup>
</mfrac>
</mrow>
<mo>=</mo>
<mfrac>
<msup><mi>π</mi><mn>2</mn></msup>
<mn>6</mn>
</mfrac>
</math>
is easy to prove.
</
div
>
All
documents
containing
MathML
Core
elements
must
include
CSS
rules
described
in
A.
User
Agent
Stylesheet
as
part
of
user-agent
level
style
sheet
defaults.
In
particular,
this
adds
!important
rules
to
force
writing
mode
to
horizontal-lr
on
all
MathML
elements.
The
float
property
does
not
create
floating
of
elements
whose
parent's
computed
display
value
is
block
math
or
inline
math
,
and
does
not
take
them
out-of-flow.
The
::first-line
::first-line
and
::first-letter
::first-letter
pseudo-elements
do
not
apply
to
elements
whose
computed
display
value
is
block
math
or
inline
math
,
and
such
elements
do
not
contribute
a
first
formatted
line
or
first
letter
to
their
ancestors.
The following CSS features are not supported and must be ignored:
white-space
is
treated
as
nowrap
on
all
MathML
elements.
align-content
,
justify-content
,
align-self
,
justify-self
have
no
effects
on
MathML
elements.
User agents supporting Web application APIs must ensure that they keep the visual rendering of MathML synchronized with the [ DOM ] tree, in particular perform necessary updates when MathML attributes are modified dynamically.
All
the
nodes
representing
MathML
elements
in
the
DOM
must
implement,
and
expose
to
scripts,
the
following
MathMLElement
interface.
WebIDL[Exposed=Window]
interface MathMLElement
: Element { };
MathMLElement
includes GlobalEventHandlers;
MathMLElement
includes
HTMLOrForeignElement
;
The
GlobalEventHandlers
and
HTMLOrForeignElement
interfaces
are
defined
in
[
HTML
].
In the following example, a MathML formula is used to render the fraction "α over 2". When clicking the red α, it is changed into a blue β.
<script>
function ModifyMath(mi) {
mi.style.color = 'blue';
mi.textContent = 'β';
}
</script>
<math>
<mrow>
<mfrac>
<mi style="color: red" onclick="ModifyMath(this)">α</mi>
<mn>2</mn>
</mfrac>
</mrow>
</
math
>
Because math fonts generally contain very tall glyphs such as big integrals, using typographic metrics is important to avoid excessive line spacing of text. As a consequence, user agents must take into account the USE_TYPO_METRICS flag from the OS/2 table [ OPEN-FONT-FORMAT ] when performing text layout.
MathML
provides
the
ability
for
authors
to
allow
for
interactivity
in
supporting
interactive
user
agents
using
the
same
concepts,
approach
and
guidance
to
Focus
as
described
in
HTML,
with
modifications
or
clarifications
regarding
application
for
MathML
as
described
in
this
section.
When an element is focused, all applicable CSS focus-related pseudo-classes as defined in Selectors Level 3 apply, as defined in that specification.
The
contents
of
embedded
math
elements
(including
HTML
elements
inside
token
elements)
contribute
to
the
sequential
focus
order
of
the
containing
owner
HTML
document
(combined
sequential
focus
order).
The
default
display
property
is
described
in
A.
User
Agent
Stylesheet
:
<math>
root,
it
is
equal
to
inline
math
or
block
math
according
to
the
value
of
the
display
attribute.
mtable
,
mtr
,
mtd
it
is
respectively
equal
to
inline-table
,
table-row
and
table-cell
.
maction
and
semantics
elements,
it
is
equal
to
none
.
block
math
.
In order to specify math layout in different writing modes , this specification uses concepts from [ CSS-WRITING-MODES-4 ]:
horizontal-lr
and
ltr
.
See
Figure
4
,
Figure
5
and
Figure
6
for
examples
of
other
writing
modes
that
are
sometimes
used
for
math
layout.
Boxes used for MathML elements rely on several parameters in order to perform layout in a way that is compatible with CSS but also to take into account very accurate positions and spacing within math formulas:
Block metrics. The block size , first baseline set and last baseline set . The following baselines are defined for MathML boxes:
Given a MathML box, the following offsets are defined:
horizontal-tb
and
rtl
that
may
be
used
in
e.g.
Arabic
math.
vertical-lr
and
ltr
that
may
be
used
in
e.g.
Mongolian
math.
vertical-rl
and
ltr
that
may
be
used
in
e.g.
Japanese
math.
Here are examples of offsets obtained from line-relative metrics:
ltr
and
is
the
inline
size
of
the
box
−
(
line-left
offset
+
inline
size
of
the
child
box)
otherwise.
horizontal-lr
,
vertical-rl
or
sideways-rl
and
is
the
line-descent
otherwise.
Each MathML element has an associated math content box , which is calculated as described in this chapter's layout algorithms using the following structure:
The following extra steps must be performed:
The box metrics and offsets of the padding box are obtained from the content box by taking into account the corresponding padding properties as described in CSS.
The baselines of the padding box are the same as the one of the content box .
If the content box has a top accent attachment then the padding box has the same property, increased by the inline-start padding. If the content box has an italic correction then the padding box has the same property, increased by the inline-end padding.
The box metrics and offsets of the border box are obtained from the padding box by taking into account the corresponding border-width property as described in CSS.
In general, the baselines of the border box are the same as the one of the padding box . However, if the line-over border is positive then the ink-over baseline is set to the line-over edge of the border box and if the line-under border is positive then the ink-under baseline is set to the line-under edge of the border box .
If the padding box has a top accent attachment then the border box has the same property, increased by the border-width of its inline-start egde. If the padding box has an italic correction then the border box has the same property, increased by the border-width of its inline-end egde.
The box metrics and offsets of the margin box are obtained from the border box by taking into account the corresponding margin properties as described in CSS.
The baselines of the margin box are the same as the one of the border box .
If the padding box has a top accent attachment then the margin box has the same property, increased by the inline-start margin. If the padding box has an italic correction then the margin box has the same property, increased by the inline-end margin.
During box layout, optional inline stretch size constraint and block stretch size constraint parameters may be used on embellished operators . The former indicates a target size that a core operator stretched along the inline axis should cover. The latter indicates an ink line-ascent and ink line-descent that a core operator stretched along the block axis should cover. Unless specified otherwise, these parameters are ignored during box layout and child boxes are laid out without any stretch size constraint.
An
anonymous
box
is
a
box
without
any
associated
element
in
the
DOM
tree
and
which
is
generated
for
layout
purpose
only.
The
properties
of
anonymous
boxes
are
inherited
from
the
enclosing
non-anonymous
box
while
non-inherited
properties
have
their
initial
value.
An
anonymous
<mrow>
box
is
an
anonymous
box
with
display
equal
to
block
math
and
which
is
laid
out
as
described
in
section
3.3.1.2
Layout
of
<mrow>
.
If a MathML element generates an anonymous <mrow> box then it wraps its children in an anonymous <mrow> box. I.e., its subtree in the visual formatting model is made of an anonymous <mrow> box which itself contains the boxes associated to the children of this MathML element.
In
the
following
example,
the
math
and
mrow
elements
are
laid
out
as
described
in
section
3.3.1.2
Layout
of
<mrow>
.
In
particular,
the
<math>
element
adds
proper
spacing
around
its
<mo>≠</mo>
child
and
the
<mrow>
element
stretches
its
<mo>|</mo>
children
vertically.
The
mtd
element
has
display:
table-cell
and
the
msqrt
element
displays
a
radical
symbol
around
its
children.
However,
they
also
place
their
children
in
a
way
that
is
similar
to
what
is
described
in
section
3.3.1.2
Layout
of
<mrow>
:
the
<msqrt>
element
adds
proper
spacing
around
its
<mo>+</mo>
child
while
the
<mtd>
element
stretches
its
<mo>
children
vertically.
In
order
to
make
this
possible,
each
of
these
two
elements
generates
an
anonymous
<mrow>
box
.
<math>
<mrow>
<mo>|</mo>
<mtable>
<mtr>
<mtd>
<mi>x</mi>
</mtd>
<mtd>
<mo>(</mo>
<mfrac linethickness="0">
<mn>5</mn>
<mn>3</mn>
</mfrac>
<mo>)</mo>
</mtd>
</mtr>
<mtr>
<mtd>
<msqrt>
<mn>7</mn>
<mo>+</mo>
<mn>2</mn>
</msqrt>
</mtd>
<mtd>
<mi>y</mi>
</mtd>
</mtr>
</mtable>
<mo>|</mo>
</mrow>
<mo>≠</mo>
<mn>0</mn>
</
math
>
MathML
elements
can
overlap
due
to
various
spacing
rules.
They
can
as
well
contain
extra
graphical
items
(bars,
radical
symbol,
etc).
A
MathML
element
with
computed
style
display:
block
math
or
display:
inline
math
generates
a
new
stacking
context.
The
painting
order
of
in-flow
children
of
such
a
MathML
element
is
exactly
the
same
as
block
elements.
The
extra
graphical
items
are
painted
after
text
and
background
(right
after
step
7.2.4
for
display:
inline
math
and
right
after
step
7.2
for
display:
block
math
).
Token elements in presentation markup are broadly intended to represent the smallest units of mathematical notation which carry meaning. Tokens are roughly analogous to words in text. However, because of the precise, symbolic nature of mathematical notation, the various categories and properties of token elements figure prominently in MathML markup. By contrast, in textual data, individual words rarely need to be marked up or styled specially.
The
mtext
element
is
used
to
represent
arbitrary
text
that
should
be
rendered
as
itself.
In
general,
the
<mtext>
element
is
intended
to
denote
commentary
text.
The
<mtext>
element
accepts
the
attributes
described
in
2.1.3
Global
Attributes
.
In
the
following
example,
mtext
is
used
to
put
conditional
words
in
a
definition:
<math>
<mi>y</mi>
<mo>=</mo>
<mrow>
<msup>
<mi>x</mi>
<mn>2</mn>
</msup>
<mtext> if </mtext>
<mrow>
<mi>x</mi>
<mo>≥</mo>
<mn>1</mn>
</mrow>
<mtext> and </mtext>
<mn>2</mn>
<mtext> otherwise.</mtext>
</mrow>
</
math
>
If
the
element
does
not
have
its
computed
display
property
equal
to
block
math
or
inline
math
then
it
is
laid
out
according
to
the
CSS
specification
where
the
corresponding
value
is
described.
Otherwise,
the
layout
below
is
performed.
If
the
<mtext>
element
contains
only
text
content
without
forced
line
break
or
soft
wrap
opportunity
then,
the
anonymous
child
node
generated
for
that
text
is
laid
out
as
defined
in
the
relevant
CSS
specification
and:
<mtext>
element.
Otherwise,
the
mtext
element
is
laid
out
as
a
block
box
and
corresponding
min-content
inline
size
,
max-content
inline
size
,
inline
size
,
block
size
,
first
baseline
set
and
last
baseline
set
are
used
for
the
math
content
box
.
The mi element represents a symbolic name or arbitrary text that should be rendered as an identifier. Identifiers can include variables, function names, and symbolic constants.
The
<mi>
element
accepts
the
attributes
described
in
2.1.3
Global
Attributes
as
well
as
the
following
attribute:
The
layout
algorithm
is
the
same
as
the
mtext
element.
The
user
agent
stylesheet
must
contain
the
following
property
in
order
to
implement
automatic
italic
via
the
text-transform
value
introduced
in
4.2
The
math-auto
transform
:
mi {
text-transform: math-auto;
}
The
mathvariant
attribute,
if
present,
must
be
an
ASCII
case-insensitive
match
of
normal
.
In
that
case,
the
user
agent
is
expected
to
treat
the
attribute
as
a
presentational
hint
setting
the
element's
text-transform
property
to
none
.
Otherwise
it
has
no
effects.
In
[
MathML3
],
the
mathvariant
attribute
was
used
to
define
logical
classes
of
token
elements,
each
class
providing
a
collection
of
typographically-related
symbolic
tokens
with
specific
meaning
within
a
given
mathematical
expression.
In
MathML
Core,
this
attribute
is
only
used
to
cancel
automatic
italic
of
the
mi
element.
For
other
use
cases,
the
proper
Mathematical
Alphanumeric
Symbols
[
UNICODE
]
should
be
used
instead.
See
also
section
C.
Mathematical
Alphanumeric
Symbols
.
In
the
following
example,
mi
is
used
to
render
variables
and
function
names.
Note
that
per
4.2
The
math-auto
transform
the
default
style
text-transform:
math-auto
has
no
effect
on
the
first
<mi>
("cos"
is
made
of
three
characters),
makes
the
second
<mi>
render
as
math
italic
("c"
is
made
of
a
single
character
U+0063
Latin
Small
Letter
C
which
is
mapped
to
U+1D450
Mathematical
Italic
Small
C
per
the
italic
table),
has
no
effect
on
the
third
<mi>
(overridden
by
mathvariant="normal"
,
setting
text-transform
to
none)
or
on
the
fourth
<mi>
(no
mapping
defined
for
U+221E
Infinity
in
the
italic
table).
<math>
<mi>cos</mi>
<mo>,</mo>
<mi>c</mi>
<mo>,</mo>
<mi mathvariant="normal">c</mi>
<mo>,</mo>
<mi>∞</mi>
</
math
>
The mn element represents a "numeric literal" or other data that should be rendered as a numeric literal. Generally speaking, a numeric literal is a sequence of digits, perhaps including a decimal point, representing an unsigned integer or real number.
The
<mn>
element
accepts
the
attributes
described
in
2.1.3
Global
Attributes
.
Its
layout
algorithm
is
the
same
as
the
mtext
element.
In
the
following
example,
mn
is
used
to
write
a
decimal
number.
<math>
<mn>3.141592653589793</mn>
</
math
>
The
mo
element
represents
an
operator
or
anything
that
should
be
rendered
as
an
operator.
In
general,
the
notational
conventions
for
mathematical
operators
are
quite
complicated,
and
therefore
MathML
provides
a
relatively
sophisticated
mechanism
for
specifying
the
rendering
behavior
of
an
<mo>
element.
As a consequence, in MathML the list of things that should "render as an operator" includes a number of notations that are not mathematical operators in the ordinary sense. Besides ordinary operators with infix, prefix, or postfix forms, these include fence characters such as braces, parentheses, and "absolute value" bars; separators such as comma and semicolon; and mathematical accents such as a bar or tilde over a symbol. This chapter uses the term "operator" to refer to operators in this broad sense.
The
<mo>
element
accepts
the
attributes
described
in
2.1.3
Global
Attributes
as
well
as
the
following
attributes:
This specification does not define any observable behavior that is specific to the fence and separator attributes.
fence
and
separator
to
describe
specific
semantics
of
operators.
The
default
values
may
be
determined
from
the
Operators_fence
and
Operators_separator
tables,
or
equivalently
the
human-readable
version
of
the
operator
dictionary.
In
the
following
example,
the
mo
element
is
used
for
the
binary
operator
+.
Default
spacing
is
symmetric
around
that
operator.
A
tighter
spacing
is
used
if
you
rely
on
the
form
attribute
to
force
it
to
be
treated
as
a
prefix
operator.
Spacing
can
also
be
specified
explicitly
using
the
lspace
and
rspace
attributes.
<math>
<mn>1</mn>
<mo>+</mo>
<mn>2</mn>
<mo form="prefix">+</mo>
<mn>3</mn>
<mo lspace="2em">+</mo>
<mn>4</mn>
<mo rspace="3em">+</mo>
<mn>5</mn>
</
math
>
Another
use
case
is
for
big
operators
such
as
summation.
When
displaystyle
is
true,
such
an
operator
is
drawn
larger
but
one
can
change
that
with
the
largeop
attribute.
When
displaystyle
is
false,
underscripts
are
actually
rendered
as
subscripts
but
one
can
change
that
with
the
movablelimits
attribute.
<math>
<mrow displaystyle="true">
<munder>
<mo>∑</mo>
<mn>5</mn>
</munder>
<munder>
<mo largeop="false">∑</mo>
<mn>6</mn>
</munder>
</mrow>
<mrow>
<munder>
<mo>∑</mo>
<mn>5</mn>
</munder>
<munder>
<mo movablelimits="false">∑</mo>
<mn>7</mn>
</munder>
</mrow>
</
math
>
Operators
are
also
used
for
stretchy
symbols
such
as
fences,
accents,
arrows
etc.
In
the
following
example,
the
vertical
arrow
stretches
to
the
height
of
the
mspace
element.
One
can
override
default
stretch
behavior
with
the
stretchy
attribute
e.g.
to
force
an
unstretched
arrow.
The
symmetric
attribute
allows
to
indicate
whether
the
operator
should
stretch
symmetrically
above
and
below
the
math
axis
(fraction
bar).
Finally
the
minsize
and
maxsize
attributes
add
additional
constraints
over
the
stretch
size.
<math>
<mfrac>
<mspace height="50px" depth="50px" width="10px" style="background: blue"/>
<mspace height="25px" depth="25px" width="10px" style="background: green"/>
</mfrac>
<mo>↑</mo>
<mo stretchy="false">↑</mo>
<mo symmetric="true">↑</mo>
<mo minsize="250px">↑</mo>
<mo maxsize="50px">↑</mo>
</
math
>
Note that the default properties of operators are dictionary-based, as explained in 3.2.4.2 Dictionary-based attributes . For example a binary operator typically has default symmetric spacing around it while a fence is generally stretchy by default.
A MathML Core element is an embellished operator if it is:
mo
element;
mfrac
,
whose
first
in-flow
child
exists
and
is
an
embellished
operator
;
mpadded
,
whose
in-flow
children
consist
(in
any
order)
of
one
embellished
operator
and
zero
or
more
space-like
elements.
The
core
operator
of
an
embellished
operator
is
the
<mo>
element
defined
recursively
as
follows:
mo
element;
is
the
element
itself.
mfrac
element
is
the
core
operator
of
its
first
in-flow
child.
mpadded
is
the
core
operator
of
its
unique
embellished
operator
in-flow
child.
The
stretch
axis
of
an
embellished
operator
is
inline
if
its
core
operator
contains
only
text
content
made
of
a
single
character
c
,
and
that
character
has
inline
intrinsic
stretch
axis
.
Otherwise,
the
stretch
axis
of
the
embellished
operator
is
block
.
The same definitions apply for boxes in the visual formatting model where an anonymous <mrow> box is treated as a grouping element .
The
form
property
of
an
embellished
operator
is
either
infix
,
prefix
or
postfix
.
The
corresponding
form
attribute
on
the
mo
element,
if
present,
must
be
an
ASCII
case-insensitive
match
to
one
of
these
values.
The
algorithm
for
determining
the
form
of
an
embellished
operator
is
as
follows:
form
attribute
is
present
and
valid
on
the
core
operator
,
then
its
ASCII
lowercased
value
is
used.
mpadded
or
msqrt
with
more
than
one
in-flow
child
(ignoring
all
space-like
children)
then
it
has
form
prefix
.
mpadded
or
msqrt
with
more
than
one
in-flow
child
(ignoring
all
space-like
children)
then
it
has
form
postfix
.
postfix
.
infix
.
The
stretchy
,
symmetric
,
largeop
,
movablelimits
properties
of
an
embellished
operator
are
either
false
or
true
.
In
the
latter
case,
it
is
said
that
the
embellished
operator
has
the
property.
The
corresponding
stretchy
,
symmetric
,
largeop
,
movablelimits
attributes
on
the
mo
element,
if
present,
must
be
a
boolean
.
The
lspace
,
rspace
,
minsize
properties
of
an
embellished
operator
are
<length-percentage>
.
The
maxsize
property
of
an
embellished
operator
is
either
a
<length-percentage>
or
∞.
The
lspace
,
rspace
,
minsize
and
maxsize
attributes
on
the
mo
element,
if
present,
must
be
a
<length-percentage>
.
The algorithm for determining the properties of an embellished operator is as follows:
stretchy
,
symmetric
,
largeop
,
movablelimits
,
lspace
,
rspace
,
maxsize
or
minsize
attribute
is
present
and
valid
on
the
core
operator
,
then
the
ASCII
lowercased
value
of
this
property
is
used.
form
of
an
embellished
operator
.
Content
,
then
set
Category
to
the
result
of
the
algorithm
to
determine
the
category
of
an
operator
(Content,
Form)
where
Form
is
the
form
calculated
at
the
previous
step.
Category
is
Default
and
the
form
of
embellished
operator
was
not
explicitly
specified
as
an
attribute
on
its
core
operator
:
Category
to
the
result
of
the
algorithm
to
determine
the
category
of
an
operator
(Content,
Form)
where
Form
is
infix
.
Category
is
Default
,
then
run
the
algorithm
again
with
Form
set
to
postfix
.
Category
is
Default
,
then
run
the
algorithm
again
with
Form
set
to
prefix
.
Category
.
When
used
during
layout,
the
values
of
stretchy
,
symmetric
,
largeop
,
movablelimits
,
lspace
,
rspace
,
minsize
are
obtained
by
the
algorithm
for
determining
the
properties
of
an
embellished
operator
with
the
following
extra
resolutions:
lspace
,
rspace
are
interpreted
relative
to
the
value
read
from
the
dictionary
or
to
the
fallback
value
above.
minsize
and
maxsize
are
described
in
3.2.4.3
Layout
of
operators
.
lspace
,
rspace
,
minsize
and
maxsize
rely
on
the
font
style
of
the
core
operator
,
not
the
one
of
the
embellished
operator
.
If
the
<mo>
element
does
not
have
its
computed
display
property
equal
to
block
math
or
inline
math
then
it
is
laid
out
according
to
the
CSS
specification
where
the
corresponding
value
is
described.
Otherwise,
the
layout
below
is
performed.
The
text
of
the
operator
must
only
be
painted
if
the
visibility
of
the
<mo>
element
is
visible
.
In
that
case,
it
must
be
painted
with
the
color
of
the
<mo>
element.
Operators are laid out as follows:
<mo>
element
is
not
made
of
a
single
character
c
then
fall
back
to
the
layout
algorithm
of
3.2.1.1
Layout
of
<mtext>
.
stretchy
property:
c
in
the
inline
direction
with
the
first
available
font
then
fall
back
to
the
layout
algorithm
of
3.2.1.1
Layout
of
<mtext>
.
<mtext>
.
T
inline
then
fall
back
to
the
layout
algorithm
of
3.2.1.1
Layout
of
<mtext>
.
T
inline
.
T
inline
and
at
position
determined
by
the
previous
box
metrics.
c
in
the
block
direction
with
the
first
available
font
then
fall
back
to
the
layout
algorithm
of
3.2.1.1
Layout
of
<mtext>
.
(U
ascent
,
U
descent
)
then
fall
back
to
the
layout
algorithm
of
3.2.1.1
Layout
of
<mtext>
.
symmetric
property
then
set
the
target
sizes
T
ascent
and
T
descent
to
S
ascent
and
S
descent
respectively:
S
ascent
=
max(
U
ascent
−
AxisHeight
,
U
descent
+
AxisHeight
)
+
AxisHeight
S
descent
=
max(
U
ascent
−
AxisHeight
,
U
descent
+
AxisHeight
)
−
AxisHeight
U
ascent
and
U
descent
respectively.
T
ascent
−
AxisHeight
=
T
descent
+
AxisHeight
means
that
an
operator
stretching
exactly
T
ascent
above
the
baseline
and
T
descent
below
the
baseline
would
actually
stretch
symmetrically
above
and
below
the
math
axis
.
S
ascent
and
S
descent
are
the
minimal
values,
that
are
respectively
not
less
than
U
ascent
and
U
descent
,
which
satisfy
this
property.
minsize
and
maxsize
be
the
minsize
and
maxsize
properties
on
the
operator.
Percentage
values
are
interpreted
relative
to
the
height
of
the
glyph
for
c
.
Let
T
=
T
ascent
+
T
descent
be
the
target
size.
If
minsize
<
0
then
set
minsize
to
0.
If
maxsize
<
minsize
then
set
maxsize
to
minsize
.
With
0
≤
minsize
≤
maxsize
:
T
≤
0
then
set
T
ascent
to
minsize
/
2
+
AxisHeight
and
then
set
T
descent
to
minsize
−
T
ascent
.
T
<
minsize
then
set
T
ascent
to
max(0,
(
T
ascent
−
AxisHeight
)
×
minsize
/
T
+
AxisHeight
)
and
T
descent
to
minsize
−
T
ascent
.
maxsize
<
T
then
set
T
ascent
to
max(0,
(
T
ascent
−
AxisHeight
)
×
maxsize
/
T
+
AxisHeight
)
and
T
descent
to
maxsize
−
T
ascent
.
maxsize
is
value
∞
is
interpreted
above
as
being
larger
than
any
other
size,
i.e.
minsize
≤
maxsize
is
always
true
while
maxsize
<
minsize
and
maxsize
<
T
are
always
false.
minsize
≤
T
≤
maxsize
holds.
Additionnally,
if
the
target
values
correspond
to
symmetric
stretching
with
respect
to
the
math
axis
then
property
T
ascent
−
AxisHeight
=
T
descent
+
AxisHeight
is
preserved.
T
ascent
+
T
descent
.
The
inline
size
of
the
math
content
is
the
width
of
the
stretchy
glyph.
The
stretchy
glyph
is
shifted
towards
the
line-under
by
a
value
Δ
so
that
its
center
aligns
with
the
center
of
the
target:
the
ink
ascent
of
the
math
content
is
the
ascent
of
the
stretchy
glyph
−
Δ
and
the
ink
descent
of
the
math
content
is
the
descent
of
the
stretchy
glyph
+
Δ.
These
centers
have
coordinates
"½(ascent
−
descent)"
so
Δ
=
[(ascent
of
stretchy
glyph
−
descent
of
stretchy
glyph)
−
(
T
ascent
−
T
descent
)]
/
2.
T
ascent
+
T
descent
and
at
position
determined
by
the
previous
box
metrics
shifted
by
Δ
towards
the
line-over
.
largeop
property
and
if
math-style
on
the
<mo>
element
is
normal
,
then:
Use
the
MathVariants
table
to
try
and
find
a
glyph
of
height
at
least
DisplayOperatorMinHeight
.
If
none
is
found,
fall
back
to
the
largest
non-base
glyph.
If
none
is
found,
fall
back
to
the
layout
algorithm
of
3.2.1.1
Layout
of
<mtext>
.
<mtext>
.
If the algorithm to shape a stretchy glyph has been used for one of the step above, then the italic correction of the math content is set to the value returned by that algorithm.
The mspace empty element represents a blank space of any desired size, as set by its attributes.
The
<mspace>
element
accepts
the
attributes
described
in
2.1.3
Global
Attributes
as
well
as
the
following
attributes:
The width , height , depth , if present, must have a value that is a valid <length-percentage> .
width
attribute
is
present,
valid
and
not
a
percentage
then
that
attribute
is
used
as
a
presentational
hint
setting
the
element's
width
property
to
the
corresponding
value.
height
attribute
is
absent,
invalid
or
a
percentage
then
the
requested
line-ascent
is
0
.
Otherwise
the
requested
line-ascent
is
the
resolved
value
of
the
height
attribute,
clamping
negative
values
to
0
.
height
and
depth
attributes
are
present,
valid
and
not
a
percentage
then
they
are
used
as
a
presentational
hint
setting
the
element's
height
property
to
the
concatenation
of
the
strings
"
calc(
",
the
height
attribute
value,
"
+
",
the
depth
attribute
value,
and
"
)
".
If
only
one
of
these
attributes
is
present,
valid
and
not
a
percentage
then
it
is
treated
as
a
presentational
hint
setting
the
element's
height
property
to
the
corresponding
value.
In
the
following
example,
mspace
is
used
to
force
spacing
within
the
formula
(a
1px
blue
border
is
added
to
easily
visualize
the
space):
<math>
<mn>1</mn>
<mspace width="1em"
style="border-top: 1px solid blue"/>
<mfrac>
<mrow>
<mn>2</mn>
<mspace depth="1em"
style="border-left: 1px solid blue"/>
</mrow>
<mrow>
<mn>3</mn>
<mspace height="2em"
style="border-left: 1px solid blue"/>
</mrow>
</mfrac>
</
math
>
If
the
<mspace>
element
does
not
have
its
computed
display
property
equal
to
block
math
or
inline
math
then
it
is
laid
out
according
to
the
CSS
specification
where
the
corresponding
value
is
described.
Otherwise,
the
<mspace>
element
is
laid
out
as
shown
on
Figure
9
.
The
min-content
inline
size
,
max-content
inline
size
and
inline
size
of
the
math
content
are
equal
to
the
resolved
value
of
the
width
property.
The
block
size
of
the
math
content
is
equal
to
the
resolved
value
of
the
height
property.
The
line-ascent
of
the
math
content
is
equal
to
the
requested
line-ascent
determined
above.
<mspace>
element
A number of MathML presentation elements are "space-like" in the sense that they typically render as whitespace, and do not affect the mathematical meaning of the expressions in which they appear. As a consequence, these elements often function in somewhat exceptional ways in other MathML expressions.
A MathML Core element is a space-like element if it is:
mtext
or
mspace
;
mpadded
all
of
whose
in-flow
children
are
space-like
.
The same definitions apply for boxes in the visual formatting model where an anonymous <mrow> box is treated as a grouping element .
mphantom
is
not
automatically
defined
to
be
space-like,
unless
its
content
is
space-like.
This
is
because
operator
spacing
is
affected
by
whether
adjacent
elements
are
space-like.
Since
the
<mphantom>
element
is
primarily
intended
as
an
aid
in
aligning
expressions,
operators
adjacent
to
an
<mphantom>
should
behave
as
if
they
were
adjacent
to
the
contents
of
the
<mphantom>
,
rather
than
to
an
equivalently
sized
area
of
whitespace.
ms element is used to represent "string literals" in expressions meant to be interpreted by computer algebra systems or other systems containing "programming languages".
The
<ms>
element
accepts
the
attributes
described
in
2.1.3
Global
Attributes
.
Its
layout
algorithm
is
the
same
as
the
mtext
element.
In
the
following
example,
ms
is
used
to
write
a
literal
string
of
characters:
<math>
<mi>s</mi>
<mo>=</mo>
<ms>"hello world"</ms>
</
math
>
lquote
and
rquote
attributes
to
respectively
specify
the
strings
to
use
as
opening
and
closing
quotes.
These
are
no
longer
supported
and
the
quotes
must
instead
be
specified
as
part
of
the
text
of
the
<ms>
element.
One
can
add
CSS
rules
to
legacy
documents
in
order
to
preserve
visual
rendering.
For
example,
in
left-to-right
direction:
ms:before, ms:after {
content: "\0022";
}
ms[lquote]:before {
content: attr(lquote);
}
ms[rquote]:after {
content: attr(rquote);
}
Besides tokens there are several families of MathML presentation elements. One family of elements deals with various "scripting" notations, such as subscript and superscript. Another family is concerned with matrices and tables. The remainder of the elements, discussed in this section, describe other basic notations such as fractions and radicals, or deal with general functions such as setting style properties and error handling.
The
mrow
element
is
used
to
group
together
any
number
of
sub-expressions,
usually
consisting
of
one
or
more
<mo>
elements
acting
as
"operators"
on
one
or
more
other
expressions
that
are
their
"operands".
In
the
following
example,
mrow
is
used
to
group
a
sum
"1
+
2/3"
as
a
fraction
numerator
(first
child
of
mfrac
)
and
to
construct
a
fenced
expression
(first
child
of
msup
)
that
is
raised
to
the
power
of
5.
Note
that
mrow
alone
does
not
add
visual
fences
around
its
grouped
content,
one
has
to
explicitly
specify
them
using
the
mo
element.
Within
the
mrow
elements,
one
can
see
that
vertical
alignment
of
children
(according
to
the
alphabetic
baseline
or
the
mathematical
baseline
)
is
properly
performed,
fences
are
vertically
stretched
and
spacing
around
the
binary
+
operator
automatically
calculated.
<math>
<msup>
<mrow>
<mo>(</mo>
<mfrac>
<mrow>
<mn>1</mn>
<mo>+</mo>
<mfrac>
<mn>2</mn>
<mn>3</mn>
</mfrac>
</mrow>
<mn>4</mn>
</mfrac>
<mo>)</mo>
</mrow>
<mn>5</mn>
</msup>
</
math
>
The
<mrow>
element
accepts
the
attributes
described
in
2.1.3
Global
Attributes
.
An
<mrow>
element
with
in-flow
children
child
1
,
child
2
,
…,
child
N
is
laid
out
as
shown
on
Figure
10
.
The
child
boxes
are
put
in
a
row
one
after
the
other
with
all
their
alphabetic
baselines
aligned.
<mrow>
element
The algorithm for stretching operators along the block axis consists in the following steps:
L
ToStretch
containing
embellished
operators
with
a
stretchy
property
and
block
stretch
axis
;
and
a
second
list
L
NotToStretch
.
L
NotToStretch
.
If
L
ToStretch
is
empty
then
stop.
If
L
NotToStretch
is
empty,
perform
layout
with
block
stretch
size
constraint
(0,
0)
for
all
the
items
of
L
ToStretch
.
U
ascent
and
U
descent
as
respectively
the
maximum
ink
ascent
and
maximum
ink
descent
of
the
margin
boxes
of
in-flow
children
that
have
been
laid
out
in
the
previous
step.
L
ToStretch
with
block
stretch
size
constraint
(U
ascent
,
U
descent
)
.
If
the
box
is
not
an
anonymous
<mrow>
box
and
the
associated
element
does
not
have
its
computed
display
property
equal
to
block
math
or
inline
math
then
it
is
laid
out
according
to
the
CSS
specification
where
the
corresponding
value
is
described.
Otherwise,
the
layout
below
is
performed.
A child box is slanted if it is not an embellished operator and has nonzero italic correction .
lspace
and
rspace
.
The min-content inline size (respectively max-content inline size ) are calculated using the following algorithm:
add-space
to
true
if
the
box
corresponds
to
a
math
element
or
is
not
an
embellished
operator
;
and
to
false
otherwise.
inline-offset
to
0.
previous-italic-correction
to
0.
inline-offset
by
previous-italic-correction
.
add-space
is
true
then
increment
inline-offset
by
its
lspace
property.
inline-offset
by
the
min-content
inline
size
(respectively
max-content
inline
size
)
of
the
child's
margin
box
.
previous-italic-correction
to
its
italic
correction
.
Otherwise
set
it
to
0.
add-space
is
true
then
increment
inline-offset
by
its
rspace
property.
inline-offset
by
previous-italic-correction
.
inline-offset
.
The in-flow children are laid out using the algorithm for stretching operators along the block axis .
The inline size of the math content is calculated like the min-content inline size and max-content inline size of the math content, using the inline size of the in-flow children's margin boxes instead.
The ink line-ascent (respectively line-ascent ) of the math content is the maximum of the ink line-ascents (respectively line-ascents ) of all the in-flow children's margin boxes . Similarly, the ink line-descent (respectively line-descent ) of the math content is the maximum of the ink line-descents (respectively ink line-ascents ) of all the in-flow children's margin boxes .
The in-flow children are positioned using the following algorithm:
add-space
to
true
if
the
box
corresponds
to
a
math
element
or
is
not
an
embellished
operator
;
and
to
false
otherwise.
inline-offset
to
0.
previous-italic-correction
to
0.
inline-offset
by
previous-italic-correction
.
add-space
is
true
then
increment
inline-offset
by
its
lspace
property.
inline-offset
and
its
block
offset
such
that
the
alphabetic
baseline
of
the
child
is
aligned
with
the
alphabetic
baseline
.
inline-offset
by
the
inline
size
of
the
child's
margin
box
.
previous-italic-correction
to
its
italic
correction
.
Otherwise
set
it
to
0.
add-space
is
true
then
increment
inline-offset
by
its
rspace
property.
The
italic
correction
of
the
math
content
is
set
to
the
italic
correction
of
the
last
in-flow
child,
which
is
the
final
value
of
previous-italic-correction
.
The mfrac element is used for fractions. It can also be used to mark up fraction-like objects such as binomial coefficients and Legendre symbols.
If
the
<mfrac>
element
does
not
have
its
computed
display
property
equal
to
block
math
or
inline
math
then
it
is
laid
out
according
to
the
CSS
specification
where
the
corresponding
value
is
described.
Otherwise,
the
layout
below
is
performed.
The
<mfrac>
element
accepts
the
attributes
described
in
2.1.3
Global
Attributes
as
well
as
the
following
attribute:
The linethickness attribute indicates the fraction line thickness to use for the fraction bar. If present, it must have a value that is a valid <length-percentage> . If the attribute is absent or has an invalid value, FractionRuleThickness is used as the default value. A percentage is interpreted relative to that default value. A negative value is interpreted as 0.
The
following
example
contains
four
fractions
with
different
linethickness
values.
The
bars
are
always
aligned
with
the
middle
of
plus
and
minus
signs.
The
numerator
and
denominator
are
horizontally
centered.
The
fractions
that
are
not
in
displaystyle
use
smaller
gaps
and
font-size.
<math>
<mn>0</mn>
<mo>+</mo>
<mfrac displaystyle="true">
<mn>1</mn>
<mn>2</mn>
</mfrac>
<mo>−</mo>
<mfrac>
<mn>1</mn>
<mn>2</mn>
</mfrac>
<mo>+</mo>
<mfrac linethickness="200%">
<mn>1</mn>
<mn>234</mn>
</mfrac>
<mo>−</mo>
<mrow>
<mo>(</mo>
<mfrac linethickness="0">
<mn>123</mn>
<mn>4</mn>
</mfrac>
<mo>)</mo>
</mrow>
</
math
>
The
<mfrac>
element
sets
displaystyle
to
false
,
or
if
it
was
already
false
increments
scriptlevel
by
1,
within
its
children.
It
sets
math-shift
to
compact
within
its
second
child.
To
avoid
visual
confusion
between
the
fraction
bar
and
another
adjacent
items
(e.g.
minus
sign
or
another
fraction's
bar),
a
default
1-pixel
space
is
added
around
the
element.
The
user
agent
stylesheet
must
contain
the
following
rules:
mfrac {
padding-inline: 1px;
}
mfrac > * {
: auto-add;
: compact;
math-depth: auto-add;
math-style: compact;
}
mfrac > :nth-child(2) {
: compact;
math-shift: compact;
}
If
the
<mfrac>
element
has
less
or
more
than
two
in-flow
children,
its
layout
algorithm
is
the
same
as
the
mrow
element.
Otherwise,
the
first
in-flow
child
is
called
numerator
,
the
second
in-flow
child
is
called
denominator
and
the
layout
algorithm
is
explained
below.
<mfrac>
element
has
two
children
that
are
in-flow
.
Hence
the
CSS
rules
basically
perform
scriptlevel
,
displaystyle
and
math-shift
changes
for
the
numerator
and
denominator
.
If
the
fraction
line
thickness
is
nonzero,
the
<mfrac>
element
is
laid
out
as
shown
on
Figure
12
.
The
fraction
bar
must
only
be
painted
if
the
visibility
of
the
<mfrac>
element
is
visible
.
In
that
case,
the
fraction
bar
must
be
painted
with
the
color
of
the
<mfrac>
element.
<mfrac>
element
The min-content inline size (respectively max-content inline size ) of content is the maximum between the min-content inline size (respectively max-content inline size ) of the numerator 's margin box and the min-content inline size (respectively max-content inline size ) of the denominator 's margin box .
If there is an inline stretch size constraint or a block stretch size constraint then the numerator is also laid out with the same stretch size constraint, otherwise it is laid out without any stretch size constraint. The denominator is always laid out without any stretch size constraint.
The inline size of the math content is the maximum between the inline size of the numerator 's margin box and the inline size of the denominator 's margin box .
NumeratorShift
is
the
maximum
between:
compact
(respectively
normal
).
compact
(respectively
normal
)
+
the
ink
line-descent
of
the
numerator
's
margin
box
.
DenominatorShift
is
the
maximum
between:
compact
(respectively
normal
).
compact
(respectively
normal
)
+
the
ink
line-ascent
of
the
denominator
's
margin
box
−
the
AxisHeight
.
The line-ascent of the math content is the maximum between:
Numerator
Shift
+
the
line-ascent
of
the
numerator
's
margin
box
.
Denominator
Shift
+
the
line-ascent
of
the
denominator
's
margin
box
The line-descent of the math content is the maximum between:
Numerator
Shift
+
the
line-descent
of
the
numerator
's
margin
box
.
Denominator
Shift
+
the
line-descent
of
the
denominator
's
margin
box
.
The inline offset of the numerator (respectively denominator ) is half the inline size of the math content − half the inline size of the numerator 's margin box (respectively denominator 's margin box ).
The
alphabetic
baseline
of
the
numerator
(respectively
denominator
)
is
shifted
away
from
the
alphabetic
baseline
by
a
distance
of
NumeratorShift
(respectively
DenominatorShift
)
towards
the
line-over
(respectively
line-under
).
The math content box is placed within the content box so that their block-start edges are aligned and the middles of these edges are at the same position.
The inline size of the fraction bar is the inline size of the content box and its inline-start edge is the aligned with the one the content box . The center of the fraction bar is shifted away from the alphabetic baseline of the math content box by a distance of AxisHeight towards the line-over . Its block size is the fraction line thickness .
If
the
fraction
line
thickness
is
zero,
the
<mfrac>
element
is
instead
laid
out
as
shown
on
Figure
13
.
<mfrac>
element
without
bar
The min-content inline size , max-content inline size and inline size of the math content are calculated the same as in 3.3.2.1 Fraction with nonzero line thickness .
If there is an inline stretch size constraint or a block stretch size constraint then the numerator is also laid out with the same stretch size constraint and otherwise it is laid out without any stretch size constraint. The denominator is always laid out without any stretch size constraint.
If
the
math-style
is
compact
then
TopShift
and
BottomShift
are
respectively
set
to
StackTopShiftUp
and
StackBottomShiftDown
.
Otherwise
math-style
is
normal
and
they
are
respectively
set
to
StackTopDisplayStyleShiftUp
and
StackBottomDisplayStyleShiftDown
.
The
Gap
is
defined
to
be
(
BottomShift
−
the
ink
line-ascent
of
the
denominator
's
margin
box
)
+
(
TopShift
−
the
ink
line-descent
of
the
numerator
's
margin
box
).
If
math-style
is
compact
then
GapMin
is
StackGapMin
,
otherwise
math-style
is
normal
and
it
is
StackDisplayStyleGapMin
.
If
Δ
=
GapMin
−
Gap
is
positive
then
TopShift
and
BottomShift
are
respectively
increased
by
Δ/2
and
Δ
−
Δ/2.
The line-ascent of the math content is the maximum between:
TopShift
+
the
line-ascent
of
the
numerator
's
margin
box
.
BottomShift
+
the
line-ascent
of
the
denominator
's
margin
box
.
The line-descent of the math content is the maximum between:
TopShift
+
the
line-descent
of
the
numerator
's
margin
box
.
BottomShift
+
the
line-descent
of
the
denominator
's
margin
box
.
The inline offsets of the numerator and denominator are calculated the same as in 3.3.2.1 Fraction with nonzero line thickness .
The
alphabetic
baseline
of
the
numerator
(respectively
denominator
)
is
shifted
away
from
the
alphabetic
baseline
by
a
distance
of
TopShift
(respectively
−
BottomShift
)
towards
the
line-over
(respectively
line-under
).
The math content box is placed within the content box so that their block-start edges are aligned and the middles of these edges are at the same position.
The radical elements construct an expression with a root symbol √ with a line over the content. The msqrt element is used for square roots, while the mroot element is used to draw radicals with indices, e.g. a cube root.
The
<msqrt>
and
<mroot>
elements
accept
the
attributes
described
in
2.1.3
Global
Attributes
.
The
following
example
contains
a
square
root
written
with
msqrt
and
a
cube
root
written
with
mroot
.
Note
that
msqrt
has
several
children
and
the
square
root
applies
to
all
of
them.
mroot
has
exactly
two
children:
it
is
a
root
of
index
the
second
child
(the
number
3),
applied
to
the
first
child
(the
square
root).
Also
note
these
elements
only
change
the
font-size
within
the
mroot
index,
but
it
is
scaled
down
more
than
within
the
numerator
and
denumerator
of
the
fraction.
<math>
<mroot>
<msqrt>
<mfrac>
<mn>1</mn>
<mn>2</mn>
</mfrac>
<mo>+</mo>
<mn>4</mn>
</msqrt>
<mn>3</mn>
</mroot>
<mo>+</mo>
<mn>0</mn>
</
math
>
The
<msqrt>
and
<mroot>
elements
sets
math-shift
to
compact
.
The
<mroot>
element
increments
scriptlevel
by
2,
and
sets
displaystyle
to
"false"
in
all
but
its
first
child.
The
user
agent
stylesheet
must
contain
the
following
rule
in
order
to
implement
that
behavior:
mroot > :not(:first-child) {
);
: compact;
math-depth: add(2);
math-style: compact;
}
mroot, msqrt {
: compact;
math-shift: compact;
}
If
the
<msqrt>
or
<mroot>
element
do
not
have
their
computed
display
property
equal
to
block
math
or
inline
math
then
they
are
laid
out
according
to
the
CSS
specification
where
the
corresponding
value
is
described.
Otherwise,
the
layout
below
is
performed.
If
the
<mroot>
has
less
or
more
than
two
in-flow
children,
its
layout
algorithm
is
the
same
as
the
mrow
element.
Otherwise,
the
first
in-flow
child
is
called
mroot
base
and
the
second
in-flow
child
is
called
mroot
index
and
its
layout
algorithm
is
explained
below.
<mroot>
element
has
two
children
that
are
in-flow
.
Hence
the
CSS
rules
basically
perform
scriptlevel
and
displaystyle
changes
for
the
index.
The
<msqrt>
element
generates
an
anonymous
<mrow>
box
called
the
msqrt
base
.
The
radical
symbol
must
only
be
painted
if
the
visibility
of
the
<msqrt>
or
<mroot>
element
is
visible
.
In
that
case,
the
radical
symbol
must
be
painted
with
the
color
of
that
element.
The radical glyph is the glyph obtained for the character U+221A SQUARE ROOT.
The
radical
gap
is
given
by
RadicalVerticalGap
if
the
math-style
is
compact
and
RadicalDisplayStyleVerticalGap
if
the
math-style
is
normal
.
The radical target size for the stretchy radical glyph is the sum of RadicalRuleThickness , radical gap and the ink height of the base.
The box metrics of the radical glyph and painting of the surd are given by the algorithm to shape a stretchy glyph to block dimension the target size for the radical glyph.
The
<msqrt>
element
is
laid
out
as
shown
on
Figure
14
.
<msqrt>
element
The min-content inline size (respectively max-content inline size ) of the math content is the sum of the preferred inline size of a glyph stretched along the block axis for the radical glyph and of the min-content inline size (respectively max-content inline size ) of the msqrt base 's margin box .
The inline size of the math content is the sum of the advance width of the box metrics of the radical glyph and of the inline size of the msqrt base 's margin's box.
The line-ascent of the math content is the maximum between:
The line-descent of the math content is the maximum between:
The inline size of the overbar is the inline size of the msqrt base 's margin's box. The inline offsets of the msqrt base and overbar are also the same and equal to the width of the box metrics of the radical glyph .
The alphabetic baseline of the msqrt base is aligned with the alphabetic baseline . The block size of the overbar is RadicalRuleThickness . Its vertical center is shifted away from the alphabetic baseline by a distance towards the line-over equal to the line-ascent of the math content, minus the RadicalExtraAscender , minus half the RadicalRuleThickness .
Finally, the painting of the surd is performed:
The
<mroot>
element
is
laid
out
as
shown
on
Figure
15
.
The
mroot
index
is
first
ignored
and
the
mroot
base
and
radical
glyph
are
laid
out
as
shown
on
figure
Figure
14
using
the
same
algorithm
as
in
3.3.3.2
Square
root
in
order
to
produce
a
margin
box
B
(represented
in
green).
<mroot>
element
The min-content inline size (respectively max-content inline size ) of the math content is the sum of max(0, RadicalKernBeforeDegree ), the mroot index 's min-content inline size (respectively max-content inline size ) of the mroot index 's margin box , max(− min-content inline size , RadicalKernAfterDegree ) (respectively max(− max-content inline size of the mroot index 's margin box , RadicalKernAfterDegree )) and of the min-content inline size (respectively max-content inline size ) of B.
Using the same clamping, AdjustedRadicalKernBeforeDegree and AdjustedRadicalKernAfterDegree are respectively defined as max(0, RadicalKernBeforeDegree ) and is max(− inline size of the index's margin box , RadicalKernAfterDegree ).
The inline size of the math content is the sum of AdjustedRadicalKernBeforeDegree , the inline size of the index's margin box , AdjustedRadicalKernAfterDegree and of the inline size of B.
The line-ascent of the math content is the maximum between:
The line-descent of the math content is the maximum between:
The inline offset of the index is AdjustedRadicalKernBeforeDegree . The inline-offset of the mroot base is the same + the inline size of the index's margin box .
The alphabetic baseline of B is aligned with the alphabetic baseline . The alphabetic baseline of the index is shifted away from the line-under edge by a distance of RadicalDegreeBottomRaisePercent × the block size of B + the line-descent of the index's margin box .
Historically, the mstyle element was introduced to make style changes that affect the rendering of its contents.
The
<mstyle>
element
accepts
the
attributes
described
in
2.1.3
Global
Attributes
.
Its
layout
algorithm
is
the
same
as
the
mrow
element.
<mstyle>
is
implemented
for
compatibility
with
full
MathML.
Authors
whose
only
target
is
MathML
Core
are
encouraged
to
use
CSS
for
styling.
In
the
following
example,
mstyle
is
used
to
set
the
scriptlevel
and
displaystyle
.
Observe
this
is
respectively
affecting
the
font-size
and
placement
of
subscripts
of
their
descendants.
In
MathML
Core,
one
could
just
have
used
mrow
elements
instead.
<math>
<munder>
<mo movablelimits="true">*</mo>
<mi>A</mi>
</munder>
<mstyle scriptlevel="1">
<mstyle displaystyle="true">
<munder>
<mo movablelimits="true">*</mo>
<mi>B</mi>
</munder>
<munder>
<mo movablelimits="true">*</mo>
<mi>C</mi>
</munder>
</mstyle>
<munder>
<mo movablelimits="true">*</mo>
<mi>D</mi>
</munder>
</mstyle>
</
math
>
The merror element displays its contents as an ”error message”. The intent of this element is to provide a standard way for programs that generate MathML from other input to report syntax errors in their input.
In
the
following
example,
merror
is
used
to
indicate
a
parsing
error
for
some
LaTeX-like
input:
<math>
<mfrac>
<merror>
<mtext>Syntax error: \frac{1}</mtext>
</merror>
<mn>3</mn>
</mfrac>
</
math
>
The
<merror>
element
accepts
the
attributes
described
in
2.1.3
Global
Attributes
.
Its
layout
algorithm
is
the
same
as
the
mrow
element.
The
user
agent
stylesheet
must
contain
the
following
rule
in
order
to
visually
highlight
the
error
message:
merror {
border: 1px solid red;
background-color: lightYellow;
}
The
mpadded
element
renders
the
same
as
its
in-flow
child
content,
but
with
the
size
and
relative
positioning
point
of
its
content
modified
according
to
<mpadded>
’s
attributes.
The
<mpadded>
element
accepts
the
attributes
described
in
2.1.3
Global
Attributes
as
well
as
the
following
attributes:
The width , height , depth , lspace and voffset if present, must have a value that is a valid <length-percentage> .
In
the
following
example,
mpadded
is
used
to
tweak
spacing
around
a
fraction
(a
blue
background
is
used
to
visualize
it).
Without
attributes,
it
behaves
like
an
mrow
but
the
attributes
allow
to
specify
the
size
of
the
box
(width,
height,
depth)
and
position
of
the
fraction
within
that
box
(lspace
and
voffset).
<math>
<mrow>
<mn>1</mn>
<mpadded style="background: lightblue;">
<mfrac>
<mn>23456</mn>
<mn>78</mn>
</mfrac>
</mpadded>
<mn>9</mn>
</mrow>
<mo>+</mo>
<mrow>
<mn>1</mn>
<mpadded lspace="2em" voffset="-1em" height="1em" depth="3em" width="7em"
style="background: lightblue;">
<mfrac>
<mn>23456</mn>
<mn>78</mn>
</mfrac>
</mpadded>
<mn>9</mn>
</mrow>
</
math
>
The
mpadded
element
generates
an
anonymous
<mrow>
box
called
the
mpadded
inner
box
with
parameters
called
inner
inline
size,
inner
line-ascent
and
inner
line-descent.
The
requested
<mpadded>
parameters
are
determined
as
follows:
width
attribute
is
present,
valid
and
not
a
percentage
then
that
attribute
is
used
as
a
presentational
hint
setting
the
element's
width
property
to
the
corresponding
value.
height
attribute
is
absent,
invalid
or
a
percentage
then
the
requested
height
is
the
inner
line-ascent
.
Otherwise
the
requested
height
is
the
resolved
value
of
the
height
attribute,
clamping
negative
values
to
0
.
depth
attribute
is
absent,
invalid
or
a
percentage
then
the
requested
depth
is
the
inner
line-ascent
.
Otherwise
the
requested
depth
is
the
resolved
value
of
the
depth
attribute,
clamping
negative
values
to
0
.
lspace
attribute
is
absent,
invalid
or
a
percentage
then
the
requested
lspace
is
0.
Otherwise
the
requested
lspace
is
the
resolved
value
of
the
lspace
attribute,
clamping
negative
values
to
0
.
voffset
attribute
is
absent,
invalid
or
a
percentage
then
the
requested
voffset
is
0.
Otherwise
the
requested
voffset
is
the
resolved
value
of
the
voffset
attribute.
voffset
values
are
not
clamped
to
0
.
If
the
<mpadded>
element
does
not
have
its
computed
display
property
equal
to
block
math
or
inline
math
then
it
is
laid
out
according
to
the
CSS
specification
where
the
corresponding
value
is
described.
Otherwise,
it
is
laid
out
as
shown
on
Figure
16
.
<mpadded>
element
The min-content inline size (respectively max-content inline size ) of the math content is the requested width calculated in 3.3.6.1 Inner box and requested parameters but using the min-content inline size (respectively max-content inline size ) of the mpadded inner box instead of the "inner inline size".
The inline size of the math content is the requested width calculated in 3.3.6.1 Inner box and requested parameters .
The line-ascent of the math content is the requested height. The line-descent of the math content is the requested depth.
The mpadded inner box is placed so that its alphabetic baseline is shifted away from the alphabetic baseline by the requested voffset towards the line-over .
Historically, the mphantom element was introduced to render its content invisibly, but with the same metrics size and other dimensions, including alphabetic baseline position that its contents would have if they were rendered normally.
In
the
following
example,
mphantom
is
used
to
ensure
alignment
of
corresponding
parts
of
the
numerator
and
denominator
of
a
fraction:
<math>
<mfrac>
<mrow>
<mi>x</mi>
<mo>+</mo>
<mi>y</mi>
<mo>+</mo>
<mi>z</mi>
</mrow>
<mrow>
<mi>x</mi>
<mphantom>
<mo form="infix">+</mo>
<mi>y</mi>
</mphantom>
<mo>+</mo>
<mi>z</mi>
</mrow>
</mfrac>
</
math
>
The
<mphantom>
element
accepts
the
attributes
described
in
2.1.3
Global
Attributes
.
Its
layout
algorithm
is
the
same
as
the
mrow
element.
The
user
agent
stylesheet
must
contain
the
following
rule
in
order
to
hide
the
content:
mphantom {
visibility: hidden;
}
<mphantom>
is
implemented
for
compatibility
with
full
MathML.
Authors
whose
only
target
is
MathML
Core
are
encouraged
to
use
CSS
for
styling.
The elements described in this section position one or more scripts around a base. Attaching various kinds of scripts and embellishments to symbols is a very common notational device in mathematics. For purely visual layout, a single general-purpose element could suffice for positioning scripts and embellishments in any of the traditional script locations around a given base. However, in order to capture the abstract structure of common notation better, MathML provides several more specialized scripting elements.
In addition to sub-/superscript elements, MathML has overscript and underscript elements that place scripts above and below the base. These elements can be used to place limits on large operators, or for placing accents and lines above or below the base.
The msub , msup and msubsup elements are used to attach subscript and superscript to a MathML expression. They accept the attributes described in 2.1.3 Global Attributes .
The following example shows basic use of subscripts and superscripts. The font-size is automatically scaled down within the scripts.
<math>
<msub>
<mn>1</mn>
<mn>2</mn>
</msub>
<mo>+</mo>
<msup>
<mn>3</mn>
<mn>4</mn>
</msup>
<mo>+</mo>
<msubsup>
<mn>5</mn>
<mn>6</mn>
<mn>7</mn>
</msubsup>
</
math
>
If
the
<msub>
,
<msup>
or
<msubsup>
elements
do
not
have
their
computed
display
property
equal
to
block
math
or
inline
math
then
they
are
laid
out
according
to
the
CSS
specification
where
the
corresponding
value
is
described.
Otherwise,
the
layout
below
is
performed.
If
the
<msub>
element
has
less
or
more
than
two
in-flow
children,
its
layout
algorithm
is
the
same
as
the
mrow
element.
Otherwise,
the
first
in-flow
child
is
called
the
msub
base
,
the
second
in-flow
child
is
called
the
msub
subscript
and
the
layout
algorithm
is
explained
in
3.4.1.2
Base
with
subscript
.
If
the
<msup>
element
has
less
or
more
than
two
in-flow
children,
its
layout
algorithm
is
the
same
as
the
mrow
element.
Otherwise,
the
first
in-flow
child
is
called
the
msup
base
,
the
second
in-flow
child
is
called
the
msup
superscript
and
the
layout
algorithm
is
explained
in
3.4.1.3
Base
with
superscript
.
If
the
<msubsup>
element
has
less
or
more
than
three
in-flow
children,
its
layout
algorithm
is
the
same
as
the
mrow
element.
Otherwise,
the
first
in-flow
child
is
called
the
msubsup
base
,
the
second
in-flow
child
is
called
the
msubsup
subscript
,
its
third
in-flow
child
is
called
the
msubsup
superscript
and
the
layout
algorithm
is
explained
in
3.4.1.4
Base
with
subscript
and
superscript
.
The
<msub>
element
is
laid
out
as
shown
on
Figure
17
.
LargeOpItalicCorrection
is
the
italic
correction
of
the
msub
base
if
it
is
an
embellished
operator
with
the
largeop
property
and
0
otherwise.
<msub>
element
The
min-content
inline
size
(respectively
max-content
inline
size
)
of
the
math
content
is
the
min-content
inline
size
(respectively
max-content
inline
size
)
of
the
msub
base
's
margin
box
−
LargeOpItalicCorrection
+
min-content
inline
size
(respectively
max-content
inline
size
)
of
the
msub
subscript
's
margin
box
+
SpaceAfterScript
.
If there is an inline stretch size constraint or a block stretch size constraint then the msub base is also laid out with the same stretch size constraint and otherwise it is laid out without any stretch size constraint. The scripts are always laid out without any stretch size constraint.
The
inline
size
of
the
math
content
is
the
inline
size
of
the
msub
base
's
margin
box
−
LargeOpItalicCorrection
+
the
inline
size
of
the
msub
subscript
's
margin
box
+
SpaceAfterScript
.
SubShift
is
the
maximum
between:
The line-ascent of the math content is the maximum between:
SubShift
.
The line-descent of the math content is the maximum between:
SubShift
.
The
inline
offset
of
the
msub
base
is
0
and
the
inline
offset
of
the
msub
subscript
is
the
inline
size
of
the
msub
base
's
margin
box
−
LargeOpItalicCorrection
.
The
msub
base
is
placed
so
that
its
alphabetic
baseline
matches
the
alphabetic
baseline
.
The
msub
subscript
is
placed
so
that
its
alphabetic
baseline
is
shifted
away
from
the
alphabetic
baseline
by
SubShift
towards
the
line-under
.
The
<msup>
element
is
laid
out
as
shown
on
Figure
18
.
ItalicCorrection
is
the
italic
correction
of
the
msup
base
if
it
is
not
an
embellished
operator
with
the
largeop
property
and
0
otherwise.
<msup>
element
The
min-content
inline
size
(respectively
max-content
inline
size
)
of
the
math
content
is
the
min-content
inline
size
(respectively
max-content
inline
size
)
of
the
msup
base
's
margin
box
+
ItalicCorrection
+
the
min-content
inline
size
(respectively
max-content
inline
size
)
of
the
msup
superscript
's
margin
box
+
SpaceAfterScript
.
If there is an inline stretch size constraint or a block stretch size constraint then the msup base is also laid out with the same stretch size constraint and otherwise it is laid out without any stretch size constraint. The scripts are always laid out without any stretch size constraint.
The
inline
size
of
the
math
content
is
the
inline
size
of
the
msup
base
's
margin
box
+
ItalicCorrection
+
the
inline
size
of
the
msup
superscript
's
margin
box
+
SpaceAfterScript
.
SuperShift
is
the
maximum
between:
compact
,
or
SuperscriptShiftUp
otherwise.
The line-ascent of the math content is the maximum between:
SuperShift
.
The line-descent of the math content is the maximum between:
SuperShift
.
The
inline
offset
of
the
msup
base
is
0
and
the
inline
offset
of
msup
superscript
is
the
inline
size
of
the
msup
base
's
margin
box
+
ItalicCorrection
.
The
msup
base
is
placed
so
that
its
alphabetic
baseline
matches
the
alphabetic
baseline
.
The
msup
superscript
is
placed
so
that
its
alphabetic
baseline
is
shifted
away
from
the
alphabetic
baseline
by
SuperShift
towards
the
line-over
.
The
<msubsup>
element
is
laid
out
as
shown
on
Figure
18
.
LargeOpItalicCorrection
and
SubShift
are
set
as
in
3.4.1.2
Base
with
subscript
.
ItalicCorrection
and
SuperShift
are
set
as
in
3.4.1.3
Base
with
superscript
.
<msubsup>
element
The min-content inline size (respectively max-content inline size and inline size ) of the math content is the maximum between the min-content inline size (respectively max-content inline size and inline size ) of the math content calculated in 3.4.1.2 Base with subscript and 3.4.1.3 Base with superscript .
If there is an inline stretch size constraint or a block stretch size constraint then the msubsup base is also laid out with the same stretch size constraint and otherwise it is laid out without any stretch size constraint. The scripts are always laid out without any stretch size constraint.
If there is an inline stretch size constraint or a block stretch size constraint then the msubsup base is also laid out with the same stretch size constraint and otherwise it is laid out without any stretch size constraint. The scripts are always laid out without any stretch size constraint.
SubSuperGap
is
the
gap
between
the
two
scripts
along
the
block
axis
and
is
defined
by
(
SubShift
−
the
ink
line-ascent
of
the
msubsup
subscript
's
margin
box
)
+
(
SuperShift
−
the
ink
line-descent
of
the
msubsup
superscript
's
margin
box
).
If
SubSuperGap
is
not
at
least
SubSuperscriptGapMin
then
the
following
steps
are
performed
to
ensure
that
the
condition
holds:
SuperShift
−
the
ink
line-descent
of
the
msubsup
superscript
's
margin
box
).
If
Δ
>
0
then
set
Δ
to
the
minimum
between
Δ
set
SubSuperscriptGapMin
−
SubSuperGap
and
increase
SuperShift
(and
so
SubSuperGap
too)
by
Δ.
SubSuperGap
.
If
Δ
>
0
then
increase
SubscriptShift
(and
so
SubSuperGap
too)
by
Δ.
The
ink
line-ascent
(respectively
line-ascent
,
ink
line-descent
,
line-descent
)
of
the
math
content
is
set
to
the
maximum
of
the
ink
line-ascent
(respectively
line-ascent
,
ink
line-descent
,
line-descent
)
of
the
math
content
calculated
in
3.4.1.2
Base
with
subscript
and
3.4.1.3
Base
with
superscript
but
using
the
adjusted
values
SubShift
and
SuperShift
above.
The inline offset and block offset of the msubsup base and scripts are performed the same as described in 3.4.1.2 Base with subscript and 3.4.1.3 Base with superscript .
Even
when
the
msubsup
subscript
(respectively
msubsup
superscript
)
is
an
empty
box,
<msubsup>
does
not
generally
render
the
same
as
3.4.1.3
Base
with
superscript
(respectively
3.4.1.2
Base
with
subscript
)
because
of
the
additional
constraint
on
SubSuperGap
.
Moreover,
positioning
the
empty
msubsup
subscript
(respectively
msubsup
superscript
)
may
also
change
the
total
size.
In order to keep the algorithm simple, no attempt is made to handle empty scripts in a special way.
The munder , mover and munderover elements are used to attach accents or limits placed under or over a MathML expression.
The
<munderover>
element
accepts
the
attribute
described
in
2.1.3
Global
Attributes
as
well
as
the
following
attributes:
Similarly,
the
<mover>
element
(respectively
<munder>
element)
accepts
the
attribute
described
in
2.1.3
Global
Attributes
as
well
as
the
accent
attribute
(respectively
the
accentunder
attribute).
accent
,
accentunder
attributes,
if
present,
must
have
values
that
are
booleans
.
If
these
attributes
are
absent
or
invalid,
they
are
treated
as
equal
to
false
.
User
agents
must
implement
them
as
described
in
3.4.4
Displaystyle,
scriptlevel
and
math-shift
in
scripts
.
The following example shows basic use of under- and overscripts. The font-size is automatically scaled down within the scripts, unless they are meant to be accents.
<math>
<munder>
<mn>1</mn>
<mn>2</mn>
</munder>
<mo>+</mo>
<mover>
<mn>3</mn>
<mn>4</mn>
</mover>
<mo>+</mo>
<munderover>
<mn>5</mn>
<mn>6</mn>
<mn>7</mn>
</munderover>
<mo>+</mo>
<munderover accent="true">
<mn>8</mn>
<mn>9</mn>
<mn>10</mn>
</munderover>
<mo>+</mo>
<munderover accentunder="true">
<mn>11</mn>
<mn>12</mn>
<mn>13</mn>
</munderover>
</
math
>
If
the
<munder>
,
<mover>
or
<munderover>
elements
do
not
have
their
computed
display
property
equal
to
block
math
or
inline
math
then
they
are
laid
out
according
to
the
CSS
specification
where
the
corresponding
value
is
described.
Otherwise,
the
layout
below
is
performed.
If
the
<munder>
element
has
less
or
more
than
two
in-flow
children,
its
layout
algorithm
is
the
same
as
the
mrow
element.
Otherwise,
the
first
in-flow
child
is
called
the
munder
base
and
the
second
in-flow
child
is
called
the
munder
underscript
.
If
the
<mover>
element
has
less
or
more
than
two
in-flow
children,
its
layout
algorithm
is
the
same
as
the
mrow
element.
Otherwise,
the
first
in-flow
child
is
called
the
mover
base
and
the
second
in-flow
child
is
called
the
mover
overscript
.
If
the
<munderover>
element
has
less
or
more
than
three
in-flow
children,
its
layout
algorithm
is
the
same
as
the
mrow
element.
Otherwise,
the
first
in-flow
child
is
called
the
munderover
base
,
the
second
in-flow
child
is
called
the
munderover
underscript
and
its
third
in-flow
child
is
called
the
munderover
overscript
.
If
the
<munder>
,
<mover>
or
<munderover>
elements
have
a
computed
math-style
property
equal
to
compact
and
their
base
is
an
embellished
operator
with
the
movablelimits
property,
then
their
layout
algorithms
are
respectively
the
same
as
the
ones
described
for
<msub>
,
<msup>
and
<msubsup>
in
3.4.1.2
Base
with
subscript
,
3.4.1.3
Base
with
superscript
and
3.4.1.4
Base
with
subscript
and
superscript
.
Otherwise,
the
<munder>
,
<mover>
and
<munderover>
layout
algorithms
are
respectively
described
in
3.4.2.3
Base
with
underscript
,
3.4.2.4
Base
with
overscript
and
3.4.2.5
Base
with
underscript
and
overscript
.
The algorithm for stretching operators along the inline axis is as follows.
L
ToStretch
containing
embellished
operators
with
a
stretchy
property
and
inline
stretch
axis
;
and
a
second
list
L
NotToStretch
.
L
NotToStretch
.
If
L
ToStretch
is
empty
then
stop.
If
L
NotToStretch
is
empty,
perform
layout
with
inline
stretch
size
constraint
0
for
all
the
items
of
L
ToStretch
.
T
to
the
maximum
inline
size
of
the
margin
boxes
of
child
boxes
that
have
been
laid
out
in
the
previous
step.
L
ToStretch
with
inline
stretch
size
constraint
T
.
The
<munder>
element
is
laid
out
as
shown
on
Figure
20
.
LargeOpItalicCorrection
is
the
italic
correction
of
the
munder
base
if
it
is
an
embellished
operator
with
the
largeop
property
and
0
otherwise.
<munder>
element
The min-content inline size (respectively max-content inline size ) of the math content are calculated like the inline size of the math content below but replacing the inline sizes of the munder base 's margin box and munder underscript 's margin box with the min-content inline size (respectively max-content inline size ) of the munder base 's margin box and munder underscript 's margin box .
The in-flow children are laid out using the algorithm for stretching operators along the inline axis .
The inline size of the math content is calculated by determining the absolute difference between:
LargeOpItalicCorrection
.
LargeOpItalicCorrection
.
If
m
is
the
minimum
calculated
in
the
second
item
above
then
the
inline
offset
of
the
munder
base
is
−m
−
half
the
inline
size
of
the
base's
margin
box
.
The
inline
offset
of
the
munder
underscript
is
−m
−
half
the
inline
size
of
the
munder
underscript
's
margin
box
−
half
LargeOpItalicCorrection
.
Parameters
UnderShift
and
UnderExtraDescender
are
determined
by
considering
three
cases
in
the
following
order:
The
munder
base
is
an
embellished
operator
with
the
largeop
property.
UnderShift
is
the
maximum
of
UnderExtraDescender
is
0.
The
munder
base
is
an
embellished
operator
with
the
stretchy
property
and
stretch
axis
inline.
UnderShift
is
the
maximum
of:
UnderExtraDescender
is
0.
UnderShift
is
equal
to
UnderbarVerticalGap
if
the
accentunder
attribute
is
not
an
ASCII
case-insensitive
match
to
true
and
to
zero
otherwise.
UnderExtraAscender
is
UnderbarExtraDescender
.
The line-ascent of the math content is the maximum between:
UnderShift
.
The line-descent of the math content is the maximum between:
UnderShift
+
UnderExtraAscender
.
The
alphabetic
baseline
of
the
munder
base
is
aligned
with
the
alphabetic
baseline
.
The
alphabetic
baseline
of
the
munder
underscript
is
shifted
away
from
the
alphabetic
baseline
and
towards
the
line-under
by
a
distance
equal
to
the
ink
line-descent
of
the
munder
base
's
margin
box
+
UnderShift
.
The math content box is placed within the content box so that their block-start edges are aligned and the middles of these edges are at the same position.
The
<mover>
element
is
laid
out
as
shown
on
Figure
21
.
LargeOpItalicCorrection
is
the
italic
correction
of
the
mover
base
if
it
is
an
embellished
operator
with
the
largeop
property
and
0
otherwise.
<mover>
element
The min-content inline size (respectively max-content inline size ) of the math content are calculated like the inline size of the math content below but replacing the inline sizes of the mover base 's margin box and mover overscript 's margin box with the min-content inline size (respectively max-content inline size ) of the mover base 's margin box and mover overscript 's margin box .
The in-flow children are laid out using the algorithm for stretching operators along the inline axis .
The
TopAccentAttachment
is
the
top
accent
attachment
of
the
mover
overscript
or
half
the
inline
size
of
the
mover
overscript
's
margin
box
if
it
is
undefined.
The inline size of the math content is calculated by applying the algorithm for stretching operators along the inline axis for layout and determining the absolute difference between:
TopAccentAttachment
+
half
LargeOpItalicCorrection
.
TopAccentAttachment
+
half
LargeOpItalicCorrection
.
If
m
is
the
minimum
calculated
in
the
second
item
above
then
the
inline
offset
of
the
mover
base
is
−m
−
half
the
inline
size
of
the
base's
margin.
The
inline
offset
of
the
mover
overscript
is
−m
−
half
the
inline
size
of
the
mover
overscript
's
margin
box
+
half
LargeOpItalicCorrection
.
Parameters
OverShift
and
OverExtraDescender
are
determined
by
considering
three
cases
in
the
following
order:
The
mover
base
is
an
embellished
operator
with
the
largeop
property.
OverShift
is
the
maximum
of
OverExtraAscender
is
0.
The
mover
base
is
an
embellished
operator
with
the
stretchy
property
and
stretch
axis
inline.
OverShift
is
the
maximum
of:
OverExtraDescender
is
0.
Otherwise,
OverShift
is
equal
to
accent
attribute
is
not
an
ASCII
case-insensitive
match
to
true
.
OverExtraAscender
is
OverbarExtraAscender
.
The line-ascent of the math content is the maximum between:
OverShift
+
OverExtraAscender
.
The line-descent of the math content is the maximum between:
OverShift
.
The
alphabetic
baseline
of
the
mover
base
is
aligned
with
the
alphabetic
baseline
.
The
alphabetic
baseline
of
the
mover
overscript
is
shifted
away
from
the
alphabetic
baseline
and
towards
the
line-over
by
a
distance
equal
to
the
ink
line-ascent
of
the
base
+
OverShift
.
The math content box is placed within the content box so that their block-start edges are aligned and the middles of these edges are at the same position.
The
general
layout
of
<munderover>
is
shown
on
Figure
22
.
The
LargeOpItalicCorrection
,
UnderShift
,
UnderExtraDescender
,
OverShift
,
OverExtraDescender
parameters
are
calculated
the
same
as
in
3.4.2.3
Base
with
underscript
and
3.4.2.4
Base
with
overscript
.
<munderover>
element
The min-content inline size , max-content inline size and inline size of the math content are calculated as an absolute difference between a maximum inline offset and minimum inline offset . These extrema are calculated by taking the extremum value of the corresponding extrema calculated in 3.4.2.3 Base with underscript and 3.4.2.4 Base with overscript . The inline offsets of the munderover base , munderover underscript and munderover overscript are calculated as in these sections but using the new minimum m (minimum of the corresponding minima).
Like in these sections, the in-flow children are laid out using the algorithm for stretching operators along the inline axis .
The line-ascent and line-descent of the math content are also calculated by taking the extremum value of the extrema calculated in 3.4.2.3 Base with underscript and 3.4.2.4 Base with overscript .
Finally, the alphabetic baselines of the munderover base , munderover underscript and munderover overscript are calculated as in sections 3.4.2.3 Base with underscript and 3.4.2.4 Base with overscript .
The math content box is placed within the content box so that their block-start edges are aligned and the middles of these edges are at the same position.
When the underscript (respectively overscript) is an empty box, the base and overscript (respectively underscript) are laid out similarly to 3.4.2.4 Base with overscript (respectively 3.4.2.3 Base with underscript ) but the position of the empty underscript (respectively overscript) may add extra space. In order to keep the algorithm simple, no attempt is made to handle empty scripts in a special way.
Presubscripts and tensor notations are represented by the mmultiscripts element. The mprescripts element is used as a separator between the postscripts and prescripts. These two elements accept the attributes described in 2.1.3 Global Attributes .
The
following
example
shows
basic
use
of
prescripts
and
postscripts,
involving
a
mprescripts
.
Empty
mrow
elements
are
used
at
positions
where
no
scripts
are
rendered.
The
font-size
is
automatically
scaled
down
within
the
scripts.
<math>
<mmultiscripts>
<mn>1</mn>
<mn>2</mn>
<mn>3</mn>
<mrow></mrow>
<mn>5</mn>
<mprescripts/>
<mn>6</mn>
<mrow></mrow>
<mn>8</mn>
<mn>9</mn>
</mmultiscripts>
</
math
>
If
the
<mmultiscripts>
or
<mprescripts>
elements
do
not
have
their
computed
display
property
equal
to
block
math
or
inline
math
then
they
are
laid
out
according
to
the
CSS
specification
where
the
corresponding
value
is
described.
Otherwise,
the
layout
below
is
performed.
The
<mprescripts>
element
is
laid
out
as
an
mrow
element.
A
valid
<mmultiscripts>
element
contains
the
following
in-flow
children:
mprescripts
element.
mprescripts
element.
These
scripts
form
a
(possibly
empty)
list
subscript,
superscript,
subscript,
superscript,
subscript,
superscript,
etc.
Each
consecutive
couple
of
children
subscript,
superscript
is
called
a
subscript/superscript
pair
.
mprescripts
element
and
an
even
number
of
in-flow
children
called
mmultiscripts
prescripts
,
none
of
them
being
a
mprescripts
element.
These
scripts
form
a
(possibly
empty)
list
of
subscript/superscript
pair
.
If
an
<mmultiscripts>
element
is
not
valid
then
it
is
laid
out
the
same
as
the
mrow
element.
Otherwise
the
layout
algorithm
is
performed
as
in
3.4.3.1
Base
with
prescripts
and
postscripts
.
The
<mmultiscripts>
element
is
laid
out
as
shown
on
Figure
23
.
For
each
subscript/superscript
pair
of
mmultiscripts
postscripts
,
the
ItalicCorrection
LargeOpItalicCorrection
are
defined
as
in
3.4.1.2
Base
with
subscript
and
3.4.1.3
Base
with
superscript
.
<mmultiscripts>
element
The min-content inline size (respectively max-content inline size ) of the math content is calculated the same as the inline size of the math content below, but replacing " inline size " with " min-content inline size " (respectively " max-content inline size ") for the mmultiscripts base 's margin box and scripts' margin boxes .
If there is an inline stretch size constraint or a block stretch size constraint the mmultiscripts base is also laid out with the same stretch size constraint. Otherwise it is laid out without any stretch size constraint. The other elements are always laid out without any stretch size constraint.
The inline size of the math content is calculated with the following algorithm:
inline-offset
to
0.
For
each
subscript/superscript
pair
of
mmultiscripts
prescripts
,
increment
inline-offset
by
SpaceAfterScript
+
the
maximum
of
inline-offset
by
the
inline
size
of
the
mmultiscripts
base
's
margin
box
and
set
inline-size
to
inline-offset
.
For
each
subscript/superscript
pair
of
mmultiscripts
postscripts
,
modify
inline-size
to
be
at
least:
LargeOpItalicCorrection
.
ItalicCorrection
.
Increment
inline-offset
to
the
maximum
of:
Increment
inline-offset
by
SpaceAfterScript
.
inline-size
.
SubShift
(respectively
SuperShift
)
is
calculated
by
taking
the
maximum
of
all
subshifts
(respectively
supershifts)
of
each
subscript/superscript
pair
as
described
in
3.4.1.4
Base
with
subscript
and
superscript
.
The
line-ascent
of
the
math
content
is
calculated
by
taking
the
maximum
of
all
the
line-ascent
of
each
subscript/superscript
pair
as
described
in
3.4.1.4
Base
with
subscript
and
superscript
but
using
the
SubShift
and
SuperShift
values
calculated
above.
The
line-descent
of
the
math
content
is
calculated
by
taking
the
maximum
of
all
the
line-descent
of
each
subscript/superscript
pair
as
described
in
3.4.1.4
Base
with
subscript
and
superscript
but
using
the
SubShift
and
SuperShift
values
calculated
above.
Finally, the placement of the in-flow children is performed using the following algorithm:
inline-offset
to
0.
For each subscript/superscript pair of mmultiscripts prescripts :
inline-offset
by
SpaceAfterScript
.
pair-inline-size
to
the
maximum
of
inline-offset
+
pair-inline-size
−
the
inline
size
of
the
subscript's
margin
box
.
inline-offset
+
pair-inline-size
−
the
inline
size
of
the
superscript's
margin
box
.
SubShift
(respectively
SuperShift
)
towards
the
line-under
(respectively
line-over
).
inline-offset
by
pair-inline-size
.
<mprescripts>
boxes
at
inline
offsets
inline-offset
and
with
their
alphabetic
baselines
aligned
with
the
alphabetic
baseline
.
For each subscript/superscript pair of mmultiscripts postscripts :
pair-inline-size
to
the
maximum
of
inline-offset
−
LargeOpItalicCorrection
.
inline-offset
+
ItalicCorrection
.
SubShift
(respectively
SuperShift
)
towards
the
line-under
(respectively
line-over
).
inline-offset
by
pair-inline-size
.
inline-offset
by
SpaceAfterScript
.
An
<mmultiscripts>
with
only
one
subscript/superscript
pair
of
mmultiscripts
postscripts
is
laid
out
the
same
as
a
<msubsup>
with
the
same
in-flow
children.
However,
as
noticed
for
<msubsup>
,
if
additionally
the
subscript
(respectively
superscript)
is
an
empty
box
then
it
is
not
necessarily
laid
out
the
same
as
an
<msub>
(respectively
<msup>
)
element.
In
order
to
keep
the
algorithm
simple,
no
attempt
is
made
to
handle
empty
scripts
in
a
special
way.
For
all
scripted
elements
,
the
rule
of
thumb
is
to
set
displaystyle
to
false
and
to
increment
scriptlevel
in
all
child
elements
but
the
first
one.
However,
an
mover
(respectively
munderover
)
element
with
an
accent
attribute
that
is
an
ASCII
case-insensitive
match
to
true
does
not
increment
scriptlevel
within
its
second
child
(respectively
third
child).
Similarly,
mover
and
munderover
elements
with
an
accentunder
attribute
that
is
an
ASCII
case-insensitive
match
to
true
do
not
increment
scriptlevel
within
their
second
child.
<mmultiscripts>
sets
math-shift
to
compact
on
its
children
at
even
position
if
they
are
before
an
mprescripts
,
and
on
those
at
odd
position
if
they
are
after
an
mprescripts
.
The
<msub>
and
<msubsup>
elements
set
math-shift
to
compact
on
their
second
child.
mover
and
munderover
elements
with
an
accent
attribute
that
is
an
ASCII
case-insensitive
match
to
true
also
set
math-shift
to
compact
within
their
first
child.
The A. User Agent Stylesheet must contain the following style in order to implement this behavior:
msub > :not(:first-child),
msup > :not(:first-child),
msubsup > :not(:first-child),
mmultiscripts > :not(:first-child),
munder > :not(:first-child),
mover > :not(:first-child),
munderover > :not(:first-child) {
);
: compact;
math-depth: add(1);
math-style: compact;
}
munder[accentunder="true" i] > :nth-child(2),
mover[accent="true" i] > :nth-child(2),
munderover[accentunder="true" i] > :nth-child(2),
munderover[accent="true" i] > :nth-child(3) {
font-size: inherit;
}
msub > :nth-child(2),
msubsup > :nth-child(2),
mmultiscripts > :nth-child(even),
mmultiscripts > mprescripts ~ :nth-child(odd),
mover[accent="true" i] > :first-child,
munderover[accent="true" i] > :first-child {
: compact;
math-shift: compact;
}
mmultiscripts > mprescripts ~ :nth-child(even) {
: inherit;
math-shift: inherit;
}
<mprescripts>
is
empty.
Hence
the
CSS
rules
essentially
perform
automatic
displaystyle
and
scriptlevel
changes
for
the
scripts;
and
math-shift
changes
for
subscripts
and
sometimes
the
base.
Matrices,
arrays
and
other
table-like
mathematical
notation
are
marked
up
using
mtable
mtr
mtd
elements.
These
elements
are
similar
to
the
table
,
tr
and
td
elements
of
[
HTML
].
The following example shows how tabular layout allows to write a matrix. Note that it is vertically centered with the fraction bar and the middle of the equal sign.
<math>
<mfrac>
<mi>A</mi>
<mn>2</mn>
</mfrac>
<mo>=</mo>
<mrow>
<mo>(</mo>
<mtable>
<mtr>
<mtd><mn>1</mn></mtd>
<mtd><mn>2</mn></mtd>
<mtd><mn>3</mn></mtd>
</mtr>
<mtr>
<mtd><mn>4</mn></mtd>
<mtd><mn>5</mn></mtd>
<mtd><mn>6</mn></mtd>
</mtr>
<mtr>
<mtd><mn>7</mn></mtd>
<mtd><mn>8</mn></mtd>
<mtd><mn>9</mn></mtd>
</mtr>
</mtable>
<mo>)</mo>
</mrow>
</
math
>
The
mtable
is
laid
out
as
an
inline-table
and
sets
displaystyle
to
false
.
The
user
agent
stylesheet
must
contain
the
following
rules
in
order
to
implement
these
properties:
mtable {
display: inline-table;
: compact;
math-style: compact;
}
The
mtable
element
is
as
a
CSS
table
and
the
min-content
inline
size
,
max-content
inline
size
,
inline
size
,
block
size
,
first
baseline
set
and
last
baseline
set
sets
are
determined
accordingly.
The
center
of
the
table
is
aligned
with
the
math
axis
.
The
<mtable>
accepts
the
attributes
described
in
2.1.3
Global
Attributes
.
The
mtr
is
laid
out
as
table-row
.
The
user
agent
stylesheet
must
contain
the
following
rules
in
order
to
implement
that
behavior:
mtr {
display: table-row;
}
The
<mtr>
accepts
the
attributes
described
in
2.1.3
Global
Attributes
.
The
mtd
is
laid
out
as
a
table-cell
with
content
centered
in
the
cell
and
a
default
padding.
The
user
agent
stylesheet
must
contain
the
following
rules:
mtd {
display: table-cell;
/* Centering inside table cells should rely on box alignment properties.
See https://github.com/w3c/mathml-core/issues/156 */
text-align: center;
padding: 0.5ex 0.4em;
}
The
<mtd>
accepts
the
attributes
described
in
2.1.3
Global
Attributes
as
well
as
the
following
attributes:
The
columnspan
(respectively
rowspan
)
attribute
has
the
same
syntax
and
semantics
as
the
colspan
(respectively
)
attribute
on
the
rowspan
<td>
element
from
[
HTML
].
In
particular,
the
parsing
of
these
attributes
is
handled
as
described
in
the
algorithm
for
processing
rows
,
always
reading
"
colspan
"
as
"
columnspan
".
columnspan
and
is
preserved
for
backward
compatibility
reasons.
The
<mtd>
element
generates
an
anonymous
<mrow>
box
.
Historically, the maction element provides a mechanism for binding actions to expressions.
The
<maction>
element
accepts
the
attributes
described
in
2.1.3
Global
Attributes
as
well
as
the
following
attributes:
This specification does not define any observable behavior that is specific to the actiontype and selection attributes.
The following example shows the "toggle" action type from [ MathML3 ] where the renderer alternately displays the selected subexpression, starting from "one third" and cycling through them when there is a click on the selected subexpression ("one quarter", "one half", "one third", etc). This is not part of MathML Core but can be implemented using JavaScript and CSS polyfills. The default behavior is just to render the first child.
<math>
<maction actiontype="toggle" selection="2">
<mfrac>
<mn>1</mn>
<mn>2</mn>
</mfrac>
<mfrac>
<mn>1</mn>
<mn>3</mn>
</mfrac>
<mfrac>
<mn>1</mn>
<mn>4</mn>
</mfrac>
</maction>
</
math
>
The
layout
algorithm
of
the
<maction>
element
is
the
same
as
the
<mrow>
element.
The
user
agent
stylesheet
must
contain
the
following
rules
in
order
to
hide
all
but
its
first
child
element,
which
is
the
default
behavior
for
the
legacy
actiontype
values:
maction > :not(:first-child) {
display: none;
}
<maction>
is
implemented
for
compatibility
with
full
MathML.
Authors
whose
only
target
is
MathML
Core
are
encouraged
to
use
other
HTML,
CSS
and
JavaScript
mechanisms
to
implement
custom
actions.
They
may
rely
on
maction
attributes
defined
in
[
MathML3
].
The
semantics
element
is
the
container
element
that
associates
annotations
with
a
MathML
expression.
Typically,
the
<semantics>
element
has
as
its
first
child
element
a
MathML
expression
to
be
annotated
while
subsequent
child
elements
represent
text
annotations
within
an
annotation
element,
or
more
complex
markup
annotations
within
an
annotation-xml
element.
The following example shows how the fraction "one half" can be annotated with a textual annotation (LaTeX) or an XML annotation (content MathML), which are not intended to be rendered by the user agent. This fraction is also annotated with equivalent SVG and HTML markup.
<math>
<semantics>
<mfrac>
<mn>1</mn>
<mn>2</mn>
</mfrac>
<annotation encoding="application/x-tex">\frac{1}{2}</annotation>
<annotation-xml encoding="application/mathml-content+xml">
<apply>
<divide/>
<cn>1</cn>
<cn>2</cn>
</apply>
</annotation-xml>
<annotation-xml>
<svg width="25" height="75" xmlns="http://www.w3.org/2000/svg">
<path stroke-width="5.8743"
d="m5.9157 27.415h6.601v-22.783l-7.1813 1.4402v-3.6805l7.1408
-1.4402h4.0406v26.464h6.601v3.4005h-17.203z"/>
<path stroke="#000000" stroke-width="2.3409"
d="m0.83496 39.228h23.327"/>
<path stroke-width="5.8743"
d="m8.696 70.638h14.102v3.4005h-18.963v-3.4005q2.3004-2.3804
6.2608-6.3813 3.9806-4.0206 5.0007-5.1808 1.9403-2.1803
2.7004-3.6805 0.78011-1.5202 0.78011-2.9804 0-2.3804
-1.6802-3.8806-1.6603-1.5002-4.3406-1.5002-1.9003 0-4.0206
0.6601-2.1003 0.6601-4.5007 2.0003v-4.0806q2.4404-0.98013
4.5607-1.4802 2.1203-0.50007 3.8806-0.50007 4.6407 0 7.401
2.3203 2.7604 2.3203 2.7604 6.2009 0 1.8403-0.7001 3.5006
-0.68013 1.6402-2.5004 3.8806-0.50007 0.58009-3.1805 3.3605
-2.6804 2.7604-7.5614 7.7412z"/>
</svg>
</annotation-xml>
<annotation-xml encoding="application/xhtml+xml">
<div style="display: inline-flex;
flex-direction: column; align-items: center;">
<div>1</div>
<div>―</div>
<div>2</div>
</div>
</annotation-xml>
</semantics>
</
math
>
The
<semantics>
element
accepts
the
attributes
described
in
2.1.3
Global
Attributes
.
Its
layout
algorithm
is
the
same
as
the
mrow
element.
The
user
agent
stylesheet
must
contain
the
following
rule
in
order
to
only
render
the
annotated
MathML
expression:
semantics > :not(:first-child) {
display: none;
}
The
<annotation-xml>
and
<annotation>
element
accepts
the
attributes
described
in
2.1.3
Global
Attributes
as
well
as
the
following
attribute:
This specification does not define any observable behavior that is specific to the encoding attribute.
The
layout
algorithm
of
the
<annotation-xml>
and
<annotation>
element
is
the
same
as
the
mtext
element.
encoding
attribute
to
distinguish
annotations
for
HTML
integration
point
,
clipboard
copy,
alternative
rendering,
etc.
In
particular,
CSS
can
be
used
to
render
alternative
annotations,
e.g.
/* Hide the annotated child. */
semantics > :first-child { display: none; }
/* Show all text annotations. */
semantics > annotation { display: inline; }
/* Show all HTML annotations. */
semantics > annotation-xml[encoding="text/html" i],
semantics > annotation-xml[encoding="application/xhtml+xml" i] {
display: inline-block;
}
The
display
property
from
CSS
Display
Module
Level
3
is
extended
with
a
new
inner
display
type:
Name: | display |
---|---|
New values: | <display-outside> || [ <display-inside> | math ] |
For
elements
that
are
not
MathML
elements
,
if
the
specified
value
of
display
is
block
math
or
inline
math
then
the
computed
value
is
block
flow
and
inline
flow
respectively.
For
the
mtable
element
the
computed
value
is
block
table
and
inline
table
respectively.
For
the
mtr
element,
the
computed
value
is
table-row
.
For
the
mtd
element,
the
computed
value
is
table-cell
.
MathML
elements
with
a
computed
display
value
equal
to
block
math
or
inline
math
control
box
generation
and
layout
according
to
their
tag
name,
as
described
in
the
relevant
sections.
Unknown
MathML
elements
behave
the
same
as
the
mrow
element.
display:
block
math
and
display:
inline
math
values
provide
a
default
layout
for
MathML
elements
while
at
the
same
time
allowing
to
override
it
with
either
native
display
values
or
custom
values
.
This
allows
authors
or
polyfills
to
define
their
own
custom
notations
to
tweak
or
extend
MathML
Core.
In
the
following
example,
the
default
layout
of
the
MathML
mrow
element
is
overridden
to
render
its
content
as
a
grid.
<math>
<msup>
<mrow>
<mo symmetric="false">[</mo>
<mrow style="display: block; width: 4.5em;">
<mrow style="display: grid;
grid-template-columns: 1.5em 1.5em 1.5em;
grid-template-rows: 1.5em 1.5em;
justify-items: center;
align-items: center;">
<mn>12</mn>
<mn>34</mn>
<mn>56</mn>
<mn>7</mn>
<mn>8</mn>
<mn>9</mn>
</mrow>
</mrow>
<mo symmetric="false">]</mo>
</mrow>
<mi>α</mi>
</msup>
</
math
>
The
text-transform
property
from
CSS
Text
Module
Level
4
has
a
new
value
math-auto
.
On
text
nodes
containing
a
single
character,
if
the
computed
value
is
math-auto
and
the
character
is
present
in
the
"Original"
column
of
C.1
italic
mappings
then
it
is
converted
to
the
corresponding
character
from
the
"italic"
column.
A
common
style
convention
is
to
render
identifiers
with
multiple
letters
(e.g.
the
function
name
"exp")
with
normal
style
and
identifiers
with
a
single
letter
(e.g.
the
variable
"n")
with
italic
style.
The
math-auto
property
is
intended
to
implement
this
default
behavior,
which
can
be
overridden
by
authors
if
necessary.
Note
that
mathematical
fonts
are
designed
with
a
special
kind
of
italic
glyphs
located
at
the
Unicode
positions
of
C.1
italic
mappings
,
which
differ
from
the
shaping
obtained
via
italic
font
style.
Compare
this
mathematical
formula
rendered
with
the
Latin
Modern
Math
font
using
font-style:
italic
(left)
and
text-transform:
math-auto
(right):
Name: | math-style |
---|---|
Value: | normal | compact |
Initial: | normal |
Applies to: | All elements |
Inherited: | yes |
Percentages: | n/a |
Computed value: | specified keyword |
Canonical order: | n/a |
Animation type: | not animatable |
Media: | visual |
When
math-style
is
compact
,
the
math
layout
on
descendants
tries
to
minimize
the
logical
height
by
applying
the
following
rules:
math
and
the
computed
value
of
math-depth
is
auto-add
(default
for
mfrac
)
as
described
in
4.5
The
math-depth
property
.
largeop
property
do
not
follow
rules
from
3.2.4.3
Layout
of
operators
to
make
them
bigger.
movablelimits
property
are
actually
drawn
as
sub-/superscripts
as
described
in
3.4.2.1
Children
of
<munder>
,
<mover>
,
<munderover>
.
The
following
example
shows
a
mathematical
formula
rendered
with
its
math
root
styled
with
math-style:
compact
(left)
and
math-style:
normal
(right).
In
the
former
case,
the
font-size
is
automatically
scaled
down
within
the
fractions
and
the
summation
limits
are
rendered
as
subscript
and
superscript
of
the
∑.
In
the
latter
case,
the
∑
is
drawn
bigger
than
normal
text
and
vertical
gaps
within
fractions
(even
relative
to
current
font-size)
are
larger.
These
two
math-style
values
typically
correspond
to
mathematical
expressions
in
inline
and
display
mode
respectively
[
TeXBook
].
A
mathematical
formula
in
display
mode
may
automatically
switch
to
inline
mode
within
some
subformulas
(e.g.
scripts,
matrix
elements,
numerators
and
denominators,
etc)
and
it
is
sometimes
desirable
to
override
this
default
behavior.
The
math-style
property
allows
to
easily
implement
these
features
for
MathML
in
the
user
agent
stylesheet
and
with
the
displaystyle
attribute;
and
also
exposes
them
to
polyfills.
Name: | math-shift |
---|---|
Value: | normal | compact |
Initial: | normal |
Applies to: | All elements |
Inherited: | yes |
Percentages: | n/a |
Computed value: | specified keyword |
Canonical order: | n/a |
Animation type : | not animatable |
Media: | visual |
If
the
value
of
math-shift
is
compact
,
the
math
layout
on
descendants
will
use
the
superscriptShiftUpCramped
parameter
to
place
superscript.
If
the
value
of
math-shift
is
normal
,
the
math
will
use
the
superscriptShiftUp
parameter
instead.
This
property
is
used
for
positioning
superscript
during
the
layout
of
MathML
scripted
elements
.
See
§
3.4.1
Subscripts
and
Superscripts
<msub>
,
<msup>
,
<msubsup>
,
3.4.3
Prescripts
and
Tensor
Indices
<mmultiscripts>
and
3.4.2
Underscripts
and
Overscripts
<munder>
,
<mover>
,
<munderover>
.
In
the
following
example,
the
two
"x
squared"
are
rendered
with
compact
math-style
and
the
same
font-size
.
However,
the
one
within
the
square
root
is
rendered
with
compact
math-shift
while
the
other
one
is
rendered
with
normal
math-shift
,
leading
to
subtle
different
shift
of
the
superscript
"2".
Per [ TeXBook ], a mathematical formula uses normal style by default but may switch to compact style ("cramped" in TeX's terminology) within some subformulas (e.g. radicals, fraction denominators, etc). The math-shift property allows to easily implement these rules for MathML in the user agent stylesheet . Page authors or developers of polyfills may also benefit from having access to this property to tweak or refine the default implementation.
A
new
math-depth
property
is
introduced
to
describe
a
notion
of
"depth"
for
each
element
of
a
mathematical
formula,
with
respect
to
the
top-level
container
of
that
formula.
Concretely,
this
is
used
to
determine
the
computed
value
of
the
font-size
property
when
its
specified
value
is
math
.
Name: | math-depth |
---|---|
Value: | auto-add | add(<integer>) | <integer> |
Initial: | 0 |
Applies to: | All elements |
Inherited: | yes |
Percentages: | n/a |
Computed value: | an integer, see below |
Canonical order: | n/a |
Animation type: | not animatable |
Media: | visual |
The computed value of the math-depth value is determined as follows:
auto-add
and
the
inherited
value
of
math-style
is
compact
then
the
computed
value
of
math-depth
of
the
element
is
its
inherited
value
plus
one.
add(<integer>)
then
the
computed
value
of
math-depth
of
the
element
is
its
inherited
value
plus
the
specified
integer.
<integer>
then
the
computed
value
of
math-depth
of
the
element
is
the
specified
integer.
If
the
specified
value
of
font-size
is
math
then
the
computed
value
of
font-size
is
obtained
by
multiplying
the
inherited
value
of
font-size
by
a
nonzero
scale
factor
calculated
by
the
following
procedure:
InvertScaleFactor
to
true.
InvertScaleFactor
to
false.
InvertScaleFactor
is
false
and
1/S
otherwise.
The following example shows a mathematical formula with normal math-style rendered with the Latin Modern Math font. When entering subexpressions like scripts or fractions, the font-size is automatically scaled down according to the values of MATH table contained in that font. Note that font-size is scaled down when entering the superscripts but even faster when entering a root's prescript. Also it is scaled down when entering the inner fraction but not when entering the outer one, due to automatic change of math-style in fractions.
These
rules
from
[
TeXBook
]
are
subtle
and
it's
worth
having
a
separate
math-depth
mechanism
to
express
and
handle
them.
They
can
be
implemented
in
MathML
using
the
user
agent
stylesheet
.
Page
authors
or
developers
of
polyfills
may
also
benefit
from
having
access
to
this
property
to
tweak
or
refine
the
default
implementation.
In
particular,
the
scriptlevel
attribute
from
MathML
provides
a
way
to
perform
math-depth
changes.
This
chapter
describes
features
provided
by
MATH
table
of
an
OpenType
font
[
OPEN-FONT-FORMAT
].
Throughout
this
chapter,
a
C-like
notation
Table.Subtable1[index].Subtable2.Parameter
is
used
to
denote
OpenType
parameters.
Such
parameters
may
not
be
available
(e.g.
if
the
font
lacks
one
of
the
subtable,
has
an
invalid
offset,
etc)
and
so
fallback
options
are
provided.
OpenType
values
expressed
in
design
units
(perhaps
indirectly
via
a
MathValueRecord
entry)
are
scaled
to
appropriate
values
for
layout
purpose,
taking
into
account
head.unitsPerEm
,
CSS
font-size
or
zoom
level.
These are global layout constants for the first available font :
post.underlineThickness
or
Default
fallback
constant
if
the
constant
is
not
available.
MATH.MathConstants.scriptPercentScaleDown
/
100
or
0.71
if
MATH.MathConstants.scriptPercentScaleDown
is
null
or
not
available.
MATH.MathConstants.scriptScriptPercentScaleDown
/
100
or
0.5041
if
MATH.MathConstants.scriptScriptPercentScaleDown
is
null
or
not
available.
MATH.MathConstants.displayOperatorMinHeight
or
Default
fallback
constant
if
the
constant
is
not
available.
MATH.MathConstants.axisHeight
or
half
OS/2.sxHeight
if
the
constant
is
not
available.
MATH.MathConstants.accentBaseHeight
or
OS/2.sxHeight
if
the
constant
is
not
available.
MATH.MathConstants.subscriptShiftDown
or
OS/2.ySubscriptYOffset
if
the
constant
is
not
available.
MATH.MathConstants.subscriptTopMax
or
⅘
×
OS/2.sxHeight
if
the
constant
is
not
available.
MATH.MathConstants.subscriptBaselineDropMin
or
Default
fallback
constant
if
the
constant
is
not
available.
MATH.MathConstants.superscriptShiftUp
or
OS/2.ySuperscriptYOffset
if
the
constant
is
not
available.
MATH.MathConstants.superscriptShiftUpCramped
or
Default
fallback
constant
if
the
constant
is
not
available.
MATH.MathConstants.superscriptBottomMin
or
¼
×
OS/2.sxHeight
if
the
constant
is
not
available.
MATH.MathConstants.superscriptBaselineDropMax
or
Default
fallback
constant
if
the
constant
is
not
available.
MATH.MathConstants.subSuperscriptGapMin
or
4
×
default
rule
thickness
if
the
constant
is
not
available.
MATH.MathConstants.superscriptBottomMaxWithSubscript
or
⅘
×
OS/2.sxHeight
if
the
constant
is
not
available.
MATH.MathConstants.spaceAfterScript
or
1/24em
if
the
constant
is
not
available.
MATH.MathConstants.upperLimitGapMin
or
Default
fallback
constant
if
the
constant
is
not
available.
MATH.MathConstants.upperLimitBaselineRiseMin
or
Default
fallback
constant
if
the
constant
is
not
available.
MATH.MathConstants.lowerLimitGapMin
or
Default
fallback
constant
if
the
constant
is
not
available.
MATH.MathConstants.lowerLimitBaselineDropMin
or
Default
fallback
constant
if
the
constant
is
not
available.
MATH.MathConstants.stackTopShiftUp
or
Default
fallback
constant
if
the
constant
is
not
available.
MATH.MathConstants.stackTopDisplayStyleShiftUp
or
Default
fallback
constant
if
the
constant
is
not
available.
MATH.MathConstants.stackBottomShiftDown
or
Default
fallback
constant
if
the
constant
is
not
available.
MATH.MathConstants.stackBottomDisplayStyleShiftDown
or
Default
fallback
constant
if
the
constant
is
not
available.
MATH.MathConstants.stackGapMin
or
3
×
default
rule
thickness
if
the
constant
is
not
available.
MATH.MathConstants.stackDisplayStyleGapMin
or
7
×
default
rule
thickness
if
the
constant
is
not
available.
MATH.MathConstants.stretchStackTopShiftUp
or
Default
fallback
constant
if
the
constant
is
not
available.
MATH.MathConstants.stretchStackBottomShiftDown
or
Default
fallback
constant
if
the
constant
is
not
available.
MATH.MathConstants.stretchStackGapAboveMin
or
Default
fallback
constant
if
the
constant
is
not
available.
MATH.MathConstants.stretchStackGapBelowMin
or
Default
fallback
constant
if
the
constant
is
not
available.
MATH.MathConstants.fractionNumeratorShiftUp
or
Default
fallback
constant
if
the
constant
is
not
available.
MATH.MathConstants.fractionNumeratorDisplayStyleShiftUp
or
Default
fallback
constant
if
the
constant
is
not
available.
MATH.MathConstants.fractionDenominatorShiftDown
or
Default
fallback
constant
if
the
constant
is
not
available.
MATH.MathConstants.fractionDenominatorDisplayStyleShiftDown
or
Default
fallback
constant
if
the
constant
is
not
available.
MATH.MathConstants.fractionNumeratorGapMin
or
default
rule
thickness
if
the
constant
is
not
available.
MATH.MathConstants.fractionNumDisplayStyleGapMin
or
3
×
default
rule
thickness
if
the
constant
is
not
available.
MATH.MathConstants.fractionRuleThickness
or
default
rule
thickness
if
the
constant
is
not
available.
MATH.MathConstants.fractionDenominatorGapMin
or
default
rule
thickness
if
the
constant
is
not
available.
MATH.MathConstants.fractionDenomDisplayStyleGapMin
or
3
×
default
rule
thickness
if
the
constant
is
not
available.
MATH.MathConstants.overbarVerticalGap
or
3
×
default
rule
thickness
if
the
constant
is
not
available.
MATH.MathConstants.overbarExtraAscender
or
default
rule
thickness
if
the
constant
is
not
available.
MATH.MathConstants.underbarVerticalGap
or
3
×
default
rule
thickness
if
the
constant
is
not
available.
MATH.MathConstants.underbarExtraDescender
or
default
rule
thickness
if
the
constant
is
not
available.
MATH.MathConstants.radicalVerticalGap
or
1¼
×
default
rule
thickness
if
the
constant
is
not
available.
MATH.MathConstants.radicalDisplayStyleVerticalGap
or
default
rule
thickness
+
¼
OS/2.sxHeight
if
the
constant
is
not
available.
MATH.MathConstants.radicalRuleThickness
or
default
rule
thickness
if
the
constant
is
not
available.
MATH.MathConstants.radicalExtraAscender
or
default
rule
thickness
if
the
constant
is
not
available.
MATH.MathConstants.radicalKernBeforeDegree
or
5/18em
if
the
constant
is
not
available.
MATH.MathConstants.radicalKernAfterDegree
or
−10/18em
if
the
constant
is
not
available.
MATH.MathConstants.radicalDegreeBottomRaisePercent
/
100.0
or
0.6
if
the
constant
is
not
available.
These are per-glyph tables for the first available font :
MATH.MathGlyphInfo.MathItalicsCorrectionInfo
of
italics
correction
values.
Use
the
corresponding
value
in
MATH.MathGlyphInfo.MathItalicsCorrectionInfo.italicsCorrection
if
there
is
one
for
the
requested
glyph
or
0
otherwise.
MATH.MathGlyphInfo.MathTopAccentAttachment
of
positioning
top
math
accents
along
the
inline
axis
.
Use
the
corresponding
value
in
MATH.MathGlyphInfo.MathTopAccentAttachment.topAccentAttachment
if
there
is
one
for
the
requested
glyph
or
half
the
advance
width
of
the
glyph
otherwise.
This
section
describes
how
to
handle
stretchy
glyphs
of
arbitrary
size
using
the
MATH.MathVariants
table.
This section is based on [ OPEN-TYPE-MATH-IN-HARFBUZZ ]. For convenience, the following definitions are used:
MATH.MathVariant.minConnectorOverlap
.
GlyphPartRecord
is
an
extender
if
and
only
if
GlyphPartRecord.partFlags
has
the
fExtender
flag
set.
GlyphAssembly
is
horizontal
if
it
is
obtained
from
MathVariant.horizGlyphConstructionOffsets
.
Otherwise
it
is
vertical
(and
obtained
from
MathVariant.vertGlyphConstructionOffsets
).
GlyphAssembly
table,
N
Ext
(respectively
N
NonExt
)
is
the
number
of
extenders
(respectively
non-extenders)
in
GlyphAssembly.partRecords
.
GlyphAssembly
table,
S
Ext
(respectively
S
NonExt
)
is
the
sum
of
GlyphPartRecord.fullAdvance
for
all
extenders
(respectively
non-extenders)
in
GlyphAssembly.partRecords
.
User
agents
must
treat
the
GlyphAssembly
as
invalid
if
the
following
conditions
are
not
satisfied:
GlyphPartRecord
in
GlyphAssembly.partRecords
,
the
values
of
GlyphPartRecord.startConnectorLength
and
GlyphPartRecord.endConnectorLength
must
be
at
least
o
min
.
Otherwise,
it
is
not
possible
to
satisfy
the
condition
of
MathVariant.minConnectorOverlap
.
In this specification, a glyph assembly is built by repeating each extender r times and using the same overlap value o between each glyph. The number of glyphs in such an assembly is AssemblyGlyphCount (r) = N NonExt + r N Ext while the stretch size is AssembySize (o, r) = S NonExt + r S Ext − o ( AssemblyGlyphCount (r) − 1).
r min is the minimal number of repetitions needed to obtain an assembly of size at least T, i.e. the minimal r such that AssembySize ( o min , r) ≥ T. It is defined as the maximum between 0 and the ceiling of ((T − S NonExt + o min ( N NonExt − 1)) / S Ext,NonOverlapping ).
o max,theorical = ( AssembySize (0, r min ) − T) / ( AssemblyGlyphCount ( r min ) − 1) is the theorical overlap obtained by splitting evenly the extra size of an assembly built with null overlap.
o max is the maximum overlap possible to build an assembly of size at least T by repeating each extender r min times. If AssemblyGlyphCount ( r min ) ≤ 1, then the actual overlap value is irrelevant. Otherwise, o max is defined to be the minimum of:
GlyphPartRecord.startConnectorLength
for
all
the
entries
in
GlyphAssembly.partRecords
,
excluding
the
last
one
if
it
is
not
an
extender.
GlyphPartRecord.endConnectorLength
for
all
the
entries
in
GlyphAssembly.partRecords
,
excluding
the
first
one
if
it
is
not
an
extender.
The glyph assembly stretch size for a target size T is AssembySize ( o max , r min ).
The glyph assembly width , glyph assembly ascent and glyph assembly descent are defined as follows:
GlyphAssembly
is
vertical,
the
width
is
the
maximum
advance
width
of
the
glyphs
of
ID
GlyphPartRecord.glyphID
for
all
the
GlyphPartRecord
in
GlyphAssembly.partRecords
,
the
ascent
is
the
glyph
assembly
stretch
size
for
a
given
target
size
T
and
the
descent
is
0.
GlyphAssembly
is
horizontal,
the
width
is
glyph
assembly
stretch
size
for
a
given
target
size
T
while
the
ascent
(respectively
descent)
is
the
maximum
ascent
(respectively
descent)
of
the
glyphs
of
ID
GlyphPartRecord.glyphID
for
all
the
GlyphPartRecord
in
GlyphAssembly.partRecords
.
The glyph assembly height is the sum of the glyph assembly ascent and glyph assembly descent .
T
.
The shaping of the glyph assembly is performed with the following algorithm:
(x,
y)
to
(0,
0)
,
RepetitionCounter
to
0
and
PartIndex
to
-1.
RepetitionCounter
is
0:
PartIndex
.
PartIndex
is
GlyphAssembly.partCount
then
stop.
Part
to
GlyphAssembly.partRecords[PartIndex]
.
Set
RepetitionCounter
to
r
min
if
Part
is
an
extender
and
to
1
otherwise.
Part.glyphID
so
that
its
(left,
baseline)
coordinates
are
at
position
(x,
y)
.
Set
x
to
x
+
Part.fullAdvance
−
o
max
.
Part.glyphID
so
that
its
(left,
bottom)
coordinates
are
at
position
(x,
y)
.
Set
y
to
y
−
Part.fullAdvance
+
o
max
.
RepetitionCounter
.
The preferred inline size of a glyph stretched along the block axis is calculated using the following algorithm:
S
to
the
glyph's
advance
width.
MathGlyphConstruction
table
in
the
MathVariants.vertGlyphConstructionOffsets
table
for
the
given
glyph:
MathGlyphVariantRecord
in
MathGlyphConstruction.mathGlyphVariantRecord
,
ensure
that
S
is
at
least
the
advance
width
of
the
glyph
of
id
MathGlyphVariantRecord.variantGlyph
.
GlyphAssembly
subtable,
then
ensure
that
S
is
at
least
the
glyph
assembly
width
.
S
.
The
algorithm
to
shape
a
stretchy
glyph
to
inline
(respectively
block)
dimension
T
is
the
following:
MathGlyphConstruction
table
in
the
MathVariants.horizGlyphConstructionOffsets
table
(respectively
MathVariants.vertGlyphConstructionOffsets
table)
for
the
given
glyph
then
exit
with
failure.
T
then
use
normal
shaping
and
bounding
box
for
that
glyph,
the
MathItalicsCorrectionInfo
for
that
glyph
as
italic
correction
and
exit
with
success.
MathGlyphVariantRecord
in
MathGlyphConstruction.mathGlyphVariantRecord
.
If
one
MathGlyphVariantRecord.advanceMeasurement
is
at
least
T
then
use
normal
shaping
and
bounding
box
for
MathGlyphVariantRecord.variantGlyph
,
the
MathItalicsCorrectionInfo
for
that
glyph
as
italic
correction
and
exit
with
success.
GlyphAssembly
subtable
then
use
the
bounding
box
given
by
glyph
assembly
width
,
glyph
assembly
height
,
glyph
assembly
ascent
,
glyph
assembly
descent
,
the
value
GlyphAssembly.italicsCorrection
as
italic
correction,
perform
shaping
of
the
glyph
assembly
and
exit
with
success.
T
,
then
choose
last
one
that
was
tried
and
exit
with
success.
@namespace url(http://www.w3.org/1998/Math/MathML);
/* Universal rules */
* {
font-size: math;
display: block math;
writing-mode: horizontal-tb !important;
}
/* The <math> element */
math {
direction: ltr;
text-indent: 0;
letter-spacing: normal;
line-height: normal;
word-spacing: normal;
font-family: math;
font-size: inherit;
font-style: normal;
font-weight: normal;
display: inline math;
: normal;
: compact;
;
math-shift: normal;
math-style: compact;
math-depth: 0;
}
math[display="block" i] {
display: block math;
: normal;
math-style: normal;
}
math[display="inline" i] {
display: inline math;
: compact;
math-style: compact;
}
/* <mrow>-like elements */
semantics > :not(:first-child) {
display: none;
}
maction > :not(:first-child) {
display: none;
}
merror {
border: 1px solid red;
background-color: lightYellow;
}
mphantom {
visibility: hidden;
}
/* Token elements */
mi {
text-transform: math-auto;
}
/* Tables */
mtable {
display: inline-table;
: compact;
math-style: compact;
}
mtr {
display: table-row;
}
mtd {
display: table-cell;
/* Centering inside table cells should rely on box alignment properties.
See https://github.com/w3c/mathml-core/issues/156 */
text-align: center;
padding: 0.5ex 0.4em;
}
/* Fractions */
mfrac {
padding-inline: 1px;
}
mfrac > * {
: auto-add;
: compact;
math-depth: auto-add;
math-style: compact;
}
mfrac > :nth-child(2) {
: compact;
math-shift: compact;
}
/* Other rules for scriptlevel, displaystyle and math-shift */
mroot > :not(:first-child) {
);
: compact;
math-depth: add(2);
math-style: compact;
}
mroot, msqrt {
: compact;
math-shift: compact;
}
msub > :not(:first-child),
msup > :not(:first-child),
msubsup > :not(:first-child),
mmultiscripts > :not(:first-child),
munder > :not(:first-child),
mover > :not(:first-child),
munderover > :not(:first-child) {
);
: compact;
math-depth: add(1);
math-style: compact;
}
munder[accentunder="true" i] > :nth-child(2),
mover[accent="true" i] > :nth-child(2),
munderover[accentunder="true" i] > :nth-child(2),
munderover[accent="true" i] > :nth-child(3) {
font-size: inherit;
}
msub > :nth-child(2),
msubsup > :nth-child(2),
mmultiscripts > :nth-child(even),
mmultiscripts > mprescripts ~ :nth-child(odd),
mover[accent="true" i] > :first-child,
munderover[accent="true" i] > :first-child {
: compact;
math-shift: compact;
}
mmultiscripts > mprescripts ~ :nth-child(even) {
: inherit;
math-shift: inherit;
}
The algorithm to set the properties of an operator from its category is as follows:
minsize
to
100%
.
maxsize
to
∞
.
lspace
and
rspace
to
the
value
specified
in
the
corresponding
column.
stretchy
,
symmetric
,
largeop
,
movablelimits
,
set
that
property
to
true
if
it
is
listed
in
the
last
column
or
to
false
otherwise.
The
algorithm
to
determine
the
category
of
an
operator
(
Content
,
Form
)
is
as
folllows:
Content
as
an
UTF-16
string
does
not
have
length
or
1
or
2
then
exit
with
category
Default
.
Content
is
a
single
character
in
the
range
U+0320–U+03FF
then
exit
with
category
Default
.
Otherwise,
if
it
has
two
characters:
Content
is
the
surrogate
pairs
corresponding
to
U+1EEF0
ARABIC
MATHEMATICAL
OPERATOR
MEEM
WITH
HAH
WITH
TATWEEL
or
U+1EEF1
ARABIC
MATHEMATICAL
OPERATOR
HAH
WITH
DAL
and
Form
is
postfix
,
exit
with
category
I
.
Content
with
the
first
character
and
move
to
step
3.
Content
is
listed
in
Operators_2_ascii_chars
then
replace
Content
with
the
Unicode
character
"U+0320
plus
the
index
of
Content
in
Operators_2_ascii_chars
"
and
move
to
step
3.
Default
.
Form
is
infix
and
Content
corresponds
to
one
of
U+007C
VERTICAL
LINE
or
U+223C
TILDE
OPERATOR
then
exit
with
category
ForceDefault
.
If
the
category
of
(
Content
,
Form
)
provided
by
table
Figure
25
has
N/A
encoding
in
table
Figure
26
(namely
if
it
has
category
L
or
M
),
then
exit
with
that
category.
Otherwise:
Key
to
Content
if
it
is
in
range
U+0000–U+03FF;
or
to
Content
−
0x1C00
if
it
is
in
range
U+2000–U+2BFF.
Otherwise,
exit
with
category
Default
.
Key
according
to
whether
Form
is
infix
,
prefix
,
postfix
respectively.
Key
is
at
most
0x2FFF.
Entry
in
table
Figure
27
such
that
Entry
%
0x4000
is
equal
to
Key
.
If
one
is
found
then
return
the
category
corresponding
to
encoding
Entry
/
0x1000
in
Figure
26
.
Otherwise,
return
category
Default
.
Special Table | Entries |
---|---|
Operators_2_ascii_chars
|
18
entries
(2-characters
ASCII
strings):
'!!',
'!=',
'&&',
'**',
'*=',
'++',
'+=',
'--',
'-=',
'->',
'//',
'/=',
':=',
'<=',
'<>',
'==',
'>=',
'||',
|
Operators_fence
|
61
entries
(16
Unicode
ranges):
[U+0028–U+0029],
{U+005B},
{U+005D},
[U+007B–U+007D],
{U+0331},
{U+2016},
[U+2018–U+2019],
[U+201C–U+201D],
[U+2308–U+230B],
[U+2329–U+232A],
[U+2772–U+2773],
[U+27E6–U+27EF],
{U+2980},
[U+2983–U+2999],
[U+29D8–U+29DB],
[U+29FC–U+29FD],
|
Operators_separator
|
3
entries:
U+002C,
U+003B,
U+2063,
|
(Content, Form) keys | Category |
---|---|
313
entries
(35
Unicode
ranges)
in
infix
form:
[U+2190–U+2195],
[U+219A–U+21AE],
[U+21B0–U+21B5],
{U+21B9},
[U+21BC–U+21D5],
[U+21DA–U+21F0],
[U+21F3–U+21FF],
{U+2794},
{U+2799},
[U+279B–U+27A1],
[U+27A5–U+27A6],
[U+27A8–U+27AF],
{U+27B1},
{U+27B3},
{U+27B5},
{U+27B8},
[U+27BA–U+27BE],
[U+27F0–U+27F1],
[U+27F4–U+27FF],
[U+2900–U+2920],
[U+2934–U+2937],
[U+2942–U+2975],
[U+297C–U+297F],
[U+2B04–U+2B07],
[U+2B0C–U+2B11],
[U+2B30–U+2B3E],
[U+2B40–U+2B4C],
[U+2B60–U+2B65],
[U+2B6A–U+2B6D],
[U+2B70–U+2B73],
[U+2B7A–U+2B7D],
[U+2B80–U+2B87],
{U+2B95},
[U+2BA0–U+2BAF],
{U+2BB8},
| A |
108
entries
(31
Unicode
ranges)
in
infix
form:
{U+002B},
{U+002D},
{U+00B1},
{U+00F7},
{U+0322},
{U+2044},
[U+2212–U+2216],
[U+2227–U+222A],
{U+2236},
{U+2238},
[U+228C–U+228E],
[U+2293–U+2296],
{U+2298},
[U+229D–U+229F],
[U+22BB–U+22BD],
[U+22CE–U+22CF],
[U+22D2–U+22D3],
[U+2795–U+2797],
{U+29B8},
{U+29BC},
[U+29C4–U+29C5],
[U+29F5–U+29FB],
[U+2A1F–U+2A2E],
[U+2A38–U+2A3A],
{U+2A3E},
[U+2A40–U+2A4F],
[U+2A51–U+2A63],
{U+2ADB},
{U+2AF6},
{U+2AFB},
{U+2AFD},
| B |
64
entries
(33
Unicode
ranges)
in
infix
form:
{U+0025},
{U+002A},
{U+002E},
[U+003F–U+0040],
{U+005E},
{U+00B7},
{U+00D7},
{U+0323},
{U+032E},
{U+2022},
{U+2043},
[U+2217–U+2219],
{U+2240},
{U+2297},
[U+2299–U+229B],
[U+22A0–U+22A1],
{U+22BA},
[U+22C4–U+22C7],
[U+22C9–U+22CC],
[U+2305–U+2306],
{U+27CB},
{U+27CD},
[U+29C6–U+29C8],
[U+29D4–U+29D7],
{U+29E2},
[U+2A1D–U+2A1E],
[U+2A2F–U+2A37],
[U+2A3B–U+2A3D],
{U+2A3F},
{U+2A50},
[U+2A64–U+2A65],
[U+2ADC–U+2ADD],
{U+2AFE},
| C |
52
entries
(22
Unicode
ranges)
in
prefix
form:
{U+0021},
{U+002B},
{U+002D},
{U+00AC},
{U+00B1},
{U+0331},
{U+2018},
{U+201C},
[U+2200–U+2201],
[U+2203–U+2204],
{U+2207},
[U+2212–U+2213],
[U+221F–U+2222],
[U+2234–U+2235],
{U+223C},
[U+22BE–U+22BF],
{U+2310},
{U+2319},
[U+2795–U+2796],
{U+27C0},
[U+299B–U+29AF],
[U+2AEC–U+2AED],
| D |
40
entries
(21
Unicode
ranges)
in
postfix
form:
[U+0021–U+0022],
[U+0025–U+0027],
{U+0060},
{U+00A8},
{U+00B0},
[U+00B2–U+00B4],
[U+00B8–U+00B9],
[U+02CA–U+02CB],
[U+02D8–U+02DA],
{U+02DD},
{U+0311},
{U+0320},
{U+0325},
{U+0327},
{U+0331},
[U+2019–U+201B],
[U+201D–U+201F],
[U+2032–U+2037],
{U+2057},
[U+20DB–U+20DC],
{U+23CD},
| E |
30
entries
in
prefix
form:
U+0028,
U+005B,
U+007B,
U+007C,
U+2016,
U+2308,
U+230A,
U+2329,
U+2772,
U+27E6,
U+27E8,
U+27EA,
U+27EC,
U+27EE,
U+2980,
U+2983,
U+2985,
U+2987,
U+2989,
U+298B,
U+298D,
U+298F,
U+2991,
U+2993,
U+2995,
U+2997,
U+2999,
U+29D8,
U+29DA,
U+29FC,
| F |
30
entries
in
postfix
form:
U+0029,
U+005D,
U+007C,
U+007D,
U+2016,
U+2309,
U+230B,
U+232A,
U+2773,
U+27E7,
U+27E9,
U+27EB,
U+27ED,
U+27EF,
U+2980,
U+2984,
U+2986,
U+2988,
U+298A,
U+298C,
U+298E,
U+2990,
U+2992,
U+2994,
U+2996,
U+2998,
U+2999,
U+29D9,
U+29DB,
U+29FD,
| G |
27
entries
(2
Unicode
ranges)
in
prefix
form:
[U+222B–U+2233],
[U+2A0B–U+2A1C],
| H |
22
entries
(13
Unicode
ranges)
in
postfix
form:
[U+005E–U+005F],
{U+007E},
{U+00AF},
[U+02C6–U+02C7],
{U+02C9},
{U+02CD},
{U+02DC},
{U+02F7},
{U+0302},
{U+203E},
[U+2322–U+2323],
[U+23B4–U+23B5],
[U+23DC–U+23E1],
| I |
22
entries
(6
Unicode
ranges)
in
prefix
form:
[U+220F–U+2211],
[U+22C0–U+22C3],
[U+2A00–U+2A0A],
[U+2A1D–U+2A1E],
{U+2AFC},
{U+2AFF},
| J |
8
entries
(5
Unicode
ranges)
in
infix
form:
{U+002F},
{U+005C},
{U+005F},
[U+2061–U+2064],
{U+2206},
| K |
6
entries
(3
Unicode
ranges)
in
prefix
form:
[U+2145–U+2146],
{U+2202},
[U+221A–U+221C],
| L |
3
entries
in
infix
form:
U+002C,
U+003A,
U+003B,
| M |
Category | Form | Encoding | lspace | rspace | properties |
---|---|---|---|---|---|
Default | N/A | N/A |
0.2777777777777778em
|
0.2777777777777778em
| N/A |
ForceDefault | N/A | N/A |
0.2777777777777778em
|
0.2777777777777778em
| N/A |
A | infix | 0x0 |
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
B | infix | 0x4 |
0.2222222222222222em
|
0.2222222222222222em
| N/A |
C | infix | 0x8 |
0.16666666666666666em
|
0.16666666666666666em
| N/A |
D | prefix | 0x1 |
0
|
0
| N/A |
E | postfix | 0x2 |
0
|
0
| N/A |
F | prefix | 0x5 |
0
|
0
| stretchy symmetric |
G | postfix | 0x6 |
0
|
0
| stretchy symmetric |
H | prefix | 0x9 |
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop |
I | postfix | 0xA |
0
|
0
| stretchy |
J | prefix | 0xD |
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop movablelimits |
K | infix | 0xC |
0
|
0
| N/A |
L | prefix | N/A |
0.16666666666666666em
|
0
| N/A |
M | infix | N/A |
0
|
0.16666666666666666em
| N/A |
{0x8025},
{0x802A},
{0x402B},
{0x402D},
{0x802E},
{0xC02F},
[0x803F–0x8040],
{0xC05C},
{0x805E},
{0xC05F},
{0x40B1},
{0x80B7},
{0x80D7},
{0x40F7},
{0x4322},
{0x8323},
{0x832E},
{0x8422},
{0x8443},
{0x4444},
[0xC461–0xC464],
[0x0590–0x0595],
[0x059A–0x05A9],
[0x05AA–0x05AE],
[0x05B0–0x05B5],
{0x05B9},
[0x05BC–0x05CB],
[0x05CC–0x05D5],
[0x05DA–0x05E9],
[0x05EA–0x05F0],
[0x05F3–0x05FF],
{0xC606},
[0x4612–0x4616],
[0x8617–0x8619],
[0x4627–0x462A],
{0x4636},
{0x4638},
{0x8640},
[0x468C–0x468E],
[0x4693–0x4696],
{0x8697},
{0x4698},
[0x8699–0x869B],
[0x469D–0x469F],
[0x86A0–0x86A1],
{0x86BA},
[0x46BB–0x46BD],
[0x86C4–0x86C7],
[0x86C9–0x86CC],
[0x46CE–0x46CF],
[0x46D2–0x46D3],
[0x8705–0x8706],
{0x0B94},
[0x4B95–0x4B97],
{0x0B99},
[0x0B9B–0x0BA1],
[0x0BA5–0x0BA6],
[0x0BA8–0x0BAF],
{0x0BB1},
{0x0BB3},
{0x0BB5},
{0x0BB8},
[0x0BBA–0x0BBE],
{0x8BCB},
{0x8BCD},
[0x0BF0–0x0BF1],
[0x0BF4–0x0BFF],
[0x0D00–0x0D0F],
[0x0D10–0x0D1F],
{0x0D20},
[0x0D34–0x0D37],
[0x0D42–0x0D51],
[0x0D52–0x0D61],
[0x0D62–0x0D71],
[0x0D72–0x0D75],
[0x0D7C–0x0D7F],
{0x4DB8},
{0x4DBC},
[0x4DC4–0x4DC5],
[0x8DC6–0x8DC8],
[0x8DD4–0x8DD7],
{0x8DE2},
[0x4DF5–0x4DFB],
[0x8E1D–0x8E1E],
[0x4E1F–0x4E2E],
[0x8E2F–0x8E37],
[0x4E38–0x4E3A],
[0x8E3B–0x8E3D],
{0x4E3E},
{0x8E3F},
[0x4E40–0x4E4F],
{0x8E50},
[0x4E51–0x4E60],
[0x4E61–0x4E63],
[0x8E64–0x8E65],
{0x4EDB},
[0x8EDC–0x8EDD],
{0x4EF6},
{0x4EFB},
{0x4EFD},
{0x8EFE},
[0x0F04–0x0F07],
[0x0F0C–0x0F11],
[0x0F30–0x0F3E],
[0x0F40–0x0F4C],
[0x0F60–0x0F65],
[0x0F6A–0x0F6D],
[0x0F70–0x0F73],
[0x0F7A–0x0F7D],
[0x0F80–0x0F87],
{0x0F95},
[0x0FA0–0x0FAF],
{0x0FB8},
{0x1021},
{0x5028},
{0x102B},
{0x102D},
{0x505B},
[0x507B–0x507C],
{0x10AC},
{0x10B1},
{0x1331},
{0x5416},
{0x1418},
{0x141C},
[0x1600–0x1601],
[0x1603–0x1604],
{0x1607},
[0xD60F–0xD611],
[0x1612–0x1613],
[0x161F–0x1622],
[0x962B–0x9633],
[0x1634–0x1635],
{0x163C},
[0x16BE–0x16BF],
[0xD6C0–0xD6C3],
{0x5708},
{0x570A},
{0x1710},
{0x1719},
{0x5729},
{0x5B72},
[0x1B95–0x1B96],
{0x1BC0},
{0x5BE6},
{0x5BE8},
{0x5BEA},
{0x5BEC},
{0x5BEE},
{0x5D80},
{0x5D83},
{0x5D85},
{0x5D87},
{0x5D89},
{0x5D8B},
{0x5D8D},
{0x5D8F},
{0x5D91},
{0x5D93},
{0x5D95},
{0x5D97},
{0x5D99},
[0x1D9B–0x1DAA],
[0x1DAB–0x1DAF],
{0x5DD8},
{0x5DDA},
{0x5DFC},
[0xDE00–0xDE0A],
[0x9E0B–0x9E1A],
[0x9E1B–0x9E1C],
[0xDE1D–0xDE1E],
[0x1EEC–0x1EED],
{0xDEFC},
{0xDEFF},
[0x2021–0x2022],
[0x2025–0x2027],
{0x6029},
{0x605D},
[0xA05E–0xA05F],
{0x2060},
[0x607C–0x607D],
{0xA07E},
{0x20A8},
{0xA0AF},
{0x20B0},
[0x20B2–0x20B4],
[0x20B8–0x20B9],
[0xA2C6–0xA2C7],
{0xA2C9},
[0x22CA–0x22CB],
{0xA2CD},
[0x22D8–0x22DA],
{0xA2DC},
{0x22DD},
{0xA2F7},
{0xA302},
{0x2311},
{0x2320},
{0x2325},
{0x2327},
{0x2331},
{0x6416},
[0x2419–0x241B],
[0x241D–0x241F],
[0x2432–0x2437],
{0xA43E},
{0x2457},
[0x24DB–0x24DC],
{0x6709},
{0x670B},
[0xA722–0xA723],
{0x672A},
[0xA7B4–0xA7B5],
{0x27CD},
[0xA7DC–0xA7E1],
{0x6B73},
{0x6BE7},
{0x6BE9},
{0x6BEB},
{0x6BED},
{0x6BEF},
{0x6D80},
{0x6D84},
{0x6D86},
{0x6D88},
{0x6D8A},
{0x6D8C},
{0x6D8E},
{0x6D90},
{0x6D92},
{0x6D94},
{0x6D96},
[0x6D98–0x6D99],
{0x6DD9},
{0x6DDB},
{0x6DFD},
Key
is
Entry
%
0x4000,
category
encoding
is
Entry
/
0x1000.
The
intrinsic
stretch
axis
a
Unicode
character
c
is
inline
if
it
belongs
to
the
list
below.
Otherwise,
the
intrinsic
stretch
axis
of
c
is
block
.
U+003D,
U+005E,
U+005F,
U+007E,
U+00AF,
U+02C6,
U+02C7,
U+02C9,
U+02CD,
U+02DC,
U+02F7,
U+0302,
U+0332,
U+203E,
U+20D0,
U+20D1,
U+20D6,
U+20D7,
U+20E1,
U+2190,
U+2192,
U+2194,
U+2198,
U+2199,
U+219A,
U+219B,
U+219C,
U+219D,
U+219E,
U+21A0,
U+21A2,
U+21A3,
U+21A4,
U+21A6,
U+21A9,
U+21AA,
U+21AB,
U+21AC,
U+21AD,
U+21AE,
U+21B4,
U+21B9,
U+21BC,
U+21BD,
U+21C0,
U+21C1,
U+21C4,
U+21C6,
U+21C7,
U+21C9,
U+21CB,
U+21CC,
U+21CD,
U+21CE,
U+21CF,
U+21D0,
U+21D2,
U+21D4,
U+21DA,
U+21DB,
U+21DC,
U+21DD,
U+21E0,
U+21E2,
U+21E4,
U+21E5,
U+21E6,
U+21E8,
U+21F0,
U+21F4,
U+21F6,
U+21F7,
U+21F8,
U+21F9,
U+21FA,
U+21FB,
U+21FC,
U+21FD,
U+21FE,
U+21FF,
U+2322,
U+2323,
U+23B4,
U+23B5,
U+23DC,
U+23DD,
U+23DE,
U+23DF,
U+23E0,
U+23E1,
U+2500,
U+2794,
U+2799,
U+279B,
U+279C,
U+279D,
U+279E,
U+279F,
U+27A0,
U+27A1,
U+27A5,
U+27A6,
U+27A8,
U+27A9,
U+27AA,
U+27AB,
U+27AC,
U+27AD,
U+27AE,
U+27AF,
U+27B1,
U+27B3,
U+27B5,
U+27B8,
U+27BA,
U+27BB,
U+27BC,
U+27BD,
U+27BE,
U+27F4,
U+27F5,
U+27F6,
U+27F7,
U+27F8,
U+27F9,
U+27FA,
U+27FB,
U+27FC,
U+27FD,
U+27FE,
U+27FF,
U+2900,
U+2901,
U+2902,
U+2903,
U+2904,
U+2905,
U+2906,
U+2907,
U+290C,
U+290D,
U+290E,
U+290F,
U+2910,
U+2911,
U+2914,
U+2915,
U+2916,
U+2917,
U+2918,
U+2919,
U+291A,
U+291B,
U+291C,
U+291D,
U+291E,
U+291F,
U+2920,
U+2942,
U+2943,
U+2944,
U+2945,
U+2946,
U+2947,
U+2948,
U+294A,
U+294B,
U+294E,
U+2950,
U+2952,
U+2953,
U+2956,
U+2957,
U+295A,
U+295B,
U+295E,
U+295F,
U+2962,
U+2964,
U+2966,
U+2967,
U+2968,
U+2969,
U+296A,
U+296B,
U+296C,
U+296D,
U+2970,
U+2971,
U+2972,
U+2973,
U+2974,
U+2975,
U+297C,
U+297D,
U+2B04,
U+2B05,
U+2B0C,
U+2B30,
U+2B31,
U+2B32,
U+2B33,
U+2B34,
U+2B35,
U+2B36,
U+2B37,
U+2B38,
U+2B39,
U+2B3A,
U+2B3B,
U+2B3C,
U+2B3D,
U+2B3E,
U+2B40,
U+2B41,
U+2B42,
U+2B43,
U+2B44,
U+2B45,
U+2B46,
U+2B47,
U+2B48,
U+2B49,
U+2B4A,
U+2B4B,
U+2B4C,
U+2B60,
U+2B62,
U+2B64,
U+2B6A,
U+2B6C,
U+2B70,
U+2B72,
U+2B7A,
U+2B7C,
U+2B80,
U+2B82,
U+2B84,
U+2B86,
U+2B95,
U+FE35,
U+FE36,
U+FE37,
U+FE38,
U+1EEF0,
U+1EEF1,
This section is non-normative.
The
following
dictionary
provides
a
human-readable
version
of
B.1
Operator
Dictionary
.
Please
refer
to
3.2.4.2
Dictionary-based
attributes
for
explanation
about
how
to
use
this
dictionary
and
how
to
determine
the
values
Content
and
Form
indexing
together
the
dictionary.
The
values
for
rspace
and
lspace
are
indicated
in
the
corresponding
columns.
The
values
of
stretchy
,
symmetric
,
largeop
,
movablelimits
are
true
if
they
are
listed
in
the
"properties"
column.
Content | Stretch Axis | form | lspace | rspace | properties |
---|---|---|---|---|---|
< U+003C | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
= U+003D | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
> U+003E | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
| U+007C | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| fence |
↖ U+2196 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
↗ U+2197 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
↘ U+2198 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
↙ U+2199 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
↯ U+21AF | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
↶ U+21B6 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
↷ U+21B7 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
↸ U+21B8 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
↺ U+21BA | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
↻ U+21BB | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⇖ U+21D6 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⇗ U+21D7 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⇘ U+21D8 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⇙ U+21D9 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⇱ U+21F1 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⇲ U+21F2 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
∈ U+2208 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
∉ U+2209 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
∊ U+220A | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
∋ U+220B | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
∌ U+220C | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
∍ U+220D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
∝ U+221D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
∣ U+2223 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
∤ U+2224 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
∥ U+2225 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
∦ U+2226 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
∷ U+2237 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
∹ U+2239 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
∺ U+223A | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
∻ U+223B | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
∼ U+223C | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
∽ U+223D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
∾ U+223E | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≁ U+2241 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≂ U+2242 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≃ U+2243 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≄ U+2244 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≅ U+2245 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≆ U+2246 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≇ U+2247 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≈ U+2248 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≉ U+2249 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≊ U+224A | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≋ U+224B | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≌ U+224C | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≍ U+224D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≎ U+224E | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≏ U+224F | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≐ U+2250 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≑ U+2251 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≒ U+2252 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≓ U+2253 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≔ U+2254 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≕ U+2255 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≖ U+2256 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≗ U+2257 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≘ U+2258 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≙ U+2259 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≚ U+225A | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≛ U+225B | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≜ U+225C | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≝ U+225D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≞ U+225E | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≟ U+225F | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≠ U+2260 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≡ U+2261 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≢ U+2262 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≣ U+2263 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≤ U+2264 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≥ U+2265 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≦ U+2266 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≧ U+2267 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≨ U+2268 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≩ U+2269 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≪ U+226A | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≫ U+226B | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≬ U+226C | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≭ U+226D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≮ U+226E | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≯ U+226F | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≰ U+2270 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≱ U+2271 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≲ U+2272 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≳ U+2273 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≴ U+2274 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≵ U+2275 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≶ U+2276 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≷ U+2277 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≸ U+2278 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≹ U+2279 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≺ U+227A | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≻ U+227B | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≼ U+227C | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≽ U+227D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≾ U+227E | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
≿ U+227F | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊀ U+2280 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊁ U+2281 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊂ U+2282 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊃ U+2283 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊄ U+2284 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊅ U+2285 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊆ U+2286 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊇ U+2287 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊈ U+2288 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊉ U+2289 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊊ U+228A | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊋ U+228B | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊏ U+228F | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊐ U+2290 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊑ U+2291 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊒ U+2292 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊜ U+229C | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊢ U+22A2 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊣ U+22A3 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊦ U+22A6 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊧ U+22A7 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊨ U+22A8 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊩ U+22A9 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊪ U+22AA | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊫ U+22AB | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊬ U+22AC | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊭ U+22AD | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊮ U+22AE | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊯ U+22AF | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊰ U+22B0 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊱ U+22B1 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊲ U+22B2 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊳ U+22B3 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊴ U+22B4 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊵ U+22B5 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊶ U+22B6 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊷ U+22B7 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⊸ U+22B8 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋈ U+22C8 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋍ U+22CD | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋐ U+22D0 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋑ U+22D1 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋔ U+22D4 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋕ U+22D5 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋖ U+22D6 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋗ U+22D7 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋘ U+22D8 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋙ U+22D9 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋚ U+22DA | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋛ U+22DB | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋜ U+22DC | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋝ U+22DD | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋞ U+22DE | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋟ U+22DF | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋠ U+22E0 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋡ U+22E1 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋢ U+22E2 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋣ U+22E3 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋤ U+22E4 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋥ U+22E5 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋦ U+22E6 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋧ U+22E7 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋨ U+22E8 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋩ U+22E9 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋪ U+22EA | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋫ U+22EB | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋬ U+22EC | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋭ U+22ED | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋲ U+22F2 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋳ U+22F3 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋴ U+22F4 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋵ U+22F5 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋶ U+22F6 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋷ U+22F7 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋸ U+22F8 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋹ U+22F9 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋺ U+22FA | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋻ U+22FB | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋼ U+22FC | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋽ U+22FD | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋾ U+22FE | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⋿ U+22FF | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⌁ U+2301 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⍼ U+237C | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⎋ U+238B | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
➘ U+2798 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
➚ U+279A | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
➧ U+27A7 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
➲ U+27B2 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
➴ U+27B4 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
➶ U+27B6 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
➷ U+27B7 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
➹ U+27B9 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⟂ U+27C2 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⟲ U+27F2 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⟳ U+27F3 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⤡ U+2921 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⤢ U+2922 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⤣ U+2923 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⤤ U+2924 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⤥ U+2925 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⤦ U+2926 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⤧ U+2927 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⤨ U+2928 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⤩ U+2929 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⤪ U+292A | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⤫ U+292B | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⤬ U+292C | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⤭ U+292D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⤮ U+292E | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⤯ U+292F | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⤰ U+2930 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⤱ U+2931 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⤲ U+2932 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⤳ U+2933 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⤸ U+2938 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⤹ U+2939 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⤺ U+293A | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⤻ U+293B | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⤼ U+293C | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⤽ U+293D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⤾ U+293E | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⤿ U+293F | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⥀ U+2940 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⥁ U+2941 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⥶ U+2976 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⥷ U+2977 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⥸ U+2978 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⥹ U+2979 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⥺ U+297A | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⥻ U+297B | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⦁ U+2981 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⦂ U+2982 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⦶ U+29B6 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⦷ U+29B7 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⦹ U+29B9 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⧀ U+29C0 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⧁ U+29C1 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⧎ U+29CE | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⧏ U+29CF | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⧐ U+29D0 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⧑ U+29D1 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⧒ U+29D2 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⧓ U+29D3 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⧟ U+29DF | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⧡ U+29E1 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⧣ U+29E3 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⧤ U+29E4 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⧥ U+29E5 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⧦ U+29E6 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⧴ U+29F4 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⩦ U+2A66 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⩧ U+2A67 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⩨ U+2A68 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⩩ U+2A69 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⩪ U+2A6A | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⩫ U+2A6B | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⩬ U+2A6C | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⩭ U+2A6D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⩮ U+2A6E | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⩯ U+2A6F | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⩰ U+2A70 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⩱ U+2A71 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⩲ U+2A72 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⩳ U+2A73 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⩴ U+2A74 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⩵ U+2A75 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⩶ U+2A76 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⩷ U+2A77 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⩸ U+2A78 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⩹ U+2A79 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⩺ U+2A7A | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⩻ U+2A7B | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⩼ U+2A7C | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⩽ U+2A7D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⩾ U+2A7E | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⩿ U+2A7F | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪀ U+2A80 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪁ U+2A81 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪂ U+2A82 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪃ U+2A83 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪄ U+2A84 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪅ U+2A85 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪆ U+2A86 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪇ U+2A87 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪈ U+2A88 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪉ U+2A89 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪊ U+2A8A | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪋ U+2A8B | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪌ U+2A8C | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪍ U+2A8D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪎ U+2A8E | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪏ U+2A8F | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪐ U+2A90 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪑ U+2A91 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪒ U+2A92 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪓ U+2A93 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪔ U+2A94 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪕ U+2A95 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪖ U+2A96 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪗ U+2A97 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪘ U+2A98 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪙ U+2A99 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪚ U+2A9A | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪛ U+2A9B | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪜ U+2A9C | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪝ U+2A9D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪞ U+2A9E | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪟ U+2A9F | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪠ U+2AA0 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪡ U+2AA1 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪢ U+2AA2 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪣ U+2AA3 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪤ U+2AA4 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪥ U+2AA5 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪦ U+2AA6 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪧ U+2AA7 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪨ U+2AA8 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪩ U+2AA9 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪪ U+2AAA | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪫ U+2AAB | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪬ U+2AAC | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪭ U+2AAD | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪮ U+2AAE | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪯ U+2AAF | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪰ U+2AB0 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪱ U+2AB1 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪲ U+2AB2 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪳ U+2AB3 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪴ U+2AB4 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪵ U+2AB5 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪶ U+2AB6 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪷ U+2AB7 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪸ U+2AB8 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪹ U+2AB9 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪺ U+2ABA | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪻ U+2ABB | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪼ U+2ABC | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪽ U+2ABD | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪾ U+2ABE | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⪿ U+2ABF | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫀ U+2AC0 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫁ U+2AC1 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫂ U+2AC2 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫃ U+2AC3 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫄ U+2AC4 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫅ U+2AC5 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫆ U+2AC6 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫇ U+2AC7 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫈ U+2AC8 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫉ U+2AC9 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫊ U+2ACA | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫋ U+2ACB | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫌ U+2ACC | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫍ U+2ACD | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫎ U+2ACE | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫏ U+2ACF | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫐ U+2AD0 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫑ U+2AD1 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫒ U+2AD2 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫓ U+2AD3 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫔ U+2AD4 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫕ U+2AD5 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫖ U+2AD6 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫗ U+2AD7 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫘ U+2AD8 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫙ U+2AD9 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫚ U+2ADA | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫞ U+2ADE | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫟ U+2ADF | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫠ U+2AE0 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫡ U+2AE1 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫢ U+2AE2 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫣ U+2AE3 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫤ U+2AE4 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫥ U+2AE5 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫦ U+2AE6 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫧ U+2AE7 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫨ U+2AE8 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫩ U+2AE9 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫪ U+2AEA | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫫ U+2AEB | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫮ U+2AEE | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫲ U+2AF2 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫳ U+2AF3 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫴ U+2AF4 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫵ U+2AF5 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫷ U+2AF7 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫸ U+2AF8 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫹ U+2AF9 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⫺ U+2AFA | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⬀ U+2B00 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⬁ U+2B01 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⬂ U+2B02 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⬃ U+2B03 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⬈ U+2B08 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⬉ U+2B09 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⬊ U+2B0A | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⬋ U+2B0B | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⬿ U+2B3F | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⭍ U+2B4D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⭎ U+2B4E | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⭏ U+2B4F | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⭚ U+2B5A | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⭛ U+2B5B | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⭜ U+2B5C | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⭝ U+2B5D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⭞ U+2B5E | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⭟ U+2B5F | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⭦ U+2B66 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⭧ U+2B67 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⭨ U+2B68 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⭩ U+2B69 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⭮ U+2B6E | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⭯ U+2B6F | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⭶ U+2B76 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⭷ U+2B77 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⭸ U+2B78 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⭹ U+2B79 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⮈ U+2B88 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⮉ U+2B89 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⮊ U+2B8A | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⮋ U+2B8B | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⮌ U+2B8C | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⮍ U+2B8D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⮎ U+2B8E | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⮏ U+2B8F | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⮔ U+2B94 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⮰ U+2BB0 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⮱ U+2BB1 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⮲ U+2BB2 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⮳ U+2BB3 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⮴ U+2BB4 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⮵ U+2BB5 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⮶ U+2BB6 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⮷ U+2BB7 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
⯑ U+2BD1 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
String != U+0021 U+003D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
String *= U+002A U+003D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
String += U+002B U+003D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
String -= U+002D U+003D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
String -> U+002D U+003E | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
String // U+002F U+002F | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
String /= U+002F U+003D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
String := U+003A U+003D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
String <= U+003C U+003D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
String == U+003D U+003D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
String >= U+003E U+003D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| N/A |
String || U+007C U+007C | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| fence |
← U+2190 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↑ U+2191 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
→ U+2192 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↓ U+2193 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↔ U+2194 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↕ U+2195 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↚ U+219A | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↛ U+219B | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↜ U+219C | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↝ U+219D | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↞ U+219E | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↟ U+219F | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↠ U+21A0 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↡ U+21A1 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↢ U+21A2 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↣ U+21A3 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↤ U+21A4 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↥ U+21A5 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↦ U+21A6 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↧ U+21A7 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↨ U+21A8 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↩ U+21A9 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↪ U+21AA | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↫ U+21AB | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↬ U+21AC | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↭ U+21AD | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↮ U+21AE | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↰ U+21B0 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↱ U+21B1 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↲ U+21B2 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↳ U+21B3 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↴ U+21B4 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↵ U+21B5 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↹ U+21B9 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↼ U+21BC | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↽ U+21BD | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↾ U+21BE | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
↿ U+21BF | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇀ U+21C0 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇁ U+21C1 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇂ U+21C2 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇃ U+21C3 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇄ U+21C4 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇅ U+21C5 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇆ U+21C6 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇇ U+21C7 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇈ U+21C8 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇉ U+21C9 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇊ U+21CA | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇋ U+21CB | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇌ U+21CC | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇍ U+21CD | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇎ U+21CE | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇏ U+21CF | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇐ U+21D0 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇑ U+21D1 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇒ U+21D2 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇓ U+21D3 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇔ U+21D4 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇕ U+21D5 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇚ U+21DA | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇛ U+21DB | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇜ U+21DC | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇝ U+21DD | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇞ U+21DE | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇟ U+21DF | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇠ U+21E0 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇡ U+21E1 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇢ U+21E2 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇣ U+21E3 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇤ U+21E4 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇥ U+21E5 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇦ U+21E6 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇧ U+21E7 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇨ U+21E8 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇩ U+21E9 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇪ U+21EA | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇫ U+21EB | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇬ U+21EC | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇭ U+21ED | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇮ U+21EE | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇯ U+21EF | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇰ U+21F0 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇳ U+21F3 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇴ U+21F4 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇵ U+21F5 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇶ U+21F6 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇷ U+21F7 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇸ U+21F8 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇹ U+21F9 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇺ U+21FA | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇻ U+21FB | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇼ U+21FC | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇽ U+21FD | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇾ U+21FE | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⇿ U+21FF | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
➔ U+2794 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
➙ U+2799 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
➛ U+279B | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
➜ U+279C | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
➝ U+279D | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
➞ U+279E | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
➟ U+279F | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
➠ U+27A0 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
➡ U+27A1 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
➥ U+27A5 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
➦ U+27A6 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
➨ U+27A8 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
➩ U+27A9 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
➪ U+27AA | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
➫ U+27AB | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
➬ U+27AC | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
➭ U+27AD | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
➮ U+27AE | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
➯ U+27AF | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
➱ U+27B1 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
➳ U+27B3 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
➵ U+27B5 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
➸ U+27B8 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
➺ U+27BA | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
➻ U+27BB | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
➼ U+27BC | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
➽ U+27BD | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
➾ U+27BE | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⟰ U+27F0 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⟱ U+27F1 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⟴ U+27F4 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⟵ U+27F5 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⟶ U+27F6 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⟷ U+27F7 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⟸ U+27F8 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⟹ U+27F9 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⟺ U+27FA | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⟻ U+27FB | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⟼ U+27FC | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⟽ U+27FD | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⟾ U+27FE | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⟿ U+27FF | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤀ U+2900 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤁ U+2901 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤂ U+2902 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤃ U+2903 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤄ U+2904 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤅ U+2905 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤆ U+2906 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤇ U+2907 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤈ U+2908 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤉ U+2909 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤊ U+290A | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤋ U+290B | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤌ U+290C | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤍ U+290D | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤎ U+290E | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤏ U+290F | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤐ U+2910 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤑ U+2911 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤒ U+2912 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤓ U+2913 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤔ U+2914 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤕ U+2915 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤖ U+2916 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤗ U+2917 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤘ U+2918 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤙ U+2919 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤚ U+291A | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤛ U+291B | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤜ U+291C | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤝ U+291D | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤞ U+291E | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤟ U+291F | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤠ U+2920 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤴ U+2934 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤵ U+2935 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤶ U+2936 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⤷ U+2937 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥂ U+2942 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥃ U+2943 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥄ U+2944 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥅ U+2945 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥆ U+2946 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥇ U+2947 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥈ U+2948 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥉ U+2949 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥊ U+294A | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥋ U+294B | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥌ U+294C | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥍ U+294D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥎ U+294E | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥏ U+294F | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥐ U+2950 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥑ U+2951 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥒ U+2952 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥓ U+2953 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥔ U+2954 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥕ U+2955 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥖ U+2956 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥗ U+2957 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥘ U+2958 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥙ U+2959 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥚ U+295A | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥛ U+295B | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥜ U+295C | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥝ U+295D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥞ U+295E | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥟ U+295F | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥠ U+2960 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥡ U+2961 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥢ U+2962 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥣ U+2963 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥤ U+2964 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥥ U+2965 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥦ U+2966 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥧ U+2967 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥨ U+2968 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥩ U+2969 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥪ U+296A | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥫ U+296B | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥬ U+296C | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥭ U+296D | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥮ U+296E | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥯ U+296F | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥰ U+2970 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥱ U+2971 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥲ U+2972 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥳ U+2973 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥴ U+2974 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥵ U+2975 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥼ U+297C | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥽ U+297D | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥾ U+297E | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⥿ U+297F | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⬄ U+2B04 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⬅ U+2B05 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⬆ U+2B06 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⬇ U+2B07 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⬌ U+2B0C | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⬍ U+2B0D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⬎ U+2B0E | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⬏ U+2B0F | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⬐ U+2B10 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⬑ U+2B11 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⬰ U+2B30 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⬱ U+2B31 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⬲ U+2B32 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⬳ U+2B33 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⬴ U+2B34 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⬵ U+2B35 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⬶ U+2B36 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⬷ U+2B37 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⬸ U+2B38 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⬹ U+2B39 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⬺ U+2B3A | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⬻ U+2B3B | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⬼ U+2B3C | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⬽ U+2B3D | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⬾ U+2B3E | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭀ U+2B40 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭁ U+2B41 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭂ U+2B42 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭃ U+2B43 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭄ U+2B44 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭅ U+2B45 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭆ U+2B46 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭇ U+2B47 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭈ U+2B48 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭉ U+2B49 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭊ U+2B4A | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭋ U+2B4B | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭌ U+2B4C | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭠ U+2B60 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭡ U+2B61 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭢ U+2B62 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭣ U+2B63 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭤ U+2B64 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭥ U+2B65 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭪ U+2B6A | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭫ U+2B6B | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭬ U+2B6C | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭭ U+2B6D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭰ U+2B70 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭱ U+2B71 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭲ U+2B72 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭳ U+2B73 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭺ U+2B7A | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭻ U+2B7B | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭼ U+2B7C | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⭽ U+2B7D | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⮀ U+2B80 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⮁ U+2B81 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⮂ U+2B82 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⮃ U+2B83 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⮄ U+2B84 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⮅ U+2B85 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⮆ U+2B86 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⮇ U+2B87 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⮕ U+2B95 | inline |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⮠ U+2BA0 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⮡ U+2BA1 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⮢ U+2BA2 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⮣ U+2BA3 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⮤ U+2BA4 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⮥ U+2BA5 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⮦ U+2BA6 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⮧ U+2BA7 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⮨ U+2BA8 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⮩ U+2BA9 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⮪ U+2BAA | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⮫ U+2BAB | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⮬ U+2BAC | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⮭ U+2BAD | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⮮ U+2BAE | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⮯ U+2BAF | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
⮸ U+2BB8 | block |
infix
|
0.2777777777777778em
|
0.2777777777777778em
| stretchy |
+ U+002B | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
- U+002D | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
± U+00B1 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
÷ U+00F7 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⁄ U+2044 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
− U+2212 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
∓ U+2213 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
∔ U+2214 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
∕ U+2215 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
∖ U+2216 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
∧ U+2227 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
∨ U+2228 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
∩ U+2229 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
∪ U+222A | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
∶ U+2236 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
∸ U+2238 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⊌ U+228C | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⊍ U+228D | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⊎ U+228E | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⊓ U+2293 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⊔ U+2294 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⊕ U+2295 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⊖ U+2296 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⊘ U+2298 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⊝ U+229D | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⊞ U+229E | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⊟ U+229F | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⊻ U+22BB | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⊼ U+22BC | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⊽ U+22BD | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⋎ U+22CE | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⋏ U+22CF | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⋒ U+22D2 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⋓ U+22D3 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
➕ U+2795 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
➖ U+2796 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
➗ U+2797 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⦸ U+29B8 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⦼ U+29BC | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⧄ U+29C4 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⧅ U+29C5 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⧵ U+29F5 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⧶ U+29F6 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⧷ U+29F7 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⧸ U+29F8 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⧹ U+29F9 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⧺ U+29FA | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⧻ U+29FB | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⨟ U+2A1F | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⨠ U+2A20 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⨡ U+2A21 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⨢ U+2A22 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⨣ U+2A23 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⨤ U+2A24 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⨥ U+2A25 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⨦ U+2A26 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⨧ U+2A27 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⨨ U+2A28 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⨩ U+2A29 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⨪ U+2A2A | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⨫ U+2A2B | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⨬ U+2A2C | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⨭ U+2A2D | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⨮ U+2A2E | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⨸ U+2A38 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⨹ U+2A39 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⨺ U+2A3A | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⨾ U+2A3E | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩀ U+2A40 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩁ U+2A41 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩂ U+2A42 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩃ U+2A43 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩄ U+2A44 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩅ U+2A45 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩆ U+2A46 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩇ U+2A47 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩈ U+2A48 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩉ U+2A49 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩊ U+2A4A | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩋ U+2A4B | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩌ U+2A4C | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩍ U+2A4D | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩎ U+2A4E | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩏ U+2A4F | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩑ U+2A51 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩒ U+2A52 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩓ U+2A53 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩔ U+2A54 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩕ U+2A55 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩖ U+2A56 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩗ U+2A57 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩘ U+2A58 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩙ U+2A59 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩚ U+2A5A | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩛ U+2A5B | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩜ U+2A5C | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩝ U+2A5D | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩞ U+2A5E | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩟ U+2A5F | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩠ U+2A60 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩡ U+2A61 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩢ U+2A62 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⩣ U+2A63 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⫛ U+2ADB | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⫶ U+2AF6 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⫻ U+2AFB | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
⫽ U+2AFD | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
String && U+0026 U+0026 | block |
infix
|
0.2222222222222222em
|
0.2222222222222222em
| N/A |
% U+0025 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
* U+002A | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
. U+002E | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
? U+003F | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
@ U+0040 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
^ U+005E | inline |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
· U+00B7 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
× U+00D7 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
• U+2022 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⁃ U+2043 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
∗ U+2217 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
∘ U+2218 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
∙ U+2219 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
≀ U+2240 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⊗ U+2297 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⊙ U+2299 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⊚ U+229A | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⊛ U+229B | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⊠ U+22A0 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⊡ U+22A1 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⊺ U+22BA | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⋄ U+22C4 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⋅ U+22C5 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⋆ U+22C6 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⋇ U+22C7 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⋉ U+22C9 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⋊ U+22CA | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⋋ U+22CB | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⋌ U+22CC | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⌅ U+2305 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⌆ U+2306 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⟋ U+27CB | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⟍ U+27CD | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⧆ U+29C6 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⧇ U+29C7 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⧈ U+29C8 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⧔ U+29D4 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⧕ U+29D5 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⧖ U+29D6 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⧗ U+29D7 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⧢ U+29E2 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⨝ U+2A1D | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⨞ U+2A1E | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⨯ U+2A2F | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⨰ U+2A30 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⨱ U+2A31 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⨲ U+2A32 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⨳ U+2A33 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⨴ U+2A34 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⨵ U+2A35 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⨶ U+2A36 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⨷ U+2A37 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⨻ U+2A3B | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⨼ U+2A3C | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⨽ U+2A3D | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⨿ U+2A3F | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⩐ U+2A50 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⩤ U+2A64 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⩥ U+2A65 | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⫝̸ U+2ADC | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⫝ U+2ADD | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
⫾ U+2AFE | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
String ** U+002A U+002A | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
String <> U+003C U+003E | block |
infix
|
0.16666666666666666em
|
0.16666666666666666em
| N/A |
! U+0021 | block |
prefix
|
0
|
0
| N/A |
+ U+002B | block |
prefix
|
0
|
0
| N/A |
- U+002D | block |
prefix
|
0
|
0
| N/A |
¬ U+00AC | block |
prefix
|
0
|
0
| N/A |
± U+00B1 | block |
prefix
|
0
|
0
| N/A |
‘ U+2018 | block |
prefix
|
0
|
0
| fence |
“ U+201C | block |
prefix
|
0
|
0
| fence |
∀ U+2200 | block |
prefix
|
0
|
0
| N/A |
∁ U+2201 | block |
prefix
|
0
|
0
| N/A |
∃ U+2203 | block |
prefix
|
0
|
0
| N/A |
∄ U+2204 | block |
prefix
|
0
|
0
| N/A |
∇ U+2207 | block |
prefix
|
0
|
0
| N/A |
− U+2212 | block |
prefix
|
0
|
0
| N/A |
∓ U+2213 | block |
prefix
|
0
|
0
| N/A |
∟ U+221F | block |
prefix
|
0
|
0
| N/A |
∠ U+2220 | block |
prefix
|
0
|
0
| N/A |
∡ U+2221 | block |
prefix
|
0
|
0
| N/A |
∢ U+2222 | block |
prefix
|
0
|
0
| N/A |
∴ U+2234 | block |
prefix
|
0
|
0
| N/A |
∵ U+2235 | block |
prefix
|
0
|
0
| N/A |
∼ U+223C | block |
prefix
|
0
|
0
| N/A |
⊾ U+22BE | block |
prefix
|
0
|
0
| N/A |
⊿ U+22BF | block |
prefix
|
0
|
0
| N/A |
⌐ U+2310 | block |
prefix
|
0
|
0
| N/A |
⌙ U+2319 | block |
prefix
|
0
|
0
| N/A |
➕ U+2795 | block |
prefix
|
0
|
0
| N/A |
➖ U+2796 | block |
prefix
|
0
|
0
| N/A |
⟀ U+27C0 | block |
prefix
|
0
|
0
| N/A |
⦛ U+299B | block |
prefix
|
0
|
0
| N/A |
⦜ U+299C | block |
prefix
|
0
|
0
| N/A |
⦝ U+299D | block |
prefix
|
0
|
0
| N/A |
⦞ U+299E | block |
prefix
|
0
|
0
| N/A |
⦟ U+299F | block |
prefix
|
0
|
0
| N/A |
⦠ U+29A0 | block |
prefix
|
0
|
0
| N/A |
⦡ U+29A1 | block |
prefix
|
0
|
0
| N/A |
⦢ U+29A2 | block |
prefix
|
0
|
0
| N/A |
⦣ U+29A3 | block |
prefix
|
0
|
0
| N/A |
⦤ U+29A4 | block |
prefix
|
0
|
0
| N/A |
⦥ U+29A5 | block |
prefix
|
0
|
0
| N/A |
⦦ U+29A6 | block |
prefix
|
0
|
0
| N/A |
⦧ U+29A7 | block |
prefix
|
0
|
0
| N/A |
⦨ U+29A8 | block |
prefix
|
0
|
0
| N/A |
⦩ U+29A9 | block |
prefix
|
0
|
0
| N/A |
⦪ U+29AA | block |
prefix
|
0
|
0
| N/A |
⦫ U+29AB | block |
prefix
|
0
|
0
| N/A |
⦬ U+29AC | block |
prefix
|
0
|
0
| N/A |
⦭ U+29AD | block |
prefix
|
0
|
0
| N/A |
⦮ U+29AE | block |
prefix
|
0
|
0
| N/A |
⦯ U+29AF | block |
prefix
|
0
|
0
| N/A |
⫬ U+2AEC | block |
prefix
|
0
|
0
| N/A |
⫭ U+2AED | block |
prefix
|
0
|
0
| N/A |
String || U+007C U+007C | block |
prefix
|
0
|
0
| fence |
! U+0021 | block |
postfix
|
0
|
0
| N/A |
" U+0022 | block |
postfix
|
0
|
0
| N/A |
% U+0025 | block |
postfix
|
0
|
0
| N/A |
& U+0026 | block |
postfix
|
0
|
0
| N/A |
' U+0027 | block |
postfix
|
0
|
0
| N/A |
` U+0060 | block |
postfix
|
0
|
0
| N/A |
¨ U+00A8 | block |
postfix
|
0
|
0
| N/A |
° U+00B0 | block |
postfix
|
0
|
0
| N/A |
² U+00B2 | block |
postfix
|
0
|
0
| N/A |
³ U+00B3 | block |
postfix
|
0
|
0
| N/A |
´ U+00B4 | block |
postfix
|
0
|
0
| N/A |
¸ U+00B8 | block |
postfix
|
0
|
0
| N/A |
¹ U+00B9 | block |
postfix
|
0
|
0
| N/A |
ˊ U+02CA | block |
postfix
|
0
|
0
| N/A |
ˋ U+02CB | block |
postfix
|
0
|
0
| N/A |
˘ U+02D8 | block |
postfix
|
0
|
0
| N/A |
˙ U+02D9 | block |
postfix
|
0
|
0
| N/A |
˚ U+02DA | block |
postfix
|
0
|
0
| N/A |
˝ U+02DD | block |
postfix
|
0
|
0
| N/A |
̑ U+0311 | block |
postfix
|
0
|
0
| N/A |
’ U+2019 | block |
postfix
|
0
|
0
| fence |
‚ U+201A | block |
postfix
|
0
|
0
| N/A |
‛ U+201B | block |
postfix
|
0
|
0
| N/A |
” U+201D | block |
postfix
|
0
|
0
| fence |
„ U+201E | block |
postfix
|
0
|
0
| N/A |
‟ U+201F | block |
postfix
|
0
|
0
| N/A |
′ U+2032 | block |
postfix
|
0
|
0
| N/A |
″ U+2033 | block |
postfix
|
0
|
0
| N/A |
‴ U+2034 | block |
postfix
|
0
|
0
| N/A |
‵ U+2035 | block |
postfix
|
0
|
0
| N/A |
‶ U+2036 | block |
postfix
|
0
|
0
| N/A |
‷ U+2037 | block |
postfix
|
0
|
0
| N/A |
⁗ U+2057 | block |
postfix
|
0
|
0
| N/A |
⃛ U+20DB | block |
postfix
|
0
|
0
| N/A |
⃜ U+20DC | block |
postfix
|
0
|
0
| N/A |
⏍ U+23CD | block |
postfix
|
0
|
0
| N/A |
String !! U+0021 U+0021 | block |
postfix
|
0
|
0
| N/A |
String ++ U+002B U+002B | block |
postfix
|
0
|
0
| N/A |
String -- U+002D U+002D | block |
postfix
|
0
|
0
| N/A |
String || U+007C U+007C | block |
postfix
|
0
|
0
| fence |
( U+0028 | block |
prefix
|
0
|
0
| stretchy symmetric fence |
[ U+005B | block |
prefix
|
0
|
0
| stretchy symmetric fence |
{ U+007B | block |
prefix
|
0
|
0
| stretchy symmetric fence |
| U+007C | block |
prefix
|
0
|
0
| stretchy symmetric fence |
‖ U+2016 | block |
prefix
|
0
|
0
| stretchy symmetric fence |
⌈ U+2308 | block |
prefix
|
0
|
0
| stretchy symmetric fence |
⌊ U+230A | block |
prefix
|
0
|
0
| stretchy symmetric fence |
〈 U+2329 | block |
prefix
|
0
|
0
| stretchy symmetric fence |
❲ U+2772 | block |
prefix
|
0
|
0
| stretchy symmetric fence |
⟦ U+27E6 | block |
prefix
|
0
|
0
| stretchy symmetric fence |
⟨ U+27E8 | block |
prefix
|
0
|
0
| stretchy symmetric fence |
⟪ U+27EA | block |
prefix
|
0
|
0
| stretchy symmetric fence |
⟬ U+27EC | block |
prefix
|
0
|
0
| stretchy symmetric fence |
⟮ U+27EE | block |
prefix
|
0
|
0
| stretchy symmetric fence |
⦀ U+2980 | block |
prefix
|
0
|
0
| stretchy symmetric fence |
⦃ U+2983 | block |
prefix
|
0
|
0
| stretchy symmetric fence |
⦅ U+2985 | block |
prefix
|
0
|
0
| stretchy symmetric fence |
⦇ U+2987 | block |
prefix
|
0
|
0
| stretchy symmetric fence |
⦉ U+2989 | block |
prefix
|
0
|
0
| stretchy symmetric fence |
⦋ U+298B | block |
prefix
|
0
|
0
| stretchy symmetric fence |
⦍ U+298D | block |
prefix
|
0
|
0
| stretchy symmetric fence |
⦏ U+298F | block |
prefix
|
0
|
0
| stretchy symmetric fence |
⦑ U+2991 | block |
prefix
|
0
|
0
| stretchy symmetric fence |
⦓ U+2993 | block |
prefix
|
0
|
0
| stretchy symmetric fence |
⦕ U+2995 | block |
prefix
|
0
|
0
| stretchy symmetric fence |
⦗ U+2997 | block |
prefix
|
0
|
0
| stretchy symmetric fence |
⦙ U+2999 | block |
prefix
|
0
|
0
| stretchy symmetric fence |
⧘ U+29D8 | block |
prefix
|
0
|
0
| stretchy symmetric fence |
⧚ U+29DA | block |
prefix
|
0
|
0
| stretchy symmetric fence |
⧼ U+29FC | block |
prefix
|
0
|
0
| stretchy symmetric fence |
) U+0029 | block |
postfix
|
0
|
0
| stretchy symmetric fence |
] U+005D | block |
postfix
|
0
|
0
| stretchy symmetric fence |
| U+007C | block |
postfix
|
0
|
0
| stretchy symmetric fence |
} U+007D | block |
postfix
|
0
|
0
| stretchy symmetric fence |
‖ U+2016 | block |
postfix
|
0
|
0
| stretchy symmetric fence |
⌉ U+2309 | block |
postfix
|
0
|
0
| stretchy symmetric fence |
⌋ U+230B | block |
postfix
|
0
|
0
| stretchy symmetric fence |
〉 U+232A | block |
postfix
|
0
|
0
| stretchy symmetric fence |
❳ U+2773 | block |
postfix
|
0
|
0
| stretchy symmetric fence |
⟧ U+27E7 | block |
postfix
|
0
|
0
| stretchy symmetric fence |
⟩ U+27E9 | block |
postfix
|
0
|
0
| stretchy symmetric fence |
⟫ U+27EB | block |
postfix
|
0
|
0
| stretchy symmetric fence |
⟭ U+27ED | block |
postfix
|
0
|
0
| stretchy symmetric fence |
⟯ U+27EF | block |
postfix
|
0
|
0
| stretchy symmetric fence |
⦀ U+2980 | block |
postfix
|
0
|
0
| stretchy symmetric fence |
⦄ U+2984 | block |
postfix
|
0
|
0
| stretchy symmetric fence |
⦆ U+2986 | block |
postfix
|
0
|
0
| stretchy symmetric fence |
⦈ U+2988 | block |
postfix
|
0
|
0
| stretchy symmetric fence |
⦊ U+298A | block |
postfix
|
0
|
0
| stretchy symmetric fence |
⦌ U+298C | block |
postfix
|
0
|
0
| stretchy symmetric fence |
⦎ U+298E | block |
postfix
|
0
|
0
| stretchy symmetric fence |
⦐ U+2990 | block |
postfix
|
0
|
0
| stretchy symmetric fence |
⦒ U+2992 | block |
postfix
|
0
|
0
| stretchy symmetric fence |
⦔ U+2994 | block |
postfix
|
0
|
0
| stretchy symmetric fence |
⦖ U+2996 | block |
postfix
|
0
|
0
| stretchy symmetric fence |
⦘ U+2998 | block |
postfix
|
0
|
0
| stretchy symmetric fence |
⦙ U+2999 | block |
postfix
|
0
|
0
| stretchy symmetric fence |
⧙ U+29D9 | block |
postfix
|
0
|
0
| stretchy symmetric fence |
⧛ U+29DB | block |
postfix
|
0
|
0
| stretchy symmetric fence |
⧽ U+29FD | block |
postfix
|
0
|
0
| stretchy symmetric fence |
∫ U+222B | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop |
∬ U+222C | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop |
∭ U+222D | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop |
∮ U+222E | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop |
∯ U+222F | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop |
∰ U+2230 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop |
∱ U+2231 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop |
∲ U+2232 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop |
∳ U+2233 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop |
⨋ U+2A0B | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop |
⨌ U+2A0C | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop |
⨍ U+2A0D | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop |
⨎ U+2A0E | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop |
⨏ U+2A0F | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop |
⨐ U+2A10 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop |
⨑ U+2A11 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop |
⨒ U+2A12 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop |
⨓ U+2A13 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop |
⨔ U+2A14 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop |
⨕ U+2A15 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop |
⨖ U+2A16 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop |
⨗ U+2A17 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop |
⨘ U+2A18 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop |
⨙ U+2A19 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop |
⨚ U+2A1A | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop |
⨛ U+2A1B | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop |
⨜ U+2A1C | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop |
^ U+005E | inline |
postfix
|
0
|
0
| stretchy |
_ U+005F | inline |
postfix
|
0
|
0
| stretchy |
~ U+007E | inline |
postfix
|
0
|
0
| stretchy |
¯ U+00AF | inline |
postfix
|
0
|
0
| stretchy |
ˆ U+02C6 | inline |
postfix
|
0
|
0
| stretchy |
ˇ U+02C7 | inline |
postfix
|
0
|
0
| stretchy |
ˉ U+02C9 | inline |
postfix
|
0
|
0
| stretchy |
ˍ U+02CD | inline |
postfix
|
0
|
0
| stretchy |
˜ U+02DC | inline |
postfix
|
0
|
0
| stretchy |
˷ U+02F7 | inline |
postfix
|
0
|
0
| stretchy |
̂ U+0302 | inline |
postfix
|
0
|
0
| stretchy |
‾ U+203E | inline |
postfix
|
0
|
0
| stretchy |
⌢ U+2322 | inline |
postfix
|
0
|
0
| stretchy |
⌣ U+2323 | inline |
postfix
|
0
|
0
| stretchy |
⎴ U+23B4 | inline |
postfix
|
0
|
0
| stretchy |
⎵ U+23B5 | inline |
postfix
|
0
|
0
| stretchy |
⏜ U+23DC | inline |
postfix
|
0
|
0
| stretchy |
⏝ U+23DD | inline |
postfix
|
0
|
0
| stretchy |
⏞ U+23DE | inline |
postfix
|
0
|
0
| stretchy |
⏟ U+23DF | inline |
postfix
|
0
|
0
| stretchy |
⏠ U+23E0 | inline |
postfix
|
0
|
0
| stretchy |
⏡ U+23E1 | inline |
postfix
|
0
|
0
| stretchy |
𞻰 U+1EEF0 | inline |
postfix
|
0
|
0
| stretchy |
𞻱 U+1EEF1 | inline |
postfix
|
0
|
0
| stretchy |
∏ U+220F | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop movablelimits |
∐ U+2210 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop movablelimits |
∑ U+2211 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop movablelimits |
⋀ U+22C0 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop movablelimits |
⋁ U+22C1 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop movablelimits |
⋂ U+22C2 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop movablelimits |
⋃ U+22C3 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop movablelimits |
⨀ U+2A00 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop movablelimits |
⨁ U+2A01 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop movablelimits |
⨂ U+2A02 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop movablelimits |
⨃ U+2A03 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop movablelimits |
⨄ U+2A04 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop movablelimits |
⨅ U+2A05 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop movablelimits |
⨆ U+2A06 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop movablelimits |
⨇ U+2A07 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop movablelimits |
⨈ U+2A08 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop movablelimits |
⨉ U+2A09 | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop movablelimits |
⨊ U+2A0A | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop movablelimits |
⨝ U+2A1D | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop movablelimits |
⨞ U+2A1E | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop movablelimits |
⫼ U+2AFC | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop movablelimits |
⫿ U+2AFF | block |
prefix
|
0.16666666666666666em
|
0.16666666666666666em
| symmetric largeop movablelimits |
/ U+002F | block |
infix
|
0
|
0
| N/A |
\ U+005C | block |
infix
|
0
|
0
| N/A |
_ U+005F | inline |
infix
|
0
|
0
| N/A |
U+2061 | block |
infix
|
0
|
0
| N/A |
U+2062 | block |
infix
|
0
|
0
| N/A |
U+2063 | block |
infix
|
0
|
0
| separator |
U+2064 | block |
infix
|
0
|
0
| N/A |
∆ U+2206 | block |
infix
|
0
|
0
| N/A |
ⅅ U+2145 | block |
prefix
|
0.16666666666666666em
|
0
| N/A |
ⅆ U+2146 | block |
prefix
|
0.16666666666666666em
|
0
| N/A |
∂ U+2202 | block |
prefix
|
0.16666666666666666em
|
0
| N/A |
√ U+221A | block |
prefix
|
0.16666666666666666em
|
0
| N/A |
∛ U+221B | block |
prefix
|
0.16666666666666666em
|
0
| N/A |
∜ U+221C | block |
prefix
|
0.16666666666666666em
|
0
| N/A |
, U+002C | block |
infix
|
0
|
0.16666666666666666em
| separator |
: U+003A | block |
infix
|
0
|
0.16666666666666666em
| N/A |
; U+003B | block |
infix
|
0
|
0.16666666666666666em
| separator |
This section is non-normative.
The following table gives mappings between spacing and non spacing characters when used in MathML accent constructs.
Non Combining | Style | Combining | ||
---|---|---|---|---|
U+002B | plus sign | below | U+031F | combining plus sign below |
U+002D | hyphen-minus | above | U+0305 | combining overline |
U+002D | hyphen-minus | below | U+0320 | combining minus sign below |
U+002D | hyphen-minus | below | U+0332 | combining low line |
U+002E | full stop | above | U+0307 | combining dot above |
U+002E | full stop | below | U+0323 | combining dot below |
U+005E | circumflex accent | above | U+0302 | combining circumflex accent |
U+005E | circumflex accent | below | U+032D | combining circumflex accent below |
U+005F | low line | below | U+0332 | combining low line |
U+0060 | grave accent | above | U+0300 | combining grave accent |
U+0060 | grave accent | below | U+0316 | combining grave accent below |
U+007E | tilde | above | U+0303 | combining tilde |
U+007E | tilde | below | U+0330 | combining tilde below |
U+00A8 | diaeresis | above | U+0308 | combining diaeresis |
U+00A8 | diaeresis | below | U+0324 | combining diaeresis below |
U+00AF | macron | above | U+0304 | combining macron |
U+00AF | macron | above | U+0305 | combining overline |
U+00B4 | acute accent | above | U+0301 | combining acute accent |
U+00B4 | acute accent | below | U+0317 | combining acute accent below |
U+00B8 | cedilla | below | U+0327 | combining cedilla |
U+02C6 | modifier letter circumflex accent | above | U+0302 | combining circumflex accent |
U+02C7 | caron | above | U+030C | combining caron |
U+02C7 | caron | below | U+032C | combining caron below |
U+02D8 | breve | above | U+0306 | combining breve |
U+02D8 | breve | below | U+032E | combining breve below |
U+02D9 | dot above | above | U+0307 | combining dot above |
U+02D9 | dot above | below | U+0323 | combining dot below |
U+02DB | ogonek | below | U+0328 | combining ogonek |
U+02DC | small tilde | above | U+0303 | combining tilde |
U+02DC | small tilde | below | U+0330 | combining tilde below |
U+02DD | double acute accent | above | U+030B | combining double acute accent |
U+203E | overline | above | U+0305 | combining overline |
U+2190 | leftwards arrow | above | U+20D6 | |
U+2192 | rightwards arrow | above | U+20D7 | combining right arrow above |
U+2192 | rightwards arrow | above | U+20EF | combining right arrow below |
U+2212 | minus sign | above | U+0305 | combining overline |
U+2212 | minus sign | below | U+0332 | combining low line |
U+27F6 | long rightwards arrow | above | U+20D7 | combining right arrow above |
U+27F6 | long rightwards arrow | above | U+20EF | combining right arrow below |
Combining | Style | Non Combining | ||
---|---|---|---|---|
U+0300 | combining grave accent | above | U+0060 | grave accent |
U+0301 | combining acute accent | above | U+00B4 | acute accent |
U+0302 | combining circumflex accent | above | U+005E | circumflex accent |
U+0302 | combining circumflex accent | above | U+02C6 | modifier letter circumflex accent |
U+0303 | combining tilde | above | U+007E | tilde |
U+0303 | combining tilde | above | U+02DC | small tilde |
U+0304 | combining macron | above | U+00AF | macron |
U+0305 | combining overline | above | U+002D | hyphen-minus |
U+0305 | combining overline | above | U+00AF | macron |
U+0305 | combining overline | above | U+203E | overline |
U+0305 | combining overline | above | U+2212 | minus sign |
U+0306 | combining breve | above | U+02D8 | breve |
U+0307 | combining dot above | above | U+02E | |
U+0307 | combining dot above | above | U+002E | full stop |
U+0307 | combining dot above | above | U+02D9 | dot above |
U+0308 | combining diaeresis | above | U+00A8 | diaeresis |
U+030B | combining double acute accent | above | U+02DD | double acute accent |
U+030C | combining caron | above | U+02C7 | caron |
U+0312 | combining turned comma above | above | U+0B8 | |
U+0316 | combining grave accent below | below | U+0060 | grave accent |
U+0317 | combining acute accent below | below | U+00B4 | acute accent |
U+031F | combining plus sign below | below | U+002B | plus sign |
U+0320 | combining minus sign below | below | U+002D | hyphen-minus |
U+0323 | combining dot below | below | U+002E | full stop |
U+0323 | combining dot below | below | U+02D9 | dot above |
U+0324 | combining diaeresis below | below | U+00A8 | diaeresis |
U+0327 | combining cedilla | below | U+00B8 | cedilla |
U+0328 | combining ogonek | below | U+02DB | ogonek |
U+032C | combining caron below | below | U+02C7 | caron |
U+032D | combining circumflex accent below | below | U+005E | circumflex accent |
U+032E | combining breve below | below | U+02D8 | breve |
U+0330 | combining tilde below | below | U+007E | tilde |
U+0330 | combining tilde below | below | U+02DC | small tilde |
U+0332 | combining low line | below | U+002D | hyphen-minus |
U+0332 | combining low line | below | U+005F | low line |
U+0332 | combining low line | below | U+2212 | minus sign |
U+0338 | combining long solidus overlay | over | U+02F | |
U+20D7 | combining right arrow above | above | U+2192 | rightwards arrow |
U+20D7 | combining right arrow above | above | U+27F6 | long rightwards arrow |
U+20EF | combining right arrow below | above | U+2192 | rightwards arrow |
U+20EF | combining right arrow below | above | U+27F6 | long rightwards arrow |
This section is non-normative.
The
following
table
provides
fallback
that
user
agents
may
use
for
stretching
a
given
base
character
when
the
font
does
not
provide
a
MATH.MathVariants
table.
The
algorithms
of
5.3
Size
variants
for
operators
(
MathVariants
)
work
the
same
except
with
some
adjustments:
MathVariants.horizGlyphConstructionOffsets[]
item;
if
it
is
vertical
it
corresponds
to
a
MathVariants.vertGlyphConstructionOffsets[]
item.
MathGlyphConstruction.mathGlyphVariantRecord
is
always
empty.
MathVariants.minConnectorOverlap
,
GlyphPartRecord.startConnectorLength
and
GlyphPartRecord.endConnectorLength
are
treated
as
0.
MathGlyphConstruction.GlyphAssembly.partRecords
is
built
from
each
table
row
as
follows:
Base Character | Glyph Construction | Extender Character | Bottom/Left Character | Middle Character | Top/Right Character |
---|---|---|---|---|---|
U+0028 ( | Vertical | U+239C ⎜ | U+239D ⎝ | N/A | U+239B ⎛ |
U+0029 ) | Vertical | U+239F ⎟ | U+23A0 ⎠ | N/A | U+239E ⎞ |
U+003D = | Horizontal | U+003D = | U+003D = | N/A | N/A |
U+005B [ | Vertical | U+23A2 ⎢ | U+23A3 ⎣ | N/A | U+23A1 ⎡ |
U+005D ] | Vertical | U+23A5 ⎥ | U+23A6 ⎦ | N/A | U+23A4 ⎤ |
U+005F _ | Horizontal | U+005F _ | U+005F _ | N/A | N/A |
U+007B { | Vertical | U+23AA ⎪ | U+23A9 ⎩ | U+23A8 ⎨ | U+23A7 ⎧ |
U+007C | | Vertical | U+007C | | U+007C | | N/A | N/A |
U+007D } | Vertical | U+23AA ⎪ | U+23AD ⎭ | U+23AC ⎬ | U+23AB ⎫ |
U+00AF ¯ | Horizontal | U+00AF ¯ | U+00AF ¯ | N/A | N/A |
U+2016 ‖ | Vertical | U+2016 ‖ | U+2016 ‖ | N/A | N/A |
U+203E ‾ | Horizontal | U+203E ‾ | U+203E ‾ | N/A | N/A |
U+2190 ← | Horizontal | U+23AF ⎯ | U+2190 ← | N/A | U+23AF ⎯ |
U+2191 ↑ | Vertical | U+23D0 ⏐ | U+23D0 ⏐ | N/A | U+2191 ↑ |
U+2192 → | Horizontal | U+23AF ⎯ | U+23AF ⎯ | N/A | U+2192 → |
U+2193 ↓ | Vertical | U+23D0 ⏐ | U+2193 ↓ | N/A | U+23D0 ⏐ |
U+2194 ↔ | Horizontal | U+23AF ⎯ | U+2190 ← | N/A | U+2192 → |
U+2195 ↕ | Vertical | U+23D0 ⏐ | U+2193 ↓ | N/A | U+2191 ↑ |
U+21A4 ↤ | Horizontal | U+23AF ⎯ | U+2190 ← | N/A | U+22A3 ⊣ |
U+21A6 ↦ | Horizontal | U+23AF ⎯ | U+22A2 ⊢ | N/A | U+2192 → |
U+21BC ↼ | Horizontal | U+23AF ⎯ | U+21BC ↼ | N/A | U+23AF ⎯ |
U+21BD ↽ | Horizontal | U+23AF ⎯ | U+21BD ↽ | N/A | U+23AF ⎯ |
U+21C0 ⇀ | Horizontal | U+23AF ⎯ | U+23AF ⎯ | N/A | U+21C0 ⇀ |
U+21C1 ⇁ | Horizontal | U+23AF ⎯ | U+23AF ⎯ | N/A | U+21C1 ⇁ |
U+2223 ∣ | Vertical | U+2223 ∣ | U+2223 ∣ | N/A | N/A |
U+2225 ∥ | Vertical | U+2225 ∥ | U+2225 ∥ | N/A | N/A |
U+2308 ⌈ | Vertical | U+23A2 ⎢ | U+23A2 ⎢ | N/A | U+23A1 ⎡ |
U+2309 ⌉ | Vertical | U+23A5 ⎥ | U+23A5 ⎥ | N/A | U+23A4 ⎤ |
U+230A ⌊ | Vertical | U+23A2 ⎢ | U+23A3 ⎣ | N/A | N/A |
U+230B ⌋ | Vertical | U+23A5 ⎥ | U+23A6 ⎦ | N/A | N/A |
U+23B0 ⎰ | Vertical | U+23AA ⎪ | U+23AD ⎭ | N/A | U+23A7 ⎧ |
U+23B1 ⎱ | Vertical | U+23AA ⎪ | U+23A9 ⎩ | N/A | U+23AB ⎫ |
U+27F5 ⟵ | Horizontal | U+23AF ⎯ | U+2190 ← | N/A | U+23AF ⎯ |
U+27F6 ⟶ | Horizontal | U+23AF ⎯ | U+23AF ⎯ | N/A | U+2192 → |
U+27F7 ⟷ | Horizontal | U+23AF ⎯ | U+2190 ← | N/A | U+2192 → |
U+294E ⥎ | Horizontal | U+23AF ⎯ | U+21BC ↼ | N/A | U+21C0 ⇀ |
U+2950 ⥐ | Horizontal | U+23AF ⎯ | U+21BD ↽ | N/A | U+21C1 ⇁ |
U+295A ⥚ | Horizontal | U+23AF ⎯ | U+21BC ↼ | N/A | U+22A3 ⊣ |
U+295B ⥛ | Horizontal | U+23AF ⎯ | U+22A2 ⊢ | N/A | U+21C0 ⇀ |
U+295E ⥞ | Horizontal | U+23AF ⎯ | U+21BD ↽ | N/A | U+22A3 ⊣ |
U+295F ⥟ | Horizontal | U+23AF ⎯ | U+22A2 ⊢ | N/A | U+21C1 ⇁ |
This section is non-normative.
As detailed in [ xml-entity-names ] mathematical alphanumeric symbols with form bold, italic, fraktur, monospace, double-struck etc are available in Unicode.
These
alphanumeric
symbols
should
be
accessed
using
their
Unicode
code
points.
It
is
sometimes
needed
to
distinguish
between
Chancery
and
Roundhand
style
for
MATHEMATICAL
SCRIPT
characters.
These
are
notably
used
in
LaTeX
for
the
\mathcal
and
\mathscr
commands.
One
way
to
do
that
is
to
rely
on
Chapter
23.4
Variation
Selectors
of
Unicode
which
describes
a
way
to
specify
selection
of
particular
glyph
variants
[
UNICODE
].
Indeed,
the
StandardizedVariants.txt
file
from
the
Unicode
Character
Database
indicates
that
variant
selectors
U+FE00
and
U+FE01
can
be
used
on
capital
script
to
specify
Chancery
and
Roundhand
respectively.
salt
or
ssXY
properties
from
[
OPEN-FONT-FORMAT
]
to
provide
both
styles.
Page
authors
may
use
the
font-variant-alternates
property
with
corresponding
OpenType
font
features
to
access
these
glyphs.
In
addition,
the
italic
math
alphanumeric
characters
may
be
accessed
as
described
above
using
the
CSS
text-transform:
math-auto
transform
which
is
applied
by
default
to
single
character
<mi>
elements.
As
a
convenience
the
mapping
to
math
italic
is
shown
below.
Original | italic | Δ code point |
---|---|---|
A U+0041 | 𝐴 U+1D434 | 1D3F3 |
B U+0042 | 𝐵 U+1D435 | 1D3F3 |
C U+0043 | 𝐶 U+1D436 | 1D3F3 |
D U+0044 | 𝐷 U+1D437 | 1D3F3 |
E U+0045 | 𝐸 U+1D438 | 1D3F3 |
F U+0046 | 𝐹 U+1D439 | 1D3F3 |
G U+0047 | 𝐺 U+1D43A | 1D3F3 |
H U+0048 | 𝐻 U+1D43B | 1D3F3 |
I U+0049 | 𝐼 U+1D43C | 1D3F3 |
J U+004A | 𝐽 U+1D43D | 1D3F3 |
K U+004B | 𝐾 U+1D43E | 1D3F3 |
L U+004C | 𝐿 U+1D43F | 1D3F3 |
M U+004D | 𝑀 U+1D440 | 1D3F3 |
N U+004E | 𝑁 U+1D441 | 1D3F3 |
O U+004F | 𝑂 U+1D442 | 1D3F3 |
P U+0050 | 𝑃 U+1D443 | 1D3F3 |
Q U+0051 | 𝑄 U+1D444 | 1D3F3 |
R U+0052 | 𝑅 U+1D445 | 1D3F3 |
S U+0053 | 𝑆 U+1D446 | 1D3F3 |
T U+0054 | 𝑇 U+1D447 | 1D3F3 |
U U+0055 | 𝑈 U+1D448 | 1D3F3 |
V U+0056 | 𝑉 U+1D449 | 1D3F3 |
W U+0057 | 𝑊 U+1D44A | 1D3F3 |
X U+0058 | 𝑋 U+1D44B | 1D3F3 |
Y U+0059 | 𝑌 U+1D44C | 1D3F3 |
Z U+005A | 𝑍 U+1D44D | 1D3F3 |
a U+0061 | 𝑎 U+1D44E | 1D3ED |
b U+0062 | 𝑏 U+1D44F | 1D3ED |
c U+0063 | 𝑐 U+1D450 | 1D3ED |
d U+0064 | 𝑑 U+1D451 | 1D3ED |
e U+0065 | 𝑒 U+1D452 | 1D3ED |
f U+0066 | 𝑓 U+1D453 | 1D3ED |
g U+0067 | 𝑔 U+1D454 | 1D3ED |
h U+0068 | ℎ U+0210E | 20A6 |
i U+0069 | 𝑖 U+1D456 | 1D3ED |
j U+006A | 𝑗 U+1D457 | 1D3ED |
k U+006B | 𝑘 U+1D458 | 1D3ED |
l U+006C | 𝑙 U+1D459 | 1D3ED |
m U+006D | 𝑚 U+1D45A | 1D3ED |
n U+006E | 𝑛 U+1D45B | 1D3ED |
o U+006F | 𝑜 U+1D45C | 1D3ED |
p U+0070 | 𝑝 U+1D45D | 1D3ED |
q U+0071 | 𝑞 U+1D45E | 1D3ED |
r U+0072 | 𝑟 U+1D45F | 1D3ED |
s U+0073 | 𝑠 U+1D460 | 1D3ED |
t U+0074 | 𝑡 U+1D461 | 1D3ED |
u U+0075 | 𝑢 U+1D462 | 1D3ED |
v U+0076 | 𝑣 U+1D463 | 1D3ED |
w U+0077 | 𝑤 U+1D464 | 1D3ED |
x U+0078 | 𝑥 U+1D465 | 1D3ED |
y U+0079 | 𝑦 U+1D466 | 1D3ED |
z U+007A | 𝑧 U+1D467 | 1D3ED |
ı U+0131 | 𝚤 U+1D6A4 | 1D573 |
ȷ U+0237 | 𝚥 U+1D6A5 | 1D46E |
Α U+0391 | 𝛢 U+1D6E2 | 1D351 |
Β U+0392 | 𝛣 U+1D6E3 | 1D351 |
Γ U+0393 | 𝛤 U+1D6E4 | 1D351 |
Δ U+0394 | 𝛥 U+1D6E5 | 1D351 |
Ε U+0395 | 𝛦 U+1D6E6 | 1D351 |
Ζ U+0396 | 𝛧 U+1D6E7 | 1D351 |
Η U+0397 | 𝛨 U+1D6E8 | 1D351 |
Θ U+0398 | 𝛩 U+1D6E9 | 1D351 |
Ι U+0399 | 𝛪 U+1D6EA | 1D351 |
Κ U+039A | 𝛫 U+1D6EB | 1D351 |
Λ U+039B | 𝛬 U+1D6EC | 1D351 |
Μ U+039C | 𝛭 U+1D6ED | 1D351 |
Ν U+039D | 𝛮 U+1D6EE | 1D351 |
Ξ U+039E | 𝛯 U+1D6EF | 1D351 |
Ο U+039F | 𝛰 U+1D6F0 | 1D351 |
Π U+03A0 | 𝛱 U+1D6F1 | 1D351 |
Ρ U+03A1 | 𝛲 U+1D6F2 | 1D351 |
ϴ U+03F4 | 𝛳 U+1D6F3 | 1D2FF |
Σ U+03A3 | 𝛴 U+1D6F4 | 1D351 |
Τ U+03A4 | 𝛵 U+1D6F5 | 1D351 |
Υ U+03A5 | 𝛶 U+1D6F6 | 1D351 |
Φ U+03A6 | 𝛷 U+1D6F7 | 1D351 |
Χ U+03A7 | 𝛸 U+1D6F8 | 1D351 |
Ψ U+03A8 | 𝛹 U+1D6F9 | 1D351 |
Ω U+03A9 | 𝛺 U+1D6FA | 1D351 |
∇ U+2207 | 𝛻 U+1D6FB | 1B4F4 |
α U+03B1 | 𝛼 U+1D6FC | 1D34B |
β U+03B2 | 𝛽 U+1D6FD | 1D34B |
γ U+03B3 | 𝛾 U+1D6FE | 1D34B |
δ U+03B4 | 𝛿 U+1D6FF | 1D34B |
ε U+03B5 | 𝜀 U+1D700 | 1D34B |
ζ U+03B6 | 𝜁 U+1D701 | 1D34B |
η U+03B7 | 𝜂 U+1D702 | 1D34B |
θ U+03B8 | 𝜃 U+1D703 | 1D34B |
ι U+03B9 | 𝜄 U+1D704 | 1D34B |
κ U+03BA | 𝜅 U+1D705 | 1D34B |
λ U+03BB | 𝜆 U+1D706 | 1D34B |
μ U+03BC | 𝜇 U+1D707 | 1D34B |
ν U+03BD | 𝜈 U+1D708 | 1D34B |
ξ U+03BE | 𝜉 U+1D709 | 1D34B |
ο U+03BF | 𝜊 U+1D70A | 1D34B |
π U+03C0 | 𝜋 U+1D70B | 1D34B |
ρ U+03C1 | 𝜌 U+1D70C | 1D34B |
ς U+03C2 | 𝜍 U+1D70D | 1D34B |
σ U+03C3 | 𝜎 U+1D70E | 1D34B |
τ U+03C4 | 𝜏 U+1D70F | 1D34B |
υ U+03C5 | 𝜐 U+1D710 | 1D34B |
φ U+03C6 | 𝜑 U+1D711 | 1D34B |
χ U+03C7 | 𝜒 U+1D712 | 1D34B |
ψ U+03C8 | 𝜓 U+1D713 | 1D34B |
ω U+03C9 | 𝜔 U+1D714 | 1D34B |
∂ U+2202 | 𝜕 U+1D715 | 1B513 |
ϵ U+03F5 | 𝜖 U+1D716 | 1D321 |
ϑ U+03D1 | 𝜗 U+1D717 | 1D346 |
ϰ U+03F0 | 𝜘 U+1D718 | 1D328 |
ϕ U+03D5 | 𝜙 U+1D719 | 1D344 |
ϱ U+03F1 | 𝜚 U+1D71A | 1D329 |
ϖ U+03D6 | 𝜛 U+1D71B | 1D345 |
This section is non-normative.
This section is non-normative.
This section is non-normative.
This section is non-normative.
This section is non-normative.
This section is non-normative.
This section is non-normative.
This section is non-normative.
This section is non-normative.
This section is non-normative.
This section is non-normative.
This section is non-normative.
This section is non-normative.
This section is non-normative.
This section is non-normative.
This section is non-normative.
This section is non-normative.
MathML Core is based on MathML3. See the appendix E of [ MathML3 ] for the people that contributed to that specification.
MathML Core was initially developed by the MathML Community Group, and then by the Math Working Group. Working Group or Community Group members who regularly participated in MathML Core meetings during the development of this specification: Brian Kardell, Bruce Miller, Daniel Marques, David Carlisle, David Farmer, Deyan Ginev, Frédéric Wang, Louis Mahler, Moritz Schubotz, Murray Sargent, Neil Soiffer, Patrick Ion, Rob Buis, Steve Noble and Sam Dooley.
In addition, we would like to extend special thanks to Brian Kardell, Neil Soiffer and Rob Buis for help with the editing.
Many thanks also to the following people for their help with the test suite: Brian Kardell, Frédéric Wang, Neil Soiffer and Rob Buis. Several tests are also based on MathML tests from browser repositories and we are grateful to the Mozilla and WebKit contributors.
We would like to thank the people who, through their input and feedback on public communication channels, have helped us with the creation of this specification: André Greiner-Petter, Anne van Kesteren, Boris Zbarsky, Brian Smith, Elika Etemad, Emilio Cobos Álvarez, ExE Boss, Ian Kilpatrick, Koji Ishii, L. David Baron, Michael Kohlhase, Michael Smith, Ryosuke Niwa, Sergey Malkin, Tab Atkins Jr., Viktor Yaffle and frankvel.
This section is non-normative.
This specification adds script execution mechanisms via the MathML event handler attributes described in 2.1.3 Global Attributes . UAs may decide to prevent execution of scripts specified in these attributes, following the same security restrictions as those applying to HTML or SVG elements.
In
[
MathML3
],
it
was
possible
to
make
any
element
linkable
via
href
or
xlink:href
attributes,
with
an
URL
pointing
to
an
untrusted
resource
or
even
javascript:
execution.
These
attributes
are
not
available
in
MathML
Core.
However,
as
described
in
2.2.1
HTML
and
SVG
it
is
possible
to
embed
HTML
or
SVG
content
inside
MathML,
including
HTML
or
SVG
links.
In
[
MathML3
],
it
was
possible
to
use
the
maction
element
with
the
actiontype
value
set
to
"statusline"
in
order
to
override
the
text
of
the
browser
statusline.
In
particular,
an
attacker
could
use
this
to
hide
the
URL
text
of
an
untrusted
link
e.g.
<math>
<maction actiontype="statusline">
<mtext><a href="javascript:alert('JS execution')">Click me!</a></mtext>
<mtext>./this-is-a-safe-link.html</mtext>
</maction>
</
math
>
This
feature
is
not
available
in
MathML
Core,
where
the
maction
element
essentially
behaves
like
an
mrow
container
with
extra
style.
An
attacker
can
try
to
hang
the
UA
by
inserting
very
large
stretchy
operators,
effectively
making
the
algorithm
shaping
of
the
glyph
assembly
deal
with
a
huge
amount
of
glyphs.
UAs
may
work
around
this
issue
by
limiting
r
min
and
GlyphAssembly.partCount
to
maximum
values.
As described in CSS Fonts Module , an attacker can try to rely on malformed or malicious fonts to exploit potential security faults in browser implementations. Because the OpenType MATH table is used extensively in this specification, UAs should ensure their font sanitization mechanisms are able to deal with that table.
Finally, in order to reduce attack surface, some UAs expose runtime options to disable part of the web platform. Disabling MathML layout can essentially be achieved by forcing elements in the DOM tree to be put in the HTML namespace and disabling 4. CSS Extensions for Math Layout .
This section is non-normative.
As
explained
in
2.2.1
HTML
and
SVG
,
MathML
can
be
embedded
into
an
SVG
image
via
the
<foreignObject>
element
which
can
thus
be
used
in
a
canvas
element.
UA
may
decide
to
implement
any
measure
to
prevent
potential
information
leakage
such
as
tainting
the
canvas
and
returning
a
"
SecurityError
"
when
one
tries
to
access
the
canvas'
content
via
JavaScript
APIs.
In
the
following
example,
the
canvas
image
is
set
to
the
image
of
some
MathML
content
with
an
HTML
link
to
https://example.org/
.
It
should
not
be
possible
for
an
attacker
to
determine
whether
that
link
was
visited
by
reading
pixels
via
context.
.
For
more
about
links
in
MathML,
see
E.
Security
Considerations
.
getImageData
()
let svg = `
<svg xmlns="http://www.w3.org/2000/svg" width="100px" height="100px">
<foreignObject width="100" height="100"
requiredExtensions="http://www.w3.org/1998/Math/MathML">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<msqrt style="font-size: 25px">
<mtext>■</mtext>
<mtext><a href="https://example.org/">■</a></mtext>
</msqrt>
</math>
</foreignObject>
</svg>`;
let image = new Image();
image.width = 100;
image.height = 100;
image.onload = () => {
let canvas = document.createElement('canvas');
canvas.width = 100;
canvas.height = 100;
canvas.style = "border: 1px solid black";
document.body.appendChild(canvas);
let context = canvas.getContext("2d");
context.drawImage(image, 0, 0);
};
image.src
=
`data:image/svg+xml;base64,${window.btoa(svg)}`;
This
specification
describes
layout
of
DOM
elements
which
may
involve
system
fonts.
Like
for
HTML/CSS
layout,
it
is
thus
possible
to
use
JavaScript
APIs
(e.g.
context.
on
content
embedded
in
a
canvas
context,
or
even
just
getImageData
()
getBoundingClientRect
()
)
to
measure
box
sizes
and
positions
and
infer
data
from
system
fonts.
By
combining
miscellaneous
tests
on
such
fonts
and
comparing
measurements
against
results
of
well-known
fonts,
an
attacker
can
try
and
determine
the
default
fonts
of
the
user.
The
following
HTML+CSS+JavaScript
document
relies
on
a
Web
font
with
exotic
metrics
to
try
and
determine
whether
A
Well
Known
System
Font
is
available
by
default.
<style>
@font-face {
font-family: MyWebFontWithVeryWideGlyphs;
src: url("/fonts/my-web-fonts-with-very-wide-glyphs.woff");
}
#container {
font-family: AWellKnownSystemFont, MyWebFontWithVeryWideGlyphs;
}
</style>
<div id="container">SOMETEXT</div>
<div id="reference">SOMETEXT</div>
<script>
document.fonts.ready.then(() => {
let containerWidth =
document.getElementById("container").getBoundingClientRect().width;
let referenceWidth =
document.getElementById("reference").getBoundingClientRect().width;
let isWellKnownSystemFontAvailable =
Math.abs(containerWidth - referenceWidth) < 1;
});
</
script
>
The following HTML+CSS+JavaScript document tries to determine whether the UI serif font provides Asian glyphs:
<style>
@font-face {
font-family: MyWebFontWithVeryWideAsianGlyphs;
src: url("/fonts/my-web-fonts-with-very-wide-asian-glyphs.woff");
}
#container {
font-family: ui-serif, MyWebFontWithVeryWideAsianGlyphs
}
#reference {
font-family: MyWebFontWithVeryWideAsianGlyphs;
}
</style>
<div id="container">王</div>
<div id="reference">王</div>
<script>
document.fonts.ready.then(() => {
let containerWidth =
document.getElementById("container").getBoundingClientRect().width;
let referenceWidth =
document.getElementById("reference").getBoundingClientRect().width;
let uiSerifFontDoesNotContainAsianGlyph =
Math.abs(containerWidth - referenceWidth) < 1;
});
</
script
>
The
following
HTML+CSS
document
contains
the
same
text
rendered
with
text-decoration-thickness
set
to
from-font
and
1em
(here
100
pixels)
respectively.
By
comparing
the
heights
of
the
two
underlines,
one
can
calculate
a
good
approximation
of
the
underlineThickness
value
from
the
PostScript
Table
[
OPEN-FONT-FORMAT
].
<style>
#test {
font-size: 100px;
}
#container {
text-decoration-line: underline;
text-decoration-thickness: from-font;
}
#reference {
text-decoration-line: underline;
text-decoration-thickness: 1em;
}
</style>
<div id="test">
<div id="container">SOMETEXT</div>
<div id="reference">SOMETEXT</div>
</
div
>
This
specification
relies
on
information
from
5.
OpenType
MATH
table
to
render
MathML
content.
One
can
get
good
approximation
of
most
layout
parameters
from
MathConstants
and
MathGlyphInfo
using
measurement
techniques
similar
to
what
is
described
above
for
HTML+CSS+JavaScript
document.
The
use
of
the
MathVariants
table
for
MathML
rendering
can
also
be
observed
by
putting
stretchy
operators
of
different
sizes
inside
a
canvas
context.
Although none of these parameters taken individually are personal, implementing this specification increases the set of exposed font information that can be used by an attacker to implement fingerprinting techniques. Typically, they could help determine available and preferred math fonts for a user.
Conformance requirements are expressed with a combination of descriptive assertions and RFC 2119 terminology. The key words “ MUST ”, “ MUST NOT ”, “ REQUIRED ”, “ SHALL ”, “ SHALL NOT ”, “ SHOULD ”, “ SHOULD NOT ”, “ RECOMMENDED ”, “ MAY ”, and “ OPTIONAL ” in the normative parts of this document are to be interpreted as described in RFC 2119. However, for readability, these words do not appear in all uppercase letters in this specification.
All of the text of this specification is normative except sections explicitly marked as non-normative, examples, and notes. [ RFC2119 ]
Examples
in
this
specification
are
introduced
with
the
words
“for
example”
or
are
set
apart
from
the
normative
text
with
class="example"
,
like
this:
This is an example of an informative example.
Informative
notes
begin
with
the
word
“Note”
and
are
set
apart
from
the
normative
text
with
class="note"
,
like
this:
Note, this is an informative note.
Advisements
are
normative
sections
styled
to
evoke
special
attention
and
are
set
apart
from
other
normative
text
with
<strong
class="advisement">
,
like
this:
UAs
MUST
provide
an
accessible
alternative.
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in: