前端通过MathJax显示数学公式(vue+MathJax)

一、关于MathJax

  1. 官方网址:MathJax使用文档
  2. 简介:MathJax支持使用LaTeX,MathML或AsciiMath语法在网页中渲染数学公式。我们常用的语法为LaTex,比如该论坛支持的也是LaTex

二、应用场景

    想实现在用户选择文件后能够直接在前端预览文件内容,如下:

三、遇到的问题

问题1(没有渲染效果)

问题描述:
    官网推荐使用CDN的方式,因此按照要求在index.html中添加了标签,并在vue组件中渲染。依然还是上面那个样子,并没有对公式进行渲染显示。
index.html:

<script type="text/javascript" id="MathJax-script" async
  src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js">
</script>

xxx.vue:对question进行监视,内容改变后渲染界面。

watch: {
      question: function (value) {
        this.$nextTick(()=>{
          window.MathJax.Hub.Queue(["Typeset", MathJax.Hub]);
        })
      }
	}

解决办法:
    原来由于被qiang的原因,MathJax官网给出的加速的CDN是国外的,速度慢的感人,因此看不到效果,因此换成了国内的(BootCDN 等),由于好多CDN不提供该服务,终于找到一个可以用的。cloudflare的,如下:

<script type="text/javascript" async 
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML">
</script>

然后终于显示出来了,如下图:

问题2(行间公式不被渲染)

问题描述:
    看上图红框中的内容发现,还是有一部分行间公式没有被渲染,显示的依然是原来的状态。
解决办法:
    仔细阅读MathJax使用文档 发现,在MathJax的配置中说明了,如果想支持行间公司,需要做如下配置:注意2.x版本与3.x版本配置的书写方式不同,当然上面用的是2.7.5版本,因此就使用如下配置方式:

<script type="text/javascript" async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML">
     MathJax.Hub.Config({
       tex2jax: {inlineMath: [['$','$'], ['\(','\)']]}
      });
</script>

这样上面那个问题完美解决,效果如下:

四、未来的方向

原本很想使用3.0及以上版本的,奈何没找到合适的国内CDN加速,待高手评论区指点~~~

  
  
Email : Beyonderwei@Gmail.com
Website : http://beyonderwei.com
  
WeChat:

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue前端中展示数学公式,可以使用MathJax库进行渲染。首先,确保在项目中引入MathJax库。然后,可以使用以下步骤来展示数学公式: 1. 将Office Word中的数学公式转换为LaTeX表达式。可以使用提供的工具mmltx.xsl和MML2OMML.XSL来进行转换\[1\]。 2. 在Vue组件中,使用MathJaxVue插件或直接在HTML中引入MathJax的脚本。 3. 在需要展示数学公式的地方,使用合适的标签(如`<div>`或`<span>`)包裹LaTeX表达式。 4. 使用MathJax的语法将LaTeX表达式包裹在`$$`符号中,例如`$$x=\frac{-b\pm \sqrt{{b}^{2}-4ac}}{2a}$$`\[2\]。 5. 当Vue组件渲染时,MathJax会自动解析LaTeX表达式并将其渲染为数学公式。 需要注意的是,确保在Vue组件加载完成后再引入MathJax脚本,以确保MathJax能够正确渲染数学公式\[3\]。 参考资料: \[1\] mmltx.xsl: https://sourceforge.net/projects/xsltml/files/xsltml/MathML转LaTex工具 MML2OMML.XSL: https://download.csdn.net/download/han949417140/18465121 \[2\] 在线解析latex表达式示例: https://latex.91maths.com/ \[3\] MathJax渲染组件教程: http://www.manongjc.com/detail/11-pwanxyhkqeiokqi.html #### 引用[.reference_title] - *1* *2* *3* [java解析office数学公式](https://blog.csdn.net/han949417140/article/details/116521013)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值