本文记录了在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

版权声明: 本文为原创文章,转载请注明出处