KaTeX 数学排版扩展与工具完整指南
【免费下载链接】KaTeXFast math typesetting for the web.项目地址: https://gitcode.com/GitHub_Trending/ka/KaTeX
正文里公式一多,两个问题就来了:每条公式都要手动调用渲染,代码写得碎;读者选中公式一复制,粘回编辑器就是一堆乱码。KaTeX 是一款面向 Web 的快速数学排版库,在浏览器里同步渲染 LaTeX 公式,它的contrib/目录提供了一套官方扩展,正好覆盖这两类场景。
📋 扩展选型速查表:先看场景
| 场景/痛点 | 对应扩展 | 一句话效果 |
|---|---|---|
| 长文公式多,逐个调用渲染太繁琐 | auto-render | 扫描文本节点,带分隔符的公式自动渲染 |
| 复制公式粘回编辑器就乱了 | copy-tex | 复制时剪贴板带出 LaTeX 源码 |
| 化学课程页面要排反应方程式 | mhchem | 提供\ce与\pu命令,语法兼容 LaTeX 生态 |
| 存量页面用了 MathJax,想迁移 | mathtex-script-type | 直接渲染<script type="math/tex">里的公式 |
| 站点要适配屏幕阅读器 | render-a11y-string | 把公式转成可朗读的文本描述 |
分场景详解:每个扩展怎么用
何时用 Auto-render 自动渲染公式
适合正文是纯文本、公式分散在长文各处的课程页和文档站。它遍历指定容器下的文本节点,识别$...$、$$...$$这类分隔符并原地渲染,省去逐个调用katex.render的工作。分隔符可自定义,还能排除不需要扫描的标签。
<script defer src="contrib/auto-render.min.js" onload="renderMathInElement(document.body)"></script>复制公式要出 LaTeX 源码怎么办(copy-tex)
适合问答、作业平台等读者常复制公式回编辑器继续编辑的场景。它接管复制行为:选中已渲染公式时,剪贴板的文本部分变成带分隔符的 LaTeX 源码,默认内联$...$、块级$$...$$,改源码里的copyDelimiters即可换成\(...\)、\[...\]。只选中半条公式时会自动扩展到整条。
<script defer src="katex.min.js"></script> <script defer src="contrib/copy-tex.min.js"></script>mhchem 化学式扩展怎么开
适合需要排化学方程式的教育与科研页面。它给 KaTeX 增加\ce(方程式)和\pu(单位)两个命令,语法与 LaTeX 生态的 mhchem 包一致,写\ce{2H2 + O2 -> 2H2O}就能得到规范排版。注意加载位置:在核心库之后、auto-render 之前。
<script defer src="katex.min.js"></script> <script defer src="contrib/mhchem.min.js"></script>如何迁移 MathJax:mathtex-script-type
适合存量页面用 MathJax、想整体换成 KaTeX 的情况。加载后它会找到页面上所有<script type="math/tex">标签(MathJax 的惯用写法)并渲染其中内容,公式的存放格式一行都不用改。
<script defer src="contrib/mathtex-script-type.min.js"></script>公式继续按 MathJax 习惯写,例如<script type="math/tex">x+\sqrt{1-x^2}</script>。
如何开启屏幕阅读器无障碍支持(render-a11y-string)
适合对可访问性有要求的学术站点。它把公式解析后输出一串逗号分隔的语义描述,例如\frac{1}{2}会得到 "start fraction, 1, divided by, 2, end fraction",屏幕阅读器即可按结构朗读。
import renderA11yString from "katex/contrib/render-a11y-string"; renderA11yString("\\frac{1}{2}");⚠️ 集成与避坑:上线前过一遍
- 加载顺序:核心
katex.min.js最先,mhchem在auto-render之前,否则扫描时\ce尚未注册。 - 版本对齐:核心与所有扩展保持同一版本,用同一个 npm 包的
katex/contrib/...子路径,别混用。 defer要一致:若核心库去掉了defer,各扩展脚本也必须同步去掉,否则会报未定义。- 长页面控制渲染范围:
renderMathInElement传具体容器,配合ignoredTags、ignoredClasses跳过非数学区域,别默认扫整页。 - copy-tex 依赖 Clipboard API,较老浏览器不生效,属正常现象。
📚 文档与资源
- contrib/ 目录:五个官方扩展的源码与示例页,动手前先看这里的
README.md - docs/api.md:
katex.render、renderToString等 API 参考 - docs/autorender.md:auto-render 的分隔符、忽略标签等配置说明
- docs/supported.md:KaTeX 支持的 LaTeX 命令清单
- CONTRIBUTING.md:想自己写扩展或提改进,从这里入手
contrib/里的扩展不给 KaTeX 增加任何额外依赖,每个只解决一个场景。按上表对号入座、按顺序加载,公式体验就能贴近完整的 LaTeX 生态。挑一个痛点先跑通它,再逐个补齐。
【免费下载链接】KaTeXFast math typesetting for the web.项目地址: https://gitcode.com/GitHub_Trending/ka/KaTeX
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考