1

我有一个使用 mathjax 呈现乳胶方程的网页。为了更快地加载方程,我试图通过替换

数学分隔符<span class="MathJax_Preview">[loading...]</span><script type="math/tex;"> latex equation here </script>

但问题是;渲染时,方程式中的 html 实体会显示为这样,因此方程式无法正确渲染。例如,'&' 用于多个步骤的对齐。但它显示为 &

<script>用标记替换数学分隔符是动态完成的。如果我删除此步骤,则不存在上述问题,并且方程式中的 html 实体将正确呈现。

我该如何解决这个问题?

我的最终目标是让方程加载更快。显示像 [loading...] 这样的预加载器,直到数学完全排版。

谢谢,

LS 开发人员

4

1 回答 1

0

请注意,其中的内容<script type="math/tex">是 TeX(或 LaTeX),而不是 HTML,因此不应在其中包含 HTML 实体。HTML中 any 的内容<script>是 CDATA,因此不会在其中执行任何处理,包括实体的转换。

如果您使用像&#65;or这样的数字实体,&#x41;那么很容易将它们替换为它们所代表的字符。如果您使用命名实体,则需要通过表查找或其他过程将它们转换为字符。更好的是首先不要放入实体。你不能执行那一步吗?(我假设这是在你的控制之外完成的。)

请注意,MathJax 中的预处理步骤实际上非常快,除非您有大量方程,否则不太可能成为瓶颈。转换为 HTML 是时间汇。如果您不使用其中一个组合配置文件,则只需移至其中一个配置文件,您可能会获得更好的改进,而不是删除预处理器步骤。如果您已经在使用组合配置文件,但没有使用“-full”版本,那么移至该版本还将加快数学处理速度(因为您不必等待输入和输出 jax首次使用时加载)。

于 2012-03-27T22:59:02.930 回答