0%

HEXO显示Latex公式

2021年02月21日,我遇到的问题是在 typero里面顺利编辑的Latex 公式,但是在Hexo生成的页面里面不显示
需要安装一些插件和做一些配置,就ok了

安装插件

1
2
3
npm install hexo-math --save
npm uninstall hexo-renderer-marked --save
npm install hexo-renderer-kramed --save

我再这里遇到的坑是 hexo-renderer-marked 无法下卸载,可以按如下流程处理:

  1. package.json 中去掉 hexo-renderer-marked
  2. 删除 node_modules
  3. 重新安装

配置修改

位置在 node_modules/_kramed@0.5.6@kramed/lib/rules/inline.js

需要修改 escapeem

最终修改完整体显示为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// ~/blog/node_modules\kramed\lib\rules\inline.js

var inline = {
//escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/, // 注释掉的默认规则
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: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/, // 注释掉的默认规则
em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/, // 新增的规则
code: /^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,
br: /^ {2,}\n(?!\s*$)/,
del: noop,
text: /^[\s\S]+?(?=[\\<!\[_*`$]| {2,}\n|$)/,
math: /^\$\$\s*([\s\S]*?[^\$])\s*\$\$(?!\$)/,
};

主题修改

根目录config

添加 math 支持

1
2
3
4
5
# MathJax
math:
engine: 'mathjax'
mathjax:
src: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-MML-AM_CHTML

主题config

启用 mathjax

1
2
3
4
mathjax:
enable: true # 默认为False
# See: https://mhchem.github.io/MathJax-mhchem/
mhchem: false

文章标题

还需要在文章的开始的Hexo配置里打开mathjax开关,如下:

1
2
3
4
5
6
layout: post
title: HEXO显示Latex公式
date: 2021-02-21 12:40:58
tags: hexo
mathjax: true

测试

添加latex

在文章中的某个位置加上如下 latex 代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$$
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_{n1} & a_{n2} & ... & a_{nn}\\
\end{bmatrix} , b = \begin{bmatrix}
b_{1} \\
b_{2} \\
b_{3} \\
\vdots \\
b_{n} \\
\end{bmatrix}
$$

会居中显示公式

重新生成网页

1
2
hexo clean
hexo s

参考:

让 Hexo 搭建的博客支持 LaTeX
hexo next主题解决无法显示Latex数学公式———系列第六篇