hexo 中 Mathjax 的用法
Mathjax 的安装
在 hexo 中,你会发现我们不能用 Latex 语法来书写数学公式,这对于书写学术博客来说是很大的不便,因为我们会经常碰到很多的数学公式推导,但是我们可以通过安装第三方库来解决这一问题。
第一步: 使用 Kramed 代替 Marked
hexo 默认的渲染引擎是 marked,但是 marked 不支持 mathjax。 kramed 是在 marked 的基础上进行修改。我们在工程目录下执行以下命令来安装 kramed。1
2npm uninstall hexo-renderer-marked --save
npm install hexo-renderer-kramed --save
然后,更改 /node_modules/hexo-renderer-kramed/lib/renderer.js,更改:1
2
3
4
5// Change inline math rule
function formatText (text) {
// Fit kramed's rule: $$ + \1 + $$
return text.replace (/`\$(.*?)\$`/g, '$$$$ $$$$');
}
为:1
2
3
4// Change inline math rule
function formatText (text) {
return text;
}
第二步:停止使用 hexo-math
首先,如果你已经安装 hexo-math, 请卸载它:
1 | npm uninstall hexo-math --save |
然后安装 hexo-renderer-mathjax 包:1
npm install hexo-renderer-mathjax --save
第三步:更新 Mathjax 的 CDN 链接
首先,打开 /node_modules/hexo-renderer-mathjax/mathjax.html
然后,把 script 更改为:1
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML"></script>
第四步:更改默认转义规则
因为 hexo 默认的转义规则会将一些字符进行转义,比如 _ 转为 , 所以我们需要对默认的规则进行修改.
首先, 打开 /node_modules/kramed/lib/rules、inline.js
然后,把1
escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/,
更改为:1
escape: /^\\([`*\[\]()# +\-.!_>])/,
把1
em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
更改为:1
em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
第五步:开启 mathjax
在主题 _config.yml 中开启 Mathjax, 找到 mathjax 字段添加如下代码:1
2mathjax:
enable: true
到博客根目录下,找到 themes/next/_config.yml,把 math 默认的 flase 修改为 true,具体如下:1
2
3
4
5# Math Equations Render Support
math:
enable: true
per_page: true
engine: mathjax
通过以上步骤,我们就可以在 hexo 中使用 Mathjax 来书写数学公式。
语法使用
空格表示
点乘、叉乘、除以
点乘:a \cdot b
叉乘:a \times b
除以:a \div b
对数
log 以 a 为底,以 x 为真数:\log_ax
log 以 e 为底,以 x 为真数:\ln x
log 以 10 为底,以 x 为真数:\lg x
向下取整,向上取整
向下取整:\lfloor x \rfloor
向上取整:\lceil x \rceil
字母上有一横
\overline 能覆盖所有括号中的文本,\bar 长度只能覆盖一个字母。
字母上一个帽子符号
\hat {Z}
微积分常用符号
大于等于号和小于等于号
大于等于号:\geq
小于等于号:\leq
矩阵
https://blog.csdn.net/Mage_EE/article/details/75317083
\begin {matrix}
1 & x & x^2 \\
1 & y & y^2 \\
1 & z & z^2 \\
\end {matrix}
通过强制改变字体大小使得分子分母字体大小一致
\displaystyle
https://blog.csdn.net/weixin_36670529/article/details/85256017
插入表格
| 姓名 | 爱好 |
—|—|
张三 | 足球 < br > 篮球
李四 | 羽毛球 < br > 乒乓球
https://blog.csdn.net/microcosmv/article/details/51868178
公式语法
http://stevenshi.me/2017/06/26/hexo-insert-formula/
https://www.szdev.com/blog/Hexo/mathjax-config-and-tutorial/
分段函数
1 | $f (n) = |
$f (n) =
\begin {cases}
n/2, & \text {if $n$ is even} \\
3n+1, & \text {if $n$ is odd}
\end {cases}$
详细数学运算语法 https://blog.csdn.net/u010945683/article/details/46757757
详细罗马符号语法 https://blog.csdn.net/liyuanbhu/article/details/50636416
详细语法 https://www.szdev.com/blog/Hexo/mathjax-config-and-tutorial/
Markdown 学习笔记 http://pepcy.cf/Markdown-% E5% AD% A6% E4% B9% A0% E7% AC%94% E8% AE% B0/
Latex/MathJax/Katex 数学公式手册 https://fivecakes.com/math
公式语法 https://yichihuang.github.io/2015/03/30/mathjax/
LaTex 中的任意以及存在符号以及 {}
(1) 任意1
$ {\forall}$
(2) 存在1
$ {\exists}$
(3) {}1
\lbrace1,2,...,n\rbrace
表示平均
\overline 能覆盖所有括号中的文本,\bar 长度只能覆盖一个字母
极限符号
1 | $\lim \limits_{x \to 1} \frac {x^2-1}{x-1}$ |
$\lim \limits_{x \to 1} \frac {x^2-1}{x-1}$
hexo 文章总览
參考:架設網站的第一步
怎么取消文章目录中对标题的自动编号
設定 - Github-SSH - 金鑰
撰写文章基本操作
如何在 hexo blog 中發表一篇文章
在 hexo 文章中插入图片
hexo 目錄結構
hexo 中 Mathjax 的用法
如何实现 hexo 文章中文和英文之间自动空格