如果要启用Mathjax和KaTeX
在header模板中添加以下内容
1 <!-- Mathjax support -->
2 {{ with .Site.Params.mathjax }}
3 <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> </script>
4
5 <!-- inline Mathjax -->
6 <script type="text/x-mathjax-config">
7 MathJax.Hub.Config({
8 tex2jax: {
9 inlineMath: [['$math_inline$','$math_inline$'], ['\\(','\\)']],
10 displayMath: [['$math_noinline$','$math_noinline$'], ['\[','\]']],
11 processEscapes: true,
12 processEnvironments: true,
13 skipTags: ['script', 'noscript', 'style', 'textarea', 'pre'],
14 TeX: { equationNumbers: { autoNumber: "AMS" },
15 extensions: ["AMSmath.js", "AMSsymbols.js"] }
16 }
17 });
18 </script>
19 {{ end }}
20
21 <!-- KaTeX support -->
22 {{ with .Site.Params.katex }}
23 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.15.2/dist/katex.min.css">
24 <script defer src="https://cdn.jsdelivr.net/npm/katex@0.15.2/dist/katex.min.js"></script>
25 <script defer src="https://cdn.jsdelivr.net/npm/katex@0.15.2/dist/contrib/auto-render.min.js" onload="renderMathInElement(document.body);"></script>
26
27 <!-- inline KaTeX -->
28 <script>
29 document.addEventListener("DOMContentLoaded", function() {
30 renderMathInElement(document.body, {
31 delimiters: [
32 {left: "$math_noinline$", right: "$math_noinline$", display: true},
33 {left: "$math_inline$", right: "$math_inline$", display: false}
34 ]
35 });
36 });
37 </script>
38 {{ end }}
在layouts/shortcodes下添加latex.html
1<!-- layouts/shortcodes/latex.html -->
2{{ if .Site.Params.viryLatex }}
3 {{ if ne (.Get "inline") ("false") }}
4 {{ $url := printf "<img style='border: none;' src=\"https://latex.akvicor.com/?base=math&key=mTFPk34&crop=1&type=png&transp=1&latex=%s\">" (urlquery .Inner) }}
5 {{ replace $url "+" "%20" | safeHTML }}
6 {{ else }}
7 {{ $url := printf "<p><img style='border: none;' src=\"https://latex.akvicor.com/?base=math&key=mTFPk34&crop=1&type=png&transp=1&latex=%s\"></p>" (urlquery .Inner) }}
8 {{ replace $url "+" "%20" | safeHTML }}
9 {{ end }}
10{{ else }}
11 {{ if ne (.Get "inline") ("false") }}
12 $math_inline${{ .Inner }}$math_inline$
13 {{ else }}
14 $math_noinline${{ .Inner }}$math_noinline$
15 {{ end }}
16{{ end }}
启用
在配置文件中添加
1[params]
2 # 数学公式支持
3 viryLatex = false # 使用自建latex渲染服务
4 mathjax = true # enable MathJax support
5 katex = true # enable KaTeX support
在Markdown中使用
1行内{{<latex>}}\sqrt{x^2+1}{{</latex>}}
2
3单独一行{{<latex inline="false">}}\sqrt{x^2+1}{{</latex>}}
效果
行内 $_math_inline$\sqrt{x^2+1}$math_inline_$
单独一行 $_math_noinline$\sqrt{x^2+1}$math_noinline_$
除另有声明外,本博客文章均采用 知识共享 (Creative Commons) 署名 4.0 国际许可协议 进行许可。转载请注明原作者与文章出处。