参考UnicodeMath官方文档,原文看这

word插入公式不自动斜体的解决办法

建议先看:微软官网Word 中使用 UnicodeMath 和 LaTeX 的线性格式公式

本文持续更新。

1. 简介

用UnicodeMath写数学表达式很简单,而且编码非常易读,比较接近手写的数学表达式。因此这种编码叫做“近纯文本格式”。

后文中近纯文本格式称为 线性格式 ,将构建的表示格式称为 构建格式

线性格式比[La]TeX或MathML更紧凑、易读。来个对比:

公式:\(\frac{(a+c)}{d}\)

线性格式:((a+c))/d

[La]Tex:$\frac{(a+c)}{d}$

MathML:

<mfrac>
<mrow>
<mi>a</mi>
<mo>+</mo>
<mi>c</mi>
</mrow>
<mi>d</mi>
</mfrac>

大多数数学表达式可以用线性格式明确表示,线性格式也可导出为[La]TeX、MathML格式。线性格式借用了部分TeX的符号,用来表示自己表示不了的东西,例如矩阵。

提示:后文中或将出现许多键盘上没有的Unicode符号,但它们大都可以用word的数学符号自动更正输入。你可以查看word的所有数学符号自动更正:

部分自动更正附在文后的自动更正列表

2. 编码简单数学表达式

2.1 分数

表示分数可以用LaTeX的\frac{numerator} {denominator}

在线性格式中:输入a/b,再敲个空格,完事。比Tex快多了。

给几个例子:

