Featured image of post 在Typora中输入正体偏微分号的方法

在Typora中输入正体偏微分号的方法

本文中使用的Typora版本号为1.8.9,操作系统是Windows 11。

国家标准GB/T 3102.11-1993中规定,已定义的算子用正体字母表示。虽然该标准正文举例时,仅微分符号采用正体,而偏微分符号采用斜体,但依前述说明及现实实践,应当认为二者都要采用正体。

Typora作为所见即所得的Markdown编辑器,也基于$\TeX$语法提供了良好的数学支持:在Typora中,只需要用一对美元符号将数学公式括起来,即可输入数学公式,并支持实时预览。基于Typora官网的介绍,可知这种轻便的实现事实上基于MathJax。不需要复杂的编译环境就可在Markdown输入数学公式,这种轻便的实现自然有其代价:在Typora中没办法像$\LaTeX$环境那样导入各种复杂的宏包。

对于正体的微分符号$\mathrm{d}$,尚可使用\mathrm指令,轻松将其显示为正体。

但对于偏微分符号,$\LaTeX$环境中可以使用newtx宏包中的\uppartial命令。但是对于不能导入宏包的Typora来说,如何将其显示为正体呢?

既然Typora的公式渲染基于MathJax,那么可以考虑在MathJax中寻找答案。考虑到偏微分符号与希腊字母类似,观察upgreek的实现。Typora中默认启用了upgreek,理论上例如\upbeta就可以得到正体的字母$\upbeta$。可是实际测试发现,\upbeta得到的字母$\beta$并未显示为正体,而是显示为一种不同字体的斜体。经观察,显示的字体是游明朝,即博主所用日文Windows操作系统下默认的衬线体,把希腊字母做成全角斜体也是日文字体的传统艺能了。

既然如此,也就知道了upgreek的实现原理:调用系统默认衬线体。若调用到Times New Roman字体,便可得到正体的希腊字母$\upbeta$。我有点不敢继续想下去:若是简体中文操作系统、调用到中易宋体,这时的希腊字母将会是怎样一番绮丽景象呢?

既然知晓了upgreek简单粗暴的实现原理,那么要打出正体的偏微分符号(以及修改正体希腊字母的渲染字体)也就不难了。

首先修改公式文字的渲染字体:打开主题文件夹%AppData%\Typora\themes,编辑当前使用主题的css,在末尾添加:

1
2
3
.MathJax text, .MathJax use {
    font-family: 'Latin Modern Math'; /* 替换为你要使用的字体 */
}

这里使用的Latin Modern Math字体风格与默认公式字体风格相同,以实现显示的一致性。当然也可以选择其他字体,不过请注意Times New Roman等许多字体中的偏微分符号“U+2202被设计为始终倾斜,若用了这种字体无论怎样都无法显示正着的偏微分符号。

修改完成后,重新打开Typora,输入公式$\unicode{x2202}$,就可以得到正体的偏微分符号了。理论上$\text{∂}$也可以,不过在我这里出于不明原因显示为斜体,所以仍用前者。

这样每次需要写偏微分符号时都较为麻烦,我们用下面的代码把它连同正体的微分符号一起放在文档开篇作为宏定义:

1
$\def\dif{\mathop{}\!\mathrm{d}}\def\uppartial{\mathop{}\!\unicode{x2202}}$

这样就将正体的微分符号定义成了\dif、偏微分符号定义成了\uppartial,整篇文档后续中都可以再次调用。

最后更新于 2024年4月11号