我有一个简单文字的网站,混合了最初只能看到标题的部分。单击标题会展开该部分。这个页面的所有部分都可以包含我希望与MathJax很好地排版的数学,但是这些部分可能很长并且包含很多数学。 我想推迟每个部分的处理,直到点击相应的标题。这可能吗?
我知道MathJax具有TypeSet
函数,我可以在显示该部分时调用它们,因此动态排版数学不是问题。我还找到了elements
配置选项,但这与我想要的相反:它只允许您处理某些元素,而我想排除某些元素。
答案 0 :(得分:1)
我找到了一种方法来做到这一点。从本质上讲,我忽略了tex2jax pre-processor的ignoreClass
选项。将类tex2jax_ignore
添加到所有部分可确保在页面加载时不处理它们。然后,以下JavaScript在单击其标题时处理它们:
var section = $(this).parent().children('.section-container');
section.removeClass("tex2jax_ignore");
MathJax.Hub.Queue(["Typeset",MathJax.Hub,section.get(0)]);
结果可以在this jsFiddle中找到。
答案 1 :(得分:1)
在当前的MathJax版本(v3.0.1
)中,您可以通过添加
typeset: false
在您的配置脚本中。 (MathJax source code)
然后,当您要排版文档时,可以从JS运行MathJax.typeset()
。
有关演示,请参见this jsFiddle。