ruby-on-rails - Mathjax 不渲染 latex 公式

标签 ruby-on-rails latex rendering formula mathjax

在我的 Rails 应用程序中,我使用 mathjax (TEX-AMS_HTML) 来呈现 latex 公式。

在评论中输入公式时,我使用带有 TinyMCE 的 codecogs 公式编辑器。

我当前在 (TEX-AMS_HTML) 上的 mathjax 配置是:

        "HTML-CSS": {linebreaks: { automatic: true, width: "container" }},
        displayAlign: "left",
        extensions: ["tex2jax.js","MathMenu.js","MathZoom.js"],
        jax: ["input/TeX","output/HTML-CSS"],
        TeX: { extensions: ["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"] },
        tex2jax: { ignoreClass: "w1", processClass: "active|comments-content" }

我的问题是某些公式没有呈现出来,请考虑以下情况:

\[ foo\textup{bar} \]

这会呈现 foo \textup 栏。我还注意到一些符号以文本方式呈现,例如:

\[ \AE \SS \]

这将呈现 \AE\SS 而不是相应的符号。

我已经尝试切换到 SVG,调整内联/显示设置,但无法解决这个问题。

有人知道为什么会这样吗?

编辑:这是一个包含的例子

<!DOCTYPE HTML>
<html lang="en">
    <head>
        <title>Mathjax</title>
        <script type="text/x-mathjax-config">
            MathJax.Hub.Config({
            "HTML-CSS": {linebreaks: { automatic: true, width: "container" }},
            displayAlign: "left",
            extensions: ["tex2jax.js","MathMenu.js","MathZoom.js"],
            jax: ["input/TeX","output/HTML-CSS"],
            TeX: { extensions: ["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"] },
            tex2jax: { ignoreClass: "w1", processClass: "active|comments-content" }
            });
        </script>
        <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"></script>
    </head>
    <body>
        <div id="wrapper">
            <div id="main">
                <div class="w1">
                    <div class="comments-content">
                        <p>\[foo\textup{bar}\AE\SS\]</p>
                        <p>\[K_{E}=\frac{1}{2}m(\frac{80}{3.6})^{2}\]</p>
                    </div>
                </div>
            </div>
        </div>  
    </body>
</html>

呈现为:http://i.imgur.com/bUJXZPX.png

请注意,当 mathjax 正常工作并正确呈现第二行时,latex 的第一行没有转义。

EDIT2(22/06/2017):
“来自 future 的注意事项:cdn.mathjax.org 即将结束,请查看 mathjax.org/cdn-shutting-down 以获取迁移提示(并可能为 future 的读者更新您的答案)”- 感谢用户 Peter Krautzberger 基本上,这意味着我的代码示例中使用的 cdn 需要替换为本地化版本的 mathjax。

最佳答案

\textup\AE\SS 不是默认 MathJax TeX 宏的一部分,也没有在您的内联配置,这就是图像中的渲染将它们标记为红色的原因。

如果从配置中删除 noundefinednoerrors 扩展,您将看到更具体的错误——它们也在 the combined configuration TeX-AMS_HTML 中。 ,所以你也需要放弃它;正如您从链接中看到的那样,您的内联配置需要所有 TeX-AMS_HTML。 (在生产中,最好使用组合配置文件,因为它们作为单个大文件加载。)

有关所有默认 MathJax 宏的列表,请参阅 http://docs.mathjax.org/en/latest/tex.html#supported-latex-commands .

有关如何在 MathJax 中定义宏,请参阅 https://tex.stackexchange.com/questions/139699/equivalent-of-mathup-for-upright-text-in-math-mode .从那里举个例子:

MathJax.Hub.Config({
  TeX: {
    Macros: {
      RR: "{\\bf R}",
      bold: ["{\\bf #1}",1]
    }
  }
});

即,将 Macros block 添加到配置中的 TeX block 。

(一个特殊情况是\textup,它是一个 LaTeX 文本模式宏,而 MathJax 专注于数学模式。取决于使用在这种情况下,数学等效项可能是 \text{}\mathrm{} 或其他内容,请参阅 this TeX.SE questions。当然,您可以定义 \textup 随心所欲,但将内容向后移植到真正的 TeX 时可能会遇到麻烦。

关于ruby-on-rails - Mathjax 不渲染 latex 公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25320108/

相关文章:

ruby-on-rails -\1(反斜杠 1)在 Ruby 字符串中的作用是什么?

jquery - 如何在rails中发回js.haml

latex - 删除 LaTeX 中的章节边距

Opengl 三角形包含孔并且有时会消失

javascript - 将 props 传递给子组件时避免组件重新渲染

css - 包含网络字体时出现 SASS SyntaxError

mysql - Kubernetes 中的作业出错(如何使用 Kubernetes 部署 Rails 应用程序?)

svn - 在 LaTeX 标题页添加 SVN 分支名称

latex - LaTex 表格中的垂直和水平单元格居中

ruby-on-rails - 在 Rails 中,如何使用 View 呈现 JSON?