【问题标题】:Delay MathJax processing of specific elements延迟特定元素的 MathJax 处理
【发布时间】:2015-01-14 19:29:22
【问题描述】:

我有一个带有简单文本的网站,其中混合了最初仅显示标题的部分。单击标题可展开该部分。这个页面的所有部分都可以包含我想用 MathJax 很好地排版的数学,但是这些部分可能很长并且包含很多数学。 我想推迟每个部分的处理,直到点击相应的标题。这可能吗?

我知道 MathJax 有 TypeSet 函数,我可以在显示该部分时调用它们,因此动态排版数学不是问题。我还找到了elements 配置选项,但这与我想要的相反:它只允许您处理某些元素,而我想排除某些元素。

示例页面:http://jsfiddle.net/pnbjh5tg/

【问题讨论】:

    标签: mathjax


    【解决方案1】:

    我想出了一个办法。本质上,我忽略了tex2jax pre-processorignoreClass 选项。将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

    【讨论】:

      【解决方案2】:

      在当前的 MathJax 版本 (v3.0.1) 中,您可以通过添加

      typeset: false

      在您的配置脚本中。 (MathJax source code) 当你想排版文档时,你可以在 JS 中运行MathJax.typeset()

      请参阅this jsFiddle 以获取演示。

      【讨论】:

        猜你喜欢
        • 2022-11-24
        • 1970-01-01
        • 2021-10-22
        • 1970-01-01
        • 2021-04-08
        • 1970-01-01
        • 1970-01-01
        • 2011-07-09
        • 1970-01-01
        相关资源
        最近更新 更多