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
的示例。