2016-10-08 125 views
0

我有一個html文件渲染的TeX與Katex公司或MathJax

<div> 
    <p>One paragraph</p> 
    <p>Another paragraph</p> 
</div> 

並在某些段落,我有

<p>Some text and a formula $a = b + c$.</p> 

,我想文withing的$ -signs被渲染作爲TeX數學使用KaTeX

的問題是,如果我想在瀏覽器中使用它,我必須使用

katex.render("c = \\pm\\sqrt{a^2 + b^2}", element); 

,所以我需要分配的元素。

所以應該我真的寫這樣我的HTML文檔或是否有任何其他選項:

<div> 
    <p>One paragraph</p> 
    <p>Another paragraph</p> 
    <p>Some text and a formula <span id="firstFormula"></span>.</p> 
    <p>More text and another formula <span id="secondFormula"></span>.</p> 
</div> 
<script> 
    const firstFormula = document.getElementById('firstFormula'); 
    katex.render("c = \\pm\\sqrt{a^2 + b^2}", firstFormula); 

    const secondFormula = document.getElementById('secondFormula'); 
    katex.render("c = \\pm\\sqrt{a^2 + b^2}", secondFormula); 
</script> 

,並重復同樣的模式在每個公式?

這似乎有點奇怪,我不能只寫文本並用tex渲染輸出替換所有文本公式。

例如,可汗學院是如何在this page上完成文本和公式的組合?他們是否渲染了服務器上的所有內容並將其發送給客戶端?

在這種情況下使用MathJax更好嗎?我對KaTeX更加熱衷,因爲它速度更快。

+0

可能的重複[如何使用KaTeX渲染$ .. $中的所有內聯公式?](https://stackoverflow.com/questions/27375252/how-can-i-render-all-inline-formulas- in-with-katex) – Vincent

回答

1

默認情況下,MathJax不使用$作爲分隔符。所以你必須手動配置它們。

以下使用MathJax的示例來自其documentation

<!DOCTYPE html> 
<html> 
<head> 
<title>MathJax TeX Test Page</title> 
<script type="text/x-mathjax-config"> 
    MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}}); 
</script> 
<script type="text/javascript" async 
    src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_CHTML"> 
</script> 
</head> 
<body> 
When $a \ne 0$, there are two solutions to \(ax^2 + bx + c = 0\) and they are 
$$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$ 
</body> 
</html> 

如果你想使用Katex公司,你需要包括腳本自動渲染,並使其使用$作爲分隔符。有關說明,請參閱https://github.com/Khan/KaTeX/blob/master/contrib/auto-render/README.mdHere就是一個例子。

+0

未來的注意事項:cdn.mathjax.org即將結束其生命週期,請查看https://www.mathjax.org/cdn-shutting-down/獲取遷移提示。 –