我使用QWebEngineView
将Markdown转换为HTML并通过MathJax呈现数学公式。所有内容都在<div id="placeholder">
内。然后我使用document.getElementById("placeholder").innerHTML
来获取HTML内容,其中包含转换后的Markdown内容和呈现的MathJax输出。最后,我将HTML内容输出到HTML文件。
但是,当我通过Chrome打开导出的HTML文件时,公式会丢失this demo等CSS样式。
那么有什么想法按顺序制作公式?
我尝试将MathJax脚本添加到导出的HTML中,但公式将消失。
谢谢!
答案 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也包含其输出)。下面的代码将为您获取。
<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;
将此文件放入.css
文件中,链接到您的网页(或将其放入文档头中的<style>
标记中)。那应该为你做。