mathjax常见问题


Mathjax是根据哪个许可证发行的?

mathjax在 Apache License, Version 2.0 .

即使没有数学,mathjax会让我的页面加载速度变慢吗?

这取决于您如何配置和加载mathjax。组合的组件文件如下 tex-chtml.js 包含mathjax的完整副本及其处理给定输入和输出格式所需的所有组件,包括所有字体数据(但不包括实际字体本身)。所以这些文件可能很大,需要一些时间下载。另一方面,它是一个单独的文件(与版本2不同,版本2中需要加载多个文件),因此不应该存在与建立到服务器的多个连接相关联的延迟。如果你使用 async 加载mathjax的脚本上的属性,该属性允许浏览器推迟加载mathjax,直到页面的其余部分准备就绪,这样也有助于加快初始页面的加载速度。

数学在IE中的表现不太好。我该怎么解决这个问题?

目前,MathJax版本3仅支持IE11,因此如果您使用的是较早版本,则需要更新副本,或者使用不同的浏览器。

如果您使用的是ie11,那么请打开mathjax主页 www.mathjax.org 看看负载是否正确。如果mathjax网站无法正确显示数学,则Internet Explorer中的安全设置可能有问题。请检查以下设置:

  • 应启用脚本部分下的“活动脚本”,因为它允许运行javascript。

  • “运行ActiveX控件和插件”应在“ActiveX控件和插件”部分中启用(或提示)。

  • 需要在同一“ActiveX控件和插件”部分中启用(或提示)标记为“脚本安全”的“脚本ActiveX控件”。请注意,如果更改此设置,则需要重新启动IE。

  • 必须在“下载”部分启用(或提示)“字体下载”。mathjax需要使用基于web的字体来获得最佳的查看体验。

您可能需要选择自定义级别的安全性来进行这些更改。如果您已验证上述设置正确,请尝试清除缓存并重新启动IE。如果在上显示数学仍有问题 www.mathjax.org, we would appreciate it if you reported the problem to the MathJax issue tracker 所以我们可以调查一下。请参阅 issue tracking 有关详细信息。

如果mathjax站点 does 正确呈现,这表示您最初试图查看的网页可能有问题。如果您管理该网站,请确保它正在使用 the latest version of MathJax ,并且您已经包含了

<script src=“https://polyfill.io/v3/polyfill.min.js?功能=ES6“></script>

在加载mathjax本身的脚本之前。如果你 不要 自己管理网站,你可能需要向网站维护人员报告问题,以便解决问题。

IE的X-UA兼容元标记应该设置为什么?

我们强烈建议按照微软的建议使用 IE=edge . 也就是说,在文件中 <head> 包括

<meta http-equiv="X-UA-Compatible" content="IE=edge">

<head>. This will force all IE versions to use their latest engine which is the optimal setting for MathJax. For more information, see the Microsoft documentation on compatibility modes .

我的一些数学太大或太小。我该怎么做才对?

mathjax动态地呈现数学,以便公式和符号很好地集成到周围的文本中——字体大小、边距和基线匹配。换句话说:它应该看起来是对的。如果你的数学与周围环境相比太大或太小,你可能使用了错误的排版风格。遵循 Latex 约定,mathjax支持两种排版样式:行内和“显示”公式(一种是从段落中作为单独的行设置的)。对于线性方程组,mathjax努力保持行间间距。这意味着像分数和根这样的东西是垂直压缩的,并且使用更小的字体。显示公式显示为一个单独的段落,可以用更多的空间和稍大的字体呈现。用tex表示的内联方程的标准分隔符是 \(...\) ,而用于显示公式的 $$...$$\[...\] ,但这两种类型的分隔符都可以自定义。有关如何配置mathjax以缩放与周围文本相关的所有数学,请查看我们的文档 输出处理器选项 .

我的数学是私人的。使用mathjax安全吗?

对。mathjax是在用户浏览器中运行的javascript代码,因此在mathjax呈现时,站点的实际内容永远不会离开浏览器。如果您使用的是cdn中的mathjax,它将与web服务器交互以获取字体数据和mathjax代码,但这些都放在阅读器的浏览器中。如果您担心跨站点脚本,可以使用 https protocol to prevent tampering with the code between the CDN and a browser; or, if you prefer, you can install MathJax on your own web server, or for off-line use. MathJax does not reference scripts from other websites. The MathJax code is, of course, open source which means that you can review it and inspect its integrity .

mathjax是否支持表示和/或内容mathml?

MathML有两种类型:Presentation MathML和content MathML,前者描述公式的外观,后者描述公式的含义。缺省情况下,MathJax使用表示MathML,并为内容MathML提供扩展,请参见 the documentation on MathML support ,它尚未转换到版本3。

还可以使用 xslt, see for example David Carlisle's web-xslt collection . 可以在模块中找到对内容和表示mathml之间差异的更详细的解释 "Presentation MathML Versus Content MathML"cnx.org .

如何使用mathjax创建用于显示的数学表达式?

mathjax是一种显示数学的方法。它不是一个创作环境,因此您需要另一个程序来创建数学表达式。计算机上最常用的数学语言是(la)tex和mathml,这些语言有许多创作工具。

Latex 代码本质上是纯文本的,因此您不需要特殊的程序来编写它(尽管完整的 Latex 创作环境确实存在)。如果你不熟悉 Latex ,你将需要一些决心来学习和掌握这门语言,因为它的专业性质和丰富的符号词汇。网上有各种好的教程,但没有一个适合所有人的最佳教程。一个好的起点是 TeX User Group ,或查看 LaTeX Wiki book .

MathML 是用于数学表达式的基于XML的Web格式。mathml3是最新版本,自2010年10月以来一直是w3c的官方推荐。mathml被计算机代数系统广泛支持,可以使用多种创作工具来创建,包括带有 MathType 公式编辑器。支持mathml的软件列表可以在 The W3C MathML software list .

我遇到了mathjax的问题。我该怎么报案?

请参见 报告问题 当您认为在mathjax中发现了一个bug时要采取的步骤。

为什么tex宏不 \something 工作?

这真的取决于 \something 是。我们有一个完整的 支持的tex/latex命令 . 如果您要使用的命令不在此列表中,您可以自己为它定义一个tex宏,或者如果您想获得真正的高级,您可以定义实现它的自定义javascript(请参见 Custom Extensions 详细信息)。

记住,mathjax是用来排字的 math 在网上。它只复制 Latex 的数学功能,而不是文本格式化功能。web上的任何文本格式都应该用html和css来完成,而不是tex。如果要将全文文档转换为html以便在线发布,则应该使用tex-to-html转换器,如 LaTeXMLTralicstex4ht ,但是您应该意识到,tex转换工具不太可能产生像自己控制html和css源代码那样好的结果。

mathjax支持用户定义的tex宏吗?

是的,可以用mathjax定义tex宏,就像用latex定义tex宏一样 \newcommand\def . 一个例子是 \newcommand{{\water}}{{{{\rm H_{{2}}O}}}} ,当您使用 \water 命令。这个 \renewcommand 命令也能起作用。您还可以在mathjax配置中存储宏。有关详细信息,请参见 the documentation .