准备
对于MathML来说下载一款支持MathML Api的游览器既可,如果你不知道那些游览器支持(通过此传送门查看),并选择一个线上编译器(jsrun、glitch)/vscode、webstorm你喜欢就行。
我们的第一个MathML
不用理解它们的作用, 先创建一个MathML简单实例,后面我们逐一再讨论它们的意义,现在起来是这样的:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> </head> <body> <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> <msup><mi>a</mi><mn>2</mn></msup> <mo>+</mo> <msup><mi>b</mi><mn>2</mn></msup> <mo>=</mo> <msup><mi>c</mi><mn>2</mn></msup> </mrow> </math> </body> </html>
运行的结果:,看起运行的结果还不错。
xmlns
我们通过简单例子我们发现MathML的基本“语法”是使用XML语法定义的;math作为顶层元素,math 的命名空间为”http://www.w3.org/1998/Math/MathML”,如果xmlns
单独使用该属性时,它将为显示该属性的元素以及所有子元素设置默认的名称空间。例如这样:
<math xmlns =“ http://www.w3.org/1998/Math/MathML”> <mrow> ... </ mrow> </ math>
当xmlns
属性用作前缀时,它声明一个前缀,然后可以将该前缀用于显式将其他元素和属性与特定名称空间关联, 写成 :
<body xmlns:m =“ http://www.w3.org/1998/Math/MathML”> ... <m:math> <m:mrow> ... </ m:mrow> </ m:math> ... </ body>
大都数MathML元素都充当“容器”,只是作为子元素列表中的单个成员,对元素可以具有的子级数没有限制。
mrow
而mrow作为表达式中的分组,就像它们在数学解释时的分成一行行一样。正确的分组有助于表达式的呈现,具体体现在以下几个方面:
- 如果有需要,它会改变间距来改善显示效果。
- 它允许采用更明智的断行和缩进算法。
- 通过自动化系统,如计算机代数系统和音频渲染器(automated systems such as computer algebra systems and audio renderers),它能简化表达式的解释(interpretation)过程。
msup、msub
数字标记上标与下标,这与我们html中的sub、sup相似,相比它们属性支持更少。
msup – 、 msub –
mi
呈现为标识符,例如函数名,变量或符号常量。您还可以在其中包含任意文本以标记术语。
mn
表示数字文字,通常为带有可能的分隔符(点或逗号)的数字序列。但是,也可以在其中包含实际上是数字的任意文本,例如“十一”(其实就随便写啦, 只是mn应该表示“数字”, 某种约束)。
<math> <mn> 0 </mn> <mn> 1.337 </mn> <mn> twelve </mn> <mn> XVI </mn> <mn> 2e10 </mn> </math>
mo
广义上表示一个运算符。除了具有严格数学意义的运算符外,此元素还包括“运算符”(例如括号),分隔符(例如逗号和分号)或“绝对值”条。
MathML的支持
表示法 | 描述 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
decimal-digit | 从U+0030到U+0039的十进制数字 | ||||||||||||||||||||
hexadecimal-digit | 从U+0030到U+0039、U+0041到U+0046和U+0061到U+0066的十六进制 | ||||||||||||||||||||
unsigned-integer | 十进制数字的字符串,表示非负整数 | ||||||||||||||||||||
positive-integer | 十进制数字串,但不完全由“0”s(U+0030)组成,表示正整数 | ||||||||||||||||||||
integer | 一个可选的“-”(U+002D),后跟一个十进制数字串,表示一个整数 | ||||||||||||||||||||
unsigned-number | 一个十进制数字串,最多有一个小数点(U+002E),表示一个非负的终止十进制数(一种有理数) | ||||||||||||||||||||
number | 一个可选的前缀“-”(U+002D),后跟一个无符号数字,表示一个终止的十进制数(一种有理数) | ||||||||||||||||||||
character | 单个非空白字符 | ||||||||||||||||||||
string | 任意的,非空和有限的,串字符小号 | ||||||||||||||||||||
length | 长度,
|
||||||||||||||||||||
unit |
|
||||||||||||||||||||
namedlength | 命名长度 | ||||||||||||||||||||
color | 颜色,
|
||||||||||||||||||||
id | 在文档中唯一的标识符;必须满足XML建议[XML]的NAME语法 | ||||||||||||||||||||
idref | 引用文档中另一个元素的标识符;必须满足XML建议[XML]的名称语法 | ||||||||||||||||||||
URI | 统一资源标识符[RFC3986]。注意,属性值在模式中被输入为anyURI,它允许任何XML字符序列。需要将此字符串用作URI的系统必须使用%HH编码对URI中不允许使用的任何字符的UTF-8编码字节进行编码,其中HH是十六进制的字节值。这确保了这样的属性值可以被解释为IRI,或者更一般地说是LEIRI,参见[IRI]。 | ||||||||||||||||||||
italicized word | 每个属性的文本中说明的值 | ||||||||||||||||||||
“literal” | 带引号的符号,按字面意思出现在属性值中(例如“+”或“+”) |
参考:
- https://www.runoob.com/html/html5-mathml.html
- https://www.w3.org/TR/MathML3/