数学和学术功能 #

Typora 支持使用 Tex/LaTeX 语法渲染普通数学。渲染过程是由 MathJax (opens new window) 支持。

数学块(显示数学) #

例如,数学块是由 $$ 标记和换行符包裹的 LaTeX 表达式。

$$
\begin{align*}
y = y(x,t) &= A e^{i\theta} \\
&= A (\cos \theta + i \sin \theta) \\
&= A (\cos(kx - \omega t) + i \sin(kx - \omega t)) \\
&= A\cos(kx - \omega t) + i A\sin(kx - \omega t)  \\
&= A\cos \Big(\frac{2\pi}{\lambda}x - \frac{2\pi v}{\lambda} t \Big) + i A\sin \Big(\frac{2\pi}{\lambda}x - \frac{2\pi v}{\lambda} t \Big)  \\
&= A\cos \frac{2\pi}{\lambda} (x - v t) + i A\sin \frac{2\pi}{\lambda} (x - v t)
\end{align*}
$$

将被渲染为

(opens new window)

在 typora 中,你可以只按 $$Return 键来输入一个数学块,在输入模式下,使用上/下箭头键或 Command/ Ctrl + Return 键来完成编辑,或直接点击✓ 按钮,或其他地方。

Inline Math #

首先,请从偏好设置->Markdown 部分启用 inline math 功能。可以从菜单栏打开偏好设置:文件 -> 偏好设置...,或者使用快捷键 - command/ ctrl + ,。这一设置将在 Typora 重新启动后应用。

内联数学使用这样的语法 $<Math Expressions>$,例如:$f = \frac{2 \pi}{T}$

Typora 中可用的 TeX 命令 #

你可以在 http://docs.mathjax.org/en/latest/input/tex/macros/index.html (opens new window) ,找到所有支持的 TeX 命令。

你可以使用 \def\newcommand 添加新的命令。比如说。

$$
\def\bold#1

\bold{this\ is\ now\ bold}
$$

Chemistry Expressions #

Typora 有内置的 mhchem (opens new window) 扩展,可以用来渲染化学表达式,你可以像这样使用。

$\ce{CH4 + 2 $\left( \ce{O2 + 79/21 N2} \right)$}$

这将被渲染为

更多细节,请参考 https://mhchem.github.io/MathJax-mhchem/ (opens new window)

相互参照 #

例如,Typora 支持 TeX 风格的引用语法。

Here is a labeled equation:

$$
x+1\over\sqrt{1-x^2}\label{ref1}\tag{1}
$$

This is a reference : $\ref{ref1}$

自动编号 #

Typora 支持自动编号的数学块。要打开这个功能,请打开偏好设置,并在 "Markdown "部分启用 "自动编号数学方程"。

故障排除 #

强制刷新 #

当数学渲染出错时,比如输出的数学太野/太窄,或者方程编号变得不正确,你可以从 编辑数学工具 菜单中触发对所有数学的强制刷新。

displaylines #

从 v0.11.0 开始,Typora 升级到 MathJax v3,它不支持使用 MathJax v2 中的 \\\newline,行为与 LaTeX 相同,除非你把它们放在 \displaylines{} 环境中,比如说。

\displaylines{x+y\\y+z}

所以你可以使用 \displaylines,作为一种变通方法。

从 v0.11.1 开始,Typora 在 Preferences PanelMarkdownMath 下提供了一个新选项 "Apply Line Break at \"。通过启用它,如果你的内容包含 \\\newline,Typora 将自动用 \displaylines 来包装你的数学内容,以实现与以前版本相同的行为。但它可能会带来一些意想不到的问题,所以如果你在启用它后遇到任何数学问题,请尝试禁用该选项,并向我们报告,如果它是原因。

建议使用 \displaylines,而不是启用 "Apply Line Break at\"来添加数学中的换行符。

限制条件 #