让 Hexo 搭建的博客支持 LaTeX

    Hexo

数学是个充斥着糟糕符号的领域,这些符号在语义上的随意性给知识的交流和传承带来了巨大的困扰,人们在参与数学活动的时候,超过一半的时间是用来尝试理解这些数学符号,而不是处理数学问题本身。尽管如此,使用这些符号来表达数学思想确实是现阶段不可避免的。

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 %}

    偏微分:


引用与延伸


打赏