\[\frac{abc}{d}$$ 线性格式是`abc/d`。要强制显示正常大小的线性分数(横着写),可以使用`\ /`(反斜杠后跟斜杠)。

线性格式`(a+c)/d`显示为$\frac{a+b}{d}$。
那问题来了,怎么才能输入$\frac{(a+b)}{d}$?很简单,再打一对括号:`((a+b))/d`

另外,分数线样式有三种:
1. “分数斜线”U+2044(可以通过`\sdiv`输入)
1. “除法斜线”U+2215(`\ldiv`)
1. 带圆圈的斜线(U+2298,`\ndiv`)
三种分别显示成
![](https://img2018.cnblogs.com/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_{\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] \]

它的线性格式版本为

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版本为

$$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] $$

2.3 空白(空格)字符使用

输入\alpha跟一个空格将获得α,当α替换\alpha时,空格被消除。类似地,a_1 b_2 会显示\(a_1b_2\)(中间没有空格)。

空格可以理解为局部写完了,进行提交。推荐一篇在Word中使用UnicodeMath和Latex优雅地输入线性公式对空格的叙述比较详细。

补充: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:4.6 线性格式自动更正列表

关于大括号方程组(cases)

分段函数

\(\left|x\right|=\begin{cases}x & x \geq 0\\-x & x < 0\end{cases}\)

的线性格式为:|x|={█(x &x≥0@-x &x<0)┤

关于操作符“ █ ”见3.19 方程组

补充:输入大括号括起来的方程组,还可以先输入\close,后输入方程组内容:

也可使用“&”进行对齐:

由于cases(分类讨论)很常见,线性格式v3中将符号“ Ⓒ ”(\cases)定义为cases的标志(类似于Tex的{cases}环境)。上面的编码等效于:|x|=Ⓒ(x &x≥0@-x &x<0)

也就是说,{█(\close)可以用一个(\cases)替代。

关于缩放

UnicodeMath提供了类似于LaTeX\big \Big \bigg \Bigg的对符号进行放大的用法。

Latex代码:

\Bigg\{
\bigg\{
\Big[
\big(
(x)
\big)
\Big]
\bigg\}
\Bigg\}

效果:

\[\Bigg\{
\bigg\{
\Big[
\big(
(x)
\big)
\Big]
\bigg\}
\Bigg\}
\]

UnicodeMath编码:在├后加一个数字‘0’-‘4’,代表放大值。对照表:

Digit Meaning
0 Don't grow
1 big
2 Big
3 bigg
4 Bigg

因此上面例子线性格式为:

├4{├3{├2[├1(├0(x))]}}

但实际上,如果不是必须,不建议使用这种办法。因为不说明大小,程序也会自动进行放大。

关于绝对值

UnicodeMath中绝对值直接用竖杆“|”(U+007C)表示(LaTeX是\left| \right|),按空格构建。

然而,如何输入\(\big| \left| x \right| - \left| y \right| \big|\)?

如果直接输入||x|-|y||,结果将会是\(\left|\right|x\left|-\right|y\left|\right|\).

正确的线性格式为:|(|x|-|y|)|

从中我们了解到,不指明层级(使用括号)时,默认竖杆|与其后跟的第一个|为一对绝对值。

3.2 转义

如果你想把UnicodeMath中某个“关键字”当作普通文本识别的话,在他前面加反斜杠\。

例如,\[将显示为原原本本的方括号,程序不会为它匹配]

3.3 向上/向下操作符

线性格式(_c^b)a_c^a b显示为\({_c^b}a\)。

线性格式lim┬(n→∞)a_n显示为\(\lim_{n \rightarrow 0}{a_n}\)。

\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)

UnicodeMath编码教程的更多相关文章

  1. UnicodeMath数学公式编码_翻译(Unicode Nearly Plain - Text Encoding of Mathematics Version 3)

    目录 完整目录 1. 简介 2. 编码简单数学表达式 2.1 分数 2.2 上标和下标 2.3 空白(空格)字符使用 3. 编码其他数学表达式 3.1 分隔符 强烈推荐本文简明版UnicodeMath ...

  2. Arduino红外遥控系列教程2013——发射与接收

    教程一:红外接收教程本教程共四步操作,将教大家如何收集电视红外遥控器的编码 视频链接:http://v.youku.com/v_show/id_XNTE2NjQ5NTcy.html 第一步:电路连接, ...

  3. Qt与FFmpeg联合开发指南(三)——编码(1):代码流程演示

    前两讲演示了基本的解码流程和简单功能封装,今天我们开始学习编码.编码就是封装音视频流的过程,在整个编码教程中,我会首先在一个函数中演示完成的编码流程,再解释其中存在的问题.下一讲我们会将编码功能进行封 ...

  4. python 编码问题之终极解决

    结合之前遇到的坑以及下面贴的这篇文章, 总结几种python乱码解决方案,如果遇到乱码,不妨尝试一下? 1,必备 #encoding=utf-8 2, python编程环境编码 import sys ...

  5. Thrift 基础教程(一)安装篇

    1.Thrift简单介绍 Thrift是一款由Fackbook开发的可伸缩.跨语言的服务开发框架,该框架已经开源而且增加的Apache项目.Thrift主要功能是:通过自己定义的Interface D ...

  6. 从一个慢查询到MySQL字符集编码

    从一个慢查询到MySQL字符集编码 目录 从一个慢查询到MySQL字符集编码 1. 问题起源 2. MySQL字符集和字符集排序规则 2.1 字符集相关概念 2.2 MySQL中的字符集和字符集排序规 ...

  7. 43个实例xHTML+CSS(DIV+CSS)网页及导航布局

    在中国,很多前端开发初学者都会把xHTML+CSS页面制作说成DIV+CSS,甚至很多人都还不知道xHTML+CSS是什么意思,只知道盲目的追求DIV+CSS,但在国外,是没有DIV+CSS这个概念的 ...

  8. PSD转HTML

    随着时间的推移,技术的进步,越来越多的人也越来越熟悉HTML和CSS以及不同的技术来将 Photoshop 设计转换成 HTML 或 CSS 格式.对于一个设计师或网页开发人员,知道如何将PSD文件转 ...

  9. [对对子队]Alpha阶段项目展示博客

    Alpha阶段项目展示博客 1 团队成员的简介和个人博客地址 成员 头像 岗位 博客 个人介绍 黄贤昊 PM 17373253 喜欢玩游戏和做游戏,项目经验基本都和游戏相关,擅长摸鱼,偶尔敬业. 刘子 ...

随机推荐

  1. 记一次GRPC使用报错排查

    项目一直使用grpc作为服务交互程序,其中我负责的java模块第一次引用该框架:当框架搭建好后,建立客户端代码,报错: Runable Error:java.lang.IllegalAccessErr ...

  2. python全栈开发 * 线程锁 Thread 模块 其他 * 180730

    一,线程Thread模块1.效率更高(相对于进程) import time from multiprocessing import Process from threading import Thre ...

  3. 页面初始化document.body.clientWidth大小变化

    目前:原因不明 初步判断:设置字体大小前图片加载失败! 结果:等待验证

  4. 洛谷试炼场 - 关卡1-5 - 简单字符串 - (Done)

    P1055 ISBN号码 #include<bits/stdc++.h> using namespace std; string s; ]={','X'}; int main() { ci ...

  5. 关于systemctl

    systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体. 启动一个服务:systemctl start firewalld.servic ...

  6. Java 基础 IO

    一,前言 回想之前写过的程序,数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下次再想使用这些数据,可是已经没有了.那怎么办呢?能不能把运算完的数据都保存下来,下次程序启动的时候,再把这些数据 ...

  7. NGUI与特效的层级关系

    通过调整特效的 render queue 来解决特效与NGUI界面之间的层级关系问题,用以下脚本解决: using System.Collections.Generic; using UnityEng ...

  8. html5 javascript 新增加的高级选择器更精准更实用

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  9. 视图模型-Lambda表达式

    EF中通过改变实体对象达到操作数据库表数据的目的,在对数据库实体操作时,肯定少不了和Linq.Lambda打交道,熟悉SQL的话,上手 Linq并不难,from in where select... ...

  10. ARM-ili9325屏调试1--时序

    2011-06-21 22:04:54 LCD连接好了,读id,不成功.说明配置引脚或读写时序不对. 原来是软件引脚配置出错. 应该用如下. #define LCD_CS   {3<<30 ...