| title | Markdown |
|---|
Typora 是一款支持所见即所得的 GFM 编辑器。
Typora 的数学公式渲染功能是由 MathJax 实现的,常规用法参见《Math and Academic Functions》。
MathJax 通常需要 CDN 提供在线服务,但 Typora 封装了 MathJax 及一些常用的第三方扩展,因此离线时也可以进行数学公式渲染。
与其他 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)。
下面以 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 文件,由上述文件中的 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 的示例。