2022.1.5

如何在Word中修改公式字体

Cambria Math,对不起。

如何在Word中修改公式字体
如何在Word中修改公式字体

一句话总结:下载一个支持OpenType Math的字体(如SITXXITS等),然后安装在电脑中,即可在Word中设置默认字体。

修改默认字体

2019年的时候我曾经介绍过如何在微信推送中插入公式。不过做微信推送毕竟是小众需求,更多时候插入公式还是在Word里。但是,Word中公式的默认字体是一个名叫“Cambria Math”的字体,虽然也不算太丑,但是和常用的英文字体“Times New Roman”比起来还是有很大区别,让强迫症看着很难受。

<span class="cambria">Cambria Math</span> & <span class="times">Times New Roman</span>
Cambria Math & Times New Roman

手动将公式的字体改为Times New Roman没有任何效果,而且在Word的公式设置中也无法将默认字体设置为Times New Roman。网上有些建议是这样的:先选中公式里的所有文字,然后点击菜单栏中的“转换 → 文本”,再对文本设置Times New Roman字体,然后再将文本设置为斜体。但是这样做有一定缺陷:一方面,对于每个公式要二次处理,非常麻烦;另一方面,对于一些同时包含了斜体和非斜体的公式(例如包含了单位),单独区分更加麻烦。

将公式转换为文本
将公式转换为文本

Word的公式选项里其实有“默认字体”这个选项,但很多人的电脑里可能只有Cambria Math这一个选项。查找资料后发现,Word公式的“默认字体”需要支持OpenType Math,而Times New Roman是不支持这个特性的,因此除非修改Times New Roman字体源文件,否则是无法直接在Word里将其选择为默认字体的。

Word中对公式的设置
Word中对公式的设置

作为替代,可以从网上找到其他与Times New Roman设计较为接近的字体,至少从观感上来看可以保持一致。有人对支持OpenType Math的字体进行了统计,这里我推荐三种字体:SITX(包括第1版和第2版)和XITS

<span class="cambria">Cambria Math</span> & <span class="times">Times New Roman</span> & <span class="stix">STIX</span> & <span class="stix-2">STIX Two</span> & <span class="xits">XITS</span>
Cambria Math & Times New Roman & STIX & STIX Two & XITS

这三种字体都比较接近Times New Roman,尽管还有一些差距(例如对z的处理)。我个人使用的是STIX。在安装了字体之后就可以在公式选项中选择对应的字体,这样之后插入的公式就不用再受Cambria Math的折磨了。如果点击右下角的“默认值”,就可以让以后创建的文档都以这个设置为默认值创建公式。

用<span class="stix">STIX</span>(上)和<span class="cambria">Cambria Math</span>(下)排版公式
STIX(上)和Cambria Math(下)排版公式

其他设置

在Word的公式设置中,还有一些其他有趣的选项。例如,如果将“复制公式时”的选项改为“MathML”,那么在复制Word的公式粘贴到纯文本编辑器中就会显示为MathML格式,类似于:

<mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math"><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mo>-</mml:mo><mml:mi>b</mml:mi><mml:mo>±</mml:mo><mml:msqrt><mml:msup><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>-</mml:mo><mml:mn>4</mml:mn><mml:mi>a</mml:mi><mml:mi>c</mml:mi></mml:msqrt></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mi>a</mml:mi></mml:mrow></mml:mfrac></mml:math>

如果改为“线性模式”,那么复制粘贴后得到的格式与所选的显示方式有关,若为Unicode,则得到Unicode格式的公式,类似于:

x=(-b±√(b^2-4ac))/2a

若为LaTeX,则为\(\LaTeX\)格式的公式,类似于:

x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}

Unicode格式更适合人类阅读,\(\LaTeX\)格式则更适合支持TeX的公式编辑器。

此外,在“数学符号自动更正”中,如果选中“在公示区以外使用‘数字符号自动更正’规则”,那么可以在正文中输入语句自动识别为符号,例如输入\alpha然后按下空格,就会被自动转换为α符号。

TeX公式的获取

在Word中,选择LaTeX格式后可以直接将TeX公式输入并回车,软件将会自动转换为公式。但其对语句的支持并不完整,例如\dfrac无法识别为分式,需要手动转为\cfrac。获取公式的方法我在之前的文章中讲过,移动过来:

手写公式

网络上有很多工具可以直接识别手写公式并转换为TeX代码,而后将TeX代码复制粘贴到Markdown Nice中即可。例如 MyScript

MyScript手写识别示例
MyScript手写识别示例

顺带一提,上述网站除了可以转换为TeX代码外,还可以转换为MathML代码;而MathML代码在粘贴到Word中并选择“只保留文本 (T)”后可以转换为Word内置的公式格式。

如果只是某个字符或命令忘记了,也可以试试另一个工具Detexify

Detexify手写识别示例
Detexify手写识别示例

截图识别

如果不想手写公式,也可以直接拿别人写好的公式截图识别。例如Mathpix Snip

Mathpix Snip截图识别示例
Mathpix Snip截图识别示例

该软件在多平台有客户端,需要注册账号后使用。我个人在注册账号时先后尝试了北大邮箱、126邮箱,但都无法立刻收到验证邮件;而Gmail可以立刻收到验证邮件,可能是因为邮件服务器在国外吧。

从别的网页查找代码

许多网页上的公式就是由MathJax渲染出来的(例如我的小站),如果你在某个网页上看到了公式,并且在网页加载过程中左下角出现了灰色文本框,说明这个公式很有可能是MathJax渲染出来的。此时可以右键单击公式 → Show Math As → TeX Commands,即可查看TeX代码。我的小站需要用“查看源代码”功能才能找到公式的TeX代码。

网页查找代码示例
网页查找代码示例

另外,如果右键单击公式 → Show Math As → MathML Code,则可以得到MathML代码,类似“手写公式”中的介绍,此代码也可复制到Word中显示。

用TeX编辑器写公式

网页上也有一些TeX编辑器,有些仅仅能实时渲染,有些提供了工具栏,方便输入。比较常见的TeX编辑器:知乎

知乎公式编辑器示例
知乎公式编辑器示例

另外,如果对TeX语法感兴趣,可以查找一些教程,例如:知乎问题:知乎上的公式是怎么打出来的?

从Word中粘贴公式

从Word中复制粘贴公式也是可以得到TeX代码的,参见上一段的介绍。

用Word粘贴TeX代码
用Word粘贴TeX代码