MathML标记语言学习记录

188 阅读1分钟

MathML, Mathematical Markup Language,是数学标记语言,主要解决在网页上写数学公式,支持写fractions(分数)、scripts、radicals(弧度)、matrices(矩阵)、integrals、series等等。
使用方法

支持的token element:

<math>,所有数学公式都由<math>标签包裹,可以包含任意数量的children,并且会在一行显示 <mfrac>,用来写分数,第一个<mn>是分子,第二个<mn>是分母,比如13\cfrac{1}{3}的写法:

<math>
    <mfrac>
         <mn>1</mn>
         <mn>3</mn>
    </mfrac>
</math>

<mn>,用来渲染数字,number literal,包括整数、小数、十六进制等等
<mo>,用来渲染运算符,operator,比如+、-,求和符号、关系符号等等
<mrow>,是一个比较通用的容器元素,可以组合任意元素,可以理解为其包括一个完整的表达式 <mi>,用来represents 'identifier',标识符,比如cos(函数)、π\pi(常量)、x(变量)

实例,1+2+31+2+3的MathML为:

<math>
    <mn>1</mn>
    <mo>+</mo>
    <mn>2</mn>
    <mo>+</mo>
    <mn>3</mn>
</math>

<mtext>,用来represent 任意字符,比如if
MathML Text Containers,主要用来解决比如变量、数字、运算符如何表达 数学公式涉及到很多特殊的字符,比如greek letters(希腊字母)、fraktur letters、double-struck letter、binary operators、arrows、integral symbols(积分符号\int)、summation symbols(求和符号\sum)、logical symbols、fences等等。

<msqrt>,用来represent 开根号
<mroot>,用来represent nth root,n次方根,第一个text是底,第二个text是开方根次数

要选择合适的标签,typographic convertion(排版惯例)会有自己的一些约定,比如变量会采用斜体字。如果不需要斜体,可以通过添加属性mathvariant="normal"解决