Markdown自用手册
本文主要介绍 MathJax 数学公式。MathJax.js 是一个网页端 latex 公式渲染引擎。
希腊字母
首字母大小写对应大小写的希腊字母(Greek letters):
\alpha \beta \gamma \delta \epsilon \varepsilon \zeta \eta \theta \iota \kappa \lambda \mu \nu \xi \pi \varpi \rho \varrho \sigma \varsigma \tau \upsilon \phi \varphi \chi \psi \omega \Omega \ell
$ \alpha \beta \gamma \delta \epsilon \varepsilon \zeta \eta \theta \iota \kappa \lambda \mu \nu \xi \pi \varpi \rho \varrho \sigma \varsigma \tau \upsilon \phi \varphi \chi \psi \omega \Omega \ell $
其中部分字母开头是 \var-
表示变量专用的形式。
自定义函数/操作符
在公式中如果直接写英文字母会渲染成斜体,如\(sin\),但我们可能想让其不倾斜.
MathJax中内置了\sin,\lim等函数写法,可以直接用,非内置的函数的写法是:\operatorname{operator}(x)
,渲染成\(\operatorname{operator}(x)\)
也可使用{\rm operator}(x)
,渲染成\({\rm operator}(x)\),或者\text{operator}
:\(\text{operator}(x)\)
如果一个自定义操作符频繁被用到,可以在文件中加上这句:$\DeclareMathOperator{\arsinh}{arsinh}$
,之后便可直接使用$\arsinh x$
了.
文字颜色
\color{颜色}{文字}
颜色可以是green、blue等文字表示,也可以是rgb三个十六进行数字表示
符号
列举一些常用的符号表示,也可以在一些在线网页工具中查找所需的符号。
在线查询网站 :Easy Copy Mathjax
参考:stackexchange[1]
不同字体的英文字母
\mathcal L \mathbb L \mathbf L
: \(\mathcal L \mathbb L \mathbf L\)
空白符
\
thin space ; \;
wider space;
\quad
四个空格,\qquad
更多空格
a\ b\; c\quad d\qquad e
显示为: \(a\ b\; c\quad d\qquad e\)
下划线与上下标
\underline{content}_{subscript},\underbrace \overbrace
\(\underline{content}_{subscript},\underbrace{x} \overbrace{x}, x_1^2\)
正下方下标表示\underset{sub}{text},比如 \(\underset{Φ}{\rm{minimize}}\)
绝对值和范式
\lvert x \rvert
:\(\lvert x \rvert\)
将v大写,变为二范式:\(\lVert x \rVert\)
数学符号
数学运算: \times \div \pm \mp \(\times \div \pm \mp\)
余数模:a\equiv b\pmod n ==> \(a\equiv b\pmod n\)
求和积分:\sum \prod \int \iint \bigcup \bigcap $\sum \prod \int \iint \bigcup \bigcap $
比较符:\lt \gt \le \ge \neq <>≤≥≠<>≤≥≠.
可以在每个符号前加\not 给符号添加一个 slash: \not\lt ≮
箭头:\to \rightarrow \leftarrow \Rightarrow \Leftarrow \mapsto →→←⇒⇐↦
星号※ \star \ast $\star \ast $
近似:\approx \sim \simeq \cong \equiv \prec \lhd ≈∼≃≅≡≺,⊲
梯度、偏导、无穷:\infty \aleph_0 \nabla \Delta \delta \partial \Im \Re : \(\infty,\aleph_0,\nabla, \Delta, \delta, \partial, \Im, \Re\)
多点:\dots或\ldots ... \cdots⋯ \ddots⋱ \vdots⋮
圆点: \circ \bullet \bigcirc \oplus \ominus \otimes \odot: \(\circ \bullet \bigcirc \oplus \ominus \otimes \odot\)
逻辑操作符logical: \land \lor \lnot \forall \exists \top \bot \vdash \vDash \(\land \lor \lnot \forall \exists \top \bot \vdash \vDash\)
集合: \cup \cap \setminus \subset \subseteq \subsetneq \supset \in \notin \emptyset \varnothing \(\cup \cap \setminus \subset \subseteq \subsetneq \supset \in \notin \emptyset \varnothing\)
极限:\lim_{变量 \to 表达式}
表达式 \(\lim_{n \to +\infty} \frac{1}{n}\)
箭头图示:
输入 | 图示 | 输入 | 图示 |
---|---|---|---|
\uparrow | ↑↑ | \Uparrow | ⇑⇑ |
\downarrow | ↓↓ | \Downarrow | ⇓⇓ |
\leftarrow | ←← | \Leftarrow | ⇐⇐ |
\to \rightarrow | →→ | \Rightarrow | ⇒⇒ |
\leftrightarrow | ↔↔ | \Leftrightarrow | ⇔⇔ |
\longleftarrow | ⟵⟵ | \impliedby \Longleftarrow | ⟸⟸ |
\longrightarrow | ⟶⟶ | \implies \Longrightarrow | ⟹⟹ |
\longleftrightarrow | ⟷⟷ | \iff \Longleftrightarrow | ⟺⟺ |
\mapsto | ↦↦ | ... | ... |
大的括号
由于{}在公式中如\frac分子式中用来隔离分子和分母,所以如果想在公式中表达较大的括号,需要用\left和\right
\left 与 \right 可以适用于多种类型的括号,使得括号的大小能够适应它所包裹的公式的大小。
(round), [square] , {curly} , | \vert, \Vert, \langle , \rangle, \lceil , \rceil, \lfloor , \rfloor
\((), [] , \{ \} , | \vert, \Vert, \langle , \rangle,\lceil , \rceil,\lfloor , \rfloor\)
示例:
$$
f\left(
\left[
\frac{ 1+\left\{x,y\right\} }{ \left( \frac{x}{y}+\frac{y}{x} \right) \left(u+1\right)}
+a
\right]^{3/2}
\right)
$$
在整行公式中匹配的括号通常要求成对出现,否则可能出现显示问题。Mathjax提供了一个不可见的括号,用.
表示,这使得我们可以单独使用单个括号,如:\left.\frac12\right\rbrace
音标(Accent)与矢量符号
\hat{ a } \grave{ a } \acute{ a } \dot{ a } \ddot{ a } \bar{ a } \vec{ a } \check{ a } \tilde{ a } \breve{ a } \widehat{ AAA } \widetilde{ AAA }
效果: \(\hat{ a } \grave{ a } \acute{ a } \dot{ a } \ddot{ a } \bar{ a } \vec{ a } \check{ a } \tilde{ a } \breve{ a } \widehat{ AAA } \widetilde{ AAA }\)
使用 \vec{矢量}
来自动产生一个矢量。也可以使用 \overrightarrow
等命令自定义字母上方的符号。同时,如果使用\underrightarrow
可以在字符下方产生一个箭头。值得注意的是,\vec
产生的箭头有一定的大小限制,超过之后就不会变大,而\overrightarrow
产生的箭头则会随着内容改变大小。
分数
\frac{1}{3} = {1 \over 3} = \dfrac{1}{3} = \tfrac{1}{3}
: \(\frac{1}{3} = {1 \over 3} = \dfrac{1}{3} = \tfrac{1}{3}\)
dfrac(display fractions)与tfrac(text) 区别在于显示的方式、大小上。
排列组合数
\mathbf C_5^2={5 \choose 2}=\binom{5}{2}
: \(\mathbf C_5^2={5 \choose 2}=\binom{5}{2}\)
删除线
公式内使用 \require{cancel} 来容许片段删除线的使用。 使用 \cancel{字符}、\bcancel{字符}、\xcancel{字符} 和 \cancelto{字符} 实现不同的效果。
保留字符
Mathjax广泛采用了反斜杠作为标记符,还使用了$、{}、_
等字符来描述公式。如果要在Markdown中展示这些字符,需要转义:\$ \{ \}, \_
。对于反斜杠自身的转义需要用\backslash
,因为两个反斜杠表示公式换行。
公式格式化
\begin{equation}
可以嵌套cases,align等公式形式.
换行用两个反斜杠\\,如果用mathjax渲染没有换行的话,多用几个反斜杠\\\
\end{equation}
$
表示行内公式:
质能守恒方程可以用一个很简洁的方程式 \(E=mc^2\) 来表达。
$$
表示整行公式,但需要写在多行中,否则效果和行内公式一样:
$$
\sum^{j-1}_{k=0} \widehat{\gamma}_k z_k = 0
$$
公式对齐
bbox加边框,背景色等,控制范围为大括号内的内容
在公式或矩阵的编辑中符号&
表示要对齐的字符位置,用&&
连接的两段内容在显示时会将多行的内容的第二段左对齐.
\bbox[10px,border:2px solid red]{
\begin{align}
v + w & = 0 &&\text{Given} \tag 1\\
-w & = -w + 0 && \text{additive identity} \tag 2\\
-w + 0 & = -w + (v + w) && \text{add equations $(1)$ and $(2)$} \tag 3
\end{align}
}
条件表达式:包含左大括号,但是等号未对齐
\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}
等号对齐,但需显式写上大括号,注意\right后面加上句点表示大括号范围的结束
\left\{
\begin{aligned}
a_1x+b_1y+c_1z &=d_1+e_1 \\
a_2x+b_2y&=d_2 \\
a_3x+b_3y+c_3z &=d_3
\end{aligned}
\right.
用&分割需要对齐的部分
f(n) =
\begin{cases}
\frac{n}{2}, & \text{if $n$ is even} \\[2ex]
3n+1, & \text{if $n$ is odd}
\end{cases}
还有eqnarray类似align,但是需要两个&符号表示对齐位。不推荐使用。align
is from amsmath
, while eqnarray
is from base LaTeX。
\begin{eqnarray}
\vec\nabla \times (\vec\nabla f) & = & 0 \cdots\cdots梯度场必是无旋场\\
\vec\nabla \cdot(\vec\nabla \times \vec F) & = & 0\cdots\cdots旋度场必是无散场\\
\vec\nabla \cdot (\vec\nabla f) & = & {\vec\nabla}^2f\\
\vec\nabla \times(\vec\nabla \times \vec F) & = & \vec\nabla(\vec\nabla \cdot \vec F) - {\vec\nabla}^2 \vec F\\
\end{eqnarray}
访问 MathJax 参考更多使用方法。
矩阵
$$
\begin{matrix}
1 & x & x^2 \\
1 & y & y^2 \\
1 & z & z^2 \\
\end{matrix}
$$
加括号方式:\left...\right或将matrix替换成pmatrix/bmatrix/Bmatrix/vmatrix/Vmatrix,对应()/[]/{}/||/||||
带分割符号的矩阵
cc|c
代表在一个三列矩阵中的第二和第三列之间插入分割线。
$$
\left[
\begin{array}{cc|c}
1&2&3\\
4&5&6
\end{array}
\right]
$$
行内矩阵
\bigl(\begin{smallmatrix} ... \end{smallmatrix}\bigr)
这是一个行内矩阵: \(\bigl( \begin{smallmatrix} a & b \\ c & d \end{smallmatrix} \bigr)\)
包含纯文本
在公式中显示的英文字符通常为斜体,可以使用\text{…}包裹一段文字,让其展示为普通文字说明并用正体显示。text中可以嵌套公式。
公式颜色
\color{red}{part1} \color{black} part2 ...
其中part的花括号可加可不加。
注:在某些Markdown应用软件中一行需要使用至少两个color,否则生效范围会到行尾。
数组与表格
数组与表格均可用array定义,c
l
r
分別代表居中、左对齐及右对齐,\hline
表示横线。
$$
\begin{array}{c|lcr}
n & \text{左} & \text{中} & \text{右} \\
\hline
1 & 0.24 & 1 & 125 \\
2 & -1 & 189 & -8 \\
3 & -20 & 2000 & 1+10i
\end{array}
$$
画图
时序图
```sequence
Alice->Bob: Hello Bob, how are you?
Note right of Bob: Bob thinks
Bob-->Alice: I am good thanks!
```
Alice->Bob: Hello Bob, how are you?
Note right of Bob: Bob thinks
Bob-->Alice: I am good thanks!
流程图
```flow
st=>start: Start
e=>end
op=>operation: My Operation
cond=>condition: Yes or No?
st->op->cond
cond(yes)->e
cond(no)->op
```
st=>start: Start
e=>end
op=>operation: My Operation
cond=>condition: Yes or No?
st->op->cond
cond(yes)->e
cond(no)->op
交换图标
采用 \require{AMScd} 引入,@>>>
代表右箭头、@<<<
代表左箭头、@VVV
代表下箭头、@AAA
代表上箭头、@=
代表水平双实线、@|
代表垂直双实线、@.
代表沒有箭头。 在@>>>
的>>>
之间任意插入文字即代表该箭头的注释文字。
$$
\require{AMScd}
\begin{CD}
A @>a>> B \\
@V b V V\# @VV c V \\
C @>> \text{very long label} > D
\end{CD}
$$
提示: 更多关于时序图与流程图的语法请参考:
其它
表格竖线
markdown中写表格时如果表格内容包含英文竖线则会引起冲突,有如下处理方式:
-
HTML转义
-
改成中文竖线字符
-
用公式中的转义表示:
\mid
竖线的html转义符为:
|
|
|
|
|
table表格中实现手动换行,使用<br>
反引号对中使用反引号
在 Markdown 中,经常会使用一种反引号对语句来标识一段 特殊文字,如 特殊文字
。不过,有时候 特殊文字 中也会含反引号。显然,如果在 特殊文字 内直接使用反引号, Markdown 渲染器会优先匹配最近的一对反引号,这会导致渲染器的误解析。那么,如何在反引号对语句中使用反引号呢?
方法是,将原来的 反引号对 改成 二反引号对 + 空格。比如,如果原来的语句是 【特殊文字
】,现在,特殊文字 中将含有反引号,此时的语句应改成 【含有`反引号`的特殊文字
】。
参考 blog
注音 ruby HTML
注音 (ruby、振假名)的HTML写法:<ruby> 文本 <rt>注音</rt> </ruby>
可能因为不常用,多数Markdown软件未做支持,但是大多都支持混杂HTML片段。
比如 <ruby>动态链接库<rt>dynamic link library</rt></ruby>
的预览效果:
动态链接库
问答-隐藏详情 HTML
<details>
<summary>WHY DOES ...?</summary>
Answer: xx.
</details>
效果:
WHY DOES ...?
Answer: xx.参考
Maxkit: 如何在 Markdown 輸入數學公式及符號
脚注
方法一:HTML
标准:<sup>上标引用内容</sup>
,可以用<a>,<p>,<img>
等标签来描述引用内容。
方法二:markdown语法
视markdown渲染器的支持程度,非标准。
(1)分离使用[^n]
与 [^n]: 引用内容
即引用和定义的位置分离,可以在多处重复引用。
(2)^[引用内容]
引用的位置直接定义,在不需要重复引用的情况下会比较方便。
注:各编辑器对这两个语法支持情况不同,比如Typora编辑器支持(1),VNote、CSDN支持两者(仅测试了Markdown-it渲染器),为知笔记旧版支持(1)而新版的实时渲染引擎却不支持。
示例:
生成一个脚注[^footnote123].
[^footnote123]: 这里是 **脚注** 的 *内容*.
生成一个脚注[2].