自从打开了Pjax后,我的博客的LaTeX加载就非常闹心……

原因

我的博客一开始使用的是MathJax,一开始还行,后来为了搞音乐播放器,开启了Pjax,噩梦的开始……

image.png

Pjax动态加载会导致部分JavaScript文件无法自动运行,这很常见……像MathJax这类的需要在页面打开后再渲染的,自然属于这一类。

解决方法

打开主题的配置文件,找到有关于数学公式的配置(这里使用的是NexT主题):

image.png

将其修改,关闭所有选项:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
math:
# Default (true) will load mathjax / katex script on demand.
# That is it only render those page which has `mathjax: true` in Front-matter.
# If you set it to false, it will load mathjax / katex srcipt EVERY PAGE.
per_page: false
# hexo-renderer-pandoc (or hexo-renderer-kramed) required for full MathJax support.
mathjax:
enable: false
# See: https://mhchem.github.io/MathJax-mhchem/
mhchem: false

# hexo-renderer-markdown-it-plus (or hexo-renderer-markdown-it with markdown-it-katex plugin) required for full Katex support.
katex:
enable: false
# See: https://github.com/KaTeX/KaTeX/tree/master/contrib/copy-tex
copy_tex: false

随后打开\themes\next\layout\_layout.swig,在<head>处添加以下两行:

1
2
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.css" integrity="sha384-bsHo4/LA+lkZv61JspMDQB9QP1TtO4IgOf2yYS+J6VdAYLVyx1c3XKcsHh0Vy8Ws" crossorigin="anonymous">
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.js" integrity="sha384-4z8mjH4yIpuK9dIQGR1JwbrfYsStrNK6MP+2Enhue4eyo0XlBDXOIPc8b6ZU0ajz" crossorigin="anonymous"></script>

这样可以将我们的博客的数学公式渲染切换到KaTeX,至于为什么不使用自带的KaTeX……在博主这里渲染一直有问题qaq

效果

切换完后,就来看看效果……

行内公式

众所周知,1+1=21+1=22+2=42+2=4,因此,我们可以得到a+a=2aa+a=2a

勾股定理的公式是a2+b2=c2a^2+b^2=c^2

在C++中,定义一个数组a[n](假设nn已知),那么这个数组下标实际为a1,a2,a3,...,an2,an1a_1,a_2,a_3,...,a_{n-2},a_{n-1}

行间公式

勾股定理的公式是:

a2+b2=c2a^2+b^2=c^2

一大段的文字

根据勾股定理的公式a2+b2=c2a^2+b^2=c^2,我们可以得到以下的伪代码,通过aabb,计算出cc

1
2
int _ = 3,$$ = 4;//a,b
int $$$_233 = sqrt(_*_+$$*$$)//c

可见效果还不戳qaq