UnicodeMath 编码教程
参考UnicodeMath 官⽅⽂档,。
建议先看:微软官⽹
本⽂持续更新。⽬录
1. 简介
⽤UnicodeMath 写数学表达式很简单,⽽且编码⾮常易读,⽐较接近⼿写的数学表达式。因此这种编码叫做“近纯⽂本格式”。
后⽂中近纯⽂本格式称为 线性格式 ,将构建的表⽰格式称为 构建格式。
线性格式⽐[La]TeX 或MathML 更紧凑、易读。来个对⽐:
公式:(a +c )
d
线性格式:((a+c))/d
[La]Tex :$\frac{(a+c)}{d}$
MathML :
⼤多数数学表达式可以⽤线性格式明确表⽰,线性格式也可导出为[La]TeX 、MathML 格式。线性格式借⽤了部分TeX 的符号,⽤来表⽰⾃⼰表⽰不了的东西,例如矩阵。提⽰:后⽂中或将出现许多键盘上没有的Unicode 符号,但它们⼤都可以⽤word 的数学符号⾃动更正输⼊。你可以查看word 的所有数学符号⾃动更正:
部分⾃动更正附在⽂后的
2. 编码简单数学表达式
2.1 分数
表⽰分数可以⽤LaTeX 的\frac{numerator} {denominator}。
在线性格式中:输⼊a/b ,再敲个空格,完事。⽐Tex 快多了。
给⼏个例⼦:
<mfrac>
<mrow>
<mi>a</mi>
<mo>+</mo>
<mi>c</mi>
</mrow>
<mi>d</mi></mfrac>
Loading [MathJax]/jax/element/mml/optable/BasicLatin.js
\frac{abc}{d}$$ 线性格式是`abc/d`。要强制显⽰正常⼤⼩的线性分数(横着写),可以使⽤`\ /`(反斜杠后跟斜杠)。
线性格式`(a+c)/d`显⽰为$\frac{a+b}{d}$。
那问题来了,怎么才能输⼊$\frac{(a+b)}{d}$?很简单,再打⼀对括号:`((a+b))/d`
数字转unicode编码
另外,分数线样式有三种:
1. “分数斜线”U+2044(可以通过`\sdiv`输⼊)1. “除法斜线”U+2215(`\ldiv`)1. 带圆圈的斜线(U+2298,`\ndiv`)
三种分别显⽰成
![](img2018blogs/blog/1571380/201902/1571380-20190217210719822-101790649.jpg)
**提⽰**:由于分数线`/`后⾯不可能跟着运算符,所以`/`号被定义为取反,即键⼊`/=`就可得到`≠`(类似编程语⾔中的`!=`)。类似的有:
| Operator | Negated op | Input        ||----------|------------|--------------|| <        | ≮          | /<          || =        | ≠          | /=          || >        | ≯          | />          || ∃        | ∄          | /\exists    || ∈        | ∉          | /\in        || ∋        | ∌          | /\ni        || ∼        | ≁          | /\sim        || ≃        | ≄          | /\simeq      || ≅        | ≇          | /\cong      || ≈        | ≉          | /\approx    || ≍        | ≭          | /\asymp      || ≡        | ≢          | /\equiv      || ≤        | ≰          | /\le        || ≥        | ≱          | /\ge        || ≶        | ≸          | /\lessgtr    || ≷        | ≹          | /\gtrless    || ≽        | ⋡          | /\succeq    || ≺        | ⊀          | /\prec      || ≻        | ⊁          | /\succ      || ≼        | ⋠          | /\preceq    || ⊂        | ⊄          | /\subset    || ⊃        | ⊅          | /\supset    || ⊆        | ⊈          | /\subseteq  || ⊇        | ⊉          | /\supseteq  || ⊑        | ⋢          | /\sqsubseteq || ⊒        | ⋣          | /\sqsupseteq |
分数的另⼀个技巧是两个数字之间或斜杠和数字之间的句点或逗号被认为是数字的⼀部分,⽽不是终结符。例如,`1/3.1416`为 $\frac{1}{3.1416}$,⽽不是$\frac{1}{3}.1416$。
## 2.2 上标和下标
`_`实现下标:$\delta_{\mu\nu}$ 写为`δ_µν`。
类似地,`^`实现上标。所以 `a^b` 表⽰ $a^b$ 。
复杂⼀点,加个括号: $\delta_{\mu+\nu}$ 写为`δ_(µ+ν)`。
上/下标的嵌套:`a_b_c`代表$a_{b_c}$。类似地,`a^b^c` 代表$a^{b^c}$。
$a^{b_c}$ 写为`a^(b_c)`,⽽不是`a^b_c`。因为`a^b_c`(或`a_c^b`)显⽰为$a^b_c$。
稍微复杂的例⼦,想想这个表达式怎么写?
$W^{3\beta}_{\delta_1\rho_2\sigma_3}$
其线性格式为`W^(3β)_(δ_1ρ_1σ_2)`。⽽在TeX 中,需要这样输⼊
`$W^{3\beta}_{\delta_1\rho_1\sigma_2}$`
对于
$$\alpha_2^3\over\beta_2^3+ \gamma_2^3
线性格式⽂本可以为α_2^3/(β_2^3+γ_2^3),⽽标准的TeX 版本为$$\alpha_2^3 \over \beta_2^3 + \gamma_2^3$$。
更长的:
W 3βδ1ρ1σ2=U 3βδ1ρ1+1
8π2∫α2α1d α′2U 2βδ1ρ1−α′2U 1βρ1σ2U 0βρ1σ2它的线性格式版本为
W_(δ1ρ1σ2)^(3β)=U_(δ1ρ1)^(3β)+1/8π^2 ∫_α1^α2▒d α'_2 [(U_(δ1ρ1)^(2β)-α'_2U_(ρ1σ2)^(1β))/U_(ρ1σ2)^(0β)]
⽽标准的TeX 版本为
2.3 空⽩(空格)字符使⽤
输⼊\alpha 跟⼀个空格将获得α,当α替换\alpha 时,空格被消除。类似地,a_1 b_2 会显⽰a 1b 2(中
间没有空格)。
[]
$$W_{\delta_1\rho_1\sigma_2}^{3\beta}=
U_{\delta_1\rho_1}^{3\beta}+ {1 \over 8\pi^2}
\int_{\alpha_1}^{\alpha_2} d\alpha_2’ \left[
{U_{\delta_1\rho_1}^{2\beta}-\alpha_2’
U_{\rho_1\sigma_2}^{1\beta}\over
U_{\rho_1\sigma_2}^{0\beta}} \right] $$
空格可以理解为局部写完了,进⾏提交。推荐⼀篇对空格的叙述⽐较详细。
补充:x=(-b\pm<space>\sqrt(b^2-4ac))/(2a)<space>输⼊时在这两处空格。
在嵌套的下标/上标表达式中,空格⼀次构建⼀个上/下标。例如,要⽤编码a^b^c 建⽴a b c
需要两个空格。像+这样的其他运算符会构建整个表达式,因为这些运算符明确地终⽌了操作。3. 编码其他数学公式
3.1 open/close 分隔符
├(\open )和┤(\close )⽤于标志分隔(类似LaTeX 的“\begin” “\end”)。
关于\open \close :
关于⼤括号⽅程组(cases )
分段函数
|x |=x
x ≥0−x x <0
的线性格式为:|x|={█(x &x≥0@-x &x<0)┤
关于操作符“ █ ”见
补充:输⼊⼤括号括起来的⽅程组,还可以先输⼊\close ,后输⼊⽅程组内容:
也可使⽤“&”进⾏对齐:
由于cases (分类讨论)很常见,线性格式v3中将符号“  ”(\cases )定义为cases 的标志(类似于Tex 的{cases}环境)。上⾯的编码等效于:|x|= (x &x≥0@-x &x<0)也就是说,{█和┤(\close )可以⽤⼀个 (\cases )替代。
关于缩放
UnicodeMath 提供了类似于LaTeX \big \Big \bigg \Bigg 的对符号进⾏放⼤的⽤法。
Latex 代码:
效果:
((x )
)UnicodeMath 编码:在├后加⼀个数字‘0’-‘4’,代表放⼤值。对照表:
Digit Meaning
Don't grow 1
big 2
Big 3
bigg 4Bigg
因此上⾯例⼦线性格式为:
├4{├3{├2[├1(├0(x))]}}
但实际上,如果不是必须,不建议使⽤这种办法。因为不说明⼤⼩,程序也会⾃动进⾏放⼤。关于绝对值
UnicodeMath 中绝对值直接⽤竖杆“|”(U+007C)表⽰(LaTeX 是\left| \right|),按空格构建。然⽽,如何输⼊||x |−|y ||?
如果直接输⼊||x|-|y||,结果将会是||x |−|y ||.
正确的线性格式为:|(|x|-|y|)|
从中我们了解到,不指明层级(使⽤括号)时,默认竖杆|与其后跟的第⼀个|为⼀对绝对值。
3.2 转义
如果你想把UnicodeMath 中某个“关键字”当作普通⽂本识别的话,在他前⾯加反斜杠\。例如,\[将显⽰为原原本本的⽅括号,程序不会为它匹配]。
{\Bigg\{
\bigg\{
\Big[
\big(
(x)
\big)
\Big]
\bigg\}
\Bigg\}
{{[]}}
3.3 向上/向下操作符
线性格式(_c^b)a或_c^a b显⽰为b c a。
线性格式lim┬(n→∞)a_n显⽰为lim。
\above(┴)\below(┬)表⽰上下标。
3.4 第三个参数(n-aryand)
像积分、求和、极限这样的运算符含有上/下标(\above \below ^ _),同时还含有第三个参数(n-aryand)。对于积分,n-aryand是被积函数,对于求和,它是加数。为了识别,符号“▒”(U+2592)作为链接n-aryand的“胶⽔”。
线性格式∫_0^a▒xⅆx/(x^2+a^2)显⽰为$$\int_{0}{a}\frac{x,dx}{x2+a^2}$$
中间的“ⅆ”(双线斜体⼩写d)在word中可⽤\dd输⼊。注意这个“ⅆ”在显⽰时前⾯有⼀个⼩空格(⽽直接打字母d就不会有这个效果)。
其实在word中打\int会⾃动匹配第三个参数(显⽰成虚框)。这个“胶⽔”了解就好。
3.19 ⽅程组
操作符“ █ ”(\eqarray)使⼀个⽅程相对于另⼀个⽅程垂直对齐。“&”符号标志对齐位置。
例如:
\begin{eqnarray*}10&x+&3&y=2\\ 3&x+&13&y=4\end{eqnarray*}
线性格式:
█(10&x+&3&y=2@3&x+&13&y=4)
4. 输⼊⽅法
4.6 线性格式⾃动更正列表
输⼊"word"再空格,将替换为"Control"。
Control word Character Control word Character
\int∫(U+222B)\underbrace︸(U+23DF)
\oint∮(U+222E)\overbrace︷(U+23DE)
\sum∑(U+2211)\begin〖(U+3016)
\prod∏(U+220F)\end〗(U+3017)
\funcapply(U+2061)\phantom (U+27E1)
\naryand,\of▒(U+2592)\box□(U+25A1)
\rect▭(U+25AD)\hphantom⬉(U+2B04)
\sqrt√(U+221A)\vphantom⇳(U+21F3)
\open├(U+251C)\asmash⬆(U+2B06)
\close┤(U+2524)\dsmash⬇(U+2B07)
\above┴(U+2534)\hsmash⬌(U+2B0C)
\below┬(U+252C)\smash⬈(U+2B0D)
\underbar▁(U+2581)\matrix■(U+25A0)
\overbar(U+00AF)\eqarray█(U+2588)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。