我有一个使用mathjax渲染乳胶方程式的网页。 为了更快地加载方程式,我试图通过替换
来避免预处理步骤数学分隔符<span class="MathJax_Preview">[loading...]</span><script type="math/tex;"> latex equation here </script>
但问题是;在渲染时,等式内的html实体如此显示,因此表示方程式 没有正确呈现。例如,'&amp;'用于多个步骤的对齐。但它显示为&amp;
通过<script>
标记替换数学分隔符是动态完成的。如果我删除了这一步骤,那么上述问题就不存在了,方程式中的html实体也能正确呈现。
我该如何解决这个问题?
我的最终目标是使等式加载更快。 显示像[loading ...]这样的预载器,直到完全排版数学为止。
谢谢,
LS Developer
答案 0 :(得分:0)
请注意,<script type="math/tex">
的内容是TeX(或LaTeX),而不是HTML,因此不应包含HTML实体。 HTML中任何<script>
的内容都是CDATA,因此不会在其中执行任何处理,包括实体转换。
如果您使用的是A
或A
等数字实体,则很容易用它们代表的字符替换它们。如果您使用的是命名实体,则需要通过表查找或其他过程将它们转换为字符。更好的是,不会首先放入实体。你能不执行这一步吗? (我假设这是在你控制范围之外完成的。)
请注意,MathJax中的预处理步骤实际上非常快,除非您有大量的方程式,否则不太可能成为瓶颈。它是转换为HTML的时间接收器。如果您没有使用其中一个组合配置文件,只需移动到其中一个配置文件就可以获得更好的改进,而不是删除预处理器步骤。如果您已经在使用组合配置文件,但没有使用“-full”版本,那么移动到那也将加快数学处理(因为您不必等待输入和输出jax在第一次使用时加载。)