用 Markdown 写多行公式

用 Markdown 写多行公式

Markdown 是很优秀的标记语言,目前很多平台都有带 TeX \TeX TEX 公式引擎(KaTeX, Mathjax 等)的 Markdown 编辑器。文章介绍使用 Typora 客户端做公式笔记,主要为多行公式的 TeX \TeX TEX 语法和公式识别两个问题。

简单的 LaTeX \LaTeX LATEX 语法就不介绍了,读者如有需要可以直接拉到文章末尾看 LaTeX \LaTeX LATEX 的一份入门文档,本文直接讲一下多行公式的问题:

Remak:

  • CSDN 使用的是 KaTeX 引擎,本文描述的 Typora 是 MathJax 引擎,渲染有所出入:1)不支持 equation 环境,2)不支持公式编号
  • 源文档: Pastebin
  • Typora: Typora official webpage

行内公式和简单单行公式

行内公式:

系统状态方程 $\dot{x}=Ax$ 的解为 $x=e^Ax(0)$

渲染效果:

系统状态方程 x ˙ = A x \dot{x}=Ax x˙=Ax 的解为 x = e A x ( 0 ) x=e^Ax(0) x=eAx(0)

简单行间公式:

系统状态方程 $\dot{x}=Ax$ 的解为
$$
x=e^Ax(0)
$$

渲染效果:

系统状态方程 x ˙ = A x \dot{x}=Ax x˙=Ax 的解为
x = e A x ( 0 ) x=e^Ax(0) x=eAx(0)
Remark:

  • 在 Typora 中,公式功能需要自行开启
  • 在 Typora 中,默认是无编号,需要自行开启

多行公式

简单多行公式

用法:用两个$$ 嵌套,或者使用 \begin{equation}\end{equation}

示例:

$$
f_1(x)\\ % 使用 \\ 换行
f_2(x)\label{Multi1}
% 设置 label 是为了方便引用
$$

$$
\begin{equation}
f_1(x)\\
f_2(x)\notag
% \notag 取消编号
\end{equation}
$$

渲染效果
f 1 ( x ) f 2 ( x ) f_1(x)\\ f_2(x) f1(x)f2(x)

f 1 ( x ) f 2 ( x ) f_1(x)\\ f_2(x) f1(x)f2(x)

Remark:

  • 设置 label 可以很方便的引用公式,使用 \eqref{} 引用
  • \notag 可以取消编号,相应的,\tag{} 可以设置任意的标注内容

array 环境

array 环境用于简单的多行公式,比普通环境多了一个对齐选项

用法:\begin{array}{l}\end{array}l 为对齐方式(left, right, center)

示例:

$$
\begin{equation}
\dot{\boldsymbol{x}}=f(\boldsymbol{x})
=\left\{
	\begin{array}{ll}
		f_{1}(\boldsymbol{x}) & \boldsymbol{x} \in S_{1} \\
		f_{2}(\boldsymbol{x}) & \boldsymbol{x} \in S_{2}
	\end{array}\right.
\end{equation}
$$

渲染效果:
x ˙ = f ( x ) = { f 1 ( x ) x ∈ S 1 f 2 ( x ) x ∈ S 2 \dot{\boldsymbol{x}}=f(\boldsymbol{x}) =\left\{ \begin{array}{ll} f_{1}(\boldsymbol{x}) & \boldsymbol{x} \in S_{1} \\ f_{2}(\boldsymbol{x}) & \boldsymbol{x} \in S_{2} \end{array}\right. x˙=f(x)={f1(x)f2(x)xS1xS2
Remark:

  • \left\{\right. 用于自适应括号大小,只需要单边括号时,另一侧括号用 . 代替
  • 大括号在 LaTeX \LaTeX LATEX 中用作参数括号,需要加转义字符 \ 使用
  • array 环境中需要几列就设置几列的对齐方式,使用 & 分列,\\ 分行
  • \boldsymbol{} 用于粗体数学符号
  • array 也用于矩阵输入,但矩阵现多使用 matrix 环境

aligned 环境

aligned 环境用于需要设置对齐点的多行公式

用法:\begin{aligned}\end{ailgned}

示例:

$$
\begin{equation}
\begin{aligned}
	&\dot{\boldsymbol{x}}=A \boldsymbol{x}+B \boldsymbol{u}
	, \quad 
	\boldsymbol{x}(0)=\boldsymbol{x}_{0}\\
	&y=C x+D u
\end{aligned}
\end{equation}
$$

渲染效果:
x ˙ = A x + B u , x ( 0 ) = x 0 y = C x + D u \begin{aligned} &\dot{\boldsymbol{x}}=A \boldsymbol{x}+B \boldsymbol{u}, \quad \boldsymbol{x}(0)=\boldsymbol{x}_{0}\\ &y=C x+D u \end{aligned} x˙=Ax+Bu,x(0)=x0y=Cx+Du
Remark:

  • aligned 需要 amsmath 宏包支持,现在大部分的引擎都会带有该宏包

  • \quad 用于生成空白间距,类似的命令有:\qquad \, \: \; (正间距)\! (负间距)

  • 嵌套的 equation 环境是为了生成编号

  • LaTeX \LaTeX LATEXaligned 是无法单独使用的,必须嵌套在 equation 环境中,在很多其他基于 TeX \TeX TEX 的引擎中,都默认省去了 equation 环境,任何行间公式都是当做 equaiton 环境处理,所以会出现 aligned 能够单独使用的情况,但是在需要编号的时候,aligned 是无法自动生成编号的,这时可以嵌套一个 equation 环境来生成编号

简单宏定义

宏定义能够实现自定义算符、简化过于冗长的命令

自定义命令用法:\newcommand{\定义命令}[参数个数]{内容} (内容中用 #1, #2, #3 … 来设置形参)

自定义算符用法:\DeclareMathOperator{\定义命令}{算符}

示例:

$$
\newcommand{\bx}{\boldsymbol{x}} \notag
\DeclareMathOperator{\sign}{sign}
$$

渲染效果: s i g n   x , x \mathrm{sign}\,{x},\boldsymbol{x} signx,x (\sign{x},\bx)

Remark:

  • 声明需在文章最开头设置
  • 在 Typora 中,如果公式渲染异常,可以在编辑中找到 刷新公式

公式识别问题

Mathpix 提供 LaTeX \LaTeX LATEX 公式识别,准确度很高,每月 50 次免费,推荐注册可以获得 50-200 次额外次数,申请 API 可以获得每月 1000 次,日常使用是足够了。
Mathpix识别效果

参考文档

文章简单介绍了几个多行公式的实现,这里再贴出几个文档,以飨读者:

MathJax 参考文档

LaTeX \LaTeX LATEX 参考文档

  • 16
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值