Typora 是一款支持所见即所得的 GFM 编辑器。
Typora 的数学公式渲染功能是由 MathJax 实现的,常规用法参见《Math and Academic Functions》。
MathJax 通常需要 CDN 提供在线服务,但 Typora 封装了 MathJax 及一些常用的第三方扩展,因此离线时也可以进行数学公式渲染。
⚠️ GFM 不支持数学公式渲染,因此本节所提及的效果只在 Typora 中可见。
\def
定义局部宏与其他 Markdown 渲染工具一样,在数学环境内,可以用 TeX 命令 \def
定义一些宏 (macro)。 这些宏的作用域 (scope)为当前文件,例如:
$$
\def\RR{\mathbb{R}}
\def\Differential#1{\mathrm{d}#1}
\def\PartialDerivative#1#2{\frac{\partial #1}{\partial #2}}
\RR \quad
\Differential{x} \quad
\PartialDerivative{u}{t}
$$
效果如下(只在 Typora 中可见):
\[\def\RR{\mathbb{R}} \def\Differential#1{\mathrm{d}#1} \def\PartialDerivative#1#2{\frac{\partial #1}{\partial #2}} \RR \quad \Differential{x} \quad \PartialDerivative{u}{t}\]为了让自定义宏的作用域为所有本地 Markdown 文件,需要将宏的定义写在 Typora 内部(引自 masonlr)。 ⚠️ 更新或重新安装 Typora 后,需要重新进行配置。
下面以 macOS 10.15.5 (19F101) 上的 Typora 0.9.9.34 (4498) 为例。
用文本编辑器打开 /Applications/Typora.app/Contents/Resources/TypeMark/index.html
文件,找到其中的 TeX
字段,修改前应该是下面这个样子:
TeX: {
extensions: ["noUndefined.js", "autoload-all.js", "AMSmath.js", "AMSsymbols.js", "mediawiki-texvc.js"],
mhchem: { legacy: false }
},
将全局自定义宏写入 Macros
中:
TeX: {
extensions: ["noUndefined.js", "autoload-all.js", "AMSmath.js", "AMSsymbols.js", "mediawiki-texvc.js"],
Macros: {
BlackboardBold: ["\\mathbb{#1}",1],
Calligraphic: ["\\mathcal{#1}",1]
},
mhchem: { legacy: false }
},
设置完成后,在数学环境中可以直接使用这两个命令(效果在重启 Typora 后可见): \(\BlackboardBold{A} \equiv \mathbb{A} \qquad \Calligraphic{B} \equiv \mathcal{B}\)
.js
文件更符合模块化原则的方案是:将全局自定义宏写入 .js
文件,由上述文件中的 extensions
对其进行调用。MathJax 提供了一些模仿同名 LaTeX 宏包的第三方扩展文件。如果对其效果不满意,可以自己写一个 mymacros.js
文件。
下面以(自 Typora 0.11.0 (5581) 起默认被引入的)physics.js
为例:
/Applications/Typora.app/Contents/Resources/TypeMark/lib/MathJax3/es5/input/tex/extensions
文件夹中。/Applications/Typora.app/Contents/Resources/TypeMark/index.html
文件中,找到 TeX
字段,将 "physics.js"
追加到 extensions
的尾部。设置完成后,在数学环境中可以直接使用 physics.js
中定义过的命令(效果在重启 Typora 后可见):
自 2018 年 8 月起,Typora 支持用 <a href id="anchor_name"></a>
设置锚点 (anchor)。 该功能可用于
\def
定义局部宏》《在配置文件中定义全局宏》《引入第三方 .js
文件》将较为繁琐。在配置文件 /Applications/Typora.app/Contents/Resources/TypeMark/index.html
中的 </head>
标签前添加以下内容:
<link rel="stylesheet" href="path-to-your.css">
pvcstyle.css
可作为样式文件 path-to-your.css
的示例。