跳到主要内容

数学公式

推荐插件

在 Obsidian 内写数学公式,推荐使用 Obsidian LaTeX suite

行内公式​

对于行内公式,使用美元符号 $ 包裹公式内容。例如,$E=mc^2$ 将被渲染为 E=mc2E=mc^2。

markdown示例:

Let $f\colon[a,b]\to\R$ be Riemann integrable. Let $F\colon[a,b]\to\R$ be
$F(x)=\int_{a}^{x} f(t)\,dt$. Then $F$ is continuous, and at all $x$ such that
$f$ is continuous at $x$, $F$ is differentiable at $x$ with $F'(x)=f(x)$.

效果:

Let f ⁣:[a,b]→Rf\colon[a,b]\to\R be Riemann integrable. Let F ⁣:[a,b]→RF\colon[a,b]\to\R be F(x)=∫axf(t) dtF(x)=\int_{a}^{x} f(t)\,dt. Then FF is continuous, and at all xx such that ff is continuous at xx, FF is differentiable at xx with F′(x)=f(x)F'(x)=f(x).

行内的双美元符号也会被识别为行内公式。如 $$E=mc^2$$ 也会被渲染为 E=mc2E=mc^2。

行间公式​

行间公式使用用双美元符号包裹。

例如:

$$
I = \int_0^{2\pi} \sin(x)\,dx
$$

将显示为

I=∫02πsin⁡(x) dxI = \int_0^{2\pi} \sin(x)\,dx
与 Obsidian 的不同之处

当在行内使用双美元符号 $$ 时,会被 Obsidian 强制渲染成行间公式,而上传到知乎上则是行内公式。 如:

inline $$e=mc^2$$ formula

在 Obsidian 内会显示为

inline

e=mc2e=mc^2

formula

而在知乎上则是正常的行内公式:

inline e=mc2e=mc^2 formula

所以建议按照 GFM 的规范,行内公式使用 $ 包裹,行间公式使用 $$ 包裹

表格中的公式​

含行内数学公式的 Markdown 表格会在发布文章、回答或保存草稿时,自动转换为 LaTeX array 行间公式。本地笔记保持原来的 Markdown 表格;不含公式的表格仍使用知乎原生表格。

| 数据 | 反向用途 |
| --- | --- |
| 专家输入 $X_e$ | 计算 Gate/Up WGrad |
| 专家输出 $V_{t,e}$ | 计算 $dp=\langle dY,V\rangle$ |

中文、特殊字符、列对齐、加粗、斜体与行内代码会被转换。长文字自动换行,也可用 <br> 手动换行。数学公式保留源码,不自动拆分;宽公式需自行调整。自动换行不会拆开组合重音、肤色修饰符、ZWJ 表情或国旗字符。转换后,在知乎中需整体编辑公式源码。

包含链接、图片、脚注、删除线或其他 HTML 的公式表格会保留原生形式并显示提示,避免丢失内容;其中公式仍可能无法显示。将这些内容移到表格外,可启用自动转换。

大表格会按公式 URL 长度(最多 7,500 字符)和行数(每块最多 30 行,含表头)拆成多个公式块,每块重复表头;不会拆开单元格。如果表头或单条数据行已经超限,整张表格保留原生形式并提示。

生成内容时,插件会请求知乎公式服务检查各公式块。同一次转换中相同请求只检查一次,每次检查最多等待 10 秒。HTTP 错误、知乎返回的 HTTP 200 错误图片、请求失败或超时都会让整张表格保留原生形式并提示,不会只保留部分行。此检查依赖网络,不能替代最终文章预览,也不能保证任意 LaTeX 命令或超宽公式都能正常排版。

此 array 变通方法参考于连的知乎回答。

常见问题​

知乎的公式是先交给服务端渲染成矢量图,再发送给客户端。这就导致知乎的公式服务器无法获取上下文,也就分不清行内公式和行间公式。所以知乎规定了 末尾处有\\符号的公式为行间公式,否则为行内公式。此外,如果是打上标签(tag)的公式也视为行间公式。

一些 Obsidian 结果与知乎渲染结果存在差异的地方:

  • 知乎公式使用 mathjax 作为后端,但不支持\newcommand命令

  • 由于 mathjax 版本的原因,Obsidian 内的公式渲染可能会和知乎渲染存在一定出入。 如 Obsidian 内允许 {\color{red} some red text},但在知乎必须将 some red text 用花括号括起来:{\color{red} {some red text}}