导出包含MathJax结果的HTML

时间:2018-02-24 15:06:26

标签: javascript html css mathjax

我使用QWebEngineView将Markdown转换为HTML并通过MathJax呈现数学公式。所有内容都在<div id="placeholder">内。然后我使用document.getElementById("placeholder").innerHTML来获取HTML内容,其中包含转换后的Markdown内容和呈现的MathJax输出。最后,我将HTML内容输出到HTML文件。

但是,当我通过Chrome打开导出的HTML文件时,公式会丢失this demo等CSS样式。

那么有什么想法按顺序制作公式?

我尝试将MathJax脚本添加到导出的HTML中,但公式将消失。

谢谢!

2 个答案:

答案 0 :(得分:0)

在您的HTML文件中包含MathJax脚本:

for var in tf.trainable_variables():
    tf.summary.histogram(var.name, var)
merged_summary = tf.summary.merge_all()


由于某种原因,内容被淡化并被隐藏,因此需要以下样式来阻止内容被隐藏:

class Calculation {

    int answer;

    public int SumOfArrays(int data[], int size) {
        answer = 0;
        for (int i = data[0]; i < size; i++) {
            answer += data[i];
            //System.out.println(data[i]);
        }        
        return answer;
    }

class Main {

    public static void main(String[] args) {
        Calculation cal = new Calculation();
        int data[]={10,20};
        System.out.println(cal.SumOfArrays(data, 2));            
    }
}

您可以在HTML文件中添加<script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-MML-AM_CHTML'></script>

答案 1 :(得分:0)

您不仅需要抓取HTML,还需要抓取MathJax的CommonHTML输出jax产生的CSS,以及AssistiveMML扩展的样式(因为您复制的HTML也包含其输出)。下面的代码将为您获取。

&#13;
&#13;
<script type="text/x-mathjax-config">
MathJax.Hub.Queue(function () {
  var styles = document.head.getElementsByTagName("style");
  styles = [].slice.call(styles); // convert to array
  while (styles.length) {
    var sheet = styles.pop();
    if (sheet.innerHTML.match(/^(?:.mjx-chtml|.MJX_Assistive_MathML) \{/)) {
      document.getElementById("sheet").innerHTML += sheet.innerHTML;
    }
  }
});
MathJax.Hub.Queue(function () {
  var math = document.getElementById("math");
  math.parentNode.removeChild(math);
});
</script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/MathJax.js?config=TeX-AMS_CHTML"></script>

<span id="math">\(x\)</span>

<pre id="sheet">
</pre>
&#13;
&#13;
&#13;

将此文件放入.css文件中,链接到您的网页(或将其放入文档头中的<style>标记中)。那应该为你做。