【问题标题】:Mathjax displays weird formula in div first time it rendersMathjax 第一次渲染时在 div 中显示奇怪的公式
【发布时间】:2014-07-30 22:16:20
【问题描述】:

我正在使用 Mathjax 在 div 中呈现分数。第一次渲染时,它显示 div 中的公式(乳胶)简要,然后更改为我想要的分数。这仅在第一次渲染分数时发生。我曾尝试在页面首次加载时运行 Mathjax Typeset,但它 没有帮助。有什么办法可以抑制吗?

【问题讨论】:

  • 没有现场样本很难说什么。但听起来您只是在描述 MathJax 在工作之前需要加载的事实,因此您在 MathJax 处理之前看到 DOM 中的任何内容;这是无法避免的,但您当然可以在 MathJax 完成之前对读者隐藏您的内容。缓存 MathJax 后这种情况消失的印象可能只是由于渲染速度。

标签: mathjax


【解决方案1】:

正如 Peter 在上面的评论中提到的,MathJax 在页面加载之前无法运行,并且当它运行时,它必须加载您选择的配置所需的文件。这意味着在加载 MathJax 文件并运行之前,未处理的页面将对读者可见。所以你看到的是正常的。只在第一次出现的原因是当你重新加载页面时,MathJax 文件已经在浏览器缓存中,所以不需要再次通过网络检索,MathJax 可以更快地处理页面(虽然原始的 LaTeX 代码可能仍然短暂可见)。

这是 MathJax 运行方式固有的,没有简单的方法可以防止它。正如 Peter 建议的那样,可以使用 CSS 隐藏页面,直到 MathJax 完成其处理之后,但这仅对没有太多数学运算的页面有用(否则页面将长时间显示为空白)。请参阅these examples,尤其是display:none 上的一种方法。另请参阅this example,了解如何在加载数学之前隐藏页面。您需要查看源代码以了解其工作原理。

也可以将您的 LaTeX 放入 MathJax 内部用于在页面中存储数学的<script> 标签中(有关详细信息,请参阅the documentation),以便它们最初在页面中不可见,但是您可能仍然会在第一次加载时看到没有数学的页面,然后在 MathJax 运行后会出现排版数学。

两者都不是理想的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-08
    • 2017-06-04
    • 1970-01-01
    • 2015-11-02
    • 2021-10-04
    • 2013-02-17
    • 2019-10-06
    • 2019-10-24
    相关资源
    最近更新 更多