本文记录了在Markdown中使用LaTex输入数学公式的方法,这样Markdown在一定程度上就可以完全替代office word了。
在markdown中使用LaTex公式
1、导入MathJax引擎, 在文章的任意地方加入以下代码即可:<script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-MML-AM_CHTML' async></script>
2、使用LaTex语法写公式即可。
注1:MathJax引擎本质是一个js脚本,把页面中的LaTex代码翻译成数学公式。
注2:翻译LaTex的工作流程,Markdown先把代码按Markdown语法翻译一遍,因此一些\和特殊字符的组合,要对反斜杠进行转义,如\\{
;之后再由js脚本对翻译为数学公式。公式表示
$$公式$$
:表示行间公式,单独居中成行\\(公式\\)
:表示行内公式,只占一行。两个斜杠\\
表示转义。加减乘除
名称 | 语法 | 名称 | 语法 |
---|---|---|---|
加 | + | 减 | - |
乘 | \times 或直接用* |
除 | \div 或直接用/ |
注:乘除后要加一个空格,和后面的字母区分开
- 上标和下标
使用^表示上标,使用_表示下标,默认将这两个符号后的一个符号作为上下标,如果需要多个符号,则使用{和}括起来.
如:z_{i+2} = x^{k+2}+y_2
$$z_{i+2} = x^{k+2}+y_2$$
- 使用括号
LaTex中[
]
(
和)
都不变,直接输入即可。对于{}
,因为其默认作用是将多个元素组合成一个整体,因此需要用\
转义,但因为\{
在markdown中会被转义为单独一个{
,因此要使用\\{
对\
也进行转义
如:$$(z) = \\{x\\}+[y]$$
$$(z) = \{x\}+[y]$$
- 特殊符号
名称 | LaTex语法 | 示例 |
---|---|---|
分数 | \frac {a} {b} |
\(\frac {a} {b}\) |
平方根 | \sqrt{a*x+b} |
\(\sqrt{a*x+b}\) |
n次方根 | \sqrt[n]{a*x+b} |
\(\sqrt[n]{a*x+b}\) |
积分 | \int_a^b f(x) dx |
\(\int_a^b f(x) dx\) |
极限 | \lim_{n \rightarrow 0} (\sin{x} / x) |
\(\lim_{n \rightarrow 0} (\sin{x} / x)\) |
求和 | \sum_{i=0}^n \frac{1}{i^2} |
\(\sum_{i=0}^n \frac{1}{i^2}\) |
求积 | \prod_{i=0}^n \frac{1}{i^2} |
\(\prod_{i=0}^n \frac{1}{i^2}\) |
梯度算子 | \nabla |
\(\nabla\) |
上划线 | \bar{A} |
\(\bar{A}\) |
长上划线 | \overline{A\cup B} |
\(\overline{A\cup B}\) |
希腊字母
希腊字母直接用\字母名
即可,如\alpha
为\(\alpha\),\beta
为\(\beta\),\theta
为\(\theta\)
具体符号表可见:希腊字母维基百科,注意首字母要小写矢量运算
用\vec{a}
表示矢量符号\(\vec{a}\),\cdot
表示点乘\(\vec{a}\cdot \vec{b}\),\times
表示叉乘\(\vec{a}\times \vec{b}\)矩阵
矩阵的基本语法为$$\begin{matrix}…\end{matrix}$$
1
2
3
4
5
6
7$$
\begin{matrix}
1 & 2 & 3 \\\\
4 & 5 & 6 \\\\
7 & 8 & 9
\end{matrix}
$$
$$
\begin{matrix}
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9
\end{matrix}
$$
注:因为LaTex中\表示换行,因此在Markdown中使用\\表示
- 怎样将矩阵用括号括起来
使用\left(
和\right)
引入变长括号(当然,其他符号也是可以变长的)1
2
3
4
5
6
7
8
9$$
\left(
\begin{matrix}
1 & 2 & 3 \\\\
4 & 5 & 6 \\\\
7 & 8 & 9
\end{matrix}
\right)
$$
\(
\left(
\begin{matrix}
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9
\end{matrix}
\right)
\) \(\left|\begin{matrix}1 & 2 & 3 \\4 & 5 & 6 \\7 & 8 & 9\end{matrix}\right|\)
- 矩阵内怎样使用省略号
与各种点代码结合可输入省略号,\cdots
横向点,\vdots
竖向点,\ddtots
斜向点1
2
3
4
5
6
7
8
9
10$$
\left[
\begin{matrix}
1 & 2 & \cdots & 4 \\\\
7 & 6 & \cdots & 5 \\\\
\vdots & \vdots & \ddots & \vdots \\\\
8 & 9 & \cdots & 0 \\\\
\end{matrix}
\right]
$$
$$
\left[
\begin{matrix}
1 & 2 & \cdots & 4 \\
7 & 6 & \cdots & 5 \\
\vdots & \vdots & \ddots & \vdots \\
8 & 9 & \cdots & 0 \\
\end{matrix}
\right]
$$
- 如何输入多行公式
1
2
3
4
5
6
7
8$$ f(x)=\left\\{
\begin{align}
x & =& &\cos(t) + &x\\\\
y & =& &\sin(t) + &y\\\\
z & =& &\frac xy + &z
\end{align}
\right.
$$
注1:align
用来将多行公式括起来,&
用来分割各个对齐的单元
注2:\right.
表示右括号不显示
$$ f(x)=\left\{
\begin{align}
x12 & = &\cos(t) &+1 &x1 &=1 \\
y123 & = &\sin(t) &+12 &y12 &=12 \\
z1234 & = &\frac xy &+123 &z123 &=123
\end{align}
\right.
$$
关于align中&的对齐方式
假设有n个&,会将一行分为n+1列,从左向右两个列分为一组(如1、2列为一组,3、4列为一组…,若有奇数个列,则最后一列单独为一组)。每一行的&数量要保证相同,否则对齐格式会乱。
首先明确,LaTex对齐方式包括组内对齐和组间对齐。
组内对齐:两列一组,在组内部,第一列向右对齐,第二列向左对齐,即两列在所在位置上向中间对齐。
组间对齐:首先,不同行的对应组会根据组的中线进行对齐,因为每行组数是一样的,因此为保证组的中线在同一位置,会统一固定组的长度,因此若公式较短就会出现空白。
其次在中线对齐的基础上,第一组会紧靠页左侧,最后一组则紧靠页右侧,紧靠页左/右侧就是将最长的一组紧靠上去,也就是说对于长度不一样的行,较短的那一行是靠不上去的(因为首先要保证组的中线对齐)。字体选项
字体大小:
稍微小一点:\small
,再小一点:\scriptsize
,最小:\tiny
大一点:\huge
,最大:huge
加粗:\textbf{xx}
,加粗和上划线混用:\overline{\textbf{xx}}
将公式中的斜体转为正体:
在\\( \\)
和$$
公式中的字母会自动为斜体,转为正体:\rm
hexo下使用LaTex,若使用了
A_{xxx}
这种复合下标(下划线和花括号连用),且前面的公式还出现了下划线(后面公式有下划线没事…),公式就会出错。
原因:hexo下的markdown将两个下划线作为斜体符号进行了翻译,公式就无法正常解析了。
解决:在两个下划线前分别加反斜杠,\_
,对下划线进行转义。
注:只有这种情况公式中的下划线会被解析成斜体符号,其他情况下则没事,具体原因不很清楚。更多符号,如逻辑运算、集合运算等可见博文
MathJax使用LaTeX语法编写数学公式教程
Latex所有常用数学符号整理
Post Date: 2018-01-19
版权声明: 本文为原创文章,转载请注明出处