hexo主题支持MathJax

  1. 1. 修改marked.js
    1. 1-1.修改escape
    2. 1-2修改em
  2. 2.开启
    1. 2-1.配置
    2. 2-2.文章
  3. 3.使用公式
    1. 3-1.行内
    2. 3-2.行间
    3. 3-3.自动编号
    4. 3-4.手动编号
    5. 3-5.矩阵

MathJax公式手册

1. 修改marked.js

由于hexo的MarkDown渲染器与MathJax有冲突,所以在使用之前需要修改两个地方。

文件路径: node_modules\marked\lib\marked.js

1-1.修改escape

escape: /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,

每个版本对于的正则表达式可能略有差异,直接关键字escape:去搜索。

改为

escape: /^\\([`*\[\]()# +\-.!_>])/,

1-2修改em

em: /^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,

每个版本对于的正则表达式可能略有差异,直接关键字em:去搜索

改为

em:/^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,

2.开启

2-1.配置

修改3-hexo/_config.yml

# MathJax 数学公式支持
mathjax:
  on: true #是否启用
  per_page: false # 若只渲染单个页面,此选项设为false,页面内加入 mathjax: true

设置 per_page: false ,在需要渲染的页面内 加入mathjax: true

2-2.文章

注意:如果配置per_page: false的时候,在文章中一定要加mathjax: true

---
title: hexo主题支持MathJax
author: 沐雨云楼
date: 2020-05-29 11:36:46
tags:
    - 工具
    - hexo
categories:
    - 工具
    - hexo
mathjax: true
---

最标题中说明部位添加mathjax: true

3.使用公式

上面步骤都了后,就可以开心的使用公式了。

  • $符引住的是行内公式
  • $符引住的是行间公式

具体哪些公式,如何书写,请参照 MathJax basic tutorial and quick reference

3-1.行内

markdown语法:$\cos 2\theta = \cos^2 \theta - \sin^2 \theta = 2 \cos^2 \theta$

结果:$\cos 2\theta = \cos^2 \theta - \sin^2 \theta = 2 \cos^2 \theta$

3-2.行间

markdown语法:$$ \sum_{i=0}^n i^2 = \frac{(n^2+n)(2n+1)}{6} $$

$$ \sum_{i=0}^n i^2 = \frac{(n^2+n)(2n+1)}{6} $$

3-3.自动编号

\begin{equation} \end{equation}

$$
\begin{equation}
\sum_{i=0}^n F_i \cdot \phi (H, p_i) - \sum_{i=1}^n a_i \cdot ( \tilde{x_i}, \tilde{y_i}) + b_i \cdot ( \tilde{x_i}^2 , \tilde{y_i}^2 )
\end{equation}
$$
$$
\begin{equation}
\beta^*(D) = \mathop{argmin} \limits_{\beta} \lambda {||\beta||}^2 + \sum_{i=1}^n max(0, 1 - y_i f_{\beta}(x_i))
\end{equation}
$$

$$
\begin{equation}
\sum_{i=0}^n F_i \cdot \phi (H, p_i) - \sum_{i=1}^n a_i \cdot ( \tilde{x_i}, \tilde{y_i}) + b_i \cdot ( \tilde{x_i}^2 , \tilde{y_i}^2 )
\end{equation}
$$
$$
\begin{equation}
\beta^*(D) = \mathop{argmin} \limits_{\beta} \lambda {||\beta||}^2 + \sum_{i=1}^n max(0, 1 - y_i f_{\beta}(x_i))
\end{equation}
$$

3-4.手动编号

可以在公式书写时使用 \tag{手动编号} 添加手动编号

$$
\begin{equation}
\sum_{i=0}^n F_i \cdot \phi (H, p_i) - \sum_{i=1}^n a_i \cdot ( \tilde{x_i}, \tilde{y_i}) + b_i \cdot ( \tilde{x_i}^2 , \tilde{y_i}^2 ) \tag{1.2.3}
\end{equation}
$$

$$
\begin{equation}
\sum_{i=0}^n F_i \cdot \phi (H, p_i) - \sum_{i=1}^n a_i \cdot ( \tilde{x_i}, \tilde{y_i}) + b_i \cdot ( \tilde{x_i}^2 , \tilde{y_i}^2 ) \tag{1.2.3}
\end{equation}
$$

不加\begin{equation} \end{equation}也可以

$$
\beta^*(D) = \mathop{argmin} \limits_{\beta} \lambda {||\beta||}^2 + \sum_{i=1}^n max(0, 1 - y_i f_{\beta}(x_i)) \tag{我的公式3}
$$

$$
\beta^*(D) = \mathop{argmin} \limits_{\beta} \lambda {||\beta||}^2 + \sum_{i=1}^n max(0, 1 - y_i f_{\beta}(x_i)) \tag{我的公式3}
$$

行内公式加\tag{}后会自动成为行间公式,例如:$z = (p_0, ..... , p_n) \tag{公式21} $

$z = (p_0, ….. , p_n) \tag{公式21}$

3-5.矩阵

$$
\begin{matrix}
1 & 2 & 3 \\\
4 & 5 & 6 \\\
7 & 8 & 9 
\end{matrix} \tag{1}
$$

换行应该\\,但由于渲染时候被转为一个\,所以写三个\\\

更多公式请参照:MathJax basic tutorial and quick reference


转载请注明来源,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 157162006@qq.com

文章标题:hexo主题支持MathJax

字数:762

本文作者:沐雨云楼

发布时间:2020-05-29, 09:36:46

最后更新:2020-09-12, 21:21:47

原始链接:https://iworkh.gitee.io/blog/2020/05/29/hexo-theme-math/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏

pgmanor iworkh gitee