在HEXO博客中使用LaTeX公式的简单方法

@LoyFan

@ LoyFan

建了一个HEXO博客,主题为NEXT,但是在本地编辑好Markdown文本发布上去之后,LaTeX公式都无法正常显示,遂寻找解决方法如下

步骤一 更换Hexo默认渲染引擎

1
2
>> sudo npm uninstall hexo-renderer-marked
>> sudo npm install hexo-renderer-kramed --save

步骤二 在你的hexo的主题文件夹下的配置文件中激活mathjax

1
2
3
4
5
6
7
8
#文件路径
/blog/themes/next/config.yml

#修改内容
# MathJax Support
mathjax:
enable: true
per_page: false

步骤三 修改一些语法解释

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#文件路径
/blog/node_modules/kramed/lib/rules/inline.js

#修改内容
#只修改了escape/strong/em
var inline = {
escape: /^\\([`*\[\]()#$+\-.!_>])/,
autolink: /^<([^ >]+(@|:\/)[^ >]+)>/,
url: noop,
html: /^<!--[\s\S]*?-->|^<(\w+(?!:\/|[^\w\s@]*@)\b)*?(?:"[^"]*"|'[^']*'|[^'">])*?>([\s\S]*?)?<\/\1>|^<(\w+(?!:\/|[^\w\s@]*@)\b)(?:"[^"]*"|'[^']*'|[^'">])*?>/,
link: /^!?\[(inside)\]\(href\)/,
reflink: /^!?\[(inside)\]\s*\[([^\]]*)\]/,
nolink: /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,
reffn: /^!?\[\^(inside)\]/,
strong: /^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,
em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,

步骤四 在Markdown文本中添加语句

1
2
#添加在开头
mathjax: true

步骤五 完成/参考样例

  • Markdown文字

      -----------------
      **BP算法**
    
      训练集    $\left\{\left(x^{(1)}, y^{(1)}\right), \ldots,\left(x^{(m)}, y^{(m)}\right)\right\}$
    
      设    $\Delta_{i j}^{(l)}=0(\text { for all } l, i, j)$
    
      $\begin{array}{l}{\text {For } i=1 \text { to } m}\end{array}$
    
      $$
      \begin{array}{l}{\text { Set } a^{(1)}=x^{(i)}} \\ {\text { Perform forward propagation to compute } a^{(l)} \text { for } l=2,3, \ldots, L} \\ {\text { Using } y^{(i)}, \text { compute } \delta^{(L)}=a^{(L)}-y^{(i)}} \\ {\text { Compute } \delta^{(L-1)}, \delta^{(l+1)}, \ldots, \delta^{(2)}} \\ {\Delta_{i j}^{(l)} :=\Delta_{i j}^{(l)}+a_{j}^{(l)} \delta_{i}^{(l+1)}}\end{array}
      $$
    
      $\begin{array}{l}{D_{i j}^{(l)} :=\frac{1}{m} \Delta_{i j}^{(l)}+\lambda \Theta_{i j}^{(l)}} & {\text { if } j \neq 0} \\ {D_{i j}^{(l)} :=\frac{1}{m} \Delta_{i j}^{(l)}} & {\text { if } j=0}\end{array}$
    
      其中    $\frac{\partial}{\partial \Theta_{i j}^{(l)}} J(\Theta)=D_{i j}^{(l)}$
    
      -----------------
    
  • CSDN中效果


    BP算法

    训练集 $\left\{\left(x^{(1)}, y^{(1)}\right), \ldots,\left(x^{(m)}, y^{(m)}\right)\right\}$

    设 $\Delta_{i j}^{(l)}=0(\text { for all } l, i, j)$

    $\begin{array}{l}{\text {For } i=1 \text { to } m}\end{array}$

    $\begin{array}{l}{D_{i j}^{(l)} :=\frac{1}{m} \Delta_{i j}^{(l)}+\lambda \Theta_{i j}^{(l)}} & {\text { if } j \neq 0} \\ {D_{i j}^{(l)} :=\frac{1}{m} \Delta_{i j}^{(l)}} & {\text { if } j=0}\end{array}$

    其中 $\frac{\partial}{\partial \Theta_{i j}^{(l)}} J(\Theta)=D_{i j}^{(l)}$


  • HEXO博客效果