コンテンツへスキップ
Fumadocs

数式

Markdown/MDX で数式を記述する方法です。

はじめに

インストール

npm install remark-math rehype-katex katex

プラグインを追加する

unified では、remark-math は数式構文をパースする remark プラグインで、rehype-katex はパースした数式を KaTeX でレンダリングする rehype プラグインです。 Sätteri では、数式はパーサーの機能として提供されています。この機能を有効にすると、プリセットが KaTeX で数式をレンダリングします。

source.config.ts
import rehypeKatex from 'rehype-katex';
import remarkMath from 'remark-math';
import { defineConfig } from 'fumadocs-mdx/config';

export default defineConfig({
  mdxOptions: {
    remarkPlugins: [remarkMath],
    // シンタックスハイライターより前に実行する必要があるため、先頭に配置します
    rehypePlugins: (v) => [rehypeKatex, ...v],
  },
});

スタイルシートを追加する

ルートレイアウトに KaTeX のスタイルシートを追加します。

layout.tsx
import 'katex/dist/katex.css';

完了

ドキュメント内に TeX の数式を書いてみましょう。たとえば、ピタゴラスの定理は次のように記述できます。

Inline: $$c = \pm\sqrt{a^2 + b^2}$$

```math
c = \pm\sqrt{a^2 + b^2}
```

インライン: c=±a2+b2c = \pm\sqrt{a^2 + b^2}

c=±a2+b2c = \pm\sqrt{a^2 + b^2}

テイラー展開 (正則関数 f(x)f(x) をべき級数で表したもの) :

Tf(z)=∑k=0∞(z−c)k2πi∫γf(w)(w−c)k+1 dw=12πi∫γf(w)w−c∑k=0∞(z−cw−c)k dw=12πi∫γf(w)w−c(11−z−cw−c) dw=12πi∫γf(w)w−z dw=f(z),\displaystyle {\begin{aligned}T_{f}(z)&=\sum _{k=0}^{\infty }{\frac {(z-c)^{k}}{2\pi i}}\int _{\gamma }{\frac {f(w)}{(w-c)^{k+1}}}\,dw\\&={\frac {1}{2\pi i}}\int _{\gamma }{\frac {f(w)}{w-c}}\sum _{k=0}^{\infty }\left({\frac {z-c}{w-c}}\right)^{k}\,dw\\&={\frac {1}{2\pi i}}\int _{\gamma }{\frac {f(w)}{w-c}}\left({\frac {1}{1-{\frac {z-c}{w-c}}}}\right)\,dw\\&={\frac {1}{2\pi i}}\int _{\gamma }{\frac {f(w)}{w-z}}\,dw=f(z),\end{aligned}}

ヒント

実は、Wikipedia の数式はそのままコピーできます。貼り付けると KaTeX の文字列に変換されます。

S[q]=∫abL(t,q(t),q˙(t)) dt.\displaystyle S[{\boldsymbol {q}}]=\int _{a}^{b}L(t,{\boldsymbol {q}}(t),{\dot {\boldsymbol {q}}}(t))\,dt.

How is this guide?

最終更新日