markdown+mathjax显示公式,苦逼的找bug过程
在记录自己学习过程中,难免会遇到公式,截图的办法不是长久之计。于是我给它加上了渲染公式的过程。
整个过程非常崎岖。
其实很简单,在普通的页面上引入一个js文件,就可以将latex代码渲染成公式。为了方便编写,我直接在文章中引入了这个js,在vs code上渲染是非常成功的。但是在博客上怎么弄也没法成功。百度的话有很多相关的博客来介绍怎么去做,主要是因为hexo的渲染器与mathjax中部分语法有冲突。我也天真的相信我的问题就是这些构成的,后来我发现即使是最简单的公式(没有下标)也无法渲染成功,此时我的blog里已经加了很多别的没用包了,也删除了很多可能有用的包,怎么设置也没办法。
昨晚就纠结了很久,今天没办法了重新装了下blog,先解决最简单公式显示的问题(直接打开next主题中的mathjax开关),成功了,然后我遇到的问题,才是别人遇到的那些问题。慢慢解决,后来发现还是有部分错误,有两处问题:
1.这次是latex与markdown的冲突:markdown中的*是斜体,因此尽量乘法不要使用它,可以使用{a \times b}($a \times b$)来代替来代替 a*b,或者就是对*进行转义,或者直接省略。
2.在使用范式时||a||,似乎直接使用‘|’这个符号也会出错,总之有范式的地方的公式显示是很混乱的,可能也有冲突(在latex是可以直接使用这个符号的),因此使用{\Vert a \Vert}(${\Vert a \Vert}$)来代替。
最后,浏览器响应github page的速度不快,可能已经deploy了但是依然没有体现出更新的结果。
哎,折腾了一天,感觉收获远远不够花费的时间,不过我经常遇到这样的问题,找bug的能力还有待提高。
P.S. Markdown与latex常用语法
markdown语法
- 标题:
1 | # 一号字体 # |
一号字体
二号字体
三号字体
- 加粗:
要加粗的文字左右分别用两个*号包起来
- 斜体:
要倾斜的文字左右分别用一个*号包起来
- 斜体加粗:
要倾斜和加粗的文字左右分别用三个*号包起来
- 删除线:
要加删除线的文字左右分别用两个~~号包起来
1 | **这是加粗的文字** |
这是加粗的文字
这是倾斜的文字
这是斜体加粗的文字
这是加删除线的文字
- 引用:
在引用的文字前加>即可
1 | > 引用的内容 |
引用的内容
- 分割线:
1
2---
***
- 超链接:
1 | [name](url) |
- 图片:
1 | ![name](imgurl) |
- 列表:
1 | - 列表内容 |
注意:- + * 跟内容之间都要有一个空格
- 列表内容
- 列表内容
列表内容
表格:
1 | 表头|表头|表头 |
第二行分割表头和内容。
文字默认居左
-两边加:表示文字居中
-右边加:表示文字居右
注:原生的语法两边都要用 | 包起来。此处省略
表头 | 表头 | 表头 |
---|---|---|
内容 | 内容2 | 内容 |
内容 | 内容100 | 内容 |
- 代码:
单行代码
1 | 多行代码 |
vscode中前面加制表符自动为代码格式。
可以在标记后标记出代码语言,用来高亮:
1 |
|
Latex语法
- 希腊字母:
显示 | 命令 | 显示 | 命令 |
---|---|---|---|
α | \alpha | β | \beta |
γ | \gamma | δ | \delta |
ε | \epsilon | ζ | \zeta |
η | \eta | θ | \theta |
ι | \iota | κ | \kappa |
λ | \lambda | μ | \mu |
ν | \nu | ξ | \xi |
π | \pi | ρ | \rho |
σ | \sigma | τ | \tau |
υ | \upsilon | φ | \phi |
χ | \chi | ψ | \psi |
ω | \omega | ||
命令首字母大写则为显示为大写。 |
- 字母修饰:
上标:^
下标:_
举例:C_n^2 呈现为 $C_n^2$
矢量:
\vec a呈现为 $\vec a$
\overrightarrow{xy}呈现为$\overrightarrow{xy}$
- 分组:
使用{}将具有相同等级的内容扩入其中,成组处理
举例:10^{10}呈现为$10^{10}$,而10^10呈现为$10^10$
- 括号:
小括号:()呈现为()
中括号:[]呈现为[]
尖括号:\langle,\rangle呈现为$\langle,\rangle$
大括号为与分组符号{}相区别,使用转义字符\
使用\left(或\right)使符号大小与邻近的公式相适应;该语句适用于所有括号类型
(\frac{x}{y})呈现为$(\frac{x}{y})$
而\left(\frac{x}{y}\right)呈现为$\left(\frac{x}{y}\right)$
- 求和:
求和符号\sum显示为$∑$
举例:\sum_{i=0}^n 显示为 $\sum_{i=0}^n$
- 极限:
极限符号\lim显示为$lim$
举例:\lim_{x\to\infty}
$
\lim_{x\to\infty}
$
- 积分:
命令 | 显示 |
---|---|
\int | ∫ |
\iint | ∬ |
\iiint | ∭ |
\iiiint | ∬∬ |
\oint | ∮ |
举例:\int_0^\infty{fxdx} 显示为$$\int_0^\infty{f(x)dx}$$
- 分式:
\frac{公式1}{公式2}显示为$\frac{公式1}{公式2}$
举例:\frac a b $\frac a b$
根号:
\sqrt[x]{y}显示为$\sqrt[x]{y}$常见函数:
\函数名
举例:\sin x,\ln x,\log_n^2 5,\max(A,B,C)显示为
$$ \sin x,\ln x,\log_n^2,\max(A,B,C) $$
暂时写这么些,还有很多其他用法,需要平时的积累。