--- tags: sysprog --- # HackMD -- LaTeX 語法與示範 課程作業會出現大量的數學式,而作業要求之一即 ==不使用圖片顯示文字訊息==,當然也包含繁複的數學式。因此,以下我們會引導大家在 HackMD 中使用 [LaTeX](https://zh.wikipedia.org/zh-tw/LaTeX) 表達數學式。 :::info 右鍵點選 * 顯示出來並沒有`$`,但切記在 HackMD 中,必須以`$`包圍住才會認得是 LaTeX 語法喔! ::: ## 數學式的開始與結束都是`$` * 如我們想表達: `N(b, d) = (b − 1) M` * 需要標注 `$N(b,d)=(b-1)M$` * 使用 LaTeX 後變成: $N(b,d)=(b-1)M$ 另外,==`$`需緊鄰著數學式==,也就是中間不能有任何空白鍵,否則一樣無法辨識為 LaTeX 語法! * 一樣以 $N(b,d)=(b-1)M$ 為例 * `$`插入空白: * $ N(b,d)=(b-1)M$ (開始的`$`後插入空白) * $N(b,d)=(b-1)M $ (結束的`$`前插入空白) * $ N(b,d)=(b-1)M $ (前後的`$`都插入空白) 除了`$`以外的符號都可以加入空白以增加可讀性,而不影響顯示結果 透過右鍵看 LaTeX Code 可以看出下面兩個式子的差異 * 一樣以 $N(b,d)=(b-1)M$ 為例 * 任意插入 $n$ 個空白: * $N ( b , \ \ \ \ d )=( b - 1 )M$ ## $\LaTeX$ 排版 ### 如何插入空白 雖然空白可以增加可讀性,但若我們真的希望顯示結果是有空白的話呢? * 如我們希望用 LaTeX 表示: 7 months + 5 months = 1 year * 前後加上`$`後: $7months + 5 months = 1 year$ 完全不是預期的結果! 而且不論加上多少空白,還是會跟上面一模一樣...... **解法: 加入`\`** 這其實跟寫程式要印出特殊符號的方法一樣,就是再加一個`\` * 馬上試試看: $7\ months + 5\ months = 1\ year$ * $Lily \ \ \ \ \ brother$ 完美呈現!! :::info `\`在 LaTeX 中常用到,當要加入特殊符號時一定會出現! 用以區分純英文單字和特殊符號 如: * $alpha$ 與 $\alpha$ ::: ### 如何插入換行 除了空白,排版不能或缺的當然還有換行囉! 換行:`\\` 如:以下數學式為加入換行排版後的呈現: $\dfrac{1}{2}$ $二分之一: \\ \dfrac{1}{2}$ ### 如何對齊方程式 再次以同樣的式子為例,若沒加入對齊: $$ \int_{a}^{b}x(t)dt = \dfrac{b - a}{N} \\ =\sum_{k=1}^{N}x(t_k)\cdot\dfrac{b-a}{N} $$ * **以等號對齊**: `\begin{split}...\end{split}` * 在方程式的開頭加上 `\begin{split}`,結尾加上 `\end{split}`,等號前加上 `&` $\mathrm{Integrals\ are\ numerically\ approximated\ as\ finite\ series}:\\ \begin{split} \int_{a}^{b}x(t)dt &= \dfrac{b - a}{N} \\ &=\sum_{k=1}^{N}x(t_k)\cdot\dfrac{b-a}{N} \end{split} \\ where\ t_k = a + (b-a)\cdot k/N$ * `&` 是標記從哪裡開始對齊的標記點 > 你可以自由移動 ==`&`== 改變對齊的符號 * **多行切割**: `\begin{multline*}...\end{multline*}` 若式子太長,分段切割顯示才好閱讀,否則字會超出版面 中間要換行的地方一樣插入 `\\` * 沒換行:$p(x) = 3x^6 + 14x^5y + 590x^4y^2 + 19x^3y^3 - 12x^2y^4 - 12xy^5 + 2y^6 - a^3b^3 - a^2b - ab + c^5d^3 + c^4d^3 - cd$ * 有換行: $\begin{multline*}p(x) = 3x^6 + 14x^5y + 590x^4y^2 + 19x^3y^3 \\ - 12x^2y^4 - 12xy^5 + 2y^6 - a^3b^3 - a^2b - ab + c^5d^3 + c^4d^3 - cd\end{multline*}$ * **置中對齊**: `\begin{gather*}...\end{gather*}` * 沒置中對齊: $2x - 5y = 8 \\ 3x^2 + 9y = 3a + c$ * 有置中對齊: $\begin{gather*} 2x - 5y = 8 \\ 3x^2 + 9y = 3a + c \end{gather*}$ ## 常用數學式 以下會列舉出在作業中可能常用到的數學式 ### 次方`^` 想表達 a 的 b 次方: `a^b` 如: $2^5 = 32$ 當次方項多於一個字時,需使用`{}`包住 * 如: 2 的 10 次方 * $2^10 = 1024$ (沒有使用`{}`) * $2^{10} = 1024$ * 文字: 2 的 n - 1 次方 * $2^{n-1}$ 當底數是多於一個字時 * 如: $1.02^{365} = 1377.4$ $1.01^{365} = 37.8$ > 每日多百分之二的努力,一年後可得千倍收穫!! ### 直式除法 `\dfrac{分子}{分母}` 想表達二分之一: $ \dfrac{1}{2} $ 二分之一: $\dfrac{1}{2}$ `{}` 一樣可填入任意文字數字 ### 循環小數 `\overline{循環部分}` AB 循環: $ \overline{AB} $ `{}` 填入循環部分 如: $0.00\overline{123}$ ### 底標 `_` $M_i$: $ M_i $ 底標多個字時一樣使用 `{}` $M_{this\ is\ a\ M}$ ### 矩陣 表達一個 $3 \times 3$ 矩陣: $\left( \begin{array}{ccc} y_1 & 2 & 3\\ y_2 & 5 & 6 \\ 7 & 8 & 9 \\ \end{array} \right)$ `\left(` `\begin{array}{ccc}` `y_1 & 2 & 3 \\` `y_2 & 5 & 6 \\` `7 & 8 & 9 \\` `\end{array}` `\right)` * `\left(`: * 左半邊括號,不一定要是`(`,也可以是`[` `|` * `\begin{array}`: * 矩陣開始 * `{ccc}`: * 定義有幾個 column * `1 & 2 & 3 \\`: * 依序填入矩陣內容,每行以 `\\` 結尾 * `\end{array}`: * 矩陣結束 * `\right)`: * 右半邊括號,如左半邊,可以是別種類型的括號 ### 積分 `\int_{a}^{b}` $\int_{a}^{b}x(t)dt$: `\int_{a}^{b}x(t)dt` ### limit `\lim_{N\to\infty}` 有兩種呈現方式: * $\lim_{N\to\infty}$ `\lim_{N\to\infty}` * $\displaystyle\lim_{N\to\infty}$ `\displaystyle\lim_{N\to\infty}` * 加入 `displaystyle` `\to` 即為 $\to$ ### sums `\sum_{k=1}^{N}` 有兩種呈現方式: * $\sum_{k=1}^{N}x(t_k)$ `\sum_{k=1}^{N}x(t_k)` * $\displaystyle\sum_{k=1}^{N}x(t_k)$ `\displaystyle\sum_{k=1}^{N}x(t_k)` * 多加入 `\displaystyle` ### multiple dot `\cdot` 如以下例子: $$ \sum_{k=1}^{N}x(t_k)\cdot\dfrac{b - a}{N} $$ 須使用 `\cdot` 來表示,鍵盤上輸入 `.` 會是小數點 ### multiple x `\times` 若想再方程式中打上乘號(x),若單純輸入 x 會被視為字母 如下: * $a x b$: `a x b` * $a \times b$: `a \times b` ### 更多的 $\LaTeX$ 排版語法 可參見 [$\LaTeX$ 語法筆記](https://hackmd.io/@RintarouTW/%E6%84%9A%E5%8D%83%E6%85%AE%E3%81%AE%E7%AD%86%E8%A8%98%E6%9C%AC/%2F%40RintarouTW%2FLaTeX_%25E8%25AA%259E%25E6%25B3%2595%25E7%25AD%2586%25E8%25A8%2598) ## 參考連結 * [List of LaTeX mathematical symbols](https://oeis.org/wiki/List_of_LaTeX_mathematical_symbols) * [Detexify, find symbols by drawing](https://detexify.kirelabs.org/classify.html) * [Integrals, sums and limits](https://www.sharelatex.com/learn/Integrals,_sums_and_limits#!#Sums_and_products) * [Aligning equations with amsmath](https://www.sharelatex.com/learn/Aligning_equations_with_amsmath) * [LaTeX Equation Editor](https://latexeditor.lagrida.com/)