0%

在Hexo中使用数学公式

详细参考资料

参考next主题目录下的docs\zh-CN\MATH.md文件,可以获得最全面的中文使用文档。

更改渲染引擎

目前,NexT 提供两种数学公式渲染引擎,分别为 MathJaxKatex

由于之前用MathJax效果也非常不错,这里仅说明MathJax的配置过程,这里是任选其一的。

如果你选择使用 MathJax 进行数学公式渲染,你需要使用 [hexo-renderer-pandoc](https://github.com/wzpan/hexo-renderer-pandoc) 或者 [hexo-renderer-kramed](https://github.com/sun11/hexo-renderer-kramed) 这两个渲染器的其中一个。

首先,卸载原有的渲染器 `hexo-renderer-marked`,并安装这两种渲染器的**其中一个**:

1
2
npm uninstall hexo-renderer-marked
npm install hexo-renderer-pandoc # 或者 npm install hexo-renderer-kramed
然后在 `next/_config.yml` 中将 `mathjax` 的 `enable` 打开。
1
2
3
4
math:
...
mathjax:
enable: true

对需要使用公式的文档进行调整

由于公式渲染并不是默认开启的(提高全局速度),需要在对应文档的开头(即 Front-matter) 标明使用mathjax,大致像这样。

1
2
3
4
5
6
<!-- 这篇文章会渲染数学公式 -->
---
title: 'Will Render Math'
mathjax: true
---
....

如果觉得过于费事,可以修改per_page选项。默认为true则只对明确标明mathjax: true的文档进行公式渲染,而改为false将对所有的文档进行公式渲染。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# Math Formulas Render Support
math:
# Default (true) will load mathjax / katex script on demand.
# That is it only render those page which has `mathjax: true` in Front-matter.
# If you set it to false, it will load mathjax / katex srcipt EVERY PAGE.
per_page: true

# hexo-renderer-pandoc (or hexo-renderer-kramed) required for full MathJax support.
mathjax:
enable: true
# See: https://mhchem.github.io/MathJax-mhchem/
mhchem: false

# hexo-renderer-markdown-it-plus (or hexo-renderer-markdown-it with markdown-it-katex plugin) required for full Katex support.
katex:
enable: false
# See: https://github.com/KaTeX/KaTeX/tree/master/contrib/copy-tex
copy_tex: false

效果

1
2
3
$$\begin{equation}
e=mc^2
\end{equation}\label{eq1}$$

$$\begin{equation}
e=mc^2
\end{equation}\label{eq1}$$

然后,在正文中,你可以轻松引用上述公式,一个简单的例子如下:

1
著名的质能方程 $\eqref{eq1}$ 由爱因斯坦提出 ...

著名的质能方程 $\eqref{eq1}$ 由爱因斯坦提出 …

Latex 语法

这里附上部分Latex常用语法方便查阅。

分数表示

分数通过\frac{ }{ }来表示,在两个括号内输入对应的表达式即可,分式会被自动缩小,如果过小需要使用上述调整大小方式调整。

$$ P_i = \frac{e^x_i}{\sum_{j=1}^{n}e^x_j}$$ 会被输出为:

$$ P_i = \frac{e^x_i}{\sum_{j=1}^{n}e^x_j}$$

约等号和不等号的表示

约等号使用 \approx,小于等于使用\le\leq,大于等于使用\ge\geq,大于或小于则不需转义。

$a\approx b$ : $a\approx b$

省略号的表示

使用\cdots即可表示出位于中间的三个连续点。 额外补充几种点的表示。

  • $\cdots$ \cdots
  • $\ddots$ \ddots
  • $\ldots$ \ldots
  • $\vdots$ \vdots

对于需要调整大小的情形

使用 \tiny\scriptsize\small\normalsize\large\Large\LARGE\huge\Huge 进行调整.

$$\tiny A \scriptsize A \small A\normalsize A\large A\Large A\LARGE A\huge A\Huge A$$

1
\tiny A \scriptsize A \small A\normalsize A\large A\Large A\LARGE A\huge A\Huge A

最大值与最小值

使用 \max 表示最大值, 如果下方需要限制范围,则使用 limits。
$$
\max \limits_{1<x<100}f(x)
$$

1
$\max \limits_{1<x<100}f(x)$