用 Markdown 寫多行公式

用 Markdown 寫多行公式

Markdown 是很優秀的標記語言,目前很多平臺都有帶 TeX\TeX 公式引擎(KaTeX, Mathjax 等)的 Markdown 編輯器。文章介紹使用 Typora 客戶端做公式筆記,主要爲多行公式的 TeX\TeX 語法和公式識別兩個問題。

簡單的 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˙=Ax\dot{x}=Ax 的解爲 x=eAx(0)x=e^Ax(0)

簡單行間公式:

系統狀態方程 $\dot{x}=Ax$ 的解爲
$$
x=e^Ax(0)
$$

渲染效果:

系統狀態方程 x˙=Ax\dot{x}=Ax 的解爲
x=eAx(0) x=e^Ax(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}
$$

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

f1(x)f2(x) f_1(x)\\ f_2(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)={f1(x)xS1f2(x)xS2 \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.
Remark:

  • \left\{\right. 用於自適應括號大小,只需要單邊括號時,另一側括號用 . 代替
  • 大括號在 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˙=Ax+Bu,x(0)=x0y=Cx+Du \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}
Remark:

  • aligned 需要 amsmath 宏包支持,現在大部分的引擎都會帶有該宏包

  • \quad 用於生成空白間距,類似的命令有:\qquad \, \: \; (正間距)\! (負間距)

  • 嵌套的 equation 環境是爲了生成編號

  • LaTeX\LaTeXaligned 是無法單獨使用的,必須嵌套在 equation 環境中,在很多其他基於 TeX\TeX 的引擎中,都默認省去了 equation 環境,任何行間公式都是當做 equaiton 環境處理,所以會出現 aligned 能夠單獨使用的情況,但是在需要編號的時候,aligned 是無法自動生成編號的,這時可以嵌套一個 equation 環境來生成編號

簡單宏定義

宏定義能夠實現自定義算符、簡化過於冗長的命令

自定義命令用法:\newcommand{\定義命令}[參數個數]{內容} (內容中用 #1, #2, #3 … 來設置形參)

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

示例:

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

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

Remark:

  • 聲明需在文章最開頭設置
  • 在 Typora 中,如果公式渲染異常,可以在編輯中找到 刷新公式

公式識別問題

Mathpix 提供 LaTeX\LaTeX 公式識別,準確度很高,每月 50 次免費,推薦註冊可以獲得 50-200 次額外次數,申請 API 可以獲得每月 1000 次,日常使用是足夠了。
Mathpix識別效果

參考文檔

文章簡單介紹了幾個多行公式的實現,這裏再貼出幾個文檔,以饗讀者:

MathJax 參考文檔

LaTeX\LaTeX 參考文檔

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章