微信答题小程序支持latex公式显示解决方案

boyanx2个月前技术教程18

需求沟通:


解决方案:基于 KaTeX 构建的小程序原生 LaTeX 渲染组件(不依赖服务端渲染)。


效果预览图

实现原理

基于 katex 库,解析 latex 公式生成虚拟 dom 树对象,将 dom 对象翻译成小程序的 rich-text 支持的 nodes 由小程序渲染

局限性

  • 依赖微信小程序的 rich-text 组件渲染,请注意小程序基础库 1.4.0 开始支持
  • 由于 katex 库过大会大量占用小程序包体大小。


如何使用?

在原生小程序项目中直接使用

1. 在小程序中安装依赖

npm install @rojer/katex-mini

安装 katex (@rojer/katex-mini@1.2.0 之后需要手动安装)

自 1.2.0 版本起,@rojer/katex-mini不再包含katex,因此你需要自行安 装katex

npm install katex

2. 在小程序开发者工具中 - 工具 - 构建 npm,执行后会看到生成的miniprogram_npm目录

3. 在app.wxss加载 katex 的内置 css 样式

@import "./miniprogram_npm/@rojer/katex-mini/index.wxss";

4. 在小程序中解析 latex

// index.js
import parse from "@rojer/katex-mini";

Page({
  data: {
    nodes: [],
    latex:
      "\\displaystyle \\frac{1}{\\Bigl(\\sqrt{\\phi \\sqrt{5}}-\\phi\\Bigr) e^{\\frac25 \\pi}} = 1+\\frac{e^{-2\\pi}} {1+\\frac{e^{-4\\pi}} {1+\\frac{e^{-6\\pi}} {1+\\frac{e^{-8\\pi}} {1+\\cdots} } } }",
  },

  onInput: function (e) {
    this.setData({
      latex: e.detail.value,
    });
  },

  renderLatex: function () {
    const katexOption = {
      displayMode: true,
    }; // 参考 katex 的配置
    this.setData({
      nodes: parse(this.data.latex, {
        throwError: true, // 为true时,解析失败会抛出错误,否则会直接把错误信息解析为nodes结构展示
        ...katexOption,
      }),
    });
  },
});

5. 在页面中展示

<!--index.wxml-->
<view class="container">
  <rich-text nodes="{{nodes}}"></rich-text>
  <textarea value="{{latex}}" bindinput="onInput" maxlength="1400"></textarea>
  <button bindtap="renderLatex">渲染</button>
</view>

相关文章

一个更快速简洁的Latex OCR工具:Rapid Latex OCR

一个将公式图像转为latex格式的工具,代码修改自LaTeX-OCR,模型已经全部转为ONNX格式,并对推理代码做了精简,推理速度更快,更容易部署。仓库只有基于ONNXRuntime或者OpenVIN...

复杂公式转化代码,轻松在AI进行数学推理

目前我们已经能够将文档、图片等形式的资料输入给AI供其思考,然而,像我们这种搞科研的人经常会碰到一些数学问题,我们希望AI能够针对性地给我们提供公式的含义、推导过程、化简过程等。公式作为一种特殊的格式...

程序员必备神器!这款Markdown编辑器,让你告别微信排版噩梦!

最近在写技术文章的时候,总觉得微信公众号的排版太麻烦了。一会儿调格式,一会儿插图片,太浪费时间! 然后我就在GitHub发现了一个神器—— md,一个开源的 Markdown 编辑器,可以直接把 Ma...

MathType公式转换LaTeX代码

MathType是一个强大的数学公式编辑器,普遍应用于教育教学、科研机构、工程学、论文写作、期刊排版、编辑理科试卷等领域。LaTeX是一种基于TeX的排版系统,在现代印刷行业得到广泛的应用,那么如何使...

大神开发arXiv全新H5版,告别公式排版错误,手机也能轻松看文献

晓查 行早 发自 凹非寺量子位 | 公众号 QbitAIarXiv几乎是每个科研人员都必须用到的网站,但是它已经快31岁了。1991年诞生的arXiv,网站排版显得与这个时代有些格格不入了。尤其是在移...

MathType软件官方下载:一款强大的数学公式编辑器

不得不承认MathType公式编辑器是一个强大的数学公式编辑器,专门为理科生准备,MathType数学公式编辑器用于编辑数学试卷、书籍、报刊、论文、幻灯演示等文档,能够帮助使用者快速的在各种文档中插入...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。