如何强制基于 CDN 的 MathJax 输入 LaTeX 数学并输出到 MathML?
How to force CDN-based MathJax to input with LaTeX math and output to MathML?
我想使用 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 但 none 满足我的需要。我该怎么做?
如果您没有使用组合配置文件(在 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 的浏览器嗅探功能。
我想使用 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 但 none 满足我的需要。我该怎么做?
如果您没有使用组合配置文件(在 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 的浏览器嗅探功能。