网站首页 > 技术文章 正文
大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!
什么是 KaTeX
KaTeX is a fast, easy-to-use JavaScript library for TeX math rendering on the web
KaTeX 是一个快速、易于使用的 JavaScript 库,用于在 Web 上渲染 TeX 数学公式,KaTeX 具有以下特点:
- 快速:KaTeX 同步渲染其数学公式,无需重新排版页面。
- 打印质量:KaTeX 的布局基于 Donald Knuth 的 TeX,这是数学排版的黄金标准
- 自包含:KaTeX 没有依赖项,可以轻松与网站资源打包在一起。
- 服务器端渲染:无论浏览器或环境如何,KaTeX 都会产生相同的输出,因此可以使用 Node.js 预渲染表达式并将其作为纯 HTML 发送
- 兼容性:KaTeX 与所有主流浏览器兼容,包括 Chrome、Safari、Firefox、Opera、Edge 和 IE 11
目前 KaTeX 在 Github 通过 MIT 协议开源,有超过 18k 的 star、2k 的 fork、135k 的项目依赖量、代码贡献者 200+、妥妥的前端优质开源项目。
如何使用 KaTeX
首先需要安装相应依赖:
npm install katex
// 全局安装
npm install -g katex
// 使用 yarn 安装
yarn add katex
开发者可以使用 TeX 表达式和要渲染到的 DOM 元素调用 katex.render:
katex.render("c = \\pm\\sqrt{a^2 + b^2}", element, {
throwOnError: false
});
为了避免转义反斜杠(双反斜杠),开发者可以使用 String.raw (但要注意 ${、\u 和 \x 可能仍然需要转义):
katex.render(String.raw`c = \pm\sqrt{a^2 + b^2}`, element, {
throwOnError: false
});
如果开发者要在服务器上生成 HTML 或生成渲染数学的 HTML 字符串,可以使用 katex.renderToString:
var html = katex.renderToString("c = \\pm\\sqrt{a^2 + b^2}", {
throwOnError: false
});
// 输出内容 '<span class="katex">...</span>'
同时,为了在文档中保存宏,可以使用下面的方式:
const macros = {};
for (let element of mathElements) {
katex.render(element.textContent, element, {
throwOnError: false,
macros
};
}
需要注意的是,开发者需要在循环外创建宏对象。如果作者使用 \gdef,KaTeX 会将该宏定义插入到宏对象中,并且由于宏在调用 katex.render 之间继续存在,\gdef 宏将在 mathElements 之间持续存在。
更多关于 KaTeX 的用法和示例可以参考文末资料,本文不再过多展开。
参考资料
https://github.com/KaTeX/KaTeX
https://katex.org/docs/api
https://www.youtube.com/watch?v=LGbGnzKWipI
- 上一篇: 如何实现渲染?万条数据?
- 下一篇: 为何 nivo 能成为 D3 图表渲染库顶流?
猜你喜欢
- 2025-01-20 threejs渲染高级感可视化涡轮模型
- 2025-01-20 跨平台渲染乐谱?如何能不用 alphaTab 呢?
- 2025-01-20 为何 nivo 能成为 D3 图表渲染库顶流?
- 2025-01-20 FixedDataTable: React.js 灵活快速延迟表格渲染?
- 2025-01-20 如何实现渲染?万条数据?
- 2025-01-20 前端流行框架Vue3教程:2. Vue模板语法(3)条件渲染
- 2025-01-20 前端运行机制--页面渲染流程
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- oracle面试 (55)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)