跳至主要内容

如何排版數學式?

數學式範例

docusaurus 可以用 LaTeX 語法實現數學式排版, 如果是像 a2+b2=c2a^2+b^2 = c^2 的 inline 數學式, 可以用 $ 符號前後夾著數學式,

$a^2+b^2 = c^2$

如果想將數學式獨立展示, 譬如

f(x)=1σ2πe12(xμσ)2f(x) = \frac{1}{\sigma\sqrt{2\pi}}e^{{-\frac{1}{2}}\left(\frac{x-\mu}{\sigma}\right)^2}

則是用 $$ 上下夾住數學式

$$
f(x) = \frac{1}{\sigma\sqrt{2\pi}}e^{{-\frac{1}{2}}\left(\frac{x-\mu}{\sigma}\right)^2}
$$

可以用 array 排出矩陣

I=[100010001]I = \left[ \begin{array}{ccc} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array} \right]
$$
I = \left[
\begin{array}{ccc}
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & 0 & 1
\end{array}
\right]
$$

也可以用 align 排版多行數學式

maxc,lcαlβs.t.c=w(1l)0l1\begin{align*} \max_{c, l} \quad & c^{\alpha}l^{\beta} \\ s.t. \quad & c = w(1 - l) \\ & 0 \leq l \leq 1 \end{align*}
$$
\begin{align*}
\max_{c, l} \quad & c^{\alpha}l^{\beta} \\
s.t. \quad & c = w(1 - l) \\
& 0 \leq l \leq 1
\end{align*}
$$

環境設定

docusaurus 使用 KaTex 實現數學式排版, 完整說明請參考此頁。以下簡述重要步驟。

  1. 首先安裝 remark-mathrehype-katex 兩個插件。
npm install --save remark-math@6 rehype-katex@7
  1. docusaurus.config.js 加入以下設定
import remarkMath from 'remark-math';
import rehypeKatex from 'rehype-katex';

export default {
presets: [
[
'@docusaurus/preset-classic',
{
docs: {
path: 'docs',
remarkPlugins: [remarkMath],
rehypePlugins: [rehypeKatex],
},
},
],
],
};
  1. docusaurus.config.js 加入以下設定
export default {
//...
stylesheets: [
{
href: 'https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css',
type: 'text/css',
integrity:
'sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM',
crossorigin: 'anonymous',
},
],
};