MathJax与Markdown的融合 链接到标题
前几天笔者使用的是田少晗的个人博客,严格按照上面的指示配置,不过在coder主题中他博客中说的extend_head.html
是我coder主题下的head.html
,这无大碍。
使用coder主题修改配置 链接到标题
我记得coder的示例网址有提到使用KaTeX来渲染公式,但是一直没有找到,于是将其github网址喂给ai,ai告诉我,直接在hugo.toml
里面的[para]里面加入一行代码
#[params](定位到这里)
math = true
即可,然后就可以在博客里面显示公式了,像这样:
$$
\varTheta’’+\cot\theta\varTheta’+\left[n(n+1)-\frac{m^2}{\sin^2\theta}\right]\varTheta=0
$$
或者下面这样
$$ y_2=\sum_{m=0}^{\frac{n-1}{2}}(-1)^m\frac{(2n-2m-1)!}{2^nm!(n-m)!(n-2m-1)!}x^{n-2m} $$
也可以是这个公式
值得注意一些事情:
- 这是markdown,因此在使用公式的时候不能像$\LaTeX$那样太随意,比如上面的那段话,如果写成
$$
\varTheta''+\cot\theta\varTheta'+\left[n(n+1)-\frac{m^2}{\sin^2\theta}\right]\varTheta=0
$$
或者下面这样
$$
y_2=\sum_{m=0}^{\frac{n-1}{2}}(-1)^m\frac{(2n-2m-1)!}{2^nm!(n-m)!(n-2m-1)!}x^{n-2m}
$$
显示结果如下
$$ \varTheta’’+\cot\theta\varTheta’+\left[n(n+1)-\frac{m^2}{\sin^2\theta}\right]\varTheta=0
$$ 或者下面这样 $$ y_2=\sum_{m=0}^{\frac{n-1}{2}}(-1)^m\frac{(2n-2m-1)!}{2^nm!(n-m)!(n-2m-1)!}x^{n-2m} $$ 即会误将文字部分变成了公式,而应该被渲染的公式却以源码形式呈现了。
$$
\varTheta''+\cot\theta\varTheta'+\left[n(n+1)-\frac{m^2}{\sin^2\theta}\right]\varTheta=0
$$
或者下面这样
$$
y_2=\sum_{m=0}^{\frac{n-1}{2}}(-1)^m\frac{(2n-2m-1)!}{2^nm!(n-m)!(n-2m-1)!}x^{n-2m}
$$
才可以正确显示。
-
KaTeX功能还是有限的,貌似并不支持大括号括起来的那一种换行,并且对于一些极其复杂的公式可能会渲染很久,比如下面这个(你应该看到的是源码,估计是太庞大渲染不出来了)。
$$ K_n(x)=\frac{1}{2}\sum_{m=0}^{n-1}\frac{(-1)^m(n-m-1)!}{m!}\left(\frac{x}{2}\right)^{2m-n}+(-1)^{n+1}\sum_{m=0}^{+\infty}\frac{\left(\frac{x}{2}\right)^{n+2m}}{m!(n+m)!}\left[\ln \frac{x}{2}-\frac{1}{2}\varPsi (m+1)-\frac{1}{2}\varPsi(n+m+1)\right]
$$
因此要打公式的地方还是借助$\LaTeX$吧,KaTeX不是打公式最好的选择,只能说是打在网页上的最优解而已。