• 让公式在网页传播——mathJAX


    让公式在网页传播——mathJAX

    对于学生党而言,写公式最好的工具是LaTeX,但LaTeX把公式展示到互联网上就有些困难,而使用截图又不太雅观。幸运的是,mathJAX引擎可以在浏览器中解析渲染数学符号公式,而不需要图片

    导入

    mathJAX官方文档在这里,参考网页

    mathJAX本质是一段JavaScript脚本,可以本地引用,也可以使用cdn,这里采用引用国内的bootcss cdn的方式

    <!--这里使用了bootcss的cdn来加速访问-->
    <script src="https://cdn.bootcss.com/mathjax/2.7.2/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
    

    配置

    mathJAX引入后,可以根据我们的习惯稍微配置一下

    <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
        showProcessingMessages: false, //关闭js加载过程信息
        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"|"head-class" //避开含该Class的标签,用|隔开
        },
        "HTML-CSS": {
            availableFonts: ["STIX","TeX"], //可选字体
            showMathMenu: false //关闭右击菜单显示
        }
    });
    MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
    </script>
    

    公式在显示时会有边框,我们也可以自定义公式的CSS把它去掉

    <style>
        /*公式去掉外边框,自动换行*/
        .MathJax_Display{overflow-x:auto;overflow-y:hidden;}
        .MathJax{outline:0;}
    </style>
    

    输入公式

    简单配置后,我们就可以输入公式了,语法与LaTeX一致。我们可以测试一下,完整代码如下

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Majax 测试</title>
    <style>
        /*公式去掉外边框,自动换行*/
        .MathJax_Display{overflow-x:auto;overflow-y:hidden;}
        .MathJax{outline:0;}
    </style>
    </head>
    <body>
    <h1>简单公式</h1>
    $$
    e^x=lim_{n	oinfty} left( 1+frac{x}{n} 
    ight)^n
    qquad (1)
    $$
    $$
    x_1 = frac{-b+sqrt{b^2-4ac}} {2a}
    qquad (2)
    $$
    $$
    x_1 = frac{-b-sqrt{b^2-4ac}} {2a}
    qquad (3)
    $$
    
    <h1>使用LaTeX语法对齐</h1>
    egin{align}
    sqrt{37} & = sqrt{frac{73^2-1}{12^2}} \
    & = sqrt{frac{73^2}{12^2}cdotfrac{73^2-1}{73^2}} \
    & = sqrt{frac{73^2}{12^2}}sqrt{frac{73^2-1}{73^2}} \
    & = frac{73}{12}sqrt{1 - frac{1}{73^2}} \
    & approx frac{73}{12}left(1 - frac{1}{2cdot73^2}
    ight)
    end{align}
    
    <h1>流程图</h1>
    $
    equire{AMScd}$
    egin{CD}
    A @>a>> B\
    @V b V V center @VV c V\
    C @>>d> D
    end{CD}
    
    
    <!--这里使用了bootcss的cdn来加速访问-->
    <script src="https://cdn.bootcss.com/mathjax/2.7.2/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
    <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
        showProcessingMessages: false, //关闭js加载过程信息
        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" //避开含该Class的标签
        },
        "HTML-CSS": {
            availableFonts: ["STIX","TeX"], //可选字体
            showMathMenu: false //关闭右击菜单显示
        }
    });
    MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
    </script>
    </body>
    </html>
    

    运行结果

  • 相关阅读:
    弱引用的字典WeakDictionary(转)
    XBox360调试程序失败:Unable to start debugging.Connection to Xbox360 development kit lost
    托管C++中的范型和模板的区别
    智能指针的缺陷
    托管C++笔记(二)原创
    C#通过WMI操作本地共享文件夹
    很随便的随笔
    "The system cannot execute the specified program"
    C++多重继承
    托管C++笔记(一)原创
  • 原文地址:https://www.cnblogs.com/fanghao/p/7767789.html
Copyright © 2020-2023  润新知