精华内容
下载资源
问答
  • 一些编辑器最后生成的公式都是图片的样式,我们复制粘贴不出来具体的样式。我们需要用这个插件来转化图片公式
  • 写了一个图片的公式。然后直接使用插件把他转化为文本的公式的
  • 将latex表示的数学公式转换为图片 基于python实现 图片格式可以任意指定
  • latex2word:将Latex(MathJax)转换为MathML(数学标记),以导入到MS Word公式中(作为纯文本)
  • 下面介绍的是在vue里面使用的方法: 这是个图片的公式,有img标签引入。 我们想要成下面的效果: 在vue项目中引入MathJax.js 首先在index.html页面 <script type="text/jav...

    可以看一下没有在vue项目中写的插件https://download.csdn.net/download/qq_33769914/11162486

    下面介绍的是在vue里面使用的方法:

    这是个图片的公式,有img标签引入。

    我们想要转成下面的效果:

     

    在vue项目中引入MathJax.js

    首先在index.html页面

     <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML-full"></script>  <!--不使用图片显示数学公式插件-->这个是国际版的加载可能有点慢。推荐使用下面的

     

     <link rel="dns-prefetch" href="//cdn.mathjax.org" /><!--解析公式的一些配置加快速度-->
      <script type="text/javascript" src="http://cdn.bootcss.com/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>  <!--不使用图片显示数学公式插件-->

     

    因为有很多页面需要用到这个插件,所以我封装到了一个公共的js文件里面,想用的时候直接调用。

    下面是自定义的util.js

    export default {

                //公式转换的配置文件
        MathConfig(){

                this.loadjs('../../../static/js/jquery-1.9.1.min.js');//使用公式必须先加载js

                 MathJax.Hub.Config({
                        showProcessingMessages: false,
                        messageStyle: "none",
                        extensions: ["tex2jax.js"],
                        jax: ["input/TeX", "output/HTML-CSS"],
                        tex2jax: {
                            inlineMath:  [ ["$", "$"] ],
                            displayMath: [ ["$$","$$"] ],
                            skipTags: ['script', 'noscript', 'style', 'textarea', 'pre','code','a'],
                            ignoreClass:"comment-content"
                        },
                        "HTML-CSS": {
                            availableFonts: ["STIX","TeX"],
                            showMathMenu: true
                        }
                   });
            },

            //把图片公式替换成字符resourceLists的数据内容
        MathComputed(resourceLists){//resourceLists就是我想替换的里面可能有图片公式的内容。他如果是个数组直接用data接收,如果不是数组,push进data,让他成为数组。因为下面循环的所以这里必须放在数组里面。
            var data=[];
            if(resourceLists.length>0){data=resourceLists;}
            else{data.push(resourceLists);}

               for(var k=0;k<data.length;k++){//循环里面的题干内容

                   var html ='<div><div class="mathDiv">'+data[k].questionstem+'</div></div>';

                    var htmlObj = $(html); //将字符串转为jquery的dom对象
                    var filterObj = htmlObj.find(".kfformula"); //对转换后的对象进行查询
                   if(filterObj.length>0){//如果有公式。替换图片
                        for(var i=0;i<filterObj.length;i++){
                            var latex = '$' + $(filterObj[i]).attr('data-latex') + '$';
                            $(filterObj[i]).replaceWith(latex);
                        } 
                           data[k].questionstem=htmlObj.html();   
                    }else{//没有公式直接取值
                             data[k].questionstem=data[k].questionstem;

                         }
                    }
               }
                return data;
        },

    };

     

    再具体的页面调用那写函数

    import  util   from  '../static/util.js'

    mounted() {
                util.MathConfig();//调用配置文件

    },

    //转换页面的图片数学公式
                    util.MathComputed(this.resourceLists);    //这里是this.resourceLists是接口获取的要转化的内容
                    this.$nextTick(()=>{    //必须写这个表示dom元素都加载完了。
                          var mathdivs = $('#app').find(".mathDiv"); //对转换后的对象进行查询
                         for(var i=0;i<mathdivs.length;i++){  //必须循环然后才有作用,如果直接写#app不好用。所以这里就循环了
                              window.MathJax.Hub.Queue(["Typeset", MathJax.Hub, $(mathdivs[i])[0]]);
                            }

                     })

     

    可以看一下没有在vue项目中写的插件https://download.csdn.net/download/qq_33769914/11162486

    展开全文
  • 本文主要介绍MathJax公式的基本语法。插入公式如果是在文本中插入公式,则用$...$。如果公式自成段落,则使用$$...$$。字体使用\mathbb或\Bbb来显示黑板粗体字,$\mathbb{NQRZ}$使用\mathbf来显示粗体字,$\mathbf {...

    本文主要介绍MathJax公式的基本语法。

    插入公式

    如果是在文本中插入公式,则用$...$。

    如果公式自成段落,则使用$$...$$。

    字体使用\mathbb或\Bbb来显示黑板粗体字,$\mathbb{NQRZ}$

    使用\mathbf来显示粗体字,$\mathbf {ABCDabcd}$

    使用\mathtt来显示打印式字体,$\mathtt{ABCDabcd}$

    使用\mathrm来显示罗马字体,$\mathrm{ABCDabcd}$

    使用\mathcal来显示手写字体,$\mathcal{ABCDabcd}$

    使用\mathscr来显示剧本字体,$\mathscr{ABCDabcd}$

    使用\mathfrak来显示Fraktur字母(一种旧的德国字体),$\mathfrak{ABCDabcd}$

    多行公式

    如果要写出多行公式,就使用

    \begin{equation}\begin{split}

    end{split}\end{equation}

    \\ 符号表示换行,再使用&符号表示要对齐的位置,例子如下

    \begin{equation}\begin{split}

    H(Y|X)&=\sum_{x\in X} p(x)H(Y|X)\\

    &=-\sum_{x\in X} p(x)\sum_{y\in Y}p(y|x)\log p(y|x)\\

    &=-\sum_{x\in X} \sum_{y\in Y}p(y,x)\log p(y|x)

    \end{split}\end{equation}

    当然,再加上$$...$$之后,显示如下:

    $$\begin{equation}\begin{split}

    H(Y|X)&=\sum_{x\in X} p(x)H(Y|X)\\

    &=-\sum_{x\in X} p(x)\sum_{y\in Y}p(y|x)\log p(y|x)\\

    &=-\sum_{x\in X} \sum_{y\in Y}p(y,x)\log p(y|x)

    \end{split}\end{equation}$$

    分组

    通过大括号{}将操作数与符号分割开,消除二义性。

    例如,若使用x^10,其效果为$x^10$,这里就要用到大括号,x^{10},最终效果为$x^{10}$。

    空间

    MathJax通常用自己的一套复杂策略来决定公式的空间距离。直接在两个元素之间加入空格是毫无用处的。

    因此为了增加空间距离,使用\,可以增加稍许空间;使用\;可以增加更多的空间;\quad和\qquad分别对应更大的空间。

    数学符号

    上标与下标

    上标或下标只需在后面加上^或_。另外需要注意的是,如果上下标不止一个字符,就需要用大括号括起来,表示是一个整体{...}。

    分式

    有两种方式做到这个效果。

    使用\frac ab。如\frac {1+a}{4+b},效果为$\frac{1+a}{4+b}$;

    使用a \over b。如{1+a} \over {4+b},效果为${1+a}\over {4+b}$。

    一般推荐使用第二种。个人倾向于使用第一种。

    根式

    平方根: \sqrt{x^3},效果为 $\sqrt{x^3} $。

    其余: \sqrt[4]{\frac xy},效果为 $\sqrt[4]{\frac xy}$。

    关系比较符号< \lt

    > \gt

    ≤ \le

    ≥ \ge

    ≠ \neq

    $$\begin{array}{c|lcr}

    \text{符号} & \text{\表示} \\

    \hline

    < & lt \\

    > & gt \\

    ≤ & le \\

    ≥ & ge \\

    ≠ & neq \\

    \end{array}$$

    argmax\underset{f}{\mathrm{argmin}}

    效果如下:

    $$\underset{f}{\mathrm{argmin}}$$

    不显示斜体

    对于常量部分,有时候我们不想让他显示成斜体,而是正常的竖直显示,可加上\text{...},就可以正常显示。

    矩阵

    使用$$\begin{matrix}…\end{matrix}$$,每一行末用\\结束表示换行,用&分隔矩阵元素。

    $$

    \begin{matrix}

    1 & 0 & 0 \\

    0 & 1 & 0 \\

    0 & 0 & 1 \\

    \end{matrix}

    $$

    效果:

    $$

    \begin{matrix}

    1 & 0 & 0 \\

    0 & 1 & 0 \\

    0 & 0 & 1 \\

    \end{matrix}

    $$

    如果要加括号,可以使用上面的括号符号。

    除此之外,还可以直接将matrix替换为pmatrix(小括号),或者bmatrix(中括号),或者Bmatrix(大括号),或者vmatrix(竖线),或者Vmatrix(是双竖线)

    如果你想省略一些项,可以使用\cdots⋯,\ddots⋱,\vdots⋮。

    如:

    $$

    \begin{pmatrix}

    1 & a_1 & a_1^2 & \cdots & a_1^n\\

    1 & a_2 & a_2^2 & \cdots & a_2^n \\

    \vdots & \vdots & \ddots & \vdots \\

    1 & a_n & a_n^2 & \cdots & a_n^n \\

    \end{pmatrix}

    $$

    效果:

    $$

    \begin{pmatrix}

    1 & a_1 & a_1^2 & \cdots & a_1^n\\

    1 & a_2 & a_2^2 & \cdots & a_2^n \\

    \vdots & \vdots & \ddots & \vdots \\

    1 & a_n & a_n^2 & \cdots & a_n^n \\

    \end{pmatrix}

    $$

    代码块

    不同语言的代码块,可以用不同的标识符。如python语言,则代码块表示为

    1//下一行写具体代码

    就是用三个反引号(英文状态下、键盘左上角、ESC下面的那个键)包围的部分就是代码块,上面的三个点号之后,可以标识一下具体的语言,如c,c++,python,java,javascript,yml,html等等。

    测试:

    JavaScript代码块效果如下:

    1

    2

    3if (condition){

    return true

    }

    Python代码块效果如下:

    1

    2

    3def func(A):

    '''intresting document.'''

    return len(A)

    展开全文
  • mathjax节点 该存储库包含一个提供API的库,该API可以从Node.js程序中调用 。 该API将单个数学表达式(采用MathJax的任何输入格式)转换为HTML(带有CSS),SVG或MathML代码。 利用 npm install mathjax-node 安装...
  • Vue项目中使用MathJax

    2021-06-08 13:19:48
    然后在全局引入 也就是在main.js中 加入如图所示代码,具体代码如下 import Vue from 'vue' import App from './App.vue' // main.js import MathJax from './js/MathJax.js' // MathJax.js内容在1.3,位置随意 Vue....

    1.使用Webpakage新建一个简单的Vue项目

    2.再新建项目的public目录下的index.html中,加入如下标签内容

    整体MathJax的scriipt的引入

    <!DOCTYPE html>
    <html lang="">
      <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width,initial-scale=1.0">
        <link rel="icon" href="<%= BASE_URL %>favicon.ico">
        <title><%= htmlWebpackPlugin.options.title %></title>
      </head>
    
    
      <body>
        <noscript>
          <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
        </noscript>
        <div id="app"></div>
        <!--
        "mathjax": "^3.1.4",-->
      </body>
      <script type="text/javascript"
              async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script>
    
    </html>
    

    3.新建一个JS目录(随意),用来放初始化MathJax的脚本

    里面的内容 如下

    let isMathjaxConfig = false;//用于标识是否配置
    const initMathjaxConfig = () => {
      if (!window.MathJax) {
        return;
      }
      window.MathJax.Hub.Config({
        showProcessingMessages: false, //关闭js加载过程信息
        messageStyle: "none", //不显示信息
        jax: ["input/TeX", "output/HTML-CSS"],
        tex2jax: {
          inlineMath: [["$", "$"], ["\\(", "\\)"]], //行内公式选择符
          displayMath: [["$$", "$$"], ["\\[", "\\]"]], //段内公式选择符
          skipTags: ["script", "noscript", "style", "textarea", "pre", "code", "a"] //避开某些标签
        },
        "HTML-CSS": {
          availableFonts: ["STIX", "TeX"], //可选字体
          showMathMenu: false //关闭右击菜单显示
        }
      });
      isMathjaxConfig = true; //配置完成,改为true
    };
    const MathQueue = function (elementId) {
      if (!window.MathJax) {
        return;
      }
      window.MathJax.Hub.Queue(["Typeset", window.MathJax.Hub, document.getElementById(elementId)]);
    };
    
    
    export default {
      isMathjaxConfig,
      initMathjaxConfig,
      MathQueue,
    }

    4.然后在全局引入

    也就是在main.js中 加入如图所示代码,具体代码如下

    import Vue from 'vue'
    import App from './App.vue'
    // main.js
    import MathJax from './js/MathJax.js' // MathJax.js内容在1.3,位置随意
    
    Vue.prototype.MathJax = MathJax
    Vue.config.productionTip = false
    
    new Vue({
      render: h => h(App),
    }).$mount('#app')
    

    5.最后就是使用,代码如下

    <template xmlns:display="http://www.w3.org/1999/xhtml">
      <div class="hello">
        <div>{{text1}}</div>
      </div>
    </template>
    
    <script>
      import MathJax from '../js/MathJax'
    export default {
      name: 'HelloWorld',
      props: {
        msg: String
      },
      data(){
        return{
          text1 : '$$借款本金=\\sum _{nT}^{i=1}\\frac{第i期支付金额}{1+年化综合成本}$$'
        }
      },
      methods: {
        formatMath() {
          let that = this;
          setTimeout(function () {
            that.$nextTick(function () {
              if(MathJax.isMathjaxConfig){//判断是否初始配置,若无则配置。
                MathJax.initMathjaxConfig();
              }
              MathJax.MathQueue("hello");//传入组件id,让组件被MathJax渲染
            })
          },500);
        }
      },
      created() {
        this.formatMath();
      }
    
    }
    </script>
    
    <!-- Add "scoped" attribute to limit CSS to this component only -->
    <style scoped>
    h3 {
      margin: 40px 0 0;
    }
    ul {
      list-style-type: none;
      padding: 0;
    }
    li {
      display: inline-block;
      margin: 0 10px;
    }
    a {
      color: #42b983;
    }
    </style>
    

    我这里是直接在 建好项目的 HelloWorld.vue 中使用的。

    主要做的事情有三个

    a:方法 formatMath() 用来初始化 MathJax

    b:再页面加载就 调用 a的方法

    c:定义数学表达式的 内容,再Html中直接使用

     

    数学表到时内容,可以参考该同学的文章https://blog.csdn.net/u010945683/article/details/46757757

    展开全文
  • 它们分为三个主要类别:基于MathJax v3组件及其加载系统的类别,基于您手动预加载的MathJax v3组件的类别(为便于同步使用),以及直接使用基本MathJax文件而不使用的类别。 MathJax组件。 所有这三组都包括从各种...
  • 公式图片识别为latex 平时在写东西的时候时常有进行公式输入的需要,比如说看了一篇论文写点东西记录一下什么的。但是在写东西的时候手动抄着那些复杂的公式让人有一种在搬砖的错觉(我之前写文档抄公式的时候就有...

    公式图片识别为latex

    平时在写东西的时候时常有进行公式输入的需要,比如说看了一篇论文写点东西记录一下什么的。但是在写东西的时候手动抄着那些复杂的公式让人有一种在搬砖的错觉(我之前写文档抄公式的时候就有这种错觉?),这样就会很容易打消搬砖的积极性的。幸好之后杨同学告诉了我Mathpix这个神器瞬间将我解放了生产力max :xyx:。

    官网地址:https://mathpix.com/
    官方测试PDF:https://mathpix.com/examples.pdf

    调了其中比较复杂的第十四个公式来测试了一下,效果非常的喜人,非常的准确没有一点错误。公式图片和最后的结果对照如下所示。

    function

    H ^ = ∫ d r ( ℏ 2 2 M B ∇ Ψ ^ m + ∇ Ψ ^ m + c 0 2 Ψ ^ m + Ψ ^ m 1 + Ψ ^ m 1 Ψ ^ m + c 2 2 Ψ ^ m 1 + Ψ ^ m 2 + F m 1 m 4 F m 2 m 3 Ψ ^ m 3 Ψ ^ m 4 ) \hat{H}=\int d r\left(\frac{\hbar^{2}}{2 M_{B}} \nabla \hat{\Psi}_{m}^{+} \nabla \hat{\Psi}_{m}+\frac{c_{0}}{2} \hat{\Psi}_{m}^{+} \hat{\Psi}_{m_{1}}^{+} \hat{\Psi}_{m_{1}} \hat{\Psi}_{m}+\frac{c_{2}}{2} \hat{\Psi}_{m_{1}}^{+} \hat{\Psi}_{m_{2}}^{+} F_{m_{1} m_{4}} F_{m_{2} m_{3}} \hat{\Psi}_{m_{3}} \hat{\Psi}_{m_{4}}\right) H^=dr(2MB2Ψ^m+Ψ^m+2c0Ψ^m+Ψ^m1+Ψ^m1Ψ^m+2c2Ψ^m1+Ψ^m2+Fm1m4Fm2m3Ψ^m3Ψ^m4)

    latex转word

    方法一:word原生latex支持

    得到latex公式之后我就开心的把它复制到了word中去了,因为上次发现在word中开启latex后就可以直接写latex公式了。开启方式如下图所示在插入公式的时候选中latex就可以了。

    openLatexInWord

    但是我发现还是有坑啊,简单一点的还好,复杂一点的长一点的有的时候会转换不了,有的时候会转换出错。例如上面那个公式在word里面转换成了这个样子:

    方法二:latex转MathML后粘贴(推荐)

    后面在Google搜了一下之后发现可以先将latex公式转换为MathML后粘贴到word(记得选择为只保留文本,不然有样式信息会不成功的),之后word会自动将MathML显示为公式。尝试了一下发现真的可以而且效果非常好,上面的公式在使用MathML粘贴到word中的结果如下所示:

    rightWordFunction

    至于latex公式如何转换为MathML,有挺多的方法的。在markdown神器typora中可以右键选中公式然后依次选择公式-》复制到MSWord,然后到word里面直接粘贴就可以了。或者可以到这个网站:http://johnmacfarlane.net/texmath,它提供在latex转MathML的服务。

    word转latex

    word公式转latex同样有两种,想必大家都可以猜出来了。和上面相对应的一种是word原生转换,一种是借助MathML进行中转。

    方法一:word原生latex支持

    这个方法非常简单,按照上文说的那样选择好latex后,直接对公式进行复制就然后在需要的地方粘贴就可以了。这个方法对与一下简单的公式来说还是很方便的,但是对与一些比较复杂的公式例如这个例子,之间复制得到的结果就有点问题了。这个例子复制得到的latex公式甚至不能被MathJax解析。

    方法二:复制得到MathML后转latex(推荐)

    由于方法一面对复杂公式的时候存在问题,我们可以考虑再次使用MathML进行中转。复制word公式默认得到的是它所说的线性格式的纯文本而不是MathML,我们需要进行一些设置上面的改变。具体步骤如下所示:

    先点击箭头指向的小箭头打开公式选项:

    openFunctionSet

    然后将复制公式时选项切换为MathML:

    changeFunctionSet

    在这之后之间复制公式就是得到MathML的纯文本了,然后再到这个网站:http://johnmacfarlane.net/texmath,它可以将MathML转换为latex。

    最后如果是大量的文件转换还是使用文件转换神器 pandoc,然后再修改一下吧,手动格式转换还是算了?。

    参考资料:

    1. 如何将LaTeX公式拷贝到Word中

    博客原文:公式图片转latex神器Mathpix以及latex公式与word公式的相互转换

    展开全文
  • window.MathJax) { return } window.MathJax.Hub.Queue(['Typeset', window.MathJax.Hub, document.getElementsByClassName(elementId)]) // 根据class // window.MathJax.Hub.Queue(['Typeset', window.MathJax.Hub...
  • 链接:https://www.cnblogs.com/linxd/p/4955530.html 转载于:https://www.cnblogs.com/zifeiy/p/10018456.html
  • mathjax 导出svg和png

    2021-12-21 16:00:19
    原文链接: mathjax 导出svg和png 上一...
  • #关于drawLaTex 本来想使用MathJax来生成LaTex公式,后来发现两...这个时候我想到了canvg,利用MathJax生成的svg可以使用canVg将它在canvas上显示出来,并最终生成base64的图片文件。 这也是为什么我只保留MathJax的SV
  • MathJax

    千次阅读 2017-03-15 16:17:54
    MathJax使用网络字体(大部分浏览器都支持)去产生高质量的排版,使其在所有分辨率都可缩放和显示,这远比使用包含公式的图片要有效得多。使用MathJax显示数学公式是基于文本的,而非图片。它可以
  • MathJax和相关的Latex语法。

    千次阅读 2018-05-09 15:19:53
    本文从math.stackexchange.com上名为MathJax basic tutorial and quick ...MathJax是一款运行在浏览器中的开源数学符号渲染引擎,使用MathJax可以方便的在浏览器中显示数学公式,不需要使用图片。目前,MathJax可以...
  • 什么是MathJaxMathJax是一个显示网络上数学公式的开源JavaScript引擎库,它可以在所有浏览器上面工作,其中就支持LaTeX,MathML和AsciiMath 符号,里面的数字会被MathJax使用JavaScript引擎解析成HTML,SVG或者是...
  • 本人菜鸟一名,如有错误,还请见谅。... MathJax是一款运行在浏览器中的开源的数学符号渲染引擎,使用MathJax可以方便的在浏览器中显示数学公式,不需要使用图片。目前,MathJax可以解析Latex、MathML和ASCII...
  • https://chrome.google.com/webstore/detail/github-with-mathjax/ioemnmodlmafdkllaclge...
  • 这个问题自己很早以前便碰到了,用MathJax语法写的一些公式,在本地Markdown编译器上渲染是没问题的,可是部署到hexo博客中就出现问题了,之前我是使用图片代替公式应付过去了,今天从网上找了一下资料,发现了其...
  • 此插件将 MathJax v3 公式解析转换为 SVG 图片后,会在外层添加一个标准 HTML 标签意外的 标签以实现公式块的居中显示。 VuePress v2.x 无法识别这个标签,因此在执行 vuepress docs build 命令时仍会无法编译生成...
  • Latex公式表达式在服务端进行转换成可用数据 使用语言与扩展 node.js ...转换成图片或者SVG扩展pkra/mathjax-node-svg2png 准备工作 安装nodejs 安装Mathjax-node扩展 (GitHub) 安...
  • 我们在接口给的数据渲染公式以后。他有个渲染的过程。我们能看到他一点点的加载的过程。...//转换页面的图片数学公式 var mathdivs =$("#testListBox").find(".mathDiv"); for(var i = 0; i < mathdivs...
  • MathML转换成图片方法

    千次阅读 2013-09-23 07:54:03
    MathML转换成图片的方法
  • 在vue中渲染数学公式 - MathJax

    千次阅读 2020-08-06 11:58:11
    目前在使用 vue+ elementui做一个考试管理系统,在做学生考试页面时需要用到数学公式,但是后台解析出来后不是图片,而且如果是图片的话放在题目里很怪,所以需要使用到`MathJax`去解析后台传过来的公式 后台返回的...
  • Markdown之列表&MathJax

    千次阅读 2017-10-25 14:25:26
    下面说的Markdown的表格形式已经被用烂了,但是一直不怎么用Markdown里面的MathJax,实在不行就小窗截图,随着这个审美的不断提升,现在看那个实在是越来越丑啊,下面贴下转载的帖子,好好学习下。1. 前言Markdown是...
  • 要在Markdown里插入数学公式,如果没有好用的的引擎or编辑器,那么只能插入图片了,十分麻烦。这里推荐一个十分强大的数学公式引擎——Mathjax。配置有道云笔记目前不支持浏览MathJax公式。我们可以使用Haroopad,这...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,350
精华内容 6,140
关键字:

mathjax转图片