2021-07-14  2024-09-18    445 字  1 分钟

如果要启用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 国际许可协议 进行许可转载请注明原作者与文章出处