KaTeX 网页LaTeX排版:4个扩展与1套接入方式,让公式在你的页面里跑起来
【免费下载链接】KaTeXFast math typesetting for the web.项目地址: https://gitcode.com/GitHub_Trending/ka/KaTeX
KaTeX 是一个面向网页的快速数学公式渲染库:你写 LaTeX 源码,它同步输出印刷级排版,没有依赖、不触发页面回流。下面按你实际会碰到的 4 个场景,讲清楚每个扩展解决什么问题,以及怎么接进来。
📝 正文里公式多到没法逐条手写:auto-render 自动扫描
你遇到的问题:博客、课程页、知识库文章里公式散落在正文中,你不可能每写一段就去手动调用一次渲染函数。
哪个能力解决:auto-render 扩展会扫描你指定 DOM 区域里的所有文本节点,按分隔符(默认$...$与$$...$$)找到公式并就地渲染,自动跳过<pre>等标签。正文怎么写就怎么排版,你不用改内容结构。
怎么接入:页面里加载扩展后执行一行renderMathInElement(document.body),分隔符和要忽略的标签都能在参数里自定义,细节见 contrib/auto-render/README.md。
🧪 化学方程式写不出来:mhchem 补上 \ce
你遇到的问题:2H2 + O2 -> 2H2O这类内容不是纯数学表达式,用普通 LaTeX 手写又长又难看。
哪个能力解决:mhchem 扩展把 LaTeX mhchem 包的\ce(化学方程式)和\pu(单位量值)带进 KaTeX,支持复杂方程式、同位素和命名表示。你直接写\ce{2H2 + O2 -> 2H2O},得到规范的化学式排版。
怎么接入:在katex.js之后加载一个脚本即可,写法参考 contrib/mhchem/ 里的说明。
✂️ 用户复制公式后没法带走源码:copy-tex 剪贴板增强
你遇到的问题:读者 Ctrl+C 你渲染好的公式,粘贴到别处只得到一串 HTML,LaTeX 源码丢了。
哪个能力解决:copy-tex 扩展拦截复制行为——复制时剪贴板里同时写入带分隔符的 LaTeX 源码和格式化内容,内联公式与块级公式的处理方式不同,粘贴到文档或论文里可以直接复用。
怎么接入:同样是一个脚本的事,实现代码在 contrib/copy-tex/,想看行为细节直接读源码。
🔁 老站用 MathJax 的写法,迁移成本高:mathtex-script-type 兼容
你遇到的问题:旧站点把公式写在<script type="math/tex">标签里(MathJax 的习惯做法),换成 KaTeX 后这些内容全不认。
哪个能力解决:mathtex-script-type 扩展让 KaTeX 直接接管这类既有 script 标签并渲染,内容一个字都不用改,适合做平滑迁移。
怎么接入:加载对应扩展脚本后,页面里原有的math/tex标签即被识别,参考 contrib/mathtex-script-type/。
🔩 最小接入组合:先核心,再按需加扩展
一套能跑的最小配置是:一份katex.css+ 核心katex.min.js+ 你需要的扩展脚本,全部走 CDN 或自托管同一版本。
| 能力 | 什么时候用 | 接入成本 |
|---|---|---|
| 核心 KaTeX | 任何公式渲染的地基 | 1 个 CSS + 1 个 JS |
| auto-render | 静态正文里批量找公式 | 多 1 个脚本 + 1 行调用 |
| mhchem | 化学方程式、单位 | 多 1 个脚本 |
| copy-tex | 用户需要复制公式源码 | 多 1 个脚本 |
| mathtex-script-type | 从 MathJax 迁移 | 多 1 个脚本 |
如果你的公式是在组件或服务端动态生成的,不用 auto-render:在 Node.js 里用katex.renderToString预渲染出 HTML 下发,浏览器端连 JS 都可以省掉——各环境输出一致,这正是 KaTeX 适合做 SSR 的原因。另外 contrib/render-a11y-string/ 可以为屏幕阅读器生成公式的朗读文本,做无障碍时留意一下。
⚠️ 避坑清单:四个新手最常踩的点
- 加载顺序:所有扩展脚本必须放在
katex.js之后;mhchem 还要放在 auto-render 之前,否则\ce不会被识别。 - 版本要一致:核心与扩展来自不同版本时,容易出现命令失效或样式错乱的玄学问题。
- 渲染范围要收敛:长页面别无脑扫
document.body全区,用ignoredTags、ignoredClasses把范围限定在正文容器内,性能差距明显。 - CSS 和字体别漏:少了
katex.min.css或字体文件,排版会直接散架;用了defer就全套统一用defer,别混着来。
把上表里符合你场景的那几行搬进页面,公式马上就能跑起来——剩下的问题,交给 docs/ 里的 API 与选项文档去查。
【免费下载链接】KaTeXFast math typesetting for the web.项目地址: https://gitcode.com/GitHub_Trending/ka/KaTeX
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考