数学公式
在 Obsidian 内写数学公式,推荐使用 Obsidian LaTeX suite
行内公式
对于行内公式,使用美元符号 $ 包裹公式内容。例如,$E=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 be Riemann integrable. Let be . Then is continuous, and at all such that is continuous at , is differentiable at with .
行内的双美元符号也会被识别为行内公式。如 $$E=mc^2$$ 也会被渲染为 。
行间公式
行间公式使用用双美元符号包裹。
例如:
$$
I = \int_0^{2\pi} \sin(x)\,dx
$$
将显示为
当在行内使用双美元符号 $$ 时,会被 Obsidian 强制渲染成行间公式,而上传到知乎上则是行内公式。
如:
inline $$e=mc^2$$ formula
在 Obsidian 内会显示为
inline
formula
而在知乎上则是正常的行内公式:
inline 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}}