2014-07-15 42 views
0

我正在使用Mathjax在div中渲染分数。第一次渲染时,它简要地在div中显示 公式(Latex),然后更改为我希望以我想要的方式看到它的分数。这只会在第一次渲染分数时发生。当页面第一次加载时,我曾尝试运行Mathjax Typeset,但它 没有帮助。有什么办法可以压制这个吗?Mathjax在第一次渲染div时显示怪异公式

+0

如果没有现场示例,很难说出任何内容。但是这听起来像是你只是简单地描述了MathJax在它工作之前需要加载的事实,所以你可以在MathJax处理它之前看到DOM中的任何东西;这是无法避免的,但您当然可以将您的内容从阅读器中隐藏起来,直到MathJax完成。 MathJax缓存后消失的印象可能仅仅是由于渲染速度。 –

回答

1

正如Peter在他上面的评论中提到的那样,MathJax在加载页面之后才能运行,并且在加载页面时它必须加载它所需的配置文件。这意味着读者可以看到未处理的页面,直到MathJax文件加载并运行。所以你看到的是正常的。之所以只是第一次发生,是因为当你重新加载页面时,MathJax文件已经存在于浏览器缓存中,所以不需要再次通过网络检索,MathJax可以更快地处理页面(尽管原始的LaTeX代码可能仍然可见)。

这是MathJax操作方式的固有特性,并且没有简单的方法来阻止它。正如Peter所建议的那样,在MathJax完成处理之前,可以使用CSS来隐藏页面,但这只对那些没有太多数学计算的页面有用(否则页面会长时间显示为空白)。参见these examples,特别是display:none中的一种方法。在数学加载之前,另请参阅this example了解如何隐藏页面。您需要查看源代码才能看到它的工作原理。

也可以把你的LaTeX成MathJax内部使用的数学存储在页(见the documentation了解详细信息),使他们不会在最初的页面可见<script>标签,但你可能在第一次加载时仍然看不到数学的页面,然后在MathJax运行后出现排版数学。

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