MathJax是适用于所有现代浏览器的LaTeX,MathML和AsciiMath表示法的开源JavaScript显示引擎。它的设计目标是将网络技术的最新进展整合到支持主要浏览器和操作系统,单一的确定的网络数学平台上。它不需要用户进行任何设置(无需下载插件或安装软件),因此页面作者可以编写包含数学的Web文档,并确信用户将能够自然而轻松地查看它。只需在网页中包含MathJax和一些数学运算,剩下的就由MathJax完成。
https://github.com/mathjax/MathJax
MathJax的一些主要功能包括:
MathJax版本3使用称为组件的文件,这些文件包含各种MathJax模块,可以将其包含在网页中或通过NodeJS在服务器上进行访问。一些组件将运行MathJax所需的所有组件与一种或多种输入格式和特定的输出格式结合在一起,而其他组件是可以在需要时按需加载的组件,或通过指定要组合的组件的配置来组合自定义方式。有关使用说明,请参见MathJax文档。组件提供了MathJax模块的便捷包,但是你可以形成自己的自定义组件,也可以直接在服务器上的节点应用程序中使用MathJax的模块。有一些Web示例示范了如何在网页中使用MathJax以及如何构建自己的组件,还有一些节点示例说明如何在节点应用程序中使用组件或直接调用MathJax模块。
如果要将MathJax从CDN加载到网页中,则无需安装任何程序。只需使用从CDN加载MathJax的脚本标签。例如:
托管您自己的MathJax组件副本:
npm install mathjax
mv node_modules/mathjax/es5/mathjax
或者,您可以通过GitHub获取:
git clone https://github.com/mathjax/MathJax.git mj-tmp
mv mj-tmp/es5/mathjax
rm -rf mj-tmp
然后(无论哪种情况),都可以使用如下脚本标签:
其中
要在Node.js应用程序中使用MathJax组件,请安装mathjax软件包:
npm install mathjax
require('mathjax').init({ ... }).then((MathJax) => { ... });
其中第一个{...}是MathJax配置,第二个{...}是加载MathJax之后要运行的代码。例如。
require('mathjax').init({
loader: {load: ['input/tex', 'output/svg']}
}).then((MathJax) => {
const svg = MathJax.tex2svg('\\\\frac{1}{x^2-1}', {display: true});
console.log(MathJax.startup.adaptor.outerHTML(svg));
}).catch((err) => console.log(err.message));
MathJax是一个面向数学的显示JavaScript引擎,支持node和绝大多数浏览器,如果你正有类似的苦恼,不妨尝试使用它,Enjoy it!