Hugo博客添加LaTeX语法支持
Hugo 博客添加行内和行间 LaTeX 语法支持的数学公式
MathJax 与 Markdown 的融合
- 这里给大家推荐一个在线编辑 LaTeX 公式的网站 LaTeX 公式编辑器[^1]
添加 mathjax
定位到themes\PaperMod\layouts\partials
,创建mathjax.html
并编辑:
<script type="text/javascript"
async
src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
MathJax.Hub.Config({
tex2jax: {
inlineMath: [['$','$'], ['\\(','\\)']],
displayMath: [['$$','$$'], ['\[\[','\]\]']],
processEscapes: true,
processEnvironments: true,
skipTags: ['script', 'noscript', 'style', 'textarea', 'pre'],
TeX: { equationNumbers: { autoNumber: "AMS" },
extensions: ["AMSmath.js", "AMSsymbols.js"] }
}
});
MathJax.Hub.Queue(function() {
// Fix <code> tags after MathJax finishes running. This is a
// hack to overcome a shortcoming of Markdown. Discussion at
// https://github.com/mojombo/jekyll/issues/199
var all = MathJax.Hub.getAllJax(), i;
for(i = 0; i < all.length; i += 1) {
all[i].SourceElement().parentNode.className += ' has-jax';
}
});
</script>
<style>
code.has-jax {
font: inherit;
font-size: 100%;
background: inherit;
border: inherit;
color: #515151;
}
</style>
编辑 extend_head
定位到themes\PaperMod\layouts\partials\extend_head.html
,添加以下代码:
{{ partial "mathjax.html" . }}
LaTeX 效果展示
- 先试试行内 $ x^2 +1 = 0 $公式
- 再试试行间公式
$$ \begin{equation} \begin{split} (a + b)^3 &= (a + b)(a + b)^2 \\ &= (a + b)(a^2 + 2ab + b^2) \\ &= a^3 + 3a^2b + 3ab^2 + b^3 \end{split} \end{equation} $$
多聊一点
在实际的使用过程中,也遇到一些 Markdown 和 MathJax不兼容的问题:
MathJax 渲染公式中包含三个以上的大括号{}时候出问题,我们先任意书写一个数学公式:
对应的 LaTeX 代码为:
\boldsymbol{x}_{i+1}+\boldsymbol{x}_{i+2}=\boldsymbol{x}_{i+3}
- 公式中出现一对大括号 ,没有问题
$$ \boldsymbol{x} $$
- 出现两对大括号 ,没有问题
$$ \boldsymbol{x}_{i+1} $$
- 出现三对大括号 ,没有问题
$$ \boldsymbol{x}_{i+1}+\boldsymbol{x} $$
- 出现三对以上大括号 ,无法显示
$$ \boldsymbol{x}{i+1}+\boldsymbol{x}{i+2} $$
我在 chrome 浏览器查看 HTML 源码时,发现它的划线“_”丢失,多了“em”标签,应该是直接进行了转译,有已解决问题的小伙伴可以欢迎在评论区分享你解决方法
- 针对公式颜色的调整
\textcolor{#FF0000}{公式}
或\textcolor{blue}{公式}
,常用红色、蓝色、绿色,将公式写在后方的大括号内即可,例如:
$$P\left(x_{l} \mid y_{l}\right) = \frac{P(y_l\mid x_l)P(x_l)}{P(y_l)}$$
📖 参考文献
- 在线 LaTeX 公式编辑器-编辑器
- MathJax 与 Markdown 的究极融合 - Yihui Xie | 谢益辉
- Render LaTeX math expressions in Hugo with MathJax 3 · Geoff Ruddock
- 开启 mathjax,当出现两个以上时_{}时解析有问题
- 有无和 typora 一模一样 markdown 渲染规则的博客系统?
- Hugo - MathJax Support
- Render LaTeX math expressions in Hugo with MathJax 3 · Geoff Ruddock
- markdown 修改 latex 数学公式的颜色_csdn 公式标红-CSDN 博客
💬 评论