用 Markdown 寫多行公式
Markdown 是很優秀的標記語言,目前很多平臺都有帶 公式引擎(KaTeX, Mathjax 等)的 Markdown 編輯器。文章介紹使用 Typora 客戶端做公式筆記,主要爲多行公式的 語法和公式識別兩個問題。
簡單的 語法就不介紹了,讀者如有需要可以直接拉到文章末尾看 的一份入門文檔,本文直接講一下多行公式的問題:
Remak:
- CSDN 使用的是 KaTeX 引擎,本文描述的 Typora 是 MathJax 引擎,渲染有所出入:1)不支持
equation
環境,2)不支持公式編號 - 源文檔: Pastebin
- Typora: Typora official webpage
行內公式和簡單單行公式
行內公式:
系統狀態方程 $\dot{x}=Ax$ 的解爲 $x=e^Ax(0)$
渲染效果:
系統狀態方程 的解爲
簡單行間公式:
系統狀態方程 $\dot{x}=Ax$ 的解爲
$$
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}
$$
渲染效果
Remark:
- 設置 label 可以很方便的引用公式,使用
\eqref{}
引用 \notag
可以取消編號,相應的,\tag{}
可以設置任意的標註內容
array
環境
array
環境用於簡單的多行公式,比普通環境多了一個對齊選項
用法:\begin{array}{l}\end{array}
,l
爲對齊方式(l
eft, r
ight, c
enter)
示例:
$$
\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}
$$
渲染效果:
Remark:
\left\{
和\right.
用於自適應括號大小,只需要單邊括號時,另一側括號用.
代替- 大括號在 中用作參數括號,需要加轉義字符
\
使用 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}
$$
渲染效果:
Remark:
-
aligned
需要amsmath
宏包支持,現在大部分的引擎都會帶有該宏包 -
\quad
用於生成空白間距,類似的命令有:\qquad
\,
\:
\;
(正間距)\!
(負間距) -
嵌套的
equation
環境是爲了生成編號 -
在 中
aligned
是無法單獨使用的,必須嵌套在equation
環境中,在很多其他基於 的引擎中,都默認省去了equation
環境,任何行間公式都是當做equaiton
環境處理,所以會出現aligned
能夠單獨使用的情況,但是在需要編號的時候,aligned
是無法自動生成編號的,這時可以嵌套一個equation
環境來生成編號
簡單宏定義
宏定義能夠實現自定義算符、簡化過於冗長的命令
自定義命令用法:\newcommand{\定義命令}[參數個數]{內容}
(內容中用 #1, #2, #3 … 來設置形參)
自定義算符用法:\DeclareMathOperator{\定義命令}{算符}
示例:
$$
\newcommand{\bx}{\boldsymbol{x}} \notag
\DeclareMathOperator{\sign}{sign}
$$
渲染效果: (\sign{x},\bx
)
Remark:
- 聲明需在文章最開頭設置
- 在 Typora 中,如果公式渲染異常,可以在編輯中找到
刷新公式
公式識別問題
Mathpix 提供 公式識別,準確度很高,每月 50 次免費,推薦註冊可以獲得 50-200 次額外次數,申請 API 可以獲得每月 1000 次,日常使用是足夠了。
參考文檔
文章簡單介紹了幾個多行公式的實現,這裏再貼出幾個文檔,以饗讀者: