home archives github knives links
tags latex hexo mathjax katex
categories
only title title and content
hexo插入latex公式

mathjax

参考

使用官方cdn(完整版功能,但是写latex公式可能不会都用到)

标准使用,layout中插入

<!DOCTYPE html>
<script type="text/javascript" src="https://cdn.bootcss.com/mathjax/2.7.1/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>

<script type="text/x-mathjax-config">
$(document).ready(function()
{
MathJax.Hub.Config(
{
tex2jax:
{
inlineMath: [
['$', '$']
],
processEscapes: true,
skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
}
})

MathJax.Hub.Queue(function()// 重新渲染
{// 函数体内部不清楚作用
var all = MathJax.Hub.getAllJax(),
i;
for (i = 0; i < all.length; i += 1)
{
all[i].SourceElement().parentNode.className += ' has-jax';
}
})
});
</script>

使用自建的tex2jax(删减版,目前只测试过latex公式)

官方参考(tex2jax)

<!DOCTYPE html>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {inlineMath: [
["$","$"]
]}
});
MathJax.Hub.Queue(["Typeset", MathJax.Hub]);// 重新渲染
</script>
<script type="text/javascript" src="../MathJax.js?config=TeX-AMS_HTML-full"></script>

katex

修改文章换行

因为垃圾katex不能处理换行的公式,所以需要将所有<br>先删除再进行渲染

例如,将<br>先改成不可见字符&nbsp;,然后渲染,再将&nbsp;改回<br>

katex代码

renderMathInElement(document.body,
{
// ...options...
delimiters: [
{ left: "$$", right: "$$", display: true },
{ left: "$", right: "$", display: false }
// { left: "\\[", right: "\\]", display: true }
]
});

hexo的markdown解析注意点