ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Markdown数学公式模板库:从高频语法到Typora实战导出

Markdown数学公式模板库:从高频语法到Typora实战导出 我刚开始用 Markdown 写技术文档时最崩溃的不是排版而是数学公式。每次要输入一个求和符号或者矩阵都得停下来翻语法手册今天查一下\sum怎么打明天查一下\begin{bmatrix}怎么写一篇带公式的笔记写完三分之一时间都浪费在“查怎么表达”上面。后来我痛定思痛在本地建了一个 Markdown 数学公式模板库把平时写文档、写博客、记笔记时用到的高频公式全部整理到一个文件里需要哪个直接复制公式语法这件事才算彻底闭环。这篇就把我搭建这套模板库的思路、里面的核心模板、踩过的坑和最终的使用习惯一次性分享出来希望对你也有用。1. 先把需求盘清楚模板库到底解决什么问题1.1 真正的痛点不是语法难而是“每次都要临时查”LaTeX 语法本身并不难常用符号就那么几十个真正让人心烦的是“记忆负担”。我今天写个行内公式$x^2$明天写个分式\frac{1}{2}后天写个极限\lim_{x \to \infty}每个都是单独查一次。更麻烦的是查完不一定记得住下次写还是要再查一遍。我见过很多人在网上收藏了一堆“LaTeX 语法大全”的帖子真到写文档的时候还是得从头翻。原因很简单大全类的内容太全了从数学符号到排版细节几百条你根本不知道自己现在该看哪一条。而模板库的逻辑刚好相反它只收纳你实际用过的、高频复用的那部分公式更像一个“个人高频快捷键列表”。比如我最常用的是上下标、求和、积分、矩阵、分段函数模板库里就重点收录这些冷门符号直接忽略等真用到再临时补进去。1.2 模板库的定位不是教学文档是即插即用的速查手册这个定位很关键。模板库不是写给新手看的学习资料而是写给自己用的“抄作业”工具。它追求的不是系统性而是“拿来就能用”。我见过有人把模板库做成了几十页的 PDF里面每个公式都配了详细推导最后反而因为太重从不打开。我的做法相反模板库就是一个.md文件里面每个模板分成两段第一段是 LaTeX 源码放在代码块里方便复制第二段是渲染效果放在公式块里确认样式。通过 Typora 或者任意支持 LaTeX 渲染的 Markdown 编辑器打开左边是源码右边或下方是效果复制走就能直接嵌入自己的文档。这套结构非常轻打开文件到找到公式复制前后不到十秒。这样设计还有一个附带好处因为文档足够轻我敢把它放在工作目录、临时项目甚至手机里任何设备打开都能用。反而是那种“完整手册”类的东西永远不会出现在你的实际写作流里。1.3 用模板库写作输出效率能提升多少我个人体会是建立模板库之后带公式的文档写作速度至少提升了一倍。以前写一段带矩阵的推导从回忆语法到试错可能要五六分钟现在直接复制模板改几个下标三十秒就搞定。更重要的是因为模板库里保存的都是“验证过能正确渲染”的写法你不会在输出端再踩“公式显示为源码”之类的二次坑。所以这篇文章后面分享的每一个公式模板都不是网上抄来的冷冰冰语法而是我日常写作中反复使用、确认 Typora 和 Pandoc 都能正确处理的版本。你可以在自己的模板库里直接复刻再按使用频率慢慢增删。2. 语法基础与高频符号模板先搞定这些再谈进阶2.1 行内公式与块级公式先搞清楚两种模式的区别所有 Markdown 数学公式都分两种模式行内公式inline和块级公式block。行内公式用单个美元符号包裹比如$Emc^2$它嵌在文字段落里不会把段落拆开块级公式用双美元符号包裹比如$$Emc^2$$它会另起一行居中显示适合展示独立的公式或推导过程。这个区别看起来简单实际使用中踩坑最多。行内公式里你不能用\\换行因为行内公式根本没有“多行”这个概念你一换行Typora 直接给你渲染成一坨乱码而块级公式内部可以用\\换行也可以嵌套aligned这类多行环境。另一个坑是行内公式和中文之间的间距比如“当 $x1$ 时”这种写法有的编辑器会渲染出很别扭的贴边效果我一般在行内公式前后手动加一个英文空格比如“当 $x1$ 时”视觉效果会舒服很多。在 Typora 里插入块级公式最快的办法是直接输入$$然后按回车它会自动生成一个公式编辑区域你也可以用菜单栏“段落-公式块”或者快捷键CtrlShiftM。输入过程中公式是实时渲染的但如果遇到复杂的矩阵或多行结构Typora 的实时预览会卡顿甚至暂时错乱这时候不需要慌把光标点开再点回来或者切换一下源码模式渲染就会刷新。网上经常搜到“Typora 刷新数学公式”的提问说的就是这个现象本质是编辑器的渲染引擎在复杂表达式下需要一次强制重绘。2.2 上下标、分式、根式最常用的一批基础模板上下标是公式的地基。上标用^下标用_单个字符直接跟在后面就行比如$x^2$、$a_i$。如果是多位数字或字母组合必须用花括号包起来$x^{2n}$、$a_{i1}$不写花括号会只作用于第一个字符渲染出来完全不是你想要的。分式用\frac{分子}{分母}这个命令我建议你直接记住别用斜杠/代替。斜杠写出来的分式在文章里丑且不规范更严重的是嵌套场景下斜杠分式会变得极难阅读比如$a/b/c$到底是从左算还是从右算读者根本看不出来。用\frac可以嵌套比如\frac{1}{1\frac{1}{x}}能渲染出连分式结构清晰。根式用\sqrt{表达式}开任意次方用\sqrt[n]{表达式}。实操中我有个建议别把太长的式子整个塞进根号里比如写\sqrt{a^2b^2c^2d^2e^2}虽然语法没错但视觉上根号内部内容过长排版会很重。更好的做法是拆成多个根式组合或者定义中间变量。模板库里我存了标准根式、连分式、组合上下标三个模板覆盖了日常 80% 的基础场景。2.3 求和、积分、极限三个高频运算符模板这三个运算符在“上下限”的表现上跟上下标很相似但有一个关键差异需要记住在行内模式下\sum、\int、\lim的上下限会显示在符号的右侧这是为了不撑高行内文字在块级模式下上下限会显示在符号的正上下方这是约定俗成的正式排版。所以你写全量公式、推导步骤时尽量用块级展示行内写简写形式就好。求和模板\sum_{i1}^{n} x_i块级效果是上下标在符号正上下。积分模板\int_{a}^{b} f(x) dx注意积分号前的dx我习惯用正体加一个空格即\mathrm{d}x或者\, dx这样不会跟变量x混淆。极限模板\lim_{x \to \infty} f(x)这里的\to是箭头如果你用\rightarrow也行效果一样。还有一个容易忽略的多个条件的下标比如\max_{0 \le x \le 1} f(x)直接用\le表示小于等于不需要写\leq两者是一个命令。2.4 希腊字母与常用数学符号组一张你自己的速查表公式里难免出现希腊字母但不用特意背全量表。我的经验是先记\alpha、\beta、\gamma、\theta、\lambda、\mu、\pi、\sigma、\omega日常写数学推导基本覆盖了。大写形式把首字母改成大写即可比如\Gamma、\Delta、\Theta、\Lambda、\Sigma、\Omega。真正容易出问题的是大写\Pi圆周积和\prod连乘的区别\Pi是一个字母\prod是一个运算符两者渲染位置完全不同。其他高频符号里比较关系用\leq、\geq、\neq、\approx运算关系用\times、\div、\pm、\cdot、\infty、\partial箭头用\to、\Rightarrow、\Leftrightarrow。这些符号没有特殊格式记住一个最简版本就行比如“不等于”我用\neq有些编辑器也支持\ne但为了统一我模板库里只保留\neq。我整理了一张常用符号速查表直接放在模板库的开头位置类别LaTeX 写法渲染效果备注上标x^{2n}$x^{2n}$多字符必须加花括号下标a_{i1}$a_{i1}$同上分式\frac{a}{b}$\frac{a}{b}$可嵌套根式\sqrt[n]{x}$\sqrt[n]{x}$开方次数可选求和\sum_{i1}^{n}$\sum_{i1}^{n}$块级上下限在正上下积分\int_{a}^{b}$\int_{a}^{b}$加\mathrm{d}区分变量极限\lim_{x \to \infty}$\lim_{x \to \infty}$行内显示在侧边不等于\neq$\neq$也可用\ne小于等于\leq$\leq$上下标变体用\leqslant偏导\partial$\partial$常用于微积分无穷\infty$\infty$箭头\Rightarrow$\Rightarrow$更常用的还有\to这张表不用多背写的时候看一眼模板库就能快速定位。3. 进阶模板矩阵、多行公式、分段函数与公式编号3.1 矩阵的五种括号写法分别用在什么场景矩阵在 Markdown 公式里其实不复杂核心是一个\begin{环境名}...\end{环境名}结构行与行之间用\\分隔同一行的列与列之间用分隔。区别在于环境名不同边框样式就不同。我按照使用频率给你列一下matrix无边框矩阵最朴素的排列。适合表示纯元素集合但一般只用于内部推导。pmatrix圆括号矩阵( )适合表示行向量、列向量或者数学意义上需要括号包裹的矩阵。bmatrix方括号矩阵[ ]这是我最常用的写一般矩阵、线性方程组时都用它。vmatrix单竖线矩阵| |通常表示行列式。Vmatrix双竖线矩阵|| ||通常表示矩阵范数。给你一个直接可复制的方括号矩阵模板书写线性代数笔记时最常用$$ \begin{bmatrix} a_{11} a_{12} \cdots a_{1n} \\ a_{21} a_{22} \cdots a_{2n} \\ \vdots \vdots \ddots \vdots \\ a_{m1} a_{m2} \cdots a_{mn} \end{bmatrix} $$渲染出来就是一个标准的 $m \times n$ 矩阵。注意里面的\cdots横向省略号、\vdots竖向省略号、\ddots斜向省略号我都是直接复制的记不住也不影响模板在手就行。行内矩阵用matrix环境配合\bigl括号可以避免撑高行距比如$\bigl( \begin{smallmatrix} 1 2 \\ 3 4 \end{smallmatrix} \bigr)$但实际写作中涉及矩阵的公式几乎都值得单独占一块没必要硬塞进行内所以我的模板库里只放块级版本行内小矩阵作为一个补充条目放在旁边。3.2 多行公式如何对齐aligned、cases、align 的选用逻辑写推导过程时经常需要多行公式对齐这里最容易混淆的是aligned和align。简单记align环境自带公式编号每一行会默认生成(1)(2)(3)如果你只想展示推导过程不想带编号就别用它aligned环境不带自动编号它必须嵌在$$...$$里面用配合符号指定对齐位置。我模板库里的对齐模板长这样$$ \begin{aligned} S \sum_{i1}^{n} x_i^2 \\ \sum_{i1}^{n} (x_i - \bar{x} \bar{x})^2 \\ \sum_{i1}^{n} (x_i - \bar{x})^2 2\sum_{i1}^{n}(x_i - \bar{x})\bar{x} n\bar{x}^2 \end{aligned} $$这里的放在前面可以让每一行的等号严格对齐。你会看到第二行等号后面的表达式我主动拆成了多行这是长公式排版的常见技巧在、-这类运算符前换行比在中间硬拆更易读。分段函数用cases环境这是它的经典场景。写法如下$$ f(x) \begin{cases} x^2, x 0 \\ 0, x 0 \\ -x^2, x 0 \end{cases} $$这个模板我几乎每周都会用到尤其是写算法复杂度分析、分段定义函数的时候。cases环境里前面是公式部分后面是条件部分第二个之后可以留一个空格再来写条件排版上更清晰。3.3 公式编号与引用什么时候用编号什么时候不用学术写作里公式编号是个硬需求但 Markdown 本身对公式编号的支持非常有限。我的经验是绝大多数个人笔记和博客文章根本不需要给公式编号因为编号的目的是让读者能在文中“引用”而个人文档里你不会真的写“由公式(3-2)可得”这种话。需要编号的场景主要是论文、报告、实验手册这类需要正式引用的文档。如果你确实需要编号最不折腾的方案是手动用\tag{编号}命令比如$$Emc^2 \tag{1}$$Typora 能正确渲染成带编号的公式。但要注意这个编号是写死的文档改动了它不会自动更新。还有更进阶的\label加\ref跨位置引用方案在 Typora 里支持得非常有限我试过几次都放弃了最终方案是写文档时手动维护一个编号文本导出前再检查一遍。用 Pandoc 把 Markdown 转成 Word 或 LaTeX 时公式编号的表现又不一样。Pandoc 会自动识别tag并处理成输出格式的编号吗实测下来\tag在导出 Word 时经常丢失或者变成普通文本所以如果你要走 Pandoc 导出流程建议不要过度依赖\tag尽量让公式在输出端“无编号”然后把编号放到正文里以文本形式写出这样最保险。热词里提到的“markdown转word序号自动编号”问题多半就出在这里Markdown 公式编号本质是 LaTeX 世界的东西到了 Word 的 OMML 原生化流程中兼容性并不好。3.4 字体与样式黑板体、花体、正体与实际场景公式里的字体也值得单列一节。最常见的需求是写实数集\mathbb{R}、复数集\mathbb{C}、拉普拉斯算子\mathcal{L}、傅里叶变换\mathcal{F}这些符号在数学排版里有专门写法。模板库我存了这几个\mathbb{R}渲染为黑板粗体 $\mathbb{R}$用于数集。\mathcal{L}渲染为花体 $\mathcal{L}$用于算子或函数空间。\mathrm{d}渲染为正体 $\mathrm{d}$用于微分符号避免跟变量d混淆。\boldsymbol{x}渲染为粗斜体向量我写向量推导时经常用。还有一个高频问题是公式里要写中文注释比如“其中”后面跟一段解释。直接用中文写在$...$里会显示成斜体非常难看。正确做法是用\text{...}把中文包起来比如\text{其中 } x \text{ 为变量}这样中文保持正体、与公式混排也协调。这个细节我经常提醒别人公式和文字混排时\text{}是你的朋友。3.5 在公式里标注颜色与重点推导过程的高亮技巧写推导笔记时我经常想标出“这一步用了替换”或者“这个项是关键”。在公式里用颜色高亮确实能做到写法是\textcolor{red}{内容}或\color{red} 内容。Typora 对\textcolor的支持不错推荐用这种。比如我想在一堆推导中强调某个关键项$$ x \frac{-b \pm \sqrt{b^2 - 4\textcolor{red}{ac}}}{2a} $$渲染出来后ac会变成红色一眼就能定位。颜色这个功能要慎用整篇公式全花里胡哨反而失去重点我一般只在一页文档里挑一两处关键节点上色。4. 编辑器与导出实战Typora 里的坑和文档转换方案4.1 Typora 公式不渲染或渲染不刷新的排查思路热词里有一个特别具体的词条“typora刷新数学公式作用”这说明这个问题很多人遇到过。我自己也踩过最常见的情况是在块级公式区域输入到一半发现后面的文字全部消失了或者公式显示成源码。其实这不是 Typora 坏了而是它处于源码模式或者公式块因为某些特殊符号卡住了。我的排查顺序很简单第一步看右下角是否显示“源代码模式”Typora 左下角有个模式切换入口如果是切回“所见即所得”模式。第二步是处理公式块内的空行比如矩阵环境里不小心多敲了一个空行Typora 会误判为公式结束导致后半截全变成文字。第三步是检查特殊符号比如在公式里直接输入了#、_这种在 Markdown 里有特殊意义的字符有的编辑器会跟公式语法冲突建议用\#、\_转义。如果上述都排查完还是不刷新就手动做一个“强制刷新”光标移到公式外随便点击别处或者按CtrlZ再CtrlY撤销恢复一次Typora 就会重绘公式。这个操作虽然看起来笨但实测有效本质就是让编辑器重新执行一次渲染。4.2 表格里写公式竖线符号和单元格对齐的坑Markdown 表格本身不支持块级公式所以表格里的公式一律用行内写法$...$。这里有一个隐藏很深的坑行内公式里如果用到竖线|比如集合符号\{x | x 0\}Typora 和很多渲染器会把|误认为是表格分隔符导致整个表格列数错乱。解决办法有两个一是用\mid代替竖线写成\{x \mid x 0\}渲染效果一样且不会破坏表格结构二是在表格单元格里用\|转义但我更推荐前一种因为\mid在公式语义上本来就更规范。另一个表格内公式的问题是垂直对齐Typora 表格默认居中而公式可能自带行高导致单元格看起来高低不齐。遇到这种情况别硬调 Markdown 源码导出后用 Word 或者在线文档微调一下对齐即可。4.3 从 Markdown 导出 Word/PDF公式怎么处理才不变形这是所有 Markdown 公式用户都绕不开的终极问题。我的标准答案是用 Pandoc。Pandoc 能把 Markdown 里的 LaTeX 公式转换成 Word 的原生公式OMML导出后的 Word 文档公式可编辑、可排版不会变成图片。命令也很简单pandoc input.md -o output.docx这个流程里有个细节要提醒Pandoc 转换时默认对数学公式处理比较保守如果你在模板库里用了\textcolor、\tag这类高级命令Word 导出时大概率出现兼容性问题。我的做法是凡是准备导出 Word 的文档写作时尽量只用基础命令分式、根式、上下标、矩阵、\begin{aligned}颜色和编号留到 PDF 输出时再用。如果你用 Typora 自带的导出功能也可以选择“复制为 MathJax”或“复制为 LaTeX”等选项但最稳定的还是 Pandoc 命令行。还有些人习惯于直接把公式截图粘贴进 Word这个方案“看似成功实则灾难”截图不可编辑、字号不统一、后续修改只能重截在正式报告里绝对不推荐。4.4 在不同平台发布公众号、语雀、Notion 的公式兼容性Markdown 公式在不同的发布平台上支持程度差异很大。我的经验是Typora 本地写作是一回事发布又是另一回事。公众号文章如果你用常见的“公众号 Markdown 格式化工具”很多工具对公式的支持是通过 MathJax 或图片实现的效果不稳定最好先在预览里确认。语雀本身支持 LaTeX 公式但你从 Markdown 粘贴时要注意一些空格和转义符可能发生变化。Notion 对公式的支持也存在类似情况公式编辑界面跟 Typora 有出入有些命令不兼容。所以我的策略是核心内容在本地用 Typora Markdown 维护公式全部用标准 LaTeX 语法书写换平台发布时先导出为 HTML 再粘贴到目标编辑器或者在目标编辑器里用原生公式编辑器重新录入一次。模板库的价值在这里就体现出来了不管换到哪个平台公式源码都是一样的我只需要重新渲染确认一次不用重新回忆语法。5. 我的模板库结构与常见问题速查5.1 模板库文件怎么组织才不落灰我见过不少人下载了一堆模板文件装进收藏夹就再也没打开过。要避免这个问题模板库本身必须极端轻便。我的做法是在本地建一个formula-library.md文件顶部用 Typora 的[TOC]生成目录然后按分类往下排。每个分类的排版方式固定先用一个代码块放一行可以直接复制的公式源码紧接着用公式块放同一个公式的渲染效果。比如“矩阵”分类下先给bmatrix的源码块再给渲染效果然后给pmatrix的源码块和效果。这样你找到分类后上下两秒就能确认“这个确实是我想用的”然后复制走非常顺畅。还有一个我个人觉得非常关键的做法每一条模板条目后面加一行注释写清楚“这个模板用在什么场景”。比如分式模板后面写“用于分数、比例、概率公式”矩阵模板后面写“用于线性方程组、线性变换、行列式”。注释不参与渲染但长期维护时你一眼就能看到它为什么存在于模板库里。5.2 常见问题速查表把踩过的坑直接列出来公式输出端的报错和异常非常多我把踩过的坑汇总成一张速查表放在模板库末尾遇到问题先查这里问题表现主要原因解决方法公式显示为源码\frac{1}{2}编辑器未启用数学公式渲染检查 Typora 设置里的“数学公式”开关切换源码/预览模式块级公式不换行公式块内没有启用多行环境用aligned、cases或直接\\换行大括号大小不自动适配用了普通()/{}改用\left(\right)或\left\{\right\}公式中竖线导致表格错乱表格里用了 符号\begin{aligned}报错忘了嵌在$$...$$中确保aligned环境外层有公式包裹中文在公式里变斜体直接把中文写在公式中用\text{中文}包裹公式编号不更新用了写死的\tag{}手动维护编号或用 Pandoc 转换后校正粘贴到 Word 变图片直接复制预览内容用 Pandoc 转换生成.docx这张表对我的价值非常大因为很多公式渲染问题并不是语法错误而是工具链的兼容性限制。你不需要记住每个命令的完整规格只要知道“遇到这种问题的常规解法是查这张表”就够了。5.3 模板库的后续扩展从数学公式到算法、物理和化学模板库建好之后不是固定不变的它会随着你的使用场景不断生长。我现在模板库里除了纯数学公式还扩展了三个分区物理公式、算法伪代码、化学方程式。物理公式主要是麦克斯韦方程组和热力学公式算法伪代码其实就是 Markdown 代码块加$内嵌公式化学方程式则用\ce{}语法需要开启 Typora 的化学公式支持。我建议你根据职业和写作内容来扩展分类。比如你是做机器学习笔记的重点收藏下标、矩阵、概率相关的模板你是做工程计算的把常用常微分方程、偏微分方程的表达式放进去。模板库的最终形态应该是“记录你真实使用轨迹”的个人工具它不追求大而全追求的是每次打开都有用。5.4 最后分享一个我自己的使用习惯模板库这件事我坚持了大半年最大的改变不是公式写得快了而是“写公式”这个动作本身变得没有心理负担了。以前遇到一个不常用的符号我会纠结要不要为了它打开搜索引擎翻半天现在我的习惯是先翻模板库没有就直接用最朴素的写法临时代替写完再抽空补进模板库。每补一条模板下次写同类文档的时间就缩短一点。我还有一个习惯值得推荐模板库文件本身也用 Git 管理每次新增模板都提交一次。这样万一某次我改坏了某个模板的排版可以随时回退到上一个版本。虽然听起来有点小题大做但这恰恰保证了模板库的长期可用性。用 Git 管一个几百行的 Markdown 文件成本几乎为零长期收益却很实在。这些经验基本覆盖了 Markdown 数学公式模板库从搭建、使用到维护的完整闭环。你现在就可以建一个属于自己的公式模板库不用求全从这篇文章里出现的\frac、\sqrt、\sum、\begin{bmatrix}、\begin{cases}这五个模板开始写几篇带公式的文档后再按需往里面加东西。一套自己亲手整理、亲手验证过的模板库比任何网上下载的“最全公式手册”都顺手得多。
返回列表