Markdown语法中应该是可以支持基础公式编写,但是Jekyll未必支持,故没有尝试。
以下采用MathJax配置。
1. 配置并链接 MathJex 库
MathJax 是一款基于 JavaScript 的开源数学公式显示引擎,利用它可在各种当下流行的浏览器中“完美”渲染并显示 LaTax、MathML 以及 AsciiMath 数学公式。
但是,在 Jekyll 中使用 MathJax 时会出现严重问题,原因在于一些 LaTex 公式通常被作为 Markdown 标记处理从而影响公式的正常输出显示,因此需要一些特殊的配置。
配置方法:
在 <head>
标签中加入以下代码块。
如果使用本仓库的博客模板,加在 _include
下的 head.html
中 <head>
内即可。
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {
skipTags: ['script', 'noscript', 'style', 'textarea', 'pre'],
inlineMath: [['$','$']]
}
});
</script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-MML-AM_CHTML' async></script>
效果如下:
2. MathJex 基本语法
2.1. 呈现位置:
- 行内显示(inline)中的 LaTeX 公式用
$
...
$
定义:- 语句为
$
\sum_{i=0}^N\int_{a}^{b}g(t,i)\text{d}t
$
- 显示为 $\sum_{i=0}^N\int_{a}^{b}g(t,i)\text{d}t$
- 语句为
- 行间显示(display)中 LaTeX 公式用
$$
...
$$
定义,公式居中并放大展示:- 语句为
$$
\sum_{i=0}^N\int_{a}^{b}g(t,i)\text{d}t
$$
- 显示为
行间公式必须单独写一行,且行上行下必须都空出一行
- 语句为
- 以下描述语法若非特别指出均省略
$
...
$
2.2 上下标、矢量和字体
code | show | code | show | code | show |
---|---|---|---|---|---|
X_n^i |
$X_n^i$ | e^{i\pi}+1=0 |
$e^{i\pi}+1=0$ | ||
\vec a |
$\vec a$ | \overrightarrow{xy} |
$\overrightarrow{xy}$ | \overline x |
$\overline x$ |
\mathtt{ABC} |
$\mathtt{ABC}$ | \mathbb{A} |
$\mathbb{ABC}$ | \mathsf{A} |
$\mathsf{ABC}$ |
2.3. 求和、极限与积分
code | show | code | show | code | show | code | show |
---|---|---|---|---|---|---|---|
\sum |
$\sum_{i=1}^n{a_i}$ | \lim |
$\lim_{x\to 0}$ | \displaystyle |
$\displaystyle\lim_{x\to \infty}$ | \int |
$\int_0^\infty{fxdx}$ |
2.4. 分式与根式
code | show | code | show | code | show |
---|---|---|---|---|---|
\frac{x}{y} |
$\frac{x}{y}$ | \left(...\right) |
$\left(\frac{x}{y}\right)$ | \sqrt[x]{y} |
$\sqrt[x]{y}$ |
2.5 特殊函数
code | show | code | show | code | show |
---|---|---|---|---|---|
\sin x |
$\sin x$ | \ln x |
$\ln x$ | \max(A,B,C) |
$\max(A,B,C)$ |
2.6 特殊符号、希腊字母
code | show | code | show | code | show | code | show |
---|---|---|---|---|---|---|---|
\infty |
$\infty$ | \cup |
$\cup$ | \cap |
$\cap$ | \subset |
$\subset$ |
\subseteq |
$\subseteq$ | \supset |
$\supset$ | \in |
$\in$ | \notin |
$\notin$ |
\varnothing |
$varnothing$ | \forall |
$forall$ | \exists |
$\exists$ | lnot |
$\lnot$ |
\nabla |
$\nabla$ | \partial |
$\partial$ | \alpha |
$\alpha$ | \beta |
$\beta$ |
\gamma |
$\gamma$ | \delta |
$\delta$ | \epsilon |
$\epsilon$ | \zeta |
$\zeta$ |
\eta |
$\eta$ | \theta |
$\theta$ | \iota |
$\iota$ | \kappa |
$\kappa$ |
\lambda |
$\lambda$ | \mu |
$\mu$ | \nu |
$\nu$ | \xi |
$\xi$ |
\pi |
$\pi$ | \rho |
$\rho$ | \sigma |
$\sigma$ | \tau |
$tau$ |
\upsilon |
$\upsilon$ | \phi |
$\phi$ | \chi |
$\chi$ | \psi |
$\psi$ |
\omega |
$\omega$ |
2.7 矩阵
- 起始标记
\begin{matrix}
, 结束标记\end{matrix}
. - 每一行末尾标记
\\
, 行间元素之间以&
分隔 - 举例
$$\begin{matrix}
1&0&0\\
0&1&0\\
0&0&1\\
\end{matrix}$$
2.8 省略元素、边框元素
code | show | code | show | code | show |
---|---|---|---|---|---|
\cdots |
$\cdots$ | \vdots |
$\vdots$ | \ddots |
$\ddots$ |
pmatrix |
bmatrix |
Bmatrix |
|||
vmatrix |
Vmatrix |
- 举例
$$\begin{bmatrix}
{a_{11}}&{a_{12}}&{\cdots}&{a_{1n}}\\
{a_{21}}&{a_{22}}&{\cdots}&{a_{2n}}\\
{\vdots}&{\vdots}&{\ddots}&{\vdots}\\
{a_{m1}}&{a_{m2}}&{\cdots}&{a_{mn}}\\
\end{bmatrix}$$
2.9 阵列
- 需要array环境:起始、终止处以
{array}
声明 - 对齐方式:在
{array}
后以{}
逐行统一声明- 左对齐:
l
\ 居中c
\ 右对齐r
- 竖直线: 在声明对齐方式时,插入
|
建立竖直线
- 左对齐:
- 插入水平线:
\hline
- 举例:
$$\begin{array}{c|lll}
{arr}&{a}&{b}&{c}\\
\hline
{R_1}&{c}&{b}&{a}\\
{R_2}&{b}&{c}&{c}\\
\end{array}$$
2.10 方程组
- 需要cases环境:起始、终止处以
{cases}
声明 - 举例:
$$\begin{cases}
a_1x+b_1y+c_1z=d_1\\
a_2x+b_2y+c_2z=d_2\\
a_3x+b_3y+c_3z=d_3\\
\end{cases}$$