如何强制基于CDN的MathJax输入LaTeX数学并输出到MathML?

时间:2016-07-04 00:39:05

标签: html math mathjax

我想使用MathJax编写一些网页,我编写LaTeX数学公式,但强制MathJax以MathML格式输出。我知道它可以完成,但我无法弄清楚如何配置它以这种方式工作。文档说要在HTML中包含以下内容:

<script type="text/javascript" async
  src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML">
</script>

我猜我可以使用config值强制它。 MathJax提供other options,但没有一个符合我的需求。我该怎么做呢?

1 个答案:

答案 0 :(得分:0)

如果您没有使用组合配置文件(在config=...查询中指定),那么您可以在常规MathJax配置中设置输出,例如,修改the combined config's definition listed in your OP下面的配置可能会给您:

<script type="text/x-mathjax-config">
 MathJax.Hub.Config({
   jax: ["input/TeX","output/NativeMML"], // instead of "output/CommonHTML"
   extensions: ["tex2jax.js","MathMenu.js","MathZoom.js", "AssistiveMML.js"],
   TeX: {
     extensions: ["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"]
   }
 });
</script>

通过使用此配置,您将失去组合配置的好处,即TeX输入Jax和Element Jax与配置选项一起合并为一个文件。

(现在你可能想要在使用组合配置时覆盖输出jax,例如,

<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    jax: ["output/NativeMML"]
  });
</script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_CHTML"></script>

无效,因为在内联配置后加载了组合配置。)

如果您想使用组合配置但又不想自己构建配置,则必须在配置后覆盖它,例如,

<script type="text/x-mathjax-config">
MathJax.Hub.Register.StartupHook("End Jax",function () {
  return MathJax.Hub.setRenderer("NativeMML");
});
</script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_CHTML"></script>

如果您需要更细粒度的控制,请检查the MathJax documentation的浏览器嗅探功能。