让 Hexo 搭建的博客支持 LaTeX
数学是个充斥着糟糕符号的领域,这些符号在语义上的随意性给知识的交流和传承带来了巨大的困扰,人们在参与数学活动的时候,超过一半的时间是用来尝试理解这些数学符号,而不是处理数学问题本身。尽管如此,使用这些符号来表达数学思想确实是现阶段不可避免的。
LaTeX 可以让我们在博客里使用这些数学符号,它有着特定的语法。下面的教程展示了如何让通过 Hexo 技术搭建的博客支持显示使用 LaTeX 语法所描述的数学表达式。
安装插件
安装 hexo-math 插件,该插件(plugin)可支持使用 MathJax 或 KaTeX 来实现 LaTeX 排版系统,进而在网页上渲染出数学表达式(本文以 MathJax 为例)。
## 打开终端,进入 hexo 博客所在文件夹
$ cd ~/blog
## 安装 hexo ; --save 参数会让 npm 在安装 hexo-math 之后自动将它写入 package.json 文件里,以便之后多电脑同步时使用
$ npm install hexo-math --save设置 _config.yml
在 ~/blog/_config.yml 文件(注意是 Hexo 博客文件夹根目录的 /_config.yml 而非主题目录下的 /themes/next/_config.yml)中增加 Math 的设置
...
...
# Math (hexo-math)
math:
katex:
css: false
mathjax:
options:
conversion:
display: false
tex:
svg:
...
...经过以上所有设置后,重启 Hexo ,让各种设置生效
$ npx hexo clean ## 清除缓存
$ npx hexo g ## 重新按照新的 _config.yml 完整生成网站;
$ npx hexo s ## 启动服务器 - 让 _config.yml 文件中的配置生效 使用 LaTeX 语法显示数学表达式
由于 LaTeX 与 Markdown 语法存在冲突,所以 hexo-math 采用更加显式的特殊标记符来避免语义混淆。常用语法如下:
内联(inline):使用
{% mathjax %}和{% endmathjax %}标记圆的面积:{% mathjax %}A=\pi r^2{% endmathjax %} 积分:{% mathjax %}\int_a^b f(x) dx{% endmathjax %} 极限:{% mathjax %}lim_{n\rightarrow \infty}(1+2^n)^\frac{1}{n + \sin n}{% endmathjax %}圆的面积:
积分:
极限:
贝叶斯公式:{% mathjax %} P(A_i \mid B) = \frac{P(B\mid A)P(A_i)}{\sum_{j=1}^{n}P(A_j)P(B \mid A_j)} {% endmathjax %} 分段函数:{% mathjax %} \begin{equation} sign(x)=\begin{cases} -1 & \text{if $x<0$},\\ 0 & \text{if $x=0$},\\ 1 & \text{if $x>0$}. \end{cases} \end{equation} {% endmathjax %}贝叶斯公式:
分段函数:
块(block):前标记中添加
'{ "conversion": { "display": true } }'{% mathjax %}m \times n{% endmathjax %} 和 {% mathjax %}n \times 1{% endmathjax %} 矩阵: {% mathjax '{ "conversion": { "display": true } }' %} A = \begin{bmatrix} a_{11} & a_{12} & ... & a_{1n}\\ a_{21} & a_{22} & ... & a_{2n}\\ a_{31} & a_{22} & ... & a_{3n}\\ \vdots & \vdots & \ddots & \vdots\\ a_{m1} & a_{n2} & ... & a_{mn}\\ \end{bmatrix} , B = \begin{bmatrix} b_{1} \\ b_{2} \\ b_{3} \\ \vdots \\ b_{n} \\ \end{bmatrix} {% endmathjax %} 和 矩阵:偏微分: {% mathjax '{ "conversion": { "display": true } }' %} \begin{aligned} \frac{\partial \mathcal{E}}{\partial x_l} &= \frac{\partial \mathcal{E}}{\partial x_L} \frac{\partial x_L}{\partial x_l} \\ &= \frac{\partial \mathcal{E}}{\partial x_L} \left( 1+ \frac{\partial}{\partial x_l} \sum_{i=l}^{L-1} \mathcal{F}(x_i, \mathcal{W}_i) \right) \end{aligned} {% endmathjax %}偏微分:
引用与延伸
- A Primer on Using LaTeX in Jupyter Notebooks(写得挺好的,所以尽管原文页面已无法访问,还是写出来做个纪念。网上能搜到该文,我的 Dropbox 里也有保存)
打赏